zoukankan      html  css  js  c++  java
  • LabVIEW 初体验

    前言:

           我们首先编写一个简单的LabVIEW程序来体验一下 LabVIEW编程的简节与强大。编写这个程序的简单程度类似于文本编程语言中的 Hello World ! 程序,但是它的功能却不会像 Hello World 那么简单幼稚。因为这个程序实现了仿真信号的发生与图形显示。


    一、创建一个新的VI

           LabVIEW 程序被称为 VI (Virtual Instrument),并以 .vi 作为扩展名,因此我们习惯使用VI来代表LabVIEW程序。我们启动LabVIEW(我的版本是2012版)后,新建 一个 空白VI,可以得到两个窗口,一个是程序框图,一个是前面板,如下所示:


           LabVIEW 提供很多外观与传统仪器(如示波器,万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板,使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G(graphics)代码。LabVIEW 的图形化源代码在某种程度上类似于数据流流程图,因此又被称作程序框图代码。前面板上的每一个控件对应于程序框图中的一个对象,当数据 “流向” 该控件时,控件就会根据自己的特性以一定的方式显示数据,例如开关,数字或者图形。

           在 VI 前面板中添加控件:

         (1) VI 前面板控件分为 控制控件 和 显示控件。显示控件用于向用户显示数据或信息,控制控件则用于用户向程序输入数据或控制信号。LabVIEW中的很多控件都模仿了现实世界的仪器界面,例 如旋钮、幵关和滑动条等。下面将在VI前面板中添加两个旋钮用于控制仿真信号的幅度和频率。如下图所示:

    放置两个旋钮:

    此时在程序框图中可以得到:

    在右键鼠标的属性中修改相关参数,如下:

    (2)接下来在程序框图窗口当中添加 信号发生模块,并将信号设置为正弦信号,如下所示:

    进入VI程序框图,双击仿真信号发生函数的图标或右击该图标选择Properties选项, 将会弹出如下图所示的 “配置仿真信号” 对话框,设置属性:

    该模块设置完成:

    (3) 然后在前面板中添加 示波器模块,如下所示:

    此时,程序框图如下所示:

    (4) 最后在程序框图中添加 while 循环,学习过simulink的童鞋应该比较了解,物理结构就相当于子系统一样,如下所示:

    将程序框图中的所有模块都框起来:

    此时,前面板中多了一个红色字体的控制程序运行的 停止 按钮:


    二、仿真

       当所有的模块图标都摆放正确,属性也设置完好之后,我们就可以连线了:

           

    如果程序编辑正确,VI 工具栏上的运行按钮为一个白色箭头,它表示程序可以执行,否则为一个断裂的灰色箭头,它表示程序中存错误不可执行:

         如果前面么有出错的话,现在应该是可以执行的,运行程序:

    更改幅值和频率,如下:

    按下 STOP 按钮,停止运行:

      (1)回到 VI 前向板,单击运行按钮(白色箭头)或按下 Ctrl+R 快捷键,此时运行按钮变为黑色箭头,它表示程序正在运行中,注意,在VI运行过程中是不能对VI进行编辑的。

      (2)将鼠标移动到 旋钮 控件上,旋转该Knob以观察波形的幅度和频率变化。

       (3)单击 STOP 按钮停止该 VI 。当单击 STOP 按钮时,该按钮作为一个布尔变量将真值传递给While循环,因此While循环会完成当前迭代后停止循环。由于停止循环后没有别的代码需要执行,因此 VI 会自动停止运行。这也是为什么如果程序中没有While 循环时,VI很快被执行完毕后就会自动停止。用户也可以申击工具栏上的 中止运行按钮 强行中止 VI 运行,但是这样并不会等待当前循环迭代完成。因此,如果该 VI 正在进行某项关键操作时(例如写数据库),强行中止 VI 就很可能造成灾难性后果。因此建议在设计 VI 时都应该添加一个 STOP 按钮用于停止 VI 运行。


    三、总结

          我们已经完成了第一个能够运行的 VI。 通过上述示例我们应该初步学会了如何新建 VI、编辑 VI前面板 和程序框图、运行和停止VI。通过这个练习,我们已经可以初步领略到基于数据流的图形化编程是如何让编程变得如此简单的——这是因为LabVIEW将复杂的界面和算法代码都隐藏在一个个控件、图标和连线的背后,我们不用再去编写那些与他们工作毫无关系的界面或算法代码了。

  • 相关阅读:
    Error creating bean with name 'eurekaAutoServiceRegistration'
    CentOS 下 安装 nginx 执行配置命令 ./configure 报错
    linux解压war包的命令
    idea中如何将一个普通项目转换为maven项目(或者导入Maven项目后没反应)
    IDEA报 : Lombok Requires Annotation Processing
    IDEA中如何添加RunDashboard
    @Controller 和 @RestController 的区别
    @RequestMapping 和 @GetMapping @PostMapping 区别
    批量提取指定文件夹下的所有文件名称及其路径
    TortoiseSVN的bin目录下面没有svn.exe
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13665278.html
Copyright © 2011-2022 走看看