为何远程前面板的显示控件或输入控件不更新?



主要软件:
主要软件版本: 6.1
主要软件修正版本: N/A
次要软件: N/A

问题:
当我用LabVIEW RT模块目标到RT系统时,VI中的输入控件和显示控件能正确更新。然而,如果我通过远程前面板连接察看VI前面板,输入控件和显示控件就不能更新。

解答:
您看到的现象与LabVIEW Real-Time的工作方式有关。虽然LabVIEW RT程序的前面板不存在,但也是需要编程的。在一个嵌入式LabVIEW RT程序中,当您对一个局部变量赋值,它不会更新前面板,因为前面板不存在。虽然远程前面板使用了前面板,但在技术上,前面板是没有加载到内存中的。嵌入式程序的前面板不存在,一直到用户创建的远程前面板连接到web服务器上。

为了在加载前面板的时候更新输入或显示控件,在远程前面板连接后您需要对显示控件或前面板对象的属性节点赋值。如果使用属性节点,您要写value(值)属性。属性节点更新前面板图像,而局部变量更新程序框图的数据。

当使用前面板通讯(在开发环境中点击运行按钮),属性节点和局部变量都会更新前面板和程序框图。

当VI被部署或嵌入,属性节点只更新前面板图像,局部变量只更新程序框图的值。因此,对控件赋值时局部变量和属性节点都需要。如果不通过远程前面板连接或前面板通讯察看前面板,那么属性节点无效。正因此,控件读取数值时,推荐使用局部变量,而不是属性节点。在前面板不被察看时局部变量仍然有效。

除了局部变量和/或属性节点,另一个更新显示控件的方法是使用移位寄存器来存储数据并把值传到下一次迭代。

有一点非常重要,需要注意,把前面板作为保持和发布数据的媒介,破坏了数据流编程的稳定性。输入和显示控件仅仅是显示数据的一个方法,不是真正意义上的数据保存和传递。为了在代码中传递数据,可考虑使用连线、移位寄存器和功能全局变量(通过下面的LabVIEW帮助链接察看功能全局变量的定义)。如上所述,LabVIEW实时应用程序也是需要编程的,虽然没有前面板。



相关链接:
KnowledgeBase 2MOF9IO9:What is the Difference Between a Local Variable and a Value Property Node?

LabVIEW Help: Suggestions for Using Execution Systems and Priorities

附件:





报告日期: 09/18/2007
最近更新: 09/23/2007
文档编号: 2SA8BVOH