1、 ICS 65.020.01 B 07 武汉市地方标准 农业生产环境监测数据自动采集传输 技术规范 2017-06-20 发布2017-07-20 实施武汉市质量技术监督局 发 布 DB4201 DB4201/T 5272017 DB4201/T 527-2017 I 前 言 本规范按照GB/T 1.1-2009 给出的规则起草。本规范由武汉市农业科学技术研究院农业机械化科学研究所提出。本规范由武汉市农业科学技术研究院归口。本规范起草单位:武汉市农业科学技术研究院农业机械化科学研究所。本规范主要起草人:张尉、高星星、杜铮、肖进、陈鸿。本规范首次发布。DB4201/T 527-2017 1 农业
2、生产环境监测数据自动采集传输技术规范 1 范围 本规范规定了农业生产环境数据自动监测数据传输的系统结构、协议层次、通讯协议的要求。本规范适用于武汉地区农业生产环境数据系统中自动监测设备和监测中心之间的通信规范。本规范不适用于图像和视频数据方面的引用。2 术语和定义 下列术语和定义适用于本文件。2.1 农业生产环境自动监测系统 对农田小气候、土壤、水、植物本体信息等实施在线自动监测的系统。包括农业生产环境监测中心和农业生产环境自动监测设备组成的系统。它能对农作物生长密切相关的农田小气候、土壤、水、植物本体等环境参数自动进行连续监测。2.2 农业生产环境监测中心 安装在各省、市、县、区农业监管部门
3、,有权限通过传输线路与自动监测设备连接,对其发出查询和控制等指令的数据接收和数据处理系统,包括计算机信息终端设备及计算机软件等,也称为“上位机”。2.3 农业生产环境自动监测设备 安装在农田、温室、草场完成对局部农业生产环境,包括农田小气候、土壤、水、植物本体信息采集于一体,实现区域内环境的监测以及完成与上位机的数据通讯传输的单台或多台设备及设施,包括空气温湿度、风力风向、降雨量、二氧化碳含量、地面温度、土壤养分含量、水环境信息等农业生产环境数据采集采集设备(传感器)以及数据处理装置和传输装置,也称为“现场机”。2.4 数据采集设备 农业生产环境自动监测设备的一部分,安装在农田、温室、草场完成
4、对局部农业生产环境环境监测要素指标的监测设备、完成数据采集并与数据集中采集传输设备通讯的设备,一般是各种传感器。2.5 数据集中采集传输设备 农业生产环境自动监测设备的一部分,通过通信网络与数据采集设备连接,获取各种环境要素的数据,完成数据存储、处理以及与农业生产环境监测中心进行数据通讯的设备。DB4201/T 527-2017 2 3 系统结构 3.1 层次 农业生产环境自动监测系统从底层逐级向上可分为农业生产环境自动监测设备(以下简称“现场机”,包括数据集中采集传输设备以及数据采集设备)、传输网络和农业生产环境监测中心(以下简称“上位机”)三个层次。上位机通过传输网络与现场机交换数据、发起
5、和应答指令。3.2 构成方式 3.2.1 现场有一套或多套数据采集监测设备、具有模拟或数字输出接口,连接到数据集中采集传输设备,上位机通过数据集中采集传输设备实现数据交换和收发指令,构成方式见图 1。3.2.2 本规范不规定数据集中采集传输设备与数据采集设备的通讯方式,可以采用有线或者无线模式,建议采用 Modbus-RTU 标准。4 协议层次 4.1 通信接口 现场机与上位机通讯接口应满足选定的传输网络的要求,本规范不作限制。4.2 传输网络 4.2.1 国际标准化组织(ISO)制订的网络通信协议 ISO/OSI,根据网络通信的功能要求,把通信过程分为七层,每层都规定了完成的功能及相应的协议
6、。本规范规定的数据传输通讯协议对应于 ISO/OSI定义的 7 层协议的应用层,在基于不同传输网络的现场机与上位机之间提供交互通讯,协议结构如图 2所示。可采用 GPRS、ADSL、CDMA、光纤宽带、3G 通信、4G 通信等中的一种或几种。4.2.2 应用层依赖于所选用的传输网络,在选定的传输网络上进行应用层的数据通讯,在基础传输层已经建立的基础上,整个应用层的协议和具体的传输网络无关。本部分体现通讯介质无关性。DB4201/T 527-2017 3 上位机 传输网络 现场机 (续)图1 构成方式 图2 数据传输通讯协议结构 5 通讯协议 5.1 应答模式 完整的命令由请求方发起,响应方应答
7、组成,具体步骤如下:a)请求方发送请求命令给响应方;b)响应方接到请求命令后应答,请求方收到应答后确认连接建立;c)响应方执行请求的操作;d)响应方通知请求方请求执行完毕,没有应答按超时处理;e)命令完成。5.2 超时重发机制包括:应用层 应用层 基础传输层 基础传输层 上位机 现场机 数据采集设备数据采集设备.数据集中采集传输设备DB4201/T 527-2017 4 a)一个请求命令发出后在规定的时间内未收到回应,认为超时;b)超时后重发,重发规定次数后仍未收到回应认为通讯不可用,通讯结束;c)超时时间根据具体的通讯方式和任务性质可自定义;d)超时重发次数根据具体的通讯方式和任务性质可自定
8、义。5.3 执行超时 请求方在收到请求回应(或一个分包)后规定时间内未收到返回数据或命令执行结果,认为超时,命令执行失败,结束。缺省超时定义表见表1(可扩充)。表1 通讯类型列表 通讯类型 缺省超时定义(秒)重发次数 GPRS 10 3 短信 30 3 CDMA 10 3 ADSL 5 3 光纤 5 3 3G 通讯 5 3 4G 通讯 5 3 其他通信方式 10 3 5.4 通讯协议数据结构 5.4.1 整体结构 所有的数据包都是由ASCII码字符组成,有加密和不加密两种方式,整体构成见图3。DB4201/T 527-2017 5 图3 通讯包组成结构 5.4.2 通讯包结构组成 通讯包结构组
9、成见表2。表2 通讯包结构组成 名称 类型 长度 描述 包头 字符 2 固定为#数据段长度 十进制整数 4 数据段的 ASCII 字符数 例如:长 255,则写为“0255”数据段(见 6.3.3)字符 0n1024 变长的数据(短信最大为 140 字节)通讯包不加密时,为加密前的数据段(明文)对应的字符 通讯包加密时,为加密后的数据段(暗文)对应的字符 加密标识 字符 1 是否对数据段进行加密 0 不加密 1 加密 CRC 校验 十六进制整数 4 数据段的校验结果,如 CRC 错,即执行超时。数据段不加密时,对加密前的数据段(明文)进行校验 CRC 算法可见附录 B 包尾 字符 2 固定为(
10、回车、换行)5.4.3 数据段结构组成 数据段结构组成见表3。包头 数据段(明文)长度 加密标识 数据段(明文)CRC 包尾 包头 数据段(暗文)长度 加密标识 数据段(暗文)CRC 包尾 不加密加密RSA 算法加密请求编号 命令编设备唯一标识 验证码 指令 通讯包组成数据段组成DB4201/T 527-2017 6 表3 数据段结构组成 名称 字段代码 类型 长度 描述 请求编号 QN 字符 20 精确到毫秒的时间戳:QN=YYYYMMDDHHMMSSZZZ,用来唯一标识一个命令请求,用于请求命令或通知命令 命令编号 CN 字符 7 CN=命令编号,命令编号见 5.5 中命令列表 7 设备唯
11、一标识 MN 字符 14 MN=监测点编号,这个编号下端设备需固化到相应存储器中,用作身份识别。编码规则:前 7 位是设备制造商组织机构代码的后 7 位,后 7 位是设备制造商自行确定的此类设备的唯一编码 验证码 PW 字符 6 PW=验证码,由接入环境站向监测平台申请,系统平台自动生成验证码。指令 CP 字符 0n960 CP=&数据区&,数据区定义见 5.3.4 表 4 5.4.4 数据区 5.4.4.1 结构定义 字段与其值用“=”连接;在数据区中,同一项目的不同分类值间用“,”来分隔,不同项目之间用“;”来分隔。5.4.4.2 字段定义 5.4.4.2.1 字段名 字段名要区分大小写,
12、单词的首个字符为大写,其他部分为小写。5.4.4.2.2 数据类型 各内容表示:C4 表示最多 4 位的字符型字串,不足 4 位按实际位数;N5 表示最多 5 位的数字型字串,不足 5 位按实际位数;N14.2 用可变长字符串形式表达的数字型,表示最长为 14 位整数和 2 位小数,带小数点,带符号,最大长度为 18;YYYY 表示日期年,如 2015 表示 2015 年;MM 表示日期月,如 09 表示 9 月;DD 表示日期日,如 23 表示 23 日;HH 表示时间小时;MM 表示时间分钟;SS 表示时间秒;ZZZ 表示时间毫秒。5.4.4.2.3 字段对照表 字段对照表见表4。表中有计
13、量单位见附录A。DB4201/T 527-2017 7 表4 字段对照表 字段名 描述 字符集 数据类型 取值及描述 SystemTime 系统时间 0-9 N14 YYYYMMDDHHMMSS QnRtn 请求回应代码,见 6.5 0-9 N3 ExeRtn 执行结果回应代码,见 6.5 0-9 N3 RtdInterval 实时采样数据上报间隔 0-9 N4 Interval 离线数据上报间隔 0-9 N4 DataTime 数据时间信息 0-9 N14 YYYYMMDDHHMMSS xxx 环境监测要素 实时数据 0-9 N14.2 “xxx”是环境监测要素代码,详见附录C xxx-Fl
14、ag 监测环境要素实时数据标记 A-Z 0-9 C1 对于监测要素(O:配备可上报 P:电源故障、C:校验、M:维护、H:超测上限、L:低于下限、D:故障、S:设定值、N:正常)xxx-Op 监测环境要素实时数据上报标记 A-Z 0-9 C1 M:必选上报 O:可选上报 D:不用上报 xxx-UpValue 环境要素报警上限值 0-9 N14.2 10.11 xxx-LowValue 环境要素报警下限值 0-9 N14.2 10.11 PW 验证码 0-9,a-z,A-Z C6 如:123456 PublicKey 数据段加密公钥 0-9,A-F C32 16进制字符串,位数不固定,最多32位
15、,如:0123456789ABCDEF KeyParam 公钥参数 0-9,A-F C32 16进制字符串,位数不固定,最多32位,如:FEDCBA9876543210 OverTime 超时时间 0-9 N5 取值范围达到 24 小时,另以秒为单位 ReCount 重发次数 0-9 N2 取值范围为 0-99 BeginTime 开始时间 0-9 N14 YYYYMMDDHHMMSS EndTime 截止时间 0-9 N14 YYYYMMDDHHMMSS WarnTime 超限报警时间(单位:秒)0-9 N5 取值范围达到 24 小时 5.5 通讯流程 5.5.1 请求命令 DB4201/T
16、 527-2017 8 流程图见图4,步骤如下:a)上位机向现场机发出需要应答的控制请求;b)现场机收到请求后,向上位机发出收到命令应答;c)现场机向上位机发送请求的内容(根据控制请求类别的不同,该步骤可略过);d)现场机向上位机发出执行结果。图4 请求命令流程图 5.5.2 上传命令 现场机主动向上位机发送无应答数据包,上传采集到的各类数据。流程图见图5。图5 上传命令流程图 5.5.3 通知命令 5.5.3.1 上位机通知现场机 流程图见图6,步骤如下:上位机 上位机 现场机 现场机 DB4201/T 527-2017 9 a)上位机向现场机发出通知命令;b)现场机收到通知后,向上位机发出
17、收到通知的应答。图6 上位机通知现场机命令流程图 5.5.3.2 现场机通知上位机 流程图见图7,步骤如下:a)现场机向上位机发出通知命令;b)上位机收到通知后,向现场机发出收到通知的应答。图7 现场机通知上位机命令流程图 5.6 代码定义 命令列表应符合表5;执行结果代码应符合表6;请求返回表结果代码应符合表7;各表内容均可以扩充。上位机 现场机 上位机 现场机 DB4201/T 527-2017 10 表5 命令代码定义表 命令编号 命令名称 命令类型 描述 上位向现场 现场向上位 初始化命令 1000 设置超时时间与重发次数 请求命令 用于设置环境监测要素采集传输仪发送指令的超时时间与重
18、发次数 1001 设置超限报警时间 请求命令 1002 提取超时时间与重发次数 请求命令 提取超时时间与重发次数 1002 上传超时时间与重发次数 上传命令 用于上传环境监测要素采集传输仪的超时时间与重发次数 预留初始化命令 预留命令范围 1003-1010 参数命令 1011 提取现场机时间 请求命令 用于同步上位机和现场机的系统时间,上位机提取现场机系统时间 1011 上传现场机时间 上传命令 用于现场机上传自己系统时间 1012 设置现场机时间 请求命令 用于同步上位机和现场机的系统时间,远程设置现场机系统时间 1022 设置现场机验证码 请求命令 用于设置农业生产环境自动监测设备采集传
19、输仪验证码 1031 提取现场机公钥和公钥参数 请求命令 用于提取农业生产环境自动监测设备采集传输仪公钥和公钥参数 1031 上传现场机公钥和公钥参数 上传命令 用于上传农业生产环境自动监测设备采集传输仪公钥和公钥参数 1032 设置现场机公钥和公钥参数 请求命令 用于设置农业生产环境自动监测设备采集传输仪公钥和公钥参数 1041 提取环境要素报警门限值 请求命令 用于提取现场机设置的环境要素超标报警门限值 1041 上传环境要素报警门限值 上传命令 用于现场机上传自己的环境要素超标报警门限 1042 设置环境要素报警门限值 请求命令 用于上位机远程设置现场机的环境要素超标报警门限 1051
20、提取采集时间间隔 请求命令 提取采集时间间隔 1051 上传采集时间间隔 上传命令 上传采集时间间隔 DB4201/T 527-2017 11 表5 命令代码定义表(续)命令编号 命令名称 命令类型 描述 上位向现场 现场向上位 参数命令 1052 设置采集时间间隔 请求命令 设置采集时间间隔 1061 提取现场机采集能力 请求命令 监测中心查询现场机采集能力 1061 上传现场机采集能力 上传命令 现场机上报采集能力 1062 设置现场机采集要素 通知命令 监测中心设置采集要素项 预留参数命令 预留命令范围 1060-1099 数据命令 2011 开始察看环境要素实时数据 通知命令 用于上位
21、机告诉现场机开始按照设置的实时数据间隔发送实时数据 2011 上传环境要素实时数据 上传命令 用于现场机按照设置的间隔自动上传实时数据 2012 停止察看实时数据 通知命令 用于上位机告诉现场机停止发送实时数据 2021 开始察看设备运行状态数据 通知命令 用于上位机告诉现场机开始按照设置的间隔发送实时设备状态 2021 上传设备运行状态数据 上传命令 用于现场机按照设置的间隔自动上传实时设备状态 2022 停止察看设备运行状态 通知命令 用于上位机告诉现场机停止发送设备运行状态数据 2031 取环境要素离线历史数据 请求命令 用于上位机告诉现场机开始按照要求时间发送保存的日历史环境要素数据
22、2031 上传环境要素离线历史数据 上传命令 2071 取环境要素报警记录 请求命令 用于上位机提取现场机保存的报警记录 2071 上传环境要素报警记录 上传命令 用于现场机按照上位机的时间要求发送保存的报警记录。预留数据命令 预留命令范围 2073-2099 DB4201/T 527-2017 12 表5 命令代码定义表(续)命令编号 命令名称 命令类型 描述 上位向现场 现场向上位 控制命令 3011 校零校满 请求命令 用于上位机对现场的监测仪器、仪表进行远程校准 预留控制命令 预留命令范围 3015-3099 交互命令 9011 请求应答 用于现场机回应上位机的请求。例如是否执行请求
23、9012 操作执行结果 用于现场机回应上位机的请求的执行结果 9013 9013 通知应答 回应通知命令 9014 9014 数据应答 数据应答命令 预留交互命令 预留命令范围 9015-9998 9999 采集设备心跳包发送 请求命令 表6 执行结果代码表 返回值编码 描述 1 执行成功 2 执行失败,但不知道原因 3 没有找到需要的数据 4 找到的数据错误 5 与智能设备通讯超时 6 智能设备返回数据错误 7-99 扩展项 100 没有数据 DB4201/T 527-2017 13 表7 请求返回结果代码表 返回值编码 描述 1 准备执行请求 2 请求被拒绝 3 密码错误 4 MN 错误
24、5 QN 错误 6 CN 不存在或者被设备不予处理 7 CRC 校验错误 8-99 扩展项 100 未知错误 5.7 数据补传规则 当数据通讯故障导致数据未能及时发送到监测中心时,现场机应在通讯恢复正常后自动补传到监测中心。数据自动补传时应按数据产生的先后顺序依次发送。DB4201/T 527-2017 14 附 录 A(资料性附录)农业生产环境相关参数名称、符号与计量单位 表A.1给出了农业生产环境相关参数名称、符号与计量单位的内容。表A.1 农业生产环境相关参数名称、符号与计量单位 类别 编号 观测要素 变量的名称 符号 分辨率 单位 气象 001 气压 气压 P 0.1 hPa 002
25、温度 气温 T 0.1 003 湿度 相对湿度 湿球温度 TW 1 004 湿敏电容传感器 U 005 风 风向 WD 3 006 风速 WS 0.1 m/s 007 降水 降水量(翻斗)RB 0.1 mm 008 降水量(称重)PB 0.2 009 辐射 总辐射 GR 1 W/m2 010 净辐射 NR 011 直接辐射 DR 012 散射辐射 SR 013 反射辐射 RR 014 紫外辐射 紫外辐射 UV 015 紫外辐射 A UVA 016 紫外辐射 B UVB 017 长波辐射 大气长波辐射 AR 018 地面长波辐射 TR 019 光合有效辐射 PR 020 日照时数 日照时数 SD
26、 h 021 能见度 能见度 V m 022 蒸发量 蒸发量 蒸发量 EC 0.1 mm 023 气体成分 CO2 含量 CO2 1 mg/m3 024 NH3 含量 NH3 1 mg/m4 扩展项 025-199 DB4201/T 527-2017 15 表A.1 农业生产环境相关参数名称、符号与计量单位(续)类别 编号 观测要素 变量的名称 符号 分辨率 单位 土壤 200 土壤温度 草面温度 草面温度 TG 0.1 201 地表温 地表温度(铂电阻)0 T 202 地表温度(红外)0 TR 203 浅层地温 5 cm 地温 1 T 204 10 cm 地温 2 T 205 15 cm 地
27、温 3 T 206 20 cm 地温 4 T 207 深层地温 40 cm 地温 5 T 208 80 cm 地温 6 T 209 160 cm 地温 7 T 210 320 cm 地温 8 T 211 土壤湿度 浅层土壤体积含水量 5 cm 土壤水分 1 S 0.1 212 10 cm 土壤水分 2 S 213 20 cm 土壤水分 3 S 214 30 cm 土壤水分 4 S 215 深层土壤体积含水量 40 cm 土壤水分 5 S 0.1 216 50 cm 土壤水分 6 S 217 100 cm 土壤水分 7 S 218 180 cm 土壤水分 8 S 219 土壤养分 土壤氮含量 S
28、N 1 ppm 220 土壤钾含量 SK 1 ppm 221 土壤磷含量 SP 1 ppm 222 土壤氨含量 SNH 1 ppm 223 土壤氧含量 SO2 1 ppm 扩展项 224-399 水 400 水位 水位 WL 1 cm 401 水温度 水温 WT 0.1 402 水成分 水氮含量 WN 1 mg/L 403 水钾含量 WK 1 mg/L 404 水磷含量 WP 1 mg/L DB4201/T 527-2017 16 表A.1 农业生产环境相关参数名称、符号与计量单位(续)类别 编号 观测要素 变量的名称 符号 分辨率 单位 水 405 水成分 水氨含量 WNH 1 mg/L 4
29、06 水 PH 值 WPH 1 l 407 水溶解氧 WO2 1 mg/L 扩展项 408-599 植物 600 温度 叶面温度 LT 0.1 601 湿度 叶面湿度 LH 1 RH 602 植 物 本 体信息 植物径流量 PR 1 mL/s 603 植物株距 PS 1 cm 604 植物株径 PD 1 cm 605 植物茎秆粗细的变化 PDG 0.1 mm 606 果实增重与膨大速率 FER 0.1 mm 扩展项 607-799 扩展项 800-999 DB4201/T 527-2017 17 附 录 B(资料性附录)循环冗余校验(CRC)算法 B.1 循环冗余校验(CRC)算法 B.1.1
30、 CRC校验(Cyclic Redundancy Check)是一种数据传输错误检查方法,CRC码两个字节,包含一 16 位的二进制值。它由传输设备计算后加入到数据包中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。B.1.2 CRC具体算法是先调入一值是全“1”的16 位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。B.1.3 CRC校验字节的生成步骤如下:a)装一个 16 位寄存器,所有数位均为 1;b)取被校验串的一个字节与 16 位寄存器的高位
31、字节进行“异或”运算。运算结果放入这个16 位寄存器;c)把这个 16 位寄存器向右移一位;d)若向右(标记位)移出的数位是 1,则生成多项式 1010 0000 0000 0001 和这个寄存器进行“异或”运算;若向右移出的数位是 0,则返回c);e)重复c)和d),直至移出 8 位;f)取被校验串的下一个字节;g)重复c)到f),直至被校验串的所有字节均与 16 位寄存器进行“异或”运算,并移位 8 次;h)这个 16 位寄存器的内容即 2 字节CRC错误校验码。校验码按照先高字节后低字节的顺序存放。DB4201/T 527-2017 18 附 录 C(资料性附录)RSA 加密算法 C.1
32、 密钥产生算法步骤如下:a)随机选择两个大的质数p 和q,p不等于q,计算n=pq;b)根据欧拉函数,求得r=(p-1)(q-1);c)选择一个小于r的整数e,求得e关于模r的模反元素,命名为d。(模反元素存在,当且仅当e 与r 互质);d)将p和q的记录销毁;e)最终获得公钥(n,e),私钥(n,d)。(公钥和私钥可以交换使用)。C.2 加密步骤如下:a)获取公钥(n,e);b)将明文按照约定好的格式转换成小于n 的正整数m;c)计算密文 c=me(mod n)。C.3 解密步骤如下:a)用私钥(n,d)计算。m=cd(mod n);b)从m中提取出明文。C.4 RSA 加解密约定 C.4.1 约定加解密位长为128位。将待加密的明文中每个非中文字符转换成ASCII码,中文字符转成GB2312码,组成m。对于较长的明文字符串采取分组加密的方式进行分割,每组15个字节。每组分别加密,将每组密文连接起来就是最终的密文。每组密文为16个字节,每4位转成一个ASCII字符,共32字节,不足32字节的在字符串前面用0字符补齐。C.4.2 对于较长的密文字符串也采用分组解密的方式进行分割,每组32个字节。每组分别解密,将每组明文连接起来就是最终的明文。