首页 理论教育 SIMOTION以太网通信编程优化技巧

SIMOTION以太网通信编程优化技巧

时间:2023-07-02 理论教育 版权反馈
【摘要】:下面以SIMOTION D435与S7-300 CP343-1通信为例介绍TCP通信方式。TCP配置和编程过程需要包括以下操作步骤:在PLC侧建立通信连接在STEP7项目下创建S7-300站点,插入以太网通信处理器CP343-1,选择与SIMOTION在相同的网络上。本例中选择PLC为服务器,SIMOTION为客户端。图13-8 SIMOTION侧建立TCP连接(客户端)在PLC侧编写通信程序通信连接建立后,在通信双方需要编写通信函数或通信功能块。与SIMOTION之间最大4096个字节。SIMOTION与SIMOTION、SIMOTION与CPU集成PN接口、SIMOTION与PC通过VB SOCKET控件之间的通信可以参照上面的例子。

SIMOTION以太网通信编程优化技巧

UDP通信协议不需要在通信前建立连接,在发送和接收的数据报文中带有通信方的IP地址端口号。通信函数位于Command library中的“Communication→Data transfer”目录下,在发送方调用发送函数的示例程序如图13-4所示。

978-7-111-43580-8-Chapter13-4.jpg

图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所示。

978-7-111-43580-8-Chapter13-5.jpg

图13-5 建立TCP连接

978-7-111-43580-8-Chapter13-6.jpg

图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所示。

978-7-111-43580-8-Chapter13-7.jpg

图13-7 配置通信双方IP地址

配置完成后将配置选项下载到PLC中。

(2)在SIMOTION侧建立通信连接

与PLC在NetPro中创建连接不同,在SIMOTION侧需要调用函数建立连接,通信函数位于Command library中的“Communication→Data transfer”目录下,函数调用的示例程序如图13-8所示。

978-7-111-43580-8-Chapter13-8.jpg

图13-8 SIMOTION侧建立TCP连接(客户端)

(3)在PLC侧编写通信程序

通信连接建立后,在通信双方需要编写通信函数或通信功能块。在S7-300 PLC侧OB35中(间隔发送)调用发送功能块FC5 AG_SEND(“Libraries”→“Standard Library”→“SIMATIC_NET_CP”→“CP300”),示例程序如下:

978-7-111-43580-8-Chapter13-9.jpg

通信函数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”),示例程序如下:

978-7-111-43580-8-Chapter13-10.jpg

通信函数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的接收函数相匹配。

978-7-111-43580-8-Chapter13-11.jpg

图13-9 调用发送函数

上面介绍了SIMOTION与PLC CP343-1的TCP通信,PLC作为服务器,同样SIMOTION也可以作为服务器,只是建立连接的初始化过程不同。SIMOTION与SIMOTION、SIMOTION与CPU集成PN接口、SIMOTION与PC通过VB SOCKET控件之间的通信可以参照上面的例子。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈