最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

ModBus规约

IT圈 admin 20浏览 0评论

2024年4月11日发(作者:雪秀媛)

通讯采用ModBus规约N81格式(8个数据位、一个停止位、没有校验位)。

数据帧格式为:地址码(一字节)、功能码(一字节)、数据区、CRC校验(两字节)。

CRC校验码采用CRC-16校验方法。二字节的错误校验码,低字节在前,高字节在后。

读取数据是高字节在前,低字节在后。

读取功能码为03。(下位机回送所有数据均为两字节)

读取测量数据发送:地址、03、00、00、

数据地址

00、03、CRC(两字节)

读取个数(三相需一次读取)

下位机回送:地址、03、06(回送字节数)、测量数据(六字节A相B相C相,高字

节在前、低字节在后)、CRC。

例:地址为1,测量数据为500.0(数据全部为16进制)

发送:05CB

接收:8813884A31

其他数据寄存器地址:0000(测量数据)0006(小数点位置)0016(开入、

开出状态,高位字节开出[0位-1路,1位-2路],低位字节开入[0

位-1路,1位-2路]),0308(波特率,0-1200,1-2400,2-

4800,3-9600,4-19200),0302(上限阀值,不带小数点),

0300(地址,只用于修改地址),0312(变比)

写入功能码为06。(下位机回送于发送的完全相同)

数据格式:地址、06、XX、XX、

数据地址

XX、XX、

写入数据

CRC(两字节)

例:地址为1,修改上限阀值为5000

发送:2518

接收:2518(1388对应的十进制5000写入上限阀值寄存

器)

注意:0000寄存器地址对应的测量数据寄存器无法写入,只能读出。

0300寄存器地址对应的本机地址只能写入修改值,无法读出。

附录:------通讯规约

1.

1.1

ModBus基本规则:

所有RS485通讯回路都应遵照主/从方式。依照这种方式,数据可以在一个主

站(如:PC)和32个子站(如:YD2000)之间传递。

1.2

1.3

1.4

1.5

主站将初始化和控制在RS485通讯回路上传递的所有信息。

任何一次通讯都不能从子站开始。

在RS485回路上的所有通讯都以“信息帧”方式传递。

如果主站或子站接收到含有未知命令的信息帧,则不予以响应。

“信息帧”就是一个由数据帧(每一个字节为一个数据帧)构成的字符串(最多255个字节),

是由信息头和发送的编码数据构成标准的异步串行数据,该通讯方式也与RTU通讯规约相兼

容。

2.数据帧格式:

通讯传输为异步方式,并以字节(数据帧)为单位。在主站和子站之间传递的

每一个数据帧都是11位的串行数据流。

数据帧格式:

起始位

数据位

奇偶校验位

停止位

1位

8位(低位在前、高位在后)

1位:有奇偶校验位;无:无奇偶校验位

1位:有奇偶校验位;2位:无奇偶校验位

有校验位的时序图:

止起

D0D1D2D3

data

数据位

D4D5D6D7D8

parity

校验位

start

起始位

end

停止位

无校验位的时序图:

2024年4月11日发(作者:雪秀媛)

通讯采用ModBus规约N81格式(8个数据位、一个停止位、没有校验位)。

数据帧格式为:地址码(一字节)、功能码(一字节)、数据区、CRC校验(两字节)。

CRC校验码采用CRC-16校验方法。二字节的错误校验码,低字节在前,高字节在后。

读取数据是高字节在前,低字节在后。

读取功能码为03。(下位机回送所有数据均为两字节)

读取测量数据发送:地址、03、00、00、

数据地址

00、03、CRC(两字节)

读取个数(三相需一次读取)

下位机回送:地址、03、06(回送字节数)、测量数据(六字节A相B相C相,高字

节在前、低字节在后)、CRC。

例:地址为1,测量数据为500.0(数据全部为16进制)

发送:05CB

接收:8813884A31

其他数据寄存器地址:0000(测量数据)0006(小数点位置)0016(开入、

开出状态,高位字节开出[0位-1路,1位-2路],低位字节开入[0

位-1路,1位-2路]),0308(波特率,0-1200,1-2400,2-

4800,3-9600,4-19200),0302(上限阀值,不带小数点),

0300(地址,只用于修改地址),0312(变比)

写入功能码为06。(下位机回送于发送的完全相同)

数据格式:地址、06、XX、XX、

数据地址

XX、XX、

写入数据

CRC(两字节)

例:地址为1,修改上限阀值为5000

发送:2518

接收:2518(1388对应的十进制5000写入上限阀值寄存

器)

注意:0000寄存器地址对应的测量数据寄存器无法写入,只能读出。

0300寄存器地址对应的本机地址只能写入修改值,无法读出。

附录:------通讯规约

1.

1.1

ModBus基本规则:

所有RS485通讯回路都应遵照主/从方式。依照这种方式,数据可以在一个主

站(如:PC)和32个子站(如:YD2000)之间传递。

1.2

1.3

1.4

1.5

主站将初始化和控制在RS485通讯回路上传递的所有信息。

任何一次通讯都不能从子站开始。

在RS485回路上的所有通讯都以“信息帧”方式传递。

如果主站或子站接收到含有未知命令的信息帧,则不予以响应。

“信息帧”就是一个由数据帧(每一个字节为一个数据帧)构成的字符串(最多255个字节),

是由信息头和发送的编码数据构成标准的异步串行数据,该通讯方式也与RTU通讯规约相兼

容。

2.数据帧格式:

通讯传输为异步方式,并以字节(数据帧)为单位。在主站和子站之间传递的

每一个数据帧都是11位的串行数据流。

数据帧格式:

起始位

数据位

奇偶校验位

停止位

1位

8位(低位在前、高位在后)

1位:有奇偶校验位;无:无奇偶校验位

1位:有奇偶校验位;2位:无奇偶校验位

有校验位的时序图:

止起

D0D1D2D3

data

数据位

D4D5D6D7D8

parity

校验位

start

起始位

end

停止位

无校验位的时序图:

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论