CK-FR104ANS-AB高频四通道工业读卡器|读写器支持RS232|RS485 (Modbus RTU)协议,支持ISO15693协议高频载码体数据读取,支持写寄存器、支持IO输入、输出等功能,本文将重点其通信操作示例。
一、功能码03读取操作
1、获取读卡器配置信息
读卡器的一些参数查询保存在0x0000~ 0x0009十个地址中(详细功能说明见开发手册)。
主机发送:02 03 00 00 00 04 44 3A
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 03 |
开始地址(高字节) | 00 |
开始地址(低字节) | 00 |
数量(高字节) | 00 |
数量(低字节) | 04 |
CRC校验(高字节) | 44 |
CRC校验(低字节) | 3A |
读卡器应答:02 03 08 00 02 00 00 00 00 00 01 78 93
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 03 |
字节数 | 08 |
数据(寄存器0x0000高字节) | 00 |
数据(寄存器0x0000低字节) | 02 |
数据(寄存器0x0001高字节) | 00 |
数据(寄存器0x0001低字节) | 00 |
数据(寄存器0x0002高字节) | 00 |
数据(寄存器0x0002低字节) | 00 |
数据(寄存器0x0003高字节) | 00 |
数据(寄存器0x0003低字节) | 01 |
CRC校验(高字节) | 78 |
CRC校验(低字节) | 93 |
2、 读取标签UID信息
标签的UID信息保存在0x000A,0x000B,0x000C,0x000D在4个寄存器中。
主机发送:02 03 00 0A 00 04 64 3B
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 03 |
开始地址(高字节) | 00 |
开始地址(低字节) | 0A |
数量(高字节) | 00 |
数量(低字节) | 04 |
CRC校验(高字节) | 64 |
CRC校验(低字节) | 3B |
读卡器应答(读卡成功): 02 03 08 BB 2B A4 5F 50 01 04 E0 85 F7
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 03 |
字节数 | 08 |
数据(寄存器0x0006高字节) | BB |
数据(寄存器0x0006低字节) | 2B |
数据(寄存器0x0007低字节) | A4 |
数据(寄存器0x0007高字节) | 5F |
数据(寄存器0x0008低字节) | 50 |
数据(寄存器0x0008高字节) | 01 |
数据(寄存器0x0009低字节) | 04 |
数据(寄存器0x0009高字节 | E0 |
CRC校验(高字节) | 85 |
CRC校验(低字节) | F7 |
3、读写状态查询命令
每次进行读写操作时,读写状态均保存在0x0005寄存器中,可通过查询0x0005寄存器数值获取读写操作状态。
读写状态查询命令为02 03 00 02 00 01 94 38,即只查询0x0005寄存器。
该命令用于查询上一条除读写状态查询命令外的读写命令状态,即该寄存器不记录该读写状态查询命令的状态。
主机发送02 03 00 02 00 01 25 F9
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 03 |
开始地址(高字节) | 00 |
开始地址(低字节) | 02 |
数量(高字节) | 00 |
数量(低字节) | 01 |
CRC校验(高字节) | 25 |
CRC校验(低字节) | F9 |
读卡器应答(上一次的操作成功): 02 03 02 00 00 FC 44
读卡器应答(上一次读操作错误): 02 03 02 00 01 3D 84
读卡器应答(上一次写操作错误): 02 03 02 00 02 7D 85
注:当读操作中包含读写状态寄存器时,返回的数值中,读写状态寄存器状态均为上一次读写操作(非读写操作查询命令操作)的状态。
二、功能码06/16写寄存器
1、功能码06写单个寄存器
更改读卡器天线使用通道,读卡器天线使用的通道保存在0x0003寄存器中。
主机发送02 06 00 03 00 02 F8 38
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 06 |
写入地址(高字节) | 00 |
写入地址(低字节) | 03 |
写入数据(高字节) | 00 |
写入数据(低字节) | 02 |
CRC校验(高字节) | F8 |
CRC校验(低字节) | 38 |
读卡器应答:02 06 00 03 00 02 F8 38
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 06 |
写入地址(高字节) | 00 |
写入地址(低字节) | 03 |
写入数据(高字节) | 00 |
写入数据(低字节) | 02 |
CRC校验(高字节) | F8 |
CRC校验(低字节) | 38 |
读卡写失败应答:02 06 0B 92 67
2、功能码16写多个寄存器
将数据写入RFID标签0x000E, 0x000F,0x0010,0x0011四个寄存器中。
主机发送:02 10 00 0E 00 04 08 00 01 00 02 00 03 00 04 84 6F
接收 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 10 |
起始地址(高字节) | 00 |
起始地址(低字节) | 0E |
寄存器数量(高字节) | 00 |
寄存器数量(低地址) | 04 |
字节数 | 08 |
数据(寄存器0x000A高字节) | 00 |
数据(寄存器0x000A低字节) | 01 |
数据(寄存器0x000B高字节) | 00 |
数据(寄存器0x000B低字节) | 02 |
数据(寄存器0x000C高字节) | 00 |
数据(寄存器0x000C低字节) | 03 |
数据(寄存器0x000D高字节) | 00 |
数据(寄存器0x000D低字节) | 04 |
CRC校验(高字节) | 84 |
CRC校验(低字节) | 6F |
写应答:02 10 00 0E 00 04 A0 3A
三、功能码01读取输出IO状态
读取设备输出IO状态,由于只有一个输出IO,发送数据帧固定为02 01 00 01 00 01 AC 39
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 01 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 01(固定) |
数量(高字节) | 00(固定) |
数量(低字节) | 01(固定) |
CRC校验(高字节) | AC |
CRC校验(低字节) | 39 |
读卡器应答(处于输出状态时): 02 01 01 01 90 0C
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 01 |
字节数 | 01 |
输入IO状态 | 01(输出状态) |
CRC校验(高字节) | 90 |
CRC校验(低字节) | 0C |
读卡器应答(无输出状态时): 02 01 01 00 51 CC
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 01 |
字节数 | 01 |
输入IO状态 | 00(无输出) |
CRC校验(高字节) | 51 |
CRC校验(低字节) | CC |
1、功能码02读取输入IO状态
读取设备输入IO状态,由于只有一个输入IO,发送数据帧为02 02 00 00 00 01 B9 F9
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 02 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 00(固定) |
数量(高字节) | 00(固定) |
数量(低字节) | 01(固定) |
CRC校验(高字节) | B9 |
CRC校验(低字节) | F9 |
读卡器应答(有外部输入状态时): 02 02 01 01 60 0C
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 02 |
字节数 | 01 |
输入IO状态 | 01(有输入) |
CRC校验(高字节) | 60 |
CRC校验(低字节) | 0C |
读卡器应答(无外部输入状态时): 02 02 01 00 A1 CC
应答 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 02 |
字节数 | 01 |
输入IO状态 | 00(无输入) |
CRC校验(高字节) | A1 |
CRC校验(低字节) | CC |
2、 功能码05置位或复位输出IO状态
设置设备输出IO状态,当要置位输出IO时发送数据帧为02 05 00 01 FF 00 DD C9
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 05 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 01(固定) |
数量(高字节) | FF(固定) |
数量(低字节) | 00(固定) |
CRC校验(高字节) | DD |
CRC校验(低字节) | C9 |
设置成功后读卡器应答: 02 05 00 01 FF 00 DD C9
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 05 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 01(固定) |
数量(高字节) | FF(固定) |
数量(低字节) | 00(固定) |
CRC校验(高字节) | DD |
CRC校验(低字节) | C9 |
当要复位输出IO时发送数据帧为02 05 00 01 00 00 9C 39
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 05 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 01(固定) |
数量(高字节) | 00(固定) |
数量(低字节) | 00(固定) |
CRC校验(高字节) | 9C |
CRC校验(低字节) | 39 |
设置成功后读卡器应答:02 05 00 01 00 00 9C 39
发送 | |
段名 | 例子(HEX格式) |
从机地址 | 02 |
功能码 | 05 |
开始地址(高字节) | 00(固定) |
开始地址(低字节) | 01(固定) |
数量(高字节) | 00(固定) |
数量(低字节) | 00(固定) |
CRC校验(高字节) | 9C |
CRC校验(低字节) | 39 |