Menu:

第5章  控制程序流(7)


移位寄存器


      大师在本书中是这样介绍移位寄存器的:移位寄存器是一种特殊的局部变量或者说是For循环及While循环所提供的存储单元。

      其实在前面第4章抽样信号(2),已经介绍了移动平均处理时移位寄存器的基本使用方法。包括前面所介绍的For循环还是While循环,都可以作为移位寄存器的载体(容器)。
      移位寄存器不仅仅可以做纯数学的处理,由于它本身的多态性它还可以接受不同类型的数据。比如:在状态机中也大量的使用了非数字类型移位寄存器。
     下面我们看下面的例子:


For循环的计数值为0,端口传递错误信息

      在这个条件下,执行高亮运行,发现错误信息不能够传递到最后。原因是For循环在计数端数值为零时,不运行程序,所以错误信息没法传递到最后。


For循环的计数值为0,端口和条件端同时传递错误信息

     接入For循环的条件端,执行高亮运行,发现错误仍不能够传递到最后。原因是同上面的例子一样,Foe循环在计数端数值为零时,不运行程序,所以错误信息没法传递到最后。


For循环的计数值为0,用移位寄存器传递错误信息

      将端口用移位寄存器替代,在这个条件下,执行高亮运行,发现错误能够传递到最后。尽管程序没有执行,但错误却通过移位寄存器传递出来。


For循环的计数值为0,移位寄存器和条件端同时传递错误信息

     在这个条件下,执行高亮运行,发现错误能够传递到最后。程序还是没有执行,但错误却通过移位寄存器传递出来。
     说明在这种条件下,移位寄存器起到了关键作用。


     这几个例子说明,在For循环的计数值为零时,可以通过移位寄存器来传递错误信息,尽管程序是不执行的。请继续往下看:

For循环的计数值为10,端口传递错误信息

     在这个条件下,执行高亮运行,发现错误必须完成10次迭代到程序结束时,才能够传递到最后。
     注意While循环也是如此。


For循环的计数值为10,移位寄存器传递错误信息

     这个执行高亮的运行结果与上面的例子一样,错误必须完成10次迭代到程序结束时,才能够传递到最后。
     注意While循环也是如此。


For循环的计数值为10,移位寄存器和条件端同时传递错误信息

     这个例子在执行高亮运行时,我们可以看到,仅执行一次就因为错误的原因停下来,尽管计数端的数值是10。
     注意While循环也是如此。


     上面的例子说明,不管For循环的计数值为何,只要我们使用移位寄存器和条件端来查询错误,任何错误都可以被及时处理。对于While循环使用端口和移位寄存器是一样的,使用条件端口是关键。

      在数据采集的一些例程中,经常可以看到这样的使用方法。

      关于这些例子有条件还是做一下体会体会,对深入了解LabVIEW是十分有好处的。


     其实移位寄存器在图形化编程中使用的非常广泛,多看一些例程会有更多的、更全面的了解。
     下面在介绍本书中的一个去除空字符串的实例。

     例中:Array0是一个空字符串数组常量
             Array2是待整理的字符串数组
             Array3是整理后清除了空串的字符串数组

     程序运行后,将Array2中的空字符串去掉,生成没有空字符串的新数组。
    
     这个例子中要注意的是Array0是空字符串数组(从图片上看内容是虚的,如果是实的或数字结果会不同,可以试试看)。