當我用程式改變資料值的時候,Event結構無法捕捉到'Value Change' 事件



主要軟體:
主要軟體版本: 1.0
主要軟體修正版本:
次要軟體: LabVIEW Development Systems>>LabVIEW Base Package, LabVIEW Development Systems>>LabVIEW Professional Development System

問題: 當我在使用Event Structure時,我設定了一個case,當人機介面上的 indicator 的值改變的時候會執行。在我的城市裡,indicator 的值會在程式碼的另一部分被修改。 當我執行程式的時候,indicator 的值是有改變的,但是在 event 裡面的程式碼卻沒有被執行。為什麼 Event Structure 沒有替我的 indicator 註冊到 value change 這個事件呢?

解答:

Event Structure 只會對由使用者在人機介面上直接修改的事件進行註冊的動作。在這個範例裡,indicator的值是在程式裡被修改,因此 LabVIEW 抓不到這個事件。除此之外,如果使用VI Server、global variables、local variables等透過程式修改的方法,Value Change 的事件不會發生

這裡只有一個例外。Controls 以及 indicators 產生的事件可以透過property node的方式在程式裡修改--- 使用 Value (Signaling) 這個物件屬性(property )。 這個只准寫入的特性每次執行時的動作就像是人機介面上的物件被修改一樣。 不過在迴圈裡使用這個property的時候要注意的是,由於它在每個迴圈都會被執行,不論它的值是否真的有被修改,它在每個迴圈都會送出trigger。

您可以參考以下的圖片。 

這樣的目的是在偵測Event Source這個indicator值這個的改變,而它原本是被連在control上的。這個indicator的值改變是在event structure裡面Numeric's value change 這個事件裡被執行。 在 Numeric 的值改變之後,這個event structure的第二個case馬上會被執行,而Event Source 這個值的改變馬上會被標記並在下一個迴圈裡便被執行。然後第一個case就會被執行,如下圖。



相關連結:

附加檔案:





報告日期: 03/04/2008
最後更新: 11/06/2008
文件偏號: 4J3DI2MA