首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一种虚拟仪器的实现

请再发一些关于虚拟仪器开发的资料!!

谢谢
发信人: 空手剑客 (空手剑客), 信区: VI
标  题: zz『虚拟仪器』常见开发工具
发信站: 一塌糊涂 BBS (Wed Jun 25 19:08:07 2003), 本站(ytht.net)


发信人: wangzi (穷且益坚,不坠青云之志), 信区: VI
标  题: [范文][VI]『虚拟仪器』常见开发工具
发信站: BBS 水木清华站 (Sat Sep 14 20:18:15 2002), 站内信件

【 以下文字转载自 New_board 讨论区 】
发信人: catchang (心如芷水), 信区: New_board
标  题: [范文][VI]『虚拟仪器』常见开发工具
发信站: BBS 水木清华站 (Mon Sep  2 11:31:43 2002), 站内信件

    虚拟仪器的开发工具比较广泛,目前比较流行的软件开发技术是面向对象
的编程技术和图形编程技术 ,两者在虚拟仪器开发中都有应用。可视化编
程语言环境VisualC ++、VisualBasic均可以用来开发
虚拟仪器的配套软件,但相比较图形编程语言来说,编程难度较大,开发
周期较长且不易进行更改、升级和维护等。而图形编程语言在这方面具有
无可比拟的优势,它具有简单易学,开发周期短,开发出的应用程序界面
美观,功能强大。这方面国外的例子有HP公司的 郑牛藕 NI公司的
LabVIEW等软件。此外 还有Lookout、BridgeVIEW和LabWINDOWS/CVI等
了labview 7 express)

--

※ 修改:·catchang 于 Sep  2 11:33:30 修改本文·[FROM:   166.111.49.48]
朱博士
发信人: 太空堡垒 (神州五号), 信区: VI
标  题: [范文][VI]LabVIEW开发平台简介 [ZTFromSmth]
发信站: 一塌糊涂 BBS (Sun Feb 22 12:29:01 2004), 本站(ytht.net)


发信人: wangzi (穷且益坚,不坠青云之志), 信区: VI
标  题: [范文][VI]LabVIEW开发平台简介
发信站: BBS 水木清华站 (Sat Sep 14 20:17:51 2002), 站内信件

【 以下文字转载自 New_board 讨论区 】
发信人: wwtsh (陈涉水), 信区: New_board
标  题: [范文][VI]LabVIEW开发平台简介
发信站: BBS 水木清华站 (Sun Sep  1 21:13:32 2002), 站内信件

[范文][VI]LabVIEW开发平台简介
    LabVIEW是一个完全的、开放式的虚拟仪器开发系统应用软件,利用它组建仪器测试
系统和数据采集系统可以大大简化程序的设计。LabVIEW与Visual C++、Visual Basic、
LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码(Code),而L
abVIEW则是使用图形化程序设计语言G(Graphic),用框图代替了传统的程序代码。Lab
VIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程
和思维过程非常的相似。
    LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的函数库和开发工具库。
LabVIEW的程序设计实质上就是设计一个个的“虚拟仪器”,即“VIs”。在计算机显示屏
幕上利用函数库和开发工具库产生一个前面版(Front Panel);在后台则是利用图形化
的编程语言编制用于控制前面板的框图程序。程序的前面板具有与传统仪器相类似的界面
,可接受用户的鼠标和键盘指令。一般来说,每一个VI都可以被其他VI调用,其功能类似
于文本语言的子程序嵌套;而这种嵌套的层次,从理论上讲,是不受任何限制的。
    LabVIEW是带有可扩展函数库和子程序库的通用程序设计系统。它提供了用于GPIB设
备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储的应用程序模块。
LabVIEW可方便的调用Windows动态链接库和用户自定义的动态链接库中的函数;LabVIEW
还提供了CIN (C Interface Node) 节点使得用户可以使用由C或C++语言,如ANSI C, 编
译的程序模块,使得LabVIEW成为一个开放的开发平台。LabVIEW还直接支持动态数据交换
(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。此外,LabVIEW还提供了专门
用于程序开发的工具箱,使得用户能够很方便的设置断点,动态的执行程序来非常直观形
象的观察数据的传输过程,以及进行方便的调试。
    LabVIEW的运行机制就宏观上讲已经不再是传统上的冯·诺伊曼计算机体系结构的执
行方式了。传统的计算机语言(如C)中的顺序执行结构在LabVIEW中被并行机制所代替;
从本质上讲,它是一种带有图形控制流结构的数据流模式(Data Flow Mode),这种方式
确保了程序中的函数节点(Function Node)只有在获得它的全部数据后才能够被执行。
也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计
算机等因素的影响。
    既然LabVIEW程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有
输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。这样,Lab
VIEW中被连接的函数节点之间的数据流控制着程序的执行次序,而不像文本程序受到行顺
序执行的约束。从而,我们可以通过相互连接函数节点快速简洁的开发应用程序,甚至还
可以有多个数据通道同步运行,即所谓的多线程(Multithreading)。
    LabVIEW的核心是VI。VI有一个人机对话的用户界面——前面板(Front Panel)和相
当于源代码功能的框图程序(Diagram)。前面板接受来自框图程序的指令。在VI的前面
板中,控件(Controls)模拟了仪器的输入装置并把数据提供给VI的框图程序;而指示器
(Indicators)则是模拟了仪器的输出装置并显示由框图程序获得或产生的数据。当把一
个控件或指示器放置到前面板上时,LabVIEW便在框图程序中相应的产生了一个终端(Te
rminals),这个从属于控件或指示器的终端不能随意的被删除,只有删除它对应的控件
或指示器时它才会随之一起被删除。
    用LabVIEW编制框图程序时,不必受常规程序设计语法细节的限制。首先,从函数面
板(Function Palette)中选择需要的函数节点(Function Node),将之置于框图上适
当的位置;然后用连线(Wires)连接各函数节点在框图程序中的端口(Port),用来在
函数节点之间传输数据。这些函数节点包括了简单的计算函数、高级的采集和分析VI以及
用来存储和检索数据的文件输入输出函数和网络函数。
    用LabVIEW编制出的图形化VI是分层次和模块化的。我们可以将之用于顶层(Top Le
vel)程序,也可用作其他程序或子程序的子程序。一个VI用在其它VI中,称之为subVI,
subVI在调用它的程序中同样是以一个图标的形式出现的;为了区分各个subVI,它们的图
标是可编辑的。LabVIEW依附并发展了模块化程序设计的概念。用户可以把一个应用任务
分解成为一系列的子任务,每个子任务还可以分解成许多更低一级的子任务,直到把一个
复杂的问题分解成为许多子任务的组合。首先设计subVI完成每个子任务,然后将之逐步
组合成为能够解决最终问题的VI。
    图形化的程序设计编程简单、直观、开发效率高。
朱博士
本人正在学习使用Labview,感觉比起以前用的VB方便,简单,但这套软件是否真的完美,还有待大家的实践

一种虚拟仪器的实现

标  题: 一种虚拟仪器的实现


文章摘要:
  论文通过一次实验对LabVIEW软件作了初步探索,并对其环境进行了较为详细的介绍
,以此为平台,开发了一种简单的虚拟仪器,实现了一些基本的数字信号处理的功能,
同时,讲述了虚拟仪器的一般开发过程。
  关键词 LabVIEW,虚拟仪器,图形化编程
----------------------------------------------------------------------------
----
正文:
一种虚拟仪器的实现
1.引言
  现代科技的发展日新月异。计算机技术则尤为如此。计算机强大的处理能力,使得
它成为一种很好的工具,其应用范围也越来越广泛。在工业自动化和测试及测量领域,
传统的方法有许多重复建设,显然已经不能适应时代发展的需要了。如何利用先进的计
算机技术提高效率则成为该领域迫切需要解决的问题。1986年,美国NI公司(Nation I
nstrument)提出了虚拟仪器的概念,提出了"软件即仪器"的口号,彻底打破了传统仪器
只能由生产厂家定义,用户无法改变的局面,从而引起仪器和自动化工业的一场革命。
随着现代软件和硬件技术的飞速发展,仪器的智能化和虚拟化已经成为未来各级实验室
以及研究机构发展的方向。虚拟仪器,顾名思义,它应具有传统仪器的功能,又有别于
其传统仪器。它的特点体现在其灵活性上,它能够充分利用和发挥现有计算机先进技术
,使仪器的测试和测量及自动化工业的系统测试和监控变得异常方便和快捷。
    下面我们就以NI公司的LabVIEW软件为例,简述一种虚拟仪器的开发过程。
2.LabVIEW简介
2.1 LabVIEW概览
  LabVIEW(Laboratory Virtual Instrument Engineering Workbench实验室虚拟仪
器工程平台)是一个程序开发环境。类似于C、BASIC。但LabVIEW的特点在于,它使用图
形化编程语言G在流程图中创建源程序,而非使用基于文本的语言来产生源程序代码。L
abVIEW还整合了与诸如满足GPIB、VXI、RS-232和RS-485以及数据采集卡等硬件通讯的全
部功能。内置了便于TCP/IP、Active X等软件标准的库函数。虽然LabVIEW是一个通用编
程系统,但是它也包含为数据采集和仪器控制特别设计的函数库和开发工具。LabVIEW程
序被称为虚拟仪器(VIs),是因为它们的外观和操作能模仿实际的仪器。由于LabVIEW
所使用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没
有多少编程经验,同样也能利用LabVIEW来开发自己的应用程序。
  创建虚拟仪器的过程共分三步:(1)虚拟仪器的交互式用户接口被称为前面板,因
为它模仿了实际仪器的面板。前面板包含旋钮、按钮、图形和其它的控制与显示对象。
通过鼠标和键盘输入数据、控制按钮,可在计算机屏幕上观看结果。(2)虚拟仪器从流
程图中接收命令(用G语言创建)。流程图是一个编程问题的图形化解决方案。流程图也
是虚拟仪器的源代码。(3)一个虚拟仪器的图标和连接就象一个图形(表示某一虚拟仪
器)的参数列表。这样,其它的虚拟仪器才能将数据传输给一个子仪器。图标和连接允
许将此仪器作为最高级的程序,也可以作为其它程序或子程序中的子程序(子仪器)。

2.2图形化编程环境
  该环境包含前面板、流程图、图标和连接。在软件启动时,系统会建立一个缺省名
为Untitled.1的文件(VI)。该文件包含两个窗口,一个用以编辑前面板,另一个用作
编辑流程图。前面板就象是虚拟仪器的用户接口,尤如实际仪器的面板。前面板基本上
是控制和显示对象的集合。用以控制模拟仪器输入设备,为虚拟仪器的流程图提供数据
。显示模拟仪器的输出设备及流程图中获得或产生的数据 。
  流程图窗口用以编辑虚拟仪器的图形化源代码。通过连线将输出、接收数据的对象
连接起来创建流程图,就能实现特定的功能,控制执行的流程。需特别指明的是:LabV
IEW运行是数据流驱动的。简单地说,就是只有当所有的输入数据都准备好的时候,一个
节点才能执行其功能,当节点执行完后,它所有的输出端口都会产生一个数据值。数据
都是从源端流到目的端。数据流不同于执行一个传统程序的控制流方法(通过执行一系
列的指令来实现的)。控制流执行是指令驱动。而数据流执行是数据流驱动或依赖数据
的。这里提到的节点是程序执行的元素。它们类似于传统编程语言中的状态、操作、函
数和子程式。LabVIEW包含广泛用于数学计算、比较、转换、输入/输出的函数库。另一
类节点类型是结构。结构就是传统编程语言的循环、条件描述的图形表示,不断的重复
和执行代码。LabVIEW也提供了用于连到外部基于文本的代码和用于计算基于文本的公式
的特殊节点。
  图标和连接--当一个虚拟仪器的图标被放置在另一个虚拟仪器的流程图中时,它就
是一个子仪器或说是LabVIEW的一个子程序。子仪器的控制和显示对象从调用它的仪器流
程中获得数据,然后将处理后的数据返回给它。连接是对应于子仪器控制和显示对象的
一系列连线端子。图标既包含虚拟仪器用途的图形化描述,也包含仪器连线端子的文字
说明。连接更象是功能调用的参数列表。连线端子就是类似于参数。每个终端都对应于
前面板的一个特别的控制和显示对象。连接从它的输入连线端子接收数据,然后通过子
仪器的控制对象将数据传输给子仪器的代码。每个虚拟仪器都有一个缺省的图标,位于
两个窗口的右上角。当然,图标可根据用户的需要进行修改。每个虚拟仪器都有一个连
接。在前面板的仪器图标上右击鼠标,选择Show Connector,即可看到该仪器的具体连
接。第一次显示时,会有缺省的模式。若用户想修改,则可选择Pattern或Use/Remove
Terminal来进行新的模式设置。
2.3 编程工具介绍
  LabVIEW提供了三个模板来编辑虚拟仪器:工具模板(Tools Palettes)、控制模板
(Controls Palettes)、功能模板(Functions Palettes)。工具模板提供用于图形操
作的各种工具,诸如移动,选取,设置卷标、断点,文字输入等等。控制模板则提供所
有用于前面板编辑的控制和显示对象的图标以及一些特殊的图形。功能模板包含一些基
本的功能函数,也包含一些已做好的子仪器。这些子仪器能实现一些基本的信号处理功
能,具有普遍性。其中控制、功能模板都有预留端,用户可将自己制做的子仪器图标放
入其中,便于日后调用。
3 仪器的开发
  熟悉了环境之后,便可以来开发自己的虚拟仪器了。由于实验条件的限制,本实验
只做虚拟仪器的后两部分,实验中所采用的信号不是来自外部采集所得,而是通过软件
的方法获得,也就是在流程图中编制一个简单的信号发生器,产生一些周期信号,冲激
波及一些虚拟数据(用于拟合)。前面板的设计分为两部分--显示部分和控制部分,并
以左右形式排列在前面板编辑窗口中。其中显示部分包含原始信号的显示和信号处理后
的结果显示。控制部分包含一些参数的设置,功能的选择,还有系统控制。为了便于用
户使用该虚拟仪器,发挥虚拟仪器的特点,在前面板上加了一个More Info的控制钮,当
运行时,点击该按钮即可看到该仪器使用的详细说明,类似于传统仪器的说明书。另外
,为了使面板更接近于真实的仪器面板,利用控制模板中Decorations>>Recessed box实
现凸凹的效果;为了使控制部分和显示部分一一对应起来,防止用户的误操作,对于某
些暂不使用的按钮,利用属性Visible、Disable来实现按钮的隐藏、灰显效果。
  至于流程图,它是和前面板一一对应的。整体上采用一个While Loop结构,由系统
控制按钮来控制。其内部大体包含两部分:信号发生器和信号处理部分。这两部分均用
Case窗来实现。信号处理部分的功能实现较多,因而对每一个功能采用定制子仪器的方
法将其做成一个个子仪器,用特定的图标表示。此法可减少流程图的复杂程度,便于数
据流的跟踪和调试。下图就是执行功率谱分析和虚拟数据拟合时的前面板,从两个图形
的比较中可体会本次实验的设计思路。
4 结束语
  本次实验对LabVIEW软件作了初步探索,对其环境进行了较为详细的介绍,并以此为
平台,开发了一种简单的虚拟仪器,实现了一些基本的数字信号处理的功能,由此讲述
了虚拟仪器的一般开发过程。由于是初探,一些深层次的能够充分体现其跟上时代发展
的功能使用诸如远程通信,与传统语言接口还未涉及到,由待日后探讨。在此实验中,
虽说是初探,但我们已能体会到LabVIEW软件的强大的开发功能和实用功能。

※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 166.111.63.100]
--
※ 修改:·Able 于 02月27日18:55:58  修改本文·[FROM: 162.105.71.31]
朱博士
NI上海公司有免费培训,感觉还不错。不妨联系试试看。
朱博士
[em08],
返回列表