为了进行数据的传送,这里需要调用FC5“AG-SEND”和FC6“AG-RECV”模块,来进行数据的收发。本实验以同项目下2个400站通讯为例。
1.在SIMATIC400(1)站的Block中按 打开添加如下模块:在OB1中编写数据发送模块,调用FC5模块,并建立DB1、2,分别为CPU1发送给CPU2和CPU1接收CPU2的数据,并插入变量表为后面的通讯验证做准备。如下图:
打开SIMATIC_NET_CP库:
找到FC5、FC6并复制:
粘贴到400站中,并建立2个DB块,分别为发送和接收使用:
在2个DB块中分别建立相同数量的变量:
2.建立发送接收数据长度设定:
注意:发送接收数据zuihao分别设计2个MW地址,如果公用,有可能第一个使用完后MW内存储数据被清零。
3.OB1中对FC5的编写如下:
call fc 5 //调用FC5
ACT := M 1.0, //通讯为1时可以发送。
ID :=1, //本机网络组态BlockParameters的ID
LADDR := W#16#3FFD, //本机数据段
SEND := P#db1.dbx0.0byte 10, //发送数据存储位置
LEN := MW 10, //发送数据长度
DONE := M 10.2, //发送状态(0为正在发送,1为发送完成)
ERROR := M 10.3, //错误状态
STATUS := MW 20; //错误代码
注意:发送接收数据zuihao分别设计2个MW地址,如果公用,有可能第一个使用完后MW内存储数据被清零。
FC5编辑定义如下:
4.OB1中对FC6的编写如下:
call fc 6 //调用FC6
ID :=1, //本机网络组态BlockParameters的ID
LADDR := W#16#3FFD, //本机数据段
RECV := P#DB2.DBX0.0BYTE 10, //接收数据存储位置
NDR :=M0.4, //接收状态
ERROR := M0.5, //错误状态
STATUS := MW30, //错误代码
LEN := MW12; //接收数据长度
FC6编辑定义如下:
5.在SIMATIC400 (2)站中添加相应的模块,ID以及LADDR改为SIMATIC 400 (2)站的ID以及LADDR
6.分别下装到对应CPU中
效果验证
分别在两个站点的变量表中添加变量,进入监控画面,对1站输入不同的数值,可以看到2站对应的接收区发生了对应的变化,说明以太网通讯成功,效果如下图: