朱 锐,王项南,石建军,田 川
(国家海洋技术中心,天津 300112)
南极长城湾海域海洋环境监测系统上位机软件设计
朱 锐,王项南,石建军,田 川
(国家海洋技术中心,天津 300112)
在十一五“863”项目“极地近岸海洋环境监测系统”支持下,进行南极长城湾海域海洋环境实时监测系统的研制。为实现数据的实时传输进行软件设计,重点进行了上位机软件设计。根据整套监测系统的功能需要提出了上位机软件的主要功能和工作方式。上位机软件采用VB6.0作为开发工具,采用“问答”式对下位机进行控制,通过引用MSComm、Jmail、MSChart等控件或组件,采用功能模块化的设计方式,实现了上位机软件发送控制指令,接收、显示、保存采样数据,自动发邮件以及数据回放功能。
南极长城站;环境监测;“问答”式控制;自动发邮件;数据回放
南、北两极自发现以来,因其辽阔的地域、丰富的资源、理想的科研场所和对全球变化的独特的影响,成为各国政府和学术界都关注的焦点。南极和北极是地球气候系统的重要单元,包含了大气、海洋、陆地、冰雪和生物等多圈层相互作用的全部过程。通过这些相互作用,地球高纬度地区不断驱动着全球变化,同时也深受全球变化的影响。极地还拥有过去地球系统演变的独特信息,有助于认识地球系统及其与人类活动的相互作用。就海洋环境而言,进行极地海洋环境的监测与研究,对于揭示极地海洋环境的快速变化及其对地球变化的响应与反馈作用具有重要意义。但是由于受极地极端的气候条件的限制,目前对极地海洋环境的调查活动主要集中在夏季,这大大制约了对相关过程的深入研究。为了能够深入了解极地海洋的物理和生物学过程,分析生态系统与环境快速变化之间的相关性,建立一套长期、连续的监测系统非常必要。
极地近岸海洋环境监测系统是十一五“863”计划目标导向类项目。课题由中国极地中心牵头,国家海洋技术中心和中国海洋大学参加。旨在以我国南极长城站近海作为试验区,研制一套适用于极区站基的海洋动力和生态环境自动监测系统,并在南极长城站近岸海域布放并长期运行。
根据监测海洋动力和生态环境的目标,本项目拟对温度、盐度、深度、pH、PAR、ORP、叶绿素和海流 8个参数进行长期监测。系统的主要功能是测量各个待测参数,保存测量数据,并把数据传回内陆以供科研人员研究。
为了保证系统长期稳定工作,系统采用岸站有缆供电方式,系统的测量工作由水下测量系统根据岸站上位机的指令启动测量并收集上传来完成。为了保证数据传输的可靠性,同时考虑到系统采集的数据需要长距离传输的特点,确定采用RS485总线。根据测量要求及现场条件,水下测量平台采用剖面测量与坐底式测量相结合的测量模式。剖面测量主要由固定在承重缆上的各层组传感器对生态要素进行测量。坐底式测量部分主要是由固定在坐底平台上的ADCP对海流要素进行测量。系统的示意图如图1所示:
图1 系统示意图
水下测量系统由剖面测量和坐底测量两部分组成。剖面测量部分主要由第一层剖面测量单元、第二层剖面测量单元、第三层剖面测量单元(即plus-37)组成,其中第一层剖面测量单元、第二层剖面测量单元固定在传输电缆上,对温度、盐度、深度、叶绿素、PAR、ORP和pH 7个参数进行测量,第三层剖面测量单元固定在坐底平台上,对温度、盐度、深度3个参数进行测量。测量海流的ADCP固定在坐底平台上。水下测量系统的总体结构如图2所示。
图2 系统总体结构图
系统的工作方式是:上位机自动定时向水下采集系统发送采样指令,水下采集系统接收到采样指令后分时对各层传感器单元进行数据采集,然后把采集到的各传感器数据打包发送回上位机,上位机接收并处理数据。水下测量系统供电采用岸上有缆供电方式,出于安全考虑,水下观测系统采用低压直流方式供电。在水下测量系统的水上接入部分加入AC-DC电源模块,以获得稳定的电源供应。系统的数据传输和供电过程如图3。
系统的软件分为上位机软件和下位机软件。上位机软件的主要功能是通过串口向下位机发送采样指令,并接收下位机的采样数据同时负责对采样数据进行保存、自动发送数据和数据回放。下位机软件的主要功能是接收到采样指令后,分时对各层传感器组进行数据采集,把采集到的各传感器组的数据打包后发送至上位机。在数据采集过程中,上位机和下位机软件的流程如图4所示。本文主要讨论上位机软件的设计,选择Microsoft VisualBasic 6.0作为软件开发平台。
上位机软件具备三项主要功能:控制指令的发送及数据接收功能,定时向下位机发送采集指令并接收下位机的采样数据,同时将采样数据保存起来;邮件自动发送功能,定时把当日数据文件以附件形式发送至指定邮箱;数据回放功能,绘制各参数按时间序列的曲线。前两个功能为定时自动执行,数据回放功能为手动执行。
图3 系统的数据传输及供电过程
上位机自动定时(每隔10 min)通过串口向下位机发送控制指令,下位机接收控制指令并依次采集各个传感器数据,数据打包后由串口发送至上位机,上位机接收数据包,在上位机软件界面上显示各传感器测量数据,并把数据按固定格式分别储存到指定路径下的两个文本文件。一个仅保存当日的采集数据;另一个保存所有采集到的数据,每次的采样数据都追加保存到此文件。上位机在南极长城站互联网非高峰使用时段的一个设定时间点自动把保存当日数据的文件以附件的形式发送到指定电子邮箱。此外,上位机软件还可以根据用户需求生成各测量参数的时间曲线。
极地岸站上位机通过“问答式”对下位机进行控制,上位机向下位发送采样指令,下位机接受到采样指令以后对各组传感器单位进行分时采样,然后把各组采样数据打包发送回上位机,上位机收到采样数据包后分离出各组传感器数据并按照规定好的格式进行储存,同时在上位机软件界面上显示最近一次的采样数据。上位机软件界面如图5所示。
上位机通过串口与下位机之间进行控制指令及监测数据的传输。MSComm控件是Microsoft公司为简化Windows下串行通信编程提供的ActiveX控件,它为应用程序提供了通过串口收发数据的简便方法。在程序设计过程中,可以通过引用或设置MSComm控件的属性、事件和方法,实现上位机与下位机的串口通信。上位机控制指令的发送及监测数据接收流程如图6所示。
图4 上位机和下位机软件流程((a)为上位机,(b)为下位机)
图5 上位机软件显示界面
上位机开始工作后,自动判断是否到达设定的10 min间隔时间点,到达时间点后向下位机发送采样指令,并准备接收数据。当MSComm控件检测到串口产生接收事件comEvReceive时,表明下位机已开始传输采样数据包至上位机,接收完成后,上位机界面(图5)显示各传感器测量数据。采样数据同时被保存为文本文件,如图7所示。上位机在下一个采样时间点重复发送控制指令并准备接收和保存数据。
邮件自动发送功能的实现使得国内的科研人员能够及时方便地获取南极长城湾海域的生态环境及动力要素的监测数据。为了及时获取数据并且方便数据的处理,邮件的发送周期定为1 d。每天所采集到的144组采样数据保存于上位机指定的子目录中,并以当天日期命名文本文件。到达设定的邮件发送时时,上位机以前一天的数据文件所在路径作为邮件附件的路径,把前一天的数据文件以附件形式发送到指定的电子邮件地址。电子邮件的主题格式为:
图6 控制及数据接收功能流程
图7 采样数据在文本文件中的保存形式
“YYYY-MM-DD HH:MM:SS”
“YYYY-MM-DD HH:MM:SS”既是邮件主题也是邮件的发送时间,如接收到主题为“2010-3-31 1:05:00”的邮件则表示此邮件是2010年3月31日1:05:00发送过来的监测数据。而邮件附件里所附文件为2010年3月30日的全天的监测数据。这种邮件主题命名方式便于研究人员查收目标日期的数据。
上位机工作时,上位机软件监测上位机系统时间是否到达预定邮件发送时间,到达后即把指定路径下的数据文件通过邮件附件发送到邮箱,从而实现无人值守情况下的数据文件自动发送功能。自动发邮件流程如图8所示。
图8 自动发邮件功能设计流程
发送邮件功能通过调用Jmail组件实现。JMail邮件组件是Dimac公司开发的第三方邮件操作组件,用来完成邮件的发送、接收、加密和集群传输等工作。它是一种服务器端的邮件发送组件,与个人使用的客户端邮件软件不同,它仅在服务器端工作。与其类似的组件还有 CDONTS,NewMail,Persits,MailSender,IISmail等等,他们的区别在于 Jmail只需要注册一个dll组件即可被调用,而其他则需要在iis上设置发布smtp服务器。
VB调用Jmail发送邮件的主要代码如下:
数据回放功能主要是对已采样到的数据绘制随时间变化曲线图。采样数据以数字的形式保存在文本文件中,在查看某传感器测量值的变化趋势时非常不直观。数据回放功能把各个传感器组中的单个传感器测量值单独绘制随时间变化曲线,便于查看其随时间变化趋势。数据回放具体功能设计思路如下:
在已保存的数据文件中选择待回放的文件,上位机软件读入文件中所有的采样数据,自动绘制出各个传感器组下的单个传感器的数据的时域曲线。选择单日数据文件进行数据回放时,绘制当日数据曲线;选择总的数据文件进行数据回放时,可以查看各个选定时间段内的数据曲线。数据回放流程如图9所示。
图9 数据回放流程
使用微软为开发者提供的MSChart控件绘制数据曲线图。 添加 MSChart对象以后,通过 ChartType,Title,Footnote,Plot等属性对图表类型和外观显示等信息进行设置。采样数据是按照图7中的格式进行保存的,要绘制出各传感器单独的测量参数曲线,重点是把各个传感器数据从各次采样的总的数据中提取出来形成一个按采样时间排列的数组,再把数组赋值给MSChart对象的ChartData属性绘制出对应传感器数据的曲线图。图6所示过程即把各个传感器数据从总的数据中提取出来存入多维数组的元素中去。
图10 提取传感器数据流程
图11 SBE16-2自2010年1月15-21日各测量数据曲线
本文根据极地海洋近岸环境监测系统的功能需求,为上位机设计了一套可视化的控制软件。采用“问答式”的控制方式实现对下位机的控制及数据采集。通过对Jmail组件的研究和应用,附件路径按保存采集数据的文件名自动变化,实现了极地近岸海洋环境监测数据的自动发送。此外,上位机软件还实现了监测数据的可选择性回放功能。经过了室内调试实验、青岛海试调试和南极现场调试,上位机目前在南极长城站稳定工作,采集到的数据完整,数据文件按时自动发送,数据回放正常,为极地海洋环境监测数据的长期实时获取打下良好的基础。
图12 SBE37自2010年1月15日-21日各测量数据曲线
图13 ADCP自2010年1月15-21日第1层海流速度辐值和方向曲线
[1] 许永和.Visual Basic接口设计与工程实践[M].北京:人民邮电出版社,2007.
[2] 林卓然.VB语言程序设计[M].北京:电子工业出版社,2009.
[3] 李长林.Visual Basic串口通信技术与典型实例[M].北京:清华大学出版社,2006.
[4] 李旭东.VB环境下MSChart控件的应用与研究[J].内江科技,2008,9:146-147.
[5] 马玉春,宋翰涛.串行通信协议的研究及应用[J].计算机应用研究,2004,4:228-232.
[6] 曲探宙.中国极地考察的现状与未来发展[J].海洋开发与管理,2006,5:40-43.
[7] 郭忠文,尚传进,管恩花.面向服务构架的海洋数据集成系统的设计与实现[J].计算机应用研究,2006,2:157-160.
[8] 康伟,郑正奇.Windows下实时数据采集的实现[J].计算机应用研究,2001,3:105-106.
[9] 黄土松,杨修群.极地海冰变化对气候的影响[J].气象科学,1995,15(4):45-56.
_data为VB开发环境中定义的字符串变量,用于把待回放的数据文件中的所有数据以字符的形式保存于内存中。data_array(lastrow×1)为由lastrow个元素组成的一维数组,lastrow为待回放数据文件中所存数据的采样次数,data_array(lastrow×1)的每一个元素保存着下位机一次采样的数据。data_SBE37(lastrow×4)为保存着SBE37采样数据的二维数组,1~4列分别对应着采样时间、温度、盐度、深度,每行代表着单次采样数据。SBE16传感器组比SBE37传感器组多4个测量量,分别是pH,ORP,叶绿素和PAR,所以data_SBE16-1(lastrow×8)和 data_SBE16-2(lastrow×8)比 SBE37(lastrow×4)多 4 列,。data_adcp(lastrow×19×5)为三维数组第一维代表单次的采样数据,第二维代表每次采样数据中包含的19层海流数据,第三维主要储存每层海流数据在不同方向上的分量,其中1~5列分别对应着采样时间、东向速度、北向速度、竖向速度和校正值。对于data_SBE37(lastrow×4),data_SBE16-1(lastrow×8)和 data_SBE16-2(lastrow×8)而言,把存储采样时间的第一列和存储相应传感器数据的某列组成的二维数组赋值给MSChart的ChartData属性,即绘制出该传感器数据的曲线图。ADCP所测海流数据的曲线图的绘制与前三个CTD有所不同,需要分别绘制不同层次的海流辐值和方向图,单层海流辐值和方向角由水平面上东向和北向两个方向上的速度分量进行辐值和相角的运算求得。把相应的辐值和相角值与对应的采样时间组成的二维数组分别赋值给两个MSChart对象的ChartData属性,即能绘制出某层次的海流辐值和方向曲线。图11~13分别是SBE16-2、SEB37和ADCP自2010年1月15-21日各测量数据回放的曲线图。
Antarctic Great Wall Bay Marine Environment Monitoring System PC Software Design
ZHU Rui,WANG Xiang-nan,SHI Jian-jun,TIAN Chuan
(National Ocean Technology Center,Tianjin 300112,China)
Supported by the Eleventh Five-year “863” project,Antarctic coastal marine environment monitoring system located in the Great Wall Bay was developed.Main work was the upper software design for real-time transmission of data.PC software uses VB6.0 as a development tool and a “Q”type of control is used to control the lower system.Using MSComm,Jmail,MSChart and other controls or components,the software design features a modular design and realizes the host computer sending the control orders,receiving,displaying,saving the sampling data,auto-sending email and data playback.
Great Wall Station;environmental monitoring;“Q” type of control;automatic email;data playback
P71
B
1003-2029(2010)04-0023-08
2010-05-15
国家高技术研究发展计划(863)资助项目(2007AA092121)