如何用EtherNet/IP网关实现Superisys RFID与施耐德PLC的无缝通讯?

电子说

1.4w人已加入

描述

摘要 : EtherNet/IP作为工业自动化领域的“通用语言”,近年来在Profinet、EtherCAT的夹击下为何能逆势增长?本文将以Superisys RFID与施耐德M241 PLC的通讯为例,拆解其协议优势与落地实践。

正文

1、EtherNet/IP的“上位史”

背景:由ODVA与ControlNet国际联合开发,基于CIP协议,美国的工控设备制造商Rockwell/Allen-Bradley已经围绕EtherNet/IP进行了标准化,其他厂商如日系Omron也在其设备上支持了EtherNet/IP,EtherNet/IP已经变得越来越受欢迎。

优势:兼容标准以太网硬件,支持实时I/O和数据交换,比传统现场总线更开放。

2、Superisys网关的硬核实力

双M12总线接口+4路RFID读写头,支持Profinet/EtherCAT/EtherNet/IP三协议自由切换,堪称工业界的“多面手”。       

IP67防护+3000W浪涌保护,在汽车厂喷涂车间的实测中抗住了油污和高压水枪冲洗。

3、与施耐德M241 PLC的配置要点

步骤:通过Studio 5000添加EDS文件,设置CIP连接路径,标签映射避免数据冲突。

避坑:注意RFID读写头的响应时间需匹配PLC扫描周期,否则可能丢包。

01✦ 组态网关设备✦

1.1 总线网关EDS文件安装

打开施耐德Somachine软件,打开例程程序,在“工具”栏下方选择“设备库”选项,一次选择“现场总线”下的“Ethernet/IP从设备”,点击右边“安装”按钮,选择EDS文件的相应文件夹,选中所需安装的EDS文件,如下图所示:

RFID

点击“打开”,即可完成EDS文件的安装。

1.2 总线网关设备组态

★ 在右边设备树下选择“Ethernet_1”下的“工业以太网管理器”,右键选择“添加设备,在弹出的对话框中选择“IACM-P4-EIP”设备,双击该设备或点击对话框下方栏的“添加设备”即可成功添加总线网关设备,如下图所示:

RFID

★ 双击“IACM-P4-EIP”设备,分别配置总线网关设备的通讯参数,如下图所示,分别配置设备的IP地址、连接通道参数、IO映射等。

IP地址参数配置:

RFID

连接通道参数配置:

RFID

IO映射参数配置:

RFID

设置完成,编译好点击“保存”即可。


 

1.3 EIP总线网关IP地址设置

★ 使用总线网关助手软件,点击“工具”栏下的“网关搜索器”,点击搜索(“IACM-P4-EIP”设备),双击搜索出来的网关设备,修改IP地址(192.168.1.10),点击设置,重启后生效,完成EtherNet/IP从站设备(网关)的IP设置,如下图所示:

RFID


 

02✦功能块介绍及使用✦

打开“EIPGateway_Demo_128V1.1”例程程序。


 

2.1 网关RFID通道的变量映射

参照3.1.2中的IO映射配置,在“GVL”全局变量下关联总线网关的IO映射,如下图所示:

RFID


 

2.2 RFID读写程序介绍

提供的程序:

调用程序:“POU”—— RFID功能程序调用;

功能块:RFIDIODATA_MOVE——总线网关各RFID端口IO地址映射处理

功能块:“RFID_RW”—— RFID读写功能处理;


 

2.3 RFID功能块引脚说明

一个“RFIDIODATA_MOVE”功能块实例调用对应一个总线网关(4个RFID通道),功能块图形如下:

RFID

★ 功能块引脚说明

每个功能块实例对应一个总线网关,功能块引脚定义及功能如下:

输入引脚定义解析:

RFID


 

输出引脚定义解析:

RFID

一个“RFID_RW”功能块实例调用对应一个端口通道的读写头,功能块图形如下:

RFID

★ 功能块引脚说明

每个功能块实例对应一个总线网关,功能块引脚定义及功能如下:

输入引脚定义解析:

RFID

输出引脚定义解析:

RFID

xRead,xWrite两个信号互斥,同一时间只能有一个信号为高电平,功能块只会执行第一个检测到的有效信号。


 

03✦读写头读/写功能示例✦

3.1命令执行时序

★ 载码体ID读取

调用RFID读写功能块后,默认保持RFID使能。当读写头感应到载码体的在位信号(xTP)的上升沿是,自动上传载码体ID数据,当载码体离开读写头感应区域时,载码体ID数据自动清空,具体的时序如下图所示:

RFID


 

★ 命令执行

在执行读写载码体内存数据命令时,需要先填写好读写的参数(读写载码体内存的起始地址,字节长度,写入的数据填充区数据内容等),然后再触发读写命令,具体的命令执行时序如下图所示:

RFID

在xRead/Write执行过程中,在未收到(xRead/WriteDone、xRead/WriteError)信号时,请不要手动复位xRead/Write信号,也建议用xTP信号去替代xRead信号进行自动读取触发。


 

3.2读UID数据区

a) 载码体靠近读写头,读写头自动感应载码体,载码体到位信号“xTP”变为“TRUE”;

b) arrUIDData[0] – arrUIDData[7] 自动获取所靠近载码体的UID数据,固定长度8个字节;

备注:UID数据出厂时设定,可读不可写,数据序列是唯一的;


 

3.3 写USER数据区

写入数据至载码体

当载码体静止在读取范围时,通过写入功能可以向一个载码体指定的地址写入特定长度的数据。命令的执行以”xWrite”高电平开始,在命令执行前,需要填写以下参数:

RFID

写入操作步骤如下:

a)载码体靠近到位,载码体到位信号xTP信号的值为“1”;

b)在arrwriteData数组中填充数据要写入的数据;

c)载码体到位,载码体到位信号xTP信号的值为“TRUE”;

d)修改数据长度iWriteLength的值8,单位为字节;

e)修改起始地址wWriteAddress的值为16#0000;

f)在arrWriteData数组中填充要写入的数据”

g)修改写入命令xWrite 为 “1”;

h)查看功能块反馈回来的完成信号xWriteDone和错误信号xWriteError。


 

3.4读USER区

从载码体读取数据

当载码体在读取范围时,通过读取功能可从载码体指定起始地址读取特定长度的数据。命令的执行以”xRead”高电平开始,在命令执行前,需要先填充部分引脚参数:

RFID

读取操作步骤如下:

a)载码体到位,载码体到位信号xTP信号的值为“TRUE”;

b)修改数据长度iReadLength的值为8,单位为字节;

c)修改起始地址wReadAddress的值为16#0000;

d)修改写入命令xRead 为 “1”(必须先复位xWrite信号);

e)查看功能块反馈回来的完成信号xReadDone和错误信号xReadError;

f)xReadDone信号置位后可在arrReadData数组中查看读取的数据内容。


 

04✦错误码✦

4.1 错误码详细定义

读写头自定义错误码(命令执行错误时):

RFID

功能块自定义错误码:

RFID

讨论

你认为EtherNet/IP未来会被TSN(时间敏感网络)取代吗?

实际项目中遇到过哪些协议兼容性问题?

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分