一种通用的水文监测数据通信规约解析方法
更新日期:2018-06-08     来源:水力发电   浏览次数:271
核心提示:摘要:针对水文监测系统中规约种类繁多,大多数水文监测系统都采用硬编码的方式进行解析,一旦协议发生变化,就必须对软件进行重新编码编译,可扩展性

摘要:针对水文监测系统中规约种类繁多,大多数水文监测系统都采用硬编码的方式进行解析,一旦协议发生变化,就必须对软件进行重新编码编译,可扩展性差的问题。采用面向对象技术,研究分析行业中主流的水文监测类通信规约,并总结解析与生成协议帧所需的动作;借鉴编译技术和模版技术,以程序与数据分离为原则,研究设计了一种通用的规约解析与生成算法,该算法通过将规约进行形式化描述,实现用稳定的程序处理不稳定的协议帧。将实现的通信模块进行集成测试,通过实际运行,表明该方法具有一定的实用性。
关键词:编译技术;通信规约;协议帧解析;协议帧生成;水文监测
1 引言
目前,大多数水文监测系统都采用硬编码方式进行协议解析。一旦底层设备发生变化,就可能造成整个应用程序的重新编写和编译,大大增加了系统的维护量和开发人员的负担;另一方面,采用这种方式的协议解析方法是不可通用的,可扩展性差。因此,本文提出了一种通用性强、扩展性好、易于维护的水文类规约解析方法。借鉴编译技术,将数据采集的业务逻辑和数据结构分离,采用.ini数据文件对规约结构和规约解析流程进行形式化描述,一旦规约发生变化,只需更改规约形式化描述文件,无需重新编译程序,将其实现为可以一次开发,多次重用的通用模块。
2 水文监测数据通信规约分析
近年来,我国水文系统已经充分认识到水文、水资源通信规约的重要性。四川、江苏两省的有关部门先后编写了《水文测报系统技术规约和协议》、《江苏省水文自动测报系统数据传输规约》等地方标准。在行业标准层面,2008年水利部颁布《水资源监控管理系统数据传输规约》(SL427-2008);2012年国家水资源监控能力建设项目办公室颁布《水资源监测数据传输规约》(SZY206-2012);2014年《水文监测数据通信规约》(SL651-2014)颁布实施。
通过对这些通信协议综合分析发现,虽然应用层协议的类别会因设备和厂家的不同而有很大的变化,但是这些协议都各自具有确定的帧格式,而且,这些通信协议的构成很类似,帧数据的格式内容大多都包含地址、命令、参数、数据、校验等信息。这些协议的区别主要在于使用的功能码不同,对不同数据的理解不同,或者校验方式不同[2]。
以单元为对象。单元可以定义为通信帧在逻辑上具有特定功能或相同属性的连续排列的字节集合。单元是逻辑上不可分的最小组成单位。不同的协议,部件中含有不同的单元,从单元层面看协议帧,尽管所属区域不同,但是意义和作用是一样。
作者:张拓,王晓敏