当使用程序改变共享含量 Shared Variable 的属性时得到“ 错误代码 -1950679035: 共享变量 Shared Variable 不存在 ”



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

问题:

在程序中通过 SharedVariableIO 类别里面的属性节点修改已部署(deploy)的共享变量属性时, 我常会得到以下的错误:


Error -1950679035 occurred at ni_tagger_lv_read

Possible reasons:
The shared variable does not exist


我要如何防止这个错误的发生?

解答:

如果你尝试过于频繁地写入 SharedVariableIO 里面的属性节点,你就很可能会得到这个错误讯息。 发生这个错误的原因在于现在正在设定的共享变量在 Shared Variable Engine 里是暂时不可存取的(inactive)。

预防这个错误的最好办法是不要在循环中对共享变量的属性做写入的动作,而使用基于事件的编程方法(Event based programming)。

另外也比较推荐使用 DataSocket Write VI 对属性作写入的动作, 而不是使用 SharedVariableIO 的属性节点对其进行修改。 这是因为在使用属性节点的时候, Shared Variable Engine 里面的引用链接 (refnum property map) 是会被强制更新的; 而使用 DataSocket API 是直接对 Shared Varible Engine 写入新的属性值的。

Hi alarm level 属性的范例 URL 在 \\localhost\process name\variable name.Alarms.Hi.level 中。 也建议你针对 shared variable reference nodes 使用适当的 error handling 方式, 而不是让 VI 自动处理 Error, 这会使 VI 在有 Error 产生的时候自动停止运行。


相关链接: KnowledgeBase 454FH4NF: Shared Variable Error Explanations
KnowledgeBase 4ELCS1XT: Error -1950679035 when Using Shared Variables
KnowledgeBase 416GPN4B: Error -1967362041 or -1950679035 when Deploying Shared Variable

附件:


Shared Var. HI LO alarm.gif - Shared Var. HI LO alarm.gifAlarm Limit error datasocket workaround.vi - Alarm Limit error datasocket workaround.vi
DSC Alarm Limit change.lvproj - DSC Alarm Limit change.lvprojDSC Alarm Limit error.vi - DSC Alarm Limit error.vi



报告日期: 02/06/2006
最近更新: 10/26/2008
文档编号: 3U5G88Y3