UDP通信协议不需要在通信前建立连接,在发送和接收的数据报文中带有通信方的IP地址和端口号。通信函数位于Command library中的“Communication→Data transfer”目录下,在发送方调用发送函数的示例程序如图13-4所示。
图13-4 UDP发送程序
TCP通信方式在发送接收数据前必须建立通信连接,连接需要在通信双方编程建立。主动连接的一方作为客户端,被动连接的一方作为服务器。下面以SIMOTION D435与S7-300 CP343-1通信为例介绍TCP通信方式。
TCP配置和编程过程需要包括以下操作步骤:
(1)在PLC侧建立通信连接
在STEP7项目下创建S7-300站点,插入以太网通信处理器CP343-1,选择与SIMOTION在相同的网络上。在NetPro中点击CPU,在下面的连接表中插入一个连接如图13-5所示。
连接的站点选择“Unspeci-fied”,连接方式选择“TCP connec-tion”,点击“Apply”按钮确认,进入连接属性界面,如图13-6所示。
图13-5 建立TCP连接
图13-6 配置TCP常规信息
在“General Information”选项卡中,“Block Parameters”参数显示CP343-1的地址及连接号,这两个参数也是PLC调用发送和接收通信功能块的赋值参数。“Active connection es-tablishment”选项决定通信双方哪一个是主动连接(客户端),哪一个是被动连接(服务器)。选择该选项为主动连接,此时在SIMOTION侧需要调用函数“_tcpOpenServer”与PLC建立连接;如果没有选择该选项则为被动连接,此时在SIMOTION侧需要调用函数“_tcpOpenClient”与PLC建立连接。本例中选择PLC为服务器,SIMOTION为客户端。
点击“Address”栏配置SIMTION的IP地址及端口号,如图13-7所示。
图13-7 配置通信双方IP地址
配置完成后将配置选项下载到PLC中。
(2)在SIMOTION侧建立通信连接
与PLC在NetPro中创建连接不同,在SIMOTION侧需要调用函数建立连接,通信函数位于Command library中的“Communication→Data transfer”目录下,函数调用的示例程序如图13-8所示。
图13-8 SIMOTION侧建立TCP连接(客户端)
(3)在PLC侧编写通信程序
通信连接建立后,在通信双方需要编写通信函数或通信功能块。在S7-300 PLC侧OB35中(间隔发送)调用发送功能块FC5 AG_SEND(“Libraries”→“Standard Library”→“SIMATIC_NET_CP”→“CP300”),示例程序如下:
通信函数FC5的参数含义如下:
1)ACT:为1触发。(www.xing528.com)
2)ID:参考本地CPU连接表中的块参数。
3)LADDR:参考本地CPU连接表中的块参数。
4)SEND:发送区。最大通信数据为8192字节。与SIMOTION之间最大4096个字节。
5)LEN:实际发送数据长度。
6)DONE:每次发送成功,产生一个上升沿。
7)ERROR:错误位。
8)STATUS:通信状态字。
示例程序中S7-300 PLC发送DB1中前60个字节。
在通信方CPU OB1中调用接收函数FC6 AG_RECV(“Libraries”→“Standard Library”→“SIMATIC_NET_CP”→“CP300”),示例程序如下:
通信函数FC6的参数含义如下:
1)ID:参考本地CPU连接表中的块参数。
2)LADDR:参考本地CPU连接表中的块参数。
3)RECV:接收区。接收区应大于等于发送区。
4)NDR:每次接收到新数据,产生一个上升沿。
5)ERROR:错误位。
6)STATUS:通信状态字。
7)LEN:实际接收数据长度。
示例程序中S7-300 PLC将接收的数据存储于本地数据区DB2的前60个字节中。
(4)在SIMOTION侧编写通信程序
在PLC侧调用了发送和接收函数,在SIMOTION侧也需调用相应的发送和接收函数与之相匹配,通信函数位于Command library中的“Communication→Data transfer”目录下,发送函数调用的示例程序如图13-9所示,发送函数与PLC的接收函数相匹配。
图13-9 调用发送函数
上面介绍了SIMOTION与PLC CP343-1的TCP通信,PLC作为服务器,同样SIMOTION也可以作为服务器,只是建立连接的初始化过程不同。SIMOTION与SIMOTION、SIMOTION与CPU集成PN接口、SIMOTION与PC通过VB SOCKET控件之间的通信可以参照上面的例子。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。