MODBUS压力变送器通信协议
MODBUS压力变送器通
信协议
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
MODBUS压力变送器通信协议
一.概述:
本协议遵守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.发送读命令格式: 地址 0X01 地址 0X01 功能码 0X03 功能码 0X03 数据起始(H) 0X00 数据长度 0X02 数据起始(L) 0X00 数据 (H) 0X00 数据个数(H) 0X00 数据个数CRC16 (L) (L) 0X01 0X84 CRC16 (L) 0X79 CRC16 (H) 0X0A CRC16 (H) 0X84 B.返回读数据格式:举例 数据 (L) 0X01 2.写命令格式(06功能码)举例 地址 0X01 地址 0X01 功能码 0X06 功能码 0X06 数据起始(H) 0X00 数据起始(H) 0X00 数据起始(L) 0X00 数据起始(L) 0X00 数据 (H) 0X00 数据 (H) 0X00 数据 (L) 0X02 数据 (L) 0X02 CRC16 (L) 0X08 CRC16 (L) 0X08 CRC16 (H) 0X0B CRC16 (H) 0X0B B.返回读数据格式:举例 3.异常应答返回
0
地址 0X01 功能码 0X80+功能码 异常码 0x01(非法功能) 0x02( 非法数据地址) 0x03(非法数据 CRC16 (L) CRC16 (H) 四.支持的命令及命令和数据意义: 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-#.### 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-1
指令意义 读取从机地址 波特率读取 小数点分别代表0-3位小数点 压力单位 测量输出值 0x03 0x0005 1 0x03 0x0006 1 0x03 0x000c 1 2 2 2 32767 -32768-32767 -32768-32767 -32768-32767 1-255 0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 -32768-32767 变送器量程零点 变送器量程满点 零位偏移值,出厂一般为0 改写从机地址 修改波特率 0x06功能码写数据 0x06 0x0000 2 0x06 0x0001 2 0x06 0x000c 2 零位偏移值.压力输出值=校准测量值+零位偏移值 保存和恢复工厂 0x06 0x000F 2 0- 保存到用户区 1- 保存到工厂区 0X06 0x0010 2 1-返回工厂 参数 说明:
1. 修改波特率时变送器会以主机发送的波特率回复修改数据,回复完以后变送器波特率会变为修改后的目标值. 2. 修改地址时也是以修改前的地址回复数据,回复完以后会自动修改变送器地址.
2
3. 保存和回复工厂命令会原值返回,表示变送器已经接受了主机的命令.
4. 恢复工厂数据时要注意,可能工厂保存的参数和用户保存的不一致,所以其中地址,波特率和校准数据可能都不一致,所以恢复完工厂参数以后必须重新搜索变送器.
5. 用户允许修改的数据只有3个,分别是地址,地址,波特率,零位偏移值.
6. 一般用户不允许修改变送器的校准数据,如需校准和更改,请联系本公司索取变送器校准软件.用户自己发送修改校准数据命令会导致变送器输出命令异常代码。如需修改校准数据,请使用本公司的校准软件。
7. 如果需要读取的数据时浮点数标识的,比如6.000.但是本协议规定了数据都是以整形数据来通信的,所以读取到的数据是6000,然后要根据小数点的位置来做运算,才能得到6.000,比如小数点是3,则就是说6000/10(3),就是6000除以10的三次方,得到6.000这个数据.
3
因篇幅问题不能全部显示,请点此查看更多更全内容