苏震宇
(淮南市矿用电子技术研究所,安徽淮南232001)
在许多现场自动监测系统中,计算机和实际监测系统之间需要进行数据交换。在电池的管理系统中,需要对电池的相关数据进行采集并实时显示,以便于工作人员观测,通过数据曲线的比较,可增强分析性,及时发现问题和解决问题。IO COMP Components是一个面向仿真、工业自动化、仪表等数据图形领域的通用组件包。包含了丰富的应用在Visual Basic和Visual C++、Delphi等Windows开发工具的嵌入式控件,包括各种形式的报警器、测量、棒图、LED、仪表、数码管、计数器、趋势图等48种面板指示控件。本文将介绍基于VB的Iocomp控件实现实时监控的绘制方法,该方法简便易行,编程也比较简单,在实际应用中得到了良好的效果[2-3]。
上位机部分,使用VB编程来实现对数据的接受、显示和存储等。VB6.0不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能,采用VB开发基于Windows下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较少开发周期短。上位机能过RS232转RS485和电池管理系统进行通信,将电池管理系统所采集的电池相关的数据信息在电脑上显示并存储。
VB串口通信利用MS COMM通讯控件向电池管理系统发送信息,并对管理系统进行控制。
MS COMM是Windows下串行通信编程的Active X,它为应用程序提供了通过串行接口收发数据的简便方法。MS COMM提供了两种处理通信问题的方法:一是事件驱动,一是查询[1]。
1)事件驱动方式
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或Carrier Detect线上一个字符收到或发生一个变化时。可以利用MS COMM控件的On Comm事件捕获并处理这些通讯事件。On COMM事件还可以检查和处理通讯错误。该方法优点是程序响应及时,可靠性高。每个MS COMM控件对应一个串口,如果程序需要访问多个串口,必须使用多个MS COMM控件。
2)查询方式
查询方式实质上还是事件驱动。在程序的每个关键功能之后,通过轮询检测Comm Event属性的值来查询事件和错误。这样显得更为便捷。本文将对以下几种方式进行对比分析。
方法一:采用Tee Chart实现。Tee Chart Pro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择的绘图控件。Tee Chart还包括一个强大的、完整的编辑对话框,几乎可用于每个组件和子组件,可以快速的设计同复杂图表应用程序。图表编辑器通过Tee Commander组件进一步得到增强,它提供一次点击访问图表编辑器和共同特征。
方法二:在VB中绘制实时曲线是比较难的,一般要应用第三方控件或是Windows API函数来完成,但是如果对实时曲线的要求不高,只要能表示出当前的一般情况的话,可以直接应用V B提供给我们的空间来完成。
方法三:可以采用工控组态软件来实现。组态软件具有动画显示、流程控制、数据采集、设备控制与输出、工程报表、数据与曲线等强大功能,在自动控制中占据主力位置。
方法四:采用Iocomp控件来实现。结合Ioeomp Components图形仪表组件,易于实现VB组态。
结合来看,采用Iocomp控件来实现实时曲线的绘制是最佳的,在工业控制软件当中,它将为更多的程序员提供更广的应用领域和发展空间。
IOCOMP[4-5]是一套用于工业的仪表盘控件,适用于ActiveX或VCL开发环境。提供自定义属性编辑器可以快速和简单的配置,VCL版包含所有的源代码(100%的Delphi源代码),发布版权免费(除HMI和SCADA类型的应用),矢量绘制,不会因为图像的大小引起图形变形,支持OPC。分为四个版本分别是:Std Pack、Pro Pack、Plot Pack、Ultra Pack。IOCOMP Software特征如下:
自定义属性编辑器:每个控件都带一个将属性以逻辑形式分组的属性自定义编辑器,它使得用户能够轻松的设置控件属性。在属性窗口中可以无限的搜索,属性窗口也可以无限的层叠。
值相关联:大多数的控件都拥有一些值,它们在设置前可能是相关联的,这就提供了一个相关联的机制以及程序灵活性。
实时高效:该控件具有实时显示、缩放、滚动、即使是进行数据绘制时,不限制X有及Y坐标轴、不限制通道、曲线拟合、直角坐标轴、可视化的布局管理器、支持EMF、BMP、JPG以及TXT格式的文件输出,及具高效性。
IOCOMP控件主要有三种组件:(iPlot、iXYPlot和iScope。
iPlot是一款即时绘图组件,支持具有连续递增的x坐标的数据序列的绘图。其典型的用途是图表记录或滚动图表类型的应用。该组件可用于所有的绘图应用。iP1ot组件的应用使得绘图程序得到了最优化,iPlot组件还可提供高速接入和绘图方法。
iXYPlot是一个即时绘图组件,它支持具备任意X、Y坐标值的数据。
iScope是一个真正的实时模拟数字范围的组件。支持实时处理和显示的数据时,5MHz的信号输入率如果是连续的数据或使用更高的数据传输率采用间断数据。
iPlot组件和iXYPlot组件的等级是相同的,除了通道的对象。其常用属性为:
Channel属性,可以访问指定的通道。可以使用Add Channel,Delete Channel,Remove All Channel方法在运行时间中添加或者移除某个通道。在设计时,可以使用内置的属性编辑器来改变通道。Annotation属性,可以访问指定的注释。可以使用Add Annotation,Delete Annotation和Remove All Annotation方法在运行时间中添加或者移除某个注释。注释无法在设计时间中添加。X-axis属性,您可以访问指定的X轴线。您可以使用Add X Axis,Delete X Axis和Remove All X Axes方法在运行时间中添加或者移除某个x轴。在设计时间,可以使用内置的属性编辑器来改变某个x轴。Y-Axis属性,可以访问指定的Y轴线。可以使用Add Y Axis,Delete YA xis和Remove All Y Axes方法在运行时间中添加或者移除某个Y轴。在设计时间,可以使用内置的属性编辑器来改变某个Y轴。Data View属性通过索引号,可以访问数据视图。该功能接口支持多个数据视图,但是在当前版本中未提供该功能支持。Tool Bar属性通过索引号,可以访问工具栏。该功能接口支持多个工具栏,但是在当前版本中未提供该功能支持。Legend属性通过索引号,可以访问图标符号。该功能接口支持多个图标符号,但是在当前版本中未提供该功能支持。
我们可以直接修改程序来进行对一些属性要求的设置,也可以直接在面板的分项属性中进行设置,对各属性不同的设置得到的结果显示也将不一样,可以根据设计员自己的要求来具体设置。
图2
通过介绍使用IOCOMP组件在在VB设计可视化虚拟仪表的技术,灵活使用IOCOMP组件技术可以使用户可以不必了解虚拟仪表内部的软件设计,只要安装了IOCOMP组件就可方便地创建虚拟仪表,不仅使得人机交互更加方便,而且可以实现数据显示的实时性,具有较高的实际应用价值。
[1]范逸之,陈立元.Visual Basic 与 RS-232 串行通信控制(最新版)[M].北京:清华大学出版社,2002.
[2]潘地林,陈清华.Visual Basic 程序设计教程[M].合肥:安徽大学出版社,2004.
[3]张树兵,戴红,陈哲.Visual Basic6.0 入门与提高[M].北京:清华大学,2000.11.
[4]孙建洲,李伟.基于IOCOMP组件对汽车虚拟仪表的实现[J].工业控制计算机,2007.20(11).
[5]康雪丽.基于BCB的实时数据采集与分析系统[J].科技信息,2008(1).