01
概述
Modbus TCP通讯协议是由Modicon公司(现已经为施耐德公司并购,成为其旗下的子品牌)于1979年发明的,是全球最早用于工业现场的总线规约。
Modbus通信协议采用的是主从通信模式(即Master/Slave通信模式),其在分散控制方面应用极其广泛,从而使得Modbus协议在全球得到了广泛的应用。
Modbus通信协议具有多个变种,其具有支持串口(主要是RS-485总线),以太网多个版本。
本期我们来注重介绍一下如何使用Superisys RFID Modbus TCP总线网关与西门子1200系列PLC通讯进行通讯读写。
IACM-P4工业网关
Superisys IACM-P4-EN总线模块是一种提供标准工业总线协议的RFID控制器,支持MODBUS TCP协议;包含2个M12 T CODE电源供电接口,1个M12 D CODE 4-PIN 总线接口,4个M12 A CODE RFID读写头接口;外壳采用坚固的锌合金金属材料,具有连接范围厂、通信能力强、环境适应好、防护等级高等特点。
02
硬件架构介绍
01
✦两种协议设置✦
DEMO软件设置协议模式
★连接网关,在设置里面找到“模块工作模式” 可选择总线模式和协议转换两种模式。如下图所示:
总线模式应用特点:
①标签靠近可以主动上报标签UID数据;
②标签的USER区读写是按照字节单位进行读写;
③针对USER区读写字节数可以随意拓展(无限制);
④RFID只占用一个TCP/IP连接资源;
⑤程序占用的资源较大(寄存器内存资源)。
协议转换模式应用特点:
①标签靠近可以不可主动上报标签UID数据;
②标签的USER区读写是按照字单位进行读写;
③针对USER区读写字数限制为一次性最大120个;
④RFID占用4个TCP/IP连接资源;
⑤程序占用的资源较小(寄存器内存资源)。
下图示意为总线模式的设置:
02
✦ 两种协议介绍✦
2.1 总线模式
★ RFID读写功能块介绍
提供的程序:
功能块:“RFID_RW_FB”—— RFID读头读写功能块程序调用;
网关通讯功能块:“MConn_ENGateWay_FB”——四个RFID端口通讯调用;
★ RFID通讯功能说明
一个“MConn_ENGateWay_FB”功能块实例调用对应四个读写头通讯网关,功能块详解如下:
★一个“RFID_RW_FB”功能块实例调用对应一个读写头的通讯连接,功能块详解如下
每个功能块实例对应一个读写头,功能块引脚定义及功能如下:
所有命令信号互斥,同一时间只能有一个命令信号为高电平,功能块只会执行第一个检测到的有效信号。
★RFID读写头通讯连接
本例程中,读写头的通讯连接参数为读写头IP地址和连接ID号:
设置完成后,下载程序后将PLC启动,连接网关会自动建立通讯连接。如下图所示:
接着把对应的RFID读头插到对应的网关端口即可显示读头的连接状态,如下图所示:
2.2 总线模式的读写头读/写功能示例
★命令执行时序
在执行读写标签内存数据命令时,需要先填写好读写的参数(读写标签内存的起始地址,字节长度,写入的数据填充区数据内容等),然后再触发读写命令,具体的命令执行时序如下图所示:
★写标签内存数据区
①写入标签USER数据
👇 操作步骤如下(数据填充在arrWriteData):
a) 标签靠近读写头;
b) 设置wWriteAddress值为0,设置读写起始地址为0;
c) 设置iWriteLength值为8,读写8个寄存器数据(起始地址以及长度参数不能超过标签的最大内存区);
d) 在arrWriteData [0]~ arrWriteData [7]中填充要写入的数据内容;
e) 使能xWrite值为TRUE,触发写入USER区数据;
等待xWriteDone或xWriteError信号,当xWriteError为TRUE时,写入失败,可通过对应的wErrorCode查看对应的错误代码,分析错误原因,当xWriteDone为TRUE时,表明写入成功,可读取查看arrReadUserData(标签内存数据)是否正确写入。
触发写入标签USER内存数据示意如下图所示:
★读标签内存数据区
①读标签USER区数据
👇 操作步骤如下(数据存储在arrReadData):
a) 标签靠近读写头;
b) 设置wReadAddress值为0,设置读写起始地址为0;
c) 设置iReadLength值为8,读写8个寄存器数据(起始地址以及长度参数不能超过标签的最大内存区域)
d) 使能xRead值为TRUE,触发读USER区数据;
e) 等待xReadDone或xReadError信号,当xReadError为TRUE时,读取失败,可通过对应的wErrCode查看对应的错误代码,分析错误原因,当xReadDone为TRUE时,表明读取成功。
读USER区数据参数示意:
与上文写入数据比较一致,证明写入成功
②读标签UID数据
👇 操作步骤如下(数据存储在arrUIDData):
a) 标签靠近读写头,在主动模式下,读头会自动上报UID数据。
标签UID内存数据示意如下图所示:
2.3 协议转换模式
★RFID读写功能块介绍
提供的程序:
功能块:“ModbusTCP_FB”—— RFID通讯功能块程序调用;
★RFID通讯功能说明
一个“ModbusTCP_FB”功能块实例调用对应一个读写头通讯,功能块详解如下:
★RFID读写头通讯连接
本例程中,读写头的通讯连接参数为读写头IP地址、RFChannel、连接ID号:
设置完成后,下载程序后将PLC启动,连接网关会自动建立通讯连接。如下图所示:
2.4 协议转换读写头读/写功能示例
★命令执行时序
在执行读写标签内存数据命令时,需要先填写好读写的参数(读写标签内存的起始地址,字节长度,写入的数据填充区数据内容等),然后再触发读写命令,具体的命令执行时序如下图所示:
★写标签内存数据区
写入标签USER数据
👇 操作步骤如下(数据填充在WriteData):
a) 标签靠近读写头;
b) 设置RegisterAddr值为0,设置读写起始地址为0;
c) 设置RegisterCount 值为8,读写8个寄存器数据(起始地址以及长度参数不能超过标签的最大内存区);
d) 在WriteData [0]~ WriteData [7]中填充要写入的数据内容;
e) 使能WriteUser值为TRUE,触发写入USER区数据;
等待OUT_Done或OUT_Error信号,当OUT_Error为TRUE时,写入失败,可通过对应的OUT_Status查看对应的错误代码,分析错误原因,当OUT_Done为TRUE时,表明写入成功,可读取查看ReadUserData(标签内存数据)是否正确写入。
触发写入标签USER内存数据示意如下图所示:
读标签内存数据区
①读标签USER区数据
👇操作步骤如下(数据存储在ReadData):
a) 标签靠近读写头;
b) 设置RegisterAddr值为0,设置读写起始地址为0;
c) 设置RegisterCount 值为8,读写8个寄存器数据(起始地址以及长度参数不能超过标签的最大内存区域)
d) 使能ReadUser值为TRUE,触发读USER区数据;
e) 等待OUT_Done或OUT_Error信号,当OUT_Error为TRUE时,读取失败,可通过对应的OUT_Status查看对应的错误代码,分析错误原因,当OUT_Done为TRUE时,表明读取成功。
读USER区数据参数示意:
与上文写入数据比较一致,证明写入成功
②读标签UID数据
👇操作步骤如下(数据存储在ReadUIDData):
👇读取UID数据只需使能ReadUID即可,无需设定起始地址和长度。
03
✦错误码✦
3.1 错误码详细定义
总线工作模式下功能块自定义错误码(命令执行错误时):
协议转换模式下Modbus定义错误:
读写头自定义错误码(命令执行错误时):
主推产品Main product
1工业RFID低频读写器
2工业RFID高频读写器
3工业RFID超高频读写器
4工业RFID总线通讯模块
5工业RFID高频载码体
6工业RFID超高频载码体
产品优势Product advantage
关于我们About us
苏培(Superisys)成立于2018年,是工业识别、通讯、传感和数据的技术提供商,在中国武汉拥有生产基地、在长沙、和加拿大多伦多拥有研发中心和技术中心,旗下拥有工业识别,工业通讯,以及工业传感和数据解决方案产品线;拥有多项发明专利和著作权、参与多项传感器和激光设备的国际标准,已成为北美、和亚太地区在工业自动化AIOT领域知名的产品品牌;真正实现“Designed In Toronto&Made in China”;
Superisys的产品和解决方案广泛应用于全球的汽车、新能源、光伏、消费电子、家电、工程机械、航空、航天、轨道交通、石油化工、服装等行业;用我们的“可靠”与“创新”推动这些行业的工业4.0的全场景达成,成为全球工业传感和通讯在工业4.0领域智能化的参与者;
Superisys,以super和intelligent System为寓意,致力成为您可信赖的智能制造合作伙伴!
关注苏培智能