簡(jiǎn)玉梅,高 飛,阮麟杰(上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海201620)
C#和LabVIEW混合編程在水產(chǎn)養(yǎng)殖溶解氧監(jiān)控中的應(yīng)用*
簡(jiǎn)玉梅,高飛,阮麟杰
(上海工程技術(shù)大學(xué)電子電氣工程學(xué)院,上海201620)
水產(chǎn)養(yǎng)殖過(guò)程中,為了實(shí)現(xiàn)溶解氧的實(shí)時(shí)監(jiān)測(cè)和及時(shí)報(bào)警,提出一種C#和LabVIEW混合編程的溶解氧監(jiān)測(cè)控制系統(tǒng)。LabVIEW負(fù)責(zé)數(shù)據(jù)采集,C#上位機(jī)程序通過(guò)調(diào)用LabVIEW生成的DLL,用戶通過(guò)C#程序給LabVIEW發(fā)送采集命令,當(dāng)LabVIEW接收到用戶的命令后進(jìn)行數(shù)據(jù)采集。系統(tǒng)的主要特點(diǎn)是在上位機(jī)上根據(jù)養(yǎng)殖水產(chǎn)品的養(yǎng)殖時(shí)段,動(dòng)態(tài)調(diào)用溶解氧的預(yù)測(cè)算法,實(shí)時(shí)傳遞采集指令給各個(gè)Lab-VIEW子程序,將數(shù)據(jù)采集和數(shù)據(jù)分析處理分開,減少由于LabVIEW的串口輪詢通信方式帶來(lái)的CPU使用率。系統(tǒng)能夠在當(dāng)溶解氧超過(guò)設(shè)定的報(bào)警值時(shí)及時(shí)報(bào)警,確保養(yǎng)殖水環(huán)境參數(shù)正常。
養(yǎng)殖監(jiān)測(cè);溶解氧報(bào)警;LabVIEW;虛擬儀器;混合編程
溶解氧是水產(chǎn)養(yǎng)殖過(guò)程中的重要監(jiān)測(cè)參數(shù),溫度的高低會(huì)直接影響溶解氧的多少,進(jìn)而影響水產(chǎn)品的生長(zhǎng),實(shí)時(shí)控制養(yǎng)殖環(huán)境的溶解氧能有效地提高水產(chǎn)品的產(chǎn)量[1~3]。如何將新的技術(shù)引入水產(chǎn)養(yǎng)殖監(jiān)測(cè)系統(tǒng),設(shè)計(jì)出更好的溶解氧監(jiān)測(cè)系統(tǒng)是其中的一個(gè)研究熱點(diǎn)。
目前,溫度作為影響溶解氧的一大主要因素,學(xué)者們創(chuàng)建了各種基于虛擬儀器的溫度監(jiān)測(cè)系統(tǒng)[4~8]。但由于Lab-VIEW在串口通信上只能實(shí)現(xiàn)輪詢方式的數(shù)據(jù)收發(fā),無(wú)法實(shí)現(xiàn)中斷方式的數(shù)據(jù)收發(fā),由于輪詢會(huì)一直占用CPU資源,使得程序效率低,這對(duì)于串口數(shù)少的應(yīng)用程序,可以滿足需求。但是如果系統(tǒng)中串口數(shù)很多,比如:在水產(chǎn)養(yǎng)殖過(guò)程中需要采集除溫度之外的,溶解氧、氨氮、壓力、鹽度等參數(shù),當(dāng)串口數(shù)達(dá)到一定限度的時(shí)候LabVIEW的串口通信VISA實(shí)現(xiàn)起來(lái)就比較困難。再者,LabVIEW對(duì)于數(shù)據(jù)的分析處理能力有限,處理能力不如C#程序。
本文提出了將C#和LabVIEW混合編程,取兩者的優(yōu)點(diǎn)[9~11],創(chuàng)建一個(gè)控制系統(tǒng)用于水產(chǎn)養(yǎng)殖過(guò)程中的溶解氧控制。
本文提出一種C#和LabVIEW混合編程的溶解氧監(jiān)測(cè)系統(tǒng)。該系統(tǒng)在LabVIEW上實(shí)現(xiàn)數(shù)據(jù)的采集和存儲(chǔ),在C#中調(diào)用LabVIEW程序完成對(duì)數(shù)據(jù)的后期處理和反應(yīng)操作。整個(gè)系統(tǒng)的邏輯圖如圖1所示。
圖1 系統(tǒng)邏輯圖Fig 1 Logic diagram of system
系統(tǒng)分為兩部分,C#上編寫的上位機(jī)程序,LabVIEW上編寫的各個(gè)水質(zhì)參數(shù)采集模塊。上位機(jī)根據(jù)需要發(fā)送控制命令給LabVIEW程序的接口,讓各個(gè)LabVIEW程序模塊完成數(shù)據(jù)的采集工作,上位機(jī)在根據(jù)溶解氧預(yù)測(cè)控制算法求解出溶解氧預(yù)測(cè)值,進(jìn)而控制養(yǎng)殖環(huán)境。
本文主要介紹LabVIEW端的溫度采集模塊。溫度采集板塊程序架構(gòu)圖2所示。
圖2 LabVIEW端程序架構(gòu)Fig 2 Program architecture of LabVIEW
系統(tǒng)運(yùn)行原理:在LabVIEW端,將溫度值用電壓信號(hào)表示,電壓信號(hào)經(jīng)過(guò)變送器放大后傳輸給A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器將轉(zhuǎn)換后的數(shù)字信號(hào)傳遞到PC,PC的溫度采集程序?qū)⒋藬?shù)字信號(hào)接收并交給數(shù)據(jù)處理程序并將其存入數(shù)據(jù)庫(kù)。在C#端,主要實(shí)現(xiàn)串口通信,用戶在控制界面提前錄入當(dāng)前的養(yǎng)殖時(shí)間段,將數(shù)據(jù)采集開始命令發(fā)送給Lab-VIEW程序,實(shí)時(shí)顯示預(yù)測(cè)的溶解氧值,并發(fā)出聲音預(yù)警提醒。同時(shí)將溶解氧值的輸出作為增氧機(jī)轉(zhuǎn)速調(diào)節(jié)器的輸入,當(dāng)溶解氧值高時(shí),降低增氧機(jī)轉(zhuǎn)速;反之則相反。
2.1數(shù)據(jù)采集卡的選擇
本文著重針對(duì)溫度的采集過(guò)程進(jìn)行討論,其他參數(shù)的采集思路一樣。本文選用NI公司的NIPCI 6010數(shù)據(jù)采集卡進(jìn)行溫度的采集工作。
2.2溫度傳感器的選擇
考慮到水產(chǎn)養(yǎng)殖過(guò)程中常用水的溫度范圍為0~50℃,本次選用Pt100型熱電阻傳感器和SBWZ—2480D導(dǎo)軌式溫度變送器。LabVIEW中顯示的是電壓值,為了使觀測(cè)者能更直觀地測(cè)量溫度,通過(guò)實(shí)驗(yàn)建立電壓和溫度之間的對(duì)應(yīng)關(guān)系,通過(guò)測(cè)得的實(shí)驗(yàn)數(shù)據(jù),經(jīng)過(guò)Matlab線性擬合得到溫度和電壓值間關(guān)系為
式中x為實(shí)際采集到的溫度,y為轉(zhuǎn)換后的對(duì)應(yīng)電壓值。
3.1LabVIEW端程序總體設(shè)計(jì)
LabVIEW端程序主要實(shí)現(xiàn)如下功能:
1)串口通信:通過(guò)串口通信接收溫度監(jiān)測(cè)裝置發(fā)送的溫度測(cè)量值;
2)溫度超限報(bào)警:當(dāng)溫度測(cè)量值大于報(bào)警溫度時(shí),點(diǎn)亮報(bào)警LED燈;
3)將采集的溫度值存儲(chǔ)在Access數(shù)據(jù)庫(kù)中,供用戶隨時(shí)調(diào)用。
程序的執(zhí)行采用變量輪詢的方式,程序流程圖如圖3所示。
圖3 LabVIEW端程序流程圖Fig 3 Flow chart of LabVIEW
首先對(duì)串口資源進(jìn)行設(shè)置,設(shè)置內(nèi)容包括波特率,串口設(shè)置等。設(shè)置好串口信息,溫度檢測(cè)系統(tǒng)等待接收從上位機(jī)發(fā)送來(lái)的采集信號(hào)命令,所有采集到的溫度將實(shí)時(shí)存儲(chǔ)到數(shù)據(jù)庫(kù)中。
3.2LabVIEW通信操作
LabVIEW上位機(jī)程序采集到溫度數(shù)據(jù)后,通過(guò)式(1)轉(zhuǎn)換為電壓值,采集到的實(shí)時(shí)數(shù)據(jù)與設(shè)定值進(jìn)行比較,當(dāng)超過(guò)設(shè)定值時(shí),控制面板上的指示燈亮。溫度報(bào)警程序如圖4所示。
圖4 溫度報(bào)警程序Fig 4 Temperature alarm procedures
LabVIEW程序可以在用戶需要的任何時(shí)間段內(nèi),根據(jù)用戶指令進(jìn)行數(shù)據(jù)的采集工作,系統(tǒng)中將采集溫度,溶解氧,鹽度等不同的采集數(shù)據(jù)任務(wù)分成多LabVIEW程序,上位機(jī)需要那個(gè)程序就調(diào)用對(duì)應(yīng)的LabVIEW程序。
1)創(chuàng)建LabVIEW程序
在LabVIEW中新建項(xiàng)目,新建VI,創(chuàng)建溫度采集的VI程序,其中,C#端發(fā)送來(lái)的控制命令作為L(zhǎng)abVIEW程序的輸入端,LabVIEW程序輸出端為增氧機(jī)控制命令。
2)生成.NET互動(dòng)操作程序集
將LabVIEW程序生成DLL,點(diǎn)擊程序生成規(guī)范右鍵新建.Net互動(dòng)操作程序集。生成之后進(jìn)行DLL設(shè)置,其中主要需要設(shè)置好DLL的輸入端和輸出端。到此 Lab-VIEW端的程序完成。
3)C#調(diào)用LabVIEW程序
創(chuàng)建C#程序,將剛剛生成的DLL添加到C#的引用中。添加進(jìn)來(lái)后可以通過(guò)雙擊引用,查看其中的方法。需要注意:在LabVIEW中有輸入和輸出,則在C#程序中需要對(duì)應(yīng)存在這兩個(gè)變量。
在生成的過(guò)程中定義下DLL的輸入和輸出接口,打開VS程序,新建項(xiàng)目,在程序中設(shè)置一個(gè)觸發(fā)LabVIEW程序啟動(dòng)的標(biāo)示位,供用戶發(fā)送命令。添加生成的DLL,在C#中即可調(diào)用LabVIEW程序,當(dāng)需要采集養(yǎng)殖環(huán)境中的參數(shù)值時(shí),C#程序調(diào)用對(duì)應(yīng)的LabVIEW程序。
對(duì)系統(tǒng)進(jìn)行了功能測(cè)試,如圖5。
圖5 溶解氧測(cè)試結(jié)果Fig 5 Test result of DO
如圖5所示,當(dāng)前養(yǎng)殖時(shí)間段為養(yǎng)殖初期,此時(shí)后臺(tái)會(huì)調(diào)用南美白對(duì)蝦養(yǎng)殖初期的溶解氧預(yù)測(cè)公式(不同時(shí)間段內(nèi)的溶解氧預(yù)測(cè)公式不同在于其他水質(zhì)參數(shù)和溶解氧之間的權(quán)重值不一樣)計(jì)算出當(dāng)前的預(yù)測(cè)溶解養(yǎng)殖,當(dāng)溶解氧值超過(guò)閾值時(shí),系統(tǒng)進(jìn)行預(yù)警處理(發(fā)生預(yù)警聲音,預(yù)警聲音的處理使用C#中的System Media SoundPlayer來(lái)實(shí)現(xiàn))。
將設(shè)計(jì)的C#和LabVIEW混合編程的系統(tǒng)與沒(méi)有使用LabVIEW混合編程的水產(chǎn)養(yǎng)殖溫度采集系統(tǒng)進(jìn)行性能比較,結(jié)果如表1所示。
表1 性能測(cè)試比較結(jié)果Tab 1 Results of performance test comparison
本文的系統(tǒng)相較傳統(tǒng)溶解氧預(yù)測(cè)算法,主要優(yōu)勢(shì)在于將溶解氧的采集和處理分開,使用LabVIEW進(jìn)行數(shù)據(jù)采集,數(shù)據(jù)的處理則交給上位機(jī),對(duì)于純粹的LabVIEW程序而言,減少了其由于輪詢方式帶來(lái)的CPU使用率。
本文提出一種C#和LabVIEW混合編程的溫度監(jiān)測(cè)系統(tǒng)。該系統(tǒng)的架構(gòu)由數(shù)據(jù)采集卡和LabVIEW程序,C#上位機(jī)程序組成。系統(tǒng)的主要特點(diǎn)是針對(duì)LabVIEW的大數(shù)據(jù)量收發(fā)過(guò)程CPU占用率問(wèn)題,通過(guò)C#上位機(jī)調(diào)用LabVIEW生成的DLL,根據(jù)用戶的需求,觸發(fā)LabVIEW采集實(shí)時(shí)數(shù)據(jù),使得整個(gè)系統(tǒng)在數(shù)據(jù)采集和分析處理方面進(jìn)行了分層處理,減少系統(tǒng)CPU的使用率,當(dāng)上位機(jī)中用戶提出需求時(shí)才啟動(dòng)LabVIEW中程序的運(yùn)行,減少由于LabVIEW程序輪詢式的CPU開銷。系統(tǒng)能夠在實(shí)際使用過(guò)程中,當(dāng)溫度超過(guò)設(shè)定的報(bào)警溫度時(shí),可以通過(guò)LabVIEW上的程序進(jìn)行實(shí)時(shí)報(bào)警。當(dāng)預(yù)測(cè)出的溶解氧值出現(xiàn)異常時(shí),可以通過(guò)上位機(jī)進(jìn)行預(yù)警處理,減少了由于人為疏忽導(dǎo)致的不必要損失。同時(shí),將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,提供用戶查詢,方便用戶隨時(shí)查看以往的溫度數(shù)據(jù)。
[1]馬從國(guó),趙德安,王建國(guó),等.基于無(wú)線傳感器網(wǎng)絡(luò)的水產(chǎn)養(yǎng)殖池塘溶解氧智能監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2015,31(7):193-200.
[2]譚洪新,劉文暢,孫大川,等.閉合循環(huán)水產(chǎn)養(yǎng)殖系統(tǒng)中氣—液混合裝置的增氧效果[J].農(nóng)業(yè)工程學(xué)報(bào),2014,30(6):147-153.
[3]黃建清,王衛(wèi)星,姜晟,等.基于無(wú)線傳感器網(wǎng)絡(luò)的水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測(cè)系統(tǒng)開發(fā)與試驗(yàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(4):183-190.
[4]史延?xùn)|,楊萍,寧飛,等.基于LabVIEW的多路溫度流量監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2013,32(8):29-31,35.
[5] 孫筱,陳梅,張燕.基于LabVIEW的擠塑成型過(guò)程溫度控制系統(tǒng)[J].儀表技術(shù)與傳感器,2013(1):50-51,101.
[6]李偉剛,盧文忠,杜冬菊.基于LabVIEW的發(fā)射筒瞬態(tài)溫度測(cè)試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(6):1556-1557,1561.
[7]吳卓葵,許勝棋.基于LabVIEW的多點(diǎn)報(bào)警溫度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2014,36(1):139-142.
[8] 王承宇,陳宇晨,候昀.基于Web和LabVIEW的斷路器遠(yuǎn)程監(jiān)控系統(tǒng)[J].化工自動(dòng)化及儀表,2014,41(6):632-635.
[9]賴健明,劉昌文,楊延相,等.基于LabVIEW的高效氧傳感器檢測(cè)系統(tǒng)開發(fā)[J].傳感器與微系統(tǒng),2014,33(8):105-108.
[10]李俊,陳湘波.LabVIEW與C語(yǔ)言的混合編程[J].自動(dòng)化與儀器儀表,2001,5(5):62-65.
[11]張振頂,黎華,李茂東,等.LabVIEW和C語(yǔ)言混合編程在工業(yè)鍋爐熱效率計(jì)算中的應(yīng)用[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
上海市教育委員會(huì)科研創(chuàng)新項(xiàng)目重點(diǎn)項(xiàng)目(14ZZ156)
簡(jiǎn)玉梅(1987-),女,四川德陽(yáng)人,碩士研究生,實(shí)驗(yàn)室助教,主要研究方向?yàn)闊o(wú)線傳感器網(wǎng)絡(luò),工業(yè)自動(dòng)化控制。