海水总磷总氮在线自动监测装置的软件技术研究
2012-12-26张东满魏福祥
张 帆,张东满,魏福祥
(河北科技大学环境科学与工程学院,河北石家庄 050018)
海水总磷总氮在线自动监测装置的软件技术研究
张 帆,张东满,魏福祥
(河北科技大学环境科学与工程学院,河北石家庄 050018)
基于Microsoft Visual C++6.0软件平台,设计了海水总磷总氮在线自动监测系统,包括控制界面、设备的驱动程序、数据的处理和显示以及对历史监测数据的查询。该软件系统主要由设计流程模块、手动实验模块、实时监测模块、参数配置模块、串口通信模块5部分组成。软件使用窗口图形、选项卡等技术,具有友好的可视化人机交互界面,运行稳定,满足实验要求。
软件设计;总磷;总氮;在线自动监测装置
1 软件设计的目的
1.1 软件的设计背景
海水总磷总氮自动监测装置,可实现海水中总磷(TP)、总氮(TN)的实时在线自动监测。该监测系统由样品在线消解、显色反应、分光光度测定3部分组成,海水中各种形态的磷和氮被一次性完全消解,消解后的样品溶液分别与TP和TN显色剂混合,完成在线显色反应后顺序进入分光光度测定模块的流通池,分别在不同波长条件下进行TP和TN的测定 运行该监测系统,可实时掌握海洋富营养化的程度,进而预测海洋生态环境变化并及时调整对策,对预防海洋赤潮灾害、保护海洋生态环境具有重大意义。
1.2 软件的功能
在线监测系统软件的研发任务主要是设计系统的控制界面、设备的驱动程序,实现实验数据的处理和显示以及对历史监测数据的查询等功能。在线自动监测系统软件用于控制在线自动监测装置的运行,包括流程设计、实时监测、数据的处理等,其中数据处理包括将来自采集卡的实时数据进行分析保存,微机终端显示实时监测状况,并进行数据的传输和串口通信。
该系统采用西门子可编程控制器(PLC)作为核心控制器,控制整个监测流程,可自动完成样品的消解、显色、测定、数据处理等过程,对整个监测过程进行在线监控,实现对监测信息的实时处理,得到并记录最终监测结果[4]。
2 软件的总体构成
2.1 软件的设计
系统软件是基于Microsoft Visual C++6.0软件平台开发、设计的,共有14个源文件,15个头文件。主要由设计流程模块、手动实验模块、实时监测模块、参数配置模块、串口通信模块5部分组成,软件总体结构见图1。
海水总磷总氮自动检测系统采用了模块化的设计,以具体模块实现具体功能,不但有利于程序编写的分工合作,更有利于程序的调试及扩展。软件设计的总流程:设置串口参数,选择智能设备,设置协议生成方式及动态数据范围,设置主控机或智能设备工作方式[5]。软件工作流程见图2。
2.2 软件的开发
1)通信接口标准:选用串行通信RS232作为通信标准。串行通信接口标准经过使用和发展,目前已经有几种,但都是在RS232标准的基础上经过改进而形成,RS232是目前最成熟的技术标准,考虑到实验的实际传输距离小于2 m,单次传输数据量最长为60 B,因此采用RS232标准进行通信。
2)消息上行下行交互性:软件需要与上位机(中心控制端)、下位机(消解装置、线路动力与流路控制装置)进行通信,如采用单向通信,在实验发生未知错误时不能及时纠正或报警,导致实验失败甚至仪器损坏,因此数据交互时各终端之间的实时状态查询尤为重要,软件设计在每次发送数据后都有回送数据,并对回送数据进行数据校验与命令核对,确保发送接收的准确性。
3)使用全局变量,所有对话框拥有主对话框指针的访问权限。各对话框类在读写全局共享数据时统一通过全局主对话框指针p Expdlg来访问其内部的对应函数来实现数据的读写,统一标准,便于数据管理。
4)基于对操作人员相关知识水平的考虑,软件设计在操作界面上使用多种控件来实现伪指令,便于操作人员的理解与修改。执行前由特定函数AnalysisCmd翻译成可被对应下位机识别的指令。由于该软件所执行的任务比较多,因此新建线程专门用于执行程序流程命令,保证在执行命令时不受其他消息的干扰。使用Wait ForSingleObject和CEvent保证线程间的同步关系与对全局资源的访问安全性。
5)所有需要操作人员进行修改的参数存储在配置文件里,当软件运行时,加载到内存中,并以结构体的形式储存,方便访问,将参数变化实时写入磁盘保存,因此所有参数以最后一次配置为准。此外,为保证与各下位机能够准确地进行通信,增加了校验机制,对于单次校验失败的消息,重发原消息,2次校验失败的消息,作出错处理。
6)对于数据采用最小二乘线性拟合,最小二乘拟合是一种数学上的近似和优化,利用已知的数据得出一条直线或者曲线,相比于Hermite,Newton,Lagrange等其他插值方法,最小二乘拟合出的曲线在坐标系上与已知数据之间的距离的平方和最小,而不是对应函数的值等于数据点的值。基于具体化学实验的考虑,该软件采用了一次线性拟合而不是更高次项的拟合。
图1 软件的模块结构图Fig.1 Block diagram of the software
图2 软件工作流程图Fig.2 Work flow of the software
7)软件具有定时功能,本实验要求执行TM命令时间精度在0.5 s范围内。在保证计时精度的前提下,在执行命令线程里采用Sleep挂起的方式精度达到0.1 s,在其他类中采用Settimer精度达到0.05 s,均能够很好满足实验要求。
8)软件初始化时,加载了相关动态链接库,以便软件能够对采集卡进行取数据操作。动态链接库的使用使得软件的项目管理更为方便,并节省了内存消耗,并且在采集卡参数发生较小改变时只需要更换动态链接库文件即可,不必改动.exe可执行文件,更有利于软件以后的升级。
9)实验数据的存储,在实验进行过程中将实时采集的数据分别在内存和磁盘中各存放一份,既加快了程序的访问速度,又确保了当程序意外出现错误关闭时已采集的数据不丢失,当单次实验完成后将结果即TP和TN的浓度也一并写入磁盘中。为确保能够随时地对已生成的实验数据进行查询再分析,在实验过程中保留了大量数据,并设计了类History专门针对数据的存储及查询管理,为了能够更直观地显示数据,设计类Re HisGraph实现了历史数据的重绘。
3 软件的模块功能
1)设计流程模块 实验前,通过设置各个指令设计整个实验流程,可对设计的流程进行保存和重置,或者加载运行过的现有流程。该模块可以控制设备中电磁阀的开关、实验操作步骤之间的间隔、消解池的启动与关闭、蠕动泵及柱塞泵的转速和方向以及磷和氮吸光度等数据的采集命令等。软件界面如图3所示。
2)手动实验模块 该模块可以显示实验及装置的某些状态,包括命令的执行情况、当前时间、消解池的温度、以及当前设备所处状态(停止、正在实验、正在清洗、准备就绪),还显示实验结果,即样品中TP和TN的浓度,并将结果自动添加到以实验当天日期所命名的日志文件中。该模块可以强制停止实验过程、实现装置的自动清洗以及监测数据的检索功能等。软件界面如图4所示。
3)实时监测模块 主要功能为显示在实验进行过程中采集到的吸光度实时变化以及最大与最小吸光度。根据采集卡返回的数据加以计算显示在右侧列表框中并在网格上绘制出相应的描点曲线与对应坐标形成直观显示,界面见图5。
图3 设计流程模块界面 Fig.3 Interface of design procedure module
图4 手动实验模块界面 Fig.4 Interface of manual experiment module
4)参数配置模块 主要功能为在实验开始执行前,对整个实验中各部分参数进行正确配置以保证实验的正确顺利进行,包括消解部分相应的参数配置(微波最大功率、温度输出曲线始终点、升温时间以及保温控制温度)、磷和氮吸光度的采集参数(采样间隔、采样点数以及有效区间)、样本点设置,该软件将自动按照所给定的标准溶液样本点数据,依据最小二乘法绘制关于浓度与吸光度的线性拟合标准曲线,进而自动求出TP和TN的浓度值。见图6、图7。
图5 实时监测模块界面Fig.5 Interface of real-time monitoring
图6 参数配置模块界面Fig.6 Interface of parameter configuration
5)串口通信模块 主要功能是在后台进行与采集卡和其他设备的串口通信,包括与采集卡的通信(使用的串口通信配置为RS232,发送的数据采用ASCII码值为交换码的字符串形式)、与中心控制端的通信、与消解装置的通信以及与蠕动泵1、蠕动泵2和注射泵的通信。
4 软件的优点
1)视窗技术 操作人员可直接通过控件操作实验软件的执行命令,该软件对命令进行了封装,便于人机交互。
2)操作简便 采用用户熟悉的Windows界面,操作简便快捷,软件窗口之间的系统设计符合人的认知原理,使操作流畅。
3)实时显示 对所采集的数据及时处理,并在屏幕上以点或线的形式实时显示出来,同时形成数据文件并自动存盘。
4)文件处理 系统设计了3种类型的文件,即命令文件(记录用户的命令行)、数据文件(记录实验实时数据)、日志文件(记录实验结果)等,这些文件的建立、执行、访问和保存过程都是后台自动执行。
5)操作保护 若用户不慎设置了错误的运行参数或执行了错误操作,软件会自动对操作者发出警告,从而使硬件得到保护,如图8所示。
图7 样本点设置界面Fig.7 Interface of sample point
图8 实验警告界面图Fig.8 Warning interfaces of experiments
5 结 语
以海水TP和TN在线自动监测实验为主线,分析了实验软件系统的功能,建立了软件系统的模块结构,并成功设计出了海水TP和TN在线自动监测的实验软件。该软件采用Visual C++6.0开发而成,基于Windows平台的软件设计,使用面向对象的技术,具有友好的人机交互界面[6],容易被掌握和使用,满足科学实验的要求,在海水TP和TN监测实验中已经体现出软件的价值。
[1]俞 林.水质检测分析方法标准实务手册[M].北京:中国环境科学出版社,2002.
[2]GRASSHOFF K.Methods of Seawater Analysis[M].New York:Verlag Chemie Weinheim,1976.
[3]邹常胜.海水营养盐现场监测[J].海洋技术(Ocean Technalogy),2001,20(4):33-37.
[4]李智文.水质总磷总氮在线自动监测软件系统的设计[D].广州:中国科学院广州地球化学研究所,2007.
[5]孙 鑫,余安萍.VC++深入详解[M].第2版.北京:电子工业出版社,2006.
[6]丁文捷.基于Windows的化工原理实验数据处理软件的开发设计[J].实验室研究与探索(Research and Exploration in Laboratory),2004,23(9):34-35.
Software design of online automatic monitoring device for total phosphorus and total nitrogen in seawater
ZHANG Fan,ZHANG Dong-man,WEI Fu-xiang
(College of Environmental Science and Engineering,Hebei University of Science and Technology,Shijiazhuang Hebei 050018,China)
Based on Microsoft Visual C++6.0,software of online automatic monitoring system for total phosphorus and total nitrogen in seawater is developed,including the controlling interface of the on-line monitoring system,the driving programs of device,the processing and display of experimental data and the query of historical monitoring data.The software mainly consists of five parts of design process module,manual experiment module,real-time monitoring module,parameter configuration module and serial communication module.Windows graphical interfaces and option card technologies are adopted in the software system,so that this system has friendly visualized man-machine interface and stable operation,and it meets the requirements of experiments.
software design;total phosphorus;total nitrogen;online automatic monitoringdevice
X853
A
1008-1542(2012)04-0370-05
2012-01-28;
2012-05-14;责任编辑:王海云
国家863计划项目(2007AA09210109)
张 帆(1986-),女,河北石家庄人,硕士研究生,主要从事环境监测技术与装备方面的研究。
魏福祥教授。E-mail:wfxss@sohu.com