气体涡轮流量计通讯协议
气体涡轮流量计通讯协议适用于带有 RS485 通讯接口的智能气体涡轮流量计,用于上位机、PLC、触摸屏、数据采集器及能源管理系统读取仪表运行数据和相关参数。
本通讯协议主要介绍仪表的串口通讯参数、Modbus RTU 数据格式、功能码、寄存器地址、数据类型、字节顺序、命令示例及异常响应说明,可供系统集成、软件开发和现场调试人员参考。
通讯接口
气体涡轮流量计通常采用 RS485 串行通讯接口,支持多台仪表接入同一条通讯总线。
通讯接线时,应按照仪表端子定义连接 RS485 A、RS485 B及通讯地线。总线两端可根据现场通讯距离和信号质量配置终端电阻。
通讯线路应尽量使用屏蔽双绞线,并与动力电缆、高压线路及变频器输出线路分开敷设,以降低电磁干扰对通讯稳定性的影响。
通讯参数
常用通讯参数如下:
| 参数 | 常用设置 |
|---|---|
| 通讯接口 | RS485 |
| 通讯协议 | Modbus RTU |
| 波特率 | 1200、2400、4800、9600、19200 bps |
| 数据位 | 8位 |
| 停止位 | 1位 |
| 校验方式 | 无校验、偶校验或奇校验 |
| 从机地址 | 1~247 |
| 通讯方式 | 主从式半双工通讯 |
仪表实际通讯参数应以设备菜单设置或产品铭牌标注为准。上位机通讯参数必须与仪表设置保持一致。
Modbus RTU报文格式
Modbus RTU通讯报文通常由以下部分组成:
| 字段 | 长度 | 说明 |
|---|---|---|
| 从机地址 | 1字节 | 仪表通讯地址 |
| 功能码 | 1字节 | 指定读取或写入操作 |
| 数据区 | 若干字节 | 寄存器地址、数量及数据内容 |
| CRC校验 | 2字节 | CRC16校验码,低字节在前 |
一帧完整通讯数据之间应保持规定的时间间隔,避免前后两帧数据连续发送导致仪表无法正确识别。
常用功能码
| 功能码 | 功能说明 |
|---|---|
| 03H | 读取保持寄存器 |
| 04H | 读取输入寄存器 |
| 06H | 写入单个保持寄存器 |
| 10H | 写入多个保持寄存器 |
部分仪表仅开放数据读取功能。涉及仪表参数修改、累计量清零或系数调整时,应确认对应寄存器是否允许写入。
可读取数据
根据仪表型号和功能配置,通讯协议通常支持读取以下数据:
- 瞬时工况流量。
- 瞬时标况流量。
- 工况累计流量。
- 标况累计流量。
- 介质温度。
- 介质压力。
- 仪表频率或脉冲数据。
- 电池电压。
- 仪表运行状态。
- 报警及故障状态。
- 气体压缩因子。
- 仪表通讯地址及波特率。
- 流量系数和修正参数。
具体寄存器地址、数据长度及读写权限应以对应型号的寄存器映射表为准。
数据类型
通讯寄存器中的数据可能采用以下格式:
| 数据类型 | 寄存器数量 | 说明 |
|---|---|---|
| 16位无符号整数 | 1个 | 数值范围0~65535 |
| 16位有符号整数 | 1个 | 数值范围-32768~32767 |
| 32位无符号整数 | 2个 | 常用于累计流量 |
| 32位有符号整数 | 2个 | 用于带符号的测量数据 |
| IEEE 754浮点数 | 2个 | 常用于瞬时流量、压力和温度 |
| 64位整数或浮点数 | 4个 | 常用于高精度累计量 |
读取多个寄存器后,应按照协议规定的数据类型和字节顺序进行组合转换。
字节顺序
32位数据由两个16位寄存器组成,不同仪表可能采用不同的字节顺序或寄存器顺序。
常见排列方式包括:
| 排列方式 | 字节顺序 |
|---|---|
| ABCD | 高字在前,高字节在前 |
| CDAB | 低字在前,高字节在前 |
| BADC | 高字在前,低字节在前 |
| DCBA | 低字在前,低字节在前 |
当读取的浮点数或32位整数明显异常时,应检查寄存器顺序及字节顺序设置是否正确。
读取寄存器命令格式
读取保持寄存器的主机请求格式如下:
从机地址 + 03H + 起始寄存器地址 + 寄存器数量 + CRC16
仪表正常响应格式如下:
从机地址 + 03H + 返回字节数 + 寄存器数据 + CRC16
例如,读取地址为1的仪表中连续两个保持寄存器时,主机发送内容由从机地址、功能码、起始地址、寄存器数量及CRC校验组成。
实际命令应根据仪表寄存器映射表生成。
异常响应
当仪表无法执行主机命令时,可能返回异常响应。
| 异常码 | 说明 |
|---|---|
| 01H | 不支持的功能码 |
| 02H | 非法寄存器地址 |
| 03H | 非法数据值 |
| 04H | 仪表执行失败 |
异常响应中的功能码通常为原功能码加80H。例如,03H功能码发生异常时,返回功能码可能为83H。
通讯接线注意事项
- RS485 A、B线不得接反。
- 同一总线上的仪表地址不得重复。
- 总线应采用手拉手方式连接,不建议采用星形接线。
- 通讯距离较长时,应使用屏蔽双绞线。
- 屏蔽层一般采用单端可靠接地。
- 总线两端可配置约120Ω终端电阻。
- 通讯线应远离变频器、电机及高压动力电缆。
- 多台设备通讯时,应逐台设置不同的从机地址。
调试说明
通讯调试前,应确认仪表供电正常、通讯接线正确,并核对从机地址、波特率、数据位、停止位和校验方式。
可使用串口调试软件或Modbus主站软件发送读取命令,观察仪表是否返回完整报文。如无数据返回,应依次检查串口号、通讯参数、RS485极性、设备地址、寄存器地址及CRC校验。
当仪表能够返回数据但数值不正确时,应重点检查寄存器偏移方式、数据类型、小数位、倍率、字节顺序及寄存器顺序。
使用提示
不同型号气体涡轮流量计的寄存器地址、数据格式、倍率及读写权限可能存在差异。使用本通讯协议前,应确认协议版本与仪表型号、软件版本及硬件版本相匹配。
涉及仪表系数、温压补偿参数、累计流量或通讯参数写入时,应做好原始参数记录。未经授权,不建议修改与计量性能相关的参数,以免影响仪表测量结果及系统正常运行。