水文行业通信规约测试与实践
2013-07-16李晓辉
赵 越,李晓辉
(水利部水文仪器及岩土工程仪器质量监督检验测试中心,江苏 南京 210012)
0 引言
为确保水文数据采集、传输、处理各组成单元之间,以及子系统间实现高度的信息共享,标准化工作对于水文、水资源自动监测系统的成功建设非常关键。近年来我国水文系统已充分认识到水文、水资源通信规约的重要性。四川、江苏 2 省的水文水资源勘测局先后编写了《水文测报系统技术规约和协议》、《江苏省水文自动测报系统数据传输规约》等地方标准。在行业标准层面,2012 年《水资源监测数据传输规约》已经颁布施行,《水文监测数据通信规约》(报批稿)完成了编制工作并通过审查。
这些规约的编制对规范水文监测数据传输设备互相兼容、资源共享提供了坚实的技术支撑,同时也对规约的测试工作提出新的要求。
规约的测试工作分为规约测试和规约符合性测试。
1 规约测试
测试规约即对规约本身技术内容的测试。规约作为标准,其技术内容的准确性、完整性和可用性在编制过程中必须经过严格测试。
在规约标准编制送审稿、报批稿阶段应进行规约测试,以验证其是否完整、准确。以《水文监测数据通信规约》为例,介绍在征求意见稿、送审稿阶段进行的规约测试。
1.1 测试目的
通过规约测试达到以下目的:1)是否完全涵盖水文、水资源的所有功能要求;2)固定数据正文内容临界拆包或拆包状态的执行策略;3)数据自报、查询、控制和响应的功能;4)测试规约报文结构是否准确。
1.2 测试系统组成
测试系统由中心站、信道设备和 RTU 设备共同组成,结构如图1 所示。
图1 测试系统示意图
为了尽可能反映水文水资源监测系统硬件的实际情况,规约测试时,若采用一般常用的计算机软件模拟 RTU 是不能反映水文水资源监控设备实际能力的,为此采用实际系统中应用的 RTU 设备进行必要升级改造,通过实际信道(GPRS,GSM,北斗卫星)参与测试。
1)中心站。包括计算机及相应软件,应具有数据收发、查询、控制功能,对发送、接收的信息帧实时显示和分析。可提取信息帧的分层信息,如链路层标志和功能码、应用层信息对象标识等,便于直观判断信息交换的正确性。
2)RTU 设备。应具备以下能力:能连接规约所规定的全部采集参数所对应的传感器,并能完成数据采集功能,或置入有效数据,模拟采集功能;按照规约要求处理、发送相关数据;接收中心站指令并做出相应动作。
3)信道设备。为模拟实际链路环境下的规约运行情况,测试信道为 GPRS(CDMA),GSM,北斗卫星。各信道设备的型号、版本号如表1 所示。
表1 信道设备
中心站 GPRS 接入方式为固定 IP。
1.3 测试内容
1.3.1 规约功能码遍历
对《水文监测数据通信》进行规约测试,通过遍历规约的所有功能码检查报文结构是否合理,功能是否完整。
1.3.2 场景测试用例
按照数据流向,可将水文水资源监测系统划分为以下 3 类场景:1)传感器到 RTU;2)RTU 到中心站;3)中心站到 RTU。规约测试重点为 RTU 至中心站之间的通讯功能检查,即场景 2 和 3,在场景 2 和 3 下设置了 RTU-中心站的自报、应答,中心站-RTU 的查询,中心站-RTU 的控制及响应等 4 大类场景。
1.4 测试结果
在《水文监测数据通信》规约编制过程中,共进行了 2 次规约测试。通过测试确定该规约报文结构合理,基本满足水文监测数据传输的要求。但在测试中仍发现以下一些问题:
1)文字错误,导致上下文表述不一致;
2)帧结构不准确;
3)报文功能码不能满足水文、水资源测控系统需要。
根据测试结果对《水文监测数据通信》文本进行修订使之完整、准确,并于 2012 年 9 月26 日通过报批稿的标准审查,正式上报待批,在国家水资源能力建设和甘肃省中小河流治理中,该规约和《水资源监测数据传输规约》被广泛应用。
2 规约符合性测试
规约符合性测试即对被测设备规约符合性进行测试。依据有关通信规约标准(如《水资源监测数据传输规约》、《水文监测数据通信》等),根据制造企业或用户委托要求,进行标准一致性或系统设备兼容性的测试。
2.1 测试内容
1)物理层的检验项目,包括字节格式和传输速率是否正确。
2)链路层的检验项目,有帧格式是否正确,传输规则是否满足规约要求等项目。
3)基本应用功能检验,包括:测站参数设置,自报、召测,时钟同步等。
4)数据正确性的检验,包括:测量数据、固态存储、内存下载数据是否正确,实时数据是否正确。
同时测试要求 RTU 设备具有物理层功能,即数据(模拟数据)采集、发送,RTU 系统参数和数据的贮存。规约符合性测试内容包括传感器(模拟传感器)数据采集、传输,以及 RTU 设置。
2.2 测试方法
基于规约测试阶段的经验,为确保测试软件的准确、公正,相关单位编制了“水资源数据传输规约测试软件”和“水文数据传输规约测试软件”。在软件编制过程中先后安排了数种 RTU 与其交叉测试,以《水文监测数据通信》为例,该软件先后与 3种 RTU 交叉测试。通过交叉测试和文档校核,确保测试软件符合《水文监测数据通信》的规定。
为了更贴近水文、水资源监测工作实际需要,本次测试信道选用 GPRS(CDMA),同时兼容北斗卫星等其他信道。
规约测试主要依靠设备的规约实现文档和测试系统进行。规约实现文档应逐项列出该规约所实现的应用功能、选项和报文类型等;测试系统可以是安装了测试软件的计算机,通过 GPRS 等信道与被测设备相连。测试软件应完全遵循相应标准,有以下几方面功能:
1)工作模式(自报、兼容、查询应答)[1]的选择。
2)信息的构造。可灵活构造信息帧, 选择帧格式、命令、状态标志和数据等。
3)信息的实时分析、捕捉和存储。对发送、接收的信息帧实时显示和分析,实时提取信息帧的分层信息,如链路层标志和功能码、应用层信息对象标识等。
4)错误显示和统计。初步具备对通信中发生的错误如应答、标志错误的显示和统计。
2.3 测试步骤
1)测试前根据测试内容制作详细的测试大纲,列出测试项目。
2)链路测试。测试系统根据测试大纲发送单个或 1 组信息帧。当测试特定内容(如数据格式)时,可发送数据召唤命令,检查响应的数据报文。
3)按测试大纲逐一进行测试。主要测试通信过程中发送、接收的信息帧是否正确,包括帧格式、状态标志和数据类型等;接收传感器数据是否准确,并进行记录;对接收的报文作简单判断,遇到错误时此项测试中断。
4)测试完成后对测试记录进行分析,如各项内容均通过,可以认定此规约实现符合相应标准;如有部分内容未通过,则必须找出原因以便进行修改。
5)依据测试结果形成检测报告。
2.4 测试中注意事项
规约符合性测试过程中,发现在相同技术环节发生一些共性问题,测试时必须要注意,以下以《水文监测数据通信规约》为例进行探讨。
2.4.1 规约测试的物理属性
测试要求 RTU 设备具有物理层功能,在测试过程中要求密码、地址等要素在系统掉电后不应丢失,被测要素应与 RTU 设备实际采集要素一致。
2.4.2 CRC 校验
CRC 校验的基本思想是利用线性编码理论,在发送端根据要传送的 k 位二进制码序列,以一定的规则产生 1 个校验用的监督码(既 CRC 码)r 位,并附在信息后边,构成 1 个新的二进制码序列数共(k + r)位,最后发送出去。在接收端,根据信息码和 CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。
《水文监测数据通信规约》采用 CRC16 校验,测试过程中应注意 CRC 校验中的几个要素:初始值为 FFFF,方向为右移,多项式为 0xA001[2]4-14。
2.4.3 帧结构部分
在《水文监测数据通信规约》中,不同类型的报文需要考虑使用不同的正文开始符和结束符(主要针对分包传输),报文上行和下行的方向标识符不一样,需要注意。
所有召测回应报文,都不再发送确认。如果回应报文为多包传输,也不再发送确认,只进行接收。
2.4.4 正文结构
在 ASCII 报文中,各要素、数据、要素和数据、要素和其他元素、数据和其他元素之间都需要用空格分隔,其他元素包括测站分类码、正文结束符等。协议中明确规定不需要增加的部分除外。
在 HEX 报文中,标识符采用 2 字节 HEX 码,第 1 个字节为引导符,第 2 个字节为数据定义字节,按照规约实现文档附录 C[2]41-46的规定进行。对于附录中规定固定用 F0 之类的,应把 F0 作为数据定义字节,例如测站标识符为“F1 F1”。
2.5.5 要素无数据情况
数据组中的数据应与要素标识符组中编列的要素标识符一一对应。当某个要素某个时间点没有数据时,对于 ASCⅡ 编码报文应在数据组相应位置上填列字符“M”,对于 HEX/BCD 编码报文应在数据组相应位置上填列与其他数据位数一样的“A”。此类 HEX/BCD 编码报文中标识符规定的数据长度定义适用于每组数据,即每组数据长度应一致。
3 结语
在规约测试过程中,为方便测试的进行,检测单位对密码(密钥)、存储补发等要素进行了补充约定,这些约定仅适用于规约测试,在具体项目中,建设方可根据实际情况约定相关要素。
水文、水资源通信规约有利促进了行业技术进步,同时对检测单位提出了更高的要求,检测单位需要针对规约测试投入更多的资源,以提高技术水平和检测能力。
[1]国家水资源监控能力建设项目办公室. SZY206-2012 水资源监测数据传输规约[S]. 北京:国家水资源监控能力建设项目办公室,2012: 13-15.
[2]水利部水利信息中心,水利部水文仪器及岩土工程仪器质量监督检验测试中心. 水文监测数据通信规约(送审稿)[S]. 北京:水利部水文局,2012.