《齐兴科技MODBUS压力变送器通信协议.doc》由会员分享,可在线阅读,更多相关《齐兴科技MODBUS压力变送器通信协议.doc(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、0MODBUS 压力变送器通信协议一一.概述概述: 本协议遵守 MODBUS 通信协议,采用了 MODBUS 协议 中的子集中 RTU 方式.RS485 半双工工作方式. 二二.串行数据格式串行数据格式: 串口设置:无校验,8 位数据,1 位停止位. 举例:9600,N,8,1 含义:9600bps,无校验,8 位数据位,1 位停 位. 本变送器支持的串口波特率为: 1200,2400,4800,9600,19200,38400,57600,115200 CRC 校验的多项式:0xA001. 数据通信过程中的数据全部是按照双字节整形数据来处 理,如果数据标识的是浮点数,写需要读取小数点来确定数
2、据 的大小. 三.通信格式: 1.读命令格式(03 功能码)举例 A.发送读命令格式: 地址功能 码数据起始 (H)数据起始 (L)数据个数 (H)数据个数 (L)CRC16 (L)CRC16 (H) 0X010X030X000X000X000X010X840X0A B.返回读数据格式:举例 地址功能 码数据长度数据 (H)数据 (L)CRC16 (L)CRC16 (H) 0X010X030X020X000X010X790X842.写命令格式(06 功能码)举例 地址功能 码数据起始 (H)数据起始 (L)数据 (H)数据 (L)CRC16 (L)CRC16 (H) 0X010X060X000
3、X000X000X020X080X0B B.返回读数据格式:举例 地址功能 码数据起始 (H)数据起始 (L)数据 (H)数据 (L)CRC16 (L)CRC16 (H) 0X010X060X000X000X000X020X080X0B3.异常应答返回 地址功能异常码CRC16CRC161码(L)(H) 0X010X80 +功能 码0x01(非法功能) 0x02( 非法数据地址) 0x03(非法数据 四.支持的命令及命令和数据意义: MODBUS-RTU 协议命令列表如下:功能 码数据起 始地址数 据 个 数数据 字节数据范围指令意义0x03 功能码读取数据 0x030x0000121-255
4、读取从机地址 0x030x0001120-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200波特率读取0x030x0003120-# 1-#.# 2-#.# 3-#.#小数点分别代表 0- 3 位小数点0x030x0002120- Mpa 1- Kpa 2- Pa 3- Bar 4- Mbar 5- kg/cm2 6- psi 7- mh2o 8- mmh2o压力单位0x030x000412-32768- 32767测量输出值0x030x000512-32768-变送器量程零点232767 0x030x000612-32768-
5、 32767变送器量程满点0x030x000c12-32768- 32767零位偏移值,出厂 一般为 0 0x06 功能码写数据 0x060x000021-255改写从机地址 0x060x000120-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200修改波特率0x060x000c2-32768- 32767零位偏移值.压力 输出值=校准测量 值+零位偏移值 保存和恢复工厂 0x060x000F20- 保存到 用户区 1- 保存到 工厂区0X06 0x001021-返回工 厂参数说明: 1. 修改波特率时变送器会以主机发送的波特
6、率回复修改数 据,回复完以后变送器波特率会变为修改后的目标值. 2. 修改地址时也是以修改前的地址回复数据,回复完以后会 自动修改变送器地址. 3. 保存和回复工厂命令会原值返回,表示变送器已经接受了 主机的命令.34. 恢复工厂数据时要注意,可能工厂保存的参数和用户保存 的不一致,所以其中地址,波特率和校准数据可能都不一致, 所以恢复完工厂参数以后必须重新搜索变送器. 5. 用户允许修改的数据只有 3 个,分别是地址,地址,波特率, 零位偏移值. 6. 一般用户不允许修改变送器的校准数据,如需校准和更改, 请联系本公司索取变送器校准软件.用户自己发送修改校 准数据命令会导致变送器输出命令异常代码。如需修改 校准数据,请使用本公司的校准软件。 7. 如果需要读取的数据时浮点数标识的,比如 6.000.但是本 协议规定了数据都是以整形数据来通信的,所以读取到的 数据是 6000,然后要根据小数点的位置来做运算,才能得到 6.000,比如小数点是 3,则就是说 6000/10(3),就是 6000 除 以 10 的三次方,得到 6.000 这个数据.