欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

环保总局HJ/T212-2005技术规范应用难点剖析 网络应用企业应用大众硬件网络协议大众软件 

程序员文章站 2022-06-02 17:58:26
...
 摘 要:2005 年12月30日,国家环境保护总局发布 了《污染源在线自动监控(监测)系统数据传输标准》,用于指导污染源在线自动监控(监测)系统的建设。该标准的出台加强了各地方环保局环境监测工作,加快了各地污染源自动监控体系的建设。然而笔者在实际的污染源在线监控中心系统建设和软件开发过程中发现,HJ/T212-2005有一些协议条目在开发中会形成技术难点。本文通过对这些难点的解析,在实际的系统建设和软件开发过程中,利用软件开发技巧对这些难点进行了有效的解决,并在实际的收数平台和污染源在线自动监控系统中取得了很好的效果。

  关键词:环保总局协议 HJ/T212-2005 污染源在线 自动监控

  软件园地推荐企业介绍:北京盈泰时代科技有限公司从事自主环保信息化系列软件开发及通信技术应用已有十载。十年来,在环保行业内积累了丰富的实践经验,受到客户的一致好评。我公司旗下自主研发的产品有:环境应急通信系统、基于GIS的在线监控及应急指挥系统、环保移动执法系统、GPS车辆监控调度系统、环保综合业务管理系统、环保信息发布门户系统、烟尘林格曼黑度分析软件。在环保信息化领域,具备总集成经验,曾实施的重要项目之一“长春市远程环境实时监控管理系统”分别进行了项目一期、二期、三期的建设,不仅使公司积累了大量的行业实践经验,同时树立了良好的业内口碑。该项目被国家环保部评为国家样板工程。

  前 言

  在中国,环保事业长期以来被忽视,一些地方为了更快的经济发展。走出了一条“先污染、后治理”的弯路。幸运的是,国家和人民大众已经意识到了环保的重要性,国家对环保日益重视,已经把环境保护纳入国家发展的总体发展规划中,并从人、财、物等方面给予充分保证。国家环保局也升格为环保部,环保的时代全面到来了。作为工作在环保第一线的各地方环保局,一直承担着国家环保的主要任务,各地方环保局也建立了相应的污染物在线监控中心,环境监控中心的建设对加强环境监管具有非常大的促进作用。环境监督靠监测,环境执法靠监察,监控系统可以改变环境监督和执法的方式,提高环境监督和执法的科学性,克服环保监测和监察人员不足的困难。

  1 该规范对环保的指导作用


  为贯彻《*环境保护法》,指导污染源在线自动监控(监测)系统的建设,规范数据传输,保证各种环境监控监测仪器设备、传输网络和环保部门应用软件系统之间的连通,国家环境保护总局2005-12-30发布了《污染源在线自动监控(监测)系统数据传输标准》,该标准规定了污染源在线自动监控(监测)系统中监控中心(上位机)和自动监控设备(现场机)之间数据通讯、控制和报警等信息的传输协议,主要适用于污染源在线自动监控(监测)系统自动监控设备和监控中心之间的数据交换传输。标准规定了数据传输的过程及系统对参数命令、交互命令、数据命令和控制命令的数据格式和代码定义[1]

  《污染源在线自动监控(监测)系统数据传输标准》(HJ/T212-2005),规定了自动监测设备到监控中心的数据传输标准。建立了完整的污染源自动监测管理和技术规范体系,保证自动监测系统的正常运行和监测数据准确可靠。随之标准的实施,各地的监控中心建设日益规范,各地方环保局进一步加强了环境监测工作,加快了自动监控体系建设。把自动监测的数据作为环境统计、定期通报、总量减排、“以奖代补”、环境执法、排污收费等方面的重要依据。标准的实施也规范了对全省重点污染源和重点水、气环境的监管,有效地控制了偷排、超排现象,促进了环境质量逐步改善。通过监控中心可以及时查处发现的超标排放行为,促进企业和城镇污水处理厂及时进行彻底整改,保证了环境执法的及时性和严肃性,有效地控制了超标排污现象,促进了生态环境进一步改善[2]

  2 规范在实际应用中的不足之处

  《污染源在线自动监控(监测)系统数据传输标准》(HJ/T212-2005)的实施有效的规范了环保监控行业的软硬件接口,使得污染源在线监控系统的软件开发和各个厂商的监控设备具有了统一的接口,保证了系统的兼容性。然而通过我们在吉林、天津等地污染源在线监控中心系统建设和软件开发过程中发现现行的《污染源在线自动监控(监测)系统数据传输标准》(HJ/T212-2005)在有些条目中会形成开发难点。这些开发难点如果处理不好,会影响接口的规范性,并在一定程度上破坏标准对于软硬件的兼容性。

  2.1 特殊污染物类型特殊处理

  协议中的数据区部分定义了上报的某种污染物的值类型和值大小。这个部分可以包含的值类型由协议中的表 6.3.3.2.3详细描述,对于一个具体的数值来讲,只可能是实时值、最大值,最小值,平均值,累计值等等。例如xxx-Rtd就表示污染物xxx的实时采样值,xxx-Min表示污染物xxx一定时间内的最小值…但是,表中的符号xxx-DayData(噪声监测日历史数据)和 xxx-NightData(噪声监测夜间历史数据)两个值类型却同以上定义不同,协议中将声音污染的值类型单独和别的污染物区分开了。所以在开发中需要提前调整数据库表结构,并额外定义关于xxx-DayData(噪声监测日历史数据)和xxx-NightData(噪声监测夜间历史数据)的存储、转换、计算、显示的功能模块。

  2.2 超标部分的定义冗余

  协议中有关于数据超标部分的定义和描述。从实际项目经验看来这个部分必要性不大,是冗余的。超标判断报警功能可以完全交给中心软件来做,这样做至少有以下3个方面的好处:

  1.从环保局的角度出发,他们更加愿意使用监控中心软件来判断数据是否超标。

  2.从管理角度出发,在监控中心软件设置超标阈值比在前端设备上设置更加灵活和快捷

  3.从硬件厂商出发,免去在硬件上计算超标的模块可以进一步降低成本

  建议各开发人员在系统中重新建立超标阈值设定和超标量存储分析模块,达到实用性的目的。

  2.3 自主定义链路联通性测试报文

  由于本协议是应用层协议,在制定的过程中体现了通讯介质无关性的原则,因此在使用的过程中不关心底层通讯协议的具体细节,提高了不同网络下的通用性。但是,不同应用网络的网络通讯状态差异很大。在实际的项目中,大多数的在线设备采用的是GPRS或者CDMA 的方式传输数据。由于这种上网方式的带宽较小而且手机信号比较容易受到外部条件的干扰,链路的连通性不能得到保证,经常会出现链路“假断开”的现象。我们的经验是,数据包的发送间隔不能小于5分钟,否则“假断开”的现象将十分明显。但是在实际的应用中,每包实时数据包之间的间隔经常会在5分钟以上,因此就很有必要使用链路连通性报文来防止“假断开”现象的发生,保证链路的畅通。但协议中并没有对于链路连通性测试的定义,因此在开发过程中使用协议中的预留命令来扩充连通性测试报文的定义。实现准确的联通测试。

  2.4 建立额外缓冲区实现反控命令的返回报文和主动上报报文相区分

  在协议中,在线设备和中心的数据交互采用两种方式:

  ①由在线设备主动上报数据,中心根据上报数据的要求决定是否进行数据应答。

  ②由中心主动向在线设备请求数据,在线设备根据中心发送的命令决定返回何种类型的数据。

  我们把第一种中方式称为:主动上报;第二种方式称为:反向控制。在实际的应用中,大部分的数据都是采用主动上报的方式发送到中心的。而在中心需要查看现场在线设备的历史数据,或者设置一些运行参数时使用反向控制方式。反向控制命令的返回报文无法天然的和主动上报报文相区分是指,我们无法在不参考前后报文的情况下而只根据一条报文所包含的信息确定这条报文是反向控制的返回报文还是主动上报报文。下面我们使用协议中的一个例子(参见HJ/T212-2005 附录C的例子4实时数据采集)来详细说明。

  中心:

  QN=20040516010101001;ST=32;CN=2011;PW=123456;MN=88888880000001;Flag=3;CP=&&&&………………………………………(1)

  现场设备:

  ST=91;CN=9011;PW=123456;MN=88888880000001;Flag=0;CP=&&QN=20040516010101001;QnRtn=1&&………………………………………(2)

  现场设备:

   ST=32;CN=2011;PW=123456;MN=88888880000001;CP=&&DataTime=20040516020111;B01-Rtd=100;101-Rtd=1.1;101-Flag=N;102-Rtd=2.2;102-Flag=N…&&……………………… (3)

  中心:

  ST=91;CN=9013;PW=123456;MN=88888880000001;CP=&&QN=20040516010101001&&………………(4)

  上面的例子描述了一次以中心为主动发起者的反向控制通讯过程,目的是从现场设备上获得实时采样数据。根据协议中的规定,每次反向控制过程都是用通讯发起者指定的命令标识QN来唯一指定一个通讯过程。而在上例的报文3中,QN信息丢失,因此我们如果在不判断报文2的情况下,无法区分报文3是一条主动上报的实时数据报文(CN=2011)还是某个反向控制请求的应答报文。要解决这种情况,需要开发人员在中心的解析软件中额外的使用一块数据缓冲区来保存数据报文的上下文,从而能够区分不同的报文类型。

  2.5 为每个污染物统计配置合适的统计算法

  协议中定义了所有的污染物上报的值类型只能取自表6.3.3.2.3,也就是说,对于某种特定的污染物,可能上报的值只能为实时值,最大值,最小值,平均值…这其中的一种或几种。但却没有规定那些值是可选的,那些值是必选的,这就为中心接受软件在进行统计分析的时候造成了很大麻烦。因为不同的值类型的统计算法也不同。拿污水而言,有些在线设备上报的是一段时间内的累计值(L),而另外一些设备上报的是某个时间点流量的实时值(L/S)。如果是一段时间内的累计值,在统计污水总量的时候直接累加即可;而某时间点流量的实时值却需要使用诸如的公式进行计算。而由污水总量计算的不同就造成了依赖于污水总量统计值的其他诸如COD总量,PH平均值等指标计算的不同。所以中心平台软件需要对每一个污染物都配置一个合适的统计算法。

  2.6 CRC校验部分只给出了实现的方法,但没有具体的实例

  循环冗余校验(CRC)是常用的一种差错校验码,由于它计算速度快,纠错能力强,在数据通讯领域得到了广泛的应用。HJ/T212-2005协议也采用了CRC算法来进行通讯报文的校验。但是协议中的CRC校验和通用的Modbus Protocol中定义的CRC校验略有不同。在协议的附录A中对CRC校验的过程描述如下:

  CRC 校验(Cyclic Redundancy Check)是一种数据传输错误检查方法,CRC码两个字节,包含一16位的二进制值。它由传输设备计算后加入到数据包中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。

  具体算法如下:

  CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。

  CRC校验字节的生成步骤如下:

  ①装一个16位寄存器,所有数位均为1。

  ②取被校验串的一个字节与16位寄存器的高位字节进行“异或”运算。运算结果放入这个16位寄存器。

  ③把这个16寄存器向右移一位。

  ④若向右(标记位)移出的数位是1,则生成多项式1010 0000 0000 0001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回③。

  ⑤重复③和④,直至移出8位。

  ⑥取被校验串的下一个字节

  ⑦ 重复③~⑥,直至被校验串的所有字节均与16位寄存器进行“异或”运算,并移位8次。

  ⑧ 这个16位寄存器的内容即2字节CRC错误校验码。

  校验码按照先高字节后低字节的顺序存放。

  在这份算法介绍中要求取被校验串的第一个字节与16位寄存器的高位字节进行“异或”运算。运算结果放入这个16位寄存器。

  而在Modbus Protocol中,采用的校验流程如图所示[1]

  
图1 Modbus Protocol中的校验流程


  从上图可以看出,Modbus Protocol在进行“异或”运算时采用的是与寄存器的低8位进行运算[3]。而Modbus Protocol在一定程度上成为了硬件厂商的通用标准,因此很多硬件厂商在制造在线设备时依然沿用Modbus Protocol中的CRC校验算法,这就造成了CRC校验算法的不统一。为了避免CRC校验的不同而在通讯上造成的问题,目前很多在线厂商的做法是直接放弃CRC校验,所以在开发过程中开发人员应该兼顾低8位CRC校验、高8位CRC校验和无校验的情况。

  3 对该规范协议开发的综合意见

  根据上面提出的不足和现在实际应用,在实际的操作过程中,我们给出开发人员以下建议:

  1.忽略上报数据的超标部分,而由中心接收平台根据设定值自行判断污染物是否超标

  2.和硬件厂商协商测试链路连通性报文

  3.使用数据缓存的方法保存某条报文的上下文信息,使用上下文来判断某条报文具体为主动上报还是反向控制应答

  4.采用基于SQL描述的超标和统计配置公式,达到屏蔽污染物上报值类型的不同带来的超标和统计困难问题。

  5.目前实际应用的运输层协议多为TCP,而TCP协议本身就具有保证报文正确顺序抵达的机制,因此可以忽略CRC校验的。

  通过这些处理后所完成的收数平台和污染源在线监控系统可以更好的满足各地方环保局对于污染源在线监控的具体业务要求。

  4 在现有标准的基础上改进后的实际应用

  在我们前期已经完成的吉林、天津等地污染源在线监控中心系统建设和软件开发过程中,我们采用上述方法,合理的规避了协议中的问题,并可同多家硬件厂商进行数据解析,监控中心软件功能和设置也更加的灵活。取得了很好的应用效果,下面是系统应用的一些系统截图。

  我们所完成的污染源在线监控系统数据接收平台是一个开放式的在线监控数据接收框架。由于在数据解析部分采用了灵活的插件形式,因此能够支持包括总局协议在内的任意数据解析协议。在数据库方面,由于使用了索引和分表技术,极大的提高了数据库的存储和读取效率;并且在污染物的统计上,采用入库直接统计的计算方式,因此用户在查看和现实数据统计信息时就不用在进行长时间的等待,大大提高了用户使用的舒适度。



图2 污染源在线监控系统数据接收平台



图3 上报数据监控管理界面

  对于污染源在线监控中心软件,在开发中也完成了GIS版和普通版两类软件,这两类软件均能同收数平台进行很好的配合,完成污染源在线监控的工作,同时利用图像化方法,对数据进行了很好的展现。



图4 基于GIS 的污染源在线监测系统数据表现



图5 污染源在线监测系统数据展现


  通过图形化的展现页面,可以让监控人员直观的观测到污染源监测状态的变化和数据的变化。

  5 总结

  2005年12月30日,国家环境保护总局发布 了《污染源在线自动监控(监测)系统数据传输标准》,用于指导污染源在线自动监控(监测)系统的建设,规范数据传输,保证各种环境监控监测仪器设备、传输网络和环保部门应用软件系统之间的连通。该标准的推出为各地方环保局环境监测工作提供了有力的保障。然而在吉林、天津等地污染源在线监控中心系统建设和软件开发过程中遇到了一些难点。如污染物上报值类别指代不清、超标部分的定义冗余、没有定义链路联通性测试报文、反控命令的返回报文无法天然的和主动上报报文相区分等,这些难点给通讯报文的正确性带来了一定的风险。针对以上论述的问题,在实际的操作过程中,我们利用了其它一些方法来规避难点问题。并在实际的收数平台和污染源监控进行了应用,取得了很好的效果。希望这些经验可以为其它环保业务单位在污染源在线自动监控系统的建设中提供有效的帮助。



图6 污染源在线监测系统数据的曲线图展现



图7 污染源在线监测系统数据的数据统计功能(柱状图)


  本课题项目支持:

  1.长春市环保局污染源在线监测系统

  2.中国石化集团污染源在线监控地理信息系统

  3.中国第一汽车集团公司污染源在线自动监测信息系统


  参考文献:


  [1]国家环境保护总局 发布污染源在线自动监控(监测)系统数据传输标准 2005-12-30 *环境保护行业标准 HJ/T212-2005

  [2]魏山峰 试论环境监控中心在总量减排中的作用 2008 中国环境报

  [3]Modicon Modbus Prtocol Reference Guide, MODICON,Inc.,Industrial Automation Systems,June 1996

  作者简介:

  解迎刚,1978年,男,北京科技大学,博士,主要研究方向:软件开发,WEBGIS系统应用与研究,人工心理,环境监测信息系统,发表论文10余篇。

  丁志淳,1974年,男,硕士,北京盈泰时代科技有限公司总经理,主要从事行业:软件开发,WEBGIS系统开放,环保监测,环境监测信息系统。