APP下载

基于GPRS的紫外水质分析仪的研究*

2012-08-15张学典

光学仪器 2012年4期
关键词:上位数据包分析仪

常 翟,张学典,2,张 平,常 敏

(1.上海理工大学 光电信息与计算机工程学院,上海 200093;2.上海理工大学 上海市现代光学系统重点实验室,上海 200093)

引 言

随着全球工业化的迅猛发展,各种化工污染物的排放量逐年增加,人类的生活环境日益恶化,尤其是一些化学有毒物质,一旦未经处理就非法排放,就会造成非常严重的后果,轻则污染水体、危害水生动植物,重则积聚在鱼类或贝类的体内,最终对人类造成危害。近年来我国的水资源污染状况日益严重,人们开始意识到生态环境对人类生活的重要性,因此保护水资源、维护生态环境成为人类的责任和义务。水质监测是目前政府对工业区域的排污状况和排污趋势有效手段,根据环保部门所制定的环境管理依据[1],对我国的水资源进行合理的利用和保护。

目前,国内外主要的水质监测的方法是先现场采集、后实验室分析的方法,该方法存在以下缺点:监测频率和实时性低,由于使用先采集后分析的方法,因此不能做到对水质的实时监控,每次检测都需要耗费大量的时间;检测水平不均,水质检测实验室的检测设备老化会降低检测结果的准确性,而大型水质检测仪器分配不均,不能保证每个实验室都能配备,因此检测水平有高有低;现场检测能力低,大多区域不具备移动水质检测设备,无法快速地根据检测结果进行判断和决策。

针对目前水质检测方法的不足,设计了一种水质分析仪,该分析仪通过放置于现场水域的水质综合参数采集模块采集的各种水质参数,例如水体浊度、COD、BOD等参数,使用通用分组无线业务(GPRS)远程传送数据,然后上位机通过Internet网络利用Socket套接字接受数据,并将数据存入SQL Server数据库,通过交互界面进行数据实时显示,完成对水质的实时远程监控,指导环保部门和管理者进行前瞻性的水质管理[2]。

1 系统框架

该分析仪主要包括三个部分:下位机数据采集模块、GPRS通讯模块和上位机监测软件。其中下位机数据采集模块包括控制模块和水质传感器单元,其中水质传感器为该模块的核心,有各种需要测试的测量电路。GPRS通讯模块主要负责将下位机测得的数据发送至GPRS网络,再由GPRS网络与Internet网络互联[3],起作用是作为下位机与上位机的中介。上位机监测软件主要指运行在PC系统上的软件,通过管理中心的计算机连接Internet网络,接收下位机传来的数据并存入数据库,实现对数据采集模块采集上来的各种水质数据的显示和分析,并对超标数据进行报警处理。文中主要的研究对象为GPRS通讯模块和上位机监测软件。图1为系统的基本结构框架。

图1 系统架构图Fig.1 System Construction

2 数据采集模块

分析仪的数据采集模块采用紫外分光光度法进行水质参数的采集工作,该方法主要利用水中污染物可以吸收紫外线的特征,通过分光法测量水中有机物的浓度。该方法基于物理-UV法,不同于传统的化学法,具有污染小、速度快等优点,利于水质分析仪对水质进行实时检测。

UV法的理论基础为朗伯比尔定律[4],该定律指出一束平行单色光通过均匀非散射的稀溶液时,溶液对光吸收程度与溶液的浓度及液层厚度的乘积成正比,即:

式(1)中,A为吸光度,C为溶液浓度,L为液层厚度,K为常数。该定律不仅适用于单独的溶液,还适用于不相互作用的多组分溶液。由于每种溶液的吸光度都具有线性特征,因此多组分溶液的对某一单色光的吸收度等于该溶液中各组分对该单色光的吸光度之和,即:

在一般情况下,液层厚度L为定值,常数K与入射光的波长有关,固定单色光下K也为定值,因此A与C呈正比。现通过实验检测A与C值后,即可得到常数K,然后只需测量未知浓度的溶液吸光度即可得到该溶液的浓度。

通过UV法解决了传统化学法测量时间长、消耗化学试剂、对环境造成二次污染等缺点,并且可以将分析探头放置在需要监测的水域,实现了对检测水域的实时检测。

3 GPRS通讯模块

GPRS[5]是一种基于GSM系统的无线分组交换技术,在GSM协议构架的基础上增加了支持分组交换的协议,从而实现基于分组的无线通信服务,它借用了移动的接入网和传输网,提供端到端的广域的无线IP连接。作为一种成熟的商用无线通信技术,GPRS技术在无线监测管理系统具有很好的应用前景。针对无线远程通讯的实际应用要求,GPRS的使用费用较其他无线传输方式(如3G技术、SMS技术)低,传输速率能够达到56kbps并且最大可提升至114kbps[6]。因此系统选用GPRS作为传输的中介。

GPRS无线通信网络需要TCP/IP协议的支持,目前市面上常见的GPRS模块可分为自带TCP/IP协议栈与不带TCP/IP协议栈的两类,自带协议栈的GPRS模块一般价格较高,但是使用方便,用户只需要通过AT指令即可完成整个通讯过程。不带协议栈的GPRS模块虽然售价较低,但是需要用户自己在单片机中嵌入TCP/IP协议栈,增大了工作量。系统使用Simcom公司推出的内嵌TCP/IP协议的SIM300C模块,具有标准的AT指令接口,可以提供GSM语音、GPRS上网和短消息等业务,下行最大传输速度为85.6kbps,上行最大传输速度为42.8kbps。

系统直接通过向SIM300C发送AT指令,即可建立TCP/IP连接,并实现数据的远程传输。具体操作步骤如下:

(1)初始化GPRS模块。使用AT+IPR=9 600命令设置模块的通信波特率,系统设置为9 600bps;使用AT+CGDCONT=1,“IP”,“CMNTE”命令设置连接的网关,其中IP表示通过指定IP地址进行连接,“CMNTE”表示连接网络为移动梦网;使用AT+CGCLASS=“B”设置移动终端类别为B,即GPRS上网业务。

(2)测试GPRS是否连接成功。使用AT+CGACT=1,1来测试该模块的GPRS网络是否连接成功,如果返回“OK”,则表示连接成功;如果返回“ERROR”,则表示连接失败,失败的原因有可能是SIM卡的GPRS业务未开通,或者模块天线未成功安装,或SIM卡接触问题等等。

(3)通过 TCP连接网络。使用 AT+CIPSTART=“TCP”,“192.168.1.1”,“2020”命令设置连接参数,其中“TCP”表示使用TCP协议连接,“192.168.1.1”表示上位机的IP地址,实际IP地址由实际情况决定,“2020”表示监听端口,如果返回“OK”则表示连接成功。使用AT+CIPSEND>“数据”命令向指定IP和端口发送测量数据;

(4)关闭连接。使用AT+CIPCLOSE命令关闭TCP网络连接;使用AT+CIPSHUT命令关闭GPRS连接。

图2为发送测量数据的流程图。

使用GPRS模块进行无线通信时,还需注意由于当GPRS长时间不产生数据流量时,网络服务商提供的服务器为了节省宽带,会自动断开GPRS的网络连接。因此为了保证GPRS模块数据传输的实时性,防止系统的网络中断,现设置了“心跳”机制,即每隔一段时间,都会固定的发送一份不包含测量数据的TCP数据包,这样就可以保证系统网络的连续性。发送“心跳”数据包的频率可以根据实际网络服务商的要求来设定,尽量避免过多的发送“心跳”数据包,导致额外流量,增加成本。由于GPRS网络有时会受到恶劣天气的影响,导致丢包或短线的现象,因此需要GPRS模块定时发送连接请求(ping命令),如果未应答请求超过一定次数,则启动GPRS模块的重连功能,重新进行网络连接。

图2 GPRS数据发送流程图Fig.2 GPRS data transmission flow chart

4 上位机监测软件

上位机监测软件使用基于.NET框架的C#编程语言,利用Socket套接字进行网络通信接收下位机通过GPRS网络传输的测量数据,将测量数据存入SQL Server数据库并通过图表进行实时显示。

4.1 Socket通信

Socket又称为套接字,其实质是一种描述符,是目前网络通信的一种基本的操作单元。在进行网络通信时,套接字可以看作两边通信连接的一个端点,当进行通信时,首先由一个网络应用程序将信息写入其所在主机的Socket中;然后通过一定的网络协议,将这段信息传入另一个网络应用程序的套接字中;最后通过读取该主机中的Socket,完成这段信息的传输。由此可知,在网络通信过程中,至少需要一对Socket才能完成整个传输,现将客户机上的套接字称为ClientSocket,将服务器上的套接字称为ServerSocket。为了满足不同的网络连接需求,一般网络系统提供三种不同类型的Socket:数据报套接字、流式套接字和原始套接字。数据报套接字是一种无连接、不可靠的服务,数据包独立发送,没有固定的顺序,主要使用UDP协议进行传输;流式套接字是一种可靠的、面向连接的服务,数据报按照顺序进行无差错、无顺序的发送,使用TCP协议进行传输;原始套接字则使用最底层的协议,主要用于检测新设备,一般不在实际中使用。由于系统通过基于TCP协议的GPRS网络传输数据,因此使用的是流式套接字。

.NET类库中提供了System.net.Socket类,因此系统直接使用C#下的Socket类进行网络编程。C#下的网络编程步骤:首先在服务器和客户机上分别建立ServerSocket和ClientSocket,并将ServerSocket使用Bind方法与指定的端口进行绑定,随后开始监听ServerSocket并等待客户机连接该端口。然后ClientSocket使用Connect方法可以连接指定的服务器端口,一旦ServerSocket接收到ClientSocket的连接请求,即可使用Accept方法建立两个套接字的连接。建立连接后就可以使用Read和Write方法进行网络通信。流程如图3所示。

图3 Socket通信流程图Fig.3 Socket communication flow chart

4.2 数据存储与处理

当上位机接收到数据采集模块传输过来的数据后,需要对该数据进行存储和处理,并完成实时显示和违规报警的工作。软件使用SQL Server数据库进行数据的存储工作,数据库可以看作计算机存储数据的仓库,在任何应用程序开发中都十分重要,可以将各种数据按照某些特定的规则进行保存,便于用户对数据进行管理和分析。SQL Server数据库是一种基于关系代数的关系型数据库,是目前应用比较广泛的一种数据库。

为了方便快捷的使用SQL Server数据库,ASP.NET开发环境中提供了一种ADO.NET技术,即一种用于和数据源进行交互的面相对象的类库,开发者在开发应用程序时可以利用ADO.NET类库简单快速的对数据库进行基本操作,例如读取、插入、更新、删除等。由于ADO.NET可以以离线的方式对数据库进行操作,因此应用程序只有在操作数据库时才会与数据源进行连接,这种方式可以大大减小服务器资源的占用,提高整个程序的效率。

下面介绍使用ADO.NET类库对数据库进行操作:

(1)数据库连接。在进行数据库操作前,必须通过SqlConnection对象完成应用程序与数据库的连接,首先提供需要连接数据库的连接字符串,其中包括数据库名称、用户名和密码。然后根据连接字符串创建SqlConnection对象,并使用Open()方法连接指定数据库,关闭数据库则使用Close()方法。

(2)操作数据库。应用程序需要使用结构化查询语言(简称“SQL”)来完成对数据库的操作,结构化查询语言是一种高级非过程化编程语言,用户不必了解数据存放的具体方式即可通过该语言在高层数据结构上工作,所以SQL语言可以适用于各种不同底层结构的数据库。对于SQL Server数据库而言,应用程序需要使用SqlCommand对象完成对数据库的操作。SqlCommand又称为SQL执行命令,该对象提供了多种方法,例如SqlDataReader对象提供Read()方法,可以实现应用程序对数据库的读取操作,而插入操作则需要使用SQL语言,例如“insert into COD表value(‘COD’,‘23’)”该语句表示向COD数据表中的COD数据列插入23的值。

(3)查询数据库。在进行数据库的数据查询时,可以通过DataSet对象进行数据集的填充与更新,由于DataSet是独立于数据库之外的,因此可以进行离线操作。在使用DataSet对象时,需要建立SqlDataAdapter对象作为中介进行DataSet与数据库之间的操作。首先创建SqlDataAdapter对象,然后使用Fill()方法提取数据库数据,然后导入DataSet中进行后续的操作。

软件在接收到GPRS模块传输过来的数据后,先进行数据包的判断,由于GPRS模块传输过来的数据包存在测量数据包和心跳数据包,因此不能直接将数据存入数据库,需要进行包头的判断。当前数据包为测量数据包时需要进行数据的提取,每个数据包中包含监测点的位置、各种水质测量数据和最后的包尾结束符,将有用的数据提取出来并存入数据库,当提取的水质数据超标时需要进行报警操作。最后查询数据库中的数据,存入DataSet并通过交互界面用趋势图表述出来。

5 实验结果

试验中采用三个水质分析仪放置在监测水域,然后通过GPRS模块进行测量数据的发送,上位机监测软件安装在具有公网IP的计算机上,进行数据监听,并实现测量数据值显示及曲线趋势显示。图4为上位机软件界面。

经过一段时间的运行试验,该系统可以实现对检测区域的水质的变化进行实时、连续的检测,且该系统运行稳定、可靠,没有出现丢包现象。

图4 上位机软件界面Fig.4 Host computer software interface

6 结 论

提出了一种基于GPRS的紫外水质分析仪设计方案,该系统的传输介质为基于TCP/IP协议下的GPRS网络,并在VS2008环境下使用C#语言编写了上位机监控软件,通过Internet网络实现了检测数据的实时接收,另外还实现了保存数据、数据显示、历史趋势图和报警等功能。该水质分析仪无需网络布线,传输成本低廉,具有一定的稳定性,能够为环保检测部门提供全面、实时的水质监测信息。相信随着GPRS网络的不断完善,该分析仪将会有更广阔的前景[7]。

[1]佟维妍,刘春梅,赵国材.基于 GPRS数据远程传输的水质参数监测系统[J].自动化与仪表,2010,25(7):52-55.

[2]王 翥,郝晓强,魏德宝.基于 WSN和GPRS网络的远程水质监测系统[J].仪表技术与传感器,2010(1):48-49.

[3]陈 军,盛占石,陈照章,等.基于 GPRS的水质自动监测系统的设计[J].传感器与微系统,2009,28(7):77-79.

[4]马树方.分析仪器原理与应用[M].上海:华东化工学院,1987:188-189.

[5]杨增汪,王宜怀,戴新宇.基于ZigBee和GPRS的高压开关柜无线监测系统设计[J].电力系统保护与控制,2010,38(23):203-206.

[6]BATS R J.通用分组无线业务(GPRS)技术与应用[M].北京:人民邮电出版社,2004:3-7.

[7]王 磊,许小琳.GPRS无线数据传输中服务器端软件的设计和实现[J].测控技术,2007,26(11):55-56.

猜你喜欢

上位数据包分析仪
Sievers分析仪(苏伊士)
一种用于深空探测的Chirp变换频谱分析仪设计与实现
SmartSniff
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
全血细胞分析仪配套操作台使用体会
以新思路促推现代农业上位
Endress+Hauser 光学分析仪WA系列
视觉注意的数据包优先级排序策略研究