C#和LabVIEW混合编程在水产养殖溶解氧监控中的应用*
2016-09-02简玉梅阮麟杰上海工程技术大学电子电气工程学院上海201620
简玉梅,高 飞,阮麟杰(上海工程技术大学电子电气工程学院,上海201620)
C#和LabVIEW混合编程在水产养殖溶解氧监控中的应用*
简玉梅,高飞,阮麟杰
(上海工程技术大学电子电气工程学院,上海201620)
水产养殖过程中,为了实现溶解氧的实时监测和及时报警,提出一种C#和LabVIEW混合编程的溶解氧监测控制系统。LabVIEW负责数据采集,C#上位机程序通过调用LabVIEW生成的DLL,用户通过C#程序给LabVIEW发送采集命令,当LabVIEW接收到用户的命令后进行数据采集。系统的主要特点是在上位机上根据养殖水产品的养殖时段,动态调用溶解氧的预测算法,实时传递采集指令给各个Lab-VIEW子程序,将数据采集和数据分析处理分开,减少由于LabVIEW的串口轮询通信方式带来的CPU使用率。系统能够在当溶解氧超过设定的报警值时及时报警,确保养殖水环境参数正常。
养殖监测;溶解氧报警;LabVIEW;虚拟仪器;混合编程
0 引言
溶解氧是水产养殖过程中的重要监测参数,温度的高低会直接影响溶解氧的多少,进而影响水产品的生长,实时控制养殖环境的溶解氧能有效地提高水产品的产量[1~3]。如何将新的技术引入水产养殖监测系统,设计出更好的溶解氧监测系统是其中的一个研究热点。
目前,温度作为影响溶解氧的一大主要因素,学者们创建了各种基于虚拟仪器的温度监测系统[4~8]。但由于Lab-VIEW在串口通信上只能实现轮询方式的数据收发,无法实现中断方式的数据收发,由于轮询会一直占用CPU资源,使得程序效率低,这对于串口数少的应用程序,可以满足需求。但是如果系统中串口数很多,比如:在水产养殖过程中需要采集除温度之外的,溶解氧、氨氮、压力、盐度等参数,当串口数达到一定限度的时候LabVIEW的串口通信VISA实现起来就比较困难。再者,LabVIEW对于数据的分析处理能力有限,处理能力不如C#程序。
本文提出了将C#和LabVIEW混合编程,取两者的优点[9~11],创建一个控制系统用于水产养殖过程中的溶解氧控制。
1 系统功能与组成
本文提出一种C#和LabVIEW混合编程的溶解氧监测系统。该系统在LabVIEW上实现数据的采集和存储,在C#中调用LabVIEW程序完成对数据的后期处理和反应操作。整个系统的逻辑图如图1所示。
图1 系统逻辑图Fig 1 Logic diagram of system
系统分为两部分,C#上编写的上位机程序,LabVIEW上编写的各个水质参数采集模块。上位机根据需要发送控制命令给LabVIEW程序的接口,让各个LabVIEW程序模块完成数据的采集工作,上位机在根据溶解氧预测控制算法求解出溶解氧预测值,进而控制养殖环境。
本文主要介绍LabVIEW端的温度采集模块。温度采集板块程序架构图2所示。
图2 LabVIEW端程序架构Fig 2 Program architecture of LabVIEW
系统运行原理:在LabVIEW端,将温度值用电压信号表示,电压信号经过变送器放大后传输给A/D转换器,A/D转换器将转换后的数字信号传递到PC,PC的温度采集程序将此数字信号接收并交给数据处理程序并将其存入数据库。在C#端,主要实现串口通信,用户在控制界面提前录入当前的养殖时间段,将数据采集开始命令发送给Lab-VIEW程序,实时显示预测的溶解氧值,并发出声音预警提醒。同时将溶解氧值的输出作为增氧机转速调节器的输入,当溶解氧值高时,降低增氧机转速;反之则相反。
2 硬件设计
2.1数据采集卡的选择
本文着重针对温度的采集过程进行讨论,其他参数的采集思路一样。本文选用NI公司的NIPCI 6010数据采集卡进行温度的采集工作。
2.2温度传感器的选择
考虑到水产养殖过程中常用水的温度范围为0~50℃,本次选用Pt100型热电阻传感器和SBWZ—2480D导轨式温度变送器。LabVIEW中显示的是电压值,为了使观测者能更直观地测量温度,通过实验建立电压和温度之间的对应关系,通过测得的实验数据,经过Matlab线性拟合得到温度和电压值间关系为
式中x为实际采集到的温度,y为转换后的对应电压值。
3 LabVIEW端程序设计
3.1LabVIEW端程序总体设计
LabVIEW端程序主要实现如下功能:
1)串口通信:通过串口通信接收温度监测装置发送的温度测量值;
2)温度超限报警:当温度测量值大于报警温度时,点亮报警LED灯;
3)将采集的温度值存储在Access数据库中,供用户随时调用。
程序的执行采用变量轮询的方式,程序流程图如图3所示。
图3 LabVIEW端程序流程图Fig 3 Flow chart of LabVIEW
首先对串口资源进行设置,设置内容包括波特率,串口设置等。设置好串口信息,温度检测系统等待接收从上位机发送来的采集信号命令,所有采集到的温度将实时存储到数据库中。
3.2LabVIEW通信操作
LabVIEW上位机程序采集到温度数据后,通过式(1)转换为电压值,采集到的实时数据与设定值进行比较,当超过设定值时,控制面板上的指示灯亮。温度报警程序如图4所示。
图4 温度报警程序Fig 4 Temperature alarm procedures
LabVIEW程序可以在用户需要的任何时间段内,根据用户指令进行数据的采集工作,系统中将采集温度,溶解氧,盐度等不同的采集数据任务分成多LabVIEW程序,上位机需要那个程序就调用对应的LabVIEW程序。
4 C#和LabVIEW混合编程
1)创建LabVIEW程序
在LabVIEW中新建项目,新建VI,创建温度采集的VI程序,其中,C#端发送来的控制命令作为LabVIEW程序的输入端,LabVIEW程序输出端为增氧机控制命令。
2)生成.NET互动操作程序集
将LabVIEW程序生成DLL,点击程序生成规范右键新建.Net互动操作程序集。生成之后进行DLL设置,其中主要需要设置好DLL的输入端和输出端。到此 Lab-VIEW端的程序完成。
3)C#调用LabVIEW程序
创建C#程序,将刚刚生成的DLL添加到C#的引用中。添加进来后可以通过双击引用,查看其中的方法。需要注意:在LabVIEW中有输入和输出,则在C#程序中需要对应存在这两个变量。
在生成的过程中定义下DLL的输入和输出接口,打开VS程序,新建项目,在程序中设置一个触发LabVIEW程序启动的标示位,供用户发送命令。添加生成的DLL,在C#中即可调用LabVIEW程序,当需要采集养殖环境中的参数值时,C#程序调用对应的LabVIEW程序。
对系统进行了功能测试,如图5。
图5 溶解氧测试结果Fig 5 Test result of DO
如图5所示,当前养殖时间段为养殖初期,此时后台会调用南美白对虾养殖初期的溶解氧预测公式(不同时间段内的溶解氧预测公式不同在于其他水质参数和溶解氧之间的权重值不一样)计算出当前的预测溶解养殖,当溶解氧值超过阈值时,系统进行预警处理(发生预警声音,预警声音的处理使用C#中的System Media SoundPlayer来实现)。
将设计的C#和LabVIEW混合编程的系统与没有使用LabVIEW混合编程的水产养殖温度采集系统进行性能比较,结果如表1所示。
表1 性能测试比较结果Tab 1 Results of performance test comparison
本文的系统相较传统溶解氧预测算法,主要优势在于将溶解氧的采集和处理分开,使用LabVIEW进行数据采集,数据的处理则交给上位机,对于纯粹的LabVIEW程序而言,减少了其由于轮询方式带来的CPU使用率。
5 结束语
本文提出一种C#和LabVIEW混合编程的温度监测系统。该系统的架构由数据采集卡和LabVIEW程序,C#上位机程序组成。系统的主要特点是针对LabVIEW的大数据量收发过程CPU占用率问题,通过C#上位机调用LabVIEW生成的DLL,根据用户的需求,触发LabVIEW采集实时数据,使得整个系统在数据采集和分析处理方面进行了分层处理,减少系统CPU的使用率,当上位机中用户提出需求时才启动LabVIEW中程序的运行,减少由于LabVIEW程序轮询式的CPU开销。系统能够在实际使用过程中,当温度超过设定的报警温度时,可以通过LabVIEW上的程序进行实时报警。当预测出的溶解氧值出现异常时,可以通过上位机进行预警处理,减少了由于人为疏忽导致的不必要损失。同时,将数据存储在数据库中,提供用户查询,方便用户随时查看以往的温度数据。
[1]马从国,赵德安,王建国,等.基于无线传感器网络的水产养殖池塘溶解氧智能监控系统[J].农业工程学报,2015,31(7):193-200.
[2]谭洪新,刘文畅,孙大川,等.闭合循环水产养殖系统中气—液混合装置的增氧效果[J].农业工程学报,2014,30(6):147-153.
[3]黄建清,王卫星,姜晟,等.基于无线传感器网络的水产养殖水质监测系统开发与试验[J].农业工程学报,2013,29(4):183-190.
[4]史延东,杨萍,宁飞,等.基于LabVIEW的多路温度流量监测系统设计[J].测控技术,2013,32(8):29-31,35.
[5] 孙筱,陈梅,张燕.基于LabVIEW的挤塑成型过程温度控制系统[J].仪表技术与传感器,2013(1):50-51,101.
[6]李伟刚,卢文忠,杜冬菊.基于LabVIEW的发射筒瞬态温度测试系统设计[J].计算机测量与控制,2013,21(6):1556-1557,1561.
[7]吴卓葵,许胜棋.基于LabVIEW的多点报警温度监测系统设计[J].制造业自动化,2014,36(1):139-142.
[8] 王承宇,陈宇晨,候昀.基于Web和LabVIEW的断路器远程监控系统[J].化工自动化及仪表,2014,41(6):632-635.
[9]赖健明,刘昌文,杨延相,等.基于LabVIEW的高效氧传感器检测系统开发[J].传感器与微系统,2014,33(8):105-108.
[10]李俊,陈湘波.LabVIEW与C语言的混合编程[J].自动化与仪器仪表,2001,5(5):62-65.
[11]张振顶,黎华,李茂东,等.LabVIEW和C语言混合编程在工业锅炉热效率计算中的应用[J].能源与环境,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
上海市教育委员会科研创新项目重点项目(14ZZ156)
简玉梅(1987-),女,四川德阳人,硕士研究生,实验室助教,主要研究方向为无线传感器网络,工业自动化控制。