1、 概述
1.1 引言
通讯规约详细描述了本机通讯的读、写命令格式及信息和数据的定义,以便第三方开发使用。
1. 2 电气特点及符合标准
1) 连接上位机的主通信接口,MODUBS RTU 协议标准。
2) 信息传输方式为异步方式,字节格式为起始位1位,数据位8位,停止位1位,无校验。
3) 数据传输速率1200b/s, 2400b/s, 4800b/s, 9600b/s, 19200b/s可选,缺省为9600b/s。
2、MODBUS RTU通信协议详述
2.1 协议基本规则
以下规则确定在回路控制器和其他串行通信回路中设备的通信规则。
1) 所有通讯回路都应遵照主/从方式。依照这种方式,数据可以在一个主站(如:PC)和多个子站(仪表)之间传递。任何一次通讯都不能从子站开始。
2) 主站将初始化和控制在通讯回路上传递的所有信息。
3) 所有回路上的传送均分为两种方式:
A) 主/从传送
B) 从/主传送
4) 在通讯回路上的所有通讯都以“信息帧”方式传递。
如果主站或子站接收到含有未知命令的信息帧,则不予以响应
“信息帧”就是一个由字节构成的字符串(最多255个字节),是由信息头和发送的编码数据构成标准的异步串行数据,该通讯方式也与RTU通讯规约相兼容。
2.2信息帧结构描述
每个信息帧组成如下:
|
地址 |
功能码 |
数据地址 |
数据1 |
数据… |
数据n |
CRC16 |
3、 字节格式
通讯传输为异步方式,并以字节为单位。在主站和子站之间传递的每一个字节帧都是10位(无校验位)的串行数据流。
字节帧格式:
4、命令报文格式
4. 1读数据:
主站发送
|
地址 |
功能码 |
数据起始地址高位 |
数据起始地址低位 |
数据个数高位 |
数据个数低位 |
CRC16高位 |
CRC16低位 |
|
04 |
返回:
|
地址 |
功能码 |
字节长度 |
数据1高位 |
数据1低位 |
数据2高位 |
数据2低位 |
… |
CRC16高位 |
CRC16低位 |
|
04 |
5、仪表内部报文信息
|
功能代码 |
数据起始地址 |
数据个数 |
内容说明 |
|
04H |
0000H |
1 |
温度值 |
|
0001H |
1 |
湿度值 |
注意:每一个数据用两个字节整数表示,高位在前,低位在后
如: 带符号整数 范围 -32768---32767
上传数据需除十,正数的范围为16进制0X0000-0X7FFF,负数采用正数的补码方式传输,其范围为16进制0X8000-0XFFFF,
如:
湿度上传16进制 0X0311,对应十进制785,表示78.5%
温度上传16进制 0X00FF,对应十进制255,表示25.5℃
温度上传16进制 0XFF9B,对应十进制100(0XFFFF-0XFF9B=0X64), 表示-10.0℃
6、 网络采样定时
温湿度传感器中,上位机读取数据每次间隔时间不小于500ms,推荐值1s。
7、命令举例:
设温湿度传感器的地址为1,
读所有数据为:
上位机发送:01 04 0000 0002 71CB (读从数据起始地址为0000H开始的2个字节)
下位机返回:01 04 04,温度H,温度L,湿度H,湿度L,CRCL,CRCH。
只读温度数据时:
上位机发送: 01 04 0000 0001 31CA(读从数据起始地址为0000H开始的1个字节)
下位机返回: 01 04 02,温度H,温度L,CRCH,CRCL。
只读湿度数据时:
上位机发送: 01 04 0001 0001 600A(读从数据起始地址为0001H开始的1个字节)
下位机返回: 01 04 02,湿度H,湿度L,CRCH,CRCL。
写单个寄存器数据
|
地址 |
功能码 |
数据起始地址高位 |
数据起始地址低位 |
数据高位 |
数据低位 |
CRC16高位 |
CRC16低位 |
|
06 |
例:把温湿度原地址1改为2:
上位机发送:01 06 00 C8 00 02 89 F5 (数据起始地址为100H)
下位机返回: 01 06 00 C8,地址H,地址L, CRCL,CRCH。
写多个寄存器数据
|
地址 |
功能码 |
数据起始地址高位 |
数据起始地址低位 |
寄存器个数高位 |
寄存器个数低位 |
字节个数 |
数据1高位 |
数据1低位 |
数据N高位 |
数据N低位 |
CRC16高位 |
CRC16低位 |
|
10 |
例:设置时间:
上位机发送:01 10 00 E0 00 03 06 0F 06 01 17 02 12 5A BC
0003:3个寄存器;06:6个字节
15年06月 01 日23时 02分 18秒
设置温湿度上下限告警值和缓冲值:
上位机发送:01 10 00 CC 00 06 0C 02 0B 00 0A 00 01 03 2F 00 67 00 0A 09 2C
高温告警值52.3 低温告警值1.0 温度缓冲值0.1 高湿告警值81.5 低湿告警值10.3 湿度缓冲值
8、仪表全部报文:
|
读状态寄存器 读取功能码0x03 写DO功能码0X05,写寄存器0x10或0x06 | |||||
|
寄存器地址 |
数据项 |
字节数 |
属性 |
返回格式 |
备注 |
|
0 |
温度值 |
2 |
RO |
整数,0.1℃ | |
|
1 |
湿度值 |
2 |
RO |
正整数,0.1%RH | |
|
2 |
露点温度参考值 |
2 |
RO |
整数,0.1℃ | |
|
3 |
DO1 |
2 |
RW |
正整数 | |
|
4 |
DO2 |
2 |
RW |
正整数 | |
|
5 |
告警状态 |
2 |
RO |
正整数 |
Bit0:高温告警 Bit1:低温告警 Bit2:高湿告警 Bit3:低湿告警 对应bit位为1告警,0无告警 |
|
6 |
电量 |
2 |
RO |
正整数 |
0:没电 1:一格电 2:二格电 3:三格电 4:四格电 |
|
7 |
记录总条数高 |
2 |
RO |
正整数 | |
|
8 |
记录总条数低 |
2 |
RO |
正整数 | |
|
9 |
未读条数高 |
2 |
RW |
正整数 | |
|
10 |
未读条数低 |
2 |
RW |
正整数 | |
|
11 |
记录1温度值 |
2 |
RO |
整数,0.1℃ | |
|
12 |
记录1湿度值 |
2 |
RO |
正整数,0.1%RH | |
|
13 |
记录1时间年:月 |
2 |
RO |
正整数 |
高字节:年 低字节:月 |
|
14 |
记录1时间日:时 |
2 |
RO |
正整数 |
高字节:日 低字节:时 |
|
15 |
记录1时间分:秒 |
2 |
RO |
正整数 |
高字节:分 低字节:秒 |
|
16 |
记录2温度值 |
2 |
RO |
整数,0.1℃ | |
|
17 |
记录2湿度值 |
2 |
RO |
正整数,0.1%RH | |
|
18 |
记录2时间年:月 |
2 |
RO |
正整数 |
高字节:年 低字节:月 |
|
19 |
记录2时间日:时 |
2 |
RO |
正整数 |
高字节:日 低字节:时 |
|
20 |
记录2时间分:秒 |
2 |
RO |
正整数 |
高字节:分 低字节:秒 |
|
… | |||||
|
5N+6 |
记录N温度值 |
2 |
RO |
整数,0.1℃ | |
|
5N+7 |
记录N湿度值 |
2 |
RO |
正整数,0.1%RH | |
|
5N+8 |
记录N时间年:月 |
2 |
RO |
正整数 |
高字节:年 低字节:月 |
|
5N+9 |
记录N时间日:时 |
2 |
RO |
正整数 |
高字节:日 低字节:时 |
|
5N+10 |
记录N时间分:秒 |
2 |
RO |
正整数 |
高字节:分 低字节:秒 |
|
必须整条记录读取,N小于等于24 | |||||
|
设置参数寄存器 读取功能码0x03写入功能码0X10(0X06) | |||||
|
200 |
通讯地址 |
2 |
RW |
1~254 | |
|
201 |
波特率 |
2 |
RW |
正整数 |
0~4 0:1200; 1:2400; 2:4800; 3:9600 4:19200 |
|
202 |
校验方式 |
2 |
RW |
正整数 |
0~2 0:N 8 1 1:O 8 1 2:E 8 1 |
|
203 |
显示温度单位 |
2 |
RW |
正整数 |
0~1 0:℃ 1:℉ |
|
204 |
高温告警值 |
2 |
RW |
整数,0.1℃ | |
|
205 |
低温告警值 |
2 |
RW |
整数,0.1℃ | |
|
206 |
温度缓冲值 |
2 |
RW |
整数,0.1℃ |
1~250 |
|
207 |
高湿告警值 |
2 |
RW |
正整数,0.1%RH | |
|
208 |
低湿告警值 |
2 |
RW |
正整数,0.1%RH | |
|
209 |
湿度缓冲值 |
2 |
RW |
正整数,0.1%RH |
1~250 |
|
210 |
DO1输出方式 |
2 |
RW |
正整数 |
0~1,0:告警,1:控制 |
|
211 |
DO2输出方式 |
2 |
RW |
正整数 |
0~1,0:告警,1:控制 |
|
212 |
DO1关联量 |
2 |
RW |
正整数 |
Bit0:高温告警 Bit1:低温告警 Bit2:高湿告警 Bit3:低湿告警 对应bit位为1关联,0不关联 |
|
213 |
DO2关联量 |
2 |
RW |
正整数 |
Bit0:高温告警 Bit1:低温告警 Bit2:高湿告警 Bit3:低湿告警 对应bit位为1关联,0不关联 |
|
214 |
DO1正常状态 |
2 |
RW |
正整数 |
0:常开 1:常闭 |
|
215 |
DO2正常状态 |
2 |
RW |
正整数 |
0:常开 1:常闭 |
|
216 |
用户密码 |
2 |
RW |
正整数 |
0~9999 |
|
217 |
存储时间 |
2 |
RW |
正整数 |
1~60000,单位分 |
|
218 |
Zigbee PAN ID |
2 |
RW |
正整数 |
1~9999 |
|
219 |
Zigbee频道 |
2 |
RW |
正整数 |
11~26 |
|
220 |
温度校准值 |
2 |
RW |
整数,0.1℃ |
-300~300 |
|
221 |
湿度校准值 |
2 |
RW |
整数0.1%RH |
-300~300 |
|
222 |
开关记录 |
2 |
RW |
正整数 |
0:关 1:开 |
|
223 |
开关蜂鸣 |
2 |
RW |
正整数 |
0:关 1:开 |
|
224 |
年:月 |
2 |
RW |
正整数 | |
|
225 |
日:时 |
2 |
RW |
正整数 | |
|
226 |
分:秒 |
2 |
RW |
正整数 | |
863

被折叠的 条评论
为什么被折叠?



