Veristand學習札記(3)- CD的開發

轉載:http://www.javashuo.com/article/p-dhzpwrqj-mz.html數組

 

1 CustomDevice開發框架

CD的開發必須遵守NI提供的模板進行。安裝完Veristand以後,會在LabVIEW 安裝目錄下的vi.lib文件下生成【NI Veristand】目錄,例如我安裝的LabVIEW2015在D盤下,須要的工具就在D:\Program Files(x86)\National Instruments\LabVIEW 2015\vi.lib\NI Veristand\Custom DeviceTools\Custom Device Template Tool\ Custom Device Template Tool.vi。打開這個VI,使用它生成一個工程。工具

1.1 工程生成工具:Custom Device Template Tool.vioop

 

圖12 CD工程生成工具VI.net

新建一個工程,設置名稱爲【485 comm】,設置工程存儲路徑後,設置參數Execution Mode,是別的,這個尚未鬧明白是什麼意思。保持默認。3d

1.2 Custom Device Types調試

1.2.1 AsynchronousCustom Devicesxml

 已參見幫助文檔,待補充。blog

1.2.2  簡歷工程隊列

運行後看效果。

 

圖13 CD工程

居然是個LabVIEW的工程。工程名後面自動追加「Custom Device Project」,同時生成兩個lvlib庫和一個xml文件,庫中的VI名稱自動命名,不能修改。

最重要的四個文件以下:

 

圖14 四個VI

Initialization VI.vi 實現的功能是當 Veristand 中建立該 Custom Device 時,爲Custom Device 建立相對應的屬性和輸入/輸出通道; Main Page.vi 實現的功能是在Veristand 中顯示 Custom Device 相對應的通道和屬性信息; RTDriver.vi 實現的是當Veristand 將 Custom Device 部署到 Real-Time 系統以後, Custom Device Loop 中 Custom Device如何執行本身的工做。所以能夠看出,前二者(Initialization和main page)運行的環境是上位機(Windows開發程序平臺),能夠加入「彈出對話框」等調試方式,後者的主要操做環境是 Real-Time,若是要輸出調試信息,就要
採用前面提到的 Print NI VeriStand Debug String。

1.3 Initialization VI

默認的框架是這樣的。

 

圖15 Initialization框架

這個框架的主要功能就是定義你的設備的輸入、輸出和一些屬性。整個VI的輸入輸出是固定的了。最經常使用三個VI:

:建立設備的輸入和輸出通道功能類型,並指定其屬性和page,其中輸入和輸出的數據都是浮點數。這裏定義的輸入和輸出是指的板卡或者設備自己的,相對於Veristand這個要調用他的平臺,設備的輸出是要給到平臺的輸入。

:具體指定輸入和輸出的通道名稱、單位、默認值等信息。

 

 

圖16 設定輸入、輸出通道

:設置自定義設備的屬性和屬性的值類型,默承認選擇。


屬性和輸入/輸出的區別在於:屬性在配置好以後, Veristand 在 Custom Device Loop 中只會頗有限次數的訪問該信息,而輸入/輸出在 Custom Device Loop 的每一次循環中都會被使用到;屬性的數據類型包含的種類不少,好比布爾,數值,字符串,數組、變體(簇轉換)等;輸入/輸出的數據類型在Veristand 中被限定爲Double,不能更改。

根據以上信息,設定個人串口通訊設備通道和屬性以下:


圖17 通道設置

建立了一個輸入,兩個輸出,三個屬性,可是這些是如何和板卡、Veristand聯繫起來的呢?

先擱置不說,等作完一個CD以後,導入到Veristand中再看。

1.4 Main page

Main page的做用是將Initlizantion中設置的屬性應用起來,在Veristand中的界面展現。

 

圖18 main page初始化前面板

在這裏放置屬性配置所須要的控件。當前CD中,屬性有三個:串口配置參數和兩個端口號。

 

圖19 放置控件

在程序面板中,經過控件值變化的事件結構,將控件值賦給以前設置好的屬性。程序中屬性名稱要和以前得一致。

:給屬性賦值。具體實如今事件結構中,以下圖所示。

 

圖20 串口設置賦值

 

圖21 Port1賦值

 

圖22 Port2賦值

1.5 RT Driver

這個就是和板卡相關的了。設置的屬性和輸入輸出通道,怎麼做用於板卡,如何將數據上傳到Veristand,就在這裏實現。

首先,先看下整個大過程的數據流是如何執行的。初始化給了兩個隊列引用進來。

 

圖23 輸入、輸出隊列引用

1.5.1 DeviceOutputs FIFO

設備採集到的值給系統傳送隊列,對應的板卡採集/讀取等操做,將獲取到的數據以數組的形式經過這個隊列發送到系統中。

 

圖24 板卡的採集區域

同理,Input隊列就是從系統中獲取到要操做的值,寫入板卡中。

 

圖25 板卡寫操做區

在此以前,板卡須要初始化、打開等操做。板卡的配置參數就從屬性節點中獲取到。

 

圖26 獲取屬性值後配置串口並打開

 

圖27 板卡寫操做

圖28 板卡度操做

讀寫部分完成以後,在最後面退出本VI時關閉資源。

 

圖29 關閉板卡

以上,就完成了板卡的操做,並將數據經過隊列與系統進行交互。

1.6 發佈CD

 

圖30 程序生成規範

在工程中,自動生成一個程序生成規範,最後生成的路徑要選擇在C:\Users\Public\Documents\NationalInstruments\NI VeriStand 2015\Custom Devices下才能被Veristand識別。

生成規範裏面,目標目錄不要修改,不然在加載以後會出現錯誤。

 

圖31 生成路徑

源程序和目標程序都使用默認的設置便可。

 

 

圖32 CD發佈

1.7 在Veristand中的應用

新建Veristand工程「485CD Test」,進行系統配置,

 

圖33 在Veristand中導入

導入以後,自動加載配置的屬性和通道。

 

圖34 通道和屬性節點

由上圖能夠看出,在Initialization VI中設置的通道名、屬性名稱和默認值都在這裏顯示,兩個功能塊,一個輸入兩個輸出通道,屬性面板上就是main page VI 的控件。--------------------- 做者:NUC-94210 來源:CSDN 原文:https://blog.csdn.net/mfcjishiben/article/details/79417739 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索