這篇介紹基本LabVIEW Queue的功能用法,Queue可以搭配其他功能發展成專案的架構使用。例如之前介紹過的: LabVIEW_Queued Enum Handler + Variant 架構介紹範例分享LabVIEW_Queue State Machine with User Event程式架構介紹 都是利用Queue的FIFO特性發展成的不同架構。這篇介紹幾個基本的Queue功能: (Obtain Queue、Dequeue Element、Enqueue Element、Enqueue Element At Oppsite End、Release Queue) 。並有簡單的應用範例可以下載。

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Obtain Queue:

Obtain Queue必填的為Queue的資料型態(Element data type),這個是整個Queue中傳遞的資料型態,可以是任意型態,例如說Boolean、String、Numeric...,最為通用的還是使用Variant做為傳遞資料,讓資料型態不受限制,關於使用Variant 方法可以參考: LabVIEW_Queue State Machine with User Event程式架構介紹 。

Max Queue Size 在初設時是不限制數量大小,可以自由設定數字作為佇列大小的限制。

Name 填入這個Queue的命名,在同一個程式中若使用許多Queue可以用Name來區隔,值得一提的是,若是在不同的VI 中使用同一個名字的Queue,LabVIEW會認定為同一個Queue,可以使用同個Name的Queue來做跨VI中資料的傳遞。如下圖,Main VI做Enqueue的動作將資料放入佇列,而SubVI做Dequeue將資料從佇列取出。

 

Enqueue、Dequeue Element、Enqueue Element At Opposite End

Enqueue是將資料放入佇列中,而Dequeue是遵循(先入先出)FIFO的順序將資料取出,也就是說如下圖,Enqueue Element時從號碼1、2、3、4依序放入,1號是最先進入佇列的資料,則在Dequeue時也會是1號最先被解出,這就是FIFO的資料流型態。

有些應用,例如說要強制停住程式時,會使用到Enqueue Element At Opposite End,剛剛提到Dequeue遵循先入先出(FIFO)的資料流型態,Dequeue時也會是1號最先被解出,若這時候要將資料5變成優先解出,這時候就會需要Enqueue Element At Opposite End 將資料從反方向放入佇列,讓資料強行的優先被取出


Release Queue

Release Queue通常用在程式的最後,也就是程式要關閉的時候,Release 後的Queue就無法作用,這時候做Enqueue、Dequeue或是其他功能都會出現Error訊息。但是有一種情況例外,就是在Obtain Queue時提到,Queue可以用同個名字在不同地方呼叫,使用Release Queue只能釋放其中一支的Queue,除非將Force Destory改成True,才會將全部的Queue釋放。

 

Example:

下載範例可以參考如何使用這些元件;包含如何使用同名字呼叫同一個Queue、和使用Enqueue Element At Opposite End的方法和實作結果。

Enqueue Element At Opposite End:

Obtain Queue使用同名字

 

程式碼可在這邊下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow
    創作者介紹
    創作者 安伯伯 的頭像
    安伯伯

    安伯伯軒

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