工作量。第二,要保证数据在服务器和客户机、客户机间可靠的传输。设计时需考虑网络的带宽要满足传输要求,并减少网络数据传输量。
Agilent IO库允许通过LAN进行仪器的控制操作。使用标准的LAN接口,计算机可以不要特殊的仪器接口就可以实现对仪器的控制。LAN软件使用计算机的C/S模式,这种模式使得应用程序(客户)可以不用执行所有的工作,相反,客户机可以向另一台仪器(服务器)发出某种请求。与可控仪器或器件相连的LAN服务器,一旦完成仪器或器件的请求,LAN服务器会反馈信息给客户机。反馈的信息包括数据和状态等表明操作是否成功的信息。例如网关在LAN软件(客户机支持)和器件支持的仪器接口之间扮演一个服务器的角色。基本结构如图
图1-1
LAN软件结构:该结构中,包含了LAN客户软件和LAN软件(TCP/IP)(用于访问服务器—gateway)。网关包含了LAN服务器软件,LAN(TCP/IP)软件以及用于和客户机通讯和控制仪器的仪器驱动软件。
图1-2
1.2.3软件设计
与硬件结构相对应,软件结构可分为网络测控系统控制主模块,是系统控制的中枢,连接和控制各子模块;虚拟信号源、虚拟万用表和虚拟示波器等模块,是控制相应台式仪器,使其完全能处于远程虚拟控制状态,给测控对象提供激励信号,并监视受控对象输出特性变化;虚拟VXI仪器和信号调理模块是控制SCXI和VXI硬件模块仪器进行模拟量数据采集与开关量对象控制,包括数据处理;图象采集模块,包括采集现场景物视频图象和有形对象的图象采集.与图象处理;网络通信模块承担不同总线模块与主模块之间的数据传输与通信,也是实现本测控系统与远程用户之间的控制与数据传送。每个虚拟仪器模块内部都封装了对应仪器状态控制命令集、数据采集命令集、数据处理模型以及通信协议等处理子模块。
下面的第三章至第五章介绍的就是函数信号发生器、示波器以及万用表模块的设计和具体的编程。下面让我们先来了解一下VC++6.0开发工具和Agilent VISA库。
2 开发工具和Agilent VISA库介绍
Visual C++6.0是一套功能强大面向对象的且具有集成编辑器及编译器的编程语言开发平台。今天我们所使用的许多应用软件,大部分是利用C语言来进行编写的。Visual C++6.0没有很复杂的开发界面,给用户的开发以很大的灵活性。
2.1 Visual C++6.0的特点
在众多的程序语言中,Visual C++6.0是具有编辑和编译的集成开发环境。通过 Visual C++6.0的编辑功能,可以方便的设计程序。它的编辑功能可以随时让我们了解到程序的结构、流程以及对象的成员,而完成程序设计之后,也不必经过复杂的编译程序,而且给出的错误警告可以很方便的进行定位操作,这给程序设计人员以方便。
2.2 IDE的集成开发环境界面
IDE就是Integrated Development Enviroment的缩写,是将程序代码的编写(editor)、编译(Compiler)、执行(execution)以及纠错(debug)等功能汇集一身的单一整合性的界面,提供程序开发过程所需要的相关或扩展服务,让用户只需要通过此环境便可以轻松完成程序工程。
2.3 Agilent VISA纵览
VISA是Agilent IO库的一个部分。Agilent IO库由两个部分组成:VISA和SICL。Agilent VISA是根据VXIpp系统联盟的规定设计的,它允许由不同的厂商开发的软件能在同一个系统中运行。
如果你想在你的应用程序中使用VXIpp仪器驱动或者是想是自己开发的IO应用软件或仪器驱动能符合VXIpp的标准,就需要使用VISA。如果你使用新的仪器或开发IO应用程序以及仪器驱动的话,也应该使用VISA。
Agilent VISA 是一个IO库,可以用来开发符合VXIpp标准的IO应用软件和仪器的驱动。使用VISA开发的应用软件和仪器驱动可以在使用VISA IO库的VXIpp主机上运行。因此,不同厂商开发的应用软件可以在同一个系统中运行。
32位版本的VISA能在Windows 95 98 Me以及NT和2000中使用。C,C++和Visual Basic在这些系统中都被支持。
对与Windows,VISA支持GPIB、VXI、GPIB-VXI、Serial(RS-232)以及局域网接口。在Windows NT中,对VXI接口支持的VISA仅能运行在Agilent 嵌入式的VXI控制器产品中。一台网络计算机能够通过网络访问配置VISA地址譬如GPIB接口地址上的仪器。
2.4 VISA编程
在VISA的编程中需要了解VISA的一些机制: VISA的资源和属性、会话使用、
发送I/O命令、使用事件与句柄、捕抓错误等等。
VISA资源:在VISA中,任何VISA可以提供通讯的器件(如电压表)都可以定义为一种资源。对于一个完善的VISA系统,VISA定义完全符合VXI即插即用联盟的规范的六种资源类可以被执行。
VISA属性: 属性是和各种资源或会话相关联的。你可以使用属性来决定资源或会话的状态或设置资源或会话为指定的状态。
譬如,你可以通过viGetAttribute函数来读取指定会话、事件、查找列表的属性的状态。有只读和读写的属性。通过使用viSetAttribute函数来修改