热门搜索:
西门子6SE6440-2UD33-0EB1
一、S7 Open IE通讯概述
? TCP
PLC 通过工业以太网 OPEN IE 通信方式下的 TCP IP 协议进行数据交换,需要使用以下程序块:
? FB65 "TCON" 建立连接
这些通信功能块可以在函数库 Standard Library -> Communication Blocks 中找到。 用于连接 TCP IP 端点的参数存储于一个数据结构体中。在本程序示例中,使用数据结构体 UDT65 "TCON_PAR",用户将对这个数据结构体进行参数化。不需要在 NetPro 中配置通信连接。UDT65的创建需要使用 Open IE向导来完成。
1.使用Open IE 向导生成数据块
(1) 打开Open Communication Wizard程序,如图1所示:
(2)点击“Next”,如图2所示:
(3)在图3画面中选择S7-300项目及数据块的存贮路径:
(4)在图4画面中点击“Next”:
(5)在图5画面中选择“TCP native”后点击“Next”:
(6)在图6画面中选择如下后点击“Next”:
(7)在图7画面中选择此PLC的连接方式(Active为Client,Passive为Server),通讯伙伴的IP地址及使用PLC的版本号:
(8)在图8画面中输入本PLC及通讯伙伴的端口号:
(9)在图9画面中输入生成的数据块名称,本程序中为UDT65:
(10)在图10画面中点击“Next”:
(11)在图11画面中点击“Finish”,结束配置:
2.PLC编程
(1)创建数据块DB1,如图12所示:
(2)拷贝FB63,FB54,FB65,FB66至项目中,并分别为其创建背景数据块DB63,DB64,DB65,DB66,如图13所示:
西门子6SE6440-2UD33-0EB1
(3)在OB1中编程通讯程序,如图14所示:
3.PLC通讯功能块介绍
(1)调用FB65 建立通讯连接
输入参数 "REQ" :其上升沿触发来建立连接。
输出参数:
输出参数“STATUS”:错误信息。
(2)调用FB64 接收程序
输入参数 "EN_R" :始终为“TRUE”。
输出参数“STATUS”:错误信息。
(3)调用FB63 发送程序
输入参数 "REQ" :为发送请求,上升沿有效。
输出参数:
输出参数“STATUS”:错误信息。
(4)调用FB66 中断连接程序
输入参数 "REQ" :为中断连接请求,上升沿有效。
输出参数:
输出参数“STATUS”:错误信息。
4.Simotion侧的编程
(2)打开服务器程序
port : Simotion自己的Port,如2001
connectionid : 连接ID,在OpenServer的返回值中。
(3)发送数据
Connectionid : 连接ID,在OpenServer的返回值中。
注意:
1. 组播
2. 组播IP地址
3. 网络二层组播相关协议
4. STEP7中的组态
22709752
SIMATIC S7-400系列工业以太网 CP模块之间有哪些区别?
本文中以S7-300 CP343-1模块为例,具体组态步骤如下:
e) 编译无误后,分别下载到两个CPU。
g) 使用TCP/UDP测试工具添加一个组播成员到组播组,如图7。
h) 测试结果,在IP:192.168.0.10侧触发“AG_SEND”,则数据会发给所有属于IP组:224.0.1.0 端口号为2002的成员,如图8、图9。
5. 交换机的设置
可以通过S7-300/400 PLC集成的 PROFINET 接口使用基于工业以太网的开放式通信与Simotion设备进行数据交换,下列通信协议支持开放式通讯:
? UDP
? FB66 "TDISCON" 中止连接
? FB63 "TSEND" 发送数据
? FB64 "TRCV" 接收数据
创建开放式 TCP/IP 通信所需的连接数据的向导 (Open Communication Wizard)请从下述链接中下载 : 25209116
二、S7 Open IE通讯程序描述
图1.
图2.
图3.
图4.
图5.
图6.
图7.
图8.
图9.
图10.
图11.
图12.
图13.
图14.
图15.
输入参数“ID”:为连接ID。
输入参数“CONNECT”:填写用UDT65生成的数据块DB1,连接建立后会一直保持,直到调用FB66才会中断。
BUSY
DONE
ERROR
描述
TRUE
正在处理中
FALSE
TRUE
FALSE
工作成功完成
FALSE
FALSE
TRUE
工作因错误而中止,原因参看""Status"
FALSE
FALSE
FALSE
FB未被分配一个新任务
图16.
输入参数“ID”:为连接ID。
输出参数“RCVD_LEN”:为接收数据长度。
输出参数:
BUSY
DONE
ERROR
描述
TRUE
正在处理中
FALSE
TRUE
FALSE
工作成功完成
FALSE
FALSE
TRUE
工作因错误而中止,原因参看""Status"
FALSE
FALSE
FALSE
FB 未被分配一个新任务
图17.
输入参数“ID”:为连接ID。
输入参数“LEN”:为发送数据长度。
BUSY
DONE
ERROR
描述
TRUE
正在处理中
FALSE
TRUE
FALSE
工作成功完成
FALSE
FALSE
TRUE
工作因错误而中止,原因参看""Status"
FALSE
FALSE
FALSE
FB 未被分配一个新任务
图18.
输入参数“ID”:为连接ID。
BUSY
DONE
ERROR
描述
TRUE
正在处理中
FALSE
TRUE
FALSE
工作成功完成
FALSE
FALSE
TRUE
工作因错误而中止,原因参看""Status"
FALSE
FALSE
FALSE
FB 未被分配一个新任务
(1)在Simotion的命令库中,包含TCP IP通讯函数,如图19所示:
图. 19
图. 20
backlog : 允许的并行连接数
nextcommand : 同步或异步调用
Out : 含functionresult和connectionID
(3)接收数据
图. 21
nextcommand : 同步或异步调用
receivevariable : 接收到的数据
Out : 接收返回值,含function result和datalength
图. 22
nextcommand :同步或异步调用
datalength : 发送数据的长度
data : 发送的数据
Simotion侧与PLC侧的发送及接收区数据长度应保持相同。
组播技术是IP网络数据传输三种方式之一,在介绍IP组播技术之前,先对IP网络数据传输的单播、组播和广播方式做一个简单的介绍,见图1:
单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。
组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。
广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。
图1
组播IP地址用于标识一个IP组播组。IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。如下所示(二进制表示),IP组播地址**位均为1110。
八位组(1) 八位组(2) 八位组(3) 八位组(4)
1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX
组播组可以是*的也可以是临时的。组播组地址中,有一部分由官方分配的,称为*组播组。*组播组保持不变的是它的IP地址,组中的成员构成可以发生变化。*组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供*组播组使用的IP播地址,可以被临时组播组利用。
224.0.0.0~224.0.0.255为预留的组播地址(*组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用; 224.0.1.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。常用的预留组播地址如下:
224.0.0.0 基准地址(保留) 224.0.0.1 所有主机的地址 224.0.0.2 所有组播路由器的地址。
不支持组播的交换机,数据在里面是泛洪传播的,数据也是可以进行传送的。解决*二层组播数据洪泛的问题,引入IGMP Snooping及GMRP等概念。
网络二层组播相关协议包括IGMP Snooping ,IGMP Proxy和CGMP协议。
IGMP协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地路由器希望加入并接受某个特定组播组的信息,同时路由器通过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。
IGMP Snooping的实现机理是:交换机通过侦听主机发向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。通过上述机制,在组播路由器里建立起一张表,其中包含路由器的各个端口以及在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的端口上转发数据报文。
不同的S7300/400 以太网通讯模块支持的组播连接的个数不同,通过链接中文档可以查询模块支持的协议及连接资源数: 16767769
SIMATIC S7-300 系列工业以太网 CP 模块之间有哪些区别?
a) 在STEP7项目插入两个CPU,分别组态两个CP343-1,分配IP地址,分别为192.168.0.10和192.168.0.11。
b) 打开NetPro,在两个CPU下分别插入新的连接,连接类型选择“UDP Connection”链接对象选择“All multicast stations”,如图2。
c) 如图3,在弹出的属性窗口显示出连接“ID”和“LADDR”参数,之后编程会用到。
d) 在“Address”界面下,“Local”自定义本地的端口号;“Multicast Group”定义所要加入的组播组地址和通讯对方的端口号,可用的组播地址从224.0.1.0到239.255.255.255,可用的端口号从1025到65535,如图4、图5。
图2
图3
图4
图5
f) 编程,在程序中调用FC5 “AG_SEND” 、FC6 “AG_RECV”。“ID”和“LADDR”填写连接中的参数;“SEND”“LEN”定义发送的数据区和发送的长度;如图6,定义了发送接收都是20字节。完成后下载到CPU。
图6
图7
图8
图9
交换机如果不做任何设置,或者不支持组播,数据也是可以进行传送的,但是是泛洪传播的。为了提高效率,应该在交换机中激活IGMP Snooping,如图10,本例中使用西门子SCALANCE X312。通过IGMP Snooping,这样交换机就能够形成端口和组播组成员的对应关系,交换机根据该对应关系将收到的组播数据包只传给属于改组的端口,如图11。图12显示了组播IP地址到二层MAC地址的映射关系。
图10
图11
图12
西门子6SE6440-2UD33-0EB1