MODBUS-RTU RS485数据通信协议(通用型压力、液位、温度传感器/变送器,供电24(12-30VDC))
一.概述:
本协议遵守MODBUS通信协议,采用了MODBUS协议中的子集中RTU方式.RS485半双工工作方式。
二.串行数据格式:
串口设置:无校验,8位数据,1位停止位。
举例:9600,N,8,1 含义:9600bps,无校验,8位数据位,1位停位。
本变送器支持的串口波特率为:
1200,2400,4800,9600,19200,38400,57600,115200
CRC校验的多项式:0xA001.
数据通信过程中的数据全部是按照双字节整形数据来处理,如果数据标识的是浮点数,写需要读取小数点来确定数据的大小.
三.通信格式:
1.读命令格式(03功能码)举例
A.发送读命令格式:
地址 |
功能码 |
数据起始(H) |
数据起始(L) |
数据个数(H) |
数据个数(L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X00 |
0X00 |
0X00 |
0X01 |
0X84 |
0X0A |
B.返回读数据格式:举例
地址 |
功能码 |
数据长度 |
数据 (H) |
数据 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X02 |
0X00 |
0X01 |
0X79 |
0X84 |
2.写命令格式(06功能码)举例
地址 |
功能码 |
数据起始(H) |
数据起始(L) |
数据 (H) |
数据 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
B.返回读数据格式:举例
地址 |
功能码 |
数据起始(H) |
数据起始(L) |
数据 (H) |
数据 (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
3.异常应答返回
地址 |
功能码 |
异常码 |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X80+功能码 |
0x01(非法功能) 0x02( 非法数据地址) 0x03(非法数据 |
|
|
四.支持的命令及命令和数据意义:
MODBUS-RTU协议命令列表如下:
功能码 |
数据起始地址 |
数据个数 |
数据字节 |
数据范围 |
指令意义 |
0x03功能码读取数据 |
|||||
0x03 |
0x0000 |
1 |
2 |
1-255 |
读取从机地址 |
0x03 |
0x0001 |
1 |
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
波特率读取 |
0x03 |
0x0003 |
1 |
2 |
0-#### 1-###.# 2-##.## 3-#.### |
小数点分别代表0-3位小数点 |
0x03 |
0x0002 |
1 |
2 |
0- Mpa 1- Kpa 2- Pa 3- Bar 4- Mbar 5- kg/cm2 6- psi 7- mh2o 8- mmh2o |
压力单位 |
0x03 |
0x0004 |
1 |
2 |
-32768-32767 |
测量输出值 |
0x03 |
0x0005 |
1 |
2 |
-32768-32767 |
变送器量程零点 |
0x03 |
0x0006 |
1 |
2 |
-32768-32767 |
变送器量程满点 |
0x03 |
0x000c |
1 |
2 |
-32768-32767 |
零位偏移值,出厂一般为0 |
0x06功能码写数据 |
|||||
0x06 |
0x0000 |
|
2 |
1-255 |
改写从机地址 |
0x06 |
0x0001 |
|
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
修改波特率 |
0x06 |
0x000c |
|
2 |
-32768-32767 |
零位偏移值.压力输出值=校准测量值+零位偏移值 |
保存和恢复工厂 |
|||||
0x06 |
0x000F |
|
2 |
0- 保存到用户区 |
|
0X06 |
0x0010 |
|
2 |
1-返回工厂参数 |
|
说明:
1. 修改波特率时变送器会以主机发送的波特率回复修改数据,回复完以后变送器波特率会变为修改后的目标值.
2. 修改地址时也是以修改前的地址回复数据,回复完以后会自动修改变送器地址.
3. 保存和回复工厂命令会原值返回,表示变送器已经接受了主机的命令.
4. 恢复工厂数据时要注意,可能工厂保存的参数和用户保存的不一致,所以其中地址,波特率和校准数据可能都不一致,所以恢复完工厂参数以后必须重新搜索变送器.
5. 用户允许修改的数据只有3个,分别是地址,地址,波特率,零位偏移值.
6. 一般用户不允许修改变送器的校准数据,如需校准和更改,请联系本公司索取变送器校准软件.用户自己发送修改校准数据命令会导致变送器输出命令异常代码。如需修改校准数据,请使用本公司的校准软件。
7. 如果需要读取的数据时浮点数标识的,比如6.000.但是本协议规定了数据都是以整形数据来通信的,所以读取到的数据是6000,然后要根据小数点的位置来做运算,才能得到6.000,比如小数点是3,则就是说6000/10(3),就是6000除以10的三次方,得到6.000这个数据.