一、XPLC006E功能簡(jiǎn)介
XPLC006E是正運(yùn)動(dòng)運(yùn)動(dòng)控制器推出的一款多軸經(jīng)濟(jì)型EtherCAT總線運(yùn)動(dòng)控制器,XPLC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。
XPLC006E自帶6個(gè)電機(jī)軸,最多12軸運(yùn)動(dòng)控制(含虛擬軸數(shù)),支持12軸直線插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等功能。
XPLC006E支持多任務(wù)同時(shí)運(yùn)行,同時(shí)可以在PC上直接仿真運(yùn)行,編程方式多種可選,支持ZDevelop軟件的Basic/PLC梯形圖/HMI組態(tài)和常用上位機(jī)軟件編程。
XPLC006E只支持EtherCAT總線軸,不支持脈沖軸和編碼器軸。采用EtherCAT總線與驅(qū)動(dòng)器通訊,1ms的刷新周期。
XPLC006E支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
→此款產(chǎn)品有XPLC004E、XPLC006E、XPLC008E三個(gè)不同軸數(shù)的型號(hào)可選。
二、XPLC864E功能簡(jiǎn)介
XPLC864E在XPLC006E的功能基礎(chǔ)上做了升級(jí)(即上節(jié)介紹的XPLC006E的功能都支持),部分資源空間優(yōu)于XPLC006E,使用方法基本一致,不同之處在于XPLC864E,硬件支持32點(diǎn)輸入、32點(diǎn)輸出、2個(gè)ADC、2個(gè)DAC,支持脈沖軸和總線軸混合使用,總實(shí)軸軸數(shù)為8,除了帶EtherCAT接口之外,輸出口硬件上可配置為8個(gè)軸的脈沖方向信號(hào)輸出,另帶兩路編碼器輸入,可由輸入口配置。
XPLC864E支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
XPLC系列經(jīng)濟(jì)型EtherCAT總線運(yùn)動(dòng)控制器支持多種編程方式,支持使用正運(yùn)動(dòng)技術(shù)自主研發(fā)的ZDevelop開(kāi)發(fā)環(huán)境的Basic語(yǔ)言和PLC梯形圖,上一節(jié)講解了控制器的運(yùn)動(dòng)緩沖,本節(jié)內(nèi)容主要講解控制器的軸參數(shù)與運(yùn)動(dòng)指令說(shuō)明。
三、軸參數(shù)
控制軸的運(yùn)動(dòng)除了要發(fā)送運(yùn)動(dòng)指令之外(運(yùn)動(dòng)指令),顯然我們還需要指定軸的運(yùn)動(dòng)的速度,確定軸運(yùn)動(dòng)的快慢,速度參數(shù)我們也可以把他叫做軸參數(shù),軸參數(shù)是軸運(yùn)動(dòng)所必須的參數(shù),常用的軸參數(shù)有速度、加速度、減速度、脈沖當(dāng)量、軸類型等,以上軸參數(shù)作用各不相同,參見(jiàn)下文的說(shuō)明。
1.BASE--軸選擇/軸組選擇
BASE指令用于選擇相應(yīng)的軸號(hào)進(jìn)行參數(shù)設(shè)置和運(yùn)行控制,每一個(gè)過(guò)程有其自己的BASE基本軸組,每個(gè)程序都能單獨(dú)賦值。
在設(shè)置軸參數(shù)或者運(yùn)行軸的時(shí)候,都要在最開(kāi)始的地方,用BASE指令選擇相應(yīng)的軸號(hào),默認(rèn)BASE選擇的第一個(gè)軸為主軸。
運(yùn)動(dòng)不指定軸號(hào)時(shí),默認(rèn)發(fā)送給最新掃描的BASE指令選擇的第一個(gè)軸。
語(yǔ)法:BASE(軸0,軸1,軸2,...)
例子:
BASE(0,1,2) '將XYZ平臺(tái)的三個(gè)軸分別綁定為軸號(hào)012
MOVE(100,200,240)
BASE(0) '選擇軸0
MOVE(136)
BASE(3,0,1,2)) '選擇四個(gè)軸,軸次序沒(méi)有嚴(yán)格要求,但一般順序選擇不易混淆
MOVE(10,50,50,0)
多軸的場(chǎng)合,在發(fā)送運(yùn)動(dòng)指令之前,最好先BASE指定當(dāng)前運(yùn)動(dòng)指令發(fā)送給哪個(gè)軸,例如,在上例中,我們想讓Y軸單獨(dú)運(yùn)動(dòng)100個(gè)單位,若發(fā)送MOVE(100),則發(fā)給了X軸,導(dǎo)致運(yùn)動(dòng)錯(cuò)誤了,正確做法如下,這樣做能保證運(yùn)動(dòng)不出錯(cuò)。
BASE(1)'選擇Y軸
MOVE(100) '給Y軸單獨(dú)發(fā)脈沖
2.ATYPE--軸類型
ATYPE是對(duì)軸功能的定義,通常在程序初始化時(shí)定義好軸的功能,可定義為無(wú)編碼反饋類型、有編碼器反饋類型、編碼器+Z信號(hào)反饋類型、EtherCAT總線類型等。若ATYPE設(shè)置異常,會(huì)導(dǎo)致軸運(yùn)行異常或者程序無(wú)法正常運(yùn)行。
語(yǔ)法:ATYPE=類型值或ATYPE (軸號(hào))=類型值
下表是對(duì)軸類型ATYPE定義的詳細(xì)說(shuō)明。
ATYPE=1/7是脈沖輸出類型;
ATYPE=4/5是脈沖輸出+編碼器輸入類型;
ATYPE=3/6是編碼器輸入類型;
ATYPE=65/66/67是EtherCAT總線軸的類型;
ATYPE=50/51/52是RTEX總線軸的類型。
ATYPE數(shù)值 |
功能描述 |
0 |
虛擬軸 |
1 |
脈沖方向方式的步進(jìn)或伺服,無(wú)編碼器輸入反饋 |
2 |
模擬信號(hào)控制方式的伺服 |
3 |
正交編碼器 |
4 |
脈沖方向輸出+正交編碼器輸入 |
5 |
脈沖方向輸出+脈沖方向編碼器輸入 |
6 |
脈沖方向方式的編碼器 |
7 |
脈沖方向輸出+EZ信號(hào)輸入 |
8 |
ZCAN擴(kuò)展脈沖方向輸出 |
9 |
ZCAN擴(kuò)展正交編碼器 |
10 |
ZCAN擴(kuò)展脈沖方向方式的編碼器 |
21 |
振鏡軸類型 |
50 |
RTEX周期位置模式 |
51 |
RTEX周期速度模式 |
52 |
RTEX周期力矩模式 |
65 |
EtherCAT周期位置模式 |
66 |
EtherCAT周期速度模式 |
67 |
EtherCAT周期力矩模式 |
70 |
EtherCAT自定義操作,只讀取編碼器,需支持EtherCAT |
3.UNITS--脈沖當(dāng)量
在運(yùn)動(dòng)控制裝置中,當(dāng)機(jī)械結(jié)構(gòu)確定以后,電機(jī)和機(jī)械裝置的傳動(dòng)關(guān)系也就固定了,電機(jī)每轉(zhuǎn)一圈產(chǎn)生的機(jī)械位移量也就固定了。脈沖當(dāng)量UNITS是每單位對(duì)應(yīng)的脈沖數(shù),可以是單位距離、單位角度等,支持5位小數(shù)精度。
控制器以UNITS作為基本單位,運(yùn)動(dòng)的目標(biāo)位置、速度、加減速度等都是以UNITS作為基礎(chǔ)單位來(lái)進(jìn)行運(yùn)算執(zhí)行,UNITS修改后,目標(biāo)位置、速度、加減速度等會(huì)隨UNITS改變成比例變化。
語(yǔ)法:UNITS=變量或UNITS (軸號(hào))=變量
例子:UNITS=10000
常見(jiàn)的幾種機(jī)械傳動(dòng)的UNITS參考計(jì)算方式見(jiàn)下表。
如設(shè)置脈沖當(dāng)量為1000,速度SPEED以設(shè)置的脈沖當(dāng)量為單位,則每秒按照當(dāng)前設(shè)置速度值*1000進(jìn)行發(fā)送脈沖給執(zhí)行機(jī)構(gòu)。
此時(shí)若直線運(yùn)動(dòng)指令的距離參數(shù)寫(xiě)2,則發(fā)送2*1000個(gè)脈沖,2000個(gè)脈沖能讓電機(jī)轉(zhuǎn)多少角度,需要參考電機(jī)的一圈脈沖數(shù)(電機(jī)轉(zhuǎn)動(dòng)一圈需要的脈沖數(shù)量)的設(shè)置,若電機(jī)的一圈脈沖數(shù)為10000,則2000個(gè)脈沖能讓電機(jī)轉(zhuǎn)72°,這樣運(yùn)動(dòng)指令的實(shí)際運(yùn)動(dòng)距離就能被換算出來(lái)了。
以上為脈沖當(dāng)量UNITS的設(shè)置方法,總而言之,設(shè)置前先要查出電機(jī)的一圈脈沖數(shù),再結(jié)合機(jī)械結(jié)構(gòu)的特點(diǎn)進(jìn)行設(shè)置。
一般而言,步進(jìn)電機(jī)的一圈脈沖數(shù)較小,伺服電機(jī)的一圈脈沖數(shù)較大,需要十萬(wàn)或百萬(wàn)級(jí)的脈沖數(shù)才能驅(qū)動(dòng)電機(jī)轉(zhuǎn)一圈,故伺服的精度較高,相對(duì)于的成本也高一些。
4.SPEED--運(yùn)動(dòng)速度
軸運(yùn)行時(shí)的速度,單位為UNITS/s。
當(dāng)單軸運(yùn)動(dòng)時(shí),運(yùn)動(dòng)速度的加速度為單軸的速度,當(dāng)多軸運(yùn)動(dòng)時(shí),作為插補(bǔ)運(yùn)動(dòng)的合成矢量速度。
SPEED修改后,立刻生效,可以實(shí)現(xiàn)動(dòng)態(tài)變速,平滑變速也可以使用SPEED_RATIO指令來(lái)調(diào)節(jié)倍率。
語(yǔ)法:SPEED=變量 或 SPEED(軸號(hào))=變量
例子:SPEED=100 '每秒下發(fā)脈沖個(gè)數(shù)為100*UNITS
5.ACCEL--加速度
軸的運(yùn)行由起始速度到目標(biāo)速度的過(guò)程中,每秒達(dá)到的速度數(shù)值,單位為UNITS/s^2,加速度越大,達(dá)到目標(biāo)速度的時(shí)間越短。
當(dāng)單軸運(yùn)動(dòng)時(shí),運(yùn)動(dòng)速度的加速度為單軸的加速度,當(dāng)多軸運(yùn)動(dòng)時(shí),插補(bǔ)運(yùn)動(dòng)的加速度為多軸矢量合成的加速度。
語(yǔ)法:ACCEL=變量 或 ACCEL(軸號(hào))=變量
例子:ACCEL=1000 '加速度為1000UNITS/s^2
6.DECEL--減速度
軸的運(yùn)行由運(yùn)行速度到停止的過(guò)程中,每秒達(dá)到的速度數(shù)值,單位為UNITS/s^2,減速度越大,達(dá)到停止速度的時(shí)間越短。
當(dāng)單軸運(yùn)動(dòng)時(shí),運(yùn)動(dòng)速度的減速度為單軸的減速度,當(dāng)多軸運(yùn)動(dòng)時(shí),插補(bǔ)運(yùn)動(dòng)的減速度為多軸矢量合成的減速度。
語(yǔ)法:DECEL=變量 或 DECEL(軸號(hào))=變量
7.DPOS--目標(biāo)位置
軸的目標(biāo)位置或需求位置,以UNITS作為單位,作為當(dāng)前軸的位置參考,正向運(yùn)動(dòng)時(shí)值增大,反向運(yùn)動(dòng)時(shí)軸減小,DPOS參數(shù)回零完成后會(huì)自動(dòng)清零,DPOS為0表示在原點(diǎn)位置,若手動(dòng)改DPOS的值,會(huì)自動(dòng)轉(zhuǎn)換為OFFPOS偏移,不會(huì)移動(dòng)電機(jī)。
正負(fù)軟限位限制的便是DPOS的范圍,超過(guò)設(shè)置的DPOS自動(dòng)報(bào)警,停止軸運(yùn)動(dòng)。
8.MPOS--反饋位置
軸的反饋位置,接了反饋此參數(shù)才有效,一般有編碼器測(cè)量反饋,無(wú)反饋的情況MPOS的值自動(dòng)復(fù)制DPOS的值,不具備參考價(jià)值。若手動(dòng)改DPOS的值,會(huì)自動(dòng)轉(zhuǎn)換為OFFPOS偏移。
一般MPOS與DPOS之間是有一定的誤差的,伺服性能越好,這個(gè)誤差便越小,理論上不可以完全消除,但可以十分接近。
相對(duì)應(yīng)的,SPEED為目標(biāo)速度,MSPEED為編碼器測(cè)得的真實(shí)運(yùn)動(dòng)速度。
注意,部分回零模式回零之后,DPOS會(huì)自動(dòng)清零,但MPOS不會(huì),需要手動(dòng)清零MPOS,否則可能導(dǎo)致后續(xù)運(yùn)動(dòng)出錯(cuò)。
9.AXIS--指定軸號(hào)
熟悉了上面的內(nèi)容,我們知道SPPED(1)=1000的含義是指定軸1的運(yùn)動(dòng)速度為1000,SPEED=1000因?yàn)槲粗付ㄝS號(hào),默認(rèn)設(shè)置BASE的第一個(gè)軸。
但MOVE(100)這類的命令括號(hào)是運(yùn)動(dòng)參數(shù),不能填入軸號(hào)了,這種參數(shù)我們可以寫(xiě)做MOVE(100) AXIS(0),通過(guò)添加AXIS指令去指定當(dāng)前參數(shù)設(shè)置到哪個(gè)軸上。
BASE(1)'選擇Y軸
MOVE(100) '給Y軸單獨(dú)發(fā)脈沖
MOVE(100) AXIS(0) '給X軸單獨(dú)發(fā)脈沖
10.軸參數(shù)設(shè)置示例
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1) '選擇軸號(hào)
ATYPE=1,1 '軸類型設(shè)置
UNITS=10000,10000 '脈沖當(dāng)量設(shè)置
SPEED=100,200 '速度設(shè)置
ACCEL=1000,2000 '加速度設(shè)置
DECEL=1000,2000 '減速度設(shè)置
DPOS=0,0 '當(dāng)前位置清0
MPOS=0,0 '反饋位置清0
TRIGGER '觸發(fā)示波器采樣
MOVE(200) AXIS(0) '軸0運(yùn)動(dòng)
MOVE(100) AXIS(1) '軸1運(yùn)動(dòng)
END
在這些參數(shù)作用下的軟件示波器采樣不同參數(shù)隨時(shí)間變化的波形如下圖所示。通過(guò)速度曲線能反映加減速度的情況。
DPOS(0)和MSPEED(0)分別為軸0的位移軌跡和速度軌跡;
DPOS(1)和MSPEED(1)分別為軸1的位移軌跡和速度軌跡。
四、運(yùn)動(dòng)指令
1.單軸運(yùn)動(dòng)
單軸運(yùn)動(dòng)的特點(diǎn)是每個(gè)軸的運(yùn)動(dòng)是獨(dú)立的,,由各軸自己的運(yùn)動(dòng)參數(shù)控制,與其他軸沒(méi)有聯(lián)系,單軸運(yùn)動(dòng)也分幾類,單軸寸動(dòng)、單軸點(diǎn)動(dòng)、單軸持續(xù)運(yùn)動(dòng)、回零也屬于單軸運(yùn)動(dòng)。
(1)寸動(dòng)
寸動(dòng)由MOVE指令給單個(gè)軸發(fā)有限個(gè)脈沖,例如MOVE(100),100個(gè)單位走完之后,軸減速停止。
MOVE指令控制多個(gè)軸運(yùn)動(dòng)的時(shí)候,屬于插補(bǔ)運(yùn)動(dòng),多軸是聯(lián)動(dòng)的。(寸動(dòng)例程參見(jiàn)上文)
(2)JOG點(diǎn)動(dòng)
JOG點(diǎn)動(dòng)是個(gè)簡(jiǎn)單的單軸運(yùn)動(dòng),由外部輸入信號(hào)控制以指定的速度正向運(yùn)動(dòng)或負(fù)向運(yùn)動(dòng)。
JOG點(diǎn)動(dòng)需接入外部輸入信號(hào),使用FWD_JOG指令映射正向JOG輸入,REV_JOG指令映射負(fù)向JOG輸入,檢測(cè)到有輸入信號(hào)時(shí)以JOGSPEED指令速度運(yùn)動(dòng),無(wú)輸入立即停止。
注意映射JOG開(kāi)關(guān)后,對(duì)于OFF信號(hào)有效的控制器,一定要INVERT_IN反轉(zhuǎn)電平,例如ZMC系列控制器是OFF信號(hào)有效,若不反轉(zhuǎn),則導(dǎo)致信號(hào)接入時(shí)為OFF,控制器判斷有輸入,立即控制軸運(yùn)動(dòng);對(duì)于ON有效的型號(hào)則不需要反轉(zhuǎn)。
A.點(diǎn)動(dòng)例程
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0) '選擇軸0
ATYPE=1 '脈沖軸類型
DPOS=0 '坐標(biāo)清0
UNITS=100 '脈沖當(dāng)量
SPEED =100 '主軸速度
ACCEL=1000 '加速度
DECEL=1000 '減速度
SRAMP=100 'S曲線
TRIGGER '自動(dòng)觸發(fā)示波器
JOGSPEED=50 'JOG速度50
FWD_JOG=0 'IN0作為正向JOG開(kāi)關(guān)
REV_JOG=1 'IN1作為負(fù)向JOG開(kāi)關(guān)
INVERT_IN(0,ON) '輸入0信號(hào)反轉(zhuǎn)
INVERT_IN(1,ON) '輸入1信號(hào)反轉(zhuǎn)
END
B.運(yùn)行效果如下圖
輸入0口有信號(hào)輸入時(shí),軸0正向運(yùn)行,速度為50。
輸入1口有信號(hào)輸入時(shí),軸0負(fù)向運(yùn)行,速度為50。
輸入0、1同時(shí)有信號(hào)輸入時(shí),軸0正向運(yùn)行。
(3)持續(xù)運(yùn)動(dòng)
控制器有專用的持續(xù)運(yùn)動(dòng)指令,控制器持續(xù)發(fā)脈沖,控制軸以指定的速度和方向持續(xù)運(yùn)動(dòng),持續(xù)運(yùn)動(dòng)常用的指令為VMOVE,以運(yùn)動(dòng)速度SPPED持續(xù)運(yùn)動(dòng),此時(shí)停止軸運(yùn)動(dòng)使用CANCEL或RAPIDSTOP指令。
VMOVE的指令參數(shù)可選擇正向或負(fù)向運(yùn)動(dòng),VMOVE(1)正向,VMOVE(-1)負(fù)向,下一條VMOVE會(huì)自動(dòng)替換前面的VMOVE指令。
持續(xù)運(yùn)動(dòng)例程:
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0) '選擇軸號(hào)
ATYPE=1 '軸類型設(shè)置
UNITS=100 '脈沖當(dāng)量設(shè)置
SPEED=100 '速度設(shè)置
ACCEL=1000 '加速度設(shè)置
DECEL=1000 '減速度設(shè)置
SRAMP=100 'S曲線
DPOS=0 '當(dāng)前位置清0
TRIGGER
WHILE 1 '循環(huán)運(yùn)動(dòng)
IF MODBUS_BIT(0) = ON THEN 'MODBUS_BIT(0)有效往左運(yùn)動(dòng)
VMOVE(-1)
ELSEIF MODBUS_BIT(1) = ON THEN 'MODBUS_BIT(1)有效往右運(yùn)動(dòng)
VMOVE(1)
ELSEIF MODBUS_BIT(0) = OFF OR MODBUS_BIT(1) = OFF THEN
CANCEL(2) 'MODBUS_BIT無(wú)效時(shí)停止運(yùn)動(dòng)
ENDIF
WEND
END
2.插補(bǔ)
插補(bǔ)是一個(gè)實(shí)時(shí)進(jìn)行的數(shù)據(jù)密化的過(guò)程,控制器根據(jù)給定的運(yùn)動(dòng)信息進(jìn)行數(shù)據(jù)計(jì)算,不斷計(jì)算出參與插補(bǔ)運(yùn)動(dòng)的各坐標(biāo)軸的進(jìn)給指令,然后分別驅(qū)動(dòng)各自相應(yīng)的執(zhí)行部件產(chǎn)生協(xié)調(diào)運(yùn)動(dòng),以使被控機(jī)械部件按理想的路線與速度移動(dòng)。
插補(bǔ)最常見(jiàn)的兩種方式是MOVE直線插補(bǔ)和MOVECIRC圓弧插補(bǔ)。插補(bǔ)運(yùn)動(dòng)至少需要兩個(gè)軸參與,進(jìn)行插補(bǔ)運(yùn)動(dòng)時(shí),將規(guī)劃軸映射到相應(yīng)的機(jī)臺(tái)坐標(biāo)系中,運(yùn)動(dòng)控制器根據(jù)坐標(biāo)映射關(guān)系,控制各軸運(yùn)動(dòng),實(shí)現(xiàn)要求的運(yùn)動(dòng)軌跡。
插補(bǔ)運(yùn)動(dòng)的特點(diǎn)是參與插補(bǔ)運(yùn)動(dòng)的所有軸,在進(jìn)行一段插補(bǔ)運(yùn)動(dòng)時(shí),同時(shí)啟動(dòng)同時(shí)停止,插補(bǔ)運(yùn)動(dòng)參數(shù)采用主軸的運(yùn)動(dòng)參數(shù)(速度、加速度等),主軸為BASE指令選擇的第一個(gè)軸。
插補(bǔ)運(yùn)動(dòng)指令會(huì)存入主軸的運(yùn)動(dòng)緩沖區(qū),不進(jìn)入從軸的運(yùn)動(dòng)緩沖區(qū),再依次從主軸的運(yùn)動(dòng)緩沖區(qū)中取出指令執(zhí)行,直到插補(bǔ)運(yùn)動(dòng)全部執(zhí)行完。
(1)直線插補(bǔ)--MOVE
單軸直線運(yùn)動(dòng)或多軸直線插補(bǔ)運(yùn)動(dòng),相對(duì)運(yùn)動(dòng)距離。絕對(duì)運(yùn)動(dòng)使用MOVEABS指令,SP運(yùn)動(dòng)使用MOVESP指令。
插補(bǔ)運(yùn)動(dòng)參數(shù)采用主軸參數(shù),插補(bǔ)運(yùn)動(dòng)緩沖在主軸的運(yùn)動(dòng)緩沖區(qū)。
語(yǔ)法:MOVE(distance1 [,distance2 [,distance3 [,distance4...]]])
例子:二軸直線插補(bǔ)
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1) '選擇軸0,軸1
ATYPE=1,1
UNITS=100,100
SPEED=100,100 '運(yùn)動(dòng)速度
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100 'S曲線
MERGE=ON '開(kāi)啟連續(xù)插補(bǔ)
TRIGGER '自動(dòng)觸發(fā)示波器
DPOS=100,0 '坐標(biāo)偏移
MOVE(-50,100) '第一段相對(duì)運(yùn)動(dòng)
MOVE(-100,0) '第二段相對(duì)運(yùn)動(dòng)
MOVE(-50,-100) '第三段相對(duì)運(yùn)動(dòng)
MOVE(50,-100) '第四段相對(duì)運(yùn)動(dòng)
MOVE(100,0) '第五段相對(duì)運(yùn)動(dòng)
MOVE(50,100) '第六段相對(duì)運(yùn)動(dòng)
END
直線插補(bǔ)合成軌跡如下圖:
起點(diǎn)和終點(diǎn)均為(100,0),逆時(shí)針加工。
(2)平面圓弧插補(bǔ)--MOVECIRC
兩軸圓弧插補(bǔ),起點(diǎn)、終點(diǎn)、圓心三點(diǎn)畫(huà)弧,起點(diǎn)使用軸當(dāng)前坐標(biāo),相對(duì)運(yùn)動(dòng)。絕對(duì)圓弧插補(bǔ)使用MOVECIRCABS指令。SP圓弧插補(bǔ)使用MOVECIRCSP指令。
MOVECIRC2指令使用當(dāng)前點(diǎn)、中間點(diǎn)、終點(diǎn)畫(huà)弧。
圓弧插補(bǔ)指令適用于二軸運(yùn)動(dòng)。
語(yǔ)法:MOVECIRC(end1, end2, centre1, centre2, direction)
(end1, end2):終點(diǎn)坐標(biāo)
(centre1, centre2):圓心坐標(biāo)
direction:方向,0-逆時(shí)針,1-順時(shí)針。
當(dāng)起點(diǎn)坐標(biāo)與終點(diǎn)坐標(biāo)相同時(shí),畫(huà)出整圓。圓弧相關(guān)的指令要保證給出的圓心和終點(diǎn)坐標(biāo)與當(dāng)前點(diǎn)一起可以正確的描述一段圓弧,否則會(huì)報(bào)錯(cuò),無(wú)法畫(huà)弧,錯(cuò)誤碼1006。
例子:
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=100,100
SPEED=100,100 '運(yùn)動(dòng)速度
ACCEL=1000,1000
DECEL=1000,1000
DPOS=0,0
SRAMP=100,100 'S曲線
MERGE=ON
TRIGGER '自動(dòng)觸發(fā)示波器
MOVECIRC(100,0,50,0,1) '半徑50順時(shí)針畫(huà)半圓,終點(diǎn)坐標(biāo)(100,0),圓心坐標(biāo)(50,0)
MOVECIRC(-200,0,-100,0,1) '半徑100順時(shí)針畫(huà)半圓,終點(diǎn)坐標(biāo)(-100,0),圓心坐標(biāo)(0,0)
END
圓弧插補(bǔ)合成軌跡如下圖:
(3)空間圓弧--MSPHERICAL
空間圓弧插補(bǔ)運(yùn)動(dòng),相對(duì)運(yùn)動(dòng),空間圓弧起點(diǎn)為當(dāng)前點(diǎn),第二、第三個(gè)點(diǎn)由指令指定。絕對(duì)運(yùn)動(dòng)使用MSPHERICALABS指令,自定義速度的連續(xù)插補(bǔ)運(yùn)動(dòng)可以使用SP后綴的指令。
語(yǔ)法:
MSPHERICAL(end1,end2,end3,centre1,centre2,centre3,mode[,distance4][,distance5])
(end1, end2, end3):第二個(gè)點(diǎn)坐標(biāo)
(centre1, centre2, centre3):第三個(gè)點(diǎn)坐標(biāo)
mode:指定前面兩個(gè)坐標(biāo)點(diǎn)的意義,如下表
distane4:第四軸螺旋的功能,指定第4軸的相對(duì)距離,此軸不參與速度計(jì)算
distane5:第五軸螺旋的功能,指定第5軸的相對(duì)距離,此軸不參與速度計(jì)算表
mode值 |
描述 |
0 |
當(dāng)前點(diǎn),中間點(diǎn),終點(diǎn)三點(diǎn)定圓弧 end指定圓弧終點(diǎn),centre指定圓弧的中間點(diǎn) |
1 |
當(dāng)前點(diǎn),圓心,終點(diǎn)定圓弧 走最短的圓弧 end指定圓弧終點(diǎn),centre指定圓弧的圓心 |
2 |
當(dāng)前點(diǎn),中間點(diǎn),終點(diǎn)三點(diǎn)定整圓 end指定圓弧終點(diǎn),centre指定圓弧的中間點(diǎn) |
3 |
當(dāng)前點(diǎn),圓心,終點(diǎn)定整圓 先走最短的圓弧,再繼續(xù)走完整圓 end指定圓弧終點(diǎn),centre指定圓弧的圓心 |
例子:
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
WAIT IDLE(2)
BASE(0,1,2)
ATYPE=1,1,1 '設(shè)為脈沖軸類型
UNITS=100,100,100
DPOS=0,0,0
SPEED=100,100,100 '主軸速度
ACCEL=1000 ,1000,1000 '主軸加速度
DECEL=1000 ,1000,1000
TRIGGER
MSPHERICAL(120,160,400,240,320,300,0) '終點(diǎn)(120,160,400),中間點(diǎn)(240,320,300)
END
mode 0:當(dāng)前點(diǎn),中間點(diǎn),終點(diǎn)三點(diǎn)定圓弧,如下圖。
mode 3:當(dāng)前點(diǎn),圓心,終點(diǎn)定整圓,如下圖。
MSPHERICAL(120,160,400,120,160,150,3) '終點(diǎn)(120,160,400),圓心(120,160,150),先走最短的圓弧(紅色部分),再走完整圓。
3.同步運(yùn)動(dòng)
同步運(yùn)動(dòng)描述的是不同軸之間的運(yùn)動(dòng)是聯(lián)動(dòng)的,比如電子齒輪,電子凸輪,自動(dòng)凸輪等。
(1)電子齒輪
電子齒輪功能用于兩個(gè)軸的連接,將主軸與從軸按照一個(gè)常數(shù)齒輪比建立連接,不需要物理齒輪,使用指令直接設(shè)置電子齒輪的比值,由于是使用軟件實(shí)現(xiàn)的,故電子齒輪比可以隨時(shí)更改。
電子齒輪功能通過(guò)指令CONNECT、CONNPATH實(shí)現(xiàn),將一個(gè)軸按照一定比例連接到另一個(gè)軸上做跟隨運(yùn)動(dòng),一條運(yùn)動(dòng)指令就能驅(qū)動(dòng)兩個(gè)電機(jī)的運(yùn)行,通過(guò)對(duì)這兩個(gè)電機(jī)軸移動(dòng)量的檢測(cè),將位移偏差反饋到控制器并獲得同步補(bǔ)償,這樣能使兩個(gè)軸之間的位移偏差量控制在精度允許范圍內(nèi)。
電子齒輪連接的是脈沖個(gè)數(shù),例如主從軸連接比例為1:5,給主軸發(fā)送1個(gè)脈沖,此時(shí)對(duì)應(yīng)給從軸發(fā)送5個(gè)脈沖。
CONNPATH與CONNECT的相同點(diǎn):二者的使用語(yǔ)法相同,連接的都是脈沖個(gè)數(shù),CONNPATH連接到單個(gè)軸的運(yùn)動(dòng)的效果與CONNECT相同。
CONNPATH與CONNECT的區(qū)別:CONNECT連接的是單個(gè)軸的目標(biāo)位置。CONNPATH是連接的是插補(bǔ)軸的矢量長(zhǎng)度,此時(shí)需要連接在插補(bǔ)運(yùn)動(dòng)的主軸上,連接到插補(bǔ)從軸上無(wú)法跟隨插補(bǔ)運(yùn)動(dòng)。CONNPATH會(huì)跟蹤XY軸插補(bǔ)的的矢量長(zhǎng)度變化,而不是跟蹤單獨(dú)的X軸或者Y軸。
語(yǔ)法:CONNECT/CONNPATH(比率,被連接軸) AXIS(連接軸)
電子齒輪的連接比率:比率可正可負(fù),可為小數(shù),連接的是脈沖個(gè)數(shù),要考慮不同軸UNITS的比例。比率可以通過(guò)重復(fù)調(diào)用CONNECT/CONNPATH指令動(dòng)態(tài)變化(連接成功后保持連接狀態(tài)),取消連接時(shí)用CANCEL或RAPIDSTOP指令。
→假設(shè)連接軸0的UNITS為10,被連接軸1的UNITS為100,使用CONNECT連接,比率ratio為1,CONNECT(1,1) AXIS(0)
當(dāng)軸1運(yùn)動(dòng)S1=100時(shí),軸0運(yùn)動(dòng)S0=S1*UNITS(1)*ratio/UNITS(0)=100*100*1/10,此時(shí)運(yùn)動(dòng)1000。
例子:
RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=10,100
DPOS=0,0
SPEED=100,100
ACCEL=1000,1000
DECEL=1000,1000
SRAMP=100,100
TRIGGER '自動(dòng)觸發(fā)示波器
MOVE(100) AXIS(1) '軸1運(yùn)動(dòng)100,此時(shí)軸0不動(dòng)
WAIT IDLE(1) '上一段運(yùn)動(dòng)不連接
DELAY(10) '延時(shí)10ms
CONNECT(0.5,1) AXIS(0) '軸0連接到軸1,比例為0.5
MOVE(100) AXIS(1) '軸1運(yùn)動(dòng)100,軸0運(yùn)動(dòng)500
END
軸0目標(biāo)位置:
DPOS(0)=DPOS(1)*UNITS(1)*ratio/UNITS(0)=100*100*0.5/10=500。
運(yùn)動(dòng)波形如圖所示:
(2)電子凸輪
凸輪的作用是將旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)換為線性運(yùn)動(dòng),包括直線運(yùn)動(dòng)、擺動(dòng)、勻速運(yùn)動(dòng)和非勻速運(yùn)動(dòng)。電子凸輪屬于多軸同步運(yùn)動(dòng),這種運(yùn)動(dòng)是基于主軸外加一個(gè)或多個(gè)從軸系統(tǒng),是在機(jī)械凸輪的基礎(chǔ)上發(fā)展而來(lái),電子凸輪多用于周期性的曲線運(yùn)動(dòng)場(chǎng)合。
電子凸輪是利用構(gòu)造的凸輪曲線來(lái)模擬機(jī)械凸輪,以達(dá)到與機(jī)械凸輪系統(tǒng)相同的凸輪軸與主軸之間相對(duì)運(yùn)動(dòng)的軟件系統(tǒng),通過(guò)控制器控制伺服電機(jī)來(lái)模擬機(jī)械凸輪的功能,不需要另外安裝如下左圖所示的凸輪機(jī)械結(jié)構(gòu)。
如下右圖所示,機(jī)械凸輪按照凸輪的輪廓可以得出一段轉(zhuǎn)動(dòng)角度與加工位置運(yùn)動(dòng)軌跡,此軌跡為弧線,將該段弧線分解成無(wú)數(shù)個(gè)直線或圓弧軌跡,組合起來(lái)得到一串趨近于該弧線的運(yùn)動(dòng)軌跡,電子凸輪直接將此段軌跡運(yùn)動(dòng)參數(shù)裝入運(yùn)動(dòng)指令,即可控制軸走出目標(biāo)軌跡。
電子凸輪用軟件來(lái)控制信號(hào),改變程序的相關(guān)運(yùn)動(dòng)參數(shù)就能改變運(yùn)動(dòng)曲線,應(yīng)用靈活性高,工作可靠,操作簡(jiǎn)單,不需要額外安裝機(jī)械構(gòu)件,因而不存在磨損的情況。
凸輪指令有CAM凸輪表運(yùn)動(dòng),CAMBOX跟隨凸輪表運(yùn)動(dòng),MOVELINK和MOVESLINK自動(dòng)凸輪運(yùn)動(dòng)。
以CAM凸輪表運(yùn)動(dòng)指令為例,所謂凸輪表運(yùn)動(dòng)就是將凸輪運(yùn)動(dòng)的軌跡點(diǎn),以數(shù)據(jù)的形式存儲(chǔ)在TABLE寄存器區(qū)域,CAM指令再調(diào)用TABLE表的數(shù)據(jù)運(yùn)動(dòng),形成運(yùn)動(dòng)軌跡,凸輪軸需要與其他軸配合使用,才能做柔順曲線加工。
兩個(gè)或多個(gè)CAM指令可以同時(shí)使用同一段TABLE數(shù)據(jù)區(qū)進(jìn)行操作。TBALE數(shù)據(jù)需要手動(dòng)設(shè)置,第一個(gè)數(shù)據(jù)為引導(dǎo)點(diǎn),建議設(shè)為0。
凸輪表指令運(yùn)動(dòng)完調(diào)用的TABLE數(shù)據(jù)點(diǎn)后,凸輪運(yùn)動(dòng)結(jié)束,需要周期執(zhí)行的場(chǎng)合,將凸輪表指令寫(xiě)在WHILE循環(huán)中。
CAM指令含義:根據(jù)存儲(chǔ)在TABLE中的數(shù)據(jù)來(lái)決定軸的運(yùn)動(dòng),這些TABLE數(shù)據(jù)值對(duì)應(yīng)運(yùn)動(dòng)軌跡的位置,是相對(duì)于運(yùn)動(dòng)起始點(diǎn)的絕對(duì)位置。
指令語(yǔ)法:CAM(start point, end point, table multiplier, distance)
參數(shù) |
說(shuō)明 |
start point |
起始點(diǎn)TABLE編號(hào),存儲(chǔ)第一個(gè)點(diǎn)的位置 |
end point |
結(jié)束點(diǎn)TABLE編號(hào) |
table multiplier |
位置乘以這個(gè)比例,一般設(shè)為脈沖當(dāng)量值,TABLE數(shù)據(jù)*table multiplier值=實(shí)際發(fā)出的脈沖數(shù) |
link_distance |
參考軸運(yùn)動(dòng)的距離,總時(shí)間=distance/軸speed |
電子凸輪例程:
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0) '選擇第0軸
ATYPE=1 '脈沖方式步進(jìn)或伺服
DPOS = 0
UNITS = 100 '脈沖當(dāng)量
SPEED = 200
ACCEL = 2000
DECEL = 2000
'計(jì)算TABLE的數(shù)據(jù)
DIM deg, rad, x, stepdeg
stepdeg = 2 '可以通過(guò)這個(gè)來(lái)修改段數(shù),段數(shù)越多速度越平穩(wěn)
FOR deg=0 TO 360 STEP stepdeg
rad = deg * 2 * PI/360 '轉(zhuǎn)換為弧度
X = deg * 25 + 10000 * (1-COS(rad)) '計(jì)算每小段位移
TABLE(deg/stepdeg,X) '存儲(chǔ)TABLE
TRACE deg/stepdeg,X
NEXT deg
TRIGGER '觸發(fā)示波器采樣
WHILE 1 '循環(huán)運(yùn)動(dòng)
CAM(0, 360/stepdeg, 0.1, 300) '虛擬跟蹤總長(zhǎng)度300
WAIT UNTIL IDLE '等待運(yùn)動(dòng)停止
WEND
END
運(yùn)動(dòng)軌跡如下圖:每個(gè)凸輪指令運(yùn)動(dòng)總時(shí)間=distance/speed=300/200=1.5s
五、運(yùn)動(dòng)取消
在實(shí)際生產(chǎn)過(guò)程中遇到緊急情況和一些意外情況我們需要讓軸運(yùn)動(dòng)及時(shí)的停下來(lái),這時(shí)候我們就需要發(fā)送運(yùn)動(dòng)取消指令給控制器取消軸的運(yùn)動(dòng),防止意外事故的發(fā)生。
運(yùn)動(dòng)取消分針對(duì)單軸的指令CANCEL和針對(duì)所有軸的指令RAPIDSTOP,兩個(gè)指令功能相同,唯一不同的是一個(gè)針對(duì)單個(gè)軸,一個(gè)是針對(duì)所有軸的,故單軸取消在使用的時(shí)候養(yǎng)成添加軸號(hào)的習(xí)慣,否則可能作用到其他軸上。
語(yǔ)法:CANCEL(模式)或RAPIDSTOP(模式)
模式值 |
說(shuō)明 |
0(缺省) |
取消當(dāng)前運(yùn)動(dòng),緩沖運(yùn)動(dòng)還能執(zhí)行 |
1 |
取消緩沖的運(yùn)動(dòng),當(dāng)前運(yùn)動(dòng)執(zhí)行完停止 |
2 |
取消當(dāng)前運(yùn)動(dòng)和緩沖區(qū)的運(yùn)動(dòng),軸立即停止 |
3 |
立即中斷脈沖發(fā)送,軸立即停止 |
模式2急停的減速度按FASTDEC快減速和DECEL減速度中最大的值,使用指令之后要調(diào)用絕對(duì)位置運(yùn)動(dòng),必須先WAIT IDLE 等待停止完成。
RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
DPOS=0
ATYPE=1
UNITS=10000
SPEED=500
ACCEL=1000
DECEL=1000 '減速度
FASTDEC=10000 '快減速
TRIGGER
MOVE(1000) '當(dāng)前運(yùn)動(dòng)
MOVE(-1000) '緩沖運(yùn)動(dòng)
DELAY(1000) '延時(shí)1s后CANCEL生效
CANCEL(0)
END
CANCEL(0)效果如下:
MOVE(1000)執(zhí)行1s之后被取消,緩沖運(yùn)動(dòng)繼續(xù)運(yùn)行。
CANCEL(1)效果如下:
MOVE(1000)執(zhí)行完,緩沖運(yùn)動(dòng)被取消。
CANCEL(2)效果如下:MOVE(1000)執(zhí)行1s之后急停,急停減速度FASTDEC。
CANCEL(3)效果如下:
MOVE(1000)執(zhí)行1s之后急停。
本次,正運(yùn)動(dòng)技術(shù)經(jīng)濟(jì)型EtherCAT運(yùn)動(dòng)控制器(八):軸參數(shù)與運(yùn)動(dòng)指令,就分享到這里。
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16214瀏覽量
177481 -
運(yùn)動(dòng)控制器
+關(guān)注
關(guān)注
2文章
394瀏覽量
24663 -
EtherCAT總線
+關(guān)注
關(guān)注
5文章
71瀏覽量
5369
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論