文章分类 - My lab
摘要:数据采集通常是测试程序第一步需要做的工作。它负责从硬件设备得到表示物理量或信号的数据。 1》对于比较常见的仪器设备,可以使用 LabVIEW 提供的 "查找仪器驱动程序" 工具来查找并安装其驱动程序。该工具位于 LabVIEW 的菜单项:"工具 -> 仪器 -> 查找仪器驱动"。 使用 "查找仪器驱
阅读全文
摘要:普通循环模型 简单测试程序模型 顺序测试程序的模型(整个程序的执行速度也会相对较慢) 管道流水线模型 先采集、然后处理、之后再显示和保存的。 程序在采集新数据的同时,处理上一次循环迭代采集到的数据,同时,显示和存储上一次循环迭代处理好的数据 生产者消费者模型 对采集到的数据做一缓存,其程序模型 采用
阅读全文
摘要:一般都是从总体到细节,也就是从高到低地分析和设计。如果一开始就研究细节,可能效率会比较低下。 设计程序时,编程者会首先在纵向上把程序划分成若干个层次 从程序的最高层起;分为几个部分,以及每一部分之间的关系。 在划分程序的层次时,可以按照程序的大小和复杂度,把程序划分成不同的层次。最简单的程序或许只有
阅读全文
摘要:在创建 VI 片段时,先用鼠标选中需要被放入 VI 片段的所有代码,然后选择菜单“编辑 -> 从选择中创建 VI 片段”,保存图片文件即可: 创建出来的 VI 片段就是一幅程序框图的图片,但是它有一个边框和一个图标,表示可以将它们拖动到 LabVIEW 中以将代码添加到程序框图上。下面就是刚才创建好
阅读全文
摘要:VI 主要在“编程 -> 文件 I/O”函数选板上: 不同类型的划分主要是按照数据在文件中的组织格式来区分的。 如果我们先不考虑数据的组织格式,只考虑文件中的数据的内容,可以把文件分为两大基础类别:二进制文件和文本文件。 二进制优缺点 优点: 二进制文件直接把数据的原始格式写入硬盘,优点是数据占用空
阅读全文
摘要:数据线是非常重要的线索;它为我们指明了程序执行的顺序,数据传递和加工的过程 失去数据线这一重要线索,就不容易搞清楚某个数据是从哪里来的,何时被改动,因而大大降低了程序的可读性和可维护性。 队列的数据类型,与 LabVIEW 中大多数常见的数据类型都不一样,它在传递数据时,采用了传引用的方式。 使用:
阅读全文
摘要:传值是符合数据流驱动程序的传参方式,在 LabVIEW 中应该尽量使用这种方式。但是传引用在某些情况下是不可避免的。假如程序要在不同的线程中对同一数据进行操作,就不得不用到传引用。 在 C 语言及其它常用的文本编程语言中,一个数据传入子函数的时候,可以被指定是传值还是传引用。 LabVIEW 不能指
阅读全文
摘要:利用循环结构中移位寄存器的特性,也可以保存全局数据;使用这种方式保存全局数据的子 VI 叫做功能全局变量 结构:主体是一个循环条件结构; 有一个用于选择某种操作的输入控件 一对或多对分别用于输入和输出数据的控件 注意:功能全局变量 VI 绝对不可以被设置为可重入,否则在程序不同之处得到的移位寄存器中
阅读全文
摘要:共享变量与全局变量相比,其作用域更广。 它不但可以在不同的 VI 之间传递数据,还可以在不同的程序,甚至不同的计算机以及硬件设备间传递数据。 用途:共享变量主要用于网络上不同 VI 的数据共享,或读写其它硬件设备上的数据 特点:共享变量不是一个单独的 VI,它是 LV 库的一部分,它只能创建在某个
阅读全文
摘要:一种可以让数据随时流入流出其间的对象 区别 局部变量只能在其对应控件所在的 VI 中使用,而全局变量可以在一个程序中的任意 VI 上使用。 缺点:1》全局变量破坏了数据流顺序的逻辑关系,而且不利于代码的可读性 2》VI 每次读取全局变量数据,LabVIEW 都要为读到的数据复制一个新的副本,这毫无疑
阅读全文
摘要:在主程序中,避免不了对用户界面操作的处理,因此事件结构是必不可少的。 为了处理一些非界面上的任务,程序还必须有一个选择结构以应对其它工作。 有两种程序结构可供选择了: 1. 选择结构在外,事件结构在内,在 Labview 中称之为 "队列消息驱动" 结构; 2. 事件结构在外,选择结构在内,本书称之
阅读全文
摘要:LabVIEW 界面程序最常用的结构就是循环事件结构。用事件结构截获用户在界面上对控件的操作,然后做出相应处理。 LabVIEW 也可以采用与文本语言相类似的方法来处理事件:不是在事件结构内处理事件,而是在程序开始时,就为某事件注册一个回调 VI。在回调 VI 内编写相应代码,一旦事件发生,就会执行
阅读全文
摘要:LabVIEW 对光标进行操作的 VI 在“编程 -> 对话框与用户界面 -> 光标”中。 用于设置和取消光标的忙碌状态。
阅读全文
摘要:LabVIEW 自产的事件主要是指那些由用户对界面对象进行操作的事件,比如在某处点击鼠标,改变某个控件的值,以及程序自身状态变化(如“超时”)的事件。 果需要在程序中,在满足其它某种条件时也产生一个事件,就只能使用用户自定义事件了。 用户自定义事件是使用“创建用户事件”函数创建出来的事件。当需要抛出
阅读全文
摘要:事件结构是与条件结构类似的一种结构。它们的区别在于:事件结构是根据发生的事件决定执行哪一个分支中的代码的。 按照产生源来区分事件的种类 <应用程序> 应用程序事件,这类事件主要反映整个应用程序状态的变化,例如程序是否关闭,帮助窗口的状态是否有变化,是否超时等。 <本 VI> 本 VI 事件,这类事件
阅读全文
摘要:顺序结构的程序,我们可以采用顺序结构程序的编写方法: 一个更为有效的方法是把测试任务序列作为测试程序的输入,程序根据用户每次指定的测试任务顺序来调用测试任务。这个程序可以使用循环条件结构来完成: 单状态传递的状态机 程序开始时,首先指定一个初始任务。条件结构处理完初始任务后,根据当前结果设定下一个任
阅读全文
摘要:重入执行是子 VI 的一个属性。默认情况下,VI 是不会被设置这个属性的;需要设置它时,可以在 VI 属性对话框中,选中 "重入执行" 选项。设置了这一属性的 VI,称为可重入 VI。 子 VI 被设置为可重入,那么在程序的不同地方调用这个子 VI 时,它会在内存中为每一处的调用各生成一个新的 VI
阅读全文
摘要:错误处理机制 在实际编程中,通常并不需要为每个函数的错误返回值都加一个错误处理条件结构,而是把判断对错的代码都放在较为底层的子 VI 中 LabVIEW 自带有此类 VI 的模板;选择 "文件 -> 新建",带错误处理的子 VI" 模板 自己编写错误处理机制时,就必须考虑到哪些代码在出错时依旧需要运
阅读全文
摘要:大多数控件用来显示二维图形数据,也有一部分控件可以用来显示三维图形数据。 图表(Chart)和图(Graph)。图表和图的功能非常类似,最主要的区别在于当图表控件自带一块缓存,历史数据会被保存在缓存中。 当图表接收到新的数据时,它不会把原来显示的图形清除,而是在原图形基础上再把新数据添加上。 图控件
阅读全文
摘要:for 循环 数据在流入流出循环结构时,除了可以通过隧道,也可以通过移位寄存器或者反馈节点。 使用了索引隧道的 for 循环结构,可以不用提供循环次数,即不必输入 N 值,循环迭代次数由输入数组的长度决定。迭代次数即数组长度。这样,循环结构恰好能够处理完输入数组的每一个元素。 隧道(隧道负责在循环结
阅读全文

浙公网安备 33010602011771号