苍南仪表流量计MODBUS通信协议

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

苍南仪表流量计MODBUS通信协议缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.
本文目录
  1. 1. 协议概述
  2. 2. 支持的MODBUSfunction code
  3. 3. data type
  4. 4. 特殊说明

协议概述

1.1 MODBUS协议内容符合GB/Z 19582.1/2/3-2004(IEC60870-5)标准 。                            

1.2该协议适用于本厂的LWQZ气体智能涡轮流量计、 LLQZ智能罗茨流量计、 LUXZ智能旋进漩涡流量

计、 EVC体积修正仪等产品。

1.3主要特点

设备属性:流量计为MODBUS通信总线上的从站

通信模式: RTU

通信媒介: RS485

通信地址: 1-247

Baud rate:  1200 、2400 、4800 、9600 、19200 bps

data bit:  8位

check digit:  无校验(2个停止位)、even parity(1个停止位)、odd parity(1个停止位)

1.4 特殊性

本协议针对流量计而开发,支持多字节二进制数、 ASCII字符串、 BCD码等类型变量的数据通信; 通信选用MODBUS的03H 、07Hfunction code,并增设用户自定义的66Hfunction code。

支持的MODBUSfunction code

function code,数据帧格式如下:

2.1 function code03:读取起始地址在start_addrN个字的数据。见表1

主站发送: addr, 03, start_addr_hi ,start_addr_low, N_hi,N_low, CRC

从站响应: addr, 03, num, data(0),… .,data(num- 1), CRC

Exception Response: addr, 83H, error_code, CRC

表1

register address变量名称寄存器数目NType单位
0000H工况累积量4BIN苍南仪表流量计MODBUS通信协议插图3
0004H标况累积量4BINNm3
0008H工况流量2BINm3/h
000AH标况流量2BINNm3/h
000CHtemperature2BIN
000EH压力2BINkPa

among them:

苍南仪表流量计MODBUS通信协议插图1  starting address:由start_addr_hi 、start_addr_low

2个字节组成,依次为起始地址的高字节、低字节;起始地址必须为表1第1列中的数值,否则流 量计回复地址出错(error_code =2);由N_hi 、N_low 2个字节组成,表示读取N个字(1个字由2个字节组成)的数据;

苍南仪表流量计MODBUS通信协议插图1     num :表示数据的个数, data(i) ,i=0,…,num, num=2N。

苍南仪表流量计MODBUS通信协议插图1     error_code代码参见表4。

example1  (出厂默认: Cod01 ,Cdr23 ,bps9600)

苍南仪表流量计MODBUS通信协议插图1   主站发送:   17      03        00 04         00 04          073E  

address function code  starting address 寄存器数目 CRC check码

苍南仪表流量计MODBUS通信协议插图1  从站响应: 17       03       08       00000039412524E1    9D25

address function code byte count   标况累积量   checksum

苍南仪表流量计MODBUS通信协议插图1  变量数据为8字节二进制数表示的标准累积流量,高位在先,其中前6个字节为整数部分,后两

个为小数部分,解包得数据3752229. 144Nm3/h。

苍南仪表流量计MODBUS通信协议插图1  附数据解包说明:

1) 整数部分十六进制数00 00 00 39 41 25等于十进制的3752229。

2) 小数部分十六进制数(24 E1) 16 = (9441)10 / 65536= 0. 14405(十进制小数)。

3) 结果为3752229.14,单位: Nm3/h

example2读寄存器数据(此例中将当前积算仪显示的数据读出)

苍南仪表流量计MODBUS通信协议插图1  主站发送:   17       03         00 00         00 10          46F0   

address function code  starting address 寄存器数目  CRC check码

苍南仪表流量计MODBUS通信协议插图1  从站响应: 17       03         20          00 00 00 37 12 05 A0 43     00 00 00 37 12 05 A0 43

address function code  接收字节数   工况累积量        标况累积量

00 01 CB 6B     00 01 CB 89      00 00 14 00    00 00 65 53    BA 18 

工况流量   标况流量    temperature    压力   checksum

备注:当主机发送的数据帧出错,从机不应答响应error_code代码,此时拒绝主机继续发送命令。

2.2 function code07,读取流量计的1个字节的状态数据。见表2

主站发送: addr, 07, CRC

从站响应: addr, 07,status, CRC

表2

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1有硬件故障工况流量低报警工况流量高报警电池欠压1报警电池欠压2报警瞬时流量 偏低正在按键 Operation有外电源
0无硬件故障工况流量大于报警低限工况流量小于报警高限电池电压大于报警限1电池电压大于报警限2瞬时流量 正常 无按键无外电源

2.3function code66H,用户自定义的功能码,用于读取流量计内部历史数据。见表3

表3

register address变量名称寄存器数目NType说明
0063H记录起始时间1BCD注1
0064H当前时间3BCD注2
0067H仪表生产信息18ASCII注3
0079H实时记录17BCD/BIN注4
008AH月记录5BCD/BIN注5
008FH启停记录8BCD/BIN注6
0097H防剪断记录4BCD/BIN注7

2.3.1读最近第M个实时记录(1条记录)

主站发送: addr, 66H, 00, 64H, 02H,M_hi, M_low, CRC

从站响应: addr,66H ,22H,psum(BIN),sum(BIN),q0(BIN),t(BIN),p(BIN),year(BCD),month(BCD), day(BCD),hour(BCD),minite(BCD),sec(BCD), CRC

2.3.2读最近第M个月记录(1条记录)

主站发送: addr, 66H, 00, 65H, 02H, M_hi,M_low, CRC

从站响应: addr,66H, 0AH, sum(BIN), year(BCD), month(BCD), CRC

2.3.3读最近第M个启/停记录(EVC无启停记录,1条记录)

主站发送: addr, 66H, 00, 66H, 02H,M_hi, M_low, CRC

从站响应: addr,66H,10H,sum(BIN),year(BCD),month(BCD),day(BCD),hour(BCD),

minite(BCD),sec(BCD), ssflag(byte),0, CRC

2.3.4读最近第M个传感器被剪断或接上时的记录(1条记录,仅配接机械计数器的智能积算仪适用) 主站发送: addr, 66H, 00, 67H, 02H,M_hi, M_low, CRC

从站响应: addr,66H,08H ,year(BCD),month(BCD),day(BCD),hour(BCD),

minite(BCD),sec(BCD), bkflag(byte),0, CRC

备注:

苍南仪表流量计MODBUS通信协议插图1     M为字,用2个字节表示, M_hi为高字节, M_low为低字节,读最近的一条记录时, M=1,

当M=0或大于流量计内部保存的记录数时,流量计返回数值为0的一个序列。

苍南仪表流量计MODBUS通信协议插图1     psum(BIN),sum(BIN):用8字节8位二进制数表示的累积量,高位在先,其中前6个字节为整数,后2个

字节为小数,单位: m3。

苍南仪表流量计MODBUS通信协议插图1     q0(BIN):用4字节8位二进制数表示的标况瞬时流量,高位在先,其中前3个字节为整数,后1个字节

为小数;单位: Nm3/h。

苍南仪表流量计MODBUS通信协议插图1     t(BIN):用4字节8位二进制数表示的温度,高位在先,其中前3个字节为整数,后1个字节为小数;单

位: ℃。

苍南仪表流量计MODBUS通信协议插图1     p(BIN):用4字节8位二进制数表示的压力,高位在先,其中前3个字节为整数,后1个字节为小数;单

位: KPa。

year,month,day,hour,minite,sec

为单字节BCD码,分别表示年(以2000年为起点, 20不显示)、月、日、时、min、秒。

ssflag为启/停标记,当ssflag=55H时,表示该记录为启动记录;当ssflag=0EEH时,表示该记录为停 止记录。

bkflag为正常/剪断标记,当bkflag=55H时,表示该记录为传感器连线恢复正常时的记录;当bkflag=

0EEH时,表示该记录为传感器连线被剪断时的记录。

注1:记录起始时间:用于指定实时记录的起始时间,2个字节,小时-分钟;秒时间默认为0;

注2:当前时间:年月日时分秒,6个字节,BCD码,其中年为1个字节(以2000年为起点,20不显示): 注3:仪表生产信息:36个字节,ASCII码;其中厂家代码10字,产品型号12个字节,产品序号8个字节,

软件版本3个字节,生产日期3个字节(年月日);

注4:实时记录

:一条实时数据记录共34个字节,包括工况累积量8个字节(8位二进制数,单位:m3 )、标况累积 value8个字节(8位二进制数,单位:m3 )、瞬时流量4个字节(8位二进制数,单位:m3/h)、temperature4 个字节(8位二进制数,单位:℃)、压力4个字节(8位二进制数,单位:kPa)、time6个字节( BCD码,年月日时分秒)

注5:月记录;

一条月记录共10个字节,标况累积量8字节(8位二进制数,单位:m3 )、time2个字节(BCD码,year

月)

注6:启停记录:一条启停记录共15个字节,标况累积量8个字节(8位二进制数,单位:m3 )、time6个字 节(BCD码,年月日时分秒)、启停标记1个字节(55H表示流量从无到有,EEH表示流量从有到无) 、0(保留字节);

注7:防剪断记录:一条防剪断记录共8个字节,time6个字节(BCD码,年月日时分秒)、防剪断标记1  个字节(55H表示传感器线束被接通,为正常情况;EEH表示传感器线束被剪断,为异常情况;记录 时间为接通或被剪断的时间)、 0(保留字节)。

2.4  流量计在收到一个通讯帧后没有响应的几种情况:

2.4.1收到数据帧的通讯地址字节与本机地址不同时;

2.4.2收到数据帧的通讯地址字节(equal to0)是广播地址时;

2.4.3收受到数据帧的CRC check出错时;

2.5.4收受到数据帧的命令码出错时。

2.5 Exception Response

当从机接受到一个发给本机的数据帧、 CRC checkcorrect,并检测到异常时,

从站响应为: addr, function_code+128,error_code,CRC

备注: function_code:为主机命令帧中的功能码(第二个字节), function_code+128即功能码

字节的最高位置1,表示异常;

表4

numerical value故障含义
02变量地址无效
03数值无效

data type

在表格中的数据有3种类型:     BIN 、BCD码和ASCII码:

3.1 、BIN :二进制数,高字节在前,低字节在后;分别有4种情形:

1字节(无小数,无符号);

2字节(无小数,无符号);

4字节(最后1个字节表示小数,第一个字节最高位代表符号位, 1表示负数, 0表示正数)。        8字节(最后2个字节表示小数,无符号位;实时记录显示的工况累积量和标况累积量小数位后一个字

节默认为00,小数位按一个字节计算)。

3.2 、BCD码: 1个字节表示2位数值,数值范围为0-9。

3.3 、ASCII码 :characters, 8位,一个字节ASCII码,表示1个英文字母或数字。

特殊说明

为了兼容原自定义的流量计通讯协议,增加一条特殊的指令格式:

4.1、数据位为8位,无奇偶校验。即将通信模式Cod设定为10。

4.2、流量计的地址(ADDR)出厂默认值为023,即十六进制的17。

4.3 、02命令读测量参数

4.3.1 、上位机向流量计发送:

55H, 55H, ADDR, 02 ,00, ChkSum

4.3.2、流量计向上位机应答的数据 frame:

55H, 55H, ADDR, 02, 18, DevStatus, DevErr, Qm, Qo, t, p, sum, ChkSum

备注:

苍南仪表流量计MODBUS通信协议插图1     55H ,55H为数据帧的引导字符,表示数据帧的开始;

苍南仪表流量计MODBUS通信协议插图1     ADDR 为流量计的通信地址, 1个字节,取值范围1—247。

苍南仪表流量计MODBUS通信协议插图1     02 为通信命令号, 1个字节,读测量参数。

苍南仪表流量计MODBUS通信协议插图1     18为数据长度, 1个字节,表示它后面有18H个字节的数据。

苍南仪表流量计MODBUS通信协议插图1     Qm(工况流量) ,Qo(标况流量) ,t(temperature) ,p(压力) ,sum(累积量)。

苍南仪表流量计MODBUS通信协议插图1     ChkSum  为校验和, 1个字节,其数值是从Address起到ChkSum前的全部数据之和的低8位数据; 苍南仪表流量计MODBUS通信协议插图1     DevStatus :为状态码, 1个字节,其各位的含义见表5:

表5

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1命令不 ResponseQo报警睡眠有外电源压缩因 子补偿有按键电池欠压流量偏小
0命令响应Qo   不报警不睡眠无外电源不补偿无按键电池正常流量正常

苍南仪表流量计MODBUS通信协议插图1     DevErr:为故障代码 ,1个字节,其各位的含义见表6:

表6

 BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0
1频率电路故障温度传感器异常压力传感器异常A/D转换电路异常RAM故障EEPROM故障串行口 Communication 故障时钟电路故障
0频率电路正常温度传感器正常压力传感器正常A/D转换电路正常RAM正常EEPROM正常串行口 Communication 正常时钟电路正常

苍南仪表流量计MODBUS通信协议插图1  工况流量、标况流量、temperature、压力采用4个字节(单精度)的浮点数表示,依次为P ,SMH ,MM ,M

L,用F  (Float)表示: FloatData = ±0.MH-MM-ML*2P

苍南仪表流量计MODBUS通信协议插图1  累积量采用6个字节的浮点数表示,依次为P ,SMH ,MM ,ML ,ML1 ,ML2,用F  (Float)表示:

FloatData = ±0.MH-MM-ML-ML1-ML2*2P

among them: P :   阶码, 1个字节,以十六进制补码的形式表示。

SMH :尾数的高字节, 1个字节,最高位(No.7位)为符号位S ,S=1 表示数据为负, S=0 则数据为正;其余7位为浮点数尾数的高7位,No.0到6位。

MM  :尾数的中间字节, 1个字节,No.7到14位。

ML  :  尾数的低字节, 1个字节,No.15到23位。

ML1 :  尾数的低字节, 1个字节,No.24到31位。

ML2 :  尾数的低字节, 1个字节,No.32到39位。

example3

苍南仪表流量计MODBUS通信协议插图1  上位机向流量计发送的数据 frame:

55     55     17      02    00       19   

55H  55H   ADDR   CMD  Len1   ChkSum

苍南仪表流量计MODBUS通信协议插图1  流量计向上位机应答的数据 frame:

55    55     17      02    18      15         00      00 00 00 00     00 00 00 00      05 50 00 00      07 65 4C CC

55H  55H  ADDR  02   18   DevStatus   DevErr     Qm          Qo          t             p

16 72 82 4A 49 25     E1

sum       ChkSum

苍南仪表流量计MODBUS通信协议插图1  以阶码的十进制数值为界线把尾数分成整数和小数部分,再进行二进制至十进制转换计算。 苍南仪表流量计MODBUS通信协议插图1  

附数据包说明:

55 55 17 02 18          ---

15

00

00 00 00 00 00 00 00 00 05 50 00 00

07 65 4C CC

---状态码

---故障码

---工况瞬时流量=0

---标况瞬时流量=0

---temperature=0.10100  000000000000000000×2∧0101=20

---压力=0.1100101  0100110011001100×2∧0111=101.29998779

16 72 82 4A 49 25      ---累计量=0.1110010100000100100101  00100100100100101×2∧10110 =3752229. 1428604125

E1                       ---checksum

4.3.3  自定义的流量计通讯协议浮点数解析

下面详细讲解如何解析4个字节浮点数和6个字节的浮点数。

temperature:  05 50 00 00 根据数据类型的定义,  P=(05)H=(0101) 2   = 5

SMH=(50)H=(01010000) 2      MM=00  ML=00

。因为SMH最高位为0,故尾数是正的。而阶码P转为十进制数为5,故在尾数转为二进制后,前5位为整数 部分,其余为小数部分。

FloatData =   0       10100       0000000000 00000000       转为十进制数

正     整数部分          小数部分

FloatData = 1×24   + 1×22   = 20

压力:  07 65 4C CC among them P=(07)H =(0111) 2  =7 SMH=(65)H=(01100101) 2 MM=(4C)H=(01001100) 2 ML=(CC)H=(11001100) 2

因为SMH中最高位为0,故尾数是正的,而阶码P转为十进制数为7,故在尾数转为二进制后,有7位是整数 部分,其余为小数部分。

FloatData = 0    1100101    01001100 11001100    转为十进制数

正   整数部分       小数部分

FloatData= 1×26   + 1×25   + 1×22   + 1×20   + 1×2-2   + 1×2-5   + 1×2-6

+ 1×2-9   + 1×2- 10   + 1×2- 13   + 1×2- 14   = 101.29998779

累积量:16 72 82 4A 49 25其中 P=(16)H=(00010110) 2  = 22 SMH=(72)H=(01110010) 2                              MM=(82)H=(10000010) 2 ML=(4A)H=(01001010) 2 ML1=(49)H=(01001001) 2  ML2=(25)H=(00100101) 2 ,SMH中最高位为0,故尾数为正,而阶码P转为十进制数为22,故在尾数为二进制时,有22位是整数部分 ,其余为小数部分。

FloatData = 0   1110010 10000010 0100101 0 01001001 00100101   转为十进制数

正         整数部分               小数部分

FloatData =1×221   + 1×220   + 1×219   + 1×216   + 1×214   + 1×28   + 1×25   + 1×22   + 1×20+ 1×2-3   + 1×2-6   + 1×2-9   + 1×2- 12   +1×2- 15   + 1×2- 17   = 3752229.1428604125

技术术语(共 6 个)—— Click to Expand
RS485工业常用的差分串行通信标准,支持多点通信
function codeModbus功能码指定读/写操作类型,如01读线圈、03读保持寄存器
registerModbus 寄存器存储数据单元,分线圈/离散输入/保持/输入寄存器四类
CRC check循环冗余校验,用于检测数据传输中的错误
Baud rate串行通信每秒传输符号数,Modbus RTU常用9600/19200
Sensors将物理量转换为电信号的检测装置
来源/工具信息 —— Click to Expand
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category Device register manual 字数 11509 字 · 阅读约 29 分钟 更新 2026-06-30 永久链接 https://www.modbus.cn/11492.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus debugging tool,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 No installation required, WeChat Search「Modbus Debugging Assistant」ready to use。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.