普通運動控制卡在LabVIEW平臺上的應(yīng)用
LabVIEW(Laboratory
在運動控制方面,LabVIEW有專門的運動控制模塊,并且NI公司為其所有的運動控制卡配備相應(yīng)的驅(qū)動程序,可以方便實現(xiàn)即插即用功能。如果用戶所使用的板卡不是NI公司的產(chǎn)品,又沒有提供與LabVIEW兼容的驅(qū)動程序,就不能為LabVIEW所用。但是LabVIEW能夠通過調(diào)用Windows32動態(tài)連接庫(Dynamic
二、應(yīng)用背景
筆者在參與某二自由度運動平臺運動仿真項目的研制過程中,選用深圳眾為興數(shù)控技術(shù)有限公司生產(chǎn)的ADT850型四軸運動控制卡,該型號的卡提供多種版本W(wǎng)indows下的驅(qū)動程序和在BorlandC++3.1、VB和VC等多種環(huán)境下開發(fā)所需的函數(shù)庫。雖然在這些編程環(huán)境中很容易實現(xiàn)所需的運動控制,但是,如果要開發(fā)出一個美觀的人機交互界面,將會有很大一部分時間花在程序主界面的編寫上。為此,我們利用LabVIEW強大的界面編輯功能以及它能夠調(diào)用Windows32動態(tài)連接庫的特點,首先在VC編譯環(huán)境中編譯出運動控制所需要的動態(tài)鏈接庫文件,然后在LabVIEW環(huán)境中編寫程序主界面,最后在LabVIEW框圖程序中調(diào)用動態(tài)鏈接庫文件來編寫所需的運動控制程序。其主要過程如圖1所示。
圖1
三、程序設(shè)計
LabVIEW具有強大的外部接口能力,可用的外部接口包括:DDE、CIN、DLL、MATLAB
3.1
DLL是基于Windows程序設(shè)計的一個非常重要的組成部分。DLL的編制與具體的編程語言及編譯器無關(guān),只要遵守DLL的開發(fā)規(guī)范和編程策略,并安排正確的調(diào)用接口,不管用何種編程語言編制的DLL都具有通用性,這就給我們編寫通用的DLL帶來了很大的方便。
針對LabVIEW調(diào)用DLL的特點和運動控制的復(fù)雜性,我們所編寫的通用DLL中必須包含多個可供調(diào)用的函數(shù),這些函數(shù)都調(diào)用運動控制函數(shù)庫中的一個或多個函數(shù),DLL中每個可供調(diào)用的函數(shù)都對應(yīng)著某一具體任務(wù),稱其為功能函數(shù)。DLL中的功能函數(shù)主要有:板卡初始化函數(shù)、運行條件初始化函數(shù)、兩軸運行狀態(tài)函數(shù)、兩軸位置函數(shù)、脈沖發(fā)送函數(shù)、兩軸伸長計算函數(shù)、停止運行函數(shù)、歸零函數(shù)以及板卡結(jié)束運行函數(shù)等,每個功能函數(shù)一般都有自己獨立的接口。
功能函數(shù)確定以后,在Visual
3.2
LabVIEW中動態(tài)鏈接庫的調(diào)用是通過CLF(Call
在LabVIEW中調(diào)用DLL時,則應(yīng)根據(jù)應(yīng)用程序的需要,確定參數(shù)個數(shù)和參數(shù)類型及調(diào)用規(guī)則,然后在LabVIEW中正確地配置DLL。首先從Advanced子模板中選擇Call
3.3
根據(jù)以上所編寫的功能函數(shù)配置好CLF節(jié)點的參數(shù)個數(shù)及其數(shù)據(jù)類型后,也就設(shè)置好了CLF節(jié)點的輸入輸出端口。每一個功能函數(shù)對應(yīng)著相應(yīng)功能的CLF節(jié)點,我們可是像使用其它函數(shù)節(jié)點一樣來應(yīng)用這些CLF節(jié)點。針對某型二自由度運動平臺運動控制的特殊性,要求這兩個自由度完全獨立,互不相關(guān),這就不能采用多軸插補函數(shù)進行脈沖輸出控制,只能是兩軸分別控制。
整個LabVIEW框圖程序的結(jié)構(gòu)采用順序結(jié)構(gòu)(Sequence
圖2
評論