城市LED照明系统远程监控平台设计与开发
2016-11-17郑怀鹏雷佳豪
彭 可,冯 准,郑怀鹏,芦 飞,雷佳豪
(湖南师范大学 工程与设计学院,长沙 410081)
城市LED照明系统远程监控平台设计与开发
彭 可,冯 准,郑怀鹏,芦 飞,雷佳豪
(湖南师范大学 工程与设计学院,长沙 410081)
针对城市中大规模LED路灯照明系统,设计和开发了一种基于C/S结构的城市LED照明系统远程监控平台;对系统组成结构和工作原理进行了分析,并对软件平台的关键模块、传输协议、数据库服务器及GIS系统进行了研究;提出了一种综合IOCP完成端口、多线程、GIS、数据库以及无线网络通信技术等集成一体的LED照明系统的远程监控平台设计方案,在整体技术上具有一定的集成创新特色;为了解决大量客户端并发访问导致的网络通信问题,将IOCP模型技术和多线程机制应用到通信服务器网络通信模块中;同时,基于MapX在Visual C++平台上进行了地图开发,并利用MYSQL数据库保存和管理运行数据;实验结果表明,该系统具有良好的可靠性与伸缩性。
完成端口模型;多线程;通信协议;数据库;地理信息系统
0 引言
公共照明在城市建设中起着重要作用[1]。相对于传统照明,LED是一种高效、环保、耐用的新光源[2]。随着照明技术、嵌入式技术、和无线通信技术的快速发展,国内外陆续提出了各种形式的照明远程监管方案。文献[3]基于B/S模型设计了一套LED照明工程远程监控系统,采用分区式结构,实现了照明工程的远程集中监控,相对C/S模式来说,实时性较差[4]。文献[5]采用完成端口模型设计开发了远程路灯监控系统的服务器端软件,能够高效的实现与远程监控终端的网络通信,但无法直观的再现现场。文献[6]设计了一种LED景观灯照明智能控制系统,具有低成本、传输距离远、低功耗等特点,缺点是规模小且监控中心服务器负载较大。为此,本文对比分析了国内外已有研究成果的优缺点后,提出一种LED照明远程监控系统方案。为了解决海量客户端并发连接和共享资源保护的问题,提高服务器的数据处理及传输的能力,将IOCP完成端口模型与多线程机制应用于通信服务器的设计中,大大提高了服务器的整体性能[7-10]。此外,引入GIS技术,使得用户能够更加简单、方便地描绘道路监控现场的真实情况。
1 城市LED照明远程监控系统的工作原理
LED照明远程监控系统采用传统的C/S架构,采用三层结构,包括监控中心,远端灯控制器与单灯控制器。首先通过单灯控制器采集LED路灯的实时数据,并对这些数据进行简单处理,然后将采集到的数据通过远端灯控制器传送到监控中心对数据包进行处理,达到实时监控的目的。监控中心即城市LED照明系统的远程监控软件平台,结构如图1所示,由通信服务器、数据库服务器、用户控制终端组成,具备实时监测和控制LED路灯的功能。管理人员通过监控中心来管理控制整个照明系统的正常、稳定的运行。
图1 监控中心结构
2 监控平台的设计与实现
2.1 通信协议设计
监控中心软件平台与远端灯控制器进行数据通信时,必须制定一组通信协议,使通信双方具有相同的数据格式,LED照明监控系统才能正常工作。本文将数据通信协议内容封装成一个数据帧,如表1所示。
表1 通信数据帧格式
2.2 数据库服务器设计
本文采用MYSQL数据库,利用ADO数据库访问技术在VC++ 6.0平台上对MYSQL进行读写操作。表2中列出了本软件平台所需的数据库表。
表2 系统常用数据库表
2.3 通信服务器设计
通信服务器用于与远端灯控制器以及用户控制终端通信,是监控中心与整个LED路灯网络系统进行数据交换的通道。通信服务器运行流程如图2所示。采用完成端口(IOCP)机制来处理多并发的连接,实现数量不多的几个线程为大量的远程连接提供服务,避免各控制端在对通信服务器进行访问时产生冲突,整个系统能够良好运行[11-14]。通信服务器采用模块化设计思想,将其分为六个模块:IOCP通信模块、数据包解析模块、客户端登录模块、业务逻辑处理模块、状态记录模块、数据库存管理模块
图2 通信服务器运行流程图
实现通信服务器时,将IOCP的所有操作封装成CIOCPServer类,该类是整个服务器的核心,可以非常高效的为海量客户提供服务。其中,ClientContext数据结构用于存储客户端上下文信息;CIOCPBuff结构实现对异步I/O操作数据的管理,它包含了Socket上处理I/O操作的必要信息;另外定义了两个数据结构ClientOnlineInfo、UserOnlineInfo分别用于存储远端灯控制器和用户控制端的连接状态。ClientContext与CIOCPBuff具体结构定义如下:
typedef struct ClientContext
{
SOCKET s;// 套接字
int nCurrentReadSeqNumber;
// 当前读序列号
int nReadSequence;
//需要接收的下一个序列号
CIOCPBuff *pOutOfOrderReads;
//记录没有按顺序完成的I/O
CCriticalSection Lock;
// 保护更新操作的临界区
…… //其它参数
}ClientContext;
struct CIOCPBuff
{
OVERLAPPED Overlapped; // 重叠结构
SOCKET sClient; //接收的客户端套接字
CBuff *buff; //I/O操作使用的缓冲区
int nOperateType; // I/O操作类型
int nSequencNumber; // 操作序列号
…… 其它参数
}CIOCPBuff;
通信服务器采用多线程模式进行设计,为每个客户端创建一个接收线程和一个发送线程,另外再设计数据解析、处理等线程,这种设计方式可以有效缩短数据接收周期,提升数据处理的效率。将数据接收与数据解析分别设计在两个线程中,可减轻数据接收线程的工作量,保证各客户端间数据通信的有效性与公平性,并保证发送数据接收的及时性,以免在对数据进行预处理时使该客户端继续接收数据出现等待延迟现象。
2.4 用户控制终端设计
用户控制终端是进行照明监控整个流程的起点,是发送命令和展示监控状态的功能模块,包含用户管理模块、远端灯控制器管理模块、LED灯运行方式管理模块、LED灯监控模块、故障信息五大模块。设计时嵌入地图,通过调用MapX5.0来完成相应的功能,如LED路灯布局、LED路灯开关及故障状态查看等功能。监控中心GIS功能实验如图3所示,LED灯正常工作时用红点标识,LED灯出现故障用灰点标识。
图3 GIS功能实验图
3 监控平台功能调试
本文采用Winsock进行网络编程,远端灯控制器利用AT指令控制CC1101无线通信模块与建立好的通信服务器进行远程连接。而本文测试时不可能用大量真实的远端灯控制器与LED路灯来对软件进行调试与测试,因此,本文设计并实现了一个远端灯控制器仿真客户端软件来对通信服务器进行调试及测试,远端灯控制器仿真软件和用户控制终端通过IP地址以及端口号与通信服务器建立网络连接。连接过程如图4~5所示。
图4 仿真软件 图5 通信连接建立成功
4 网络通信时遇到的主要问题及解决办法
LED照明系统监控平台的关键功能是实时数据的接收和控制命令的传输,因此在对网络传输功能模块进行设计开发时,保证数据包传输的实时性准确性,可行性,以及快速性是整个系统的关键。经分析研究,监控平台数据包传输采用TCP协议。TCP协议即传输控制协议,是一种可靠的传输层协议,具有重传机制与拥塞控制功能,采用该协议对数据包进行传输,可确保其完整无损的传输至目的地址[15]。表3中罗列了网络通信测试时遇到的问题及解决办法。
表3 网络通信时遇到的主要问题及解决办法
5 仿真测试
本文对开发的LED照明远程监控系统进行了仿真测试,通过仿真远端灯控制器作为客户端,搭建仿真测试平台,实验测试环境如下:Intel(R) Core(TM)i3-3240 CPU,主频3.40 GHz,4 G内存,500 G硬盘,百兆宽带,Windows XP系统。远端灯控制器仿真软件模拟远端灯控制器向服务器程序发送数据包,设定数据包发送的最小时间间隔为5 min。同时在软件运行过程中每30 s发送一个心跳检测包,不定时的发送故障信息包。用户控制终端不定时地发送控制命令与心跳检测包等数据。正常数据测试结果如图6所示,其显示了并发连接数和CPU及内存的之间的关系。
图6 客户端连接个数与CPU占有率及内存消耗关系图
曲线1表示CPU占有率与客户端连接个数的关系,曲线2表示内存消耗与客户端连接个数的关系,从图6可看出,当远端灯控制器仿真客户端连接个数不断增加时,内存的消耗与CPU的占有率几乎以线性的方式平缓增加,服务器具有较好的伸缩性。
6 结论
本文设计开发的城市LED照明系统远程监控平台涉及多线程间的通信、数据库开发、Winsock网络开发以及GIS开发。采用ADO数据库访问技术对数据库进行访问,从而对保存在MYSQL数据库里的数据进行读写,利用IOCP模型实现与监控中心的用户控制终端和远程监控终端的高效网络通信。此外,LED照明系统监控平台在可视化开发工具Visual C++上应用GIS工具软件MapX以集成二次开发方式来实现对GIS的开发。该软件平台在设计时着重考虑软件运行时的稳定性、实时性和网络通信的可靠性,且通过调试运行,已经实现了基本的功能。
[1] 郝洛西.中国城市亮化工程的若干问题[J].清华大学学报(自然科学版),2000,40(S1):28-32.
[2]李 霞.LED路灯在市政照明中的优势与发展[J].民营科技,2015(1):244.
[3]杨洁翔,吴影清,刘廷章. LED照明工程远程监控系统设计[J]. 计算机工程与科学,2012(7):172-176.
[4]李雪刚,黄梦醒,朱东海.基于物联网技术的远程农田监控系统设计[J].计算机工程,2012,38(17):20-23.
[5]丁 亮,秦会斌,吴红生.城市路灯远程监控系统中服务器端软件的设计与实现[J].机电工程,2012,29(12):1498-1502.
[6]尹纪庭,袁 隹,余建波. LED景观灯照明智能控制系统[J].计算机工程,2013,39(9):317-321.
[7]刘敦东,黄 祚,孙洪飞.完成端口在路灯监控软件中的应用[J].照明工程学报,2010,21(2):66-70.
[8]王园园.基于多线程并行模式的数据采集系统设计[J].重庆工商大学学报(自然科学版),2015(7):81-84.
[9]邱忠洋,李 涛,夏德群. 公路交通气象观测站监控系统的设计与实现[J]. 南京信息工程大学学报(自然科学版),2015(3):234-240.
[10]史秀鹏,何泾沙,赵 斌,等.基于并发访问请求关联的访问控制协调方法[J].计算机工程与设计,2015(1):82-87.
[11]王 良,徐军明,吴红生.基于IOCP模型的楼宇灯控制系统服务器的设计[J].机电工程,2013(11):1425-1429.
[12]林 勇.基于IOCP机制的电力远程集抄系统通信模块研究[J].计算机应用与软件,2014(5):128-131.
[13]杨冬黎,杨 斌.基于IOCP的放射源自动监控系统[J].哈尔滨商业大学学报(自然科学版),2014(6):705-707.
[14]王晓林,刘凤连.基于IOCP技术的换热站监控系统实现机制研究[J].天津理工大学学报,2015(6):26-29.
[15]费绍敏,龚晓峰,卢海峰,等.基于IOCP的新闻交换平台的设计与实现[J].微计算机信息,2009,53(4):11-12.
Design and Development on Remote Monitoring Platform for Urban LED Lighting System
Peng Ke,Feng Zhun,Zheng Huaipeng,Lu Fei,Lei Jiahao
(1.College of Engineering and Design, Hunan Normal University, Changsha 410081,China)
In view of the large scale of LED lighting remote monitoring system, the software platform of LED based on C/S structure is designed and developed. The structure and working principle of the system are analyzed, and the main module of the software platform, transmission protocol, database server and geographic information system (GIS) are studied. A design scheme of remote monitoring platform for urban LED lighting system is proposed which integrated IOCP, Multi-thread, GIS, data base and wireless communication technology. It has integrated innovative characteristic. In order to solve that large number of clients concurrent network communication simultaneously, the application of completion port (IOCP) model and multi-thread mechanism to the network communication module of the software is proposed. MapX is adopted in the system to achieve map development based on Visual C++, also, the MYSQL database is used to save and manage service data. Experimental results show that the system has good reliability and scalability.
completion port model; multi-thread; communication protocol; data base;geographic information system
2016-03-18;
2016-01-21。
湖南省自然科学基金资助项目(11JJ3080);湖南省高校产业化培育项目(11CY011)。
彭 可(1973-),男,湖南株洲人,博士,教授,主要从事网络化控制、实时嵌入系统、DSP控制系统等方向的研究。
1671-4598(2016)09-0103-04
10.16526/j.cnki.11-4762/tp.2016.09.028
TP311.52
A