下载此文档

modbusrtu通信协议串口通讯.doc


文档分类:论文 | 页数:约22页 举报非法文档有奖
1/22
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/22 下载此文档
文档列表 文档介绍
Modbus Rtu 通信协议(3,16号命令)
 1、读取保持寄存器(单个和多个,以字为最小单位)
发送命令帧:
设备地址
功能码
地址H
地址L
数据量H
数据量L
CRC H
CRC L
Addr0
3 H
HoldStart
DataNum
CRC高位
CRC低位
帧长度:8个字节
设备地址:1~247
功能码:3H
数据地址:0~65535 具体范围与相关设备有关
数量:1~65535 具体范围与相关设备有关
校验码:CRC16校验
 返回命令帧:
设备地址
功能码
数据量
数据1
数据N
CRC H
CRC L
Addr1
3 H
返回数据的字节数N
Data (1~N)
CRC高位
CRC低位
帧长度:5+N 个字节
设备地址:1~247
功能码:3H
数据量:实际的读取数据数量
数据:返回数据的意义
a=HoldStart
n= DataNum-1
VW a (VB a)
VWa(VB a+1)

VW a+n(VB a+n)
VWa+n(VB a+n+1)
Data(1)
Data(2)

Data(N-1)
Data(N)
校验码:CRC16校验
命令有误:
1)        没有任何返回
2)        返回异议帧
设备地址
功能码
错误信息
CRC H
CRC L
Addr1
83 H
一个字节的错误信息
CRC高位
CRC低位
2、设置保持寄存器(多个,以字为最小单位)
发送命令帧:
 设备地址
功能码
地址H
地址L
数据量H
数据量L
数据字节数
具体
数据
CRC H
CRC L
Addr0
10 H
HoldStart
DataNum
bytN
1~bytN
CRC高位
CRC低位
帧长度:9+bytN 个字节
设备地址:1~247
功能码:10H
数据地址:0~65535 具体范围与相关设备有关
数量:1~122 具体范围与相关设备有关
字节数:设置的字节个数 bytN= DataNum×2
数据:具体的字节数据
校验码:CRC16校验
 返回命令帧:
设备地址
功能码
地址H
地址L
数据量H
数据量L
CRC H
CRC L
Addr1
10 H
HoldStart
DataNum
CRC高位
CRC低位
帧长度:8 个字节
设备地址:1~247
功能码:10H
数据地址:0~65535 具体范围与相关设备有关
数量:1~122 具体范围与相关设备有关
校验码:CRC16校验
 命令有误:
1)    没有任何返回
2)     返回异议帧
地址
功能码
错误信息
CRC H
CRC L
Addr1
90 H
一个字节的错误信息
CRC高位
CRC低位
设置单个寄存器(06H)
发送命令帧:
 设备地址
功能码
地址H
地址L
数据H
数据L
CRC H
CRC L
Addr0
06H
HoldStart
Data
CRC高位
CRC低位
返回命令帧:
设备地址
功能码
地址H
地址L
数据H
数据L
CRC H
CRC L
Addr1
06H
HoldStart
Data
CRC高位
CRC低位
CRC-16(循环冗余错误校验)
CRC-16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选发送。报文先与X^16相乘(左移16位),然后看X^16+X^15+X^2+1除,X^16+X^15+X^2+1可以表示为二进制数1 1000 0000 0000 0101。整数商位忽略不记,16位余数加入该报文(MSB先发送),成为2个CRC校验字节。余数中的1全部初始化,以免所有的零成为一条报文被接收。经上述处理而含有CRC字节的报文,若无错误,到接收设备后再被同一多项式(X^16+X^15+X^2+1)除,会得到一个零余数(接收设备核验这个CRC字节,并将其与被传送的CRC比较)。全部运算以2为模(无进位)。生成CRC-16校验字节的步骤如下:
①装如一个16位寄存器,所有数位

modbusrtu通信协议串口通讯 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息