1、国家地表水在线监测仪器通信协议技术导则(征求意见稿)2目 次前 言 .31 适用范围 .42 规范性引用文件 .43 术语和定义 .44 系统结构 .45 协议层次 .56 通信协议 .5附录 A 规范性附录 .30附录 B 留样器通讯协议 .31附录 C 资料性附录 .32参 考 文 献 .343前 言本标准按照GB/T 1.1-2009给出的规则起草。为贯彻中华人民共和国环境保护法、中华人民共和国水污染防治法,规范和指导地表水自动监测站点仪器通信接入工作,制订本标准。本标准规定了地表水自动监测站点的数据采集传输仪与在线监测仪器之间的通信流程、通信报文的数据格式、命令格式和代码定义。本标准起
2、草单位:本标准主要起草人:4国家地表水在线监测仪器通信协议技术导则1 适用范围本标准适用于地表水自动监测站点现场的数据采集传输仪与在线监测仪器之间的数据通信,规定了通信过程及数据命令的格式,给出了代码定义,本标准允许扩展,但扩展内容时不得与本标准中所使用或保留的控制命令相冲突。2 规范性引用文件本标准内容引用了下列文件中的条款。凡是不注日期的引用文件,其有效版本适用于本标准。HJ 212-2017 污染物在线监控(监测)系统数据传输标准GB/T 19582-2008 基于 Modbus 协议的工业自动化网络规范3 术语和定义下列术语和定义适用于本标准。3.1 在线监测仪器在线监测仪器是安装在地
3、表水自动监测点现场,用于监测地表水环境质量的设备,包括监控(监测)仪器、流量(速)计等。3.2 数据采集传输仪采集各种类型监控仪器仪表的数据、完成数据存储及与上位机数据传输通讯功能的单片机、工控机、嵌入式计算机、可编程自动化控制器(PLC)或可编程控制器,以下简称数采仪。4 系统结构在线监测仪器与数采仪之间通信协议采用 Modbus RTU 标准,数采仪作为 Modbus 主机,每台在线监测仪器作为 Modbus 从机。图 1 Modbus 主从通信系统结构5协议适用接口描述:1)适用于 RS-485 通讯接口通讯;每个 RS-485 接口可以同时连接多个在线监测仪器。2)适用于 RS-232
4、 通讯接口通讯;3)也可扩展用于 TCP/IP 通讯方式注意扩展用于 TCP/IP 通讯方式情况下不是采用 Modbus TCP,而是 Modbus RTU 直接承载在TCP/IP 上。另外针对有需要将在线监测仪器直接连接监测平台(现场无数采仪)的特殊情况,允许在线监测仪器通过地表水自动监测系统数据传输规范直接与监测平台进行数据传输通信。5 协议层次在线监测仪器与数采仪之间通讯协议采用Modbus RTU标准,可承载在多种通讯接口上。 图2 Modbus RTU协议层次图6 通信协议在线监测仪器与数采仪之间通信协议采用Modbus RTU标准,通过Modbus寄存器定义通信数据内容。6.1 M
5、odbus RTU6.1.1 报文帧结构图 3 Modbus RTU 串行链路 PDU6表 1 Modbus 报文结构表名称 类型 长度(字节) 描述设备地址 BYTE 对应仪器中的设备地址,用于区分挂在同一个总线下不同在线监测仪器。取值范围功能码 BYTE 功能码定义见 6.1.2数据 BYTEn N 变长数据,伴随功能码、应答模式不同而不同CRC WORD 2 Modbus CRC16 校验结果6.1.2 功能码定义表2 Modbus功能码定义表代码 功能 数据类型 备注0x03 读 整形、浮点、字符 读多个寄存器0x10 写 整形、浮点、字符 写多个寄存器0x06 写 整形、浮点、字符
6、写单个寄存器6.1.3 报文应答格式6.1.3.1 功能码(0x03)读主机请求:设备地址 功能码 寄存器地址 寄存器数量 CRCH CRCL1B 1B 2B 2B 1B 1B设备地址:主控板地址,为 0x01-0xF7 可选功能码:为 0x03寄存器地址:要读取数据的存放开始地址。寄存器数量:要读取的寄存器的个数从机应答:设备地址 功能码 寄存器地址 数据字节数 数据 CRCH CRCL1B 1B 2B 2B . 1B 1B设备地址:下位机地址,为 0x01-0xF7 可选功能码:为 0x03数据字节数:寄存器数量*27数据:N =(寄存器数量 *2)BYTE错误应答: 设备地址(1BYTE
7、)+ 出错功能码 +错误类型(1BYTE)+CRC 校验注意出错功能码是功能码 BYTE 最高位取反得到。例如 0x03 出错功能码为 0x83错误类型:01 非法功能02 非法数据地址03 非法数据值04 从站设备故障05 确认06 从属设备忙注:以上错误类型为 modbus RTU 标准含义。示例:读取命令:01 03 00 00 00 02 C4 0B (设备地址 01)02 03 00 00 00 02 C4 38 (设备地址 02)其中设备地址(01)+功能码(03)+寄存器起始地址(00 00)+寄存器数量(00 02 即指数据长度为2 个字)+CRC 校验 (C4 0B)应答报文
8、:01 03 04 41 CB 42 B7 EF 27设备地址(01)+ 功能码(03)+ 数据字节数(04)+ 读取数据( 实际为 16 进制数 42 B7 41 CB 对应的浮点型数据为 91.63)+ CRC 校验(EF 27)。6.1.3.2 功能码(0x10)写主机请求:设备地址 功能码 寄存器地址 寄存器数量 字节数 DATA CRCH CRCL1B 1B 2B 2B 1B . 1B 1B设备地址:主控板地址,为 0x01-0xF7 可选8功能码:为 0x10寄存器地址:要读取数据的存放开始地址寄存器数量:要写入寄存器的个数字节数:写入数据的字节数数据:要写入的数据注意如写一个寄存
9、器,则寄存器数量为 1,字节数为 2 ,数据为一个 WORD从机应答:设备地址 功能码 寄存器地址 寄存器数量 CRCH CRCL1B 1B 2B 2B 1B 1B示例:主机发送:01 10 00 6B 00 02 04 00 0F 06 08 86 51 从机回复:01 10 00 6B 00 02 30 14错误应答: 设备地址 (1BYTE)+出错功能码+错误类型(1BYTE)+CRC 校验注意出错功能码是功能码 BYTE 最高位取反得到。例如 0x03 出错功能码为 0x83错误类型:01 非法功能02 非法数据地址03 非法数据值04 从站设备故障05 确认06 从属设备忙注:以上错
10、误类型为 modbus RTU 标准含义。6.1.3.3 功能码(0x06)写主机请求:设备地址 功能码 寄存器地址 DATA CRCH CRCL1B 1B 2B 2B 1B 1B9从机应答:设备地址 功能码 寄存器地址 DATA CRCH CRCL1B 1B 2B 2B 1B 1B6.1.4 应用规约表3 Modbus数据类型定义表数据类型 描述及要求BYTE 无符号单字节整型(字节,8 位)WORD 无符号 2 字节整型(字,16 位)DWORD 无符号 4 字节整型(双字,32 位)FLOAT 4 字节浮点数型(字节,32 位) IEEE 754 标准DOUBLE 8 字节浮点数型(字节
11、,64 位)BYTEn N 字节STRING GBK 编码,采用 0 终结符,若无数据,则放一个 0 终结符DATE日期类型 6 字节年(BYTE)-月(BYTE)-日(BYTE)-时(BYTE)-分(BYTE)-秒(BYTE) 。其中:年=byte+2000, 月:1-12,日:1-31,时:0-23 分:0-59 秒:0-59数值格式:BCD 码数据字节序定义:协议采用大端模式(big-endian)来传递 WORD、DWORD、FLOAT、DOUBLE。对于DWORD、FLOAT、DOUBLE,字间顺序也按照大端模式(big-endian) 排列(也就是 Modbus 的 Swap 模式
12、)。6.2 数据内容定义表 4 仪器数据内容分类表分类 名称 描述工作模式 仪器当前工作模式工作状态 仪器当前工作状态测量数据 包括测量数值、数据时间、数据标识。基本信息远程控制命令 时间校准、测量、清洗、标定、标样核查、空白校准、标样校准等关键参数 包括设定参数(如消解时长)、运行参数(如斜率、截距)。反馈状态 测量过程数据、部件状态等管控信息告警信息 仪器部件、分析系统、预处理告警等10表 5 仪器工作模式定义表编码 描述 备注0 在线 处于在线工作模式,可执行远程控制指令1 离线 处于离线工作模式,不执行远程控制指令2 维护 处于维护工作模式3 故障 处于故障中6.2.1 工作状态仪器工作状态:仪表当前的测量工作状态。表 6 仪器工作状态定义表编码 描述 备注1 空闲2 测量3 维护4 清洗5 故障6 标液一校准 低点校准7 标液二校准 高点校准8 标定9 标样核查1099 可扩展6.2.2 测量数据表 7 仪器测量数据内容定义表编号 名称 备注1 数据时间 测量启动时间2 因子编码 国标因子编码后五位整数3 测量数值 见附表数据修约规则表4 测量数值单位 见附表数据修约单位编码表5 数据标识 使用标准标识