JKI SMO使用(1)


為什么要用JKI SMO?

1、習慣了使用JKI State Machine;

2、JKI State Machine 是單進程的,無法處理多任務並發系統;

3、對OOP知之甚少,繞過OOP設計的復雜性。

 

安裝工具包

 

 

Demo演示:

需求:采集電壓並顯示,超過3.5V時,報警提示。

分析:需要2個SMO,1個負責不斷采集電壓信號;1個負責顯示和報警

實現步驟:

1、新建項目,命名SMO Demo.lvproj

2、打開SMO Ediror(腳本工具,和提供開發模板,便於開發),Tools  JKI state Machine Objects  SMO Editor

3、創建SMO:

    創建2個SMO:   電壓采集的SMO,不需要界面,創建時選擇SMO.Basic模板;顯示和報警的SMO,需要界面,選擇SMO.UI.Basic模板

 

 

 

 

 

4、分別給SMO創建事件

 

(1)Volt Acquisition SMO 創建2個事件,

發布采集的電壓值+是否警告的狀態

a. 事件1:Volt

事件2:Warning Status

 

b. 在核心process.vi中編寫核心程序,並進行發布。

雖然創建了2個事件,但是是一個核心

 

 

超時設成100ms,通過隨機數模擬每100ms進行一次電壓采集,並判斷是否報警,並發布電壓值和報警狀態。

 

 

(2)Signal Display  SMO 創建事件

 

 a. 顯然 Signal Display SMO 是要依賴Volt Acquisition SMO,因此,需要將后者添加到前者的私有數據控件(.ctl)中。

 

 

 b. 右鍵Signal Display SMO菜單創建成員訪問器Volt Acquisition(需先建個虛擬文件夾,把成員訪問器放里面)

(Signal Display SMO是依賴Volt Acquisition.lvclass的,是要去訪問他的,因為他才提供了電壓值和判斷結果)

 

 

創建完是這樣:

 

 

 

c. 在核心process.vi中編寫核心程序

 打開Process.vi,Events:Register分支,去注冊Volt Acquisition發布的Public Event,

 

 

(3)添加兩個事件分支User Event

 

 

以上,完成了2個SMO的程式。

 

在項目中新建Launcher.vi用來啟動並測試:

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM