我是靠谱客的博主 动人毛衣,最近开发中收集的这篇文章主要介绍动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02、L8600-R-02,更多MODBUS TCP协议资料欢迎交流!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

动物电子耳标阅读器|识读器|读卡器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

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

 

 

最后

以上就是动人毛衣为你收集整理的动物电子耳标阅读器|识读器|读卡器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协议资料欢迎交流!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部