基于LabVIEW的數控機床網絡測控系統——總體設計 (二)
3.3通用數據采集卡的驅動設計
本文引用地址:http://www.j9360.com/article/270594.htm系統中,在數據采集卡部分,LabVIEW提供了大量的數據采集子程序,這些驅動程序從簡單到高級,可以提供給用戶使用,但這些子程序只支持NI的數據采集卡(DAQ)以及少數公司開發的支持LabVIEW平臺的數據采集卡,而這些卡的價格較昂貴,一般的用戶很難接受。因此,為了能在LabVIEW平臺上使用普通數據采集,有以下幾種方案可以解決LabVIEW與普通數據采集卡驅動的問題。
3.3.1基于LabVIEW的普通國產采集卡的驅動方法
為了解決LabVIEW與普通國產采集卡的接口驅動問題,有三種可行方案:
①直接用LabVIEW的InPort , OutPort圖標編程方式;
②用LabVIEW的CIN圖標生成的板卡卡驅動程序的子VI方式;
③用LabVIEW的Call Library Functions圖標,動態鏈接數據采集卡的。DLL庫函數方式。
(1)用In Port和Out Port直接編程方式(I/O方式)驅動
LabVIEW中有兩個直接訪問底層設備的圖標,即In Port.vi和Out Port.vi.這兩個函數分別完成從設備的物理地址直接讀取和輸出數據功能,通過直接讀寫寄存器可以提高數據的傳輸速率,采集卡的工作方式為軟件驅動,查詢方式為讀取采樣結果。In Port.vi和Out port.vi圖標存放在Memory子模板上。直接讀取端口方式實現起來比較簡單,適用于采集精度要求不高的情況。對于精度要求高且復雜的采集系統,如包含對內存大量操作的情況,這種方式就不能滿足要求[19]。
(2)調用C語言源代碼方式(CINF方式)驅動
在實際設計中,經常會碰到某些想實現的功能,但利用LabVIEW圖標實現和處理又不是很方便靈活,而利用其他編程語言很容易實現的情況。這時就需要用LabVIEW中的接口圖標,以實現LabVIEW與其他語言直接的連接,CIN圖標就是其中的一種。
它是LabVIEW與C語言的接口,CIN通過輸入、輸出端口實現兩種語言之間的數據傳遞。輸入、輸出端口的個數可由設計者根據實際需要確定。當LabVIEW的程序運行到CIN節點時,數據由CIN的輸入端口傳遞給C源代碼圖標,程序去執行C源代碼,代碼執行完后,得到的數據結果由CIN的輸出端返回給LabVIEW [20]。
(3)調用動態連接庫DLL的方式(CLF方式)驅動
動態連接庫(DLL)是一種應用程序在運行時與庫文件連接起來的技術,是在應用程序運行時被裝入和鏈接的,而不是把源代碼復制到應用程序中去,因此使用動態鏈接庫可以實現多個應用程序直間代碼和資源的共享。不過動態鏈接庫常由數據采集卡生產廠商提供,通過LabVIEW的CLF節點調用。如果廠商不提供DLL動態連接庫,用戶就要自己編寫,這就對用戶的編程水平有了進一步的要求。不過使用動態鏈接庫有其自身的有點,如方便的實現共享代碼、資源和數據;DLL的編寫與語言無關;隱藏實現細節;節省內存等;
3.3.2調用動態連接庫DLL的方式實現板卡驅動的設計
由于該設計平臺中,選用的國產普通采集卡,需要自己編寫板卡驅動,鑒于以上幾種方法的比較,本文選用的是調用動態連接庫DLL的方式(CLF方式)驅動。通過LabVIEW的CLF節點調用的實現如下,調用動態連接庫的配置方式詳見下圖3.8所示。

評論