EtherNet/IP作为工业自动化领域的“通用语言”,近年来在Profinet、EtherCAT的夹击下为何能逆势增长?本文将以Superisys RFID与施耐德M241 PLC的通讯为例,拆解其协议优势与落地实践。
背景:由ODVA与ControlNet国际联合开发,基于CIP协议,美国的工控设备制造商Rockwell/Allen-Bradley已经围绕EtherNet/IP进行了标准化,其他厂商如日系Omron也在其设备上支持了EtherNet/IP,EtherNet/IP已经变得越来越受欢迎。
优势:兼容标准以太网硬件,支持实时I/O和数据交换,比传统现场总线更开放。
双M12总线接口+4路RFID读写头,支持Profinet/EtherCAT/EtherNet/IP三协议自由切换,堪称工业界的“多面手”。
IP67防护+3000W浪涌保护,在汽车厂喷涂车间的实测中抗住了油污和高压水枪冲洗。
步骤:通过Studio 5000添加EDS文件,设置CIP连接路径,标签映射避免数据冲突。
避坑:注意RFID读写头的响应时间需匹配PLC扫描周期,否则可能丢包。
01✦ 组态网关设备✦
打开施耐德Somachine软件,打开例程程序,在“工具”栏下方选择“设备库”选项,一次选择“现场总线”下的“Ethernet/IP从设备”,点击右边“安装”按钮,选择EDS文件的相应文件夹,选中所需安装的EDS文件,如下图所示:
★ 在右边设备树下选择“Ethernet_1”下的“工业以太网管理器”,右键选择“添加设备,在弹出的对话框中选择“IACM-P4-EIP”设备,双击该设备或点击对话框下方栏的“添加设备”即可成功添加总线网关设备,如下图所示:
★ 双击“IACM-P4-EIP”设备,分别配置总线网关设备的通讯参数,如下图所示,分别配置设备的IP地址、连接通道参数、IO映射等。
★ 使用总线网关助手软件,点击“工具”栏下的“网关搜索器”,点击搜索(“IACM-P4-EIP”设备),双击搜索出来的网关设备,修改IP地址(192.168.1.10),点击设置,重启后生效,完成EtherNet/IP从站设备(网关)的IP设置,如下图所示:
打开“EIPGateway_Demo_128V1.1”例程程序。
参照3.1.2中的IO映射配置,在“GVL”全局变量下关联总线网关的IO映射,如下图所示:
功能块:RFIDIODATA_MOVE——总线网关各RFID端口IO地址映射处理
功能块:“RFID_RW”—— RFID读写功能处理;
一个“RFIDIODATA_MOVE”功能块实例调用对应一个总线网关(4个RFID通道),功能块图形如下:
每个功能块实例对应一个总线网关,功能块引脚定义及功能如下:
一个“RFID_RW”功能块实例调用对应一个端口通道的读写头,功能块图形如下:
每个功能块实例对应一个总线网关,功能块引脚定义及功能如下:
xRead,xWrite两个信号互斥,同一时间只能有一个信号为高电平,功能块只会执行第一个检测到的有效信号。
03✦读写头读/写功能示例✦
调用RFID读写功能块后,默认保持RFID使能。当读写头感应到载码体的在位信号(xTP)的上升沿是,自动上传载码体ID数据,当载码体离开读写头感应区域时,载码体ID数据自动清空,具体的时序如下图所示:
在执行读写载码体内存数据命令时,需要先填写好读写的参数(读写载码体内存的起始地址,字节长度,写入的数据填充区数据内容等),然后再触发读写命令,具体的命令执行时序如下图所示:
在xRead/Write执行过程中,在未收到(xRead/WriteDone、xRead/WriteError)信号时,请不要手动复位xRead/Write信号,也建议用xTP信号去替代xRead信号进行自动读取触发。
a) 载码体靠近读写头,读写头自动感应载码体,载码体到位信号“xTP”变为“TRUE”;
b) arrUIDData[0] – arrUIDData[7] 自动获取所靠近载码体的UID数据,固定长度8个字节;
备注:UID数据出厂时设定,可读不可写,数据序列是唯一的;
当载码体静止在读取范围时,通过写入功能可以向一个载码体指定的地址写入特定长度的数据。命令的执行以”xWrite”高电平开始,在命令执行前,需要填写以下参数:
a)载码体靠近到位,载码体到位信号xTP信号的值为“1”;
b)在arrwriteData数组中填充数据要写入的数据;
c)载码体到位,载码体到位信号xTP信号的值为“TRUE”;
d)修改数据长度iWriteLength的值8,单位为字节;
e)修改起始地址wWriteAddress的值为16#0000;
f)在arrWriteData数组中填充要写入的数据”
h)查看功能块反馈回来的完成信号xWriteDone和错误信号xWriteError。
当载码体在读取范围时,通过读取功能可从载码体指定起始地址读取特定长度的数据。命令的执行以”xRead”高电平开始,在命令执行前,需要先填充部分引脚参数:
a)载码体到位,载码体到位信号xTP信号的值为“TRUE”;
b)修改数据长度iReadLength的值为8,单位为字节;
c)修改起始地址wReadAddress的值为16#0000;
d)修改写入命令xRead 为 “1”(必须先复位xWrite信号);
e)查看功能块反馈回来的完成信号xReadDone和错误信号xReadError;
f)xReadDone信号置位后可在arrReadData数组中查看读取的数据内容。
04✦错误码✦