所谓协议,就是双方协商后达成的一种规范。通信协议是通信的规范,规定了两个设备之间或者设备与平台之间如何通话。1.协议介绍。
H212协议由环保部颁布,适用于污染物在线监测系统、污染物排放过程(工况)自动监测系统与监控中心之间的数据传输。最新版本是2017版,取代之前的2005版。规定了传输过程、参数命令、交互命令、数据命令和控制命令的格式,并给出了代码定义。H212协议允许扩展,但内容扩展不得与使用或保留的控制命令冲突。同时,H212协议还规定了在线监测仪表与数据采集传输仪表之间的数据传输格式,并给出了代码定义。二、沟通过程
H212命令有三种形式,对应三个通信过程(如图所示):
命令形式
流程图
1.请求命令(三步或三步以上)
2.上传命令(一步或两步)
3.通知顺序(两步)
(第一步)(第二部分)
三。通信协议的数据结构
H212的消息格式如下:4。实际消息分析。
现在我们以一个实际的报文为例来分析H212的传输和分析过程,H212是下位机发送给上位机的,携带实时数据信息的报文。对应的是上面流程中的第二项——上传命令:对比上面的列表,消息开头的“# #”是一个头字符,长度为2个字符,用来定位每一帧的开头。后面的“0504”是数据段长度,表示该字段之后的报文长度(注意是字符数,不是字节数),不包括最后的CRC校验。这些是后续红框中的数据段。最后5F00是该报文的CRC校验。结尾的回车和换行符在消息中有实际效果,但是没有字符显示。让我们详细分析一下数据段的消息:QN代表请求代码,这是一个精确到毫秒的时间戳,用于唯一地标识一个消息交互。所以这条消息是从2020年8月5日9: 27: 46: 677 ms的一次互动中截取的。
第二个字段ST代表系统代码,具体含义如下表所示:
该报文的ST为32,表示该报文中发送的是“地表水体环境污染源”的数据。
第三个字段CN表示命令代码。具体定义请参考下表:
此消息CN=2011表示是现场机向上位机发送“污染物实时数据”的消息。
第四个字段PW表示访问密码。
第五个字段MN代表设备的唯一标识,具体含义如下:
第六个字段标志具有以下含义:
在这个报文中,Flag=5,二进制写成00000101,那么V5~V0就是00001,表示这个标准的修订号;一位为1,表示有响应;位d为0,表示包号和总包号不包含在包中。第七个字段CP是指令参数,其格式为CP= data area 两个“ ”中间为数据区。在数据区中,DataTime表示命令2011中数据采集的时间。其次是各污染物的测量值和采集器的状态:21001代表总氮,22001代表石油。Xxxxxx-Flag=N表示采集该编号污染物的在线监测(监控)仪器工作正常。
综上所述,此消息是2020年8月5日9: 27: 46: 677 ms,设备标识为370702003191213175805的现场机发送到上位机的地表水环境污染源污染物实时数据,主要包括总氮、石油类等。收集这些污染物的在线监测器工作正常。消息的版本号是这个标准的修订版本号,需要对方回答。五.总结
以上通过一个具体的消息解释了H212-2017版本的解析过程。消息解析有两个关键点:一是要搞清楚交互的流程,比如消息总共有几类,每类消息交互分为哪些步骤,发起方如何发起,响应方如何响应,正常流程是什么,异常如何处理等等;另一方面是将每条消息拆分成字段,找出每个字段的含义,最后得到消息表达的全部意思。你可以根据环保部发布的《污染物在线监测系统数据传输标准》自行分析接收到的报文。