此範例展示如何在RT和Host端傳遞正弦波資料,本程式利用Queue 的架構在不同程式(Main、SubVI)間作數據的傳遞和控制(啟動、停止、修改振福和頻率)。

<題目敘述>

程式碼可在這邊下載,若下載請留言告知,謝謝

Host端:

  • 開發UI介面如下圖
  • 點擊“Start Acquiring”可以開始將正弦波資料從RT端讀出來並顯示在波形圖上。
  • 運行時可以修改幅度和頻率,並因此修改RT段設置。
  •  點擊“Stop”程式停止並且RT端也停止
  • Note 可以考慮採用生產者消費者結構,可以額外將資料記錄到檔裡。

RT端:

  • 要求有用迴圈確定性地產生正弦資料流程
  • 接收來自Host端的“Start Acquiring”命令,將正弦資料流傳送至Host
  • 接收來自Host端的“amplitude”, “frequency”的數值並相應的配置RT端的波形生成
  • 接收來自Host端的“STOP”的命令並停止

 

 

<程式範例講解>

程式碼可在這邊下載,若下載請留言告知,謝謝

程式架構:

資料藉由QueueRT 傳給 Host。

細部介紹:

  1. 分別在Host程式和RT程式中建立四個Queue 分別為 Stop Condition, Amplitude, Frequency, Data Communication
  2. 由於Queue的特性,取名為同樣的Queue則會指向同樣的reference,進而可以傳遞資料
  3. 利用 Obtain Queue宣告資料型態
  4. 利用Enqueue 傳遞資料到接收端
  5. 利用Dequeue來接收傳遞端給的資料
  6. 利用Release Queue來解除Queue的註冊
  7. Host端中將 Stop狀態, Frequency, Amplitude等資料利用EnQueue傳遞RT

  1. Host端中,若按下Start按鈕(Start變成True狀態)接受RT端傳來的數值資料並顯示到Chart

  1. 利用STOP按鈕的狀態結束所有的loop(利用Local Variable傳遞不同loop)
  2. RT端中, 利用DeQueue接收stop狀態, Frequency, Amplitude等資料

  1. RT端中,利用Enqueue傳遞Sine直到Host

  1. RT端中,利用Stop發生時,清除Queue(解註冊),產生error解除其他的loop

  1. RT端中,其他loop因為Queue被解除,產生error進而讓loop停止

  1. 利用模擬產生器產出sine波型,取出的資料為Array陣列,再取出最後一個值(最新一筆資料)傳出

  1. 程式一開始先利用property清空Chart中的所有數值

 

程式碼可在這邊下載,若下載請留言告知,謝謝

 

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

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

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