动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明

动物电子耳标阅读器|识读器|读卡器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进制通信)

  1. 天线开关和应答模式,(从机主动发送)模式时读卡器读到卡后会主动往总线发读卡数据;(主从模式)时是读卡器不会主动返回数据,等到主机访问才回复数据。此配置数据断电不保存,需要每次上电进行一次配制。(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

 

  1. 卡片的后带数据长度和读卡器地址。后带数据指的是有些卡片发送数据除了卡号和国家代号外,后面还带有其他数据,当前产品支持最多访问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进制通信)

  1. 读取天线开关和应答模式信息。(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

读取到卡号信息和后带数据信息

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值