三菱电机 Q 系列 PLC 与图尔克 RFID 串行通信说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三菱电机Q系列PLC与图尔克RFID串行通信说明
作者巢晓阳
实验对象:
三菱电机Q系列PLC:Q38B+Q61P+Q03UDECPU+QJ61BT11N+QJ71C24N
图尔克RFID:BL20-E-GW-RS-MB/ET(串口网关),BL20-2RFID-S(RFID模块),TN-Q80-H1147(RFID读写头),TW-R50-B128(RFID载码体)。
由于图尔克的该串口网关采用Modbus-RTU通信,所以此次QJ71C24N串口模块采用预定义协议方式来进行通信。
一.QJ71C24N串口模块的设置(GX Works2)
1.在“智能功能模块”上点击右键,并选择“添加新模块”。
2.在弹出的对话框中选择如下:
3.双击“开关设置”。
在弹出的对话框中设置如下(此次采用RS485通信,设置CH2如红框中所示):
其中,“通信协议设置”选择“通信协议”表示采用预定义协议方式。
4.双击“各种控制指定”并设置如下:
5.选择“工具”/“通信协议支持功能”/“串行通信模块”。
6.在弹出的窗口中选择“文件”/“新建”。
点击“添加”。
在弹出的对话框中设置如下(由于采用Modbus-RTU通信,“类型”选择“通信协议库”,“制造商”选择“Schneider Electric”,“型号”选择“MODBUS”):
根据此次通信的需要,添加以下2个协议:
1)Write Multiple Registers(功能代码:16)
2)Read Input Registers(功能代码:04)
7.选择“编辑”/“软元件批量设置”。
在弹出的对话框中设置如下:
8.在完成以上设置以后,选择“在线”/“模块写入”将协议设置数据写入到QJ71C24N串口模块中。
9.PLC程序编写(需要使用CPRTCL专用指令来执行预定义协议)
其中,专用指令CPRTCL中的第1个K2表示CH2,第2个K2表示连续执行2条协议,D302中指定的是第1个执行的协议编号为1,D303中指定的是第2个执行的协议编号为2。
二.图尔克串口网关(BL20-E-GW-RS-MB/ET)的设置
该串口网关的默认设置为:Modbus-RTU,数据位8位,偶校验,停止位1位。
另外,可以通过DIP开关进行地址号、波特率、RS232/RS485选择等项的设置。
下图为DIP 开关的示意图:
此次实验中,地址号(ADDRESS:对应D0和D134)设为4(22拨到ON),波特率(Bps)设为9600bps(2个开关均为OFF),RS485(开关拨到ON)。
之前QJ71C24N串口模块的“开关设置”中也已按以上进行了相应的设置。
三.接线
四.Modbus通信说明
1.Modbus寄存器地址表(串口网关)
2.指令
1)Write Multiple Registers(功能代码:16)
根据之前在QJ71C24N串口模块中添加协议时所设置的软元件以及Modbus寄存器地址表,其中Head holding register number(对应D1)应为2048(十进制),由于每个RFID模块占用输出地址长度为24个字节,所以Write points(对应D2)应为12,Number of bytes(对应D3)应为24。
Device data(对应D4~D15)中的具体内容将在第四项的“输出地址”中详细说明。
2)Read Input Registers(功能代码:04)
根据之前在QJ71C24N串口模块中添加协议时所设置的软元件以及Modbus寄存器地址表,其中Head input register number(对应D135)应为0,由于每个RFID模块占用输入地址长度为24个字节,所以Read points(对应D136)应为12。
正常情况下,将会返回以下数据:
Device data(对应D139~D150)中的具体内容将在第四项的“输入地址”中详细说明。
五.图尔克RFID通信具体说明
每个RFID模块(BL20-2RFID-S)有2个通道,可以连接2个读写头。
共占用输入地址长度为24个字节,输出地址长度为24个字节,即每个通道占用输入地址12个字节,占用输出地址12个字节。
1.输入地址(对应D139~D150)的定义如下:
Done(对应D139.7):完成读写操作
Busy(对应D139.6):接收到读写命令,正在等待载码体
XCVR CON:读写头与模块正常通讯标志
XCVR_ON:读写头处于激活状态
Read Data(对应D141~D144):读出的数据(最多一次读8个字节)
TP(对应D139.2):载码体在读写头范围内
Error:当出现故障时,此位为1
2.输出地址(对应D4~D15)的定义如下:
XCVR(对应D4.7):激活读写头
TAG_ID:读取载码体的ID号
Read(对应D4.4):读命令
Write(对应D4.3):写命令
Reset:复位命令
Byte count 2,1,0(对应D4.A,D4.9,D4.8):一次读写的字节数 000=1、001=2、
010=3…111=8(最多一次读写8个字节)
Address high_byte:读写载码体内数据的起始字节数(高8位)
Address low_byte:读写载码体内数据的起始字节数(低8位)
Write Data(对应D6~D9):要写入载码体的数据(最多一次写8个字节)
1)激活读写头,使XCVR=1(输出)。
2)设置读写载码体的起始地址Address byte=0(输出),设置数据长度Byte Count(输出)为8个字节。
3)当进行读操作时,READ(输出)置1后再为0。
当进行写操作时,WRITE(输出)置1后再为0。
六.具体PLC程序
以下程序会进行初始值的设定以及执行预定义协议专用指令。
以下程序会将D1200~D1203中的数据写入到RFID载码体中。
以下程序会将从RFID载码体中读取到的数据保存到D2200~D2203中。