低频工业读写器|读卡器|阅读器CK-LR03-A01是一款基于射频识别技术的低频RFID标签读卡器。RFID 工作频率为134K 支持对FDX-B和EMID标准协议格式标签的读取,以及对FDX-B标准协议格式标签的写入。
低频工业读写器|读卡器|阅读器CK-LR03-A01同时支持标准工业通讯协议MODBUS RTU,方便用户通集成到PLC等控制系统中。读卡器内部集成了射频部分通信协议,用户只需通过通信接口接收数据便能完成对标签的读取操作,而无需理解复杂的射频通信协议。
本文将重点介绍低频工业读写器|读卡器|阅读器CK-LR03-A01与FX1N三菱PLC联机应用。
一、CK-LR03-A01通信连接
1、接线说明
线序 | Pin1 | Pin2 | Pin3 | Pin4 |
485版本 | 电源24V+ | 485-A | 电源- | 485-B |
CK-LR03-A01接线说明 | ||
读卡器端口 | 读卡器端定义 | PLC端 |
PIN1 | 电源24V+ | 24V+ |
PIN2 | 485-A | 485 DB9的1号A+针脚 |
PIN3 | 电源- | COM |
PIN4 | 485-B | 485 DB9的2号B-针脚 |
2、通信格式
通信接口:RS485
数据位:8个
奇偶校验位:无
停止位:1个
波特率:9600
输出编码格式:Modbus RTU
3、数据格式
3.1、功能码03读取操作
读取卡片数据 (寄存器:0x06~0x09)
发送 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 03 |
开始地址(高字节) | 00 |
开始地址(低字节) | 06 |
数量(高字节) | 00 |
数量(低字节) | 04 |
CRC校验(高字节) | A4 |
CRC校验(低字节) | 3B |
应答 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 03 |
字节数 | 08 |
数据(寄存器0x06高字节) | 00 |
数据(寄存器0x06低字节) | 00 |
数据(寄存器0x07高字节) | F9 |
数据(寄存器0x07低字节) | C0 |
数据(寄存器0x08高字节) | 00 |
数据(寄存器0x08低字节) | 00 |
数据(寄存器0x09低字节) | FF |
数据(寄存器0x09低字节) | FF |
CRC校验(高字节) | 8F |
CRC校验(低字节) | 5B |
3.2、功能码06写单寄存器操作
将读卡器站号改写成03 (寄存器:0x00)
发送 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 06 |
开始地址(高字节) | 00 |
开始地址(低字节) | 00 |
写入数据(高字节) | 00 |
写入数据(低字节) | 03 |
CRC校验(高字节) | C9 |
CRC校验(低字节) | F8 |
应答 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 06 |
开始地址(高字节) | 00 |
开始地址(低字节) | 00 |
写入数据(高字节) | 00 |
写入数据(低字节) | 03 |
CRC校验(高字节) | C9 |
CRC校验(低字节) | F8 |
3.3、功能码16写多个寄存器
将数据写入标签内 (寄存器:0x0A~0X0D)
发送 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 10 |
起始地址(高字节) | 00 |
起始地址(低字节) | 0A |
数量(高字节) | 00 |
数量(低字节) | 04 |
字节数 | 08 |
数据(寄存器0x0A高字节) | 00 |
数据(寄存器0x0A低字节) | 01 |
数据(寄存器0x0B高字节) | 00 |
数据(寄存器0x0B低字节) | 02 |
数据(寄存器0x0C高字节) | 00 |
数据(寄存器0x0C低字节) | 03 |
数据(寄存器0x0D低字节) | 00 |
数据(寄存器0x0D低字节) | 04 |
CRC校验(高字节) | 75 |
CRC校验(低字节) | A0 |
写成功应答 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 10 |
开始地址(高字节) | 00 |
开始地址(低字节) | 0A |
写入数据(高字节) | 00 |
写入数据(低字节) | 04 |
CRC校验(高字节) | E1 |
CRC校验(低字节) | FB |
写失败应答 | |
段名 | 例子(HEX格式) |
从站地址 | 02 |
功能码 | 90 |
错误代码 | 08 |
CRC校验(高字节) | BD |
CRC校验(低字节) | C6 |
3.4、寄存器定义表
寄存器地址 | 定义内容 | 寄存器地址 | 定义内容 |
0 | 从站地址 | 1 | 232速率 |
2 | 通信校验 | 3 | 读卡模式 |
4 | 系统状态 | 5 | RSSI(信号强度) |
6 | Read UID | 7 | Read UID |
8 | Read UID | 9 | Read UID |
10 | Write UID | 11 | Write UID |
12 | Write UID | 13 | Write UID |
二、程序编写
1、硬件选型
PLC:三菱FX1N-14MR
通信模块:FX1N-485-BD
读卡器:CK-LR03-A01
2、软件选型
编程组态软件:GX Works2 Version 1.555D
3、组态
3.1、PLC选型
3.2、参数配置
3.2.1、通信格式设置
根据FX1N-485-BD数据手册内指示,发送指定内容初始化模块。
这里发送的H81代表了:数据长度8位,奇偶性校验 无,停止位1位,波特率9600
3.2.2、缓存区设置
从D200开始的K20个字分配给发送缓冲区
从D220开始的K20个字分配给接收缓冲区
三、程序编写
初始化:
第1步的Y0只是一个运行指示灯无需理会
第3步的MOV指令是给模块进行初始化设置
第8步的SET指令指定数据处理位为8位
第10步的ZRST指令将D0到D300之间的数据进行清空复位
第16步的RS指令设置了从D200开始的K20个字分配给发送缓冲区从D220开始的K20个字分配给接收缓冲区
将上面表格内的数据依次填入D200开始发送缓冲区 使用SET指令置位M8122发送标志位
在M0被使能后通过 特殊辅助继电器M8012 每隔100ms读一次卡片数据
在M8123接收完成寄存器被使能后
使用BMOV指令对接收回来的数据进行批量传送
再使用RST指令复位M8123这个完成接收寄存器
最后用ZRST指令对接收缓冲区内进行清零,防止下次接收回来的数据错乱
打开 软元件/缓冲储存器批量监视 可看到D200到D219储存了待发送的数据,而在D220到D239里面储存了接收回来的数据
其余寄存器的操作如同上面,只需修改对应的数据即可。
由于FX1N的扩展指令不支持CRC运算,故不做演示。有需要使用的可参考三菱官方的编程手册。