摘 要: 研究了基于虛擬儀器技術Measurement Studio的太陽能LED路燈監控系統。采用GPRS與CAN總線的兩級式網絡,實時采集參數,并將數據傳輸給上位機監控系統,用于繪制參數曲線并存儲、分析數據。給出了總體網絡結構、單個節點電路、通信接口電路、調理電路以及軟件系統設計流程圖,同時還給出了基于多線程技術的軟件性能優化方案。
關鍵詞: 虛擬儀器技術;Measurement Studio;太陽能路燈監控;多線程;GPRS
太陽能路燈系統配置得不理想,將影響太陽能LED路燈的推廣。而其光電池的輸出功率和蓄電池的容量及負載功率等搭配,僅靠理論計算是不夠的。只有采取自動跟蹤監測的系統才能確定太陽能電池在不同季節、不同時間、不同方位的最大功率輸出,以此為依據確定其蓄電池和負載才可靠。傳統的太陽能LED路燈監控系統采用單一的通信方式,通信方式不夠靈活。為此,本文設計了基于Measurement Studio的太陽能LED路燈自動跟蹤監控系統。該系統不僅能實時顯示太陽能路燈當前環境下的系統參數數值和參數變化曲線,還能利用GPRS和CAN總線構成的區域網絡對照明節點進行集中管理。
Measurement Studio是美國NI(National Instrument)公司推出的虛擬儀器軟件。現有的虛擬儀器開發平臺主要有基于G語言開發平臺的LabVIEW(文獻中關于虛擬儀器介紹的也多是基于LabVIEW平臺的),然而LabVIEW作為一種圖形化開發語言,缺乏開發的靈活性。而集成式C語言開發環境Measurement Studio,分別為ANSIC、Visual Basic、Visual C++用戶提供了建立自動化測試系統以及實驗室應用所需的各種測試、測量工具包[1-2]。本文充分利用C語言的邏輯運算和Measurement Studio的圖形化顯示的優點,運用Measurement Studio和Vsual C++搭建了太陽能LED路燈監控系統。
1 系統組成
1.1系統網絡結構
系統采用GPRS和CAN總線結合的通信模式,這種模式不僅能夠穩定完成底層終端數據的傳輸,更能高效地實現與上位機之間的信息通信。同時也避免了單一節點采用GPRS模塊所造成的資源浪費[3]。底層局域網結構如圖1所示,太陽能控制終端通過CAN通信形成了一個初級局域通信網。而每個局域網中都有一個帶GPRS的終端節點,它是上位機與底層終端之間的數據傳輸的紐帶,其通過無線網絡接收用戶發送的控制和查詢命令,并通過CAN網絡將其轉發給相應的終端節點。而終端采集的數據信息也都通過它轉發給上位機軟件。
MC52i為西門子公司的產品,它屬于工業級別的GPRS模塊,進行基于TCP/IP的數據傳輸,實現IP地址設定、照明信息的無線傳輸以及報警通知等。MC52i通過串口與單片機通信,實現信息的交互。
2.1.2 CAN通信接口設計
STM32的內部集成了CAN控制器,其內部的bxCAN模塊支持CAN協議2.0A和2.0B,位通信比特率可達1 Mb/s,支持時間觸發通信功能。其中包含3個發送郵箱,3級深度的2個接收FIFO,14個位寬可變的過濾器組。報文的發送和接收由CAN內核自動實現。其波特率公式計算如下:
2.2 Measurement Studio設計
2.2.1 軟件系統設計
軟件系統采用模塊化設計,包括系統登錄模塊、操作員管理模塊、系統基本配置模塊、通信設置模塊、參數數值顯示模塊、參數曲線繪制模塊、幫助模塊。系統登錄模塊是為了保證操作員的安全登錄和系統數據的安全;操作員管理模塊用于增加用戶并設定密碼,或者刪除非法用戶;系統基本配置模塊記錄路燈節點的配置信息;參數顯示模塊可以提供某個路燈系統參數查詢;參數曲線繪制模塊可以更加形象地實時繪制參數曲線。
2.2.3 多線程的性能優化
多線程編程技術避免了某項任務長時間占用CPU時間,提高了程序的并發處理數據的能力。本文的應用軟件優化設計中,在進入主界面之前,創建了管理線程,用于監聽線程和工作線程的創建與管理。這樣,不僅有助于提高數據的并發處理能力,也使得程序分工更加明確,調理更加清晰。監聽線程主要負責等待GPRS的連接并為連接的GPRS開辟相應的空間。工作線程主要負責與GPRS通信過程中的數據處理,并將其提交給相應的客戶端界面。而管理線程會在軟件退出時通知監聽線程和工作線程停止工作,并釋放相應的資源。此外,通過函數GetSystemInfo(&sysInfo)獲得處理器的信息,而創建工作線程的個數也會隨著處理器的個數的變化作出相應的調整,這樣也提高了軟件的收縮性。多線程創建流程如圖8所示[5]。
2.2.4 圖形控件完成參數曲線的繪制
CWGraph控件提供了豐富的屬性、方法和事件。在顯示數據時比較常用到的方法有:ClearData(清空數據),清除所有CWGraph控件上繪出的采集曲線與標尺線;SetYDataAppend:每次調用該函數可將一個點追加到曲線末尾;SetTimer:設置定時器編號和定時時間,采集數據采用定時中斷,間隔固定時間采集信號。
3 實驗結果
通過此系統,實現了Measurement Studio與網絡內各控制主板的通信,此軟件系統的通信方式設定模塊可以設定通信信息,連接成功后,在參數顯示界面可以實時查詢網絡內某個照明節點的數值參數。
本遠程數據采集系統已應用于太陽能LED路燈系統中,并取得了理想的結果。通過GPRS和CAN總線實現了Measurement Studio監控系統與網絡內STM32控制主板的通信。
在下位機芯片選取上,STM32作為主控芯片,足夠實現太陽能LED路燈的控制需求,并且成本上較DSP大為降低。CAN總線組成的局域網,通信可靠,能夠滿足區域內路燈的網絡化控制要求。隨著太陽能LED路燈的逐步推廣,結合GPRS組成兩級式局域網絡,可以監控更大范圍的太陽能LED路燈,這也是今后的發展方向。
實踐證明,基于Measurement Studio的監控平臺具有以下特點:操作簡單,界面友好,使用者可以直觀地觀察照明節點的參數數值和曲線,同時可以調節照明節點的PWM占空比和照明節點亮滅時間等;可移植性強,只要更改參數就可以應用在其他分布式系統中;使用起來靈活,編譯生成.exe文件,可以方便地安裝在沒有安裝Measurement Studio的機器上;系統效率高,加入多線程技術,可大大提高系統效率。
參考文獻
[1] 陳振興,周建華,陳勇.基于Measurement Studio的光電信號數據采集系統[J].計算機應用,2004(2):66-68.
[2] 黃豪彩,楊燦軍,陳道華,等.基于LabVIEW的深海氣密采水器測控系統[J].儀器儀表學報,2011,32(1):40-45.
[3] 王偉,董超俊.一種新的基于CAN和GPRS網絡的路燈組網方法研究[J].工業控制計算機,2012,25(3):71-72.
[4] 陳志旺.STM32嵌入式微控制器快速上手[M].北京:電子工業出版社,2012:180-186.
[5] 楊東升,王高峰.多線程技術在虛擬儀器開發軟件LabWindows/CVI中的實現[J].電測與儀表,2005,43(3):39-42.
[6] 夏鳳仙,陳小平.基于虛擬儀器的交變電流源質量分析儀研制[J].電子測量與儀器學報,2007,21(3):113-117.