EDN首页   博客首页 用户登陆  |  注册
aaa
发表于 2008/6/28 13:10:24

6

关于投票

labview中的串口通信协议示例与分析

变频器与个人电脑使用RS-232/RS-485 串行总线连接,如下所示:

   

    在通讯操作中,通过个人电脑以命令方式控制仪器。

    通讯数据格式:
    l  起始位: 1 位
    l  数据位: 8 位
    l  奇偶位: 无
    l  停止位: 1 位

    应答及命令格式:
    l  命令模式
点击看大图

    ::- 数据头,只有以::开头的数据包才认为有效。
    AD  - 设备号,当前通讯的设备ID。
     ? - 指明该数据是PC发出的指令。 
    RI  - 响应时间,从PC发出命令到仪器应答的时间。
    SC  - 和检验码,等于图中“和校验范围”所示各位相加。

    l  应答模式
点击开大图

    #  - 指明该数据是仪器发回的应答数据。
    其它同上。

    l  故障模式
点击看大图

    %  - 指明该数据是仪器发回的故障数据。
    其它同上。

    协议说明:
    无论是控制仪器还是查看仪器数据都需要PC发出相应的命令;只要PC发出命令(前提是与仪器正常通讯),仪器都会返回数据(应答或故障)。

    使用LabVIEW编写通信模块:
    1. 主要节点:Functions->Instrument I/O->VISA Resource Name Constant, Functions->Instrument I/O->Serial->VISA Config Serail Port, VISA Read, VISA Write, VISA Close

    2. 串口设置:根据仪器说明设置如波特率等等串口参数。超时设置根据上述RI。

    3. 写串口指令:根据上述“命令模式”的格式包装命令数据,和校验由“和校验范围”中数位相加而得,所以之前应该写一子VI用来计算和校验。建议使用以下变量来包装数据:

    l  prefix:前缀,这里是::
    l  devID:设备号
    l  type:通讯类型(这里是?),可以与RI合并
    l  cmdNum:命令号
    l  cmdValue:命令号对应的命令值
    l  sumVerify:和校验码
    l  end:结束字符

    注意:一般协议要求“命令内容”满足一定的位数,所以应该做一个子VI,专门在那些数位不够的命令前补足空格或0。

    4. 读串口数据:系统为串口开辟了一定大小的缓冲队列空间,仪器应答数据首先发送到这个缓冲空间(空间数据堆满时自动移除最早的数据),然后程序从中一次读取指定的数位并将其从中移除。

       建议读取方式:

      (1) 读1 byte,判断是否 :(3A),是则继续;否则返回步骤(1),重新开始。
      (2) 再次读1 byte,判断是否 :(3A),是则继续;否则返回步骤(1),重新开始。
      (3) 读应答模式中除去 ::剩余的字节,循环读取,每次读一个字节,当读到的字节数达到数量,继续;若读取超时,返回步骤(1),重新开始。
      (4)  分析读到的bytes,判断和校验码是否正确。若正确,继续;否则,返回步骤(1),重新开始。
      (5) 取第三个byte,如果是#,说明“应答模式”;如果是%,说明“故障模式”。
      (6)  按照应答或者故障模式,分离出相应的命令号和命令值。
      (7)  一些类型转换。至此,一次读取过程结束。

    5. 由于一次通讯包含一次写命令和一次读数据,所以最好把写和读模块封装成一个子VI。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(2037) | 回复(2)

发表于 2008/6/28 12:14:55

0

关于投票

LabVIEW中访问数据库的几种不同方法

 虚拟仪器VI(Virtual Instruments)是National Instruments公司在其产品LabVIEW中首先提出的创新概念[1]。虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据并进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器由用户自己定义功能,可以自由地组合计算机平台、硬件、软件以及完成应用系统所需要的各种功能。另外,虚拟仪器开发周期短、成本低、维护方便,易于应用新理论和新技术实现仪器的换代升级[2]

现代的测试测量系统大多数需要对被测对象进行全方位检测,这必然会使获取的数据量急剧增长。面对大量的数据信息,采用数据库技术,可准确反映各类数据之间的密切联系,能够有效地管理和组织数据,是现代测试测量系统的发展趋势。但是现有的LabVIEW版本本身并不具备数据库访问功能,不能像VB、VC++、Delphi、PowerBuilder那样非常方便的进行数据库程序的开发。因此以LabVIEW编制的虚拟仪器系统需要其它辅助的方法来进行数据库访问。

1在LabVIEW中访问数据库的方式

(1)利用NI公司的附加工具包中的数据库接口工具包LabVIEW SQL Toolkit进行数据库访问。该工具包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。它的优点是易于理解,操作简单,用户可以不学习SQL语法。缺点是需要另外购买且价格昂贵,无疑会增加系统成本。

(2)利用LabVIEW的ActiveX功能,调用Microsoft ADO对象,利用SQL语言实现数据库的访问。使用这种方法需要用户对Microsoft ADO以及SQL语言有较深的了解。

(3)通过第三方开发的免费工具包LabSQL访问。LabSQL利用Microsoft ADO以及SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQL VIs,简单易用。

(4)通过调用动态链接库DLL(Dynamic Link Library)访问。先利用其它语言如Visual C++编写DLL,再利用LabVIEW的调用库函数节点CLFN(Calling Library Function Node)调用此DLL访问数据库。但这种方法需要从底层进行复杂的编程才能实现,对非专业编程人员来讲是不现实的[3]

(5)利用中间文件存取数据。先将数据存入文件之中,待测量结束后再用专门的工具将数据导入到数据库之中。这种方法需要磁盘文件作为中介,而且不具有实时性,不方便使用[4]

实际应用中,前三种方法使用最为广泛,下面将重点讨论这三种方法。

2 利用ADO技术访问数据库

2.1 ADO技术简介

ADO(ActiveX Data Objects)是Microsoft为OLE DB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。

ADO接口编程模型中包括连接(Connection)、命令(Command)、参数(Parameter)、记录集(Recordset)、字段(Field)、错误(Error)、属性(Property)、集合(Collection)、事件(Event)等元素。其中Connection、Command、Recordset是三个主体对象,Parameters、Fields、Errors、Properties是四个集合对象[5]

ADO的一般操作方式为:1连接到数据源;2指定访问数据源的命令;3执行命令;4将命令执行后产生的结果保存在缓存中;5更新数据库。ADO的主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少[6]

2.2 LabVIEW中对ADO的调用

ADO对象在LabVIEW中是以ActiveX对象的形式提供的。LabVIEW自4.1版本就引入了支持ActiveX自动控制的功能模块,在5.1版本之后支持客户和服务器双方,即虽然程序是在双方各自独立存在,但它们的信息是共享的。这种信息共享是通过客户端使用由服务器端发布的ActiveX控件来实现的。

图1展示的是LabVIEW中使用ActiveX控件的程序流程。ActiveX对象的打开和关闭是通过打开自动化节点(Automation Open)和关闭自动化节点(Close Reference)来实现的,属性的设置和获取则通过属性节点(Property Node)进行,而调用节点(Invoke Node)用于对象方法的调用。其中关键的是第二步,只有充分的利用“属性”和“方法”的设置才能成功地实现对数据库的访问[7]

图1 LabVIEW中使用ActiveX控件的程序流程图

2.3应用实例

(1)建立ADO对象

在前面板控件模板的Refnum子模板中选择Automation Refnum项,把它拖放到前面板上,在其右键菜单中选择Select ActiveX Class>>Broswer…,弹出Select ActiveX Object对话框,在类型库Type Library下拉列表中选择Microsoft ActiveX Data Objects 2.7 Library Version 2.7,在下面的对象Objects列表栏中出现这个库对LabVIEW可用的对象,选中Connection对象,点击OK按钮即可。使用同样的方法可以建立Command、Recordset等对象。

(2)连接到数据源

在程序框图功能模板中选择Communication>>ActiveX子模板,选择其中的Automation Open与ADODB._Connection相连即可打开Connection对象。接着从ActiveX子模板中选择Invoke Node并与Automation Open相连,在其上单击右键选择Methods>>Open,即出现图2中所示的节点。其中“ConnectionSring”是连接到数据源的字符串,“UserID”和“PassWord”是连接到数据源的用户名和密码,正确设置这些参数后便可连接到数据源。

(3)生成SQL命令、执行命令

与上一步相同,用 Invoke Node调用Connection对象的Execute方法执行所要的操作。Execute方法所必需的参数为CommandText,这里为所要执行的SQL语句。例如可以使用Create命令创建表,用Drop命令删除表,用Insert命令向表中插入数据,用Select命令进行查询并返回操作结果等[8]。本例使用Create命令创建了一个名为Staff的表,包括编号、姓名和年龄三个字段,其中id字段为主键,自动编号。对数据表的删除和添加数据的操作过程与建表过程类似。如果要对执行后的记录进行显示或读取字段值则需要建立Recordset对象,并与Execute相连。

(4)关闭连接

对数据库访问操作完毕后要及时关闭连接对象以释放内存和所用的系统资源。首先使用Connection对象的Close方法关闭数据库连接,然后使用Close Reference关闭ActiveX自动化参数号。

点击看大图

图2 数据库中建表的程序框图

3 利用LabSQL访问数据库

3.1 LabSQL简介

LabSQL是一个免费的、多数据库、跨平台的LabVIEW数据库访问工具包,由Premkc Development公司的Chris Roth和Jeffrey Travis开发。目前的最新版本是LabSQL Release 1.1a,可以到网站http://jeffreytravis.com免费下载。LabSQL支持Windows操作系统中任何基于OBDC的数据库,包括Access,SQL Server,Oracle,Pervasive,Sybase等。

LabSQL利用Microsoft ADO对象和SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQL VIs,简单易用。

LabSQL VIs按照功能可以分为四类:Command VIs,Connection VIs,Recordset VIs和Top Level VIs。

Command VIs的功能是完成一系列的基本ADO操作,例如,创建或删除一个Command,对数据库的某一个参数进行读或写等。

Connection VIs的功能是管理LabVIEW与数据库之间的连接。

Recordset VIs用于对数据库中的记录进行各种操作,例如,创建或删除一条记录,对记录中的某一个条目进行读或写等。

Top Level VIs属于顶层的LabSQL应用,对前三类LabSQL VIs某些功能的封装,例如,SQL Execute.vi可用于直接执行命令[9]

3.2 LabSQL应用实例

本应用实例是向数据表添加记录,所使用的数据源与上例相同,数据表为staff表。具体步骤如下:

第一步:建立与数据库的连接。首先通过ADO Connection Create.vi创建一个Connection对象,然后利用ADO Connection Open.vi建立与数据库的连接。数据库由ADO Connection Open.vi的ConnectionString指定,此参数由前面板的字符串控件提供,如图3所示。

第二步:生成SQL命令,执行命令。在前面板table控件中输入表名,name和age控件中输入字段值。在程序框图中使用Format Into String生成SQL命令,将它连接到ADO Connection Execute.vi即可执行,同时可在前面板Command Text控件中显示此命令。

第三步:断开与数据库之间的连接。利用ADO Connection Close.vi关闭Connection对象,并使用ADO Connection Destroy.vi删除Connection对象。

图3 向数据表添加记录的前面板

点击开大图

图4向数据表添加记录的程序框图

4 利用LabVIEW SQL Toolkit访问数据库

4.1 LabVIEW SQL Toolkit简介

LabVIEW SQL Toolkit(又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能[10]。其主要的功能如下:

(1)支持ADO所支持的所有的数据库引擎;

(2)支持所有与ODBC或OLE DB兼容的数据库驱动程序;

(3)具有高度的可移植性,在任何情况下,用户通过改变DB Tools Open Connection VI的输入参数Connection String就可以更换数据库;

(4)可以将数据库中Column Values的数据类型转换为标准LabVIEW Database Connectivity Toolset的数据类型,这进一步增强了它的可移植性;

(5)与SQL兼容;

(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;

(7)用户可以完全不需要学习SQL语法。

用户可以使用LabVIEW SQL Toolkit在LabVIEW中支持ODBC的本地或远程数据库,例如Microsoft Access,Microsoft SQL Sever,Sybase SQL Server以及Oracle等[11]

4.2应用实例

本应用实例是显示上面所建staff表中的所有记录,所使用的数据源与上面两例相同。具体步骤如下:

(1)使用DB Tools Open Connection打开数据库连接[12]

(2)显示指定数据表中所有数据。

使用DB Tools List Tables以一维数组形式列出指定数据库中的所有表,同时显示在前面板数组控件tables中。用户指定Table Index后,通过索引数组函数Index Array索引其中一个表。然后将表名连接到DB Tools List Columns和DB Tools Select All Data。

DB Tools List Columns的Columns参数用一维字符串数组返回指定表的字段名,通过属性节点将字段名显示在表格控件Table Data的首行,同时使用数组大小函数Array Size取得字段数,即表的列数,显示在Columns中。

DB Tools Select All Data的Data参数以二维字符串数组形式返回表中所有数据,显示在Table Data中,同时使用Array Size和Index Array函数取得记录数,也就是行数,显示在Rows中。

(3)使用DB Tools Close Connection断开连接。

此程序的前面板和程序框图如图5、图6所示。

图5 显示表中所有数据的前面板

点击看大图

图6 显示一个数据表中所有数据的程序框图

5结论

综上所述,使用ADO,LabSQL或LabVIEW SQL Toolkit访问数据库的基本步骤都是相同的,都要经过连接数据库、执行操作、断开连接这三个步骤。

使用ADO主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少,但需要用户对Microsoft ADO以及SQL语言有较深的了解。

使用LabSQL不用精通ActiveX技术和SQL语言,操作简介,容易理解,但它没有对ADO的所有功能进行封装,功能上有局限性。

LabVIEW SQL Toolkit支持ADO所支持的所有的数据库引擎,不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作,使用SQL语句能够实现复杂的数据库操作,功能强大,但其昂贵的价格对于很多用户来讲是不能承受的,这也限制了它的推广应用。

在实际应用中,用户究竟采用哪种方法要从项目难易程度、自身编程水平和技术经济等方面综合考虑

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(1060) | 回复(0)

发表于 2008/6/28 12:10:40

0

关于投票

以太网给虚拟仪器技术带来的益处是什么?

虚拟仪器系统频繁地使用以太网用于远程测试系统控制、分布式I/O和企业数据共享。使用以太网的首要益处就是成本。几乎在所有的情况下,以太网都处于测量系统之上,所以通常它只给测量系统本身增添极少成本。以太网提供了一个低成本、适中吞吐量的方法来实现交换数据和远程控制命令。然而,由于基于数据包的体系结构,以太网不是确定性的而且相对高的等待时间。对于某些应用如仪器系统,缺乏确定性和高等待时间使得以太网成为集成邻近I/O模块的拙劣选择。这些情形最好使用专有总线如PXI、VXI和GPIB来实现。

    通常,一个虚拟仪器系统使用其他总线与以太网配合。典型地,一个网络节点包含模块化I/O簇。每个簇使用高速、低等待时间的总线在不同I/O模块之间交换数据。为了与相邻节点通信、向远程地点传输数据或者从远程地点接受命令,网络节点使用以太网。

点击开大图

图1.基于以太网/LAN的虚拟仪器系统实例

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(389) | 回复(0)

发表于 2008/6/28 12:09:42

0

关于投票

虚拟仪器硬件问题

虚拟仪器软件运行于什么硬件I/O和平台?

    I/O在虚拟仪器中发挥着重要作用。为了加速测试、控制和设计,I/O硬件必须快速适应新的观念和产品。虚拟仪器以在可扩展的硬件平台里的模块化的形式提供了这种能力。

    NI模块化I/O涵盖了各种不同的I/O类型,因此工程师和科学家可以在众多种类中选择I/O,包括模拟、数字、计数/计时、图像和运动。模块化I/O也包括模块化仪器,例如示波器、仪表、任意波形发生器、LCR仪表等等。利用各种出色的I/O,工程师可以随意选择任意应用程序所要求的I/O类型。细心的工程师确保了这些不同类型的I/O可以无缝地一起工作,这意味着他们可以有效地共享底板和定时资源。

    包含I/O的标准硬件平台对于I/O模块化十分重要。手提和台式电脑提供了一个出色的平台,在这个平台上虚拟仪器可以使用已有的大部分标准,如USB、PCI、以太网和PCMCIA总想。通过使用这些标准总线,NI可以致力于测量硬件革新同时从不可避免的PC平台革新中受益(例如,USB2.0和PCI Express)。

    除了使用标准平台之外,NI作为65个厂商联盟的一部分,极力推动用于虚拟仪器的PXI硬件平台。PXI是一个建立在PC技术之上的模块化I/O标准。它在基于PC的体系结构上增加了集成定时和同步、工业稳定性和增强的通道计数。今天,为PXI平台而创建的1000余种产品正在世界范围内为数以千计的公司使用。

     选择合适的平台来创建虚拟仪器依赖于特定的应用要求。例如,便携性、精确的同步和采集速率都在选择平台时起到作用。

 

Platform

平台

PXI

PXI

Desktop

台式

Portable

便携式

Compact FieldPoint

Compact FieldPoint

CompactRIO

CompactRIO

Bus

总线

CompactPCI

CompactPCI

PCI

PCI

USB, PCMCIA, IEEE 1394 (FireWire)

USB, PCMCIA, IEEE 1394 (火线)

Ethernet, serial, wireless, Fieldbus

以太网、串行总线、无线、Fieldbus

Ethernet, serial, CAN

以太网、串行总线、CAN总线

Sampling rate

采样速率

 

Resolution

分辨率?

Channel capacity

通道容量

Portability

便携性?

Real-time control

实时控制?

Triggering and synchronization

触发和同步?

Ruggedness

稳定性?

? Best? ? Better ??Good?

最优 优良 良好

表2.NI硬件平台比较

新的总线技术如USB 2.0和PCI Express如何提高虚拟仪器的性能?

    与传统仪器相比,虚拟仪器利用了商业上可得的计算机技术进步来以更低的代价进行更快的、更高性能的测量。其中的一个例子就是利用PC数据总线。在仪器通信接口如串口和GPIB数十年几乎保持不变的时候,新的PC总线在带宽和易用性上提供了巨大的提高。从20世纪60年代中期开始,根据摩尔定律,PC处理能力几乎每18个月翻一番。现在,数据总线如PCI Express和USB 2.0正在速度上进行相似的跳跃。良好的虚拟仪器软件利用了这些最新的技术同时将对虚拟仪器应用的影响最小化。

   32位、33MHz的PCI总线所提供的132MB/s的带宽仍然存在于大多数台式PC,这正好与10年前的插入式外设形成对照,但是现在可以被单一的设备所垄断,例如串行ATA驱动器。而且1G网卡—1000mb/s—使用了大约95%的可从PCI总线获得的带宽。PCI总线体系结构要求总线上所有的设备共享可得的132MB/s的带宽,因此高带宽设备如串行ATA驱动器和1G网卡将抑制PCI总线上的其他设备。为了弥补这些局限,一个成为PCI Express的新串行总线近来开始应用在新PC上。PCI Express保持了与PCI的软件兼容性,但是用高速(2.5Gb/s)的串行总线替代了物理总线。数据在被成为“信道”的发射和接收信号对以数据包的形式传送,具有大约单向每信道200MB/s的带宽。多信道可以结合在一起构成x1(乘1)、x2、x4和 x8的信道带宽,而且与总线上所有设备共享带宽的PCI不同,这个带宽是提供给系统中每个设备的。PCI Express给虚拟仪器带来的益处是显而易见的。插入式设备如数据采集设备和抓帧器可以利用提高的带宽来实现更快的采集和更高的吞吐量,而且多系统设备可从有保障的带宽可用性中受益。

点击开大图

图1.PC总线技术的发展

    现已作为所有新的台式和便携式PC上标准的USB 2.0也为虚拟仪器提供了显著的益处。最初时为诸如键盘和鼠标等外设与PC的连接而创建的USB迅速地成为普遍的标准,用来向PC和电子设备(包括数字照相机、MP3播放器甚至数据采集设备)中发送和接收数据。USB即插即用的特性使得可用性和设备的移动性十分简单。PC在一个新设备插入时自动检测,寻找设备识别,并且适当地配置所需的驱动。此外,USB是热插拔的,所以不同于其他数据总线,在添加或去除设备之前无需关机。与USB 1.1相比,USB 2.0的高速度提高了数据吞吐量,将带宽增加至480Mb/s。

    所有的PC都装有USB 2.0端口,而且PCI Express正在成为一种全新的插入式总线标准。正如Intel、Dell、HP和其他厂商继续开发基于这些技术的系统和组件,规模经济将会继续提高性能并减少成本。虚拟仪器和NI产品将继续利用这些总线技术的发展来提供更低价格但更快速的测试和测量产品。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(434) | 回复(0)

发表于 2008/6/28 12:06:29

0

关于投票

虚拟仪器应用领域

虚拟仪器技术在过去的25年里是如何发展的?

   虚拟仪器技术一直在测试和测量领域广泛使用。而且,通过不断的LabVIEW革新和数以百计的测量硬件设备,虚拟仪器技术逐渐扩大了它所触及的应用范围。今天,NI率先将这一技术扩展到控制和设计部分。曾促进了测试发展的益处正开始加速控制和设计的发展。工程师和科学家不断提高对虚拟仪器的要求,以希望有效地满足世界范围的需要,他们正是这一加速背后的驱动力。

   近来NI 加速测试、控制和设计创新的一个例子就是使用LabVIEW FPGA进行编程的基于FPGA的硬件。如果工程师需要一个新的硬件性能,如板载DSP,或者新的触发模式,您甚至可以在同样的软件中定义这种性能并且将它应用在板载的FPGA上。工程师和科学家一直可以通过使用LabVIEW和模块化I/O来创建高度集成的用户自定义系统,而现在他们也可以将可自定义配置能力扩展至硬件本身。这种用户可配置能力和透明度将会改变工程师建立测试系统的方式。

点击开大图

图1.LabVIEW使用户定义的仪器和可自定义的硬件成为可能

虚拟仪器给自动测试应用带来的益处是什么?

    测试一直是虚拟仪器长期应用的领域。超过25,000家公司(大部分是测试和测量公司)使用NI的虚拟仪器。现在,许多公司都迅速地采用了具有高达200MS/s数字化性能的产品。PXI系统联盟拥有60多个成员,提供了数以百计的产品,而且数以万计的R&D、验证和产品测试工程师和科学家正在使用成千上万的仪器驱动。

    而且,现在对于测试的需要越来越大。随着创新的步伐越来越快,希望新的不同的产品更快地进入市场的压力越来越大。消费者的期望在不断的增加。以电子市场为例,消费者要求不同的功能可以更低的成本在一个更小的空间得到集成。近年来经济的低迷并没有阻止革新的需要,但是却要求使用更少资源。满足这些需要是商业成功的一个因素——能够快速、一贯并且最可*地满足这些需要的公司一定能在竞争中占有决定性的优势。

    所有这些条件都驱使新的验证、检验和生产测试需要。一个能与创新保持同步的测试平台不是或有或无的,而是必需的。这个平台必须包含具有足够适应能力的快速测试开发工具以在整个产品开发流程中使用。产品快速上市和高效生产产品的需要要求高吞吐量的测试。为了测试消费者所要求的复杂多功能产品需要精确的同步测量能力,而且随着公司不断地结合创新以提供不同的产品,测试系统必须快速地调整以测试这些新特性。

    虚拟仪器是对这些挑战的一种革新性解决方案。它将快速软件开发和模块化、灵活的硬件结合在一起从而创建用户定义的测试系统。虚拟仪器提供了:

  • ? 用于快速测试开发的直观软件工具
  • ?  基于创新商用技术的快速、精确的模块化I/O
  • ?  具有集成同 步功能的基于PC的平台,以实现高精确度和高吞吐量

 

虚拟仪器技术如何应用于控制和工业应用?

    PC和PLC在控制和工业应用中都发挥着十分重要的作用。PC带来了更大的软件灵活性和更多的性能,而PLC则提供了优良的稳定性和可*性。但是随着控制需求越来越复杂,加速性能并同时保持稳定性和可*性就成为公认的需要。

    独立的工业专家已经意识到了对工具的需要,这种工具应该能够满足不断增长的对更加复杂、动态、自适应和基于算法控制的需要。PAC正是工业的需求也是虚拟仪器的回答。 

    一个独立的研究公司定义了可编程自动控制器(PAC)来解决这个问题。ARC研究机构的Craig Resnick将PAC定义成:

1. 多领域功能(逻辑、运动、驱动和过程)——这个概念支持多种I/O类型。逻辑、运动和其他功能的集成是不

2. 断增长的负责控制方法的要求。

3. 单一的多学科开发平台——单一的开发环境必须能支持各种I/O和控制方案

4. 用于设计贯穿多个机器或处理单元的应用程序的软件工具——这个软件工具必须能适应分布式操作。

5. 一组de facto网络和语言标准——这个技术必须利用高投入技术。

   开放式、模块化体系结构——设计和技术标准与规范必须是在实现中开放的、模块化的和可结合的。 PAC给PC软件的灵活性增添了PLC的稳定性和可*性。LabVIEW软件和稳定、实时的控制硬件平台对于创建PAC是十分完美的。

虚拟仪器技术给设计带来的益处是什么?

     使用各种软件设计工具的设计工程师必须使用硬件来测试原型。通常,在设计阶段和测试/验证阶段之间没有一个良好的接口,这就意味着设计必须经历一个完成阶段而后进入测试/验证阶段。测试阶段发现的问题需要不断反复设计阶段。

点击开大图

图2.测试在当今电子设备的设计和生产中发挥着重要的作用

     事实上,开发过程有两个完全不同且分离的阶段——设计和测试是两个单独的实体。在设计方面,EDA工具厂商承受着巨大的压力与不断增长的半导体设计和生产集团复杂要求相互作用。工程师和科学家要求随着产品从原理图设计到仿真再到物理层,EDA应具有从一个工具到其他的工具可重复使用设计的能力。相似地,测试系统开发正朝模块化方式发展。这两个世界之间的间隙在传统上一直被忽视,直到在新的产品原型设计阶段才第一次引起注意。传统上,这一阶段是产品设计者使用台式仪器将物理原型与他们的设计对照,进行完整性检查以获得正确性。设计者手工地进行测量,在他们的仪器上探测电路并监测信号以发现问题或性能局限。随着设计反复地经历建立-测量-调整-重建立这个过程,设计者再次需要同样的测量。此外,这些测量可能十分复杂——需要频率、幅值和温度自始至终地随所采集和分析的数据而变动。由于工程师注重于设计工具,所以他们不愿意学习如何将他们的测试自动化。

    具有内在集成属性的系统容易扩展并且能适应不断增长的产品功能。一旦需要新的测试,工程师只需要简单地给平台添加新的模块以完成测量。虚拟仪器软件的灵活性和虚拟仪器硬件的模块化使得虚拟仪器成为加速开发周期的必需。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(554) | 回复(0)

发表于 2008/6/28 12:04:46

0

关于投票

虚拟仪器和传统仪器的比较

什么是虚拟仪器?它和传统仪器有什么区别?

虚拟仪器是由用户定义,而传统仪器的功能是固定的且由厂商定义。

点击开大图

图5.传统仪器(左图)和基于软件的虚拟仪器(右图)具有许多相同的结构组件,但是在体系结构原理上完全不同

    每一个虚拟仪器都由两部分组成——软件和硬件。对于当前的测量任务,虚拟仪器的标价与具有相似功能的传统仪器相差无几,甚至比它少许多倍。然而,由于虚拟仪器在测量任务改变时具有更大的灵活性,因而随着时间的流逝,节省的成本不断累计。

     通过不使用厂商定义的、预封装好的软件和硬件,工程师和科学家获得了最大的用户定义的灵活性。传统仪器把所有软件和测量电路封装在一起的产品提供给他们,这是以使用仪器前面板而损失一定固定功能作为代价的。而虚拟仪器则是提供完成测量或控制任务所需的所有软件和硬件。此外,利用虚拟仪器,工程师和科学家可以使用高效且强大的软件来自定义采集、分析、存储、共享和显示功能。

 

这里是实际中显现灵活性的一些例子:

1. 一个应用程序,2. 不同3. 的设备4.

考虑这样一个特殊的例子,一位工程师正在实验室的台式计算机PCI总线上使用LabVIEW和M系列DAQ设备开发一个应用程序,以创建一个直流(DC)电压和温度测量应用。在完成了系统构建之后,他需要在一个生产层PXI系统上配置应用程序以完成新产品的测试。或者,他可能需要应用程序具有便携性,所以他选择了NI USB DAQ产品来完成任务。在这个例子中,无论是何种选择,在这三种情况下,他都可以仅在一个程序中使用虚拟仪器而无需改变代码。

点击开大图

图6.在许多设备使用同样的应用程序之时升级硬件十分轻松

5. 许多应用程序,6. 一个设备7.

考虑另外一个工程师,她刚刚完成了一个利用最新的M系列DAQ设备和积分编码器测量电机位置的项目。他她的下一个项目是监视和记录这个电机的功率。即使任务完全不同她也可以重用同样的M系列DAQ 设备。她他所需要做的就是使用虚拟仪器软件开发出新的应用程序。此外,如果需要的话,项目既可以与一个单一的应用程序结合也可以运行在一个单一的M系列DAQ设备。

点击开大图

图7.通过为许多应用程序重用硬件减少成本

 

如何比较虚拟仪器和传统仪器硬件性能?

    虚拟仪器的重要概念就是驱使实际虚拟仪器软件和硬件设备加速的策略。NI致力于适应或使用诸如Microsoft、Intel、Analog Devices、Xilinx以及其他公司的高投入技术。NI使用Microsoft在操作系统(OS)和开发工具方面的巨大投资。在硬件方面,NI基于Analog Devices在A/D转换器方面的投资。

 

     由于虚拟仪器是基于软件的,所以基本上如果你可以对它数字化,就可以对它进行测量。因此,测量硬件可在两个坐标轴上观察,即分辨率(位)和频率。参考下图可以看出虚拟仪器硬件测量性能与传统仪器的比较。NI的目标就是将曲线在频率和分辨率上延伸并且在曲线内进行创新。

点击开大图

图8.虚拟仪器硬件与传统仪器的比较

虚拟仪器和传统仪器兼容吗?

     许多工程师和科学家都在实验室里将虚拟仪器和传统仪器相结合。除此之外,一些传统仪器提供了特定的测量,即工程师和科学家宁愿厂商定义而不愿自定义的测量。这就引出了一个问题,“虚拟仪器和传统仪器兼容吗?”

 

    虚拟仪器无一例外地与传统仪器相兼容。虚拟仪器软件通常提供了与常用普通仪器总线相连接的库,例如GPIB、串行总线和以太网。

    除了提供库之外,200多家仪器厂商向NI仪器驱动库提供了4000余种的仪器驱动。仪器驱动提供了一套高层且人工可读的函数以与仪器接口。每一个仪器驱动都专为仪器某一特定的模型而设计,从而为它独特的性能提供接口。

欲寻求仪器驱动或了解如何为仪器创建驱动,请访问ni.com/idnet

虚拟仪器和综合性仪器的区别是什么?

    自动测试工业里一个基本的趋势就是向基于软件的测试系统的重大转变。例如,美国国防部(DoD)是世界上最大的自动测试设备(ATE)客户之一。为了减少测试系统的成本并提高重用率,DoD通过海军的NxTest计划已经确定:将来的ATE要使用建立在模块化硬件和可重复配置的软件之上的体系结构,称为综合性仪器。采用综合性仪器代表了将来军用ATE系统标准和规范的重大发展,并且反映出可重复配置的软件处于将来系统核心地位这一基本转变。基于软件测试系统的成功应用,例如综合性仪器,需要对硬件平台和市场上软件工具的理解,以及对系统级体系结构和仪器级体系结构之间区别的理解。

    综合性仪器执行团体将综合性仪器定义为“一个可重复配置的系统,它通过标准化的接口连接一系列基本硬件和软件组件,从而产生信号或者使用数值处理技术进行测量”。这与虚拟仪器的许多性质相同,虚拟仪器是“一个软件定义的系统,其中基于用户需要的软件定义了通用测量硬件的功能”。两种定义享有共同的性质,即运行于商用硬件之上的可自定义软件的仪器。通过将测量功能转向用户可接触并可重复配置的硬件,那些采用这种体系结构的仪器从具有更大灵活性和可重复配置功能的系统中受益,而且这些系统反过来又提高了性能同时减少了成本。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(345) | 回复(0)

发表于 2008/6/28 12:01:35

0

关于投票

虚拟仪器与NI

什么使得NI在虚拟仪器领域处于领先地位?

简而言之,答案是软件。软件使得工程师和科学家能够创建用户自定义的仪器。

    任一虚拟仪器的核心就是灵活的软件,而NI发明了世界上最好的虚拟仪器软件平台之一——LabVIEW。LabVIEW是一个强大的图形化开发环境,用于信号采集、测量分析和数据显示,无需传统开发工具的复杂性就给予了编程语言的灵活性。自1986年NI引入适用Macintosh操作系统的LabVIEW以来,它就迅速且始终如一地吸引那些寻求一种高效且强大的编程语言来用于测试、控制和设计应用的工程师和科学家。今天,LabVIEW是数以千计的工程师和科学家首选的图形化开发环境。

   对于那些偏爱基于文本编程的工程师,NI也提供了针对ANSI C和LabWindows/CVI的应用程序开发环境,以及使用Visual Studio .NET和Measurement Studio进行虚拟仪器开发的工具。

     虽然软件是每个虚拟仪器的核心,然而几乎所有的虚拟仪器都需要测量硬件精确地取得测量结果。由于独立于所选择的编程环境,所以虚拟仪器软件必须提供出色的与系统测量硬件的结合。NI的软件,包括LabVIEW,提供了与来自上千家第三方硬件厂商数以万计产品的开放式连接,如传感器、摄像机、执行器、传统仪器和插入式设备(USB、PCI等)。

    2004年,NI测量硬件提供给客户超过6,000,000套虚拟仪器测量设备。从低成本的USB数据采集到图像采集和过程控制视觉系统,再到2.7GHz的RF测量和GPIB总线通信,NI已经在25,000多家公司面前展示了它可以提供完成虚拟仪器所需要的测量硬件和可扩展的硬件平台。

什么使得NI区别于其他虚拟仪器公司?

25年来,NI一直是虚拟仪器领域的领导者。这种领导力通过持续且一贯的创新而不断发展并延续。

    由于NI发明并革新了#1虚拟仪器图形化开发环境LabVIEW,它吸引了数以千计的工程师和科学家建立虚拟仪器。通过理解客户项目开发需求,NI一贯地提供跳跃式的软件革新,包括Express技术、LabVIEW实时模块和LabVIEW PDA模块,以及NI SignalExpress:

1. Express 技术

2003年,NI为LabVIEW、LabWindow/CVI和Measurement Studio创建了Express技术,在保留强大的功能的同时减少代码复杂性。今天,超过50%的数据采集客户使用DAQ 助手来简化数据采集任务。

2. LabVIEW实时模块和 LabVIEW PDA模块

NI为使用LabVIEW实时模块完成确定性执行扩展了LabVIEW,并且开发了与之匹配的硬件平台使得嵌入式应用程序运行成为现实。LabVIEW PDA模块将虚拟仪器和LabVIEW平台扩展至手持设备。

3. NI SignalExpress

设计和测试工程师要求NI提供虚拟仪器软件来交互式测量和分析数据。作为回应,NI创建了SignalExpress——一个拖放且无需编程的完美环境用来经进行试探性测量。

 

     除了强大的软件优势,NI是众多虚拟仪器公司中提供了最为广泛和创新性的I/O选择。为了帮助工程师和科学家满足不断激增的需求,NI不断地发布产品以进一步扩展产品的宽度。一些最近的硬件革新例子包括NI USB DAQ设备,NI M系列DAQ设备和NI CompactRIO:

1. USB DAQ 设备2.

在最近的调查中,70%的NI数据采集(DAQ)客户表示他们希望在不久的将来购买多功能的USB DAQ设备。在那个月,NI发布了NI USB-6008,价格定为 $145US(这是多功能DAQ设备最新的低价点)。

3. M 系列DAQ设备4.

NI在2004年后期发布M系列DAQ设备产品线之时确立了在插入式数据采集领域的领导地位。第一个18位的PCI设备,第一个具有最高吞吐量达六个DMA通道的PCI数据采集设备以及即将得到专利的设备校准方案等等这些都只是这个设备系列与众不同的特性中的一小部分。

5. NI CompactRIO 可配置的控制和I/O

NI I/O产品中最有创新性的新增功能之一就是CompactRIO。通过一个位于I/O平台核心的FPGA芯片,工程师利用LabVIEW FPGA可以创建自定义的硬件并且可以不断得重复自定义。

 

什么用户使用NI的虚拟仪器产品?

     NI的客户包括工程师、科学家和许多工业领域的专业技术人士。从测试DVD录像机导研究先进的医药,他们都使用NI的软件和硬件以开发用户定义的仪器并且以更快的速度、更低的成本提供各种产品和服务。

 

这里是一些客户如何使用NI虚拟仪器产品的例子:

1. AP Racing——建立Formula 1测径器和刹车测试测力计

30多年来,AP Racing一直是世界上刹车测径器和赛车离合器技术及生产方面的领导者。AP Racing认为使用一个新的特殊的测力计可以带来显著的优势,而且使用NI的DAQ设备和LabVIEW所构建的虚拟仪器提供了它所需要的灵活性以在市场中革新。

2. Lexmark——墨盒电气性能测试

Lexmark International公司的Ed Coleman说:“随着使用基于PC的模块化仪器和工业标准软件来以最少的开发时间继续改善我们的测试系统从而满足最新的要求,并且升级至NI 5122、NI 6552和 LabVIEW 7 Express,因而我们提高了产品的质量和产量同时以最小的开发费用提高了我们的测试性能。

3. Texas Instruments——RF和无线组件特性测试

德州仪器(TI)拥有将近40亿美元的收益,是领先的无线IC提供者之一。为了简化特性测试过程,TI创建了由NI TestStand和LabVIEW驱使的测试开发、管理和自动化软件。通过使用NI产品,TI扩大了市场同时没有损失质量和资源。

4. Drivven——摩托车引擎控制单元(ECU)原型设计

在过去的项目中,Drivven至少要花费2人-年(man-year)和$500,000来使用自定义的硬件开发ECU原型。对于这个项目,设备成本(包括摩托车和CompactRIO)总计$15,000,而且开发时间只花费了将近3人-月(man-month)。基于FPGA的可重复配置的硬件、CompactRIO和LabVIEW实时模块提供了可*性和精确的定时资源,而且系统十分稳定,足以承受极高的操作环境温度和振动。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(294) | 回复(0)

发表于 2008/6/28 11:59:33

1

关于投票

为什么虚拟仪器技术十分必要?

虚拟仪器十分必要是因为它给予了仪器快速的适应能力,这是当今的观念、产品、过程设计、开发和配送所要求的。只有虚拟仪器可以使得工程师和科学家能够创建用户定义的仪器以与世界的需要同步。

       为了满足更快地革新和传递观念与产品这个不断增长的需要,科学家和工程师正转向先进的电子元件、处理器和软件。以现代的手机为例,大多数具有上一代的最新特性,包括音频、电话本和文本消息性能。新的版本包括摄像机、MP3播放器、蓝牙网络和因特网浏览功能。

      由于设备变得越来越以软件为中心,所以先进的电子元件提高功能是可能的。工程师和科学家无需改变硬件就可以给设备添加新功能,这就造成了无需花费昂贵的硬件成本就可以提高观念和产品。这延长了产品的生命和使用期限并且减少了产品交付时间。工程师和科学家可以通过软件提高功能而不用为了一个特定的工作开发专门的电子元件。

     然而,这种功能的提高却付出了代价。升级的功能引入了不可见的相互作用或错误的可能性。因此,正如设备级的软件有助于快速开发和扩展功能一样,设计和测试仪器也必须改变以检验改进的性能。

    满足这些需要的唯一方式就是利用测试和控制体系结构(也是软件为中心的)。由于利用了高效率的软件、模块化I/O和商用平台,所以虚拟仪器专门定位在与最新观念和产品开发速率同步。NI的LabVIEW,一个领先的虚拟仪器图形化开发环境,使用符号或图形表示来加速开发。软件使用符号表示功能,通过快速地配置图形块来巩固功能进一步加速了开发。

    另一个虚拟仪器组成部分是模块化I/O,它设计成可以迅速地以任何顺序或数量进行组合来确保虚拟仪器能够监视和控制任意一个开发方面。使用为模块化I/O精心设计的软件驱动,工程师和科学家可以在并行操作期间快速地获得功能。

    虚拟仪器第三个组成部分——商用平台使用(经常由于精确同步而得到增强)——确保了虚拟仪器利用了最新的计算机性能和数据传输技术。这使得虚拟仪器建立在一个长期的技术基础之上,这个基础与在处理器、总线等方面的高额投资成比例关系。

   总而言之,随着革新要求软件利用加速新的观念和产品开发,它也要求仪器迅速适应新功能。由于虚拟仪器使用了软件、模块化I/O和商用平台,它使得仪器格外的符合保持与当今观念和产品开发同步的要求。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(327) | 回复(0)

发表于 2008/6/27 20:56:24

1

关于投票

易操作的快速自动测试系统带有USB接口(二)

在测试产品应用中,使用480Mbps的 USB数据传输速率可缩短测试时间。在产品研发时,USB的易用性使工程师能够快速搭建一个测试系统,并很快得到其频率或温度特性。本文给出了在自动测试中使用USB的优点、用USB实现与测试测量设备通讯的可能方法及一些USB的设计指南。

        使用USB-GPIB转换器的好处在于:不需用安装昂贵的GPIB主机总线适配卡即可实现与GPIB测试设备的通讯,而且,不需改变为GPIB编写的应用软件,因为转换器就像GPIB主机总线适配卡一样。由于USB-GPIB转换器能直接插入测试设备的GPIB接口,所以也不需用 GPIB线缆。当计算机上没有扩充插槽时,唯一的解决方案可能就是使用这样的转换器。

        另外,如果多个工程师有时需要进行自动测试,这时,与他人享用USB-GPIB转换器比与其他人享用GPIB卡要容易得多。当传输的数据量很大时,甚至12Mbps全速USB-GPIB转换器可与有25年历史的GPIB性能相媲美。但是,如果测试主要针对执行大量短传输,如写入电子开关,那么USB-GPIB转换器的性能会影响整个测试时间。为了优化短传输性能,可以将USB-GPIB转换器连接到高速USB口。

        如果测试设备有 RS-232接口,可选用几家公司提供的USB-RS-232转换器。操作系统(OS)会把它们当作特殊的COM口。

        有USB接口的测试设备只需一根USB线缆,就可将电脑的USB口接至测试设备。在电子市场这样的线缆很容易买到。因为USB是即插即用的,不用考虑设置唯一地址,地址由操作系统(OS)分配。

        在连接好所有的USB后,在接通之前,还需在计算机里安装软件。对于任何不受OS本身支持的USB设备,都需安装软件,因为USB是即插即用的,当增加一个新设备时,OS能自动检测到。OS先列举新增加的设备,读设备描述符、配置描述符、接口描述符和端口描述符,然后再试图找出最合适的驱动程序。

        如果没有安装软件,当然也找不到合适的驱动程序,这时OS就会放弃操作,给用户显示一个对话框。有些用户这时往往不知怎么办,所以最好还是先装好软件。

        对测试测量设备而言,就是安装I/O库软件,该软件建立文件系统,以便OS能把合适的驱动器与USB设备连接起来。I/O库也为编写与USB通讯的测试软件提供了可能。

开发测试软件

        通常,用I/O库软件开发测试软件,该I/O库软件可实现虚拟仪器软件结构( VISA)标准。VISA已经支持GPIB、RS-232和其他接口。测试测量公司目前在共同工作以使USB支持VISA。这一工作建立在另一称为USB执行者论坛(USB-IF)工作组的工作之上,该工作组的任务是建立USB测试测量分类规范。由于测试测量设备的独特需要,有必要建立新的USB设备分类规范。

        一种需要是把带外GPIB信息,如清零、触发、服务请求及远程/本地信号映射到USB。另一个是定义中断如何恢复设备与电脑间的通讯。USB测试测量分类(USBTMC)规范定义设备所需要的USB端口、发送程序信息的方式以及如何读响应信息。欲了解最常用的规范和USB488子分类规范信息,请登陆网站www.usb.org,该网站是由USB技术创建者――USB执行者论坛公司主办的。

        制定USBTMC规范的目的是针对宽范围测试测量设备通讯要求,这些设备涉及从简单的传感器到具有多种测量功能的大型机。USB488子系统规范则解决将GPIB通讯模型移到USB的需求。图2给出主计算机与USB488之间的通讯路径(USB管)。

 

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(300) | 回复(0)

发表于 2008/6/27 20:55:35

1

关于投票

易操作的快速自动测试系统带有USB接口(一)

在测试产品应用中,使用480Mbps的 USB数据传输速率可缩短测试时间。在产品研发时,USB的易用性使工程师能够快速搭建一个测试系统,并很快得到其频率或温度特性。本文给出了在自动测试中使用USB的优点、用USB实现与测试测量设备通讯的可能方法及一些USB的设计指南。

        测试和测量设备制造商早已认识到自动测试的必要性,因此他们常常在自己的设备中使用某些类型的I/O接口。 IEEE-488标准和RS-232中的通用接口总线( GPIB)是两个最常用的接口。然而,如今的计算机都是在高速通用总线(USB)2.0下工作,因此制造商和设计者应将USB作为GPIB和 RS-232接口的替代或附加I/O。

        为了解USB在自动测试中的优点,需考虑自动测试应用是如何完成的。自动测试主要包括两项工作,一是建立计算机与测试设备之间的物理连接,另一项工作是开发在计算机上执行的测试应用软件。

物理连接

        为利用GPIB建立一个自动测试系统,必须在计算机内安装GPIB主机总线适配卡和GPIB软件驱动器,因为标准PC中没有安装GPIB。可喜的是,很多制造商都提供GPIB卡,不过很贵,而且在一般的电子市场也买不到,GPIB线缆也一样。

        买到并安装好GPIB主机总线适配卡并准备好必用的GPIB电缆后,必须用线缆连接计算机和测试设备。GPIB线缆较粗,含有24根线。因为空间狭窄,有时候安装线缆比较困难。线缆连接好后,必须手动设置设备的GPIB地址。选择的GPIB地址必须是唯一的,不能与计算机中的GPIB卡地址发生冲突。一个GPIB拓扑结构中能安装的设备最多为15个,数据获取速率典型值为约750kBps。

        要用RS-232搭建一个测试系统,必须找到合适的RS-232线缆,通常找到需要的RS-232线缆比GPIB线缆要容易些,尽管型号很多。如果RS-232测试系统不工作,很多人会首先选择用不同的线缆去试。万一仍不奏效,通常再去改变RS-232参数,如波特率、奇偶位、启/停位、流程控制等等,参数非常多,问题不易解决。

        令人欣慰的是,RS-232嵌入到计算机后,不再需要在主机总线上安装适配器,但因受限却只能用两个RS-232。因为RS-232严格按照点对点(无法形成设备间的菊花链结构),两个RS-232口只能连接两个设备。如果需用更多的RS-232端口,则必须用多口RS-232主机总线适配器。由于 波特率的限制,RS-232典型数据传输率远远低于GPIB数据传输率。

        与GPIB和RS-232相比,在有USB的计算机终端进行物理连接非常简单。几年来,已经有数亿台带USB硬件的计算机出货。“通用”这个称呼对USB当然是很合适的。大多数带USB的计算机至少有两个USB口。Intel公司的845G芯片组可处理6个高速480Mbps口。不久将随着它的使用,计算机有更多的USB口。

        每个USB口都是一个“根端口”,可以支持多达127个外设的拓扑结构(如果加上外部集线器)。因此,USB将实现使用一台计算机可连接具有多台仪器的新型测试系统。USB集线器容易买到。

        无论测试设备有没有USB接口,USB与测试设备的物理连接都很简单。当测试设备没有USB接口时,可使用转换器。例如,如果测试设备有GPIB接口,可选择几个公司提供的USB-GPIB转换器,这些转换器一般都包含通用USB芯片、固件和GPIB硬件,可将USB端协议转换为GPIB端需要的信号

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(307) | 回复(0)

发表于 2008/6/27 20:29:54

1

关于投票

在LabVIEW中设置菜单

一、普通菜单

如果VI的窗口外观设置中选择了“Show menu bar”,VI在运行时会在前面板窗口中显示菜单条,默认的菜单是LabVIEW的标准菜单,为了适应使用的需要,我们可以定制个性化的运行菜单,并在程序中对用户的菜单作出响应。定制菜单可以在编辑程序时通过对话框进行设置,也可以在程序运行过程中通过编程实现。

使用菜单命令“Edit —Run —Time Menu”弹出菜单编辑器如图所示。 

点击开大图 

菜单编辑器打开时工具条的Item Type 下拉列表中显示的是Default选项,表示当前菜单是LabVIEW的标准菜单,编辑器中的其它各项功能不可使用。下拉列表中的Minimal选项,表示使用LabVIEW标准菜单中的常用选项。如果需要定制VI运行菜单则要选择Custom选项。
菜单编辑器工具条的6个按钮用来在菜单项列表中编辑菜单项,它们是
 Insert在选定的菜单项后插入新的菜单项  Delete 删除选定的菜单项 Left使选定的菜单项成为上一级菜单项  Right使选定的菜单项成为上一级菜单项的子菜单 Up 向上移动选定的菜单项,如果包含子菜单,也一起移动 Down 向下移动选定的菜单项,如果包含子菜单,也一起移动

菜单预览区可以看到运行时的菜单条。
菜单项列表显示菜单的层次结构,用来对菜单进行编辑。
菜单项属性编辑区逐个设置菜单项的属性,包括:
 Item Type定义菜单的类型     User Item用户定制菜单项,需要编辑,并需要编程响应 Seperator在菜单项中插入分隔符 Application Item从LabVIEW标准菜单中选择菜单项加入到运行菜单中 ,无需编辑和编程响应 Item Name 菜单名,出现在菜单条上的字符串  Item Tag菜单标识,程序通过菜单标识引用菜单选项  Enabled指定该菜单项是否有效  Checked菜单项是否有选中标志  Shortcut设置访问菜单项的快捷键 

运行菜单设置完成后要将其保存在与Vi相同的位置(同一个文件路径或同一个LLB),名称后缀为..rtm。

二、右键菜单

在其它开发环境中很容易实现右键菜单功能,在LabVIEW中相对就要复杂一些,只能通过调用DLL来实现!

上图为调用Windows的DLL实现的右键菜单

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(558) | 回复(0)

发表于 2008/6/27 20:28:31

0

关于投票

Labview初学者常见问题以及解答

1、Labview如何实现由一个事件引发其他三个事件的顺序发生,且这三次事件间的时间间隔为50ms?回答:可以引用状态机来设计程序,将触发事件作为状态机的状态控制参数,后面发生的三个事件依次作为状态机的三个顺序状态,设置状态切换时间间隔为500ms. 2、labview在主程序通过局部变量不能实时看子vi的参数回答:通过局部变量只能得到子vi运行完之后的结果。可以用control reference 方式,在子vi加一个属性节点引出一个reference。主程序里把需要显示的控件创建一个reference连到子vi的reference输入端口。另外也可以用vi server方式实现。 3、如何在一个graph或chart显示多个Y轴刻度,并且使每个通道对应每个刻度?回答:在前面板上,右键点击刻度,然后选择duplicate scales,就会创建一个新的刻度。然后再点击右键,选择swap sides,就可以让刻度显示在图的左边或右边。然后右键右上角的plot legend上的曲线plot,选择Y scales然后就可以选择与该曲线相应的Y轴SCALES。多条曲线对应多条Y轴的刻度时,是同样的方法。  4、如何从labview中打开一个pdf文件?回答:最简单的方法:用system exec.vi实现,在system exec.vi的command line 端口创建一个常量,输入adobe reader 的路径,再加上文件名等几个参数就可以实现上述要求。举例如下:如果要拉开位于c盘的1234.pdf文件可以这样写“C:\Program files\Acrobt 7.0\Acrobat\Acrobat.exe”/t “C:\1234.pdf” “username”其中C:\Program files\Adobe\Acrobt 7.0\Acrobat\Acrobat.exe是Adobe Reader 的安装路径,/t是命令参数,C:\1234.pdf则是要打开的文件名,最后的username是用户的名字  5、采集数据在graph如何显示系统时间,并且随着采集点数时间不断刷新。回答:有两种方式,一种是采集波形数据然后输出给graph,在graph上选择显示绝对时间,并且去掉ignore time stamp选项。第二种是采集数据文件,然后用获取时间的vi获取当前时间,然后把采集的数据文件和当前vibuild成波形文件再给graph.graph的设置和前种方法一样。这样就可以显示出时间虽采集点不断刷新的效果。  6、report generation里的standard和HTML究竟是什么意思?回答:STANDARD和HTML是LV本身就有的报表类型,无须安装其他的文本编辑工具就可以打印。STANDARD是LV内建的一种报表格式,可以打印但不能存盘,也就是说我们的报表没有电子版。HTML是网页格式的文件,可以用浏览器打开,其实相当于LV帮我们编写HTML代码,这种格式是不能直接打印的,需要先指定网页路径才能打印出来。还要注意,如果是一段程序是用了report generation的vi,在打包成exe文件或llb文件时,需要加入两个动态vi:_excel dynamic vi和 _word dynamic vi。如果生成的报表采样了模板需要自支持文件里添加相应模板。  7、如果要将channel名字,测的是什么信号,采样率是多少这样的数据和采得数据一起存入文件应该用什么方式比较好?回答:推荐一种以前基本被忽略的文件结构——TDM FILE格式来存,这种文件格式基于二进制的方式,而在存储过程中可以加入很多的外部信息进去,例如free text;free interger等等,所以存这样的应用还是挺合适的。  8、vi property 下execution中选项reetrant execution,选用和不选用有什么区别?回答:如果主程序执行同一个子vi,是同时两次或多次执行时,在不选用时,就会依次使用这个子vi;如果选用,则这个子vi就会并行执行,提高程序运行速度。  9、为什么把LABVIEW程序框图解密以后,就可以一直打开程序框图,如何才能实现每次打开vi都是加密的?回答:如果在LABVIEW解开程序的框图的密码,关闭以后该程序,不退出labview,这个程序如果再次被打开会一直可以查看他的框图程序,原因是lv没有关闭,所以密码会一直存在内存当中,所以再次打开会依然看到程序框图,如果要实现每次打开都是加密的,只要在一次打开后,把labview也关掉,下次再想要查看程序框图就需要输入密码。  10、使用vi server技术,如何实现从一个vi打开运行并读取另一个vi中控件的值?回答:1)  调用Open vi reference.vi ,输入子VI的路径到其VI PATH的端口;2)  调用Ivoke Node.vi并设为Open FP;3)  调用Ivoke Node.vi并设为Run VI;4)  调用Ivoke Node.vi并设为Get control Value[Variant];对Control Name端口填入子VI循环的停止按钮控件名称;Get Control Value [Variant]输入端的值通过Variant To Data .vi设为控件相对应的控件类型后,输出到前面板,这就可实现取VI控件的值;5)  最后调用Close Reference.vi关闭VI Server。  11、连续采集程序分成配置task状态和采集状态两大部分。在配置状态中得配置出有效的task。根据需要在适当的时候进入采集状态。在采集状态中使用start task 和read两个 vi并且循环执行。当程序开始后立刻报错。回答:因为采集状态中使用start task和 read 两个vi并且循环执行,当采集已经开始后再使用start task就会重复开始相同的资源,导致资源冲突产生错误。建议start部分单独作为一个状态,在循环执行的状态中只使用read.vi。  12、LV7.1在前面板突然找不到Scrollbar了,现在想看或者操作屏幕之外的控件显示件非常麻烦,怎么能够找到Scrollbar?回答:在File\VI Property\Window Appearance\Customize里有Show scrollbar的选项。   13、LV7.1如何实现将Chart的时间坐标与计算机系统时间一致?回答:Chart属性Format And Precision选Absolute Time,显示方式改System Time Format 和System Data Format。程序框图里Get Data/Time In Seconds获取当前时间,转换为双精度浮点型后输入到Waveform Chart的属性节点Xscale. Offset。属性节点Xscale. Format设为模式7。  14、LV7.1如何设计时间输出格式为小时:分:秒.毫秒?回答:用Get Data/Time In Seconds用来获得当前时间,另一个是Format Data/Time String函数,这个函数用来定义输出时间的格式,再time format string端口上输入字符串%H:%M:%S%.3u,然后time stamp连接Get Data/Time In Seconds的时间输出即可。关于时间格式的定义可以在help里看到。  15、为什么用子程序调用时pop up前面板,前面板总是自主程序后面?回答:在window appearance里面选择default floating 和modal这三项,将主程序的选项设在较低的优先级而子程序设得高一点应该可以了。  16、如何读出excel里的数据来作分析?回答:使用Excel Get Data.vi并在参数data type上使用二维字符数组可把Excel内数据以字符串的方式读出。  17、如何对Excel文件作数据续存?回答:使用Excel Get Last Row.vi先将Excel内已有数据的最后一行的行数得出,再于该行开始续存数据。  18、如何将文件保存为Excel格式1)      用ActiveX技术,将LV作为一个ActiveX服务器。可以参考National Instruments\Labview 7.1\examples\apps\freqresp.llb VI库里面的Frequency Response.vi例子程序。2)使用Report Generation工具包,它屏蔽了底层的ActiveX,使用比较简单,不过需要购买。3)保存为文本方式,后缀为.xls,这样子也可以用Excel打开,不过不能用Excel修改保存,要不然会自动修改为Excel文档,以后也不能用LV对其进行操作。  19、如何在table中既显示小数又显示整数回答:table中显示的是字符串,显示小数还是整数是在转换成字符串而未放入table之前的过程中完成的,因此可以将整数小数分别转换成字符串后再合并输出到table中即可。  20、如何制作一个边框是透明的string控件回答:选择一个classic simple string控件,使用工具模板的染色工具,在弹出的对话框中选择右上角“T”;一样的transparent,然后给这个控件染色就可以了。  21、循环采集并对采集的结果判断,前面板放置一个布尔报警灯,只保存报警的数据,并可回放,怎么实现?回答:存储vi外加一个case结构,并以布尔报警灯作为判断,如果为真值,存储,为false,不存。回放有两种形式,即:可以把试验数据存储,然后回调。也可以把graph存为图片。  22、怎样把While loop的循环次数i写入Table的行头ColHdrs[]呢?回答:创建Table的属性节点,属性ColHdrVis=T显示行头,ColHdrs[]连接一个字符串数组,需要将循环次数i加1,然后通过Number To Fractional String转化为字符类型,精度为0。添加移位寄存器,赋初值为空字符串数组,build array上端输入接移位寄存器,下端接数字,右端接ColHdrs[]和移位寄存器另外一端。  23、串口程序打包安装到一台没有LV环境的机器下,串口不可用,为什么?回答:LV7.1的版本,在Application Builder中Installer页面选择:Advanced/Serial Port Support。  24、使用CLF节点调用DLL中的函数,如果原函数中指定的数据类型为结构,那么在CLF配置过程中该如何指定数据类型?回答:可以选择数据类型(TYPE)为Adapt To Type,然后在输出或输入端口连接一个Cluster,这个Cluster的定义和原函数中结构的定义一样。选择Adapt To Type后,连接到端口的数据类型是什么,与函数接口的数据类型就是什么。  25、在子vi运行过程中,如何将数据实时传递到调用它的主vi中,而不是等待子VI运行结束后才在主VI中获得子Vi的输出数据?回答:使用带控制参量的属性节点可以实现在子VI中修改主VI属性的目的,由于控件的值(Value)也是控件的属性之一,因此可以使用控制参量是新以上要求。在子VI中,使用带有控制参量的属性节点,将要传递到主VI的数据写入这个属性(Value)中,将控制参量要设置为Control,并且在子VI的连接器中进行定义;在主VI中,为接收子VIshuju的控件建立一个控制参量,将这个控制参量连接到子VI,即可达到在主VI中实时获取子VI数据的要求。 其实以上这段话,我自己也不是很明白的,什么叫带控制参量的属性节点。这两天看了下下,发现VI SERVER的QUEUE是可以实现从SUBVI实时传递数据到MAINVI的。

点击看大图

这是一个队列例子的前面板,下面是框图,

点击看大图

这是MAINVI的框图;

点击看大图

这是SUBVI的框图;至于实例,可以在网站上下载,搜索《高级编程实例》第8章的例子。呼呼,粘了这么多图,累死我了。  26、事件结构中两种事件类型,一个是通知事件(Notify),另一个是过滤事件(Filter),这两种事件的区别是什么?回答:对于通知事件,程序可以感知事件的发生并且响应该事件,然后再处理在事件结构中定义的任务;对于过滤事件,程序感知事件发生后首先处理在事件结构中定义的任务,然后根据时间结构中的设定(Discard?)决定是否响应该事件。举例来说,时间为Panel Close,在事件发生时弹出一个对话框。如果是通知事件,首先响应事件关闭了前面板,因此没有办法处理“弹出对话框”的任务;如果是过滤事件,首先处理“弹出对话框”的任务,然后根据事件结构中的Discard的值判断是否关闭前面板,若Discard为T,则不关闭,若为F,则关闭。  27、LV7.1主程序已经完成,想在主程序运行之前,先执行一个别的界面,当退出该界面的时候,再显示主界面,如何实现?回答:可以在主程序框图之前,将主程序前面板隐藏,调用子程序,推出子程序后,再显示主程序前面板。这可以通过VI属性节点来实现,先调用一个属性节点,右键选择Select Class/VI Server/VI,然后在属性中选择Front Pannel Window/State属性,分为设为Hide和Standard。Demo程序见项目进程管理中AE-01labview编程技术讨论的“主界面隐藏”。  28、将LV7.1前面板控件(graph)的内容保存成图像文件,在LV中如何编程实现?回答:右键控件创建Invoke Node,选择方法为“Get Panel Image”;另外,调用Graphics &Sound/Graphics Formats下面的VI,将第二步获得的图像写入相应格式文件中。  29、在LV程序中使用matlab,生成exe文件以后,发现文件可以运行但是无法弹出运行界面。回答:在lv中如果使用了MATLAB的话,生成EXE文件的时候需要加一个名为马特script.dll的文件作为支持文件,此外在目标PC上必须安装MATLAB软件。  30、LV7.1使用VI Server的方式,在一台机器上调用另一台机器上的VI并运行,需要做哪些设置?(两台机器在同一个网络中)回答:1)在Tools/Options/VI Server:Configurtion下选择Protocols为TCP/IP,这样才能在网络中使用VI Server,否则只是在本机上使用VI Server。 2)在Tools/Options/VI Server:TCP/IP Access下设置可以访问的VI Server的主机IP。如果不进行设置,远程机器将无法调用需要的VI。  31、在LV7.1中如何在运行程序后,前面板上去掉windows的关闭按钮回答:可以在LV的前面板FILE/VI properties/windows appearance/customize,去掉allow user to close window对钩,保存设置,运行后可以实现效果。

32、LV7.1中如何清除前面板的Graph,即在每次运行时,让Graph重新显示数据而不显示历史数据。回答:在Graph里面可以通过创建Local Varible并对其赋空来解决。而在Chart里可以通过创建History Data属性节点并对其赋空来解决。  33、LV7.1中怎样将一个数组中所有满足条件的元素的索引值提取出来,保存成一个新的数组?回答:使用移位寄存器、Build Array和Select函数就可以做到,具体方法:1)使用FOR循环,在循环边框上添加一个移位寄存器,并初始化为一维空数组,类型为I32;2)在循环内部使用Select函数,每次循环都判断数组中的一个元素,并将判断结果(布尔量类型)送入Select的“s”输入端;3)每次循环都使用Build Array函数将左端的移位寄存器直接连接到Select函数的“f”输入端,这样Select函数的输入端就是所有满足条件的元素的索引值;4)将Select函数的输出端连到右端的移位寄存器上。这样程序结束后,For循环的右端移位寄存器的数据就是需要的索引值。  35 移位寄存器和反馈节点的区别?回答:反馈节点箭头的起始端相当于移位寄存器的右端,箭头的末端相当于寄存器的左端。区别在于移位寄存器的左端元素可以通过下拉下拉方式增加,而反馈节点的端口是无法增加的。  36、如何让子VI的前面板也显示出来?回答:右键点击子VI,选择SUBVI NODE……然后再选择第2项SHOW……就是当子VI被调用时,显示前面板。  37、弹出窗口无法进行任何操作,并且被主界面挡住,如何解决?回答:主界面VI properties中windows appearance里customs设定windows behavior为normal了,因此主界面保持在最前端,应该设为default。  38、在程序中实现按对应键弹出窗口,在窗口已打开情况下继续可打开其他窗口?回答:在程序框图内使用并行循环。每一个可能要运行的子VI(打开其窗口)及其运行条件(按键)各占一个循环。各个循环相互独立,互不干扰。在考虑同时关闭各个窗口时,需要使用全局变量。  39、在调度Vi的时候,经常无意地把面板上的一些控件移动了位置。还要花很大功夫去重新布置这些面板控件。有没有办法让已经设计好的控件的位置固定不动?回答:首先我们可以通过Operate菜单中的Change To Run/Edit Mode命令,设置VI为运行或编辑模式。面板控件的移动只在编辑模式下有效。在运行模式下是不能移动任何控制的位置的。第二种方法是,选择指定的控件(可多选),然后在菜单的Reorder下拉菜单下,选择LOCK命令,来锁住指定的控件。这样,除非使用Unlock命令解锁。否则是无法移动指定控件的位置。  40、为什么子VI节点的输出端口没有数据传递出来?回答:这类问题的主要原因是子VI中存在着循环。如果子VI中的循环不能推出,子VI节点就一直在运行。对于LV的数据流编程机制来讲,一个节点没有执行完,它的所有输出端口就不会有有效数据输出。解决方法:一是把子VI中的循环提出到主VI里来。二是使用全局变量,并在主VI中使用并行循环来控制子VI的结束。  41、怎样在LABVIEW中实现全屏显示?回答:1)要全屏显示,在File/VI Properties/Window Size/Size the front panel to the width and height of the entire screen打上钩,就可以了。2)是否控件显示方法,第一,要完全不显示时,可以把控件放在界面看不见的地方他就不显示了;第二种方法,你可以使用控件的属性进行控制控件的Visible,具体方法是在程序框图里点击鼠标右键/Create/Properties Node,选择Visible,并将其改为Change to Read,对Visble设置为True或False就可以控制控件是否显示了  42、。LV如何对Excel文件作数据续存?回答:使用Excel Get Last Row.vi先将Excel内已有数据的最后一行的行数得出,再于该行开始续存数据。  43、LV当用鼠标点击Graph时,该Graph的大小变化了,当鼠标离去后Graph的大小恢复到原来情况?回答:可以应用一个Event Structure来做,添加两个事件(一个是鼠标点击,另一个是鼠标离去)。通过在这两个事件中分别赋给Graph的PlotArearSize属性节点不同的值,来改变Graph的大小。  44、如何用LABVIEW编程检测U盘?回答:需要调用Windows API函数GetDriveTypeA,其函数返回值盘符类型的数据类型为长整形,输入参数为检测盘符。调用CLFN.vi选择\windows\system32\kernel32.dll,选择GetDriveTypeA,设置Return Type为Numeric Signed 32-bit Integer;再添加参数nDrive,设置参数类型为STRING和格式为C String Pointer。运行时在输入端填上要检测的U盘盘符,返回结果为时表示为DRIVE_REMOVABLE即为可移动的U盘

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(465) | 回复(0)

发表于 2008/6/27 20:21:15

0

关于投票

LabVIEW开发中注意事项

LabVIEW开发虽然简便,但是对于大项目来说,代码量(这里是框图节点的数量)并不亚于文本编程方式。所以,如果出现了以下的问题而又没有及时备份的话,很容易丢失大量的工作成果。

1.  LV6.1可能会出现的一个小Bug!


    在用“Build application or shared library(dll)”生成应用程序时碰到过这样的一个情况:

    建立应用程序的配置文件(包括路径、top-level vi等等)被保存在一个叫做*.bld的文件中。并且在配置文件被保存过以后,下次重建只需单击左下角的“Load快捷按钮”(单击Load旁边的小三角出现的下拉菜单),然后选中这个.bld文件的名称就会导入该配置文件。但是我在使用中出现过这样的提示:"this .bld file is not valid!"并且LV会自动把这个.bld文件删掉,这种错误对于每个.bld文件都一样,但是把LV重启一下就没有这样的错误。所以如果没有备份的话,许多重要的应用程序配置就无故的丢失了。

2.  VI在内存中的组织

    曾经在开发过程中遇到这样一个问题,经调试运行正常的VI程序,在没有修改任何框图程序的前提下,再次打开,出现错误,不能运行!为什么呢?经查明,是因为它调用了另外一个接口完全不同的同名子VI。

    VI在内存中是按名称调用的,可能是因为要给每个VI创建一个线程吧。带来的后果就是,一个时刻,内存中不能出现同名VI,这将会导致VI的错误调用和错误的覆盖保存了同名VI。

    举个例子,两个运行正常的VI:a1.vi、a2.vi,a1.vi调用了C:/b.vi;而a2.vi调用了D:/b.vi。这两个b.vi只是同名,其框图程序完全不同。首先打开了a2.vi,这样D:/b.vi就被装入内存,然后再打开a1.vi,这时a1.vi就会自动去调用已经装载在内存中的那个b.vi,也就是D:/b.vi,这样必然会导致不该出现的错误。

    所以,在同一个项目中不要使用名称相同的VI;最好不要同时打开两个项目,除非这两个项目没有同名的子VI。

3.  LabVIEW中头疼的路径问题

l  Build Application前后VI的路径

    current vi's path.vi功能是取出VI的当前路径,例如此时路径为.../a.vi,在Build Application后就会变成.../Application/a.vi,在vi的外部又套了一层目录,所以在开发程序时安本地路径成功调用的一些外部文件,在Build Application后很可能就找不到了。这时需要修改框图程序。

l   子VI路径问题

    子VI的调用还是按绝对路径,也就是说,当你把开发时存放VIs的文件夹移到别处(也就是改变每个VI的绝对路径),LV6.1的处理方式:提示找不到子VI,然后弹出文件对话框,由用户去一个一个browse;LV7.1的处理方式:自动探测到本地的一些子VI,然后提问是应用这些新的VI路径还是重新由用户去browse。

    所以最好一开始就对文件夹的位置仔细斟酌,以免往后移动文件夹是带来不必要的工作量。

l   Report Generation Toolkit中的路径问题

   程序中大都需要开发报表模块,而使用Microsoft Office无疑是比较流行和方便的。对于LabVIEW,这时需要安装Report Generation Toolkit。

    Report Generation Toolkit中有很多子VI都是通过名称来调用,所以在Build Application的时候这些VI并不能够被自动装入,而需要在Dynamic VI中一个一个添加。默认情况下,这些VI的路径与LabVIEW整个平台的安装路径有关,所以在LabVIEW安装路径改变时(例如重装LV于不同的位置),就需要再次找到这些Dynamic VI并一个一个的改变。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(427) | 回复(0)

发表于 2008/6/27 20:18:04

0

关于投票

Caption 和 Label 的书写规范

LabVIEW控件的 Caption 和 Label 的特性和用途很相似,都是给了控件一个有意义的名字。因此,在很多场合没有必要刻意区分他们。
     Caption 和 Label 的最主要区别在于,Caption 可以在程序运行的时候改变;而 Label 则不可以,一旦程序运行,就固定不变了。鉴于这一点,Caption 和 Label 的用途也略有区别。Label 应该是给程序自己用的,比如在程序中需要根据控件的名字找到它,那就得跟据  Label 来找,而不能用Caption来找;Caption 是为了给用户看的,有时控件的名字在运行到不同状态下需要发生改变,此时显示在界面上的就应该是 Caption。      推荐大家按照下面的规范使用  Caption 和 Label。     先给 VI 分一下类:    1. 底层 VI:用户不会直接使用到的 VI,作为 subVI 随程序一起发布。    2. 用户界面 VI:VI 前面板是给用户看的程序界面的一部分。    3. 程序接口 VI:VI 是提供给用户,在他们编程时,当作 API 被调用。     对于  Caption 和 Label 一个共同的书写规范是:使用有意义的文字,在使用英语短语命名时,单词之间用空格分隔,不应该有重名。    不同点列于下表:LabelCaption底层 VI显示出来使用 LabVIEW 的默认状态,即 Caption 为空。用户界面 VI隐藏
多语言版本中,只使用英语显示
多语言版本中,使用本地化语言程序接口 VI隐藏
多语言版本中,只使用英语
不用标注控件的默认值显示
多语言版本中,使用本地化语言
在后面加一括号,括号内标注控件的默认值和数据单位

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(270) | 回复(0)

发表于 2008/6/27 20:17:26

0

关于投票

LabVIEW小技巧集锦

1. 按住“ctrl”键拖动,可以复制如控件、property node、local variable等等,复制的同时保持了数据、大小等等。

2. 按住“shift”拖动控件,可以保持在水平或垂直方向移动。

3. 还有按住“ctrl”+“shift”组合的拖动。

4. 如果在编程中发现框架中的空间不足,可以在框架的空白处按住“Ctrl”并用鼠标画框,框架就会按照鼠标所画的框的大小自动增大。(LV7.0里面新增了可以自动调整框架大小以适应内容的选项)

5. 用“Tools->Connect Wire"工具将光标移动到节点的某一输入端或输出端口,然后右击选择"Create->...",即可创建该端口对应的Control、constant或indicator。对于未知数据类型的端口非常有用。

6. 在”Build Application or shared Library(DLL)“中,Target file name不可以是中文(LV6.1),否则生成过程中会报错。

7. Functions->File I/O->File Constants->Current VI's Path在build application后值会变成.../.../Application.exe/XXXX.vi,在文件名前面又加了一层!我的做法是自己写一个子VI,输入为Current VI's Path,输出为Current VI's Path和对应的Directory,在程序中需要用到Current VI's Path的时候调用,以后build application的时候只要修改这个VI就可以了。

8. 如果安装并使用了LabVIEW.Report.Generation.Toolkit.For.Microsoft.Office,在Build Application时要注意有一些VI(如Word_Open)等等是在调用节点中以字符串标识名称的方式调用了,所以对于这些VI就必须手动Add Dynamic VI...

9. 默认情况下不论是设计时还是build application后,右击控件都会出现Runtime Popup menu,而且是全英文的,一般不容易发现。解决办法,设置top level VI的属性Allow Runtime Popup为false。

系统分类: 测试测量  |  用户分类: Labview  |  标签: 虚拟仪器  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(264) | 回复(0)

23Next >Total , Page /