附件2

珠海市油气回收在线监测数据管理平台

数据上传协议

一、数据传输方式

（一）数据传输技术采用标准的 WebService 通信技术。

（二）在线监控系统可通过公网与信息中心建立网络连接，建议采用有线网络以确保网络的稳定性。如采用 3G/4G 方式接入网络，需要确保网络稳定可靠。

（三）在线监控系统应实时或定期向信息中心进行数据上传操作，数据上传的时间间隔根据不同业务数据需要确定。

（四）数据上传接口： String post(String data);

（五）数据上传地址：

http://221.216.62.11:6012/inServer/cxf/fileUpload

秘钥：0123456789abcdef

Iv偏移量：0000000000000000

二、报文格式

（一）上传报文数据采用 XML 协议。

（二）上传报文数据采用“安全报文+业务报文”的格式。安全报文各字段定义见表 1。

表1 安全报文格式

序号	数据项	说明
1	VERSION	通信协议版本
2	DATAID	数据序号（6 位），自动记录当前最新序号（不同类别的数据分别排序）。
3	USERID	加油站标识（平台统一分配）
4	TIME	在线监控系统当前时间（年月日时分 14位）
5	TYPE	业务报文类型（2 位）
6	SEC	加密标识（1 表示业务数据为密文传输， 0表示明文；必须密文上传）
7	BUSINESSCONTENT	1.明文模式：将业务报文明文进行base64 编码即可；

2.密文模式：使用国密将 SM4 算法（CBC 模式，初始化向量为全 0，填充规则为PKCS5#）对业务报文明文进行加密，再对加密后得到的密文进行 base64 编码
8	HMAC	MAC 校验码：

1.明文模式：MAC 校验码设为空；

2.密文模式：MAC 校验码，计算法方式如下：

1.使用国密 SM3 算法，对BUSINESSCONTENT 字段的数据（密文数据）计算得到 32 字节哈希值。

2.使用国密将 SM4 算法（ECB 模式， 无填充）加密 32 字节哈希值，得到 32 字节密文即为 MAC 校验码。

3.将 MAC 校验码进行 base64 编码。
表 1 中，USERID 字段中区域代码标识由平台统一分配。

TYPE 分为：业务报文类型分别为：00（请求数据）、01（配置数据）、02（报警数据）、03（加油枪数据）、04（环境数据）、 05（故障数据）、06（加油枪关停与启用）和07（加油枪状态）。

SEC只支持密文模式。

安全报文的范例为：

例如业务报文明文为（无回车换行）：

<rows>

<row>

<ID>000001</ID>

<DATE>20120317235959</DATE>

<AL>3:N;6:N;15:N;18:N;21:N;24:N;25:N;26:N;27:N;28:N;30:N;32:N;9:N;12:N;29:N;31:N;</AL>

<MB>0</MB>

<YZ>0</YZ>

<YGYL>0</YGYL>

<YGLY>0</YGLY>

<PVZT>0</PVZT>

<PVLJZT>0</PVLJZT>

<HCLZT>0</HCLZT>

<HCLND>0</HCLND>

<XYHQG>0</XYHQG>

</row>

</rows>

范例加密密钥为："0123456789abcdef" 密文模式下的完整的报文为：

<?xml version="1.0" encoding="UTF-8"?>

<ROOT>

<VERSION>V1.1</VERSION ><!--通信协议版本-->

<DATAID>000001</DATAID><!--数据 ID 为000001-->

<USERID>10101010001</USERID><!--用户ID 为10101010001-->

<TIME>20150626092624</ TIME><!--当前在线监控设备的时间为20150626092624-->

<TYPE>02</TYPE><!--01 表示业务报文为配置数据-->

<SEC>1</SEC><!-- 1 表示加密传输-->

<BUSINESSCONTENT>BOuaxh/GmRrYtNnklwxF4u19brtYy4uIXQD5z5TZF2F/lSqLVXUF FymTDGQnbJrMvESuRuExnJjuYLbBGj2GtWL5k9/vr3IideogqKSznIVwXaeWlDFkT9WgO 75VgCenjoSF86U8vOE/rfcJ/IR5Vopi7fKFrwLvTTViu3Lgl85mcQB1mfrxG5a/A1IrSH yZuwS4RqMMZAiiW16Ik9NJnRmubZ2DrKcYT/Xlg5qVFhbEkBlVMJUaT8cwRGOlnul0U3d hGVzSAxUGkaZgZtZ4brwBnelWQ31RMSCzwAPfKuGECpsOoa+xnAHztIURno5+NptM1SHA tTDVyVNiEKorQPPsnC7SR2RaOelZjUgHDgqSLP969nVO5XKxNE7mONEo</BUSINESSCON

TENT><!--业务报文密文-->

<HMAC>ah5jSfHi8MIZn2NLPxmmsJ80VFDQ1iIwn1rzG3YmyIw=</HMAC><!--MAC 校验码-->

</ROOT>

（三）返回数据用于通知上传操作的执行结果，并根据业务需要将控制数据和升级数据返回给在线监控系统。返回数据结构定义（数据格式为字符串）见表 2。

表2 返回数据格式

返回字符串第 1 个字节	返回字符串后续	说明
“0”	第 2 个字节 = "1"，无后续数据	上传成功，无返回数据
第 2 个字节 = "2"，后续为控制数据	1.数据上送成功后如平台执行了关枪操作返回02， 后面跟随待关闭油枪编号；如 02:1;2;3;4;

2.油枪编号用分好(； )分隔；

3.在收到返回值02后需按照协议对加
油枪予以关枪处理，关枪成功后主动按照协议上传“06、加油枪关停与启用事件”。
第 2 个字节 = "3"，后续为升级数据	上传成功，返回升级数据（预留）
“1”	服务端当前时间（14 字节）	业务数据已经存在
“2”	服务端当前时间（14 字节）	Hmac 校验错
“3”	服务端当前时间（14 字节）	业务数据解密错
“4”	服务端当前时间（14 字节）	base64 解码错
“5”	服务端当前时间（14 字节）	xml 报文解码错
“6”	服务端当前时间（14 字节）	业务数据解析错误
“7”	服务端当前时间（14 字节）	时钟错误
“8”	服务端当前时间（14 字节）	其他异常
三、业务报文

（一）报文类型

业务报文分为8类，分别为：00：请求数据，01：配置数据，02：报警数据，03：加油数据，04：环境数据，05：故障数据，06：加油枪关停与启用事件 07：加油枪状态。

（二）请求数据

请求数据用于在线监控系统向信息中心发送请求。目前请求数据只有油站口令修改一种类型，类型ID为01，请求数据格式如见表3.1。

表 3.1 请求数据格式

元素名称	数据格式	是否可空	数据描述
TYPE	Varchar2(2)	否	请求类型： ''01''表示口令修改请求
DATA	Varchar2(32)	否	当 TYPE 为"01"时，DATA 表示修改后的口令值（字符串）
（三）配置数据

上传规则为：每次配置数据变更时，在线监控系统自动上传配置数据；配置数据无变更，每日零时后上传。配置数据的内容见表。

表 3.2 配置数据格式

元素名称	数据格式	是否

可空	数据描述
ID	Varchar2(6)	否	对象ID，在本次数据传输中唯一
DATE	Date	否	启用时间
JYQS	Varchar2(2)	否	加油枪数量
PVZ	Number(6,1)	否	PV阀正向压力值
PVF	Number(6,1)	否	PV阀负向压力值
HCLK	Number(6,1)	否	后处理装置开启压力值（无后处理装置统一填0）
HCLT	Number(6,1)	否	后处理装置停止压力值（无后处理装置统一填0）
YZQH	Varchar1(1)	否	安装液阻传感器加油机编号（无后处理装置统一填0）
（四）报警数据

1.每天零时开始统计前一天预报警结果并上传预报警数据，数据时间为前一日的23:59:59；

2.加油枪有如下几种状态：0表示正常，1表示预警，2表示报警，N表示无效。报警数据格式见表3.3。对于表3.3中的AL字段，在上传报警状态的同时还需要上传该报警状态所属的加油枪号。加油枪号和预报警状态的上传数据规则定义为：加油枪号+冒号+预报警状态+分号。

3.报警判定标准

（1）气液比：

在线监测系统对气液比的监测：在24小时（自然天）内，加油站在线监测系统监测到任一条加油枪的有效气液比（每次连续加油量大于等于15升）小于0.9或大于1.3的次数超过该枪加油总次数的 25%时，系统应对该条加油枪预警，连续7天处于预警状态应报警；或有效气液比小于0.6或大于1.5连续超过24小时（自然天）时应报警。如当日某加油枪加油次数小于5次时，在线监测系统不对该加油枪进行气液比预警和报警判断，并与次日加油次数进行累计，直至大于等于5次后再进行气液比预警和报警判断。每天零时根据前一日的加油数据进行预报警判定，并上传报警信息。报警时间为前一日的23:59:59；未满足判定条件的汽油枪上传状态N。

（2）油罐零压：

在线监测系统应以不大于 30s 采样间隔监测分析油气回收系统压力状态，在 24 小时（自然天）内，在线监控系统监测到的系统压力与大气压差值（表压）处于（-50～50） Pa 范围内的连续时间超过 12 小时，系统应预警，若连续7天处于预警状态应报警。每天零时上传前一日的油罐零压状态，报警时间为前一天的23:59:59，若前一日发生报警则状态为报警，若前一日发生预警则为预警，无预报警发生则为正常。若油站安装了油罐压力传感器则必须判定油罐零压并上传该状态。

(3)卸油区油气浓度、后处理油气排放浓度：

在线监控系统可以不大于30秒的采样间隔监测加油站内的挥发性有机物，当浓度传感器监测到的浓度大于等于4000 μmol/mol时，则判断该处可能存在系统油气泄漏情况立即进行预警，当连续7天处于预警状态应报警；当监测到的浓度大于等于 8000μmol/mol时应立即报警。每日零时上传前一日的油罐零压状态，报警时间为前一日的23:59:59，若前一日发生报警则状态为报警，若前一日发生预警则为预警，无预报警发生则为正常。若油站安装了对应位置的浓度传感器则必须判定浓度报警状态并上传该状态，若未安装则传N。

表 3.3 报警数据格式

元素名称	数据格式	是否

可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	数据时间（）
AL	Varchar2(500)	否	A/L（0、 1、 2、 N）， N 指当日无加油
MB	Varchar2(1)	是	密闭性（0、 1、 2、 N）
YZ	Varchar2(1)	是	液阻（0、 1、 2、 N）
YGYL	Varchar2(1)	是	油罐压力（0、 1、 2、 N）
YGLY	Varchar2(1)	是	油罐零压（0、 1、 2、 N）
PVZT	Varchar2(1)	是	压力/真空阀状态（0、 1、 2、 N）
PVLJZT	Varchar2(1)	是	压力/真空阀临界压力状态（0、 1、2 、 N）
HCLZT	Varchar2(1)	是	后处理装置状态（0、 1、 2、 N）
HCLND	Varchar2(1)	是	后处理装置排放浓度（0、 1、 2、N）
XYHQG	Varchar2(1)	是	卸油区油气浓度状态（0、 1、 2、 N）
（五）加油枪数据

每次加油事件完成后，在线监控系统自动上传油气数据，用以记录每次加油过程中产生的相关数据。加油上传数据格式见表 3.4。如果不存在某项数据则在数据域中填写“NULL”。

表 3.4 加油数据格式

元素名称	数据格式	是否可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	监控时间
JYJID	Varchar2(4)	否	加油机标识
JYQID	Varchar2(4)	否	加油枪标识（单站唯一）
AL	NUMBER(3,2)	否	气液比（最大2.0，超过2.0的记为2.0）
QLS	NUMBER(6,1)	否	油气流速（L/min）
QLL	NUMBER(6,1)	否	油气流量(L)
YLS	NUMBER(6,1)	否	燃油流速（L/min）
YLL	NUMBER(6,1)	否	燃油流量(L)
HYQND	NUMBER(6,1)	是	回收油气浓度(%)
HYQWD	NUMBER(6,1)	是	回收油气温度
YZ	NUMBER(6,1)	是	液阻，单位 Pa
（六）环境数据

在线监控系统应能以时间间隔应不大于30秒的间隔采集环境数据， 并按照2到10分钟左右的时间间隔打包上传环境数据。上传环境数据的格式见表3.5。如果不存在某项数据则在数据域中填写“NULL”

表 3.5 环境数据上传格式

元素名称	数据格式	是否

可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	监控时间
YGYL	Number(6,1)	否	油罐压力，单位 Pa
YZYL	Number(6,1)	是	管道压力，单位 Pa
YQKJ	Number(6,1)	是	油气空间，单位 L
XND	Number(6,1)	是	卸油区油气浓度，单位umol/mol
HCLND	Number(6,1)	是	后处理装置排放浓度，单位umol/mol
YQWD	Number(6,1)	是	油气温度，单位℃
（七）故障数据

当出现故障情况时，在线监控系统应主动上传故障数据；无故障时，每日零时后上传。如果没有故障，则上传故障码 000000 表示无故障。故障数据上传格式见表 3.6.1。故障代码见表 3.6.2。

表 3.6.1 故障数据上传格式

元素名称	数据格式	是否可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	故障数据产生时间
TYPE	Varchar2(6)	否	故障码

表 3.6.2 故障代码表*

故障对象	故障类	故障子类	故障码
整个在线监控设备	无故障	000000（无故障时，上传该码）
控制器（采集器）	通信故障	通用	0110xx（xx表示控制器编号）
加油数据采集控制器	0111xx（xx表示控制器号）
环境数据采集控制器	0112xx（xx表示控制器号）
设备故障	通用	0120xx（xx表示控制器号）
加油数据采集控制器	0121xx（xx表示控制器编号）
环境数据采集控制器	0122xx（xx表示控制器编号）
油气流量传感器	通信故障	021xxx（xxx表示传感器编号）
设备故障	022 xxx（xxx表示传感器编号）
压力传感器	通信故障	通用	031000
储罐压力传感器	031001
液阻压力传感器	031002
设备故障	通用	032000
储罐压力传感器	032001
液阻压力传感器	032002
浓度传感器	通信故障	通用	041000
卸油区油气浓度传感器	041001
处理装置排放浓度传感器	041002
设备故障	通用	042000
卸油区油气浓度传感器	042001
处理装置排放浓度传感器	042002
温度传感器	通信故障	通用	051000
储罐温度传感器	051001
油气温度传感器	051002
设备故障	通用	052000
储罐温度传感器	052001
油气温度传感器	052002
控制台	通信故障	通用	091000
数据采集器	091001
上传服务器地址不可达	091002
与上传服务器连接超时	091003
设备

故障	通用	092000
软件

故障	通用	093000
参数配置异常	093001
数据库故障	通用	094000
连接异常	094001
表异常	094002
容量满	094003
*：表中 xx 或 xxx 表示有多个同类设备时的设备编号，如果只有一个设备用00或000即可。

（八）加油枪关停及启用数据

加油枪关停事件数据的上传规则为：

1.当每日新的报警数据生成后，判断油枪A/L是否连续超标开始报警，如果报警则加油站端的在线监控系统主动关停加油枪关停该加油枪，关停成功后上传”自动关停”；

2.加油站操作人员主动关停，上传“手动关停”事件数据。数据上传格式见表3.7。

加油站端的在线监控系统支持手动恢复关停加油枪， 关停加油枪恢复成功后上传“手动启用”事件数据。数据上传格式见表3.7。

表 3.7 加油枪关停及启动数据上传格式

元素名称	数据格式	是否

可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	启用/关停时间
JYJID	Varchar2(4)	否	加油机标识
JYQID	Varchar2(4)	否	加油枪标识
OPERATE	Varchar2(1)	否	操作类型 0-关停 1-启用
EVENT	Varchar2(1)	否	关停或启用事件类型

关停事件类型：0 自动关停 1手动关停

启用事件类型：0（预留） 1 手动启用

未知事件类型用 N 表示
（九）加油枪状态

上传规则为：

1.每日零时开始统计前一日加油枪关停状态并上传加油枪状态；

2.加油枪状态数据格式如下：加油枪号+冒号+加油枪状态+分号。上传数据格式见表3.8。

表 3.8 加油枪状态上传数据格式

元素名称	数据格式	是否可空	数据描述
ID	Varchar2(6)	否	对象 ID，在本次数据传输中唯一
DATE	Date	否	状态采集时间
STATUS	Varchar2(256)	否	加油枪开关状态： 0-关停， 1-正常