移位寄存器是LabVIEW编程语言中特有的数据传递和存储机制,它依赖于循环结构而存在。移位寄存器存储循环结构一个循环周期到下一个循环周期的数据变动,实现数据从一次循环到下一次循环的传递。LabVIEW中的移位寄存器是多态的,可以适应任何数据类型。一个循环结构可以同时使用多个不同数据类型的移位寄存器存储数据,且数目不受限制。
只要是LabVIEW的循环结构,就可以在循环结构框体的左右两侧创建移位寄存器,LabVIEW的移位寄存器总是成对出现并且成对才能使用。在循环结构边框的左侧或右侧点击鼠标右键,在弹出的快捷菜单中选择“添加移位寄存器”选项,就可以为循环结构创建移位寄存器了。
从计算机物理内存角度分析,移位寄存器左右端子指向同一块计算机物理内存,LabVIEW移位寄存器的左右端子实现了对这块物理内存的读写操作。数据从移位寄存器右端子的左侧端口进入这块物理内存,在需要的时候从移位寄存器左端子的右侧端口将数据取出。注意:移位寄存器所对应的物理内存空间没有设置读写操作的权限,只要有连线连接到移位寄存器左端子的右侧端口,就可以从这块物理内存中读出数据。只要有连线连接到移位寄存器右端子的左侧端口,就可以向这块物理内存中写入数据。如果右端子的左侧端口没有连线,LabVIEW将向这块物理内存中写入默认数据。在编程中要注意保护好移位寄存器的写入端口(右端子的左侧端口),避免移位寄存器误操作(忘记连线)而导致的数据丢失。在编程中对移位寄存器的有效保护措施是:当移位寄存器不需要写入新数据时,将移位寄存器左端子的右侧端口与右端子的左侧端口用连线连接,这样数据又被重新写入了同一块物理内存中,确保了移位寄存器中数据的安全。
移位寄存器所指向的物理内存是什么时候建立的呢?这就涉及到了LabVIEW的编译机制,LabVIEW采用即时编译程序的机制。当程序员在程序框图中构建程序代码时,LabVIEW同步编译程序代码。当在循环结构框体上创建移位寄存器时,LabVIEW并没有为其创建内存空间,因为编译器不知道移位寄存器所要保存的数据类型和数据大小。当为移位寄存器初始化数据类型后,编译器就可以根据不同的数据类型在计算机物理内存中为其开辟相应的内存空间,此时移位寄存器左右端子变成与数据类型相同的颜色,移位寄存器所指向的物理内存正是在此时建立的。
只要是LabVIEW的循环结构,就可以在循环结构框体的左右两侧创建移位寄存器,LabVIEW的移位寄存器总是成对出现并且成对才能使用。在循环结构边框的左侧或右侧点击鼠标右键,在弹出的快捷菜单中选择“添加移位寄存器”选项,就可以为循环结构创建移位寄存器了。
从计算机物理内存角度分析,移位寄存器左右端子指向同一块计算机物理内存,LabVIEW移位寄存器的左右端子实现了对这块物理内存的读写操作。数据从移位寄存器右端子的左侧端口进入这块物理内存,在需要的时候从移位寄存器左端子的右侧端口将数据取出。注意:移位寄存器所对应的物理内存空间没有设置读写操作的权限,只要有连线连接到移位寄存器左端子的右侧端口,就可以从这块物理内存中读出数据。只要有连线连接到移位寄存器右端子的左侧端口,就可以向这块物理内存中写入数据。如果右端子的左侧端口没有连线,LabVIEW将向这块物理内存中写入默认数据。在编程中要注意保护好移位寄存器的写入端口(右端子的左侧端口),避免移位寄存器误操作(忘记连线)而导致的数据丢失。在编程中对移位寄存器的有效保护措施是:当移位寄存器不需要写入新数据时,将移位寄存器左端子的右侧端口与右端子的左侧端口用连线连接,这样数据又被重新写入了同一块物理内存中,确保了移位寄存器中数据的安全。
移位寄存器所指向的物理内存是什么时候建立的呢?这就涉及到了LabVIEW的编译机制,LabVIEW采用即时编译程序的机制。当程序员在程序框图中构建程序代码时,LabVIEW同步编译程序代码。当在循环结构框体上创建移位寄存器时,LabVIEW并没有为其创建内存空间,因为编译器不知道移位寄存器所要保存的数据类型和数据大小。当为移位寄存器初始化数据类型后,编译器就可以根据不同的数据类型在计算机物理内存中为其开辟相应的内存空间,此时移位寄存器左右端子变成与数据类型相同的颜色,移位寄存器所指向的物理内存正是在此时建立的。
