工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

EtherCAT總線運(yùn)動(dòng)控制器中簡(jiǎn)單易用的直線插補(bǔ)

EtherCAT總線運(yùn)動(dòng)控制器中簡(jiǎn)單易用的直線插補(bǔ)

本節(jié)課程主要通過(guò)幾個(gè)部分講解直線插補(bǔ),分別為EtherCAT總線運(yùn)動(dòng)控制器介紹、 運(yùn)動(dòng)控制器直線插補(bǔ)的原理、功能、實(shí)現(xiàn)方式和例程仿真演示。

01 XPLC864E2介紹

XPLC864E2是正運(yùn)動(dòng)技術(shù)推出的一款多軸經(jīng)濟(jì)型EtherCAT總線運(yùn)動(dòng)控制器,XPLC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。

體積小,通訊功能全,支持RS232串口、RS485串口、網(wǎng)口、CAN總線、EtherCAT總線連接外設(shè),多網(wǎng)口通道通過(guò)交換機(jī)擴(kuò)展。

XPLC864E2支持脈沖軸和總線軸混合使用,總軸數(shù)為8,除了帶EtherCAT接口之外,輸出口可配置為8個(gè)脈沖信號(hào)輸出,另帶兩路編碼器輸入,由輸入口配置。

通過(guò)擴(kuò)展最多支持12軸直線插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等功能。

02 直線插補(bǔ)原理

直線插補(bǔ)算法采用數(shù)據(jù)采樣法,插補(bǔ)用小段直線來(lái)逼近給定軌跡,插補(bǔ)輸出的是下一個(gè)插補(bǔ)周期內(nèi)各軸要運(yùn)動(dòng)的距離,不需要每走一個(gè)脈沖當(dāng)量就插補(bǔ)一次,可達(dá)到很高的進(jìn)給速度。

數(shù)據(jù)采樣法原理是采用時(shí)間分割思想,根據(jù)進(jìn)給速度f(wàn)和插補(bǔ)周期t,將廓型曲線分割成一段段的輪廓步長(zhǎng)l,l=ft,然后計(jì)算出每個(gè)插補(bǔ)周期參與插補(bǔ)運(yùn)動(dòng)的每個(gè)軸的坐標(biāo)增量。

03 直線插補(bǔ)功能

一、直線插補(bǔ)特點(diǎn)

直線插補(bǔ)運(yùn)動(dòng)通過(guò)BASE指令選擇軸號(hào)/軸組,控制多軸聯(lián)動(dòng),完成直線運(yùn)動(dòng)。

主軸是BASE選擇的第一個(gè)軸,插補(bǔ)運(yùn)動(dòng)軸參數(shù)UNITS、SPEED等均采用主軸的參數(shù),發(fā)送MOVE直線插補(bǔ)運(yùn)動(dòng)指令,插補(bǔ)運(yùn)動(dòng)在主軸的運(yùn)動(dòng)緩沖區(qū)中按順序執(zhí)行,CANCEL指令取消插補(bǔ)運(yùn)動(dòng),實(shí)現(xiàn)急停。

1.支持16軸直線插補(bǔ)運(yùn)動(dòng)

base(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)

2.支持多通道同時(shí)插補(bǔ)

BASE(0,1)
MOVE(100,200)
BASE(2,3,4)
MOVE(30,40,50)

二、插補(bǔ)運(yùn)動(dòng)參數(shù)計(jì)算

以二軸直線插補(bǔ)為例:軸0和軸1兩軸參與直線插補(bǔ)運(yùn)動(dòng),如下圖。

二軸直線插補(bǔ)運(yùn)動(dòng)從平面的A點(diǎn)運(yùn)動(dòng)到B點(diǎn),XY軸同時(shí)啟動(dòng),并同時(shí)到達(dá)終點(diǎn),設(shè)置軸0的運(yùn)動(dòng)距離為?X,軸1的運(yùn)動(dòng)距離為?Y,主軸是BASE的第一個(gè)軸(此時(shí)主軸為軸0),插補(bǔ)運(yùn)動(dòng)參數(shù)采用主軸的參數(shù)。

若插補(bǔ)主軸運(yùn)動(dòng)速度為S(主軸軸0的設(shè)置速度),各個(gè)軸的實(shí)際速度為主軸的分速度,不等于S,此時(shí):

  • 插補(bǔ)運(yùn)動(dòng)的距離:X=[(?X)2+(?Y)2]?

  • 軸0實(shí)際速度:S0=S×?X/X

  • 軸1實(shí)際速度:S1=S×?Y/X

04 直線插補(bǔ)實(shí)現(xiàn)

XPLC864E2內(nèi)置直線插補(bǔ)算法,支持8個(gè)EtherCAT總線軸聯(lián)合直線插補(bǔ),可擴(kuò)展支持12軸插補(bǔ),采用MOVE直線插補(bǔ)指令,便可輕松高效完成插補(bǔ)運(yùn)動(dòng)。

一、直線插補(bǔ)相關(guān)指令

1.MOVE發(fā)送脈沖給驅(qū)動(dòng)器,實(shí)現(xiàn)直線插補(bǔ)運(yùn)動(dòng)。

語(yǔ)法:

  • MOVE(distance1 [,distance2[,distance3 [,distance4...]]])

  • MOVEABS(distance1 [,distance2 [,distance3 [,distance4...]]])

  • MOVESP(distance1 [,distance2 [,distance3 [,distance4...]]])

  • MOVEABSSP(distance1 [,distance2 [,distance3 [,distance4...]]])

2.BASE指令選擇參與插補(bǔ)的軸號(hào),即MOVE運(yùn)動(dòng)發(fā)送給哪些軸。

語(yǔ)法: BASE(axis1 [,axis 2 [,axis 3 [,axis 4...]]])

3.直線插補(bǔ)運(yùn)動(dòng)速度比例自由控制,當(dāng)前速度= SPEED*SPEED_RATIO。

語(yǔ)法: SPEED_RATIO(軸號(hào)) = value

4.運(yùn)動(dòng)暫停與恢復(fù),MOVE_PAUSE暫停,MOVE_RESUME恢復(fù)運(yùn)動(dòng)。

語(yǔ)法: MOVE_PAUSE(mode)

5.運(yùn)動(dòng)取消,軸/軸組減速停止,CANCEL(2)為急停,RAPIDSTOP(2)為全部軸急停。

語(yǔ)法: CANCEL(mode) AXIS(主軸), RAPIDSTOP(mode)

二、直線插補(bǔ)類型

1.直線插補(bǔ)有以下三種形式可選:

(1)MOVE相對(duì)運(yùn)動(dòng)指令

插補(bǔ)運(yùn)動(dòng)的距離參數(shù)為與當(dāng)前插補(bǔ)起點(diǎn)的相對(duì)距離,采用SPEED速度。

(2)MOVEABS絕對(duì)運(yùn)動(dòng)指令

插補(bǔ)運(yùn)動(dòng)的距離參數(shù)為相對(duì)于原點(diǎn)的絕對(duì)距離,在相對(duì)運(yùn)動(dòng)指令后方加上ABS后綴,采用SPEED速度。

(3)MOVESP/MOVEABSSP運(yùn)動(dòng)指令

帶SP的指令運(yùn)動(dòng)速度采用FORCE_SPEED強(qiáng)制速度參數(shù)運(yùn)動(dòng),而不是SPEED參數(shù),在相對(duì)運(yùn)動(dòng)指令或絕對(duì)運(yùn)動(dòng)指令后方加上SP后綴即可。FORCE_SPEED參數(shù)能進(jìn)入運(yùn)動(dòng)緩沖區(qū),方便實(shí)現(xiàn)動(dòng)態(tài)變速。

2.三類運(yùn)動(dòng)形式的區(qū)別采用下方例子展開說(shuō)明:

(1)相對(duì)運(yùn)動(dòng)例子

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
DPOS=0,0
ATYPE=1,1
UNITS=100,100
SPEED=100,100 '運(yùn)動(dòng)速度
ACCEL=1000,1000
DECEL=1000,1000
FORCE_SPEED=150,150 'SP指令速度
SRAMP=100,100 'S曲線
TRIGGER '自動(dòng)觸發(fā)示波器
MOVE(200,150) '第一段終點(diǎn)(200,150)
MOVE(100,120) '第二段終點(diǎn)(300,270)
END

(2)絕對(duì)運(yùn)動(dòng)例子

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
DPOS=0,0
ATYPE=1,1
UNITS=100,100
SPEED=100,100 '運(yùn)動(dòng)速度
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100 'S曲線
TRIGGER '自動(dòng)觸發(fā)示波器
MOVEABS(200,150) '第一段
MOVEABS(100,120) '第二段運(yùn)動(dòng)到絕對(duì)位置(100,120)
END

(3)SP運(yùn)動(dòng)指令例子

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
DPOS=0,0
ATYPE=1,1
UNITS=100,100
SPEED=100,100 '運(yùn)動(dòng)速度
ACCEL=1000,1000
DECEL=1000,1000
FORCE_SPEED=150,150 'SP指令速度
SRAMP=100,100 'S曲線
TRIGGER '自動(dòng)觸發(fā)示波器
MOVE(200,150) '第一段相對(duì)運(yùn)動(dòng),速度100
MOVESP(100,120) '第二段SP相對(duì)運(yùn)動(dòng),速度150
END

三、MOVESP動(dòng)態(tài)變速

MOVESP直線插補(bǔ)運(yùn)動(dòng)采用FORCE_SPEED設(shè)置的速度運(yùn)動(dòng),并且支持STARTMOVE_SPEED自定義每段SP運(yùn)動(dòng)的開始速度,ENDMOVE_SPEED自定義每段SP運(yùn)動(dòng)的結(jié)束速度,這兩個(gè)參數(shù)不使用時(shí)請(qǐng)?jiān)O(shè)置較大值。

例子:

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1) '選擇XY
DPOS = 0,0
MPOS = 0,0
ATYPE=1,1 '脈沖方式步進(jìn)或伺服
UNITS = 100,100 '脈沖當(dāng)量
SPEED = 100,100
ACCEL = 200,200
DECEL = 200,200
SRAMP=100,100 'S曲線
TRIGGER
'第一段
FORCE_SPEED = 50 '第一段速度50
MOVESP(40,40)
'第二段
FORCE_SPEED = 60 '第二段速度60
MOVESP(50,50)
'第三段
FORCE_SPEED = 80 '第三段速度80
MOVESP(60,60)
END

速度變化曲線:

從速度為0開始運(yùn)動(dòng),完成三段直線插補(bǔ)運(yùn)動(dòng),第一段插補(bǔ)的運(yùn)動(dòng)速度50,第二段運(yùn)動(dòng)速度60,,第三段運(yùn)動(dòng)速度80。

四、直線插補(bǔ)的速度倍率控制

直線插補(bǔ)運(yùn)動(dòng)中支持SPEED_RATIO設(shè)置當(dāng)前運(yùn)動(dòng)速度的比例,使得當(dāng)前運(yùn)動(dòng)速度=SPEED* SPEED_RATIO,指令發(fā)送立即生效,故可借助此命令實(shí)現(xiàn)動(dòng)態(tài)變速。

例子:

RAPIDSTOP(2)
WAIT IDLE
BASE(0,1) '選擇軸0,1
DPOS=0,0
UNITS=1000,1000
SPEED = 100,100 '速度100units/s
ACCEL = 1000,1000
DECEL = 1000,1000
SRAMP = 50,50
TRIGGER
SPEED_RATIO = 1 '速度比例為1,速度100
MOVE(100,120) '直線插補(bǔ)
DELAY(500) '等待0.5s
SPEED_RATIO = 2 '速度200
WAIT UNTIL REMAIN<50 '等待剩余距離小于50
SPEED_RATIO = 0.5 '速度降為50
WAIT IDLE
SPEED_RATIO=1
END

速度變化曲線:

五、直線插補(bǔ)運(yùn)動(dòng)暫停與恢復(fù)

MOVE_PAUSE運(yùn)動(dòng)暫停適用于插補(bǔ)運(yùn)動(dòng),有以下幾種模式:

例子:

BASE(0,1) '選擇軸0,1
DPOS=0,0
UNITS=1000,1000
SPEED = 100,100 '速度100units/s
ACCEL = 1000,1000
DECEL = 1000,1000
SRAMP = 50,50
TRIGGER
MOVE(100,100) '當(dāng)前運(yùn)動(dòng)
MOVE(50,50) '緩沖運(yùn)動(dòng)
MOVE_PAUSE(1) '模式1,當(dāng)前運(yùn)動(dòng)完成暫停
DELAY(2000)
MOVE_RESUME '恢復(fù)運(yùn)動(dòng),緩沖運(yùn)動(dòng)開始執(zhí)行
END

運(yùn)動(dòng)曲線如下圖:

05 直線插補(bǔ)例程

一、兩軸連續(xù)插補(bǔ)完成五角星軌跡

'總線初始化使能EtherCAT總線驅(qū)動(dòng)器,脈沖型驅(qū)動(dòng)器OP打開使能。
BASE(0,1)
UNITS=10000,10000
SPEED=100,100
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100
DPOS=0,0
MPOS=0,0
TRIGGER '自動(dòng)觸發(fā)示波器
'五角星軌跡
MOVEABS(1.4695, 1.0676)
MOVEABS(2.9389, 0.0000)
MOVEABS(2.3776, 1.7275)
MOVEABS(3.8471, 2.7951)
MOVEABS(2.0307, 2.7951)
MOVEABS(1.4695, 4.5225)
MOVEABS(0.9082, 2.7951)
MOVEABS(-0.9082, 2.7951)
MOVEABS(0.5613, 1.7275)
MOVEABS(0.0000, 0.0000)
END

示波器采樣運(yùn)動(dòng)隨時(shí)間變化的波形:

示波器采樣兩軸插補(bǔ)軌跡:

二、五角星視頻演示

本次,正運(yùn)動(dòng)技術(shù)EtherCAT總線運(yùn)動(dòng)控制器中簡(jiǎn)單易用的直線插補(bǔ),就分享到這里。

本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。 文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。

審核編輯(
王靜
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

正運(yùn)動(dòng)全國(guó)產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H用戶手冊(cè)

正運(yùn)動(dòng)全國(guó)產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H

正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器如何快速實(shí)現(xiàn)單軸/多軸同步跟隨功能?

正運(yùn)動(dòng)ECI1408運(yùn)動(dòng)控制卡用戶手冊(cè)

正運(yùn)動(dòng)機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)VPLC710