彭 可,馮 準(zhǔn),鄭懷鵬,蘆 飛,雷佳豪
(湖南師范大學(xué) 工程與設(shè)計(jì)學(xué)院,長(zhǎng)沙 410081)
?
城市LED照明系統(tǒng)遠(yuǎn)程監(jiān)控平臺(tái)設(shè)計(jì)與開(kāi)發(fā)
彭 可,馮 準(zhǔn),鄭懷鵬,蘆 飛,雷佳豪
(湖南師范大學(xué) 工程與設(shè)計(jì)學(xué)院,長(zhǎng)沙 410081)
針對(duì)城市中大規(guī)模LED路燈照明系統(tǒng),設(shè)計(jì)和開(kāi)發(fā)了一種基于C/S結(jié)構(gòu)的城市LED照明系統(tǒng)遠(yuǎn)程監(jiān)控平臺(tái);對(duì)系統(tǒng)組成結(jié)構(gòu)和工作原理進(jìn)行了分析,并對(duì)軟件平臺(tái)的關(guān)鍵模塊、傳輸協(xié)議、數(shù)據(jù)庫(kù)服務(wù)器及GIS系統(tǒng)進(jìn)行了研究;提出了一種綜合IOCP完成端口、多線程、GIS、數(shù)據(jù)庫(kù)以及無(wú)線網(wǎng)絡(luò)通信技術(shù)等集成一體的LED照明系統(tǒng)的遠(yuǎn)程監(jiān)控平臺(tái)設(shè)計(jì)方案,在整體技術(shù)上具有一定的集成創(chuàng)新特色;為了解決大量客戶端并發(fā)訪問(wèn)導(dǎo)致的網(wǎng)絡(luò)通信問(wèn)題,將IOCP模型技術(shù)和多線程機(jī)制應(yīng)用到通信服務(wù)器網(wǎng)絡(luò)通信模塊中;同時(shí),基于MapX在Visual C++平臺(tái)上進(jìn)行了地圖開(kāi)發(fā),并利用MYSQL數(shù)據(jù)庫(kù)保存和管理運(yùn)行數(shù)據(jù);實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有良好的可靠性與伸縮性。
完成端口模型;多線程;通信協(xié)議;數(shù)據(jù)庫(kù);地理信息系統(tǒng)
公共照明在城市建設(shè)中起著重要作用[1]。相對(duì)于傳統(tǒng)照明,LED是一種高效、環(huán)保、耐用的新光源[2]。隨著照明技術(shù)、嵌入式技術(shù)、和無(wú)線通信技術(shù)的快速發(fā)展,國(guó)內(nèi)外陸續(xù)提出了各種形式的照明遠(yuǎn)程監(jiān)管方案。文獻(xiàn)[3]基于B/S模型設(shè)計(jì)了一套LED照明工程遠(yuǎn)程監(jiān)控系統(tǒng),采用分區(qū)式結(jié)構(gòu),實(shí)現(xiàn)了照明工程的遠(yuǎn)程集中監(jiān)控,相對(duì)C/S模式來(lái)說(shuō),實(shí)時(shí)性較差[4]。文獻(xiàn)[5]采用完成端口模型設(shè)計(jì)開(kāi)發(fā)了遠(yuǎn)程路燈監(jiān)控系統(tǒng)的服務(wù)器端軟件,能夠高效的實(shí)現(xiàn)與遠(yuǎn)程監(jiān)控終端的網(wǎng)絡(luò)通信,但無(wú)法直觀的再現(xiàn)現(xiàn)場(chǎng)。文獻(xiàn)[6]設(shè)計(jì)了一種LED景觀燈照明智能控制系統(tǒng),具有低成本、傳輸距離遠(yuǎn)、低功耗等特點(diǎn),缺點(diǎn)是規(guī)模小且監(jiān)控中心服務(wù)器負(fù)載較大。為此,本文對(duì)比分析了國(guó)內(nèi)外已有研究成果的優(yōu)缺點(diǎn)后,提出一種LED照明遠(yuǎn)程監(jiān)控系統(tǒng)方案。為了解決海量客戶端并發(fā)連接和共享資源保護(hù)的問(wèn)題,提高服務(wù)器的數(shù)據(jù)處理及傳輸?shù)哪芰Γ瑢OCP完成端口模型與多線程機(jī)制應(yīng)用于通信服務(wù)器的設(shè)計(jì)中,大大提高了服務(wù)器的整體性能[7-10]。此外,引入GIS技術(shù),使得用戶能夠更加簡(jiǎn)單、方便地描繪道路監(jiān)控現(xiàn)場(chǎng)的真實(shí)情況。
LED照明遠(yuǎn)程監(jiān)控系統(tǒng)采用傳統(tǒng)的C/S架構(gòu),采用三層結(jié)構(gòu),包括監(jiān)控中心,遠(yuǎn)端燈控制器與單燈控制器。首先通過(guò)單燈控制器采集LED路燈的實(shí)時(shí)數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,然后將采集到的數(shù)據(jù)通過(guò)遠(yuǎn)端燈控制器傳送到監(jiān)控中心對(duì)數(shù)據(jù)包進(jìn)行處理,達(dá)到實(shí)時(shí)監(jiān)控的目的。監(jiān)控中心即城市LED照明系統(tǒng)的遠(yuǎn)程監(jiān)控軟件平臺(tái),結(jié)構(gòu)如圖1所示,由通信服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、用戶控制終端組成,具備實(shí)時(shí)監(jiān)測(cè)和控制LED路燈的功能。管理人員通過(guò)監(jiān)控中心來(lái)管理控制整個(gè)照明系統(tǒng)的正常、穩(wěn)定的運(yùn)行。
圖1 監(jiān)控中心結(jié)構(gòu)
2.1 通信協(xié)議設(shè)計(jì)
監(jiān)控中心軟件平臺(tái)與遠(yuǎn)端燈控制器進(jìn)行數(shù)據(jù)通信時(shí),必須制定一組通信協(xié)議,使通信雙方具有相同的數(shù)據(jù)格式,LED照明監(jiān)控系統(tǒng)才能正常工作。本文將數(shù)據(jù)通信協(xié)議內(nèi)容封裝成一個(gè)數(shù)據(jù)幀,如表1所示。
表1 通信數(shù)據(jù)幀格式
2.2 數(shù)據(jù)庫(kù)服務(wù)器設(shè)計(jì)
本文采用MYSQL數(shù)據(jù)庫(kù),利用ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)在VC++ 6.0平臺(tái)上對(duì)MYSQL進(jìn)行讀寫操作。表2中列出了本軟件平臺(tái)所需的數(shù)據(jù)庫(kù)表。
表2 系統(tǒng)常用數(shù)據(jù)庫(kù)表
2.3 通信服務(wù)器設(shè)計(jì)
通信服務(wù)器用于與遠(yuǎn)端燈控制器以及用戶控制終端通信,是監(jiān)控中心與整個(gè)LED路燈網(wǎng)絡(luò)系統(tǒng)進(jìn)行數(shù)據(jù)交換的通道。通信服務(wù)器運(yùn)行流程如圖2所示。采用完成端口(IOCP)機(jī)制來(lái)處理多并發(fā)的連接,實(shí)現(xiàn)數(shù)量不多的幾個(gè)線程為大量的遠(yuǎn)程連接提供服務(wù),避免各控制端在對(duì)通信服務(wù)器進(jìn)行訪問(wèn)時(shí)產(chǎn)生沖突,整個(gè)系統(tǒng)能夠良好運(yùn)行[11-14]。通信服務(wù)器采用模塊化設(shè)計(jì)思想,將其分為六個(gè)模塊:IOCP通信模塊、數(shù)據(jù)包解析模塊、客戶端登錄模塊、業(yè)務(wù)邏輯處理模塊、狀態(tài)記錄模塊、數(shù)據(jù)庫(kù)存管理模塊
圖2 通信服務(wù)器運(yùn)行流程圖
實(shí)現(xiàn)通信服務(wù)器時(shí),將IOCP的所有操作封裝成CIOCPServer類,該類是整個(gè)服務(wù)器的核心,可以非常高效的為海量客戶提供服務(wù)。其中,ClientContext數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)客戶端上下文信息;CIOCPBuff結(jié)構(gòu)實(shí)現(xiàn)對(duì)異步I/O操作數(shù)據(jù)的管理,它包含了Socket上處理I/O操作的必要信息;另外定義了兩個(gè)數(shù)據(jù)結(jié)構(gòu)ClientOnlineInfo、UserOnlineInfo分別用于存儲(chǔ)遠(yuǎn)端燈控制器和用戶控制端的連接狀態(tài)。ClientContext與CIOCPBuff具體結(jié)構(gòu)定義如下:
typedef struct ClientContext
{
SOCKET s;// 套接字
int nCurrentReadSeqNumber;
// 當(dāng)前讀序列號(hào)
int nReadSequence;
//需要接收的下一個(gè)序列號(hào)
CIOCPBuff *pOutOfOrderReads;
//記錄沒(méi)有按順序完成的I/O
CCriticalSection Lock;
// 保護(hù)更新操作的臨界區(qū)
…… //其它參數(shù)
}ClientContext;
struct CIOCPBuff
{
OVERLAPPED Overlapped; // 重疊結(jié)構(gòu)
SOCKET sClient; //接收的客戶端套接字
CBuff *buff; //I/O操作使用的緩沖區(qū)
int nOperateType; // I/O操作類型
int nSequencNumber; // 操作序列號(hào)
…… 其它參數(shù)
}CIOCPBuff;
通信服務(wù)器采用多線程模式進(jìn)行設(shè)計(jì),為每個(gè)客戶端創(chuàng)建一個(gè)接收線程和一個(gè)發(fā)送線程,另外再設(shè)計(jì)數(shù)據(jù)解析、處理等線程,這種設(shè)計(jì)方式可以有效縮短數(shù)據(jù)接收周期,提升數(shù)據(jù)處理的效率。將數(shù)據(jù)接收與數(shù)據(jù)解析分別設(shè)計(jì)在兩個(gè)線程中,可減輕數(shù)據(jù)接收線程的工作量,保證各客戶端間數(shù)據(jù)通信的有效性與公平性,并保證發(fā)送數(shù)據(jù)接收的及時(shí)性,以免在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)使該客戶端繼續(xù)接收數(shù)據(jù)出現(xiàn)等待延遲現(xiàn)象。
2.4 用戶控制終端設(shè)計(jì)
用戶控制終端是進(jìn)行照明監(jiān)控整個(gè)流程的起點(diǎn),是發(fā)送命令和展示監(jiān)控狀態(tài)的功能模塊,包含用戶管理模塊、遠(yuǎn)端燈控制器管理模塊、LED燈運(yùn)行方式管理模塊、LED燈監(jiān)控模塊、故障信息五大模塊。設(shè)計(jì)時(shí)嵌入地圖,通過(guò)調(diào)用MapX5.0來(lái)完成相應(yīng)的功能,如LED路燈布局、LED路燈開(kāi)關(guān)及故障狀態(tài)查看等功能。監(jiān)控中心GIS功能實(shí)驗(yàn)如圖3所示,LED燈正常工作時(shí)用紅點(diǎn)標(biāo)識(shí),LED燈出現(xiàn)故障用灰點(diǎn)標(biāo)識(shí)。
圖3 GIS功能實(shí)驗(yàn)圖
本文采用Winsock進(jìn)行網(wǎng)絡(luò)編程,遠(yuǎn)端燈控制器利用AT指令控制CC1101無(wú)線通信模塊與建立好的通信服務(wù)器進(jìn)行遠(yuǎn)程連接。而本文測(cè)試時(shí)不可能用大量真實(shí)的遠(yuǎn)端燈控制器與LED路燈來(lái)對(duì)軟件進(jìn)行調(diào)試與測(cè)試,因此,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)遠(yuǎn)端燈控制器仿真客戶端軟件來(lái)對(duì)通信服務(wù)器進(jìn)行調(diào)試及測(cè)試,遠(yuǎn)端燈控制器仿真軟件和用戶控制終端通過(guò)IP地址以及端口號(hào)與通信服務(wù)器建立網(wǎng)絡(luò)連接。連接過(guò)程如圖4~5所示。
圖4 仿真軟件 圖5 通信連接建立成功
LED照明系統(tǒng)監(jiān)控平臺(tái)的關(guān)鍵功能是實(shí)時(shí)數(shù)據(jù)的接收和控制命令的傳輸,因此在對(duì)網(wǎng)絡(luò)傳輸功能模塊進(jìn)行設(shè)計(jì)開(kāi)發(fā)時(shí),保證數(shù)據(jù)包傳輸?shù)膶?shí)時(shí)性準(zhǔn)確性,可行性,以及快速性是整個(gè)系統(tǒng)的關(guān)鍵。經(jīng)分析研究,監(jiān)控平臺(tái)數(shù)據(jù)包傳輸采用TCP協(xié)議。TCP協(xié)議即傳輸控制協(xié)議,是一種可靠的傳輸層協(xié)議,具有重傳機(jī)制與擁塞控制功能,采用該協(xié)議對(duì)數(shù)據(jù)包進(jìn)行傳輸,可確保其完整無(wú)損的傳輸至目的地址[15]。表3中羅列了網(wǎng)絡(luò)通信測(cè)試時(shí)遇到的問(wèn)題及解決辦法。
表3 網(wǎng)絡(luò)通信時(shí)遇到的主要問(wèn)題及解決辦法
本文對(duì)開(kāi)發(fā)的LED照明遠(yuǎn)程監(jiān)控系統(tǒng)進(jìn)行了仿真測(cè)試,通過(guò)仿真遠(yuǎn)端燈控制器作為客戶端,搭建仿真測(cè)試平臺(tái),實(shí)驗(yàn)測(cè)試環(huán)境如下:Intel(R) Core(TM)i3-3240 CPU,主頻3.40 GHz,4 G內(nèi)存,500 G硬盤,百兆寬帶,Windows XP系統(tǒng)。遠(yuǎn)端燈控制器仿真軟件模擬遠(yuǎn)端燈控制器向服務(wù)器程序發(fā)送數(shù)據(jù)包,設(shè)定數(shù)據(jù)包發(fā)送的最小時(shí)間間隔為5 min。同時(shí)在軟件運(yùn)行過(guò)程中每30 s發(fā)送一個(gè)心跳檢測(cè)包,不定時(shí)的發(fā)送故障信息包。用戶控制終端不定時(shí)地發(fā)送控制命令與心跳檢測(cè)包等數(shù)據(jù)。正常數(shù)據(jù)測(cè)試結(jié)果如圖6所示,其顯示了并發(fā)連接數(shù)和CPU及內(nèi)存的之間的關(guān)系。
圖6 客戶端連接個(gè)數(shù)與CPU占有率及內(nèi)存消耗關(guān)系圖
曲線1表示CPU占有率與客戶端連接個(gè)數(shù)的關(guān)系,曲線2表示內(nèi)存消耗與客戶端連接個(gè)數(shù)的關(guān)系,從圖6可看出,當(dāng)遠(yuǎn)端燈控制器仿真客戶端連接個(gè)數(shù)不斷增加時(shí),內(nèi)存的消耗與CPU的占有率幾乎以線性的方式平緩增加,服務(wù)器具有較好的伸縮性。
本文設(shè)計(jì)開(kāi)發(fā)的城市LED照明系統(tǒng)遠(yuǎn)程監(jiān)控平臺(tái)涉及多線程間的通信、數(shù)據(jù)庫(kù)開(kāi)發(fā)、Winsock網(wǎng)絡(luò)開(kāi)發(fā)以及GIS開(kāi)發(fā)。采用ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),從而對(duì)保存在MYSQL數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行讀寫,利用IOCP模型實(shí)現(xiàn)與監(jiān)控中心的用戶控制終端和遠(yuǎn)程監(jiān)控終端的高效網(wǎng)絡(luò)通信。此外,LED照明系統(tǒng)監(jiān)控平臺(tái)在可視化開(kāi)發(fā)工具Visual C++上應(yīng)用GIS工具軟件MapX以集成二次開(kāi)發(fā)方式來(lái)實(shí)現(xiàn)對(duì)GIS的開(kāi)發(fā)。該軟件平臺(tái)在設(shè)計(jì)時(shí)著重考慮軟件運(yùn)行時(shí)的穩(wěn)定性、實(shí)時(shí)性和網(wǎng)絡(luò)通信的可靠性,且通過(guò)調(diào)試運(yùn)行,已經(jīng)實(shí)現(xiàn)了基本的功能。
[1] 郝洛西.中國(guó)城市亮化工程的若干問(wèn)題[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2000,40(S1):28-32.
[2]李 霞.LED路燈在市政照明中的優(yōu)勢(shì)與發(fā)展[J].民營(yíng)科技,2015(1):244.
[3]楊潔翔,吳影清,劉廷章. LED照明工程遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與科學(xué),2012(7):172-176.
[4]李雪剛,黃夢(mèng)醒,朱東海.基于物聯(lián)網(wǎng)技術(shù)的遠(yuǎn)程農(nóng)田監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2012,38(17):20-23.
[5]丁 亮,秦會(huì)斌,吳紅生.城市路燈遠(yuǎn)程監(jiān)控系統(tǒng)中服務(wù)器端軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電工程,2012,29(12):1498-1502.
[6]尹紀(jì)庭,袁 隹,余建波. LED景觀燈照明智能控制系統(tǒng)[J].計(jì)算機(jī)工程,2013,39(9):317-321.
[7]劉敦東,黃 祚,孫洪飛.完成端口在路燈監(jiān)控軟件中的應(yīng)用[J].照明工程學(xué)報(bào),2010,21(2):66-70.
[8]王園園.基于多線程并行模式的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2015(7):81-84.
[9]邱忠洋,李 濤,夏德群. 公路交通氣象觀測(cè)站監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 南京信息工程大學(xué)學(xué)報(bào)(自然科學(xué)版),2015(3):234-240.
[10]史秀鵬,何涇沙,趙 斌,等.基于并發(fā)訪問(wèn)請(qǐng)求關(guān)聯(lián)的訪問(wèn)控制協(xié)調(diào)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2015(1):82-87.
[11]王 良,徐軍明,吳紅生.基于IOCP模型的樓宇燈控制系統(tǒng)服務(wù)器的設(shè)計(jì)[J].機(jī)電工程,2013(11):1425-1429.
[12]林 勇.基于IOCP機(jī)制的電力遠(yuǎn)程集抄系統(tǒng)通信模塊研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014(5):128-131.
[13]楊冬黎,楊 斌.基于IOCP的放射源自動(dòng)監(jiān)控系統(tǒng)[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2014(6):705-707.
[14]王曉林,劉鳳連.基于IOCP技術(shù)的換熱站監(jiān)控系統(tǒng)實(shí)現(xiàn)機(jī)制研究[J].天津理工大學(xué)學(xué)報(bào),2015(6):26-29.
[15]費(fèi)紹敏,龔曉峰,盧海峰,等.基于IOCP的新聞交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,53(4):11-12.
Design and Development on Remote Monitoring Platform for Urban LED Lighting System
Peng Ke,F(xiàn)eng 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。
湖南省自然科學(xué)基金資助項(xiàng)目(11JJ3080);湖南省高校產(chǎn)業(yè)化培育項(xiàng)目(11CY011)。
彭 可(1973-),男,湖南株洲人,博士,教授,主要從事網(wǎng)絡(luò)化控制、實(shí)時(shí)嵌入系統(tǒng)、DSP控制系統(tǒng)等方向的研究。
1671-4598(2016)09-0103-04
10.16526/j.cnki.11-4762/tp.2016.09.028
TP311.52
A