我是靠谱客的博主 大胆洋葱,最近开发中收集的这篇文章主要介绍CK-FR03-B01|CK-FR08-B01工业高频读写器读写头RS232通讯ModbusRTU通信协议说明,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CK-FR03-B01|CK-FR08-B01工业高频读写器读写头的通讯是以 MODBUS RTU通讯协议为基础的,包括读卡器的站号ID、波特率、读卡模式等的配置,以及对标签的读写操作,都可以通过MODBUS 通讯指令实现。

在没有特殊配置的情况下,读卡器默认为 MODBUS RTU从站。因此只要连接没有问题,通讯设置没有问题,并且知道从站站号(或者使用广播地址 0) ,读卡器总是可以被MUDBUS主机找到。读卡器在配置为其他工作模式时,通讯模式将作为主站,但仍可以以MODBUS从机的模式接收配置信息。

在读卡器配置为非标准MODBUS模式情况下,可用过我司配套的配置软件重新配置,或者自行通过MODBUS发送配置命令更改设置。

本读卡器通信协议说明适用于以下表格中的型号:

表格 1‑1 读卡器通信协议适用型号

通信接口

型号

RS485

CK-FR01-A01、CK-FR03-A01、CK-FR08-A01

RS232

CK-FR03-B01、CK-FR08-B01

1、通讯数据帧

在MODBUS RTU 通讯模式下,主站需要通过时间来判断 RTU 帧的开始和结束。主站监视总线上的通讯数据,如果发现总线有超过 4.5 个字符时间(时间绝对值随字符传送波特率的变化而变化)的空闲,则认为一个帧已经结束(如果存在) ,同时认为下一个字符为下一帧的开始。

完整的 RTU 帧应该是下面的格式(不论是主站发起还是从站应答) :

表格 2‑1 通讯数据帧格式

空闲

地址

功能码

数据

CRC 校验

空闲

--

  1 字节

1 字节

N 字节

2 字节

--

1.1、 地址

MODBUS 协议的站地址由一个字节组成,站地址用来指示哪个从设备来应答主站的通讯报文。在总线上,每个从设备必须指定一个唯一的站地址,只有当通讯报文中地址与该从设备地址相同时, 该从设备才能应答主站的通讯报文。 从设备应答的通讯报文也必须包含该地址,以告知主站,这个通讯报文是哪个从设备应答的。广播报文的地址是零,所有的从站可以根据广播报文进行相应的动作,但是一般不能应答该广播报文。

1.2、 功能码

功能码指示从设备执行相应的操作,从设备回复相应的数据。用户可通过功能码03查询地址为0x05的寄存器状态来获取上一个操作是否正常执行。做为从站,目前 F系列读卡器只使用了部分常用的 MODBUS 通讯功能码:

1、03 读保持寄存器(Read holding register)

2、06 写单个寄存器(Preset single register)

3、16 写多个寄存器(Preset multiple registers)

​​​​​​​1、3、 数据区

数据区是主站需要发送给从站的数据, 或者是从站需要返回给主站的数据。 数据的具体含义由功能码来定义。特别的,有些功能码不包含数据区,数据区大小可以为 0。

​​​​​​​1.4、 校验码

校验码让接收数据方来检查通讯的传输过程中是否有错误发生。

在 MODBUS 中,RTU 模式必须采用 CRC16 校验码。在单片机中实现一般有两种方法,查表法或者运算法,实现方法可以查阅相关的资料。

2、读卡器通信操作示例

 2.1、功能码03读取操作

2.1.1、获取读卡器配置信息

读卡器的配置信息保存在0x0000, 0x0001, 0x0002, 0x0003四个地址中(详细功能说明见开发手册)。

主机发送: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 05 00 01 00 01 E5 53

应答

段名

例子(HEX格式)

从机地址

02

功能码

03

字节数

08

数据(寄存器0x0000高字节)

00

数据(寄存器0x0000低字节)

02

数据(寄存器0x0001高字节)

00

数据(寄存器0x0001低字节)

05

数据(寄存器0x0002高字节)

00

数据(寄存器0x0002低字节)

01

数据(寄存器0x0003高字节)

00

数据(寄存器0x0003低字节)

01

CRC校验(高字节)

E5

CRC校验(低字节)

53

​​​​​​​2.1.2、 读取标签UID信息

标签的UID信息保存在0x0006,0x0007,0x0008,0x0009在4个寄存器中。

主机发送:02 03 00 06 00 04 A4 3B

发送

段名

例子(HEX格式)

从机地址

02

功能码

03

开始地址(高字节)

00

开始地址(低字节)

06

数量(高字节)

00

数量(低字节)

04

CRC校验(高字节)

A4

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

​​​​​​​2.1.3 读写状态查询命令

每次进行读写操作时,读写状态均保存在0x0005寄存器中,可通过查询0x0005寄存器数值获取读写操作状态。

读写状态查询命令为02 03 00 05 00 01 94 38,即只查询0x0005寄存器。

该命令用于查询上一条除读写状态查询命令外的读写命令状态,即该寄存器不记录该读写状态查询命令的状态。

主机发送02 03 00 05 00 01 94 38

发送

段名

例子(HEX格式)

从机地址

02

功能码

03

开始地址(高字节)

00

开始地址(低字节)

05

数量(高字节)

00

数量(低字节)

01

CRC校验(高字节)

94

CRC校验(低字节)

38

读卡器应答(上一次的操作无误): 02 03 02 00 00 FC 44

读卡器应答(上一次读操作出错): 02 03 02 00 01 3D 84

读卡器应答(上一次写操作出错): 02 03 02 00 02 7D 85

注:当读操作中包含读写状态寄存器时,返回的数值中,读写状态寄存器状态均为上一次读写操作(非读写操作查询命令操作)的状态。

​​​​​​​​​​​​​​2.2、 功能码06/16写寄存器操作

2.2.1、功能码06写单个寄存器

更改读卡器站号ID,读卡器的站号ID保存在0x0000寄存器中。

主机发送02 06 00 00 00 03 C9 F8

发送

段名

例子(HEX格式)

从机地址

02

功能码

06

写入地址(高字节)

00

写入地址(低字节)

00

写入数据(高字节)

00

写入数据(低字节)

03

CRC校验(高字节)

C9

CRC校验(低字节)

F8

读卡器应答:02 06 00 00 00 03 C9 F8

应答

段名

例子(HEX格式)

从机地址

02

功能码

06

写入地址(高字节)

00

写入地址(低字节)

00

写入数据(高字节)

00

写入数据(低字节)

03

CRC校验(高字节)

C9

CRC校验(低字节)

F8

​​​​​​​​​​​​​​2.2.2、 功能码16写多个寄存器

将数据写入RFID标签0x000A, 0x000B,0x000C,0x000D四个寄存器中。

主机发送:02 10 00 0A 00 04 08 00 01 00 02 00 03 00 04 75 A0

接收

段名

例子(HEX格式)

从机地址

02

功能码

10

起始地址(高字节)

00

起始地址(低字节)

0A

寄存器数量(高字节)

00

寄存器数量(低地址)

04

字节数

08

数据(寄存器0x000A高字节)

00

数据(寄存器0x000A低字节)

01

数据(寄存器0x000B高字节)

00

数据(寄存器0x000B低字节)

02

数据(寄存器0x000C高字节)

00

数据(寄存器0x000C低字节)

03

数据(寄存器0x000D高字节)

00

数据(寄存器0x000D低字节)

04

CRC校验(高字节)

75

CRC校验(低字节)

A0

读卡器应答:02 10 00 0A 00 04 E1 FB

更多关于CK-FR03-B01|CK-FR08-B01工业高频读写器读写头RS232通讯ModbusRTU通信协议说明,华翔天诚科技欢迎您光临本站交流!

最后

以上就是大胆洋葱为你收集整理的CK-FR03-B01|CK-FR08-B01工业高频读写器读写头RS232通讯ModbusRTU通信协议说明的全部内容,希望文章能够帮你解决CK-FR03-B01|CK-FR08-B01工业高频读写器读写头RS232通讯ModbusRTU通信协议说明所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部