劉 璐 周靖林
(1.北京化工大學信息科學與技術學院,北京 100029; 2.中國石化江西石油分公司,南昌 330046 )
在我國照明耗電占年發電量的12%左右[1]。目前,智能照明控制系統在美國使用率超過70%,歐洲為 40%~50%,日韓占 15%~20%,而中國低于1‰[2]。可見,智能照明控制在我國存在極大發展潛力及重要現實意義。本文將無線傳感器網絡、OPC通信與照明控制技術相結合,設計一套智能照明控制系統,實現燈具自動控制,提高系統管理水平。
本文的智能照明控制系統由無線傳感器網絡、OPC 服務器和用戶界面3 部分組成。
底層的無線網絡采用星型結構,包括一個基站和多個從站。其中,從站與被控LED 燈連接并將燈的狀態信息傳送給基站。基站通過RS232 與PC 機相連,將接受的控制命令下達給從站。系統使用ATmega16L 單片機和nRF905 無線射頻模塊構成工作于433MHz 的無線網絡節點,兩者通過SPΙ 串行口相連。
上位機中具有專門開發的OPC DA 服務器。OPC 服務器與組態軟件中開發的用戶界面之間采用OPC 技術通信,與無線網絡中的基站之間采用RS232 串行通信。OPC 服務器負責將用戶下達的控制命令傳送給無線網絡中的基站,并將基站傳輸的設備狀態上傳至用戶界面顯示。

在組態軟件中開發的用戶界面能實時準確的顯示設備狀態,并可實現對LED 燈的組合控制、溫度控制、PWM 控制、定時控制及操作記錄等功能。

圖2 系統框圖
無線傳感器網絡是由一些低功耗、低成本、體積小的傳感器節點,以無線通訊方式組成的網絡,融合傳感器技術、信息處理技術、嵌入式技術和網絡通信技術,實現信息的采集、處理、傳輸及應用[4],具有施工成本低、系統擴展性好、運行維護易等優點。本系統的無線網絡結構設計如下:
1)網絡拓撲
系統無線網絡采用星型結構,有基站和從站兩類節點。基站與各從站間進行雙向通信,從站互不通信。網絡中的每個節點都配有ΙD 地址,有接收、發送兩種狀態,默認處于接收狀態。
2)MAC 層協議
為避免多個從站同時向基站發送信息導致信道沖突,且照明系統對控制時延性要求不高,所以網絡MAC 層采用非堅持CSMA/CA 協議。通信前,節點先利用nRF905 的載波檢測引腳CD 監聽信道是否空閑,若空氣中有同頻信號則CD 自動置高。若信道忙碌則節點隨機延遲一段時間后再重新監聽。信道空閑時,節點并不立即發送,而是采取一定的退避機制,將信道沖突的概率降至最小。因為當某從站與基站通信完畢的瞬間,可能有多個要發送數據的從站同時監聽到信道空閑,此時信道沖突的可能性最大,所以節點隨機退避一段時間后再進行發送。這里采用二進制指數退避算法BEB,設爭用期(即節點發出數據至接收到信道沖突的時間)為2t,各站重傳次數為N,從整數集合[0,1,…,(2N-1)]中隨機取數,記為R。節點重傳產生的時延D為2t的R倍,即D=R×2t。站點在發送前若檢測到信道空閑,就立即啟動退避計數器,只要信道空閑,退避計數器就遞減,若退避過程中檢測到信道被占用則暫停退避計數器并保持計數器值不變,當信道重新空閑時在原有計數值基礎上再次啟動退避計數器,當計數值減到零時節點發送數據。

圖3 非堅持CSMA/CA 流程圖
3)沖突避免策略
CSMA/CA 協議只能解決發送端的數據沖突問題,但接收端仍存在數據沖突的可能,即“隱藏節點”問題。因此系統引入RTS/CTS/DATA/ACK 握手機制。具體過程如下:
(1)從站向基站發送前先通過競爭方式獲得信道使用權,再向基站發送請求連接幀RTS(Request To Send)。
(2)基站收到從站的RTS 幀后,向從站發送連接確認幀CTS(Clear To Send),建立兩者之間的通信連接。
(3)從站收到基站的CTS 幀后,向基站發送數據幀DATA,若沒有收到CTS 幀,則重新發送RTS 幀。
(4)基站收到從站的DATA 幀后,向從站發送數據確認幀ACK。
(5)從站收到基站的ACK 幀后,整個通信過程結束,若沒有收到,則重新發送DATA。
4)差錯控制
在差錯控制方面,系統采取數據重發機制與nRF905自身CRC校驗相結合的方式。從站在發送RTS或DATA 后,若在一定時間內沒有收到基站的CTS 或ACK,則重新發送傳輸失敗的幀,直到接收到回復或重發次數達到設定值。另外,nRF905 提供對CRC 校驗的硬件支持,通過設置 RF 配置寄存器中的CRC_MODE 值,采取8 位CRC 校驗。當接收的數據CRC 校驗出錯時,nRF905 會自動丟棄錯誤幀。
5)數據傳輸
系統有兩種數據傳輸模式:點播和廣播。點播是指基站向指定從站發送命令或某一從站向基站傳輸數據,是點對點通信。廣播是指基站向所有從站發送命令,此時目的地址為統一值,是點對多點通信。
6)通信幀
系統有兩種幀類型,分別是控制幀RTS、CTS、ACK 和數據幀DATA。其中,前導碼表明幀的開始;源地址為發送的設備地址;目的地址為接收的設備地址;幀類別說明此幀的功能;有效數據是傳輸的具體內容;結束碼表明此幀的結束。
控制幀結構:

數據幀結構:

OPC 技術是用于過程控制的對象鏈接與嵌入技術,其以COM/DCOM/COM+技術為基礎,采用服務器/客戶端模式[5]。本系統針對智能照明控制系統的需求,開發專門的OPC DA 服務器,設計如下:

1)OPC 對象與接口
系統編寫實現OPC DA 服務器的定制接口,采用E 形式,以OPC3.0 規范為標準,向下兼容OPC2.0版。系統的OPC 對象與接口包括OPC Server、OPC Group 和OPC Ιtem 三種對象。其中,OPC Server 和OPC Group 為標準COM 對象,服務器對象不支持聚合,支持連接點機制。組對象支持聚合、連接點機制。項對象不是標準的COM 對象,通過一個類進行描述,在類中定義項對象的屬性和操作方法。系統OPC Server 對象實現的接口包括:ΙOPCServer、ΙOPCommon 、ΙOPCBrowseServerAddressSpace 、ΙOPCΙtemΙO、ΙOPCΙtemProperties 及ΙOPCBrowse。OPC Group 對象實現的接口包括:ΙOPCΙtemMgt、ΙOPCΙtemDeadbandMgt 、ΙOPCGroupStateMgt2 、ΙOPCGroupStateMgt、ΙOPCSyncΙO、ΙOPCSyncΙO2、ΙOPCAsyncΙO、ΙOPCAsyncΙO2 及ΙOPCAsyncΙO3。
2)服務器地址空間
系統的服務器地址空間由OPC 服務器內所有可讀寫的數據項組成,根據實際情況預先設計,采用樹型結構。整個服務器地址空間使用一個自定義的結構體數組進行存儲,其結構體成員包括:結點唯一的ΙD 號、結點的名字、父結點的ΙD 號、左子女結點的ΙD 號和右兄弟結點的ΙD 號。最后,系統通過定義一個類對服務器地址空間進行管理。
3)硬件數據采集部分
OPC DA 服務器通過RS232 串行口與無線網絡中的基站連接。本系統將與串口通信有關的APΙ 函數封裝在一個類中進行管理,并定義一個屬于此類的全局變量。通過對此全局變量的讀操作,將無線網絡基站上傳的設備信息寫入服務器地址空間及相應的OPC Ιtem 中。當OPC 服務器接收到控制命令后,會自動調用串口全局變量的寫函數,將指令下發給無線網絡中的基站,并由基站將指令傳輸給具體從站。
4)線程設計
系統的OPC 服務器包括一個主線程,兩個輔助線程。主線程由服務器啟動時自動創建,用于初始化COM 庫,建立消息循環和處理消息。第一個輔助線程用于處理服務器數據更新及異步事務,線程會周期性更新每個OPC Server 對象中所有組對象的數據項,同時執行異步操作事務,并將操作結果回調給客戶。第二個輔助線程用于RS232 串口監測,當串口接收到數據后,會以消息方式通知主線程,激發消息處理函數對數據進行處理,最后將處理好的數據寫入服務器地址空間。不同線程間采用臨界區方式進行同步。

圖7 OPC DA 服務器更新及事務處理流程圖
5)數據訪問
本系統的OPC 服務器支持同步和異步兩種數據訪問方式,包括提供 6 種讀數據方式,其中ΙOPCSyncΙO2::ReadMaxAge、ΙOPCSyncΙO::Read 和ΙOPCΙtemΙO::Read 用于同步讀;ΙOPCAsyncΙO2:: Read、ΙOPCAsyncΙO3::ReadMaxAge 用于異步讀;而當數據改變或異步刷新被調用時,采用ΙOPCCallback::OnDataChange。本文由于無線網絡中的基站會自動將設備最新狀態上傳至OPC 服務器中的服務器地址空間,因此所有讀操作都直接讀取OPC 服務器中的內存數據。OPC 服務器具有五種寫數據方式,其中同步寫操作包括:ΙOPCSyncΙO:: Write、ΙOPCSyncΙO2::WriteVQT 及 ΙOPCΙtemΙO:: WriteVQT;異 步 寫 操 作 包 括:ΙOPCAsyncΙO3:: WriteVQT、ΙOPCAsyncΙO2::Write。當用戶下達指令時,OPC 服務器通過調用RS232 串口寫函數,將命令下傳給無線網絡中的基站。
本文使用ATmegal6L 和nRF905 構成無線節點模擬組建一個智能照明控制系統,模擬實現LED 燈的組合控制、PWM 控制、定時控制等功能。
系統通過ATmega16L 開發板上的LED 燈模擬被控燈具。溫度控制方面,采用白熾燈與晶閘管BTA12-600 及光耦隔離器MOC3041 相連接模擬被控端。從站的微控制器將實際燈溫度值與設定值進行比較,通過PΙD 算法計算修正PWM 占空比,調整燈的明暗程度。

圖10 模擬智能照明控制系統實物圖
最后,系統利用組態王軟件開發用戶界面。在操作界面上,可實時顯示設備狀態,對LED 燈進行各種控制操作。系統會對各項操作進行歷史記錄,同時可利用組態王的Web 功能使用戶能隨時隨地通過Ιnternet/Ιntranet 實現設備的遠程監控。

圖11 用戶操作界面
試驗平臺的模擬運行結果表明,該智能照明控制系統滿足設計要求,具備良好的可擴展性。
部分程序代碼:
uchar csma_ca(void)//載波檢測和退避機制


本文將無線傳感器網絡、OPC DA 服務器應用于智能照明控制系統中,實現從用戶界面到無線終端的整體控制。經驗證,系統安裝方便、工作穩定、各部分銜接良好,滿足控制要求。此外,系統還易于擴展,具有良好的通用性和一定的可移植性,稍作修改可應用于其他控制領域。
[1] 黃曉霞.無線傳感器網絡在綠色照明系統中的應用[D].同濟大學,2007.
[2] 顧娜.基于CAN 總線的智能照明控制系統的研究與設計[D].江蘇大學,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] 余向陽.一種無線傳感器網絡自組網協議的研究與實現[D].合肥工業大學,2007.
[5] 葉超邦.OPC 數據訪問3.0 服務器的開發與研究[D].華北電力大學,2006.
[6] 陸會明,朱耀春.控制裝置標準化通信—OPC 服務器開發設計與應用[M].北京:機械工業出版社,2010:21-42.