郭珍珍,郭前崗,周西峰
(南京郵電大學 自動化學院,江蘇 南京 210046)
太陽能路燈系統配置得不理想,將影響太陽能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路燈監控系統。
系統采用GPRS和CAN總線結合的通信模式,這種模式不僅能夠穩定完成底層終端數據的傳輸,更能高效地實現與上位機之間的信息通信。同時也避免了單一節點采用GPRS模塊所造成的資源浪費[3]。底層局域網結構如圖1所示,太陽能控制終端通過CAN通信形成了一個初級局域通信網。而每個局域網中都有一個帶GPRS的終端節點,它是上位機與底層終端之間的數據傳輸的紐帶,其通過無線網絡接收用戶發送的控制和查詢命令,并通過CAN網絡將其轉發給相應的終端節點。而終端采集的數據信息也都通過它轉發給上位機軟件。

圖1 系統網絡結構圖
單個節點結構圖如圖2所示。其中,太陽能LED路燈系統的相關參數,包括太陽能電池電壓和電流、蓄電池端電壓及充電電流等直流信號,經過調理電路對信號進行縮小倍數以滿足STM32的A/D采集通道的輸入電平要求;STM32產生不同占空比的PWM波控制充放電電路,實現蓄電池的充放電控制。STM32系統主要功能包括A/D采樣、PWM波占空比控制以及與PC進行遠程通信。PC顯示下位機采集的參數的數值、繪制參數曲線,并存儲、分析數據。此外,GPRS無線通信模塊屬于主節點特有,其他模塊無主次節點之分。

圖2 單節點結構圖
2.1.1 GPRS網絡通信的實現
GPRS內置TCP/IP協議,可以根據配置進行多達5種網絡通信協議的數據傳輸,如 TCP、FTP、HTTP、SMTP以及POP3等。這里選用TCP協議進行可靠的數據傳輸。
GPRS通信模塊主要由MC52i核心控制芯片、RS232串口通信模塊、SIM卡模塊以及電源四部分組成,其框圖如圖3所示。

圖3 GPRS模塊結構圖
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內核自動實現。其波特率公式計算如下:


CAN驅動電路主芯片選用TJA1050,它是CAN控制器和物理總線之間的接口,是一種標準的CAN收發器。輸入級可與STM32的3.3 V輸出電壓兼容,至少可以連接110個節點。
2.1.3 采樣調理電路設計
本文利用LM358組成一個電壓跟隨器,采用電阻分壓法將待測電壓縮小倍數,轉換為STM32的模/數轉換器可以處理的采樣信號范圍(即0~3.3 V)。電壓調理電路如圖4所示,其輸出UADC1與輸入Ui的關系表達式為:


圖4 電壓調理電路
電流采樣電路如圖5所示,采用采樣電阻法,由LM358構成一個差分放大器,它的兩輸入電壓差為采樣電阻上的電壓時,則差分放大器輸出UADC1與UR關系為:

2.2.1 軟件系統設計
軟件系統采用模塊化設計,包括系統登錄模塊、操作員管理模塊、系統基本配置模塊、通信設置模塊、參數數值顯示模塊、參數曲線繪制模塊、幫助模塊。系統登錄模塊是為了保證操作員的安全登錄和系統數據的安全;操作員管理模塊用于增加用戶并設定密碼,或者刪除非法用戶;系統基本配置模塊記錄路燈節點的配置信息;參數顯示模塊可以提供某個路燈系統參數查詢;參數曲線繪制模塊可以更加形象地實時繪制參數曲線。

圖5 電流采樣電路
軟件系統設計流程圖如圖6所示,其中 Winsock初始化是為socket網絡通信做準備,而初始化OLE/COM庫是在調用ADO訪問數據庫之前必須要做的工作。
2.2.2 通信協議的設計
系統通信方式主要分為上位機軟件的socket網絡通信、底層GPRS模塊封裝了AT指令的串口通信以及CAN通信,在這三種通信方式中,CAN通信發送的數據長度有一定的限制。在CAN傳輸的一幀數據幀中,其數據域的長度最長為8 B。為了融合CAN通信以及網絡通信,通信協議的長度設為8 B。具體協議格式如圖7所示。

圖6 軟件設計流程圖

圖7 協議格式
2.2.3 多線程的性能優化
多線程編程技術避免了某項任務長時間占用CPU時間,提高了程序的并發處理數據的能力。本文的應用軟件優化設計中,在進入主界面之前,創建了管理線程,用于監聽線程和工作線程的創建與管理。這樣,不僅有助于提高數據的并發處理能力,也使得程序分工更加明確,調理更加清晰。監聽線程主要負責等待GPRS的連接并為連接的GPRS開辟相應的空間。工作線程主要負責與GPRS通信過程中的數據處理,并將其提交給相應的客戶端界面。而管理線程會在軟件退出時通知監聽線程和工作線程停止工作,并釋放相應的資源。此外,通過函數 GetSystemInfo(&sysInfo)獲得處理器的信息,而創建工作線程的個數也會隨著處理器的個數的變化作出相應的調整,這樣也提高了軟件的收縮性。多線程創建流程如圖 8所示[5]。

圖8 多線程的創建
2.2.4 圖形控件完成參數曲線的繪制
CWGraph控件提供了豐富的屬性、方法和事件。在顯示數據時比較常用到的方法有:ClearData(清空數據),清除所有CWGraph控件上繪出的采集曲線與標尺線;SetYDataAppend:每次調用該函數可將一個點追加到曲線末尾;SetTimer:設置定時器編號和定時時間,采集數據采用定時中斷,間隔固定時間采集信號。
通過此系統,實現了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.