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