1MODBUS压力变送器通信协议一.概述:本协议遵守MODBUS通信协议,采用了MODBUS协议中的子集中RTU方式.RS485半双工工作方式.二.串行数据格式:串口设置:无校验,8位数据,1位停止位.举例:9600,N,8,1含义:9600bps,无校验,8位数据位,1位停位.本变送器支持的串口波特率为:1200,2400,4800,9600,19200,38400,57600,115200CRC校验的多项式:0xA001.数据通信过程中的数据全部是按照双字节整形数据来处理,如果数据标识的是浮点数,写需要读取小数点来确定数据的大小.三.通信格式:1.读命令格式(03功能码)举例A.发送读命令格式:地址功能码数据起始(H)数据起始(L)数据个数(H)数据个数(L)CRC16(L)CRC16(H)0X010X030X000X000X000X010X840X0AB.返回读数据格式:举例地址功能码数据长度数据(H)数据(L)CRC16(L)CRC16(H)0X010X030X020X000X010X790X842.写命令格式(06功能码)举例地址功能码数据起始(H)数据起始(L)数据(H)数据(L)CRC16(L)CRC16(H)0X010X060X000X000X000X020X080X0BB.返回读数据格式:举例地址功能码数据起始(H)数据起始(L)数据(H)数据(L)CRC16(L)CRC16(H)0X010X060X000X000X000X020X080X0B3.异常应答返回地址功能异常码CRC16CRC162码(L)(H)0X010X80+功能码0x01(非法功能)0x02(非法数据地址)0x03(非法数据四.支持的命令及命令和数据意义:MODBUS-RTU协议命令列表如下:功能码数据起始地址数据个数数据字节数据范围指令意义0x03功能码读取数据0x030x0000121-255读取从机地址0x030x0001120-12001-24002-48003-96004-192005-384006-576007-115200波特率读取0x030x0003120-####1-###.#2-##.##3-#.###小数点分别代表0-3位小数点0x030x0002120-Mpa1-Kpa2-Pa3-Bar4-Mbar5-kg/cm26-psi7-mh2o8-mmh2o压力单位0x030x000412-32768-32767测量输出值0x030x000512-32768-327变送器量程零点3670x030x000612-32768-32767变送器量程满点0x030x000c12-32768-32767零位偏移值,出厂一般为00x06功能码写数据0x060x000021-255改写从机地址0x060x000120-12001-24002-48003-96004-192005-384006-576007-115200修改波特率0x060x000c2-32768-32767零位偏移值.压力输出值=校准测量值+零位偏移值保存和恢复工厂0x060x000F20-保存到用户区1-保存到工厂区0X060x001021-返回工厂参数说明:1.修改波特率时变送器会以主机发送的波特率回复修改数据,回复完以后变送器波特率会变为修改后的目标值.2.修改地址时也是以修改前的地址回复数据,回复完以后会自动修改变送器地址.3.保存和回复工厂命令会原值返回,表示变送器已经接受了主机的命令.44.恢复工厂数据时要注意,可能工厂保存的参数和用户保存的不一致,所以其中地址,波特率和校准数据可能都不一致,所以恢复完工厂参数以后必须重新搜索变送器.5.用户允许修改的数据只有3个,分别是地址,地址,波特率,零位偏移值.6.一般用户不允许修改变送器的校准数据,如需校准和更改,请联系本公司索取变送器校准软件.用户自己发送修改校准数据命令会导致变送器输出命令异常代码。如需修改校准数据,请使用本公司的校准软件。7.如果需要读取的数据时浮点数标识的,比如6.000.但是本协议规定了数据都是以整形数据来通信的,所以读取到的数据是6000,然后要根据小数点的位置来做运算,才能得到6.000,比如小数点是3,则就是说6000/10(3),就是6000除以10的三次方,得到6.000这个数据.