用Visual Basic实现仿真终端的一种方法
摘 要 本文对Windows环境中的基于串口通信的软件“超级终端”进行了一定的研究,针对其固有的一些缺陷,提出了一种解决方案,并且根据一个具体的工控机实例,论述了这种方案的可行性。
关键词 串行通信;仿真终端; Visual Basic; ActiveX控件; 远程监控
Abstract This article is focused on the super-terminal based on serial ports under Windows98. Because of its instinct disadvantages, the author put forward an appropriate method in order to solve them. A practical example is also offered.
Keywords serial communication; emulational terminal; Visual Basic; remote monitor; ActiveX
引言
“超级终端”是Windows中的一个程序,通过计算机串行口,使用调制解调器同时调用此程序能够连接其他计算机(包括各种工控机)、Internet远程登录站点、BBS(电子公告板系统)、联机服务或主机。也可以使用超级终端通过串口将大型文件从计算机传输到便携式计算机,而无须通过在网络上设置便携式计算机进行此项工作。
超级终端无疑给用户提供了很大的帮助,尤其是在需要远程管理或是远程登陆的情形下,超级终端几乎是不可或缺的工具。但是超级终端自身也具有一些缺陷。因为它给用户仅提供字符界面,各种操作必须以命令行的方式进行,而且交互界面不甚友好,用户在使用中会感到很不方便。另外,超级终端仅具有最基本的输入和输出功能,无法进行一些复杂的操作,例如定时执行、自动执行、选择执行等,而且它没有数据管理和处理功能,在很多情形下无法满足用户的需要。因此,根据实际情况,有必要开发更加实用、功能更加强大的仿真终端。本文作者希望根据一段实际工作经历,深入地讨论这一问题。 1. 总体设计思想
基站监控机是一种小型工控机,它被广泛地使用在无线寻呼台的发射基站的监控工作中,通过发送命令,实时采集数据和状态参数,用以掌握寻呼基站的工作状况,如果发现异常,可以立即做出处理,保证寻呼基站的正常工作。因为寻呼台的发射基站分布往往比较分散,所以不适合集中监控,一般采用分布式的远程监控。由于上面提到的超级终端的种种缺陷,所以必须重新开发出一种新的满足实际需要的仿真终端。Visual Basic是目前流行的一种程序设计工具,它具有良好的用户界面和强大的对串口通信的开发能力,因此选择它作为仿真终端的开发工具。
1.1 可视化图形界面
为了方便用户操作,本系统采用全菜单式设计,取消了传统的字符终端和命令行输入的方式。所有命令均集成于图形界面之中,用户仅需操作鼠标即可完成绝大部分工作(除个别操作须手工完成,例如身份注册等)。
基站监控机拥有一整套自己完整的命令集,其中一部分命令格式较复杂,需要多个参数,若手工输入容易产生错误,工作强度比较大。采用全菜单操作之后,用户工作量大大减轻,而且发生错误的概率也相对降低。
1.2 数据库管理功能
传统的超级终端仅仅具有最简单的输入输出功能,返回的信息只能显示于终端屏幕上,无法保存。而用户往往对结果要求做进一步的处理,包括综合、统计、打印等。所以本系统利用Visual Basic自备的本地数据库Access作为主数据库。整个数据库分为两大部分:系统信息库和状态信息库。
系统信息库主要包括寻呼基站的基本性能参数和操作员自身的管理信息。状态信息库包含读取基站的各种状态信息和历史信息。
1.3 自动定时执行
当用户需要管理的基站超过一定的数量后,对每一台基站的监控工作往往成为一种单调的常规性的任务,这时简单的操作已经无法满足要求了。因此有必要增加自动执行功能,将每一次都要进行的常规工作集合在一起,依次执行。再增加定时功能,实现无人监控,在最大程度上提高了系统性能,减轻了管理员的工作量。关于这个问题将在后面做进一步讨论。
2. 系统的结构和功能
2.1 总体结构
本系统采用两级菜单结构:主菜单和二级菜单。
主菜单和二级菜单如图1所示。按照功能分为系统管理、从机管理、设备管理、参数设置等栏目,二级菜单包括具体操作内容。一些常用的操作被设置为工具拦,以方便用户使用。
2.2 功能模块
本系统按照功能的不同主要可以分为两大部分:数据库管理模块和监控模块。
2.2.1 数据库管理模块
此模块主要用来对数据库进行管理。数据库包括管理员信息,硬件信息,状态信息,历史信息等。操作内容包括查询,增加,删除,修改等。
2.2.2 监控模块
此模块完成所有的对基站监控机操作,包括建立连接、读取状态信息、自动执行、断开连接等。图2所示其中之一典型操作。
3. 关键技术
3.1 远程通信的实现
远程监控中心可以对分布的各个独立的工控机进行遥测、遥控。基站监控器可以现场监测和控制寻呼台的各项工作参数;可以接受远端监控中心的查询、控制;并可以向中心上报工作状态。为实现上述功能 ,首要任务是建立两者之间的通讯。因此可分别将监控中心计算机和基站监控机通过RS-232C接口与Modem相连,再通过Modem接入公用电话网(PSTN),由PSTN实现本地Modem与基站modem的联接,就可以实现监控中心计算机与基站监控机之间的通讯。如图3所示。
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。MSComm 控件提供了一系列标准通讯属性和方法。使用它可以建立起应用程序与串行端口的连接。为实现远程通讯,还需要把调制解调器与串行端口通过RS-232C接口连接,这样,在应用程序中发出AT命令,就可以达到控制调制解调器的目的,进行远程通信。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数。
对MSComm控件的初始化程序如下:
……
MSComm_1.CommPort = “1”
MSComm_1.Settings = 9600,N,8,2
MSComm_1.InputLen = 0
If MSComm_1.PortOpen <> True Then
MSComm_1.PortOpen = True
End If
……
3.2 用控件实现远程命令
传统的超级终端用命令行的方式完成包括连接和断开在内的一系列操作,在本系统中,基站监控机的所有命令都通过MSComm控件完成。具体程序如下所示:
……
outstring = ”ATDT” & “3227885” & vbCr
for i = 1 to 7
for j = 1 to 1000
DoEvents
Next
Exitmsg = Mid(outstring,I,1)
MSComm_1.Output = exitmsg
Next
……
3.3 连续数据流的读取和保存
从基站监控机读取的信息通常为连续的ASCⅡ字符流,其中包含状态信息(如电流、电压、温度、功率等)和其他的辅助说明信息。为了将关键信息鉴别和提取出来,必须对发回的数据流进行处理。当状态信息被读取后,将其在屏幕上显示出来,同时保存入数据库。
3.4 自动操作的实现
一个大型的寻呼台往往会有几十台甚至上百台基站监控机,如果采用手工操作,工作量巨大。另外,监控工作通常要求昼夜执行,不宜采用手工操作。因此,必然要求自动操作。在这里,自动操作包括两层含义:一是在一次常规操作中,必须轮流监控所有的基站监控机;二是定时执行所有的常规操作。
利用Visual Basic提供的定时服务控件Timer,可以实现以上功能。Timer控件的最大定时间隔只有1分钟,要想实现大于1分钟的定时,必须在Timer事件中增加一段程序,利用循环等待来实现特定的时间间隔.例如要求的定时为1小时,需要在Timer事件中增加如下程序:
public p_loop_1=60
public p_loop_2=0
Private Static Sub Timer1_Timer()
……
p_loop_2 = p_loop_2 + 1
If p_loop_2 < p_loop_1 Then
Exit Sub
End If
p_loop_2 = 0
……
end sub
4. 总结
此系统在完成开发后,经过用户一段时间的实际使用,反映良好。相对于传统的超级终端,本系统具有无可比拟的优越性,在一定程度上弥补了传统终端的固有缺陷,实现了高性能和高可靠性的结合。
本文针对传统的超级终端的缺陷,提出了一种有实用价值的解决方案。核心思想是充分利用了Visual Basic优良的开发性能,将软件和硬件充分结合。这种解决方案并不仅仅适用于寻呼基站监控这一特定场合,在大多数类似的环境中,例如通过串口对工控机进行的现场或是远程的监控和采样,都可以尝试运用这种方法。本文作者希望这篇文章能够起到抛砖引玉的作用,相信今后一定可以看到更加出色的解决方案
文章版权归西部工控xbgk所有,未经许可不得转载。