网站首页 > 编程文章 正文
所谓协议,就是双方协商后达成一致的一个规范。通讯协议,就是通讯的规范,规定两个设备,或者设备与平台之间如何对话
一、协议简介
H212协议由国家环境保护部颁布,适用于污染物在线监控(监测)系统、污染物排放过程(工况)自动监控系统与监控中心的数据传输,最新版本是2017版,代替了以前的2005版。它规定了传输的过程及参数命令,交互命令,数据命令和控制命令的格式,给出了代码定义。H212协议允许扩展,但扩展内容时不得与已使用或保留的控制命令相冲突。同时,H212协议还规定了在线监控(监测)仪器仪表和数据采集传输仪之间的数据传输格式,并给出了代码定义。
二、通讯流程
H212共有3种形式的命令,对应三种通讯流程(如图):
命令形式 | 流程图 |
1. 请求命令(三步或三步以上) | |
2.上传命令(一步或两步) | |
3. 通知命令(两步) | (第一步) (第二部) |
三、通讯协议数据结构
H212的报文格式如下:
四、实际报文解析
现在我们以一段实际的报文为例,来分析一下H212的传输解析过程,这是一段下位机向上位机发送的携带实时数据信息的报文,对应上述流程中的第二条-上传命令:
对照上面的列表,报文开始的“##”为包头字符,长度为2字符,用于定位每一帧的开始。
后面的“0504”是数据段长度,表示这个字段往后的报文长度(注意是字符个数,不是字节数),不包含最后的CRC校验。
后续红框内这些就是数据段。
最后的5F00就是这段报文的CRC校验。
末尾的回车换行在报文中有实际效果,但是没有字符显示。
下面我们再来详细分析数据段的报文:
QN代表请求编码,它是一个精确到毫秒的时间戳,用来唯一标识一次报文交互。所以本段报文截取自2020年8月5日9点27分46秒677毫秒的一次交互。
第二个字段ST表示系统编码,其具体含义见下表:
本次报文的ST为32,表示本次报文上送的是“地表水体环境污染源”的数据。
第三个字段CN表示命令编码,具体定义可参考下表:
本次报文CN=2011,表示它是一条现场机向上位机上送“污染物实时数据”的报文。
第四个字段PW表示访问密码。
第五个字段MN表示设备唯一标识,具体意义如下:
第六个字段Flag含义如下:
在这条报文中,Flag=5,写成二进制就是00000101,所以V5~V0为000001,表示本次标准修订版本号;A位为1,表示应答;D位为0,表示数据包中不包含包号和总包数两部分。
第七个字段CP是指令参数,它的格式为CP=&&数据区&&。两个“&&”中间就是数据区。
在数据区中,DataTime在命令2011中表示数据采集的时刻。
后面依次为各个污染物的测量值以及采集器的状态:
其中21001表示总氮,22001表示石油类。
xxxxxx-Flag=N表示采集该编号污染物的在线监控(监测)仪器仪表工作正常。
总结一下就是:这条报文是2020年8月5日9点27分46秒677毫秒的时候,由设备标识为370702003191213175805的现场机向上位机发送的地表水体环境污染源的污染物实时数据,主要包含总氮,石油类等等,采集该编号污染物的在线监测仪工作正常。报文的版本号是本次标准修订版本号,需要对方应答。
五、总结
以上通过一个具体的报文讲解了H212-2017版的解析过程。解析报文有两个重点:一是要搞清交互的过程,比如总共有几种类型的报文,每种类型的报文交互分为哪几个步骤,发起方如何发起,应答方如何应答,正常的流程是什么,遇到异常如何处理等等;另一方面就是把每一段报文拆分字段,搞清每个字段的含义,最终获取该报文所表达的全部意义。大家可以对照环境保护部颁发的“污染物在线监控(监测)系统数据传输标准”自行解析收到的报文。
猜你喜欢
- 2025-04-08 潜艇,合同和回国(560亿欧元潜艇合同)
- 2025-04-08 腾讯QQ辟谣:“212事件”处罚通知系谣言
- 2025-04-08 QQ辟谣212事件是怎么回事?腾讯QQ辟谣212事件处罚通知
- 2025-04-08 倍福PLC数据 转 profinet IO项目案例
- 2025-04-08 EthernetIP IO从站设备数据 转 Modbus RTU TCP项目案例
- 2025-04-08 基恩士PLC数据 转 IEC61850项目案例
- 2025-04-08 AB plc设备数据 转profinet IO项目案例
- 2025-04-08 腾讯QQ辟谣:网传腾讯总办关于“212事件”处罚的通知系谣言
- 2025-04-08 DTL698电表数据 转 IEC61850协议项目案例
- 2025-04-08 腾讯QQ:网传腾讯总办关于“212事件”处罚通知系谣言
你 发表评论:
欢迎- 05-142014年最流行前端开发框架对比评测
- 05-14七爪源码:如何使用 Next.js 构建 Shopify 店面
- 05-14Web 前端怎样入门?
- 05-14我为什么不建议你使用框架
- 05-14推荐几个好用的React UI 框架
- 05-14PDFsharp:强大的 .NET 跨平台 PDF 处理库
- 05-14一组开源免费的Web动画图标,荐给需要的设计师和程序员
- 05-14salesforce 零基础学习(二十九)Record Types简单介绍
- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)