在早期的單元裡有介紹Queue 和 Producer and Consumer 的應用: LabVIEW_多重迴路架構-Producer & Consumer架構教學範例、LabVIEW_Queue的教學_用法和範例 ,但在實務上這兩種用法可能又太簡單了,實際應用上,往往步驟複雜且多元,所以這篇用LabVIEW的template-Producer/Consumer Design Pattern (Events)作範例修改成以個彈性較大的模板。
程式碼可在這邊下載 , 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
這個範例,有兩種模式分別的功能如下:
- Start All : 打開 燈1、燈2、燈3
- Start 3+1 : 打開 燈3、 燈1
可以看出這兩種模式有相同的功能: 燈1、燈3,但是順序不同,在第2種模式(Start 3+1)時必須先開燈3再開燈1,這樣子重複性高、順序跳躍的形式,使用State Machine並不適合,因為要使用太多的Case去區隔不同的模式。
這個範例使用Script(劇本)的概念來運作,將每個"功能"都當作劇本中的一個小章節,不同的模式則選用不同的章節來完成:
- Script 1 : 打開燈1、打開燈2、打開燈3
- Script 2 : 打開燈3、 打開燈1
實際上的程式:
當Start 3+1 的按鈕被啟動後。會觸發 Producer Loop(上 Loop) 的"Start 3+1 Script",而Consumer Loop(下 Loop) 會接收到做"Start 3+1 Script"劇本,並發出指令集"Off All"、"Light 3"、"Light 2"。
Function: Off All、Light 1、Light 2、Light 3、Stop
程式碼可在這邊下載 , 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關: