摘 要:闡述了MPC07運動控制卡的工作原理和使用方法;分析了利用Visual Basic語言編程實現(xiàn)步進電機的多軸
運動控制,具有控制方便、運動可靠和開發(fā)簡單的特點。
關鍵詞:MPC07;步進電機;控制系統(tǒng);VB
[b][align=center]The Research of StepM otor Con trolling System Ba sed on M PC07
ZHANGWei-xing, WANG Chun-sheng, SHEN Xiao-qiang[/align][/b]
0 引言
隨著機電一體化的不斷發(fā)展,現(xiàn)代工業(yè)中運動控制系統(tǒng)也隨之更新?lián)Q代,從PLC、單片機、運動控制卡到專業(yè)的運動控制單元,控制方法越來越先進,控制策略越來越多,并不斷誕生出一代復雜而柔性的設備和機器。
MPC07運動控制卡是基于PC機PCI總線的步進電機或數(shù)字式
伺服電機的上位控制單元,它與PC機構成主從式控制結(jié)構, PC機負責人機交互界面的管理和控制系統(tǒng)的實時監(jiān)控等方面的工作,MPC07卡完成
運動控制的各種細節(jié),譬如每個軸的運動依靠輸出脈沖和方向信號、在運動過程中能夠自動升降速的處理、以及實現(xiàn)回原點起保護作用的限位開關信號等。每塊MPC07卡可控制4軸步進電機或數(shù)字式伺服電機,并支持多卡共用以實現(xiàn)多于4個運動軸的控制。該卡是基于FPGA設計,能夠提供各種運動控制功能。
用戶可根據(jù)控制系統(tǒng)的要求編制人機界面,并調(diào)用MPC07運動函數(shù)庫中的指令函數(shù),就可以開發(fā)出滿足要求而且成本低廉的多軸運動控制系統(tǒng)。
1 MPC07運動控制卡的原理
MPC07配備了功能強大、內(nèi)容豐富的Windows驅(qū)動程序、DLL函數(shù)庫。MPC07在插補算法和運動函數(shù)的執(zhí)行效率方面采用了更有效的方法,提高了插補精度、插補速度和實時性。MPC07運動函數(shù)庫用于二次開發(fā),用戶用VisualBasic或VC + +支持Windows標準32位動態(tài)鏈接庫(DLL)調(diào)用的開發(fā)工具編制所需的用戶界面程序,并把它與MPC07運動庫鏈接起來,就可以開發(fā)出自己的多軸運動控制系統(tǒng),例如:數(shù)控系統(tǒng)、檢測設備、自動生產(chǎn)線等。MPC07的運動函數(shù)庫能夠完成與運動控制有關的復雜細節(jié):升降速計算、行程控制、多軸插補等,這樣就可以大大縮短控制系統(tǒng)的開發(fā)周期。
MPC07控制卡的運動控制功能主要取決于運動函數(shù)庫。運動函數(shù)庫為單軸及多軸的步進或伺服控制提供了許多運動函數(shù):單軸運動、多軸獨立運動、多軸插補運動等等。
另外,為了配合運動控制系統(tǒng)的開發(fā),還提供了間隙補償功能。圖1為MPC07控制卡在三軸步進控制系統(tǒng)中的應用。
2 運動控制系統(tǒng)工作過程
利用MPC07的動態(tài)鏈接庫(DLL ) ,開發(fā)者可以很快開發(fā)出Windows平臺下的運動控制系統(tǒng)。MPC07動態(tài)鏈接庫是標準的Windows 32位動態(tài)鏈接庫,選用的開發(fā)工具應支持Windows標準的32位DLL調(diào)用。
首先進行程序初始化,設置運動參數(shù)以及板卡參數(shù),運動參數(shù)有各種運動速度、加/減速、升降速類型等,板卡參數(shù)有卡的數(shù)量、各卡上的軸數(shù)等。如果硬件設置錯誤,軟件在運行時發(fā)生錯誤,則調(diào)用失敗,需重新設置。
步進電機的直線運動:獨立運動和插補運動。
獨立運動指各控制軸的運動之間沒有聯(lián)動關系,可以是單軸運動,也可以是多軸同時按各自的速度運動。點位運動、連續(xù)運動和回原點運動都屬于獨立運動。
插補運動是指兩軸或三軸按照一定的算法進行聯(lián)動,被控軸同時啟動,并同時到達目標位置。插補運動以矢量速度運行,矢量速度分為常矢量速度和梯形矢量速度。多軸插補運動(圖2)只有線性運動,它們的運動速度由矢量速度決定,各軸的速度為矢量速度在各軸上的分量。
下面一段代碼是使兩軸以常速度作直線插補:
set_vector conspeed (2000) 設置矢量常速度為2000個脈沖;
con2line2 (1, 2000, 2, 2500) 軸l移動2000個脈沖,軸2移動2500個脈沖。
下面一段代碼是使兩軸以梯形速度作直線插補:
set_vector p rofile (500, 2000, l000)設置矢量梯形速度:低速為500個脈沖,高速為2000個脈沖,加速度為1000個脈沖;
fast_line2 (1, 2000, 2, 4000)軸I移動2000個脈沖,軸2移動4000個脈沖。
3 程序設計
下面利用VB編制圖1三軸電機的運動,運動參數(shù)包括軸號、初速度、最高速度、加速度和移動距離等,使得三軸能夠連續(xù)運動、回原點,并能夠讀取當前軸號、位置和速度。圖3為用VB編制的三軸運動功能框圖。
部分程序如下:
Op tion Exp licit
Dim AxesNum As Long軸號
Dim lowspeed AsDouble初速度
Dim highspeed AsDouble最高速度
Dim Accel AsDouble加速度
Dim DisAs Long移動距離
′*
********************************************
該函數(shù)對板卡進行設置,可在窗體加載時調(diào)用:
Private Function SetBoard ( ) As Integer
Dim Rtn As Integer
Rtn = auto_set( ) ′對板卡進行自動設置
If Rtn < = 0 Then ′若自動設置錯誤則返回0
SetBoard = - 1
Exit Function
End If
Rtn = init_board
If Rtn < 0 Then
SetBoard = - 2
Exit Function
End If
SetBoard = 0
End Function
′*
********************************************
′讀取用戶設置的運動參數(shù):
Private Sub GetParam ( )
AxesNum =Val( txtAxesNum. Text)
lowspeed =Val( txtLowSpeed. Text)
highspeed =Val( txtHighSpeed. Text) ′
Accel =Val( txtAccel. Text)
Dis =Val ( txtDis. Text) ′
set_maxspeed AxesNum, highspeed
set_conspeed AxesNum, lowspeed ′設置常速運動參數(shù)
set_p rofile AxesNum, lowspeed, highspeed, Accel ′設置梯形速度運動參數(shù)
End Sub
讀取并顯示狀態(tài)(當前的位置和速度)
Private Sub timGetdata_Timer( )
Dim posAs Long
Dim speed AsDouble
get_abs_posAxesNum, pos ′讀取位置
labPos. Cap tion = pos ′顯示位置
speed = get_rate (AxesNum) ′讀取速度
labSpeed. Cap tion = speed ′顯示速度
End Sub
4 結(jié)束語
介紹了MPC07運動
控制卡的工作原理及其應用,在VB環(huán)境下三軸步進電機的運動,當然,運動控制卡的運動函數(shù)庫還能夠完成與運動控制有關的復雜細節(jié),比如升降速直線插補,梯形速度直線插補等,這樣就能夠?qū)崿F(xiàn)更完善的運動控制系統(tǒng)。
參考文獻:
[ 1 ] 彭韜,周學才. 基于國產(chǎn)MCT8000運動控制卡的開放式結(jié)構機器人控制系統(tǒng)[ J ]. 制造業(yè)自動化, 2001, 71 (7) : 65267.
[ 2 ] 王振華,朱國力,郭長旺,等. 基于DSP和CNC多軸運動控制器研究[ J ]. 制造業(yè)自動化, 2000, 22 (3) : 10213.