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