河北省公共环境数据在线监测设备RS232串口协议一.有关串行通信的物理标准和数据采集系统结构1.信号线的定义:在线设备采用三线制DB9/M(针)标准RS232-C接口输出。2.信号的定义起始位:1位数据位:8位校验位:无停止位:1位3.传输速率BaudRate=2400bps4.数据采集系统的结构数据采集系统为主从结构;二.命令包格式及应用示例1、命令包格式命令包头命令码指定污染因子的个数污染因子1代码污染因子2代码……污染因子n代码CRC命令包尾○1命令包头(共1个字节)0x02;○2命令码(共1个字节)0x00立即回传指定污染因子代码的测量数据;0x01立即回传全部测量数据;③指定污染因子的个数(共1个字节)④污染因子1….n代码[共(2xn)个字节]见附件1:公共环境数据污染因子代码规范;⑤CRC校验码(共2个字节)功能:对○2○3○4项所包含的字节进行16位CRC校验;计算方法:见附件3:CRC校验码的计算方法;⑥命令包尾(共1个字节)0x03;2、应用示例(1)立即回传指定污染因子代码的测量数据命令包①确定上传的测量数据指定测量数据1-----TSPTSP的污染因子代码=0x2485指定测量数据2-----PM10PM10的污染因子代码=0x2486记录仪(主)在线设备(从)RS232指定测量数据3-----SO2SO2的污染因子代码=0x2402指定测量数据4-----NO2NO2的污染因子代码=0x2467②命令体的内容命令码=0x00指定污染因子的个数=0x04污染因子1代码(TSP)=0x2485污染因子2代码(PM10)=0x2486污染因子3代码(SO2)=0x2402污染因子4代码(NO2)=0x2467CRC校验码的计算:计算校验码的范围=[命令码+指定污染因子的个数+污染因子1…4代码]=[00042485248624022467]CRC校验码=A3F4③命令体的组成:命令体(HEX)=00042485248624022467A3F4④命令体的转换:命令体(HEX)----命令体(ASCII)命令体(ASCII)=303030343234383532343836323430323234363741334634⑤命令包的组成:命令包=命令包头+命令体(ASCII)+命令包尾命令包=0230303034323438353234383632343032323436374133463403(2)立即回传全部测量数据命令包①命令体的内容命令码=0x01指定污染因子的个数=0x00CRC校验码的计算:计算校验码的范围=[命令码+指定污染因子的个数]=[0100]CRC校验码=3331③命令体的组成:命令体(HEX)=01003331④命令体的转换:命令体(HEX)----命令体(ASCII)命令体(ASCII)=3031303033333331⑤命令包的组成:命令包=命令包头+命令体(ASCII)+命令包尾命令包=02303130303333333103三、在线设备上传数据包格式及应用示例1、数据包格式数据包头命令码污染因子的个数污染因子1代码污染因子1的数据污染因子2代码污染因子2的数据……污染因子n代码污染因子n的数据CRC数据包尾①数据包头(共1个字节)0x02;②命令码(共1个字节)0x00立即回传指定污染因子代码的测量数据;0x01立即回传全部测量数据;③污染因子的个数(共1个字节)④污染因子1…n代码见附件1:公共环境数据污染因子代码规范;⑤污染因子1…n的数据见附件2:公共环境数据格式规范;⑥CRC校验码(共2个字节)功能:对○2○3○4⑤项所包含的字节进行16位CRC校验;计算方法:见附件3:CRC校验码的计算方法;⑦命令包尾(共1个字节)0x03;2、应用示例(1)上传污染因子测量数据的数据包1①污染因子的测量数据TSP=0.03mg/Nm3(乘1000取整)=0x001EPM10=0.04mg/Nm3(乘1000取整)=0x0028SO2=0.25mg/Nm3(乘1000取整)=0x00FANO2=0.02mg/Nm3(乘1000取整)=0x0014②数据体的内容命令码=0x00上传污染因子测量数据的个数=0x04污染因子1…4的代码及污染因子1…4的测量数据:污染因子1代码(TSP)=0x2485污染因子1的测量数据=0x001E污染因子2代码(PM10)=0x2486污染因子2的测量数据=0x0028污染因子3代码(SO2)=0x2402污染因子3的测量数据=0x00FA污染因子4代码(NO2)=0x2467污染因子4的测量数据=0x0014CRC校验码的计算:计算校验码的范围=[命令码+上传污染因子测量数据的个数+污染因子1代码污染因子1的数据污染因子2代码污染因子2的数据……污染因子4代码污染因子4的数据=[00042485001E24860028240200FA24670014]CRC校验码=3F51③数据体的组成:数据体(HEX)=00042485001E24860028240200FA246700143F51④数据体的转换:数据体(HEX)----命令体(ASCII)数据体(ASCII)=30303034323438353030314532343836303032383234303230304641323436373030313433463531⑤数据包的组成:数据包=数据包头+数据体(ASCII)+数据包尾数据包=023030303432343835303031453234383630303238323430323030464132343637303031343346353103四、说明1、省环保局根据实际需要可扩展和修改代码表中的污染因子代码;2、省环保局根据实际测量数据精度的需要可改变数据的取整方式;3、各相关在线仪表生产厂家应通过在线仪表的面板操作,能简便地调整污染因子代码和数据的取整方式;附件1:公共环境数据污染因子代码规范一、污染因子代码表示方法(2Byte)高字节(高8位)低字节(低8位)污染因子数据长度污染因子分类码污染因子D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0R注:D15=R-----保留位,用于以后功能扩展,缺省值=0。二、污染因子分类码1、地表水类:分类码=0x03高字节(高8位)污染因子数据长度污染因子代码分类D15D14D13D12D11D10D9D8R×××00112、空气质量类:分类码=0x04高字节(高8位)污染因子数据长度污染因子代码分类D15D14D13D12D11D10D9D8R×××01003、噪声类:分类码=0x05高字节(高8位)污染因子数据长度污染因子代码分类D15D14D13D12D11D10D9D8R×××0101三、污染因子数据长度根据不同类型的在线仪表,预先设定的该在线仪表上传某污染因子数据的长度;如:设定的COD数据长度=0x02,当前监测的COD数据=20mg/L,在线仪表上传的该污染因子数据=0x0014mg/L;设定的COD数据长度=0x03,当前监测的COD数据=20mg/L,在线仪表上传的该污染因子数据=0x000014mg/L;四、污染因子用低字节表示某类污染因子;五、污染因子代码表(省环保局根据实际需要可扩展和修改代码表中的污染因子代码)1、地表水类序号污染因子单位污染因子分类码污染因子代码1PH0x030x03012BODmg/L0x030x030A3CODcrmg/L0x030x030B4TOCmg/L0x030x030F*5平均流速m3/s0x030x03106水温℃0x030x03117水深m0x030x03128溶解氧mg/L0x030x03139CODmnmg/L0x030x033A10总氮mg/L0x030x033B11氨氮mg/L0x030x033C*12石油类mg/L0x030x0350*13总磷mg/L0x030x0365*14浊度度0x030x031515电导率μS/cm0x030x03162、空气(大气)质量类序号污染因子单位污染因子分类码污染因子代码1SO2mg/Nm30x040x04022COmg/Nm30x040x04043NO2mg/Nm30x040x04674O3mg/Nm30x040x04715降尘mg/Nm30x040x04726湿度%0x040x04737气温℃0x040x04818大气压KPa0x040x04829风速m/s0x040x048310风向0x040x048411TSPmg/Nm30x040x048512PM10mg/Nm30x040x0486133、噪声类序号污染因子单位污染因子分类码污染因子代码1噪声dB0x050x0501六、污染因子数据长度+污染因子代码的应用1、某监测地表水类COD的在线仪表;设定上传COD的数据长度为2字节=0x02;污染因子代码=0x030B该在线仪表COD的(污染因子数据长度+污染因子代码)=0x230B。2、某监测地表水类PH的在线仪表;设定上传PH的数据长度为2字节=0x02;污染因子代码=0x0301该在线仪表PH的(污染因子数据长度+污染因子代码)=0x2301。3、某监测空气(大气)质量类SO2的在线仪表;设定上传SO2的数据长度为2字节=0x02;污染因子代码=0x0402该在线仪表SO2的(污染因子数据长度+污染因子代码)=0x2402附件2:公共环境数据格式规范(省环保局根据实际测量数据精度的需要可改变数据的取整方式)1、地表水类举例序号污染因子单位数据长度(Byte)实测值上传数据(HEX)备注1CODcrmg/L2200x0014取整2CODmnmg/L212.30x04CE乘100取整3氨氮mg/L20.150x000F乘1000取整4PH26.80x02A8乘100取整5BODmg/L24.20x01A4乘100取整6溶解氧25.50x0226乘100取整7石油类mg/L20.030x0003乘1000取整水深m21.50x0096乘100取整8平均流速m/s24.60x01CC乘100取整9水温℃1+250x19取整10总氮mg/L20.0250x0019乘1000取整11总磷mg/L20.0120x000C乘1000取整12TOCmg/L256.050x00DAF2乘100取整13浊度度260x0006取整14电导率μS/cm2+250x0019取整2、空气(大气)质量类举例序号污染因子单位数据长度(Byte)实测值上传数据(HEX)备注1SO2mg/Nm320.250x00FA乘1000取整2NO2mg/Nm320.020x0014乘1000取整3COmg/Nm39.10x238C乘1000取整4O3mg/Nm320.050x0032乘1000取整5降尘T/Km2.月2120x2EE0乘1000取整6湿度%1700x46取整7气温℃1+250x19高位=0-250x99高位=18大气压KPa3101.200x018B50乘1000取整9风速m/s21.50x05DC乘1000取整10风向111TSPmg/Nm320.030x001E乘1000取整12PM10mg/Nm320.040x0028乘1000取整3、噪声类举例序污染因子单位数据长度实测值上传数据备注号(Byte)(HEX)1噪声dB1400x28取整附件3:CRC校验码的计算方法1、原理现在,应用最广泛、功能最强大的检错码是循环冗余校验码(CyclicalRedundancyCheck,缩写为CRC),CRC的基本原理是将一段信息看成一个很长的二进制数(例如将一段128字节的信息看成一个1024位的二进制数),然后用一个特定的数(例如二进制数1,0001,0000,0010,0001B,即十六进制数11021H)去除它,最后将余数作为校验码附在信息之后一起传送(或存储),在进行