该节目标是创建带子vi,修改vi属性,测试可重入和不可重入的区别
一 、设置子VI
把VI封装成为子VI,可以帮助模块化程序,简化代码结构。
任何VI本身都可以成为别的VI的子VI。
1.1、设置输入输出端子
1、在前面板空白处,点击右键可以把输入和输出控件放置到前面板。此处放置一个数值输入控件,控件标签为"数值",放置一个数值输出控件,控件标签为"数值 2"。
2、在前面板右上角有个"端子设置面板",鼠标移动到其中一格,此处点击左上第一个端子,点击后,对应的格子会变黑。
3、再点击对应的数值输入控件"数值"后,左上角端子就会变成控件的颜色
4、再设置输出端子,先点右上角的端子 ,再点数值输出控件"数值 2" 后,右上端子就会变成控件的颜色
1.2、设置重入
1、ctrl+i→选中"执行"→修改"重入"
- 非重入:默认设置,一般用于耗时不长的,或者需要强制保持顺序的场合,比如tcp读写不能同时执行
- 共享副本的重入:vi可重入,用于需要vi并行的场合,未初始化的寄存器也会保留上一次的值
- 预分配副本的重入:vi可重入,用于需要vi并行的场合,相当于每个vi执行的时候,都是一个单独的vi在执行。
一般情况下,需要vi重入的话,用"共享副本的重入"就足够。
1.3、修改vi图标
vi最好修改为可识别的图标,这样方便标识对应的功能
1、双击右上角图标
2、弹窗
3、隐藏图层
4、工具选中"矩形"→圈中整个框
5、图标文本输入对应的vi名称,也可以自定义,此处用"测试耗时"举例
二、编写vi
创建以上三个vi
-
测试耗时:测试"等待(不可重入)"和"等待(重入)"的耗时
-
等待(不可重入):输入端子为数值,1000代表1s,输入到"等待(ms)"vi重入属性为默认的"非重入"
-
等待(重入):输入端子为数值,1000代表1s,输入到"等待(ms)"中。vi重入属性为默认的"共享副本重入"
1.1、统计vi耗时写法
使用"时间计数器":
1. 在vi执行前,放置一个,统计开始时间
- 在vi执行完成后,放置一个,统计结束时间
1.2、等待(重入)和等待(不可重入)
写法一样,重入设置不一样。
1.3、测试耗时
1.4、运行结果
可以看出"等待(重入)"的统计耗时都是1000,说明两个vi是并行执行的
而"等待(不可重入)"的统计耗时一个1000,一个2001,说明vi在两个地方调用,即便没有数据流的关系,也是顺序执行的,也就是先执行完一个,再执行另一个,同一时间只有一个在执行。