LabVIEW設計模型——順序模型 Ⅱ

順序模型之數據流
順序結構有這樣那樣的缺陷,那麼如何實現順序模型呢?答案就是使用數據流的思想進行編程。一個節點開始執行,那麼就需要該節點獲得所有必要數據。
在LabVIEW中,數據由前面的節點流向後面的節點,程序隨着數據的流動而執行。這就形成了一個自然的順序結構。
數據流示意圖
上圖就是一個典型的由數據流控制的順序模型。Simulate Signal節點產生一個波形數據,然後數據沿連線流動到Spectral Measurements節點做頻譜分析,分析得到的頻譜數據沿連線流動到Write To Measurement File節點,將節點存儲到數據文件。整個程序,隨着數據的流動一步一步的執行,形成了一個完美的順序模型。
如果兩個節點之間沒有數據聯繫,我們也想要他們順序執行怎麼辦呢?那就要利用錯誤簇和條件結構。
錯誤簇,是LabVIEW設置的特殊的數據結構,由status(錯誤狀態)、code(錯誤代碼)、source(錯誤信息)三部分組成。它是用來在節點之間傳輸錯誤信息的。(如下圖所示)
錯誤簇
其實,錯誤簇除了可以傳遞錯誤信息以外,還有一個重要的功能就是通過錯誤簇中數據的流動來確定程序的執行順序。當節點含有錯誤簇端子時,我們就要把前一個節點的error out端子和後一個節點的error in端子連接起來,已確定執行的順序,以及保證錯誤信息的傳遞。
錯誤簇確定執行順序
上圖所示的VI由3個用戶輸入節點構成。三個節點之間本沒有數據聯繫,也就是說執行順序不確定。但是,通過錯誤簇的連接使它們形成了數據依賴,從而能夠順序執行。
如果在節點中沒有錯誤簇,有該如何用數據流來確定執行順序呢?看看下面的例子:
錯誤簇與條件結構結合
程序由兩個用戶輸入節點和兩個對話框節點構成。我們需要第一個用戶輸入節點執行完畢後,由第一個對話框節點來提示輸入成功,第二組輸入節點和對話框同理。由於對話框節點並沒有錯誤簇端子,於是就使用了兩個條件結構來放置兩個對話框節點。錯誤數據從兩個條件結構中穿過,來保證程序的順序執行。
值得一提的是,條件結構的所有分支都需要連接錯誤信息,否則LabVIEW會報錯。
錯誤簇與條件結構結合2
P.S. 由於錯誤簇有以上種種的用途,所以在我們寫一定要在所有的子VI中加入錯誤簇,即使子VI中沒有錯誤要處理,也要加上error in error out兩個端子。
好了,利用數據流來確定執行的順序的方法就寫這麼多吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章