上海国家机关办公建筑和大型公共建筑能耗监测系统数据.docx
《上海国家机关办公建筑和大型公共建筑能耗监测系统数据.docx》由会员分享,可在线阅读,更多相关《上海国家机关办公建筑和大型公共建筑能耗监测系统数据.docx(14页珍藏版)》请在冰豆网上搜索。
上海国家机关办公建筑和大型公共建筑能耗监测系统数据
附件:
上海市国家机关办公建筑和大型公共建筑能耗监测系统数据接入通讯规约V1.8
上海市政府机关办公楼和
大型公共建筑能耗监测系统
数据接入通讯规约V1.8
2011.1
为方便各楼宇的能耗监测系统的数据接入市级能耗监测平台,在住建部《国家机关办公建筑和大型公共建筑能耗监测系统分项能耗数据传输技术导则》的基础上进行细化并根据平台的功能要求制定本通讯规约。
1术语
1.1能耗监测系统
能耗监测系统是指通过对政府机关办公建筑和大型公共建筑安装分类和分项能耗计量装置,采用远程传输等手段及时采集能耗数据,实现重点建筑能耗的在线监测和动态分析功能的软硬件软件系统的统称。
1.2分类能耗
分类能耗是指根据政府机关办公建筑和大型公共建筑消耗的主要能源种类划分进行采集和整理的能耗数据,如:
电、燃气、水等。
1.3分项能耗
分项能耗是指根据政府机关办公建筑和大型公共建筑消耗的各类能源的主要用途划分进行采集和整理的能耗数据,如:
空调用电、动力用电、照明用电等。
1.4数据传输网关
数据传输网关是在一个楼宇内或一个区域内将电能或其它能耗信息上传设备。
它通过远程信道与数据中心交换数据。
1.5数据中心
数据中心采集并存储其管理区域内监测建筑的能耗数据,并对本区域内的能耗数据进行处理、分析、展示和发布。
2通讯方式和传输内容
2.1数据传输网关使用基于IP协议承载的有线或者无线方式和数据中心连接。
2.2数据中心具有固定IP地址或者网络域名,方便数据传输网关接入。
2.3数据传输网关应将采集到的能耗数据进行定时远传,能耗数据每1小时(整点)上传1次,心跳信息每20分钟上传一次。
2.4能耗数据包括分项能耗瞬时累计值(有功电度)和每块电表能耗瞬时累计值(有功电度)。
分项能耗读数通过和分项相关的电表读数运算得出,需上传的分项能耗见附录1。
2.5在远传前数据传输网关应对能耗数据包进行加密处理。
2.6如因传输网络故障等原因未能将数据定时远传,则待传输网络恢复正常后数据传输网关应利用存储的数据进行断点续传。
3数据传输过程和通信协议
3.1数据远传使用基于IP协议的数据网络,数据中心提供两种通讯协议:
TCP和WebService。
3.1.1TCP协议定义如下,具体通讯协议见附录2:
●数据远传时数据中心建立TCP监听,数据传输网关发起对数据中心的连接,TCP建立后发送验证信息,数据中心对数据传输网关进行身份认证验证,通过后数据传输网关发送加密后的能耗数据,发送后连接断开;
●数据传输网关定时发送心跳数据(不加密),心跳数据不需要进行身份验证。
3.2WebService协议定义如下,具体通讯协议见附录3:
●数据传输网关定时调用数据中心提供的WebService服务上传能耗数据(加密)和心跳数据(不加密);
●上传能耗数据和心跳数据分别调用WebService服务的不同方法。
3.3数据传输网关和数据中心中间传输的能耗数据应进行加密,具体加密方法见附录2。
3.4数据中心通过心跳数据对数据传输网关进行授时,数据传输网关根据授时时间调整本地时间。
3.5当网络发生故障时,数据传输网关应存储未能正常实时上报的数据,待网络连接恢复正常后进行断点续传。
3.6当未能正确采集能耗数据时,传输网关应向数据中心发送故障信息。
3.7应用层数据包使用XML格式,加密后远传,所有数据采集器和数据中心的交互数据包中均包含对应的楼栋编码和数据传输网关编码,具体格式见附录4。
3.8字符串(string)和字节(byte)之间的转换均采用UTF-8。
附录1需上传分类分项能耗
分类分项能耗代码
分类、分项能耗名称
分类、分项能耗数值单位
计算方法
01000
电
千瓦时
★
01A00
照明插座用电
千瓦时
☆
01A10
照明与插座
千瓦时
☆
01A20
走廊与应急
千瓦时
☆
01A30
室外景观照明
千瓦时
☆
01B00
空调用电
千瓦时
☆
01B10
冷热站
千瓦时
★
01B1A
冷冻泵
千瓦时
★
01B1B
冷却泵
千瓦时
★
01B1C
冷机
千瓦时
★
01B1D
冷却塔
千瓦时
☆
01B1E
热水循环泵
千瓦时
★
01B1F
电锅炉
千瓦时
★
01B20
空调末端
千瓦时
☆
01B2A
全空气机组
千瓦时
☆
01B2B
新风机组
千瓦时
☆
01B2C
排风机组
千瓦时
☆
01B2D
风机盘管
千瓦时
☆
01B2E
分体式空调器
千瓦时
☆
01C00
动力用电
千瓦时
☆
01C10
电梯
千瓦时
☆
01C20
水泵
千瓦时
☆
01C30
通风机
千瓦时
☆
01D00
特殊用电
千瓦时
☆
01D10
信息中心
千瓦时
☆
01D20
洗衣房
千瓦时
☆
01D30
厨房餐厅
千瓦时
☆
01D40
游泳池
千瓦时
☆
01D50
健身房
千瓦时
☆
01D51
其他
千瓦时
☆
说明:
★表示必须通过实际电表计算得出,☆如果线路允许,应尽量安装电表,否则可以通过拆分得出。
附录2TCP通讯规约
1.网络层数据包格式
数据传输网关和数据中心传输的网络层数据包格式是指通过TCP协议传输时的格式,不但包括应用层的数据包,还包括因为TCP协议特性而增加的附加信息,以保证数据的顺利传输。
格式定义如下:
Head
Type
Length
Data
Head:
消息头,2个字节,固定为0x1F1F。
Type:
消息类型,1个字节:
●0x1:
身份认证,Data体是明文数据
●0x2:
心跳信息,Data体是明文数据
●0x3:
能耗数据,Data体是通过AES加密后的数据
Length:
4个字节,Integer整型,指明消息体Data长度,采用网络字节顺序(高位字节在前)。
Data:
应用层数据包,明文或是经过AES加密后的数据,原始数据是变长字符串,xml格式的消息,UTF-8编码,格式见附录4。
2.身份认证过程
数据中心使用MD5算法进行数据传输网关认证,具体过程如下:
(1)TCP连接建立成功后,数据采集器向数据中心发送身份认证请求;
(2)数据中心向数据采集器发送一个随机序列;
(3)数据采集器将本地存储的认证密钥(AES加密密钥)和接收到的随机序列组合成一连接串,计算连接串的MD5值并发送给数据中心;
(4)数据中心将接收到的MD5值和本地计算结果相比较,如果一致则认证成功,否则认证失败。
认证密钥存储在数据中心和数据传输网关的本地文件系统中,密钥长度128bit。
数据传输网关和数据中心通信过程如附图1所示。
附图1数据传输网关和数据中心通信过程
2.数据加密
使用AES加密算法对XML数据包进行加密,加密密钥和认证密钥相同,长度为128bit。
AES采用CBC算法模式,PKCS7/PKCS5填充模式,向量和密钥相同。
附录3WebService通讯规约
1.数据中心提供WebService服务以方便数据传输网关上传能耗数据和心跳数据。
2.WebService服务名:
DataTransmissionService,提供以下方法:
a)能耗数据传输方法
publicstringtransportEnergyData(stringbuildingId,stringgatewayId,byte[]sequence,byte[]md5,byte[]message)
传输网关将存储的本地密钥(AES加密密钥)加上传输网关生成的随机序列sequence计算出的md5值作为参数,随机序列和能耗数据也作为参数调用transportEnergyData上传能耗数据。
参数说明:
sequence:
传输网关生成的随机序列;
md5:
网关存储的本地密钥加上传输网关生成的随机序列sequence计算出的md5值;
buildingId:
楼宇编码;
gatewayId:
网关编码;
message:
能耗数据,原始格式说明见附录4,需使用AES算法加密,AESAES采用CBC算法模式,PKCS7/PKCS5填充模式,向量和密钥相同;
返回值:
如果正确解析,返回OK,否则返回错误描述,详细格式见附录4的能耗数据传输后数据中心的回应消息,xml格式,加密后传输。
b)心跳数据传输方法
publicstringtransportHeartBeat(stringbuildingId,stringgatewayId)
参数说明:
buildingId:
楼宇编码
gatewayId:
网关编码
返回值:
返回授时时间字符串:
格式YYYYMMDDHHMMSS,详细格式见附录4,xml格式,明文传输。
附录4数据传输的XML数据格式
1.身份验证数据包(id_validate)
xmlversion="1.0"encoding="utf-8"?
>
XXXXXX
XXX
id_validate
XXXXXXXX
XXXXXXXX
pass/fail
说明:
此操作只在使用TCP方式传输时有效。
common元素:
通用部分,属性说明:
building_id:
楼栋编号
gateway_id:
网关的ID
type:
固定为id_validate,指明是身份验证
id_validate元素:
operation属性:
共有四种:
●request:
采集器请求身份验证(该数据包为采集器发送给服务器),无子元素。
●sequence:
服务器发送一串随机序列,sequence子元素有效(该数据包为服务器发送给采集器)。
●md5:
采集器发送计算的MD5,md5子元素有效(该数据包为采集器发送给服务器),注意此处的md5值是转换成16进制后的字符串,参考附录5。
●result:
服务器发送验证结果,result子元素有效(该数据包为服务器发送给采集器)
2.心跳/校时数据包(heart_beat)
xmlversion="1.0"encoding="utf-8"?
>
XXXXXX
XXX
heart_beat
说明:
common元素:
通用部分,属性说明:
building_id:
楼栋编号
gateway_id:
采集器编号
type:
固定为heart_beat,指明是心跳/校时
heart_beat元素:
心跳/校时,属性说明:
operation:
两种操作类型,
●notify:
采集器定期给服务器发送存活通知,无子元素
●time:
服务器在收到存活通知后发送授时信息,此时子元素time有效
3.能耗远传数据包(data)
数据传输网关发送的信息:
xmlversion="1.0"encoding="utf-8"?
>
XXXXXX
XXX
energy_data
读数值1
读数值2
数据1
数据2
说明:
(1)common元素,通用部分,属性说明:
●building_id:
楼栋编号
●gateway_id:
采集器编号
●type:
type:
energy_data,指明是能耗数据
(2)data元素,远传数据:
●operation属性:
两种操作类型,
⏹report:
采集器定时上报的能耗数据
⏹continuous:
断点续传的历史能耗数据
⏹finish:
断点续传的历史能耗数据全部发送完成,无子元素
●energy_items元素:
能耗分项数据,
⏹energy_item元素:
上传的分项h
⏹code分项代码,数值是分项下所有仪表运算后的瞬时读数值,需要上传的分项参考附录1
●meters元素,仪表组合:
⏹total属性:
应该采集的总仪表数,因为采集链路故障,发送的仪表读数可能小于这个值。
⏹meter元素,仪表:
⏹id属性:
仪表的id
⏹name属性:
仪表名称
⏹function元素:
每个计量装置的具体采集功能,具有下列3种属性:
◆error属性:
该功能出现错误的描述,空字符串表示没有错误
◆id属性:
计量装置的数据采集功能代码,定义如下,目前只使用WPP:
Ua:
A相电压,Ub:
B相电压,Uc:
C相电压,Uab:
AB线电压
Ubc:
BC线电压,Uca:
CA线电压,Ia:
A相电流,Ib:
B相电流
Ic:
C相电流,Iab:
AB线电流,Ibc:
BC线电流,Ica:
CA线电流
Pa:
A相有功功率,Pb:
B相有功功率,Pc:
C相有功功率
Ps:
总有功功率,单位kw
Qa:
A相无功功率,Qb:
B相无功功率,Qc:
C相无功功率
Qs:
总无功功率,单位kw
PFa:
A相功率因数,PFb:
B相功率因数,PFc:
C相功率因数
PFs:
总功率因数
Sa:
A相视在功率,Sb:
B相视在功率,Sc:
C相视在功率
Ss:
总视在功率
Uavg:
相电压均值,ULavg:
线电压均值,Lavg:
电流均值
WPP:
正向有功电能,单位kwh,WQP:
正向无功电能,单位kwh,F:
频率
数据中心回应的信息:
xmlversion="1.0"encoding="utf-8"?
>
XXXXXX
XXX
energy_data
OK/fail…
说明:
如果数据格式和内容正确,ack中返回OK,否则返回错误信息。
Time是网关发送数据中包含的消息。
4.如果由于对消息的解密错误或者xml文档格式错误等原因导致文档不能解析,服务端将回应下列消息,错误描述在error元素中。
xmlversion="1.0"encoding="utf-8"?
>
errordescription
附录5数据签名/加密算法验证参考
对本通讯规约使用的MD5和AES算法,可使用下列示例进行验证算法是否正确:
1.MD5算法
明文
abc
abcdefghijklmnopqrstuvwxyz
密文
byte(-128~127)
-112,1,80,-104,60,-46,79,-80,-42,-106,63,125,40,-31,127,114
-61,-4,-45,-41,97,-110,-28,0,125,-5,73,108,-54,103,-31,59
byte(0~256)
144,1,80,152,60,210,79,176,214,150,63,125,40,225,127,114
195,252,211,215,97,146,228,0,125,251,73,108,202,103,225,59
十六进制
900150983cd24fb0d6963f7d28e17f72
c3fcd3d76192e4007dfb496cca67e13b
2.AES算法
AES使用采用CBC算法模式,PKCS5/PKCS7填充模式,向量和密钥相同。
明文
hello,world!
密钥
chinashanghaijky
密文
byte(-128~127)
35,118,54,20,-110,33,-7,92,121,-103,21,52,-119,96,-120,-30
byte(0~256)
35,118,54,20,146,33,149,92,121,153,21,52,137,96,126,226
十六进制
237636149221f95c79991534896088e2
备注:
对于byte类型,由于不同言语对应的值范围不同,如C、C++、java是-128~127,C#是0~256,因此对应范围不同的值在不同语言中显示值会有不同,但对结果没有影响。
3.MD5和AES说明
通过Tcp传输,在身份验证时xml格式中的MD5需要转换成16进制字符串,而通过Webservice传输时是byte,不要转换成16进制字符串。
在通过Tcp和Webservice传输的
AES加密数据是byte,不要转换成16进制字符串。