2015年1月20日 星期二

事件(Event Structure)觸發說明

事件(Event Structure)觸發方式:
1.      normal event: 一般用來接收人機介面上的動作,while structure 內部不用放置延遲元件(WaitWait until next ms multiple)。圖中箭頭為timeout設定,預設為-1也就是沒有timeout


2.      call by value(signal) property node:上一個方法僅能觸發人機介面上的操作,但實際運作中並不一定每次的觸發都是因為人機介面操作所觸發的。如下圖,如果點選start按鈕後就會觸發將下面的迴圈產生的隨機數值加總,此外,如果沒有點選start按鈕,則透過圖中紅圈的value(Signal) property node,每產生二十個隨機數值觸發加總的事件(event)
PS:不管value(signal) 輸入何值,只要呼叫到該node 都會觸發event事件。


操作說明:在要觸發的按鍵上按右鍵,如圖可選出value(signaling)  property node


3.      dynamic event:雖然說盡量不要在subVI內放置event structure,但是如果一定要放的話,就可以透過此方法來執行。另外,這方法還可以完成程式執行的狀態下改變同一動作觸發狀態(#1) 的功能。


操作說明:
1.          event structure 上按右鍵點選show dynamic event terminals


2.          然後event structure左邊會出現一個雷達的圖樣,在上面點選右鍵,就會有相關的元件。



4.      user event(#2): 此方法的適用於原本event structure沒有定義的觸發動作與多迴圈的架構,如圖中LOOP2如果發生錯誤就會停止迴圈,並且LOOP1event structure會觸發自訂的user event 跳出錯誤顯示視窗後停止LOOP1迴圈,避免LOOP2錯誤發生時,無法停止LOOP1的問題。
圖中左邊的紅圈可自訂要傳輸的資料格式,設定好後可以在event structure中觸發user event時,輸出(圖中右邊的紅圈)




參考程式:
#1. \National Instruments\LabVIEW 2014\examples\Dialog and User Interface\Events\Dynamic Event Generation.vi

#2. \National Instruments\LabVIEW 2014\examples\Dialog and User Interface\Events\User Event Generation.vi

2 則留言 :

  1. 謝謝你的備忘錄,讓我更知道事件迴圈的用法☺️

    回覆刪除
  2. 感謝你的備忘錄分享,頓時理解了Dynamic event的用法

    回覆刪除