姜小云,吴 俞
(1.海南省气象技术装备中心,海南 海口 570100;2.海南省琼海市气象局,海南 琼海 571400)
自动气象站综合自动调试软件的设计
姜小云1,吴 俞2
(1.海南省气象技术装备中心,海南 海口 570100;2.海南省琼海市气象局,海南 琼海 571400)
通过一个全新的综合各个厂家各种型号的自动气象站自动调试软件来实现不同自动气象站的现场维护维修调试,使得各种自动气象站维护维修工作变得方便、简单、高效。维护维修实践工作证明该软件设计适合各种自动气象站的维护维修。
自动气象站;自动;调试软件
目前自动气象站的建设日趋成熟,但是由于自动气象站的生产厂家、型号和用途各不相同,使得各种自动气象站的正常运行和自动气象站设备的维护维修变得困难。自动气象站的安装调试维护维修工作一般都是通过自动气象站采集器的串口通信来实现的。因此,无论哪个厂家生产的自动气象站工作原理都相似,这就使得设计一个综合所有厂家各种型号的自动测试、调试自动气象站设备故障的软件成为可能。由于考虑到许多地面气象观测员所学专业都不是机电类,所以,对于这些非专业的自动气象站设备操作维护人员需要简单方便、快速高效地来解决各种自动气象站自动观测运行工作中出现的各种问题,比如各种自动气象站调试命令字符串难以记住,另外现在的笔记本电脑一般都不自带串口而需要USB转RS232实现串口功能,这样使得我们不清楚目前可用的通信端口是哪一个等等。
为了解决各个厂家不同型号自动气象站运行中出现的各种问题,就需要利用各厂家不同型号自动气象站的调试命令字符串(比如,江苏无线电科学研究所有限公司生产的中尺度气象站ZQZ-A型的调试命令字符串为TEST加上回车符;ZQZ-BH型调试命令字符串为 SAMPLES加上回车符[1];华创升达高科技发展中心生产的CAWS-600型号的遥测自动气象站的调试命令字符串为UB加回车符[1])。用 Windows编程软件[2]比如 VB 设计一个串口通信程序,自动选择笔记本电脑可用的串行通信端口,自适应地依次判断不同厂家不同型号的自动气象站,发送相应的调试命令字符串,然后返回相应的自动气象站的实时数据信息和运行状态信息给本调试软件数据接收界面中,供自动气象站操作维护工作人员查看。所有操作都由软件自动完成,不需要人工操作,也不需要维护人员知道过多的自动气象站设备软硬件知识。整个操作流程一步到位,简单方便、快捷高效。
利用windows编程语言[2]实现该自动气象站综合调试软件的系统操作界面如图1所示。本软件界面摒弃了原来各自动气象站生产厂家的一些比较复杂的参数设置和专业技术知识背景,使得操作非常简单方便。
整个软件都采用控件编程。包括两个命令按钮控件、一个串口通讯控件、一个文本框控件和两个标签控件。使用串口通讯编程对象MSComm控件来进行程序设计能大大降低软件设计的复杂性和难度。该控件的全称是 Microsoft Communication Control,是由Microsoft公司开发的主要用于实现电脑与单片机之间通信的ActiveX控件。该控件不在常用控件工具箱里,可单击程序中的“工程”,选择“菜单”,再选择“部件”命令,在部件对话框中选择“Microsoft CommControl 6.0”,此时工具箱中就会出现MSComm控件的图标。MSComm控件可以用来轻松实现串行通讯功能,它可以建立与串口的连接,通过串口连接到其他设备(例如:自动气象站、智能仪器仪表),可以发送命令、交换数据以及监视和响应串口中发生的事件和错误。
图1 软件实现界面
在串行通讯程序的编写中,可在 MSComm控件属性中设置串口端口号、波特率、数据位、奇偶校验位、停止位等(如 COM1,9600,8,n,1),发送的命令字符串和自动气象站采集数据传输格式要依据不同型号自动气象站的通讯约定,具体方法要参考相关自动气象站的说明资料,这里不再详述。由于篇幅所限,具体的程序代码这里不给出,有关采用MSComm控件来进行串行通讯的例程的资料有很多[2]。
系统设计流程框图如图2所示。整个流程的工作原理是:首先程序轮流打开电脑的所有可用串口。例如,先打开串口1,如果打开成功,那么以合适的波特率参数发送某一种型号的自动气象站调试命令字符串。如果有自动气象站采集数据返回,则接收数据到软件的接收显示区,否则再以另一种波特率参数发送另一种型号的自动气象站调试命令字符串。如果所有型号的自动气象站都轮流发送了一遍仍然没有数据返回,这就说明串口1没有用来连接自动气象站,那么再打开串口2,操作同上,以此类推,直到有自动气象站采集数据返回再进行下一轮操作。该软件由于使用了一个无限循环体实现自动操作功能,不需要人工操作,因此还需要一个避免死机的进程退出机制。DoEvents函数能够很好的解决上述问题,能转让系统控制权给用户,以便让操作系统处理其它的事件。其使用语法是在循环体的内部添加一条函数调用语句DoEvents()。在本软件实现中,把该条语句放在while循环体内。
图2 软件设计流程简图
自动气象站的生产厂家、型号和用途各不相同,使得各种自动气象站的正常运行和自动气象站设备的维护维修变得困难。本文通过一个综合各个厂家各种型号的自动气象站自动调试软件来实现不同自动气象站的现场维护维修调试,只要用电缆线与各种自动气象站采集器相连,运行该软件就可以自动得到调试数据信息。其最大的优点是避免工作人员在野外高山、海岛、暴晒等恶劣条件下长时间的安装调试自动气象站设备,可以减轻多余的体力开支,同时操作简单,能高效解决自动站的故障问题。维修业务实践证明本软件非常适合各种自动气象站的维护维修。该软件已在海南省18个市县台站的400余个各类型自动气象站的实际检修业务中,发挥了积极作用。据不完全统计,使用了该软件的检修业务完成时间比此前平均缩短半小时以上。其软件成果作为海南省气象技术装备全网实时监控与保障系统的一个子系统,共同获得了海南省科技厅2010年科技进步三等奖。
[1] 李黄.自动气象站实用手册[M].北京:气象出版社,2008.
[2] 李江全,等.Visual Basic串口通信与测控应用技术实战详解[M].北京:人民邮电出版社,2007.
P468
B
1003-6598(2011)03-0048-02
2010-11-08
姜小云(1978-),男,助工,主要从事天气雷达、自动气象站维护维修及计量检定等工作。