普通運動(dòng)控制卡在LabVIEW平臺上的應用
LabVIEW(Laboratory
在運動(dòng)控制方面,LabVIEW有專(zhuān)門(mén)的運動(dòng)控制模塊,并且NI公司為其所有的運動(dòng)控制卡配備相應的驅動(dòng)程序,可以方便實(shí)現即插即用功能。如果用戶(hù)所使用的板卡不是NI公司的產(chǎn)品,又沒(méi)有提供與LabVIEW兼容的驅動(dòng)程序,就不能為L(cháng)abVIEW所用。但是LabVIEW能夠通過(guò)調用Windows32動(dòng)態(tài)連接庫(Dynamic
二、應用背景
筆者在參與某二自由度運動(dòng)平臺運動(dòng)仿真項目的研制過(guò)程中,選用深圳眾為興數控技術(shù)有限公司生產(chǎn)的ADT850型四軸運動(dòng)控制卡,該型號的卡提供多種版本W(wǎng)indows下的驅動(dòng)程序和在BorlandC++3.1、VB和VC等多種環(huán)境下開(kāi)發(fā)所需的函數庫。雖然在這些編程環(huán)境中很容易實(shí)現所需的運動(dòng)控制,但是,如果要開(kāi)發(fā)出一個(gè)美觀(guān)的人機交互界面,將會(huì )有很大一部分時(shí)間花在程序主界面的編寫(xiě)上。為此,我們利用LabVIEW強大的界面編輯功能以及它能夠調用Windows32動(dòng)態(tài)連接庫的特點(diǎn),首先在VC編譯環(huán)境中編譯出運動(dòng)控制所需要的動(dòng)態(tài)鏈接庫文件,然后在LabVIEW環(huán)境中編寫(xiě)程序主界面,最后在LabVIEW框圖程序中調用動(dòng)態(tài)鏈接庫文件來(lái)編寫(xiě)所需的運動(dòng)控制程序。其主要過(guò)程如圖1所示。

圖1
三、程序設計
LabVIEW具有強大的外部接口能力,可用的外部接口包括:DDE、CIN、DLL、MATLAB
3.1
DLL是基于Windows程序設計的一個(gè)非常重要的組成部分。DLL的編制與具體的編程語(yǔ)言及編譯器無(wú)關(guān),只要遵守DLL的開(kāi)發(fā)規范和編程策略,并安排正確的調用接口,不管用何種編程語(yǔ)言編制的DLL都具有通用性,這就給我們編寫(xiě)通用的DLL帶來(lái)了很大的方便。
針對LabVIEW調用DLL的特點(diǎn)和運動(dòng)控制的復雜性,我們所編寫(xiě)的通用DLL中必須包含多個(gè)可供調用的函數,這些函數都調用運動(dòng)控制函數庫中的一個(gè)或多個(gè)函數,DLL中每個(gè)可供調用的函數都對應著(zhù)某一具體任務(wù),稱(chēng)其為功能函數。DLL中的功能函數主要有:板卡初始化函數、運行條件初始化函數、兩軸運行狀態(tài)函數、兩軸位置函數、脈沖發(fā)送函數、兩軸伸長(cháng)計算函數、停止運行函數、歸零函數以及板卡結束運行函數等,每個(gè)功能函數一般都有自己獨立的接口。
功能函數確定以后,在Visual
3.2
LabVIEW中動(dòng)態(tài)鏈接庫的調用是通過(guò)CLF(Call
在LabVIEW中調用DLL時(shí),則應根據應用程序的需要,確定參數個(gè)數和參數類(lèi)型及調用規則,然后在LabVIEW中正確地配置DLL。首先從Advanced子模板中選擇Call
3.3
根據以上所編寫(xiě)的功能函數配置好CLF節點(diǎn)的參數個(gè)數及其數據類(lèi)型后,也就設置好了CLF節點(diǎn)的輸入輸出端口。每一個(gè)功能函數對應著(zhù)相應功能的CLF節點(diǎn),我們可是像使用其它函數節點(diǎn)一樣來(lái)應用這些CLF節點(diǎn)。針對某型二自由度運動(dòng)平臺運動(dòng)控制的特殊性,要求這兩個(gè)自由度完全獨立,互不相關(guān),這就不能采用多軸插補函數進(jìn)行脈沖輸出控制,只能是兩軸分別控制。
整個(gè)LabVIEW框圖程序的結構采用順序結構(Sequence

圖2
評論