LabVIEW動態事件結構

2022-10-10 15:36:10 字數 2066 閱讀 7912

luobeice

自學到了動態事件結構,動態事件結構與事件結構相比的優勢是:可以完全控制labview產生事件的型別和時間,使其僅在應用程式的某個部分發生。

基本使用步驟為:建立使用者事件-註冊使用者事件-產生,處理使用者事件-取消註冊事件。常用於滑鼠移動一類的連續發生的事件中,或者需要控制事件發生時間的情況中。

1.慕課上面常州資訊職業技術學院開放的《虛擬儀器應用技術》。

2.《labview寶典(第二版)》p343。

3.labview網路講壇之《運籌帷幄》事件結構。

上圖中,如果我們想實現一下目標:點選一下「上公升」按鈕,右邊的平面框就響應的上公升一點。

這個功能只要學了點事件結構基礎知識的人,應該可以實現。

但是如果我們在此基礎上再加乙個小條件:比如我想等程式開始執行2分鐘之內,點選「上公升」,平面框就上公升。但是程式執行2分鐘之後,再點選「上公升」,

平面框就沒反應了。或者說我按下乙個按鍵之前,按下「上公升」,平面框就上公升,按下乙個按鍵之後,「上公升」就失靈了。

這個功能在原來的基礎上多了乙個控制事件響應發生的條件。這個時候就得考慮動態事件結構了。

舉兩個例子:

上圖中實現功能為:按下「上公升」,右邊平面框就上公升。按下「取消註冊事件「之後,」上公升「鍵就失靈了。再按下」註冊事件「之後,」上公升「鍵就又起作用了。程式框圖如下:

注意:1.我提前註冊了「上公升「布林引用的動態事件。

2.可以在「窗格「-」修飾「中拿到平面框的引用,因為從「修飾」出來的是引用陣列,故要索引陣列。

3.在「取消註冊」值改變事件中,用到了乙個非法引用控制代碼常量,用於取消某個指定事件而不是整個註冊事件。

另乙個例子是滑鼠移動這一類連續發生的事件:

在上圖中,我想要實現的目標是:在程式執行時,實現用滑鼠拖拽控制項的功能。

這個功能用動態事件結構來處理,要明確:

1.假如滑鼠沒有按下控制項,這時移動滑鼠是無法實現拖拽功能的。

2.只有在滑鼠按下某個控制項之後,滑鼠移動才能拖拽控制項。

3.我們可以註冊「滑鼠移動「動態事件,用以改變控制項位置。滑鼠按下之後,動態事件才可以觸發,當滑鼠抬起之後,動態事件就不可以觸發。

完成上述功能的程式框圖為:

注意:1.註冊動態事件時,我用了乙個「通用窗格引用」,我是通過建立「伺服器引用」-選擇「窗格」-右擊「窗格」引用,點選「建立輸入控制項」得到。

它的作用是,一開始沒有說明是本vi的窗格,存在的意義僅僅是佔了乙個「滑鼠移動」的位置。有種「佔著茅坑不拉屎」的感覺。要在後

面的程式框圖中再指明是本vi的窗格的滑鼠引用。

2.「控制項」滑鼠按下時,通過「控制項引用」來得到具體是滑鼠按下的哪個控制項,並將其送給移位暫存器。

3.在「滑鼠釋放」事件中,又用到了「非法引用控制代碼常量」用以取消滑鼠移動註冊事件。

LABVIEW事件結構(二)

1 事件選擇器標籤指定了促使當前顯示的分支執行事件。如果想要檢視其他分支事件,可單擊分支名稱後的向下箭頭。可以看到下圖,此時有2個事件,0 超時 和 1 旋鈕 值改變 2 超時 接線端指定了超時前等待事件的時間,以毫秒為單位。如為 超時 接線端連線乙個值,則必須有乙個相應的超時分支,以避免發生錯誤。...

LabView程式結構中的迴圈結構

程式結構 1.迴圈結構 2.分支結構 3.順序結構 ctrl n新建乙個子vi。1.while迴圈 左下角i迴圈計數端子,右下角是條件端子 真時停止 繼續 移位暫存器 將陣列從乙個迴圈週期傳遞到另外乙個迴圈週期。a.移位暫存器是需要初始化的。b.右鍵移位暫存器新增元素,新增元素也必須初始化 c.右鍵...

動態點選事件

greet data 在 methods 物件中定義方法 methods 也可以用 j ascript 直接呼叫方法 say what vue.js 為 v on 提供了事件修飾符來處理 dom 事件細節,如 event.preventdefault 或 event.stoppropagation ...