方案综述:
虚拟仪器是指具有虚拟仪器面板的个人计算机仪器,它是计算机资源、模块化功能硬件与用于数据分析、过程通信及图形用户界面的应用软件的有机结合。它利用软件在屏幕上生成各种仪器面板,完成对数据的处理、表达、传送、存储、显示等功能。虚拟仪器与传统仪器相比,其主要优点是可以由用户自己定义、自己设计仪器系统,以满足不同的要求,使仪器的功能更加强大、灵活,而且很容易同网络、外设及其他应用相连接。这样既降低了价格www.cechina.cn,节省开发、维护的费用www.cechina.cn,又缩短了技术开发周期。
虚拟仪器的关键技术之一就是应用软件,这是因为,虚拟仪器的主要功能是由软件来体现的,即“软件就是仪器”。虚拟仪器的软件开发平台应该提供一个图形化的编程设计环境,值得一提的是NI的LabView和LabWindows及HP的VEE。
本文介绍的基于网络的虚拟仪表系统是一个不包含数据采集及总线控制系统的虚拟测试平台,主要用于对测试数据文件的事后处理或对被测对象进行实时仿真测试,形成网络化测试仿真系统。
1、基于网络的虚拟仪表系统
1.1系统组成
整个软件系统划分为两个独立的子系统:编控子系统和播出子系统。
编控子系统的主要工作是建立、编辑演示模型并控制仿真的启动和结束。编控子系统又可以划分为两个子模块:编辑模块和播出控制模块。通过编辑模块,允许用户设计建立满足自身需要的虚拟仪表模型,也可以对一个现有的仪表模型进行编辑。通过播出控制模块可以实现网络仿真功能,建立和播出子系统之间的连接关系;并通过数据接口不断接收外部输入的仪表参数,向已建立连接关系的各播出子系统发送相应的指令/数据包以更新仪表显示状态。
播出子系统负责接收播出控制系统发来的指令/数据包(包括数字仪表模型、各种参数等),对指令进行解释,不断刷新显示当前仿真结果。在播出子系统中可以指定某可视化对象是否可见,这样可以使在不同的计算机上运行的播出子系统显示不同的仪表面板来达到分布式并行处理的目的。
1.2 参数的网络传输
系统需要在不同计算机之间进行参数传输,因此网络通信是必不可少的条件。本系统采用的是客户/服务器结构的应用程序,这种结构非常适用于分布式处理的计算机网络环境。由于系统是面向PC机平台的应用,因此采用基于TCP/IP协议的Winsock接口实现网络间的数据传输。
2、虚拟仪表面板对象
2.1面向对象的设计方法
在虚拟仪表的可视化设计过程中CONTROL ENGINEERING China版权所有,采用了面向对象方法。一个虚拟仪表系统由许多仪表组成,每个虚拟仪表均由面板控制,因此按照面向对象的设计思想将面板分解为具有继承关系的面板对象(Panel Object),每个面板对象都有各自的独立属性和行为。
对于虚拟仪表系统,可以将其仪表面板对象划分为基本的图形元素和专用面板对象两类www.cechina.cn,基本的图形元素即图元包括直线、矩形、椭圆、多边形和文本等;专用面板对象包括按钮、开关、旋钮、动态调节器等面板控制控件和指示灯、数字仪表、指针仪表、图像显示器、示波器等面板显示控件以及其它特殊显示控件。
2.2面板对象数据结构
在虚拟仪表系统中,面板对象是以图形的方式显示的,系统允许用户通过人机交互的方式对仪表对象的属性参数进行修改。对象的描述包括了定义面板对象各组成部分形状的几何坐标数据,对象的属性如线型、颜色等,还有非几何的文字或数值,如对象名称和可见信息等,它对于后处理程序或交互作用的使用是非常有用的。
各种面板对象都具有共同的属性,因此基于各种面板对象的数据类型和结构,可抽象出通用的基类数据结构。综上所述,可以如下定义面板对象的基类数据结构:
class base{
m_csObjectName; 面板对象名称
m_bVisible; 可视信息,0——不可见;1 —— 可见
m_crPosition; 面板对象的位置信息及其包 围框大小信息
m_logbrush; 绘制该面板对象时采用的画 刷,决定填充属性
m_logpen; 绘制该面板对象时采用的画
笔,决定线属性
};
具体的面板对象的数据结构均继承基类的数据结构,并在基类的基础上,根据不同的面板对象的属性和参数www.cechina.cn,添加相应的数据类型就可以