测试仪器控制
来源:互联网 发布:win10 安装软件消失 编辑:程序博客网 时间:2024/05/16 23:39
仪器控制是指通过PC上的软件远程控制总线上的一台或多台仪器。 它比单纯的数据采集要复杂的多。它需要将仪器或设备与计算机连接起来协同工作,同时还可以根据需要延伸和拓展仪器的功能。 通过计算机强大的数据处理、分析、显示和存储能力,可以极大的扩充仪器的功能,这就是虚拟仪器的基本含义。
一个完整的仪器控制系统除了包括计算机和仪器外,还必须建立仪器与计算机的通路以及上层应用程序。通路包括总线和针对不同仪器的驱动程序上层应用程序用于发送控制命令、仪器的控制面板显示以及数据的采集、处理、分析、显示和存储等。
在开发一个测量系统时,选择正确的总线与选择一个具有合适采样速率和分辨率的设备一样重要。 硬件总线可以影响测量的性能、系统搭建时间和便携性等。
独立总线,用于架式和堆式仪器的通信。独立总线包括T&M专用总线(如GPIB)和PC标准总线(如串行总线RS-232、以太网、USB、无线和IEEE 1394)。一些独立总线可用作其他独立总线的中介,如USB到GPIB的转换器。
? 模块化总线,将接口总线合并到仪器中。模块化总线包括PCI、PCI Express、VXI和PXI。这些总线也可用作为不包括该总线的PC增加一个独立总线的中介,如PCI-GPIB控制卡。
1. GPIB
通用接口总线(GPIB-General Purpose InterfaceBus)是独立仪器上一种最通用的I/O接口。GPIB是专为测试测量和仪器控制应用设计的。
GPIB是一种数字的、8位并行通信接口,数据传输速率高达8M字节/秒。该总线可为一个系统控制器提供多达15台仪器连接,连线长度小于20米。
PC本身很少带有GPIB。实际上,用户通常使用一个插卡(如PCI-GPIB)或一个外部转换器(如GPIBUSB)在自己的PC中增加GPIB仪器控制功能。
2. 串行总线(RS-232和RS-485)
RS-232是串行通信规范,是传统意义上的“串行”总线的最为常见的规范。
RS-232也是一个相对较慢的接口,典型的数据速率低于20k字节/秒,虽然有些产品能够达到更高的数据吞吐量。
由于RS-232连线长度最长只能达到15米,而且只能点对点通讯,不适合工业现场应用。因此出现了RS-485来解决这
些问题,它采用差分的信号传输方式,最长距离可以达到1200米。
PC上都不带RS-485的接口,因此在接入电脑前需要通过485-232转换器或485-USB转换器才能接入PC。
3. USB
通用串行总线(USB-Universal Serial Bus)的设计主要用于将PC的外围设备(如键盘、鼠标、扫描仪和移动硬盘等)连接
到PC。
USB是一项即插即用技术 最初的USB1.1规范定义了两种数据传输模式和速度:低速模式(Low-Speed)(最大吞吐量可达1.5Mbits/s或200Kbytes/s)和全速模式(Full-Speed)(最大吞吐量可达12Mbits/s或1.5Mbytes/s)。最新的USB规范——USB 2.0完全后向兼容低速和全速设备,同时也定义了一种新的高速模式(Hi-Speed),该模式下数据传输速率高达480Mbits/s。
4. 以太网
5. CAN
6. IEEE1394(火线)
7. 无线
模块化总线
1. PCI
PCI总线是当今使用最广泛的计算机内部总线之一。? 一般的计算机都有3个或更多的PCI插槽。
PCI提供了高速的传输,理论带宽达到1056Mbits/s。
2. PCI Express
当PC应用需要更大量带宽时,PCI总线在许多情况下达到了其物理极限。
基本物理层由用作一个发送对和一个接收对的一对单工通道构成。每个方向的最初速率2.5Gbits/s为该方向提供了一个 200MBytes/s的通信信道,这接近标准PCI数据速率的四倍。
? 类似PCI,PCI Express的典型应用不是直接用于仪器控制,而是作为外围总线将GPIB设备连接到PC以用于仪器控制。但由于其很高的速率,PCIExpress可用作模块化仪器的通信总线。此外,PCI Express还支持热交换和热插拔功能。
3. PXI/CompactPCI
? PXI将PCI电气总线特性与坚固的、模块化的、欧洲卡机械封装的CompactPCI相结合,并增加了专门的同步总线和关键的软件特性,从而能够承受常常存在于工业应用中的恶劣环境。这使得PXI成为一个高性能的、低成本的、适用测量和自动化系统的布置平台。
4. VXI
5. PCMCIA
仪器驱动程序
计算机与仪器进行通讯的方式有两种
一种是基于寄存器的通信方式,
另一种是基于消息的通信方式。
具体采用哪种方式由仪器本身决定。
一个仪器驱动程序是一个包括高层函数的库,这些高层函数支持控制某个仪器或某个仪器簇。
一个仪器驱动程序是一个软件例程集合,该集合对应于一个计划的操作,如配置仪器、从仪器读取、向仪器写入和触发仪器等。
它将底层的通信命令或寄存器配置等封装起来,用户只需要调用封装好的函数库就能轻松实现对应于该仪器的任何功能。
为了满足仪器控制和测试应用不同需求,存在两种不同类型的仪器驱动程序:
即插即用驱动程序
可互换的虚拟仪器(IVI)驱动程序
直接I/O
可编程仪器标准命令SCPI
对于采用基于消息的通信方式,理论上来说消息的格式可以任意。不同的仪器可以采用不同的消息解析方式,譬如仪器A发送“A”表示读回仪器名称,仪器B可以发送“B”表示读回仪器名称。
SCPI联盟推出了可编程仪器标准命令
SCPI(Standard Commands for ProgrammableInstruments)旨在规范一套标准的命令集。该命令集只是一个规范,和硬件无关。无论是基于GPIB,串口还是VXI的任何仪器都可以采用符合SCPI标准的命令集。
SCPI命令与编程语言无关。LabVIEW提供的MAX和仪器I/O助手都可以向指定仪器发送命令。
例如Tektronix TDS220示波器的SCPI命令集的例子:
(1)*IDN?——返回仪器标识,采用IEEE488.2标记法;
(2)CH<x>:PRObe?——查询通道x的探头衰减;
(3)HARDCopy:FORMat BMP——设置硬拷贝格式为BMP格式。
VISA
虚拟仪器软件架构(VISA——VirtualInstruments Software Architecture)的目的是通过减少系统的建立时间来提高效率。
随着仪器类型的不断增加和测试系统复杂化的提高,人们不希望为每一种硬件接口都要编写不同的程序,因此I/O接口无关性对于I/O控制软件来说变得至关重要。
通过VISA用户能与大多数仪器总线连接,包括GPIB、USB、串口、PXI、VXI和以太网。而无论底层是何种硬件接口,用户只需要面对统一的编程接口——VISA
在VISA Advanced面板下有更多的VISA高级函数。此外,为了更细节的控制譬如GPIB,串口和USB等接口,LabVIEW还提供了基于VISA的高级控制函数。这些函数在InstrumentI/O面板下都能找到。
譬如Instrument I/O->Serial面板下提供的串口配置函数可以对串口进行详细的配置,譬如超时时间、波特率、数据位和奇偶校验等。
IVI——可互换的虚拟仪器驱动程序
虽然VISA实现了程序与硬件接口的不相关性,但是并没有实现仪器的可交换性。
IVI驱动程序是更为复杂的仪器驱动程序,它的特点在于为那些需要可互换性、状态缓存或仪器仿真的更为复杂的测试应用提高了性能和灵活性。
IVI驱动是NI测试系统中一个完整的组件。它基于VISA并被集成在NI提供的应用程序开发环境中。
IVI构架将传统的仪器驱动程序分为两部分:
仪器专用驱动
通用类驱动
IVI仪器驱动技术具有如下优点:
高性能
仪器仿真能力
仪器互换能力
开发灵活性
目前为止,IVI基金会已经制定了八类仪器规范(IVI基金会的目标是支持某一确定类仪器中95%的仪器),基本上涵盖了测试系统中常用的仪器类型。
? IVI示波器类(Scope——IVI Oscilloscope)
? IVI数字万用表类(DMM——IVI Digital Multimeter)
? IVI函数发生器类(FGen——IVI Function Generator)
? IVI直流电源类(DC Pwr Supply——IVI DC Power Supply)
? IVI开关类(Switch——IVI Switch)
? IVI功率计类(Power Meter——IVI Power Meter)
? IVI射频信号发生器类(RF Sig Gen——IVI RF SignalGenerator)
? IVI频谱分析仪类(Spec An——IVI Spectrum Analyzer)
直接I/O(Direct I/O)
如果没有仪器的VISA或IVI驱动可得,那么你就需要利用集成至软件开发环境中的交互式、直接I/O功能。
如:仪器I/O助手提供了一个用户界面来交互式地向一个设备写入命令、读取设备以及指定如何将响应解析成与应用相关的格式。
Port I/O
? 仪器I/O助手是针对基于消息格式通信的仪器。对于基于寄存器通信格式的仪器,你只需要向指定的寄存器地址写入数据或读出数据。
? LabVIEW提供了两个简单的Port I/O函数用于读写寄存器端口。
通过Port I/O函数读写LPT并口
与第三方硬件连接
? LabVIEW拥有灵活的通讯方式以实现与第三方硬件连接
? 动态链接库(DLL)
? TCP/IP
? DataSocket
? OPC
? 共享变量
? ActiveX
? DDE
? .net
? ...
- 测试仪器控制
- 仪器控制软件
- 自动测试-仪器
- 测试计量技术及仪器
- C#实现仪器的自动化控制
- 面向各种总线与语言的仪器控制技术
- 井径测井原理、计算方法、主要应用、仪器刻度、质量控制
- 关于开发控制window 98的仪器总结
- 软件测试面试题(理邦仪器,答案仅供参考)
- Android测试系列之三 - 构建仪器单元测试
- 手把手教你 LabVIEW 串口仪器控制——通信协议(指令)
- 用python写指令控制仪器遇到的问题(更新)
- 试水VISA编程(1)——对仪器的基本的控制
- 仪器TEST
- Android测试详解_3-Building Instrumented Unit Tests-创建仪器单元测试
- 各种手机测试卡,sim卡,藕合测试白卡,链接仪器的测试卡的介绍
- 测试|版本控制|测试
- Freesacle主板方案,CVBS四路模拟视频主板,仪器|仪表|数据采集|数据分析|信号控制|硬件定制,单片机
- 程序员有趣的面试智力题
- Mysql - You can't specify target table 'dataproduct' for update in FROM clause
- LTE UE Detach过程中信息交互
- 进程管理之内核抢占(一)
- 如何在dreamweaver中安装jquery编写提示器
- 测试仪器控制
- 关于Drawable的文章
- rails开发利器:开源代码库github.com的配置和使用
- apt-get 安装 sunjdk
- mutt使用wvHtml在$HOME中会生成一对.png、.wmf等临时文件的解决办法
- Struts理解
- android 对话框 popupWindow
- LTE S1 Handover过程中信息交互
- SQL GETDATE()日期格式化函数