siemens x
傳感器

基于MPC07運(yùn)動(dòng)控制卡的步進(jìn)電機(jī)控制系統(tǒng)研究

2025China.cn   2009年11月05日
摘 要:闡述了MPC07運(yùn)動(dòng)控制卡的工作原理和使用方法;分析了利用Visual Basic語言編程實(shí)現(xiàn)步進(jìn)電機(jī)的多軸運(yùn)動(dòng)控制,具有控制方便、運(yùn)動(dòng)可靠和開發(fā)簡(jiǎn)單的特點(diǎn)。

關(guān)鍵詞:MPC07;步進(jìn)電機(jī);控制系統(tǒng);VB

The Research of StepM otor Con trolling System Ba sed on M PC07
ZHANGWei-xing, WANG Chun-sheng, SHEN Xiao-qiang

0 引言

  隨著機(jī)電一體化的不斷發(fā)展,現(xiàn)代工業(yè)中運(yùn)動(dòng)控制系統(tǒng)也隨之更新?lián)Q代,從PLC、單片機(jī)、運(yùn)動(dòng)控制卡到專業(yè)的運(yùn)動(dòng)控制單元,控制方法越來越先進(jìn),控制策略越來越多,并不斷誕生出一代復(fù)雜而柔性的設(shè)備和機(jī)器。
  MPC07運(yùn)動(dòng)控制卡是基于PC機(jī)PCI總線的步進(jìn)電機(jī)或數(shù)字式伺服電機(jī)的上位控制單元,它與PC機(jī)構(gòu)成主從式控制結(jié)構(gòu), PC機(jī)負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控等方面的工作,MPC07卡完成運(yùn)動(dòng)控制的各種細(xì)節(jié),譬如每個(gè)軸的運(yùn)動(dòng)依靠輸出脈沖和方向信號(hào)、在運(yùn)動(dòng)過程中能夠自動(dòng)升降速的處理、以及實(shí)現(xiàn)回原點(diǎn)起保護(hù)作用的限位開關(guān)信號(hào)等。每塊MPC07卡可控制4軸步進(jìn)電機(jī)或數(shù)字式伺服電機(jī),并支持多卡共用以實(shí)現(xiàn)多于4個(gè)運(yùn)動(dòng)軸的控制。該卡是基于FPGA設(shè)計(jì),能夠提供各種運(yùn)動(dòng)控制功能。
  用戶可根據(jù)控制系統(tǒng)的要求編制人機(jī)界面,并調(diào)用MPC07運(yùn)動(dòng)函數(shù)庫中的指令函數(shù),就可以開發(fā)出滿足要求而且成本低廉的多軸運(yùn)動(dòng)控制系統(tǒng)。

1 MPC07運(yùn)動(dòng)控制卡的原理

  MPC07配備了功能強(qiáng)大、內(nèi)容豐富的Windows驅(qū)動(dòng)程序、DLL函數(shù)庫。MPC07在插補(bǔ)算法和運(yùn)動(dòng)函數(shù)的執(zhí)行效率方面采用了更有效的方法,提高了插補(bǔ)精度、插補(bǔ)速度和實(shí)時(shí)性。    MPC07運(yùn)動(dòng)函數(shù)庫用于二次開發(fā),用戶用VisualBasic或VC + +支持Windows標(biāo)準(zhǔn)32位動(dòng)態(tài)鏈接庫(DLL)調(diào)用的開發(fā)工具編制所需的用戶界面程序,并把它與MPC07運(yùn)動(dòng)庫鏈接起來,就可以開發(fā)出自己的多軸運(yùn)動(dòng)控制系統(tǒng),例如:數(shù)控系統(tǒng)、檢測(cè)設(shè)備、自動(dòng)生產(chǎn)線等。MPC07的運(yùn)動(dòng)函數(shù)庫能夠完成與運(yùn)動(dòng)控制有關(guān)的復(fù)雜細(xì)節(jié):升降速計(jì)算、行程控制、多軸插補(bǔ)等,這樣就可以大大縮短控制系統(tǒng)的開發(fā)周期。
  MPC07控制卡的運(yùn)動(dòng)控制功能主要取決于運(yùn)動(dòng)函數(shù)庫。運(yùn)動(dòng)函數(shù)庫為單軸及多軸的步進(jìn)或伺服控制提供了許多運(yùn)動(dòng)函數(shù):單軸運(yùn)動(dòng)、多軸獨(dú)立運(yùn)動(dòng)、多軸插補(bǔ)運(yùn)動(dòng)等等。
另外,為了配合運(yùn)動(dòng)控制系統(tǒng)的開發(fā),還提供了間隙補(bǔ)償功能。圖1為MPC07控制卡在三軸步進(jìn)控制系統(tǒng)中的應(yīng)用。

2 運(yùn)動(dòng)控制系統(tǒng)工作過程

  利用MPC07的動(dòng)態(tài)鏈接庫(DLL ) ,開發(fā)者可以很快開發(fā)出Windows平臺(tái)下的運(yùn)動(dòng)控制系統(tǒng)。MPC07動(dòng)態(tài)鏈接庫是標(biāo)準(zhǔn)的Windows 32位動(dòng)態(tài)鏈接庫,選用的開發(fā)工具應(yīng)支持Windows標(biāo)準(zhǔn)的32位DLL調(diào)用。
  首先進(jìn)行程序初始化,設(shè)置運(yùn)動(dòng)參數(shù)以及板卡參數(shù),運(yùn)動(dòng)參數(shù)有各種運(yùn)動(dòng)速度、加/減速、升降速類型等,板卡參數(shù)有卡的數(shù)量、各卡上的軸數(shù)等。如果硬件設(shè)置錯(cuò)誤,軟件在運(yùn)行時(shí)發(fā)生錯(cuò)誤,則調(diào)用失敗,需重新設(shè)置。
  步進(jìn)電機(jī)的直線運(yùn)動(dòng):獨(dú)立運(yùn)動(dòng)和插補(bǔ)運(yùn)動(dòng)。
  獨(dú)立運(yùn)動(dòng)指各控制軸的運(yùn)動(dòng)之間沒有聯(lián)動(dòng)關(guān)系,可以是單軸運(yùn)動(dòng),也可以是多軸同時(shí)按各自的速度運(yùn)動(dòng)。點(diǎn)位運(yùn)動(dòng)、連續(xù)運(yùn)動(dòng)和回原點(diǎn)運(yùn)動(dòng)都屬于獨(dú)立運(yùn)動(dòng)。
  插補(bǔ)運(yùn)動(dòng)是指兩軸或三軸按照一定的算法進(jìn)行聯(lián)動(dòng),被控軸同時(shí)啟動(dòng),并同時(shí)到達(dá)目標(biāo)位置。插補(bǔ)運(yùn)動(dòng)以矢量速度運(yùn)行,矢量速度分為常矢量速度和梯形矢量速度。多軸插補(bǔ)運(yùn)動(dòng)(圖2)只有線性運(yùn)動(dòng),它們的運(yùn)動(dòng)速度由矢量速度決定,各軸的速度為矢量速度在各軸上的分量。


下面一段代碼是使兩軸以常速度作直線插補(bǔ):
set_vector conspeed (2000) 設(shè)置矢量常速度為2000個(gè)脈沖;
con2line2 (1, 2000, 2, 2500) 軸l移動(dòng)2000個(gè)脈沖,軸2移動(dòng)2500個(gè)脈沖。
下面一段代碼是使兩軸以梯形速度作直線插補(bǔ):
set_vector p rofile (500, 2000, l000)設(shè)置矢量梯形速度:低速為500個(gè)脈沖,高速為2000個(gè)脈沖,加速度為1000個(gè)脈沖;
fast_line2 (1, 2000, 2, 4000)軸I移動(dòng)2000個(gè)脈沖,軸2移動(dòng)4000個(gè)脈沖。

3 程序設(shè)計(jì)

  下面利用VB編制圖1三軸電機(jī)的運(yùn)動(dòng),運(yùn)動(dòng)參數(shù)包括軸號(hào)、初速度、最高速度、加速度和移動(dòng)距離等,使得三軸能夠連續(xù)運(yùn)動(dòng)、回原點(diǎn),并能夠讀取當(dāng)前軸號(hào)、位置和速度。圖3為用VB編制的三軸運(yùn)動(dòng)功能框圖。


部分程序如下:
Op tion Exp licit
Dim AxesNum As Long軸號(hào)
Dim lowspeed AsDouble初速度
Dim highspeed AsDouble最高速度
Dim Accel AsDouble加速度
Dim DisAs Long移動(dòng)距離
′*
********************************************
該函數(shù)對(duì)板卡進(jìn)行設(shè)置,可在窗體加載時(shí)調(diào)用:
Private Function SetBoard ( ) As Integer
Dim Rtn As Integer
Rtn = auto_set( ) ′對(duì)板卡進(jìn)行自動(dòng)設(shè)置
If Rtn < = 0 Then ′若自動(dòng)設(shè)置錯(cuò)誤則返回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è)置的運(yùn)動(dòng)參數(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è)置常速運(yùn)動(dòng)參數(shù)
set_p rofile AxesNum, lowspeed, highspeed, Accel ′設(shè)置梯形速度運(yùn)動(dòng)參數(shù)
End Sub
讀取并顯示狀態(tài)(當(dāng)前的位置和速度)
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運(yùn)動(dòng)控制卡的工作原理及其應(yīng)用,在VB環(huán)境下三軸步進(jìn)電機(jī)的運(yùn)動(dòng),當(dāng)然,運(yùn)動(dòng)控制卡的運(yùn)動(dòng)函數(shù)庫還能夠完成與運(yùn)動(dòng)控制有關(guān)的復(fù)雜細(xì)節(jié),比如升降速直線插補(bǔ),梯形速度直線插補(bǔ)等,這樣就能夠?qū)崿F(xiàn)更完善的運(yùn)動(dòng)控制系統(tǒng)。

參考文獻(xiàn):

[ 1 ] 彭韜,周學(xué)才. 基于國(guó)產(chǎn)MCT8000運(yùn)動(dòng)控制卡的開放式結(jié)構(gòu)機(jī)器人控制系統(tǒng)[ J ]. 制造業(yè)自動(dòng)化, 2001, 71 (7) : 65267.
[ 2 ] 王振華,朱國(guó)力,郭長(zhǎng)旺,等. 基于DSP和CNC多軸運(yùn)動(dòng)控制器研究[ J ]. 制造業(yè)自動(dòng)化, 2000, 22 (3) : 10213.

(轉(zhuǎn)載)

標(biāo)簽:運(yùn)動(dòng)控制 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道