LabVIEW代码中常见的错误

1.数值溢出

输出的数据超过了所使用的数据类型的范围。

对于单个数据(不用于数组),建议使用长数据类型,以避免可能发生的错误。

2.for循环的隧道

for循环使用简单的一般隧道时,for循环会自动索引数组,如数组为空时,则不会进入for循环内。
建议在使用for循环前判断下,使用索引的数组是否为空。对于其他进入for循环的数据建议使用移位寄存器(移位寄存器的输入输出节点公用一个内存空间)。

3.循环次数

当for循环接入多个数组时(都开启索引)同时又指定了循环迭代次数N,for循环的次数取决于几个数组中长度和N最小的一个。while循环也可以索引数组,但是建议使用for循环。

4.移位寄存器的初始化

没有初始化的移位寄存器,在vi被关闭前会一直保存上一次运行结束时的数据。FGV就是利用了此特性。但是很多时候移位寄存器只是用作循环内部的局部变量。这时,一定要对其初始化。

5.簇中元素的顺序

在使用簇的捆绑和接触捆绑函数时,一定要注意其输入和输出簇中元素的顺序,避免顺序接错。

建议:

1.凡是用到簇的地方,就为其创建一个类型定义。一是可以保证簇中元素的顺序和类型完全一致。二是一旦需要变动簇中的元素,只需要在类型定义中更新以下,它所有的实例都会被更新,不需要对逐个vi进行修改。
2.凡是使用簇的捆绑和解除捆绑的地方,使用按名称捆绑和按名称接触捆绑,这样可以避免因顺序不同导致程序出错。
3.前面板可以设置按照水平或者垂直自动排列簇元素。这样簇中的控件顺序会和数据的顺序保持一致。

6.时序错误

由于LabVIEW是自动多线程的编程语言,所以在使用时一定要注意数据流的流动顺序,需要并行运行的时候尽量使用错误簇来进行前后程序的连接。

7.竞争状态

当多个线程同时访问一个数据时会引起数据混乱,主要是当使用全局变量时。这时可以考虑FGV。除了FGV还可以使用队列。

8.循环内部需要放延时函数

在一个不断轮询的函数内需要加入一个几十或者几百毫秒的延时。否则程序会会占用大部分的CPU,会影响程序其他部分执行缓慢。

以上参考《我和LabVIEW》一书

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值