<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 普通運動(dòng)控制卡在LabVIEW平臺上的應用

普通運動(dòng)控制卡在LabVIEW平臺上的應用

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏
一、引言

  LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是美國國家儀器公司(NationalInstruments)推出一種基于圖形語(yǔ)言的開(kāi)發(fā)環(huán)境,編程非常方便,人機交互界面直觀(guān)友好,用戶(hù)可以創(chuàng )建獨立的可執行文件,能夠脫離開(kāi)發(fā)環(huán)境而單獨運行,是目前最流行的虛擬儀器編程平臺,廣泛應用于測試測量、過(guò)程控制、實(shí)驗室研究與自動(dòng)化等方面。

本文引用地址:http://dyxdggzs.com/article/201701/336996.htm

  在運動(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)連接庫(DynamicLinkLibrary,簡(jiǎn)稱(chēng)DLL)來(lái)編寫(xiě)與LabVIEW兼容的驅動(dòng)程序,實(shí)現該運動(dòng)控制卡在LabVIEW環(huán)境下二次開(kāi)發(fā),不僅可以大大降低成本、縮短開(kāi)發(fā)周期,而且可以使界面美觀(guān)。

二、應用背景

  筆者在參與某二自由度運動(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所示。


圖1DLL生成與LabVIEW調用

三、程序設計

  LabVIEW具有強大的外部接口能力,可用的外部接口包括:DDE、CIN、DLL、MATLABScript以及HiQScript等,其中DLL是其常用的外部接口。

  3.1動(dòng)態(tài)鏈接庫(DLL)的編寫(xiě)

  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è)功能函數一般都有自己獨立的接口。

  功能函數確定以后,在VisualC++6.0編譯器中建立一個(gè)Win32Dynamic-LinkLibrary文件,添加上運動(dòng)控制卡隨帶的運動(dòng)控制函數庫文件后,即可編譯成我們所需要的DLL文件。

  3.2動(dòng)態(tài)鏈接庫的調用

  LabVIEW中動(dòng)態(tài)鏈接庫的調用是通過(guò)CLF(CallLibraryFunction)節點(diǎn)實(shí)現的,CLF節點(diǎn)位于LabVIEW功能模板中的Advanced子模板中。

  在LabVIEW中調用DLL時(shí),則應根據應用程序的需要,確定參數個(gè)數和參數類(lèi)型及調用規則,然后在LabVIEW中正確地配置DLL。首先從Advanced子模板中選擇CallLibraryFunctionNode圖標并將其拖放到Diagram面板中適當位置,然后右鍵單擊它,在彈出的菜單選項中選擇Configer…彈出CallLibraryFunction對話(huà)框。在此對話(huà)框中,第一個(gè)參數LibraryNameorPath中填入需要調用的動(dòng)態(tài)連接庫文件的文件名和路徑;第二個(gè)參數FunctionName是連接庫中要調用的函數名稱(chēng);第三個(gè)參數CallingConventions是對DLL的調用規則,可選擇C或stdcall,該項的選擇應與用C++語(yǔ)言編寫(xiě)的動(dòng)態(tài)庫的編譯模式相一致。如果C++的調用方式為extern“C”declspec(dllexport),那么CallingConventions的選項為“C”,如果調用方式為externdeclspec(dllexport)stdcall,則Conventions的選項為默認值“stdcall”,否則發(fā)生不可預見(jiàn)的錯誤而退出程序。接下來(lái)的Parameter和Type分別是參數名稱(chēng)和參數類(lèi)型,表示函數返回類(lèi)型。左擊AddaParameterAfter按鈕,又多出了DataType和Pass兩項,它們分別是數據類(lèi)型轉換和參數傳遞方式,這是配置所調用函數形參所必須的選項。

  3.3程序實(shí)現

  根據以上所編寫(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框圖程序的結構采用順序結構(SequenceStructure),每一順序框都對應某項固定的任務(wù)。圖2中三個(gè)順序框是整個(gè)框圖程序的前三框,從左到右其任務(wù)分別是板卡初始化、板卡驅動(dòng)成功與否和相關(guān)參數的初始化及其顯示,相關(guān)參數初始化順序框中采用While循環(huán)模式等待輸入,只有當參數設定完成并按下確定鍵后程序才能繼續往下運行。


圖2程序初始化階段框圖


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>