概述
动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02、L8600-R-02,更多MODBUS TCP协议资料欢迎交流!
出厂默认配置:
从机地址 | 02 |
复位配置 | 标准主从模式、天线为开启状态 |
想要读卡器读到卡就发送数据(从机主动发送模式):开机后要发指令:02 06 00 00 00 03 C9 F8
串口配置(8位数据位):
波特率 | 19200 |
校验 | 1位偶校验 |
停止位 | 1位 |
系统可配置内容:(16进制通信)
- 天线开关和应答模式,(从机主动发送)模式时读卡器读到卡后会主动往总线发读卡数据;(主从模式)时是读卡器不会主动返回数据,等到主机访问才回复数据。此配置数据断电不保存,需要每次上电进行一次配制。(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 06 00 00 00 03 C9 F8 | 天线开,从机主动发送 | 02 06 00 00 00 03 C9 F8 | 通常应用在一主一从的通信中 |
02 06 00 00 00 02 08 38 | 天线开,主从模式 | 02 06 00 00 00 02 08 38 |
|
02 06 00 00 00 01 48 39 | 天线关,从机主动发送 | 02 06 00 00 00 01 48 39 |
|
02 06 00 00 00 00 89 F9 | 天线关,主从模式 | 02 06 00 00 00 00 89 F9 |
|
- 卡片的后带数据长度和读卡器地址。后带数据指的是有些卡片发送数据除了卡号和国家代号外,后面还带有其他数据,当前产品支持最多访问20个字节的数据(160位)。此配置数据保存,断电不丢失。(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 06 00 01 A0 02 21 F8 | A0(160)个位。地址0x02 (范围:1-247) | 02 06 00 01 A0 02 21 F8 | 读取后带数据160位,地址配置为0x02 |
02 06 00 01 00 02 59 F8 | 无后加数据(范围:0-160),地址0x02 (范围:1-247) | 02 06 00 01 00 02 59 F8 | 配置值不在范围时,返回值正常,但系统不理会。 |
读取数据:(16进制通信)
- 读取天线开关和应答模式信息。(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 03 00 00 00 01 84 39 | 回读0x00地址信息 | 02 03 02 00 03 BC 45 | 天线开,从机主动发送 |
2、读取后带数据长度、地址、版本号信息。(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 03 00 01 00 04 15 FA | 回读0x01-0x04地址信息 | 02 03 08 A0 02 17 05 B1 FA 00 01 BA C1 | 后带数据长0xA0,地址:0x02,版本信息: 17 05 B1 FA 00 01 |
3、读取系统调谐状态信息(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 03 00 05 00 09 95 FE | 回读0x05-0x0D地址信息 | 02 03 12 B5 3F 50 62 81 9C B9 B6 98 8A 70 60 52 4A 41 3C 37 05 26 AA | 系统调谐状态信息,用于查看模块工作状态,平常不用读取 |
4、读卡数据读取:(16进制通信)
主机发送命令 | 配置内容 | 读卡器返回 | 备注 |
02 03 00 0E 00 07 65 F8 | 回读0x0E-0x15地址信息,长度为0x07 | 02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E DC F6 | 读取到卡号等卡片信息 |
02 03 00 0E 00 11 E4 36 | 回读0x0E-0x1F地址信息,长度为0x11 | 02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 FF 20 D5 CF | 读取到卡号信息和后带数据信息 |
读卡数据读取的长度可以从0x07-0x11(就是说回读信息地址可以从(0x0E-0x15)到(0x0E-0x1F))。
发送命令分析(02 03 00 0E 00 07 65 F8)
02: 从机地址;
03: 读取功能(MODBUS-RTU);
000E:读取寄存器地址;
0007:读取数据长度(7个字14 Bytes);
65F8:前面所有数据(02 03 00 0E 00 07)的CRC检验值,低字节先发。
接收命令分析:(02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E DC F6)
02:从机地址;
03: 读取功能(MODBUS-RTU);
0E:回读数据长度(14 Bytes);
0262:国家代号(10进制610)
07B660CB53:卡号数据(10进制33124567891)
00:0000 0000最低位代表后加数据是否有效(0无效、1有效),其他7位是未定义数据。
80:1000 0000最高位代表动物标志,其他7位是未定义数据。
000000:卡内其他数据,未定义数据。
00:数据传输补充够偶数字节(14 Bytes),无意义
3E: 当前数据的读卡时间(0x3E*0.02s) 证明是1.24s 前读到的,最多计算到5.1s前。
DCF6:前面整个数据包(02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E)的CRC检验。DC为低字节,F6为高字节。
接收命令分析:(02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 FF 20 D5 CF)
02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00:和以上分析一致。
11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43:20字节的后加数据。
FF:数据传输补充够偶数字节(34 Bytes),无意义。
20:当前数据的读卡时间(0x20*0.02s) 证明是0.64s 前读到的,最多计算到5.1s前。
D5CF: 前面整个数据包的CRC检验,D5为低字节,CF为高字节。
从机主动发信息的方式:机器读到卡会马上发一帧数据,如果卡片一直不离开数据不会重复发送,如果卡离开0.2s以上再进入机器会再发一帧数据(每次卡片进入都会实时往总线发送一帧数据)
当将读卡器配置为从机主动发送模式后,读卡器读到卡就马上往总线上发卡号信息,信息的长度可以配置,比如我们将后加数据长度配置为30位(16位以下不发送后带数据,后带数据从16-160有效),35位为4个字节3位需要5个字节来发送,所以字符串数据长度为12(卡号信息长度)+5=17字节,但是由于数据长度数要偶数(字),所以后面要补个随机数,即18个。所以字符串的构成就是0xxx(从机地址)+0x03(功能)+0x12(18个字节)+18个字节数据+2字节CRC。总共23个字节。(后加数据如果没有需要时最好配0,有利于数据传输)
例如后加数据配置A0(160位、20字节)。卡片有后加数据时收到的数据为:
03 03 20 02 62 07 B6 60 CB 53 01 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 C1 26
03:从机地址;
03: 读取功能(MODBUS-RTU);
20:回读数据长度(32 Bytes);
0262:国家代号(10进制610)
07B660CB53:卡号数据(10进制33124567891)
01:0000 0001最低位代表后加数据是否有效(0无效、1有效),其他7位是未定义数据。
80:1000 0000最高位代表动物标志,其他7位是未定义数据。
000000:卡内其他数据,未定义数据。
11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43:是后加数据20个字节。
C126:CRC校验。
将后加数据配置为0后读到数据:02 03 0C 02 62 07 B6 60 CB 53 01 80 00 00 00 17 35
02:从机地址;
03: 读取功能(MODBUS-RTU);
0C:回读数据长度(12 Bytes);
0262:国家代号(10进制610)
07B660CB53:卡号数据(10进制33124567891)
01:0000 0001最低位代表后加数据是否有效(0无效、1有效),其他7位是未定义数据。
80:1000 0000最高位代表动物标志,其他7位是未定义数据。
000000:卡内其他数据,未定义数据。
1735: CRC校验
本协议符合MODBUS- RTU标准,支持0地址广播监听功能(可以用于配置从机地址等信息)。但是广播命令从机不做回复。
CRC校验函数:
unsigned int CRC16_MB(unsigned char *cBuffer, unsigned int iBufLen)
{
unsigned int i, j;
unsigned int wPolynom = 0xa001;
unsigned int wCrc = 0xffff;
for (i = 0; i < iBufLen; i++)
{
wCrc ^= cBuffer[i];
for (j = 0; j < 8; j++)
{
if (wCrc &0x0001)
{
wCrc = (wCrc >> 1) ^ wPolynom;
}
else
{
wCrc = wCrc >> 1;
}
}
}
return wCrc;
}
附录:
设备地址 | 命令 | 寄存器地址 | 内容 | 实现的功能 |
02
| 06
| 00 00 (配置后断电不保存)
| b15- b3:无定义,(上电默认:00 02) | b0==1:从机主动发送通常应用在一主一从的通信中 |
b0==0:主从模式 | ||||
b1==1:天线开 | ||||
b1==0:天线关 | ||||
b2==1:从机主动发送模式下,读到卡连续发送数据 | ||||
b2==0:从机主动发送模式下,卡进入一次场区发送一次数据 | ||||
00 01 (配置后断电保存) | A0 02 | 读取后带数据160(0xA0)位,设备地址配置为0x02 | ||
00 02 | 无后加数据,设备地址0x02 | |||
03
| 00 00 | 00 01 | 返回0x00地址信息,即天线状态和发送模式 | |
00 01 | 00 04 | 后带数据长度和地址以及版本信息 | ||
00 05 | 00 09 | 系统调谐状态信息,用于查看模块工作状态,平常不用读取 | ||
以上命令仅支持以上格式读写 | ||||
02 | 03 | 00 0E | 00 01 ~ 00 11 | 读取到卡号信息和后带数据信息 |
最后
以上就是动人毛衣为你收集整理的动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02、L8600-R-02,更多MODBUS TCP协议资料欢迎交流!的全部内容,希望文章能够帮你解决动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02、L8600-R-02,更多MODBUS TCP协议资料欢迎交流!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复