EtherCAT(以太网控制自动化技术) 是由德国倍福公司开发的、基于以太网的开放现场总线系统,EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,同时,它还符合甚至降低了现场总线的使用成本。EtherCAT的特点还包括高精度设备同步,可选线缆冗余,和功能性安全协议(SIL3)。
本期我们来注重介绍一下如何使用Superisys RFID EtherCAT总线网关与雷赛PMC600系列PLC通讯进行通讯读写。
控制器(PLC):下发命令控制读写头进行操作;
网关总线控制器:PLC与网关总线控制器进行通讯,间接控制读写器;
读写器(超高频/高频):获取控制器的命令,执行对标签载码体的读/写数据操作;
标签载码体(超高频/高频):
存储数据的载体,数据存储区域划分如下:
高频标签有UID区(通常只有8 byte/只读且唯一)、USER区(一次最大2000 byte(实际内存大小因标签类型而异)/可读可写);
硬件构架介绍
网关亮点 :
✅ 双网口设计,支持级联多个设备,布线灵活;
✅ IP67防护,油污、粉尘环境轻松拿捏;
✅ 3000W浪涌保护,设备安全稳如老狗。
1、组态连接
1.1 总线网关ECT文件安装
打开雷赛PLC编程软件(本案例使用Leadsys StduioV1.2.61.0版本),新建一个项目程序,选择对应的PLC具体型号(本案例使用的是“PMC600”型号),命名完成新建后,双击左方选项栏的“通讯配置”选项,在弹出的“通讯配置”对话框中选择“设备操作”选项,点击弹出对话框的“安装”按钮,选择相应文件夹下的网关设备的xml文件,安装网关的xml文件,如下图所示:
选择相应文件夹下的“IACM-P4-ECT_V1.0”文件,点击“打开”,安装完成即可。
1.2 总线网关设备组态
★在右方的“网络设备列表找到”IACM-P4-ECT”设备,将其拖拽至“ETHERCAT_A”网络栏下方,如下图所示:
配置组态完成,点击“保存”即可。
1.3 ECT网关组态参数下载
点击“登录到”图标,在弹出的对话框选项栏的“通讯设置”栏下”点击“扫描网络”,选择好相应的网关、网络接口,系统自动“搜索”到PLC的型号后,点击“下载”按钮对“硬件组态”进行下载,如下图所示:
下载完硬件组态后,再次点击上方“登录到”图标,查看ECT网关是否正常在线,如下图所示:
通常进行一个ECT总线网关使用测试时,“IACM-P4-ECT”总线网关是直接显示正常在线的,如上图所示,“ETHERCAT”设备组态栏下方“IACM-P4-ECT”总线网关显示绿色;
(用户也可通过总线网关状态指示灯对连接状态进行确认)
备注:PLC的ETHERCAT通讯接口与“IACM-P4-ECT”总线网关的通讯连接必须接总线网关的“ETH1”通讯接口。
2、功能块介绍及使用
打开雷赛PLC编程软件,打开“PMC600_RFID_ECTDemo”例程程序。
2.1 网关RFID通道的变量映射
双击例程程序的“IACM-P4-ECT”模块,分别点击“过程数据”以及“ETHERCAT I/O映射”,对应ECT总线网关的4个RF读写头端口的输入输出地址,如下图所示:
左边设备栏下的“GVL_RFID”全局变量中定义并通过“AT”指针的方式分别映射了总线网关对应四个RF端口读写头的输入输出IO地址,如下图所示:
2.2 RFID读写程序介绍
提供的程序:
调用程序:“Main Task”——“PLC_PRG”下调用 RFID功能块程序;
功能块:“RFID_ECTGateWayDemo”—— RFID读写功能处理;
全局变量:“GVL_RFID”——RFID全局变量定义。
★ 用户在使用的过程中可将此部分内容赋值至新建程序中。
2.3 RFID读写功能块引脚说明
一个“RFID_ECTGateWayDemo”功能块实例调用对应一个端口通道的读写器,功能块图形如下:
★ 功能块引脚说明
每个功能块实例对应一个读写器,功能块引脚定义及功能如下:
备注:xRead,xWrite两个信号互斥,同一时间只能有一个信号为高电平,功能块只会执行第一个检测到的有效信号。
3、读写头读/写功能示例
3.1命令执行时序
★ 使能RFID
使能是使RFID工作的必要条件,在整个工作期间是默认保持RFID使能的。具体的时序如下所示。默认的RFID使能置位后,Ready未置位,则表示总线模块与RFID通讯异常。
★ 命令执行
命令的执行以xRead或xWrite上升沿信号开始,在给Trigger信号置位之前,先将命令/参数/数据填充好。在命令执行期间保持xRead或xWrite信号置位,若取消当前命令的执行,将xRead或xWrite复位即可。命令执行装填可根据xDone或xError信号来判断,命令执行完后可从Read datas/Errcode取命令执行的结果。
★ 从标签读取数据
当标签在读取范围时,通过读取功能可从标签指定起始地址读取特定长度的数据。命令的执行以”xRead”引脚上升沿触发,在进行读取时,需要先填充部分引脚参数,涉及到的参数如下:
★ 写入数据至标签
当标签静止在读取范围时,通过写入功能可以向一个标签指定的地址写入特定长度的数据。命令的执行以”xWrite”引脚上升沿触发,在命令触发前,需要填写以下参数:
本例程使用RFID1第一个接口进行测试。
当读写器成功连接上后,可对读写器进行读/写操作。
“xReady”信号置1,表明读写器连接成功,xTP表示感应到芯片。
3.2读UID数据区
a) 标签靠近读写器,读写器自动感应标签,标签到位信号“xTP”变为“TRUE”;
b) 自动获取所靠近标签的UID数据,固定长度8个字节,可在arrUIDData0查看;
备注:UID数据出厂时设定,可读不可写,数据序列是唯一的;
3.3 写USER数据区
a) 标签靠近到位,标签到位信号xTP信号的值为“1”;
b) 在arrwriteData数组中填充数据要写入的数据;
c) 标签到位,标签到位信号xTP信号的值为“TRUE”;
d) 修改数据长度bLength的值8,单位为字节;
e) 修改起始地址wAddress的值为16#0000;
备注:在“xWrite”信号命令触发前,务必先填充好“a~e”项参数。
f) 修改写入命令xWrite 为 “1”;
g) 查看功能块反馈回来的完成信号xDone和错误信号xError。
如果xDone值为“1”且xError值为“0”,则说明数据已写入完成;
如果xError为“1”,则说明数据写入失败;
如下图所示:从起始地址0开始,写入8个字节数据进入标签的用户区成功。
3.4读USER区
a) 标签到位,标签到位信号xTP信号的值为“TRUE”;
b) 修改数据长度bLength的值为8,单位为字节;
c) 修改起始地址wAddress的值为16#0000;
备注:在“xRead”信号命令触发前,务必先填充好“a~c”项参数。
d) 修改写入命令xRead 为 “1”(必须先复位xWrite信号);
e) 查看功能块反馈回来的完成信号xDone和错误信号xError。
如果xDone值为“1” 且xError值为“0”,则说明数据已读取完成;
如果xError为“1”,则说明数据读取失败;
如下图所示:从起始地址0开始,读取8个字节标签的用户区数据成功。
对比3.3的写入User区的数据,可验证写入和读取数据无误。
4、错误码
4.1 错误码详细定义
功能块输出参数wErrCode包含以下错误信息: