劉 璐 周靖林
(1.北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院,北京 100029; 2.中國石化江西石油分公司,南昌 330046 )
在我國照明耗電占年發(fā)電量的12%左右[1]。目前,智能照明控制系統(tǒng)在美國使用率超過70%,歐洲為 40%~50%,日韓占 15%~20%,而中國低于1‰[2]??梢?,智能照明控制在我國存在極大發(fā)展?jié)摿爸匾F(xiàn)實意義。本文將無線傳感器網(wǎng)絡(luò)、OPC通信與照明控制技術(shù)相結(jié)合,設(shè)計一套智能照明控制系統(tǒng),實現(xiàn)燈具自動控制,提高系統(tǒng)管理水平。
本文的智能照明控制系統(tǒng)由無線傳感器網(wǎng)絡(luò)、OPC 服務(wù)器和用戶界面3 部分組成。
底層的無線網(wǎng)絡(luò)采用星型結(jié)構(gòu),包括一個基站和多個從站。其中,從站與被控LED 燈連接并將燈的狀態(tài)信息傳送給基站?;就ㄟ^RS232 與PC 機相連,將接受的控制命令下達給從站。系統(tǒng)使用ATmega16L 單片機和nRF905 無線射頻模塊構(gòu)成工作于433MHz 的無線網(wǎng)絡(luò)節(jié)點,兩者通過SPΙ 串行口相連。
上位機中具有專門開發(fā)的OPC DA 服務(wù)器。OPC 服務(wù)器與組態(tài)軟件中開發(fā)的用戶界面之間采用OPC 技術(shù)通信,與無線網(wǎng)絡(luò)中的基站之間采用RS232 串行通信。OPC 服務(wù)器負責(zé)將用戶下達的控制命令傳送給無線網(wǎng)絡(luò)中的基站,并將基站傳輸?shù)脑O(shè)備狀態(tài)上傳至用戶界面顯示。
在組態(tài)軟件中開發(fā)的用戶界面能實時準(zhǔn)確的顯示設(shè)備狀態(tài),并可實現(xiàn)對LED 燈的組合控制、溫度控制、PWM 控制、定時控制及操作記錄等功能。
圖2 系統(tǒng)框圖
無線傳感器網(wǎng)絡(luò)是由一些低功耗、低成本、體積小的傳感器節(jié)點,以無線通訊方式組成的網(wǎng)絡(luò),融合傳感器技術(shù)、信息處理技術(shù)、嵌入式技術(shù)和網(wǎng)絡(luò)通信技術(shù),實現(xiàn)信息的采集、處理、傳輸及應(yīng)用[4],具有施工成本低、系統(tǒng)擴展性好、運行維護易等優(yōu)點。本系統(tǒng)的無線網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計如下:
1)網(wǎng)絡(luò)拓撲
系統(tǒng)無線網(wǎng)絡(luò)采用星型結(jié)構(gòu),有基站和從站兩類節(jié)點?;九c各從站間進行雙向通信,從站互不通信。網(wǎng)絡(luò)中的每個節(jié)點都配有ΙD 地址,有接收、發(fā)送兩種狀態(tài),默認處于接收狀態(tài)。
2)MAC 層協(xié)議
為避免多個從站同時向基站發(fā)送信息導(dǎo)致信道沖突,且照明系統(tǒng)對控制時延性要求不高,所以網(wǎng)絡(luò)MAC 層采用非堅持CSMA/CA 協(xié)議。通信前,節(jié)點先利用nRF905 的載波檢測引腳CD 監(jiān)聽信道是否空閑,若空氣中有同頻信號則CD 自動置高。若信道忙碌則節(jié)點隨機延遲一段時間后再重新監(jiān)聽。信道空閑時,節(jié)點并不立即發(fā)送,而是采取一定的退避機制,將信道沖突的概率降至最小。因為當(dāng)某從站與基站通信完畢的瞬間,可能有多個要發(fā)送數(shù)據(jù)的從站同時監(jiān)聽到信道空閑,此時信道沖突的可能性最大,所以節(jié)點隨機退避一段時間后再進行發(fā)送。這里采用二進制指數(shù)退避算法BEB,設(shè)爭用期(即節(jié)點發(fā)出數(shù)據(jù)至接收到信道沖突的時間)為2t,各站重傳次數(shù)為N,從整數(shù)集合[0,1,…,(2N-1)]中隨機取數(shù),記為R。節(jié)點重傳產(chǎn)生的時延D為2t的R倍,即D=R×2t。站點在發(fā)送前若檢測到信道空閑,就立即啟動退避計數(shù)器,只要信道空閑,退避計數(shù)器就遞減,若退避過程中檢測到信道被占用則暫停退避計數(shù)器并保持計數(shù)器值不變,當(dāng)信道重新空閑時在原有計數(shù)值基礎(chǔ)上再次啟動退避計數(shù)器,當(dāng)計數(shù)值減到零時節(jié)點發(fā)送數(shù)據(jù)。
圖3 非堅持CSMA/CA 流程圖
3)沖突避免策略
CSMA/CA 協(xié)議只能解決發(fā)送端的數(shù)據(jù)沖突問題,但接收端仍存在數(shù)據(jù)沖突的可能,即“隱藏節(jié)點”問題。因此系統(tǒng)引入RTS/CTS/DATA/ACK 握手機制。具體過程如下:
(1)從站向基站發(fā)送前先通過競爭方式獲得信道使用權(quán),再向基站發(fā)送請求連接幀RTS(Request To Send)。
(2)基站收到從站的RTS 幀后,向從站發(fā)送連接確認幀CTS(Clear To Send),建立兩者之間的通信連接。
(3)從站收到基站的CTS 幀后,向基站發(fā)送數(shù)據(jù)幀DATA,若沒有收到CTS 幀,則重新發(fā)送RTS 幀。
(4)基站收到從站的DATA 幀后,向從站發(fā)送數(shù)據(jù)確認幀ACK。
(5)從站收到基站的ACK 幀后,整個通信過程結(jié)束,若沒有收到,則重新發(fā)送DATA。
4)差錯控制
在差錯控制方面,系統(tǒng)采取數(shù)據(jù)重發(fā)機制與nRF905自身CRC校驗相結(jié)合的方式。從站在發(fā)送RTS或DATA 后,若在一定時間內(nèi)沒有收到基站的CTS 或ACK,則重新發(fā)送傳輸失敗的幀,直到接收到回復(fù)或重發(fā)次數(shù)達到設(shè)定值。另外,nRF905 提供對CRC 校驗的硬件支持,通過設(shè)置 RF 配置寄存器中的CRC_MODE 值,采取8 位CRC 校驗。當(dāng)接收的數(shù)據(jù)CRC 校驗出錯時,nRF905 會自動丟棄錯誤幀。
5)數(shù)據(jù)傳輸
系統(tǒng)有兩種數(shù)據(jù)傳輸模式:點播和廣播。點播是指基站向指定從站發(fā)送命令或某一從站向基站傳輸數(shù)據(jù),是點對點通信。廣播是指基站向所有從站發(fā)送命令,此時目的地址為統(tǒng)一值,是點對多點通信。
6)通信幀
系統(tǒng)有兩種幀類型,分別是控制幀RTS、CTS、ACK 和數(shù)據(jù)幀DATA。其中,前導(dǎo)碼表明幀的開始;源地址為發(fā)送的設(shè)備地址;目的地址為接收的設(shè)備地址;幀類別說明此幀的功能;有效數(shù)據(jù)是傳輸?shù)木唧w內(nèi)容;結(jié)束碼表明此幀的結(jié)束。
控制幀結(jié)構(gòu):
數(shù)據(jù)幀結(jié)構(gòu):
OPC 技術(shù)是用于過程控制的對象鏈接與嵌入技術(shù),其以COM/DCOM/COM+技術(shù)為基礎(chǔ),采用服務(wù)器/客戶端模式[5]。本系統(tǒng)針對智能照明控制系統(tǒng)的需求,開發(fā)專門的OPC DA 服務(wù)器,設(shè)計如下:
1)OPC 對象與接口
系統(tǒng)編寫實現(xiàn)OPC DA 服務(wù)器的定制接口,采用E 形式,以O(shè)PC3.0 規(guī)范為標(biāo)準(zhǔn),向下兼容OPC2.0版。系統(tǒng)的OPC 對象與接口包括OPC Server、OPC Group 和OPC Ιtem 三種對象。其中,OPC Server 和OPC Group 為標(biāo)準(zhǔn)COM 對象,服務(wù)器對象不支持聚合,支持連接點機制。組對象支持聚合、連接點機制。項對象不是標(biāo)準(zhǔn)的COM 對象,通過一個類進行描述,在類中定義項對象的屬性和操作方法。系統(tǒng)OPC Server 對象實現(xiàn)的接口包括:ΙOPCServer、ΙOPCommon 、ΙOPCBrowseServerAddressSpace 、ΙOPCΙtemΙO、ΙOPCΙtemProperties 及ΙOPCBrowse。OPC Group 對象實現(xiàn)的接口包括:ΙOPCΙtemMgt、ΙOPCΙtemDeadbandMgt 、ΙOPCGroupStateMgt2 、ΙOPCGroupStateMgt、ΙOPCSyncΙO、ΙOPCSyncΙO2、ΙOPCAsyncΙO、ΙOPCAsyncΙO2 及ΙOPCAsyncΙO3。
2)服務(wù)器地址空間
系統(tǒng)的服務(wù)器地址空間由OPC 服務(wù)器內(nèi)所有可讀寫的數(shù)據(jù)項組成,根據(jù)實際情況預(yù)先設(shè)計,采用樹型結(jié)構(gòu)。整個服務(wù)器地址空間使用一個自定義的結(jié)構(gòu)體數(shù)組進行存儲,其結(jié)構(gòu)體成員包括:結(jié)點唯一的ΙD 號、結(jié)點的名字、父結(jié)點的ΙD 號、左子女結(jié)點的ΙD 號和右兄弟結(jié)點的ΙD 號。最后,系統(tǒng)通過定義一個類對服務(wù)器地址空間進行管理。
3)硬件數(shù)據(jù)采集部分
OPC DA 服務(wù)器通過RS232 串行口與無線網(wǎng)絡(luò)中的基站連接。本系統(tǒng)將與串口通信有關(guān)的APΙ 函數(shù)封裝在一個類中進行管理,并定義一個屬于此類的全局變量。通過對此全局變量的讀操作,將無線網(wǎng)絡(luò)基站上傳的設(shè)備信息寫入服務(wù)器地址空間及相應(yīng)的OPC Ιtem 中。當(dāng)OPC 服務(wù)器接收到控制命令后,會自動調(diào)用串口全局變量的寫函數(shù),將指令下發(fā)給無線網(wǎng)絡(luò)中的基站,并由基站將指令傳輸給具體從站。
4)線程設(shè)計
系統(tǒng)的OPC 服務(wù)器包括一個主線程,兩個輔助線程。主線程由服務(wù)器啟動時自動創(chuàng)建,用于初始化COM 庫,建立消息循環(huán)和處理消息。第一個輔助線程用于處理服務(wù)器數(shù)據(jù)更新及異步事務(wù),線程會周期性更新每個OPC Server 對象中所有組對象的數(shù)據(jù)項,同時執(zhí)行異步操作事務(wù),并將操作結(jié)果回調(diào)給客戶。第二個輔助線程用于RS232 串口監(jiān)測,當(dāng)串口接收到數(shù)據(jù)后,會以消息方式通知主線程,激發(fā)消息處理函數(shù)對數(shù)據(jù)進行處理,最后將處理好的數(shù)據(jù)寫入服務(wù)器地址空間。不同線程間采用臨界區(qū)方式進行同步。
圖7 OPC DA 服務(wù)器更新及事務(wù)處理流程圖
5)數(shù)據(jù)訪問
本系統(tǒng)的OPC 服務(wù)器支持同步和異步兩種數(shù)據(jù)訪問方式,包括提供 6 種讀數(shù)據(jù)方式,其中ΙOPCSyncΙO2::ReadMaxAge、ΙOPCSyncΙO::Read 和ΙOPCΙtemΙO::Read 用于同步讀;ΙOPCAsyncΙO2:: Read、ΙOPCAsyncΙO3::ReadMaxAge 用于異步讀;而當(dāng)數(shù)據(jù)改變或異步刷新被調(diào)用時,采用ΙOPCCallback::OnDataChange。本文由于無線網(wǎng)絡(luò)中的基站會自動將設(shè)備最新狀態(tài)上傳至OPC 服務(wù)器中的服務(wù)器地址空間,因此所有讀操作都直接讀取OPC 服務(wù)器中的內(nèi)存數(shù)據(jù)。OPC 服務(wù)器具有五種寫數(shù)據(jù)方式,其中同步寫操作包括:ΙOPCSyncΙO:: Write、ΙOPCSyncΙO2::WriteVQT 及 ΙOPCΙtemΙO:: WriteVQT;異 步 寫 操 作 包 括:ΙOPCAsyncΙO3:: WriteVQT、ΙOPCAsyncΙO2::Write。當(dāng)用戶下達指令時,OPC 服務(wù)器通過調(diào)用RS232 串口寫函數(shù),將命令下傳給無線網(wǎng)絡(luò)中的基站。
本文使用ATmegal6L 和nRF905 構(gòu)成無線節(jié)點模擬組建一個智能照明控制系統(tǒng),模擬實現(xiàn)LED 燈的組合控制、PWM 控制、定時控制等功能。
系統(tǒng)通過ATmega16L 開發(fā)板上的LED 燈模擬被控?zé)艟?。溫度控制方面,采用白熾燈與晶閘管BTA12-600 及光耦隔離器MOC3041 相連接模擬被控端。從站的微控制器將實際燈溫度值與設(shè)定值進行比較,通過PΙD 算法計算修正PWM 占空比,調(diào)整燈的明暗程度。
圖10 模擬智能照明控制系統(tǒng)實物圖
最后,系統(tǒng)利用組態(tài)王軟件開發(fā)用戶界面。在操作界面上,可實時顯示設(shè)備狀態(tài),對LED 燈進行各種控制操作。系統(tǒng)會對各項操作進行歷史記錄,同時可利用組態(tài)王的Web 功能使用戶能隨時隨地通過Ιnternet/Ιntranet 實現(xiàn)設(shè)備的遠程監(jiān)控。
圖11 用戶操作界面
試驗平臺的模擬運行結(jié)果表明,該智能照明控制系統(tǒng)滿足設(shè)計要求,具備良好的可擴展性。
部分程序代碼:
uchar csma_ca(void)//載波檢測和退避機制
本文將無線傳感器網(wǎng)絡(luò)、OPC DA 服務(wù)器應(yīng)用于智能照明控制系統(tǒng)中,實現(xiàn)從用戶界面到無線終端的整體控制。經(jīng)驗證,系統(tǒng)安裝方便、工作穩(wěn)定、各部分銜接良好,滿足控制要求。此外,系統(tǒng)還易于擴展,具有良好的通用性和一定的可移植性,稍作修改可應(yīng)用于其他控制領(lǐng)域。
[1] 黃曉霞.無線傳感器網(wǎng)絡(luò)在綠色照明系統(tǒng)中的應(yīng)用[D].同濟大學(xué),2007.
[2] 顧娜.基于CAN 總線的智能照明控制系統(tǒng)的研究與設(shè)計[D].江蘇大學(xué),2007.
[3] WU D F ,ZHAO H W ,DU H Y ,QΙ Y M.Research and Design of wireless transmission system based on nRF905[C].2010 CMCE: 316-319
[4] 余向陽.一種無線傳感器網(wǎng)絡(luò)自組網(wǎng)協(xié)議的研究與實現(xiàn)[D].合肥工業(yè)大學(xué),2007.
[5] 葉超邦.OPC 數(shù)據(jù)訪問3.0 服務(wù)器的開發(fā)與研究[D].華北電力大學(xué),2006.
[6] 陸會明,朱耀春.控制裝置標(biāo)準(zhǔn)化通信—OPC 服務(wù)器開發(fā)設(shè)計與應(yīng)用[M].北京:機械工業(yè)出版社,2010:21-42.