Labview编程重点摘要

上传人:飞*** 文档编号:4681349 上传时间:2017-08-22 格式:DOC 页数:4 大小:33KB
返回 下载 相关 举报
Labview编程重点摘要_第1页
第1页 / 共4页
Labview编程重点摘要_第2页
第2页 / 共4页
Labview编程重点摘要_第3页
第3页 / 共4页
Labview编程重点摘要_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Labview编程重点摘要》由会员分享,可在线阅读,更多相关《Labview编程重点摘要(4页珍藏版)》请在金锄头文库上搜索。

1、1、LLB 文件的功能就是把一组相关的 VI 以及其他文件打包存储在一起。其优点是节省磁盘空间,LLB 文件是压缩了的。如果新建一个工程,最好不要考虑使用 LLB 文件了。同时为了方便管理工程中的文件,应当尽量利用 LabVIEW 8 的新功能 :Project 和 Library。2、尽量不要把 VI 设置为重入属性,因为这样就多占用了内存,降低了运行效率。此外,如果不加注意的话,还可能引发多线程不安全的问题。如果程序中调用的是两个不同的子 VI,LabVIEW 有可能会同时在不同的线程执行它们,但对于两次调用相同的不可重入子 VI,LabVIEW 一定要等一个执行完,再执行另一个。VI 中

2、所有的局部变量都是静态变量。如果 LabVIEW 在不同的线程下执行同一不可重入 VI,那么两个线程就会同时对这一块数据地址进行读写,就会导致这一块地址内数据的混乱。如子 VI 所做的工作是读取文件这样一类耗时多、但 CPU 占用不大的操作,则并行执行可以大大提高效率。LabVIEW 在不同的地方调用一个可重入 VI 时,会给它另外分配一个独立的数据地址空间。当使用递归结构时,参与了递归调用的 VI 是需要被同时调用多次的。因此这些 VI 中的变量必须是局部的,也就是说参与了递归调用的 VI 必须都被设置为可重入。3、好的编程风格应尽可能少使用层叠式顺序结构。层叠式顺序结构的优点是及部分代码重

3、迭在一起,可以减少代码占用的屏幕空间。但它的缺点也是显而易见的:因为每次只能看到程序的部分代码,尤其是当使用 sequence local 传递数据时,要搞清楚数据是从哪里传来的或传到哪里去就比较麻烦。使用平铺式顺序结构可以大大提高程序的可读性,但一个编写得好的 VI 是可以不使用任何顺序结构的。4、程序框图禁用结构可以有多个被禁用的框架,但必须有且只能有一个被使用的框架。在被使用的框架中,一定要实现正确的逻辑。条件禁用结构则根据用户设定的符号(symbol)的值来决定执行哪一页面上的程序。其他方面与程序框图禁用结构相同。选择结构中选择“Use Default If Unwired”会有一定的

4、风险,因为你可能会忘记了连线,这时候 LabVIEW 并不会提醒你,程序就可能得到不可预料的结果。5、LabVIEW 按以下规则顺序产生不同的事件: 键盘相关的事件(Key Down, Key Up, etc.)只在当前选中( Key Focused)的控件上产生; 鼠标相关的事件(Mouse Down, etc.)按照从外向里的顺序发出。例如,区域的鼠标按下事件先于控件的鼠标按下事件发出;结构的鼠标按下事件先于结构内控件的鼠标按下事件发出。 值改变事件按照从内向外的顺序发出。结构(Cluser)内控件的值改变事件先于结构的值改变事件发出。按照事件的发出时间来区分,LabVIEW 的事件可分为

5、通知型事件(Notify Event)和过滤型事件(Filter Event) 。通知型事件是在 LabVIEW 处理完用户操作之后发出的。过滤型事件是在 LabVIEW 处理用户操作之前发出的,并等待相对应的事件框架执行完成之后,LabVIEW 再处理该用户操作。当同一 VI 的程序框图上有多于一个的事件结构时,通知型事件是同时被发往所有的事件结构的,而过滤型事件则是按顺序、依次发往每一个事件结构的。但是,在同一 VI 上放置多个事件结构是没有必要,而且极易引起错误的。所以应该避免在同一 VI 上使用多个事件结构。6、图1:For 循环结构上的隧道图 1 所示的 For 循环结构演示了三种隧

6、道结构,就是在 For 循环结构左右边框上用于数据输入输出的节点。这三种隧道从上至下分别是:索引隧道、移位寄存器(shift register) 、一般隧道。一般隧道,就是把数据传入传出循环结构。数据的类型和值在传入传出循环结构前后不发生变化。 索引隧道是 LabVIEW 的一种独特功能。一个循环外的数组通过索引隧道连接到循环结构上,隧道在循环内一侧会自动取出数组的元素,依顺序每次循环取出一个元素。用索引隧道传出数据,可以自动把循环内的数据组织成数组。通过移位寄存器传入传出数据,也是数据的类型和值都不会发生变化。移位寄存器的特殊之处在于在循环结构两端的接线端是强制使用同一内存的。因此,上一次迭

7、代执行产生的某一值,传给移位寄存器右侧的接线端,如果下一次迭代运行需要用到这个数据,从移位寄存器左侧的接线端引出就可以了。移位寄存器左侧的接线端可以不只有一个,用鼠标可以把左侧的接线端拉出多个来。如果一个数据传入 For 循环体,又传出来,那么就应该使用移位寄存器或带索引的隧道来传递这个数据,尽量不要使用不带索引的隧道。因为 For 循环在运行时,循环次数有可能为 0。在循环次数为 0 时,大多数情况,用户还是希望传出循环的数据就是传入值,但使用不带索引隧道时,输入值有时会被丢失的。如果使用移位寄存器,即使循环次数为 0,也不会丢失传入的数据。因为移位寄存器在循环上的两个接线柱指向的实际是同一

8、块内存,而输入输出两个隧道指向的是不同的内存,数据不一定相同。Error 数据线(黄绿色的粗线)在传入传出数组时,一定要使用移位寄存器。没有初始化的移位寄存器,总是保存上次运行结束时的数据。循环体上可以有两个或更多的输入数组使用带索引的隧道,此种情况下容易引起错误。这时,循环的次数等于几个数组中长度最短的那个数组的长度。如果另外又设置了循环次数 N,那么循环次数就是 N 与输入数组长度这两者的最小值。调试时,如果发现一个本该运行多次的循环没有运行,那么很可能就是因为它的一个输入数组是空的。for 循环中可以用的数据传递方式,几种隧道也都可以在 while 循环中使用。所以在很多情况下,whil

9、e 循环可以替代 for 循环。while 循环也可以使用带索引的隧道来构造数组,但是它的效率低于 for 循环。7、缓存重用结构与其它结构不在同一个函数选板上。这是缓存重用结构不是一个功能性、或改变程序流程的结构。它的使用不会改变代码的功能,仅仅会改变代码的效率。8、在 LabVIEW 中应当尽量避免使用全局变量。首先,它不利于代码的可读性,破坏了数据流顺序的逻辑关系。使用全局变量难以知道数据是否在其它地方被改动过。其次,它的安全性低。全局变量可以在任何地方被直接读写。即便知道数据在某些地方不应该被改动,也无法对其进行控制。再次,它的效率低下。VI 每次读全局变量,LabVIEW 都要为读到的数据复制一个新的副本,这毫无疑问影响到 VI 的效率。此外,全局变量的不合理使用还可能导致竞争状态。如果不得不使用全局变量,那就使用功能全局变量。首先,功能全局变量可以防止竞争状态出现。因为功能全局变量的 VI 是不可重入的,所以把它作为子 VI 时,绝对不可能出现两个相同功能变量子 VI 同时执行的情况。另一优点是,功能全局变量可以封装内部数据、控制对数据的访问权限。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号