|
在程式裡面透過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 對屬性作寫入的動作,而不是使用SharedVariableIO的屬性節點。這是因為在使用屬性節點的時候,Shared Variable Engine裡面的refnum property map在共享變數被更新的時候是會被強迫更新的;而使用DataSocket API 是直接對Shared Variable Engine寫入新的屬性值的。
Hi alarm level屬性的範例URL在\\localhost\process name\variable name.Alarms.Hi.level。也建議你針對shared variable reference nodes使用適當的error handling方式,而不是讓VI自動處理error,這會使VI在有error產生的時候會自動停止。
|