/ EN
400-788-0086

如何使用EtherCAT总线网关与倍福TwinCAT3系列PLC通讯



概述

EtherCAT(以太网控制自动化技术) 是由德国倍福公司开发的、基于以太网的开放现场总线系统,EtherCAT为系统的实时性能和拓扑的灵活性树立了新的标准,

同时,它还符合甚至降低了现场总线的使用成本。EtherCAT的特点还包括高精度设备同步,可选线缆冗余,和功能性安全协议(SIL3)。


本期我们来注重介绍一下如何使用Superisys RFID EtherCAT总线网关与倍福TwinCAT3系列PLC进行通讯读写


IACM-P4工业网关




       

171613500.png

 Superisys IACM-P4系列工业网关是一种提供标准工业总线协议的RFID控制器,支持ProfiNet、EtherCAT、Ethernet/IP协议。包含两个M12 T-CODE电源供电接口,两个M12 D-CODE 4-PIN 总线接口,4个M12 A-CODE RFID读写头接口。工业以太网传输速率最高支持100Mbps,可级联多个总线模块到PLC中,提供强大的现场采集数据能力。外壳采用轻便坚固的工程塑料,具有连接范围厂、通信能力强、环境适应好、防护等级高等特点。

图片

可同时连接4个RFID读写头进行独立操作;

图片

支持ProfiNet、EtherCAT、EtherNet/IP协议;

图片

IP67的防护等级,能够适应油污、粉尘、潮湿等恶劣工况;

图片

双网口,集成交换机功能,可组星型网络和树型网络;

图片

电源输入带反接保护和3000W浪涌保护,RFID端口带防反接和过压过流保护。

02

硬件架构介绍


RFID架构系统主要组成如下:


微信图片_2025-12-17_180204_853.jpg

控制器

(PLC)

下发命令控制读写头进行操作;

网关总线

控制器

PLC与网关总线控制器进行通讯,间接控制读写头;

读写头

(超高频

/高频)

获取控制器的命令,执行对载码体的读/写数据操作;

载码体

(超高频

/高频)

存储数据的载体,数据存储区域划分如下:

高频标签有UID区(通常只有8 byte/只读且唯一)、USER区(一次最大2000 byte(实际内存大小因标签类型而异)/可读可写);




01

✦组态网关设备



1.1 总线网关ECT文件安装



★ 打开TwinCAT3编程软件,新建一个项目程序,选择对应的PLC具体型号(本案例使用的是“CX9020”型号,配合“EK1110”EtherCAT通讯模块),命名完成新建后,将配置文件手动存放在“”目录下,如下图所示

图片1.jpg

选择相应文件夹下的“Superisys IACM-P4-ECT_V1.0”文件,将其放置该文件夹下即可。


02

✦ 网关设备的组态



2.1 PLC在线



★ 双击“SYSTEM”,在右方弹出的对话框中找到”Choose Target”按钮,在弹出的“Choose Target system”对话框选择目标系统,如下图所示:

图片2.jpg

★ 点击“CX Setting”选项栏,可在线查看PLC的设备名称等信息,如下图所示:

图片3.jpg

针对Data Time时间进行手动矫正,如下图所示:

图片4.jpg

备注:需要注意系统的时间如果跟实际的时间不匹配的情况下,可能造成PLC程序下载出错。




2.2 ECT网关扫描



★找到”I/O”栏下面的“Devices”,右键选择“Scan”,扫描EtherCAT从站设备,在弹出的对话框中依次按照图示进行选择操作,如下图所示:

图片5.jpg
图片6.jpg
图片7.jpg
图片8.jpg
图片9.jpg

即可扫描出EtherCAT网关设备,如下图所示,为“Box3”设备:

图片10.jpg

备注:PLC的ETHERCAT通讯接口与“IACM-P4-ECT”总线网关的通讯连接必须接总线网关的“ETH1”通讯接口。



2.3 ECT网关的变量关联



★ 在全局变量中新建EtherCAT总线网关的RFID输入输出映射变量,如下图所示:

图片11.jpg

★ 在“Box3”下的“TxPDO”输入地址映射中,选择数组下面【0】~【31】共32个Byte进行地址关联,关联至“inputaddr0”地址,点击“OK”即可,如下图所示:

图片12.jpg

其它地址依次关联即可。


★ 在“Box3”下的“RxPDO”输入地址映射中,选择数组下面【0】~【31】共32个Byte进行地址关联,关联至“outputaddr0”地址,点击“OK”即可,如下图所示:

图片13.jpg

其它地址依次关联即可。

备注:EtherCAT总线网关总共占用128个字节的输入以及输出地址,分别按照顺序分配给RF1~RF4端口,即【0】~【31】分配给RF1,【32】~【63】分配给RF2,【64】~【95】分配给RF3,【96】~【127】分配给RF4。


03

✦ 功能块的介绍及使用


打开“TwinCAT3”编程软件,打开例程程序。




3.1网关RFID通道的变量映射



★ 打开“POUs”下的“MAIN”主函数,RFID通道的输入输出地址映射关系如下图所示:

RF1~RF4通道输入输出地址分别对应inputaddr0~inputaddr3以及outputaddr0~outputaddr3。

图片14.jpg



3.2 RFID读写程序介绍



★ 提供的程序:

调用程序:“POUs”——MAIN主函数任务下下调用 RFID功能块程序;

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

全局变量:“Global_Variables”——RFID IO映射;

备注:用户在使用的过程中可将此部分内容赋值至新建程序中。



3.3 RFID读写功能块引脚说明




★ 一个“HF_ECTGateWayDemo”功能块实例调用对应一个端口通道的读写器,功能块如下:


图片15.jpg


★ 功能块引脚说明

每个功能块实例对应一个读写器,功能块引脚定义及功能如下:


1.jpg

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


★ 命令执行时序

1、使能RFID

使能是使RFID工作的必要条件,在整个工作期间是默认保持RFID使能的。具体的时序如下所示。默认的RFID使能置位后,Ready未置位,则表示总线模块与RFID通讯异常。


图片16.jpg

2、命令执行

命令的执行以Trigger(xRead或xWrite)上升沿信号开始,在给Trigger信号置位之前,先将命令/参数/数据填充好。在命令执行期间保持Trigger信号置位,若取消当面命令的执行,将Trigger复位即可,Trigger后输入数据取的状态信息将复位。命令执行完后可从Read datas/Errcode取命令执行的结果。

图片17.jpg

3、长数据分包传输

在实际应用的过程中,可能存在一次无法传输完数据的情况,此时需要分包进行传输。以PLC启动长数据传输为例,时序图如下:

图片18.jpg

★ 从标签读取数据

当标签在读取范围时,通过读取功能可从标签指定起始地址读取特定长度的数据。命令的执行以”xRead”引脚上升沿触发,在进行读取时,需要先填充部分引脚参数,涉及到的参数如下:

2.jpg

★ 写入数据至标签

当标签静止在读取范围时,通过写入功能可以向一个标签指定的地址写入特定长度的数据。命令的执行以”xWrite”引脚上升沿触发,在命令触发前,需要填写以下参数:

3.jpg






3.4 读写器读/写功能示例



本例程使用RFID1第一个接口进行测试。

当读写器成功连接上后,可对读写器进行读/写操作,如下图所示:

“xReady”信号置1,表明读写器连接成功,即可进行下一步的读写操作:






3.4.1读UID数据区



a) 标签靠近读写器,读写器自动感应标签,标签到位信号“xTP”变为“TRUE”;

自动获取所靠近标签的UID数据,固定长度8个字节,可在arrUIDData查看;

图片19.jpg

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






3.4.2写USER数据区



a) 标签靠近到位,标签到位信号xTP信号的值为“1”;

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

c) 标签到位,标签到位信号xTP信号的值为“TRUE”;

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

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

备注:在“xWrite”信号命令触发前,务必先填充好“a~e”项参数。

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

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

如果xWriteDone值为“1”且xWriteError值为“0”,则说明数据已写入完成;

如果xWriteError为“1”,则说明数据写入失败;

如下图所示:从起始地址0开始,写入8个字节数据进入标签的用户区成功。

图片20.jpg






3.4.3读USER区



a) 标签到位,标签到位信号xTP信号的值为“TRUE”;

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

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

备注:在“xRead”信号命令触发前,务必先填充好“a~c”项参数。

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

e) 查看功能块反馈回来的完成信号xDone和错误信号xError。

如果xReadDone值为“1” 且xReadError值为“0”,则说明数据已读取完成;

如果xReadError为“1”,则说明数据读取失败;

如下图所示:从起始地址0开始,读取8个字节标签的用户区数据成功。

图片21.jpg


对比3.4.2的写入User区的数据,可验证写入和读取数据无误。



04

✦ 错误代码


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


4.jpg


功能块自定义错误码:


5.png



中国区服务热线:400-788-0086

北美热线:+16478798867

扫码关注苏培智能公众号

© 2023 苏培(武汉)智能科技有限公司 版权所有鄂ICP备2022019679号-1