基于B/S架构的嵌入式远程用电管理系统
2017-08-30张阳伟李成凤
张阳伟,李成凤,张 丰
(绥化学院 电气工程学院,黑龙江 绥化 152061)
基于B/S架构的嵌入式远程用电管理系统
张阳伟,李成凤,张 丰
(绥化学院 电气工程学院,黑龙江 绥化 152061)
针对校园中现有用电管理系统的存在的缺陷与弊端,提出了一种基于B/S架构的嵌入式远程用电管理系统的解决方案;系统以ARM-CORTEX-A8为主控板的核心处理器,Linux操作系统为应用程序的运行环境,同时在Linux系统中搭建了嵌入式BOA服务器;系统中使用html语言完成系统与用户的交互页面,并通过CGI技术实现了浏览器与嵌入式服务器的数据交互;为不改变原有建筑电力布线,系统终端采用zigbee无线网络实现远程的用电监控,从而实现远程用电管理系统;为使系统运行效率高,主进程中使用多线程技术完成系统中各任务,系统中使用数据共享内存的方式完成各进程间的数据通信,使用消息队列实现客户端对系统终端设备的控制,系统中通过sqlite3数据库完成所有历史数据的记载;通过系统实验测试,该系统可以正确响应用户需求以及满足校园内所设置的合理用电申请的远程用电管理要求,在安全、节约用电的同时有最大程度的方便了校园内非常规工作需求。
B/S架构;Linux操作系统;BOA服务器;远程用电管理
0 引言
校园内从安全用电、节约用电的角度出发,对各个用电部门通常采取限功率用电,从整体使用效果上看,校园的安全、节约用电的状况有所改善,但有时校园内有些用电部门需要短时间、临时性的较大功率用电,例如冬天里学生使用吹风机吹干头发,就会受到学生公寓限功率用电的影响,学校是学生们学习的场所,但也是他们生活的地方,因此学生公寓应在保证安全和节约用电的前提下,应尽量的方便学生们的日常生活;学校内老师们的科研方向并不统一,因此一些教师的临时性的大功率的用电实验,实验室内配电箱的功率限额用电也会影响到他们的科研工作。同时学校考虑要为教职工和学生提供一个良好的工作和学习环境,对于一些单位的用电又是自由开放式的,如教学楼的照明灯常常是学生进入教室后打开,而离开后又忘记关闭电源,这又造成了不必要的用电浪费;学生公寓内寝室照明灯常亮等用电浪费现象比比皆是。对于上述现象校园内需要一个智能平台来合理的分配和管理校园内的用电,因此提出了一种基于B/S架构的远程用电管理系统,来解决在保证安全、节约用电的基础上,又不影响校园内处理工作中临时性、突发性事件工作的远程用电管理系统。
1 系统整体结构
远程用电管理系统的整体结构如图1所示,系统中所有的用户分为两种权限,即普通用户和系统管理员。系统中普通用户均为校园内的各用单部门的非专业技术人员,普通用户仅具有申请用电和查看用电的权限。系统管理员为校园内各个部分用电管理中心的工作人员,系统的管理员不仅具有普通用户的权限还具有设置各个电部门允许申请用电功率上限、用电时长、申请用电次数等权限。用户远程通过浏览器输入系统主控板的IP地址访问用电管理系统。访问到用电管理系统页面后使用自己的账号和密码登录系统用电管理系统,选择自己所在的用电单位进行系统的用电访问。如若用户需要申请用电则需在网页上填写用电申请信息,其中包括用电部门,用电功率,用电时长,用电开始时间,申请用电原因等相关信息,在用电管理系统接收到用户填写的用电申请后,会由系统中的Boa服务器创建的CGI进程获取浏览器页面表单中的有效数据信息,下传到系统主控进程,主控进程依据校园内的整体用电情况,完成数据分析,并作出合理控制,同时将用电申请结果反馈给用户。若用户的用电申请未通过系统的批准,系统则通过页面消息告知用户未通过用电申请原因,若系统通过了用户的用电申请,系统将会将用户的用电申请信息进行有效数据筛选,并通过串口传给Zigbee中间节点,由ZigBee无线网络的终端节点完成用电申请的实际开关量操作。对于各个部门的功率限电上限,单次用电时长等重要用电参数的更改,仅能可以由系统管理员通过用电管理系统的参数设置更改完成。以保证用电管理系统的安全合理使用。
图1 系统整体结构
2 系统实现思路
系统实现的思路大体由两条路线组成,其系统设计思路框图如图2所示。一条路线为用户端通过用电管理系统的登录页面向主控制进程发送查看或设置指令。这一过程中需要用户登录自己的账号申请用电,因此需要在管理系统的前端加入用户数据记录数据库,当有用户登录系统时,系统需要匹配登录的账号与密码是否与数据库内的信息匹配。待用户进入管理系统后,系统就会接收用户的数据信息,这时无论用户是否成功申请用电,系统均应连同当前时间以及用电申请结果记录到管理系统的用电管理数据库中,以便其他进程的使用。设计思路中的另一条路线为系统终端无线网络设备节点的信息采集、最终的指令执行状态反馈给系统主控进程。这一过程主要涉及到用户以及管理员对用电单位的用电查询,用电申请以及当前的用电状态的查询。当用户通过管理系统查询某一时间的用电情况时,仅需从用电管理数据库中调出历史数据;若用户需要了解当前的用电状态,管理系统的主进程会通过核心控制板的的串口与zigbee中间节点通信得到的底层工作状态数据信息,并将数据进行量化转换存储到用电管理数据库中;若用户是申请用电,在主控进程下发数据指令后,zigbee网络节点应将底层开关量的实际状体状态反馈给管理,这一过程管理系统应将指令反馈状态加载到数据库中保存信息。再上述情况收集完信息后,系统的主控进程将信息通过CGI应用程序通过BOA服务器刷新html页面表单中的显示数据,以便最终可以在浏览器上显示有效信息。若是远程用电管理系统的终端检测到终端工作环境有异常状态,也会上传到浏览器页面,并通过浏览器页面指示标志示警。
图2 系统设计思路
2.1 系统中各线程结构
系统的主控进程初始为系统创建数据库,并在数据库中完成各个表单的创建,然后初始化各个线程间所使用到的线程锁和条件变量,以及全局变量的定义,接着开启各个线程,各线程间关系如图3所示。其中包括用户端请求线程,其作用是获得CGI进程中的通信数据信息,其激活方式为消息队列内容不为空;数据处理线程,其作用是通过消息队列中获取数据进行数据分析处理,判断其获取到的数据是否为合理范围内的数据,然后将获得到的数据信息按照用户类别进行分类,将处理好的有效数据加载到链表中,然后发送条件变量信号,供相关进行使用,用户端请求线程发送的条件变量信号为其激活条件;数据库线程是将用户端的所有的指令信息,以及指令信息执行状态的记录备份,其激活状态为链表节点中有数据,以及数据处理线程发送条件变量信号;终端接收线程,主要是通过zigbee无线网络终端节点对配电柜工作状态信息的采样,以及各个用电单位的功率限定值,zigbee中间节点通过串口的方式与主控板进行连接,因此线程仅需读取串口设备文件信息即可,待数据信息读取后向数据解析线程发送条件变量信号;数据解析线程是依据ARM-CORTEX-A8与zigbee中间节点设备的通信协议进行数据的解析;共享内存刷新线程,用以刷新共享内存,html页面表单中的显示数据,在主控进程与CGI进程通信中起着重要作用。在系统中出现问题时系统中在所有子线程会依次退出,知道主线程结束,主线程结束后会释放所有资源然后退出,即主控进程结束,这样就保证了系统不会因瘫痪在某一环节影响了系统的整体工作情况系统的主线程还使用了外部中断信号来响应用户强制性结束控制的方法。
图3 系统各线程间关系
2.2 用户端到终端信息传输
系统中的用户到终端信息传输流程如图4所示。主控进程在开启各个线程工作后,用户数据处理线程会创建消息队列,用以获取CGI应用程序的指令信息;为确保主控进程的控制指令到终端无线设备的指令信息不丢失,在主控进程中还应创建一个串口数据缓冲链表,用户请求线程可以一直接收用户的请求信息,不必等待系统终端是否完成数据的处理,线程中接收到的信息全部加载到数据缓冲链表中,数据处理线程会从链表中的节点信息获取到用户请求信息,并分别放入到数据库数据链表中,和通过串口将节点信息下传给用电管理系统的终端部分,这样就会大大减少信息丢失现象。
当系统识别到的是普通用户权限,系统获取消息队列的锁,然后依次获取消息队列中的不同类型的数据信息,解析获取到的信息,并发送条件信号以激活相对应阻塞的线程,直到消息队列空为止。若解析到的信息是查看用电指令,主控进程需要调用数据线程,依据用户填写的用电部门和查询时间,将数据库内匹配的数据信息反馈给主控制进程,由主控进程做进一步的处理。如果解析到的指令信息为用电申请,则主控进程中用户请求线程将会激活数据处理线程,数据处理线程会依据现有的用电信息的处理用户端的请求信息,数据处理线程将会接收用户信息,并分析用户的用电申请时间段内的用电量是否合理,如果合理则激活串口服务进程,将解析后的信息下传到无线网络终端,如果用电申请不合理,则将错误信息反馈给用户。
当系统识别到登录用户的权限为系统管理员时,主控进程中的系统管理线程将会获得锁资源,同时依靠于CGI进程通信获得的表单数据进行解析有效信息,更改相关用电部门的额定功率限定值的设置,单次用电时长以及各部门用电峰值预警状态,然后将数据信息加入到数据库信息链表中,同时向数据库线程中发送信号量,当数据库线程获得资源锁并检测到条件变量信号后,会将数据库信息链表中的所有节点数据信息依次解析,并将解析后节点信息存放在相对应的数据库表单中。
图4 用户到终端信息传输流程
2.3 系统终端到浏览器页面的信息传输
系统终端到页面信息传输流程如图5所示。对于用电管理系统中工作在配电室的终端设备,为满足配电室的智能化管理,还要求终端设备可以监控工作室的环境信息,因此在终端工作环境内设置温度传感器、湿度传感器,若配电室内环境温度、湿度异常,就会触发系统报警。同时配电室内应禁止非工作人员的进入,因此用电系统要求每个工作人员应刷RFID卡后才允许进入配电室内,每个进入的配电室工作人员的刷卡记录都会备份到用电系统中如有发现非工作人员进入,系统会发出预警信号。系统终端还对整个配电室内的电压、电流进行检测,以保证其工作在安全值范围内。以上的预警信息普通用户并不关注,系统用户查询的时间可能并不及时,因此配电室内出现预警信息后需要无线终端设备主动上传,并交由主控进程处理。
用电系统的终端上传信息的另一种情况为用户端发送指令信息到用电系统,若用户端发送的是申请指令则系统的终端设备会检测开关量的实际动作状态并通过zigbee无线传输的方式上传给zigbee中间节点,在zigbee中间节点中会创建串口接收数据链表,并将每个无线终端节点上传的所有信息作为一个节点加入到该链表中,串口接收线程会将循环取出链表节点信息放到消息队列中,并发送条件变量信号激活数据解析线程,直到链表为空。数据解析线程被激活后,会依据系统自定的通信协议对节点信息进行解析。并将解析后的数据放到全局变量中,同时向共享内存线程发送条件变量信号,激活共享内存变量,使其刷新共享内存中的有效信息,从而使用户可以通过网页浏览到用电系统的终端工作状态。若用户发送的是用电查看指令,主控进程则会激活数据库线程,反馈其内保存的历史记录信息。
图5 终端到页面信息传输流程图
3 系统测试
每个用电部门均有一个远程用电管理系统的核心监控主板,即每个用电部门均有一个用电管理系统自己的IP地址,当用户通过浏览器登录用电管理系统主页面时,会需要用户填写单位,系统会依据用户所填写的用电单位,后台数据库搜索,通过内部链接跳转到制定单位的用电管理系统中心中,完成自己的业务需求。
如某老师需到实验室进行大功率实验,在登录系页面后需正确填写用电申请选项,其申请用电单位是4号楼103室,申请用电功率为3.3 KW,用电开始时间为14:00,用电时长30分钟,用电原因大功率负载实验,其用电申请页面如图6所示。填写完申请用电后,系统3秒钟后会有反馈结果,若是申请用电成功,则显示成功,若是失败,系统会给出申请用电失败的原因归属类。
图6 申请用电页面
若宿管人员需要查看本单位各个寝室房间的用电情况,在登录系统平台中输入自己的职工编号和密码后再输入本单位的编号,如5号楼,其系统反馈页面如图7所示,第一列为本单位中各个房间号,然后依次为每个房间每月可用电量,即学校每个期望学生用电30 kW,如学生有超出部分,则需要学生自己支付超出部分的用电费用,当月已使用的电量,当前可申请短时间内可使用的限定功率最大值,即每次学生短时间内可使用的最大用电功率为1.8 kW。当月的剩余电量,以及当日已申请的用电次数。每个寝室的每日可申请的用电次数是由系统管理员来设置的,同时单词允许使用大功率用电的时长也是由系统管理员来设置,这样就避免了学生们无限次连续的使用的使用大功率用电器,这样处理的目的是既方便了学生的用电,又可以有效的安全和节约用电。
图7 管理员查询页面
4 结束语
远程用电管理系统是基于B/S架构开发的嵌入式系统的应用,它是依据当今社会各高校还在依赖人工管理的用电管理系统中存在的缺陷和弊端下提出的一套智能用电管理平台,将校园内的系统用电合理化重新分配,考虑到对于不同用户的安全、节约用电,远程用电系统对各个部门的用电申请提出了系统限制,保证各个部门合理的申请和查看本部门的用电情况的基础上,同时系统终端还会对终端的工作环境进行检测,将检测到的数据信息进行系统上传,以及工作预警。远程用电管理系统将使所有用户同一平台分权限管理,降低同一平台多用户工作的耦合性,远程用电管理系统在保证了校园安全节约用电的基础上,智能化的对校园内各用电单位从新分配电能,对于各个用电单位合理的用单查看和申请不需要繁琐的审批流程,既提高了办事的快速性,也是工作变得灵活可靠。通过系统测试,远程用电管理系统在达到校园内安全节约用电的同时,还极大的方便了各用电部门灵活用电调度的工作,对于开放用电部门也改善了传统的用电浪费的现象。
[1] 王云亮,李 莹等.基于嵌入式安防远程监控系统的设计[J].化工自动化及仪表,2016,(42):32-34.
[2] 陈 娟,李 元,李万国. 基于B/S架构的嵌入式系统测试方法与实现[J].电子技术应用,2016,42(2):50-52,56
[3] 李志宇. 物联网技术研究进展[J] .计算机测量与控制,2012,6(48):65-67
[4] 蔡 勇,王 勇.嵌入式数据库SQLite在测控系统设计中的应用[J].电子测试,2011(10):89-93.
[5] 孙街亭,徐蓓蓓. B/S架构的宿舍管理信息系统研究与开发[J]. 西安工程大学学报,2010,24(2):197-202.
Embedded Remote Electricity Management System Based on B/S Architecture
Zhang Yangwei,Li Chengfeng,Zhang Feng
(Institute of Electrical Engineering,Suihua University,Suihua 152061,China )
Aiming at the shortcomings and drawbacks of the existing power management system in campus, a solution of embedded remote electricity management system based on B / S architecture is proposed . The system uses ARM-CORTEX-A8 as the core processor of the main control board and the Linux operating system as the running environment of the application program. At the same time, the embedded BOA server is built in the Linux system . The system uses the html language to complete the system and user interaction pages, and through the CGI technology to achieve the browser and embedded server data interaction . In order not to change the original building power wiring, the system uses ZigBee wireless network terminal to achieve remote power monitoring, remote power management system is designer. In order to make the system run efficiently, the main process uses multithreading technology to complete the tasks in the system. The system uses data shared memory to complete the data communication between the processes. The message queue is used to realize the control of the system terminal equipment. Through the Sqlite3 database to complete all the historical data records . Through the system test, the system can correctly respond to user needs and to meet the campus set by the rational use of electricity applications for remote power management requirements in the safe and save electricity at the same time have the greatest degree of convenience to the campus of the unconventional work requirements.
B/S framework; Linux operating system; BOA web server; remote management of electricity
2017-01-13;
2017-02-21。
绥化学院杰出青年基金(SJ16009)。
张阳伟(1987-),女,黑龙江哈尔滨人,硕士研究生,主要从事计算测量控制方向的研究。
1671-4598(2017)07-0246-03
10.16526/j.cnki.11-4762/tp.2017.07.061
TP316
A