基于Solinst Levelogger3001水质参数采集处理系统的研究

2012-06-09 10:15安宗强徐志京
电子设计工程 2012年2期
关键词:控件对话框命令

安宗强,徐志京

(上海海事大学 信息工程学院,上海 201306)

水资源的短缺已成为制约社会发展的障碍,对水资源的保护面临着前所未有的挑战[1],传统的水质采集方式已不再满足人们对水资源保护的需求。随着信息技术、传感器技术、集成技术、面向对象技术的发展,对水质参数的采集处理也发生了革命性的变化[2]。文章利用MFC编程串口通信程序实现Solinst Levelogger3001传感器水质参数的采集,对采集到的数据信息进行处理并利用MSChart显示所采集到的水质参数曲线图。通过对采集到的水质参数信息进行处理并显示能够实时的掌握水质的变化情况,为保护水资源提供有力的依据。利用对水质参数设置的门限值可以在水质变化时为用户提供报警功能。

1 采集处理系统构成

采集处理系统总体构成图如图1所示 。

图1 采集处理系统总体构成示意图Fig.1 Acquisition and processing system diagram of the overall composition

Solinst Levelogger3001传感器是加拿大Solinst公司生产的水质参数采集传感器,采集的水质参数有水位和水温。气压计是测量采集水质参数地点当时的空气压强。RS232串口是主机部分读取水质参数信息和气压信息所用的串口。主机部分主要是发送读取传感器采集的水质参数命令从传感器获得水质参数数据。传感器是以十六进制的形式返回参数值,主机在接收到这些数据后要对这些数据进行处理,即把十六进制转换成对应的ASCII字符串(便于用户读取)或者是对应的十进制字符串(便于以曲线的形式显示)。把十六进制处理成字符串后数据显示部分还要从字符中提取出水质参数值(其中包括水位和水温),并对提取的水质参数值利用MSChart的曲线方式显示。主机通过设置门限值并判断接收到的水质参数是否超过该门限值,如果超过了门限值,那么警报部分就被启动。

2 采集处理显示软件的设计

2.1 控件添加和界面设计

建立一个基于MFC对话框的程序,并利用控件向导构建如主界面图2对话框,其中串口设置子对话框如图3所示。右击对话框向对话框中添加MSComm控件[3],在弹出的对话框中选择Insert ActiveX control,从列表中选择Microsoft Communications Control,vision 6.0。此时对话框上会出现一个像电话的图标(此图标在运行时不会显示)。以同样的方法添加 Microsoft Chart Control 6.0[SP6](OLEDB)[4]。

图2 主界面Fig.2 Main interface

图3 子界面Fig.3 Sub-interface

2.2 软件设计流程

利用快捷键Ctrl+W打开MFC ClassWizard对话框并选择Member Variables选项卡为控件添加变量。表1是软件设计者为主要的控制添加的变量[5]。

2.3 参数设置

在进行读取水质参数信息时要先对串口作初始化设置,其流程如串口设置流程图4所示。传感器连接串口的通信参数波特率为9 600、停止位为1、数据位为8、校验位为NONE。设置好串口通信参数和传感器通信参数一致(如图6所示)。连接传感器到设置好的端口号(文章设置的端口号为端口号1)。读取传感器采集的水质参数要利用MSComm控件,此时需要给该控件添加读取水质参数的函数,其读取采集数据流程如图5所示。

表1 对话中主要控件的变量设置Tab.1 M ain control in dialogue

图4 串口设置流程图Fig.4 Flow to set port

图5 读取采集数据流程图Fig.5 Flow of the collection data reading

图6 串口参数设置图Fig.6 Serial port parameters design

2.4 数据采集与处理

根据传感器通信协议发送读取传感器采集的水质参数信息命令(一个a命令,一个b命令),其中a命令获得水温信息与水位信息的整数部分,b命令获取水位信息的小数部分,发送命令格式为十六进制。发送命令必须先发送a命令后发送b命令。表2是系统设计者发送命令读取传感器采集水质参数对应的命令和返回值。

表2 读取传感器采集的水质参数Tab.2 To read the collection data from sensor

发送命令a返回值中32.300为水温值,89为水位值的整数部分。发送b命令采集到的数据为6 700 cm,即为水位的小数部分如图7所示。对发送命令的控制流程如流程图8所示。利用SetTimer()函数调用OnTimer函数发送命令和读取水质参数信息。文章设置一秒钟采集一次水质数据信息,即 SetTimer(1,1 000,NULL)。 OnTimer()函数主要是定时发送读取数据命令并处理接收到的数据信息并以字符形式在显示区显示和以曲线的形式在MSChart控件区显示[6]。对接收到的数据处理流程如流程图9所示。水位实际值式(1)决定:

其中WL表示水位实际值,TWL表示测量水位值,TL表示气压值。气压值通过端口号2读取。

图7 发送区和接收区显示图Fig.7 Showing of sending areas and receiving areas

图8 发送命令流程图Fig.8 Flow chart of send the order

图9 数据处理流程图Fig.9 Flow chart of data processing

3 显示水质参数采集结果

3.1 M SChart显示传感器采集水质参数

处理好读取到的水质参数数据后通过MSChart控件以曲线的形式显示在屏幕上。利用语句m_Chart.GetDataGrid().SetData(inPos,1,wt,0)画出水温曲线图,其值与第一 Y 坐标轴相关联。 利用语句 m_Chart.GetPlot().GetSeriesCollection().GetItem(2).SetSecondaryAxis(TRUE)设置好水位曲线值与第二 Y 坐标轴相关联,m_Chart.GetDataGrid().SetData(inPos,2,wl,0)语句画出水位曲线图[6]。图10是利用文章设计的程序以MSChart显示水质参数实时采集的结果曲线图。图中有规律的平滑线条代表水温,数值对应左边第一Y坐标轴。变化的曲线代表水位,数值对应右边第二Y坐标轴。图11是系统设计者利用Solinst公司提供的软件显示水质参数实时采集的结果曲线图。系统设计者首先利用本系统显示水质参数实时采集的结果图再利用Solinst公司的软件显示水质参数实时采集的结果,由于两次测量都是人为的把传感器从水杯中慢慢的提起,由于两次测量时存在着提起传感器的速度不一样,从而在实际观察两个系统显示的结果有点区别,这是属于正常情况。通过对比图10显示的结果和图11显示的结果得出系统设计者成功实时读取了Solinst公司提供的传感器采集的水质参数。

图10 MSChart显示水质参数信息图Fig.10 Showing of using MSChart

图11 Solinst公司系统显示水质参数信息图Fig.11 Showing of using Solinst's system

3.2 警报功能设置

在主机部分设置好水位和水温的门限值,当读取的水质参数数据超过对应的门限值时系统就会启动警报系统。由于篇幅的原因系统设计者就不阐述警报系统的设计。为了突出当水质参数超出门限值能够启动报警系统这项功能系统设计者设置了水位的最高值97.8 cm,最低值为80.51。水温的最高值35°,最低值为20°。当水位高于97.8 cm时系统就弹出水位过高对话框,如图12所示。由图可以看出当水位高于97.8 cm时就启动了报警对话框。当水温高于35°时就弹出水温过高对话框,如图13所示。由图可以看出当水温高于35°时就启动了报警对话框。

图12 水位过高报警图Fig.12 Alarm of high water level

图13 水温过高报警图Fig.13 Alarm of high water temperature

4 结束语

利用MSComm控件成功实现了与水质参数采集传感器之间的通信和读取传感器采集的水质参数数据。文章设计的系统不但可以用于只可以采集水温和水位的传感器,同样也可以用于多参数采集的传感器。在未来的应用中,在采集端读取采集水质参数数据后可以利用GPRS网络传送该水质参数数据到远程控制中心,从而实现远程水质参数在线监测和报警功能[7-8]。

[1]刘霞.全球水资源严重短缺[N].科技日报,2010.

[2]Glasgow H B,Burkholder J M,Reed R E.Real-time remote monitoring of water quality:a review of current applications and advancements in sensor, telemetry and computing technologies[J].Journal of Experimental Marine Biology and Ecology,2004(300):409-448.

[3]李现勇.Visual C++串口通信技术与工程实践 [M].2版.北京:人民邮电出版社,2004.

[4]杨宗长,匡虹.基于Mschart的数据库图表应用编程[D].武汉:武汉大学,2005.

[5]李景峰.Visual C++串口通信技术详解[M].北京:机械工业出版社,2010.

[6]鄂越.浅谈MSChart在VC++中的应用[D].北京:中国农业科学院,2003.

[7]张鸿祥,傅圣雪,赵犁丰.水质参数在线监测及远程传输系统的研制[J].青岛海洋大学学报,2002(6):971-975.ZHANG Hong-xiang, FU Sheng-xue, ZHAO Li-feng.Study of water quality parameters on-line monitoring and remote transmission system [J].Journal of Ocean University of Qingdao,2002(6):971-975.

[8]滕佩峰.基于GSM网络水质在线自动监测系统的研究与实现[D].北京:北京邮电大学,2008.

猜你喜欢
控件对话框命令
只听主人的命令
正常恢复虚拟机
Bootlace Worms’Secret etc.
What Is Beauty?
关于.net控件数组的探讨
移防命令下达后
浅谈VB的通用对话框《CommonDialog》控件的使用
这是人民的命令
ASP.NET服务器端验证控件的使用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用