Menu:

第5章  控制程序流(4)


定序和数据流方法之三:利用(增加)公共线程

充分利用公共线程

      在上一节的例子介绍中,第4种方法就是充分利用公共线程实现数据流定序的方法。在LabVIEW的许多内置vi中都有可利用的公共线程。
      最常用的公共线程就是vi的“错误簇”,大多数vi、属性、方法都具备内部错误排查机制并通过错误簇进行错误信息传递。甚至连有些运算功能的内置函数在接入波形数据后,也会自动提供错误簇,这点在《学习札记》中曾做过介绍。
      利用公共线程实现数据流的编程方法即满足数据流的要求,又简单、美观、可读性强,所以在图形化程序设计中使用的非常广泛。

      下面展示在不同性质任务下的公共线程的实例。


DAQmx公共线程

      DAQmx是应用程序中最常用部分,那么通过NI提供的例子来展示公共线程的使用。

      这是LabVIEW8.6(Mac版,它使用DAQmx Base版驱动)所提供的一个用声卡采集数据进行功率谱分析的例子,从这个例子可以看出 task ID和错误簇构成一对公共线程来控制程序执行顺序(满足数据流的要求)。而While循环中的下部所显示的数据分析处理部分,则完全是按照数据从属的关系来进行的。


VISA(GPIB、串口)公共线程

      仪器控制程序的公共线程,仍采用NI提供的例子来展示仪器控制公共线程的使用。
     
LabVIEW8.6(Mac版)

      同样VISA GPIB Resource和错误簇构成一对公共线程来控制程序的执行顺序。这里的属性节点也通过公共线程控制,这是非常正确的用法,应该有这个使用习惯。


文件I/O的公共线程

      文件I/O程序的公共线程,仍采用NI提供“读配置文件”的例子来展示文件I/O公共线程的使用。
     
LabVIEW8.6(Mac版)

      同样refnum和错误簇构成一对公共线程来控制程序的执行顺序。


属性(方法)节点的公共线程

      使用属性(方法)节点程序的公共线程,仍采用NI提供的例子来公共线程的使用。
     
LabVIEW8.6(Mac版)

      同样reference(引用)和错误簇构成一对公共线程来控制程序的执行顺序。
      在“引用”使用时,要注意打开后,一定要关闭。也就是说:它们应该成双结对的出现。


多模块同步测量时的公共线程

      在一些特殊的场合,公共线程还可以起到特殊的作用。下面是来自NI的一个多模块同步采集的例程图示。
      在这里展示主要看看实际使用中的不同用法,我并没有实际使用过。

      下图展示在一块板卡上实现AI、AO同步开始的例程。