计算机系统应用  2019, Vol. 28 Issue (10): 68-73   PDF    
基于B/S架构的建筑能耗系统
石磊1, 王英明2, 程子清1, 宁群仪1, 黄嘉华1     
1. 深圳市赛为智能股份有限公司 大数据研究院, 深圳 518052;
2. 安徽工业大学 工商学院 大数据实验室, 马鞍山 243100
摘要:随着我国经济的发展, 办公建筑和大型公共建筑面积的日益增加, 建筑所带来的高耗能的问题日益突出. 主要体现在用电、用水、用气等能耗中, 本系统主要使用B/S 架构Webx框架技术实现能耗管理的统计分析功能. 采集程序以Go语言技术通过网络通信与串口服务器获取数据, 串口服务器再与终端设备以RS485串行接口连接,以modbus或opc等协议采集数据. 数据存储方面使用MySQL集群部署. 以现代信息化技术手段实时了解当前办公楼的能耗使用情况. 此系统在参考以往的系统设计方案同时, 再进一步从技术选型、大数据存储、采集系统模块化、硬件性能的提升等各个方面进行升级改造, 增加系统的易维护、易扩展、分布式部署等提升系统负载能力. 从技术选型上选择目前最流行稳定的架构方案, 数据库存储选择开源免费的MySQL集群方式来替代价格昂贵的Oracle数据库.
关键词: 建筑能耗    节能改造    Webx框架    Go语言    MySQL集群    
Building Energy Consumption System Based on B/S Architecture
SHI Lei1, WANG Ying-Ming2, CHENG Zi-Qing1, NING Qun-Yi1, HUANG Jia-Hua1     
1. Big Data Research Institute, Shenzhen SUNWIN Intelligent Limited by Share Ltd., Shenzhen 518052, China;
2. Big Data Laboratory, School of Business, Anhui University of Technology, Maanshan 243100, China
Abstract: With the development of China’s economy, the area of office buildings and large-scale public buildings is increasingly growing, resulting in ever-increasing high energy consumption, such as electricity consumption, water consumption, and gas consumption. This system based on B/S structure and Webx frame technology can conduct statistical analysis of energy consumption. The collection program uses Go language technology to accquire data through network communication and serial device server which is then connected to the terminal device through the RS485 serial interface, and collects data by protocols such as modbus or opc. In addtion, data storage is deployed using MySQL cluster. Such modern information technologies help us to know the current energy consumption of the office building in real time. Refering the previous system design scheme, we then further upgrades and rebuilds technical selection, big data storage, acquisition system modularization, hardware performance, and other aspects to make the system easier to be maintained and extended, and meanwhile adds distributed deployment and so on in attempting to improve the load capacity. In terms of technical selection, the most popular and stable architecture scheme is selected. Moreover, an open-source and free MySQL cluster mode is used to replace the expensive Oracle database for database storage.
Key words: building energy consumption     energy saving transformation     Webx framework     Go language     MySQL cluster    

1 需求分析

目前, 我国每年竣工建筑面积约为20亿m2, 其中公共建筑约有4亿m2. 2万m2以上的大型公共建筑面积占城镇建筑面积的比例不到4%, 但是能耗却占到建筑能耗的20%以上, 其中单位面积耗电量更是普通民宅的10到15倍. 在公共建筑(特别是大型商场、高档旅馆酒店、高档办公楼等)的全年能耗中, 大约50%~60%消耗于空调制冷与采暖系统, 20%~30%用于照明.

在我国现有的约430亿m2建筑中, 只有4%采取了能源效率措施, 单位建筑面积采暖能耗为发达国家新建建筑的3倍以上. 根据测算, 如果不采取有力措施, 到2020年中国建筑能耗是现在的3倍以上. 因此, 做好大型公共建筑的节能管理工作, 对实现“十一五”建筑节能规划目标具有重要意义[13].

2 系统总体框架

本系统将采用Webx框架进行构建[4], Webx是基于经典MVC设计模式的Web框架, 推崇页面驱动和约定胜于配置的理念. Webx也是一个基于Spring的组件框架. 组件是一个软件包, 它可以被其它组件扩展, 也可以扩展其它组件. 利用这些特性, Webx不仅能够用来开发高度可定制的Web应用, 也能够用来帮助你开发高度可扩展的非Web的应用.

将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护, 即将工程化应用于软件, 借助科学软件来管理软件开发流程管理[5].

采集服务器的作用负责从采集器或集中器获取能耗数据并保存到数据库服务器, Web服务器则负责系统的维护、分析等Web页面实现.

系统的采集部分采用两种方式实现, 针对屏蔽较强的大楼, 且具有合适的IP网络, 尽量采用有线的方式实现. 对于不具备有线网络, 施工难度大周期长的建筑物, 同时没有特别的屏蔽限制, 可以考虑采用无线的方式实现, 无线采集的方式的优点是可以大大降低施工难度和缩短实施工期, 从而可以降低整个系统的总成本, 但无线组网的无线集中器通过有线的方式与采集服务器相连从而保证集中器与采集服务器之间的数据传输可靠性, 这是因为无线集中器与采集服务器之间的数据传输比较频繁和数据量远大于一个无线终端与集中器之间的数据量.

系统提供B/S访问模式, 任何地方只要有一台可以上网的电脑即可访问服务器, 做到了真正的跨网络、跨平台访问. 能耗监测管理系统物理架构图如图1所示.

图 1 系统物理架构图

3 系统设计与关键技术

建筑能耗监测管理系统是一个不断在发展和完善的系统, 同时考虑的研发进度及降低研发风险, 该系统的开发拟分成多个版本进行迭代式开发, 不同版本必须确保是一个独立可完整部署的系统, 每个升级版本需要涉及到重大功能或特性的提升. 本系统的软件架构示意图如图2. 系统分为3个模块: 能耗采集子系统, 业务应用子系统和数据同步模块.

3.1 能耗采集子系统

能耗采集子系统负责能耗数据的采集, 支持通过有线或无线的方式采集能耗数据, 并将采集到的数据存入数据库系统. 采集子系统示意图如图3所示.

图 2 软件架构示意图

图 3 采集子系统示意图

系统解决方案以太网为主干网, 水电气热等现场表计具备RS485串行通讯接口, 接入数据采集终端, 数据采集终端连接就近的交换机, 分配相应的IP地址, 通过现场网络即可将数据传输至抄表系统(可通过宽带接入云服务器[6]), 服务器端无需再安装数据采集终端或集中器.

采集程序通过与串口服务器网络连接, 串口服务器再通过串口方式与终端设备连接, 实时从串口服务器读取终端设备上的各种参数数据. 其中所采集的数据需要通过算法转换, 再转存到MySQL集群服务器中[7]. 其中主要的数据格式转换算法代码如下:

// ieee 754 1985 32位单精度 16进制转换算法

type Dec32 uint32

const (

   S_MASK=0x80000000

   E_MASK=0x7F800000

   M_MASK=0x7FFFFF

   S_OFFSET=31

   E_OFFSET=23

)

func (d Dec32) s() float64 {

   return float64((uint32(d) & S_MASK) >> S_OFFSET)

}

func (d Dec32) e() int {

   return int((uint32(d) & E_MASK) >> E_OFFSET)

}

func (d Dec32) m() float64 {

   fraction:=uint32(d) & M_MASK

   m:=float64(fraction)/math.Pow(2, E_OFFSET)

   return m

}

func (d Dec32) Float32() float32 {

   S, E, M:=d.s(), d.e(), d.m()

if E!=0 && E!=255 {

   return float32(math.Pow(-1, S) * math.Pow(2, float64(E-127)) * (1 + M))

}

   return 0

}

采集子系统以Go开发语言REVEL WEB开发框架[8], Go语言是一种新的语言, 一种高并发的、带垃圾回收的、快速编译的语言. 因为采集程序对并发与稳定要求比较高, 所以当初选择技术架构时, 最终讨论结果还是以Go语言为基础架构.

3.2 业务应用子系统

业务应用子系统负责对能耗数据进行分析处理, 同时支持无法自动采集的能耗数据实现人工输入能耗数据. 业务应用子系统实现对各种建筑物的资源管理、能耗预算模型配置、能耗预算、节能效果评估、能耗指标分析、能耗预警、报表自定义、建筑物GIS能耗信息展示、统计及报警等功能.

业务子系统采用的技术为基于J2EE架构的SSM免费开源框架(Spring+Struts+MyBatis), 实现的是免客户端的B/S架构, 数据库选用MySQL或Oracle数据库, 开发工具采用Eclipse或MyEclipse, 应用服务器一般采用Tomcat (免费)或WebSphere、WebLogic (针对大规模项目可采用), 操作系统可部署在Windows、Unix或Linux上.

3.3 数据同步模块

数据同步模块实现将本系统的能耗数据上报至其他系统, 支持FTP、数据库以及WebService等多种接口方式实现同步, 并支持根据系统实际的要求灵活定制. 同步的间隔时间可配置. 本模块可根据具体项目进行定制化开发.

3.4 关键技术分析

采集程序: 以Go语言技术开发, 通过协议读取串口服务器再与RS485串口连接的终端设备.

数据储存: 终端设备点多, 所需要采集的参数也很多, 尤其是电表相关参数, 所以数据存储是个关键技术, 本系统采用MySQL集群方式[9,10], 通过MyCAT数据库中间件, 再结合HAProxy框架技术, 实现数据的存储与读取. 数据库集群架构示意图如图4所示.

图 4 MySQL集群示意图

MyCAT技术: 一个彻底开源的, 面向企业应用开发的大数据库集群, 支持事务、ACID、可以替代MySQL的加强版数据库. 用来替代昂贵的Oracle集群, 融合了内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server. 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品. 其中的分区规则以时间、设备编号等. 提高设备的查询速度.

HAProxy技术: HAProxy是一个使用C语言编写的自由及开放源代码软件, 其提供高可用性、负载均衡, 以及基于TCP和HTTP的应用程序代理. 实现了一种事件驱动, 单一进程模型, 此模型支持非常大的并发连接数. HAProxy负责将请求分发到MyCAT上, 起到负载均衡的作用, 同时HAProxy也能检测到MyCAT是否存活, HAProxy只会将请求转发到存活的MyCATl上. 如果一台MyCAT服务器宕机, HAPorxy转发请求时不会转发到宕机的MyCAT上, 所以MyCAT依然可用.

3.5 技术对比

建设此系统方案同时参考以往的很多类似设计方案[1114], 在原基础上不断的改进升级. 使系统更加符合当前需求及性能要求. 从技术选型上选择跨平台易上手Java、Go等语言为基础. 以往系统很多选择ASP.NET语言局限在微软平台上运行. 数据库存储方便选择开源免费的MySQL集群方式, 即保证大数据的存储要求, 又能降低成本. 采集子系统采用模块化开发, 降低系统耦合度, 同时使系统更加易扩展, 后期有其它数据需要接入, 同样适用. 依赖采集数据的积累, 不仅仅只做统计分析功能, 更进一步为节能改造提供有力依据. 达到绿色低能耗建筑目标.

4 系统实现

本系统采用Java语言, 在Webx框架下完成具体的系统功能, 服务器采用Linux+Tomcat,数据库采用MySQL. 整体系统为B/S模式, 客户端为各种浏览器, 方便跨平台的用户的使用.

本系统已成功在赛为智能大厦投入使用, 通过本系统很方便的统计每日的用能情况, 并可以通过不同的维度(楼层或部门)分别统计展示出各楼层或部门的能耗使用情况.

详细系统使用情况及展示部分功能效果图如图5所示.

图 5 系统功用界面

建筑能耗系统从2017年在赛为智能大厦安装运行数据如表1所示.

表 1 水电用量统计对比表

通过其中的水、电采集数据在同期两个年度的对比发现, 整体能耗在下降的趋势, 主要依靠系统能够实时了解到当前的能耗用量, 能够及时发现不必要的浪费现象. 通过技术加管理手段, 初步达到一定的节能成效. 下一步会根据历史数据对比分析出比较耗能环节, 再针对性的增加改造设备, 达到节能减排效果.

5 结语

通过建筑能耗监测管理系统能够实时有效的采集到能耗数据, 并按各种分项维度统计分析各项用能情况和实时掌握建筑设施的实时运行状态, 及时发现问题, 调整设备参数. 根据数据积累的统计值, 进行比对, 找出设施的故障和资源消耗的异常, 实施节能改造升级方案, 提升建筑物的能效.

参考文献
[1]
龙惟定. 建筑节能与建筑能效管理. 北京: 中国建筑工业出版社, 2005.
[2]
中国城市科学研究会. 绿色建筑. 北京: 中国建筑工业出版社, 2012.
[3]
中华人民共和国财政部, 中华人民共和国住房和城乡建设部. 财政部、住房城乡建设部关于进一步推进公共建筑节能工作的通知. http://www.gov.cn/zwgk/2011-05/11/content_1861716.htm, 2011-05-04.
[4]
Zhou M. Webx框架指南. https://m.open-open.com/pdf/59671b1d298047b39f2a82eeb02dd2a5.html.
[5]
张海藩, 倪宁. 软件工程. 3版. 北京: 人民邮电出版社, 2010. 30–35.
[6]
张晓丽, 杨家海, 孙晓晴, 等. 分布式云的研究进展综述. 软件学报, 2018, 29(7): 2116-2132. DOI:10.13328/j.cnki.jos.005555
[7]
MySQL官网中文. https://www.mysql.com/cn.
[8]
Go语言中文网. https://studygolang.com/.
[9]
杨明珉, 陈勇. MySQL集群到Oracle数据库的数据同步方法. 计算机系统应用, 2018, 27(6): 60-68. DOI:10.15888/j.cnki.csa.006374
[10]
张伟丽, 江春华, 魏劲超. MySQL复制技术的研究及应用. 计算机科学, 2012, 39(S3): 168-170.
[11]
王磊. 基于B/S架构的建筑能耗监测管理系统的设计与实现[硕士学位论文]. 济南: 山东大学, 2012.
[12]
戴史文. 大型公共建筑用电能耗在线监测系统的研究与实现[硕士学位论文]. 广州: 华南理工大学, 2014.
[13]
张伟. 实时数据库在建筑能耗监测系统中的应用研究[硕士学位论文]. 武汉: 华中科技大学, 2016.
[14]
郭志越. Web发布在建筑能耗监测系统中的应用研究[硕士学位论文]. 济南: 山东大学, 2018.