簡玉梅,高 飛,阮麟杰(上海工程技術大學電子電氣工程學院,上海201620)
C#和LabVIEW混合編程在水產(chǎn)養(yǎng)殖溶解氧監(jiān)控中的應用*
簡玉梅,高飛,阮麟杰
(上海工程技術大學電子電氣工程學院,上海201620)
水產(chǎn)養(yǎng)殖過程中,為了實現(xiàn)溶解氧的實時監(jiān)測和及時報警,提出一種C#和LabVIEW混合編程的溶解氧監(jiān)測控制系統(tǒng)。LabVIEW負責數(shù)據(jù)采集,C#上位機程序通過調用LabVIEW生成的DLL,用戶通過C#程序給LabVIEW發(fā)送采集命令,當LabVIEW接收到用戶的命令后進行數(shù)據(jù)采集。系統(tǒng)的主要特點是在上位機上根據(jù)養(yǎng)殖水產(chǎn)品的養(yǎng)殖時段,動態(tài)調用溶解氧的預測算法,實時傳遞采集指令給各個Lab-VIEW子程序,將數(shù)據(jù)采集和數(shù)據(jù)分析處理分開,減少由于LabVIEW的串口輪詢通信方式帶來的CPU使用率。系統(tǒng)能夠在當溶解氧超過設定的報警值時及時報警,確保養(yǎng)殖水環(huán)境參數(shù)正常。
養(yǎng)殖監(jiān)測;溶解氧報警;LabVIEW;虛擬儀器;混合編程
溶解氧是水產(chǎn)養(yǎng)殖過程中的重要監(jiān)測參數(shù),溫度的高低會直接影響溶解氧的多少,進而影響水產(chǎn)品的生長,實時控制養(yǎng)殖環(huán)境的溶解氧能有效地提高水產(chǎn)品的產(chǎn)量[1~3]。如何將新的技術引入水產(chǎn)養(yǎng)殖監(jiān)測系統(tǒng),設計出更好的溶解氧監(jiān)測系統(tǒng)是其中的一個研究熱點。
目前,溫度作為影響溶解氧的一大主要因素,學者們創(chuàng)建了各種基于虛擬儀器的溫度監(jiān)測系統(tǒng)[4~8]。但由于Lab-VIEW在串口通信上只能實現(xiàn)輪詢方式的數(shù)據(jù)收發(fā),無法實現(xiàn)中斷方式的數(shù)據(jù)收發(fā),由于輪詢會一直占用CPU資源,使得程序效率低,這對于串口數(shù)少的應用程序,可以滿足需求。但是如果系統(tǒng)中串口數(shù)很多,比如:在水產(chǎn)養(yǎng)殖過程中需要采集除溫度之外的,溶解氧、氨氮、壓力、鹽度等參數(shù),當串口數(shù)達到一定限度的時候LabVIEW的串口通信VISA實現(xiàn)起來就比較困難。再者,LabVIEW對于數(shù)據(jù)的分析處理能力有限,處理能力不如C#程序。
本文提出了將C#和LabVIEW混合編程,取兩者的優(yōu)點[9~11],創(chuàng)建一個控制系統(tǒng)用于水產(chǎn)養(yǎng)殖過程中的溶解氧控制。
本文提出一種C#和LabVIEW混合編程的溶解氧監(jiān)測系統(tǒng)。該系統(tǒng)在LabVIEW上實現(xiàn)數(shù)據(jù)的采集和存儲,在C#中調用LabVIEW程序完成對數(shù)據(jù)的后期處理和反應操作。整個系統(tǒng)的邏輯圖如圖1所示。

圖1 系統(tǒng)邏輯圖Fig 1 Logic diagram of system
系統(tǒng)分為兩部分,C#上編寫的上位機程序,LabVIEW上編寫的各個水質參數(shù)采集模塊。上位機根據(jù)需要發(fā)送控制命令給LabVIEW程序的接口,讓各個LabVIEW程序模塊完成數(shù)據(jù)的采集工作,上位機在根據(jù)溶解氧預測控制算法求解出溶解氧預測值,進而控制養(yǎng)殖環(huán)境。
本文主要介紹LabVIEW端的溫度采集模塊。溫度采集板塊程序架構圖2所示。

圖2 LabVIEW端程序架構Fig 2 Program architecture of LabVIEW
系統(tǒng)運行原理:在LabVIEW端,將溫度值用電壓信號表示,電壓信號經(jīng)過變送器放大后傳輸給A/D轉換器,A/D轉換器將轉換后的數(shù)字信號傳遞到PC,PC的溫度采集程序將此數(shù)字信號接收并交給數(shù)據(jù)處理程序并將其存入數(shù)據(jù)庫。在C#端,主要實現(xiàn)串口通信,用戶在控制界面提前錄入當前的養(yǎng)殖時間段,將數(shù)據(jù)采集開始命令發(fā)送給Lab-VIEW程序,實時顯示預測的溶解氧值,并發(fā)出聲音預警提醒。同時將溶解氧值的輸出作為增氧機轉速調節(jié)器的輸入,當溶解氧值高時,降低增氧機轉速;反之則相反。
2.1數(shù)據(jù)采集卡的選擇
本文著重針對溫度的采集過程進行討論,其他參數(shù)的采集思路一樣。本文選用NI公司的NIPCI 6010數(shù)據(jù)采集卡進行溫度的采集工作。
2.2溫度傳感器的選擇
考慮到水產(chǎn)養(yǎng)殖過程中常用水的溫度范圍為0~50℃,本次選用Pt100型熱電阻傳感器和SBWZ—2480D導軌式溫度變送器。LabVIEW中顯示的是電壓值,為了使觀測者能更直觀地測量溫度,通過實驗建立電壓和溫度之間的對應關系,通過測得的實驗數(shù)據(jù),經(jīng)過Matlab線性擬合得到溫度和電壓值間關系為

式中x為實際采集到的溫度,y為轉換后的對應電壓值。
3.1LabVIEW端程序總體設計
LabVIEW端程序主要實現(xiàn)如下功能:
1)串口通信:通過串口通信接收溫度監(jiān)測裝置發(fā)送的溫度測量值;
2)溫度超限報警:當溫度測量值大于報警溫度時,點亮報警LED燈;
3)將采集的溫度值存儲在Access數(shù)據(jù)庫中,供用戶隨時調用。
程序的執(zhí)行采用變量輪詢的方式,程序流程圖如圖3所示。

圖3 LabVIEW端程序流程圖Fig 3 Flow chart of LabVIEW
首先對串口資源進行設置,設置內容包括波特率,串口設置等。設置好串口信息,溫度檢測系統(tǒng)等待接收從上位機發(fā)送來的采集信號命令,所有采集到的溫度將實時存儲到數(shù)據(jù)庫中。
3.2LabVIEW通信操作
LabVIEW上位機程序采集到溫度數(shù)據(jù)后,通過式(1)轉換為電壓值,采集到的實時數(shù)據(jù)與設定值進行比較,當超過設定值時,控制面板上的指示燈亮。溫度報警程序如圖4所示。

圖4 溫度報警程序Fig 4 Temperature alarm procedures
LabVIEW程序可以在用戶需要的任何時間段內,根據(jù)用戶指令進行數(shù)據(jù)的采集工作,系統(tǒng)中將采集溫度,溶解氧,鹽度等不同的采集數(shù)據(jù)任務分成多LabVIEW程序,上位機需要那個程序就調用對應的LabVIEW程序。
1)創(chuàng)建LabVIEW程序
在LabVIEW中新建項目,新建VI,創(chuàng)建溫度采集的VI程序,其中,C#端發(fā)送來的控制命令作為LabVIEW程序的輸入端,LabVIEW程序輸出端為增氧機控制命令。
2)生成.NET互動操作程序集
將LabVIEW程序生成DLL,點擊程序生成規(guī)范右鍵新建.Net互動操作程序集。生成之后進行DLL設置,其中主要需要設置好DLL的輸入端和輸出端。到此 Lab-VIEW端的程序完成。
3)C#調用LabVIEW程序
創(chuàng)建C#程序,將剛剛生成的DLL添加到C#的引用中。添加進來后可以通過雙擊引用,查看其中的方法。需要注意:在LabVIEW中有輸入和輸出,則在C#程序中需要對應存在這兩個變量。
在生成的過程中定義下DLL的輸入和輸出接口,打開VS程序,新建項目,在程序中設置一個觸發(fā)LabVIEW程序啟動的標示位,供用戶發(fā)送命令。添加生成的DLL,在C#中即可調用LabVIEW程序,當需要采集養(yǎng)殖環(huán)境中的參數(shù)值時,C#程序調用對應的LabVIEW程序。
對系統(tǒng)進行了功能測試,如圖5。

圖5 溶解氧測試結果Fig 5 Test result of DO
如圖5所示,當前養(yǎng)殖時間段為養(yǎng)殖初期,此時后臺會調用南美白對蝦養(yǎng)殖初期的溶解氧預測公式(不同時間段內的溶解氧預測公式不同在于其他水質參數(shù)和溶解氧之間的權重值不一樣)計算出當前的預測溶解養(yǎng)殖,當溶解氧值超過閾值時,系統(tǒng)進行預警處理(發(fā)生預警聲音,預警聲音的處理使用C#中的System Media SoundPlayer來實現(xiàn))。
將設計的C#和LabVIEW混合編程的系統(tǒng)與沒有使用LabVIEW混合編程的水產(chǎn)養(yǎng)殖溫度采集系統(tǒng)進行性能比較,結果如表1所示。

表1 性能測試比較結果Tab 1 Results of performance test comparison
本文的系統(tǒng)相較傳統(tǒng)溶解氧預測算法,主要優(yōu)勢在于將溶解氧的采集和處理分開,使用LabVIEW進行數(shù)據(jù)采集,數(shù)據(jù)的處理則交給上位機,對于純粹的LabVIEW程序而言,減少了其由于輪詢方式帶來的CPU使用率。
本文提出一種C#和LabVIEW混合編程的溫度監(jiān)測系統(tǒng)。該系統(tǒng)的架構由數(shù)據(jù)采集卡和LabVIEW程序,C#上位機程序組成。系統(tǒng)的主要特點是針對LabVIEW的大數(shù)據(jù)量收發(fā)過程CPU占用率問題,通過C#上位機調用LabVIEW生成的DLL,根據(jù)用戶的需求,觸發(fā)LabVIEW采集實時數(shù)據(jù),使得整個系統(tǒng)在數(shù)據(jù)采集和分析處理方面進行了分層處理,減少系統(tǒng)CPU的使用率,當上位機中用戶提出需求時才啟動LabVIEW中程序的運行,減少由于LabVIEW程序輪詢式的CPU開銷。系統(tǒng)能夠在實際使用過程中,當溫度超過設定的報警溫度時,可以通過LabVIEW上的程序進行實時報警。當預測出的溶解氧值出現(xiàn)異常時,可以通過上位機進行預警處理,減少了由于人為疏忽導致的不必要損失。同時,將數(shù)據(jù)存儲在數(shù)據(jù)庫中,提供用戶查詢,方便用戶隨時查看以往的溫度數(shù)據(jù)。
[1]馬從國,趙德安,王建國,等.基于無線傳感器網(wǎng)絡的水產(chǎn)養(yǎng)殖池塘溶解氧智能監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學報,2015,31(7):193-200.
[2]譚洪新,劉文暢,孫大川,等.閉合循環(huán)水產(chǎn)養(yǎng)殖系統(tǒng)中氣—液混合裝置的增氧效果[J].農(nóng)業(yè)工程學報,2014,30(6):147-153.
[3]黃建清,王衛(wèi)星,姜晟,等.基于無線傳感器網(wǎng)絡的水產(chǎn)養(yǎng)殖水質監(jiān)測系統(tǒng)開發(fā)與試驗[J].農(nóng)業(yè)工程學報,2013,29(4):183-190.
[4]史延東,楊萍,寧飛,等.基于LabVIEW的多路溫度流量監(jiān)測系統(tǒng)設計[J].測控技術,2013,32(8):29-31,35.
[5] 孫筱,陳梅,張燕.基于LabVIEW的擠塑成型過程溫度控制系統(tǒng)[J].儀表技術與傳感器,2013(1):50-51,101.
[6]李偉剛,盧文忠,杜冬菊.基于LabVIEW的發(fā)射筒瞬態(tài)溫度測試系統(tǒng)設計[J].計算機測量與控制,2013,21(6):1556-1557,1561.
[7]吳卓葵,許勝棋.基于LabVIEW的多點報警溫度監(jiān)測系統(tǒng)設計[J].制造業(yè)自動化,2014,36(1):139-142.
[8] 王承宇,陳宇晨,候昀.基于Web和LabVIEW的斷路器遠程監(jiān)控系統(tǒng)[J].化工自動化及儀表,2014,41(6):632-635.
[9]賴健明,劉昌文,楊延相,等.基于LabVIEW的高效氧傳感器檢測系統(tǒng)開發(fā)[J].傳感器與微系統(tǒng),2014,33(8):105-108.
[10]李俊,陳湘波.LabVIEW與C語言的混合編程[J].自動化與儀器儀表,2001,5(5):62-65.
[11]張振頂,黎華,李茂東,等.LabVIEW和C語言混合編程在工業(yè)鍋爐熱效率計算中的應用[J].能源與環(huán)境,2012(5):24-25,28.
Application of C#and LabVIEW in dissolved oxygen monitoring in aquaculture*
JIAN Yu-mei,GAO Fei,RUAN Lin-jie
(School of Electronic and Electrical Engineering,Shanghai University of Engineering Science,Shanghai 201620,China)
In order to realize real-time monitoring and timely alarm of dissolved oxygen(DO)in aquaculture,put forward a DO monitoring system based on C#and LabVIEW,LabVIEW is mainly responsible for data collection,C#call DLL generated by LabVIEW,users send acquisition command to LabVIEW through C#program,and after LabVIEW receive the user's command,data acquisition is carried out.The main feature of this system is according to culture period of aquatic products,this system dynamic calls DO prediction algorithm on upper PC,real-time transmit acquisition instruction to various LabVIEW subroutines,separates data acquisition and data analysis and processing,reduce CPU usage rate brought by LabVIEW serial polling communication.The system can alarm in time when the DO is over the set,which can ensure aquaculture water environment parameters is normal.
breeding monitoring;dissolved oxygen(DO)alarm;LabVIEW;virtual instrument(VI);mixed programming
TP273
A
1000—9787(2016)06—0155—03
10.13873/J.1000—9787(2016)06—0155—03
2015—09—16
上海市教育委員會科研創(chuàng)新項目重點項目(14ZZ156)
簡玉梅(1987-),女,四川德陽人,碩士研究生,實驗室助教,主要研究方向為無線傳感器網(wǎng)絡,工業(yè)自動化控制。