NI Documents在基礎原件上都寫得非常仔細,建議初學者可以多閱讀,對於程式的功力可以大大提升,以前我很喜歡看LabVIEW的Example,覺得程式寫得很精簡很乾淨;LabVIEW 內建的Queued Message Handler Template 是已經建好、彈性不錯的模板 。這篇不會針對基本的Queue功能做介紹,若想知道基本Queue的使用方法,可以參考之前的文章:

LabVIEW_Queue的教學_用法和範例LabVIEW_Producer And Consumer_Queue簡單應用_多功能佇列應用LabVIEW_多重迴路架構-Producer & Consumer架構教學範例LabVIEW_Queued Enum Handler + Variant 架構介紹範例分享LabVIEW_Queue State Machine with User Event程式架構介紹。必須先清楚明瞭Queue的使用方法,才能懂這篇的敘述唷~

使用Creat Project-->Queued Message Handler 來呼叫模板

image

image

這個模板的架構是使用Message Queued + User Event,以下拆這兩部份加上Error Handle來看這模組:

  1. Message Queued應用解釋

這裡的Queue元件將各功能包含Error處理做了整合成為SubVI,所以看起來會比較複雜,但是若將他對應到Queue,就會比較明瞭整個template結構。

image

由上圖的對應關係圖可以看出在此Template將原本只能一個Queue一個Queue新增的Enqueue功能改成For Loop改寫的Array Enqueue(圖中3號),而Error也獨立使用"Error"的Enqueue Element At Opposite End取代(圖中4號),其他的Queue功能和之前介紹的Producer and Consumer文章大同小異:LabVIEW_Producer And Consumer_Queue簡單應用_多功能佇列應用

  1. User Event應用解釋

這裡的User Event 的應用很簡易,可以想像是一個觸發自訂Event的方法(觸發Producer Loop中的Event Case),由下圖的離開程序可以更知道其動作流程。

image

當Comsumer Loop的Exit Queue啟動後,送出User event到Producer Loop(上圖中的1)觸發Event的User Event Case,User Event內部程式將Loop做關閉(上圖中的2),最後整個User Event的註冊做釋放(上圖中的3)。

  1. Error Handle

如上Queue中提到,在圖中的4,為此Consumer Loop中出現Error時會觸發Comsumer Loop的 "Error" case(下圖中的1、2)最後在觸發Error Message和Exit Queue(下圖中的3)直接離開程式。

image

這裡須注意image這SubVI的下方有接個True,這是對應到使用Enqueue Element At Opposite End.vi所以此Enqueue "Exit"會優先執行唷!

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

    安伯伯 發表在 痞客邦 留言(0) 人氣()