視頻教程:《視頻教程:ZMC運動控制器SCARA機械手應用快速入門》
今天我們來學習一下,ZMC運動控制器SCARA機械手應用快速入門。
控制器接線參考
01 概述
SCARA(Selective Compliance Assembly Robot Arm,中文譯名:選擇順應性裝配機器手臂)是一種圓柱坐標型的特殊類型的工業機器人。SCARA機器人可以被制造成各種大小,最常見的工作半徑在100毫米至1000毫米之間,此類的SCARA機器人的凈載重量在1千克至200千克之間。SCARA系統在x,y方向上具有順從性,而在Z軸方向具有良好的剛度,還具有串接的兩桿結構的特點,適用于搬取零件和裝配工作。故SCARA系統大量用于裝配印刷電路板、電子零部件、集成電路板,此外,塑料、汽車、電子產品、藥品和食品等工業領域也有廣泛的應用。
ZMC運動控制器具有6軸、12軸、20軸、30軸、32軸、60軸、64軸等不同電機軸數的產品,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置、機械手指令等。本文使用ZMC運動控制器,介紹機械手指令CONNFRAME,在SCARA機械手的應用。
ZMC運動控制器采用簡單易懂的BASIC程序來二次開發機械手程序,支持多文件多任務運行,支持自定義指令,同時提供了強大的ZDevelop開發環境,支持PC仿真運行和在線跟蹤調試,兼容VC的操作習慣,使得復雜的運動控制變得簡單明了。運動控制器的機械手程序也可以使用常見的PC上位機開發軟件,例如VC、VB、VS、C++、C#等,根據不同的開發環境,在正運動官網下載PC函數庫編程資料,找到對應的dll連接庫以及相關文件,編程中使用 ZAux_ Direct_Connframe 和 ZAux_ Direct_Connreframe 指令建立機械手連接。
CONNFRAME指令使得在SCARA機械手運動的實現,在編程上簡易、方便;在運動過程中電機運動平滑、精準;客戶對ZMC產品性能及品質得到了一致認可,正運動技術也會對不同客戶的不同需求定制特殊的指令及控制器型號。
02 系統架構
01 SCARA 機械手
SCARA機械手支持2-4軸,大關節軸+小關節軸 [+Z 軸] [+末端旋轉軸]。
本系統應用于標準4軸SCARA機械手,2個關節軸X,Y,一個上下Z軸,及一個末端旋轉軸R。控制器需要支持機械手功能,采用脫機的方式將編輯好的程序下載到控制器上(也可以用PC監視或者實時發送指令操作),可利用觸摸屏示教的方式編輯想要運動的軌跡。
02 ZMC 運動控制器
ZMC406總線控制器是正運動技術推出的新一代網絡6軸運動控制器(可通過擴展模塊來擴展軸,支持多達32軸),自帶6個脈沖軸接口。
支持RS232,RS485,以太網,U盤,CAN, EtherCAT通訊接口。EtherCAT高達500us的刷新周期。通過EtherCAT總線,最多可擴展4096個隔離輸入或輸出口。輸出口輸出電流可達 300mA,可直接驅動部分電磁閥。每軸輸出脈沖頻率可達10MHz。采用優化的網絡通訊協議可以實現實時的運動控制。支持編碼器位置測量,可以配置為手輪輸入模式。單臺電腦支持多達256個ZMC控制器同時連接。
此運動控制器與PCI運動控制卡相比
具有如下優點:
1 不使用插槽,穩定性更好;
2 可以選用MINI電腦或ARM工控電腦,降低整體成本;
3 控制器直接做接線板使用,節省空間;
4 控制器上可以并行運行程序,與PC只需要簡單交互,降低PC軟件的復雜性等優勢。
ZMC控制器通過 ZDevelop開發環境來調試,ZDevelop 是一個很方便的編程、編譯和調試環境。ZDevelop 可以通過串口、485、USB 或以太網與控制器建立連接。
應用程序可以使用 VC,VB,VS,C++Builder,C#等軟件來開發。調試時可以把 ZDevelop 軟件同時連接到控制器,程序運行時需要動態庫 zmotion.dll。
03 實現方案
方案采用正運動ZMC406型號控制器,實現了SCARA機械手精準、平滑的運動。
在支持機械手功能的控制平臺上,通過指令建立機械手實際關節軸與虛擬軸的連接,給虛擬軸發送運動控制指令,通過機械手算法自動計算關節軸的運動路徑,從而控制關節軸運動。
將機械手上的關節軸依次接到控制器的脈沖軸接口上。
01 機械手相關概念
1)關節軸與虛擬軸
關節軸
關節軸是指實際機械結構中的旋轉關節,在程序中一般顯示旋轉角度(某些結構也是平移軸)。
由于電機與旋轉關節會存在減速比,所以設置UNITS時要按照實際關節旋轉一圈來設置,同時TABLE中填寫結構參數時也要按照旋轉關節中心計算,而不是按照電機軸中心計算。
虛擬軸
虛擬軸不是實際存在的,抽象為世界坐標系的6個自由度,依次為X、Y、Z、RX、RY、RZ。可以理解為直角坐標系的三個直線軸和三個旋轉軸,用來確定機械手末端工作點的加工軌跡與坐標。
2)正解運動與逆解運動
正解
通過操作關節坐標,再根據機械結構參數可以計算出末端位置在直角坐標系的空間位置,這個過程稱為正解運動,此時操作的是實際關節軸,虛擬軸自動計算坐標。
控制器使用CONNREFRAME指令建立正解模式,此指令作用在虛擬軸上,此時只能操作關節軸,關節軸也可以做各種運動,但實際運動的軌跡不是直線圓弧,正解模式一般用于手動調整關節位置或上電點位回零。
逆解
給定一個直角坐標系中的空間位置,反推出各關節軸坐標,這個過程稱為逆解運動,此時操作的是虛擬軸,實際關節軸自動解算坐標并運動。
控制器使用CONNFRAME指令建立逆解模式,此指令作用在關節軸上,此時只能操作虛擬軸,對虛擬軸發送運動指令,可以在笛卡爾坐標系中做直線,圓弧,空間圓弧等運動,關節軸在CONNFRAME的作用下會自動運動到逆解后的位置。
02 機械手指令
實現指令:CONNFRAME--建立逆解連接
描述:將當前關節坐標系的目標位置與虛擬坐標系的位置關聯;關節坐標系的運動最大速度受SPEED參數的限制;當關節軸告警等出錯時,此運動會被CANCEL。
語法:CONNFRAME(frame,tablenum,viraxis0,viraxis1)
frame:坐標系類型,1-scara,(如需針對特殊的機械手類型定制,請聯系廠家)。
tablenum:存儲轉換參數的TABLE位置,frame=1時,以此存放:第一個關節軸長度,第二個關節軸長度,第一個關節軸一圈脈沖數,第二個關節軸一圈脈沖數。
viraxis0:虛擬坐標系第一個軸
viraxis1:虛擬坐標系第二個軸
實現指令:CONNREFRAME--建立正解連接
描述:將虛擬軸的坐標與關節軸的坐標關聯,關節軸運動后,虛擬軸自動走到相應的位置。
語法:CONNREFRAME(frame,tablenum,viraxis0,viraxis1)
frame: 坐標系類型, 1- scara,(如需針對特殊的機械手類型定制,請聯系廠家)。
tablenum: 存儲轉換參數的TABLE位置,frame=1時,以此存放:第一個關節軸長度,第二個關節軸長度,第一個關節軸一圈脈沖數,第二個關節軸一圈脈沖數。
axis0:關節坐標系第一個軸
axis1:關節坐標系第二個軸
FRAME描述:Frame = 1,SCARA,如下圖,旋轉軸為關節軸,末端對應位置為虛擬的位置。
03 機械手使用操作步驟
1)確認電機轉向是否正確。
電機方向及角度范圍定義,各關節電機正向如下圖藍色箭頭所示。
2)確認機械手各關節軸對應到控制器指令參數的軸次序。
選擇各個關節軸軸號和對應的虛擬軸軸號。
3) TABLE中設置好機械結構相關參數。
建立機械手連接時,需要將機械結構參數按照如下次序依次填寫到 TABLE數組中。
4)設置關節軸參數及虛擬軸參數
各軸的軸類型和脈沖當量要設置正確。機械手的所有虛擬軸和關節軸的長度單位要求統一,一般都是 mm單位。
虛擬軸的UNITS跟實際發送脈沖數無關,用于設置運動精度,虛擬軸的一個 mm的脈沖數一般建議設置為1000,表示精度為小數點后3位。
5)移動各關節軸到規定的零點位置。
機械手算法建立時,需要有個零點位置作為參考,同時需要確定好電機轉向。
SCARA的零點位置為兩個關節軸的零點時成一條直線,此時指向虛擬 X 軸的正向。
坐標方向:當關節軸為0零點的位置時,虛擬軸零點的坐標為(L1+L2,0),上下伸縮軸零點位置無特殊要求。
建立逆解連接之后虛擬軸的DPOS坐標自動校正為(L1+L2,0)。
6)使用CONNREFARME指令建立正解模式。
正解模式:
BASE(Viraxis_x, Viraxis_y, [Viraxis_v] [,Viraxis_z])
CONNREFRAME(1,tablenum, Axis_a,Axis_b[, Axis_c][,Axis_d])
建立成功后,虛擬軸MTYPE將顯示為34,IDLE顯示為0。此時只能操作關節軸在關節坐標系中運動,虛擬軸會自動計算末端工作點位于直角坐標系中的位置。
7)操作關節軸調整機械手姿態,確認在運動中不會發生干涉(某些結構只有一個姿態)。
機械手姿態在數學上來說,是同一組虛擬軸數值有多組關節軸的解。即機械手在笛卡爾坐標系中運動到某一坐標點A,可以有多種運動軌跡,這些運動軌跡就對應著不同姿態。
SCARA機械手有兩個姿態,左手姿態和右手姿態,只可在正解模式下移動關節軸選擇。
當前姿態通過指令FRAME_STATUS指令查詢。
在逆解模式下運行時,由于機械結構的問題,會產生無法運動到某一位置或剛體干涉的問題,此時就需要進行姿態的調整。
機械手姿態只能在正解模式下操作關節軸進行調整。
8)使用 CONNFARME 指令切換為逆解模式。
逆解模式:
BASE(Axis_a, Axis_b [,Axis_c] [,Axis_d])
CONNFRAME(1,tablenum, Viraxis_x, Viraxis_y, [Viraxis_v] [,Viraxis_z]) WAIT LOADED
建立成功后,關節軸 MTYPE 將顯示為 33,IDLE 顯示為 0。此時只能操作虛擬軸在直角坐標系中運動,關節軸會自動計算在關節坐標系中如何聯合運動。
9) 選擇虛擬軸,發送運動指令使用。
BASE(Viraxis_x, Viraxis_y[,Viraxis_v] [,Viraxis_z])
MOVE(dis_x, dis_y [,dis_v] [,dis_z])
04 應用例程
例如在某自動焊接設備上加工如下圖所示的工件,SCARA機械手的2個關節軸L1、L2長均為250,需要焊接的軌跡為跑道型,1為初始零點,此時關節軸坐標為(0,0),虛擬軸坐標為(500,0)。
由零點運動到起始加工點,在運動第2段時需要起焊,關節軸先回到起始位置然后運動到工件上方同時Z軸下降,打開起焊IO,延時50ms(因為焊接的液體打開需要一定時間,否則起始點處會漏焊),然后按軌跡運行。完成跑道焊接后IO關閉,Z軸上升。
加工指令代碼:
BASE(6,7,8) '啟動逆解連接后,使用運動指令控制虛擬軸運行
MOVEABS(300,0,20) '第1段直線,從零點(500,0,0)運動到(300,0,20)
MOVE_OP(0,1) '打開起焊IO
MOVE_DELAY(50) '延時50ms
MOVEABS(300,100,20) '第2段直線,從起始焊接點(300,0,20)運動到(300,100,20)
MOVECIRCABS(200,100,250,100,0) '第3段圓弧,(300,100,20)運動到(200,100,20)
MOVEABS(200,-100,20) '第4段直線,從(200,100,20)運動到(200,-100,20)
MOVECIRCABS(300,-100,250,-100,0) '第5段圓弧,(200,-100,20)運動到(300,-100,20)
MOVEABS(300,0,20) '第6段直線,從(300,-100,20)運動到(300,0,20)
MOVE_OP(0,0) '加工完成,關閉IO
MOVEABS(300,0,50) 'Z軸上升
示波器采樣軌跡:
SCARA機械手應用例程如下:
'**********電機、機械手參數定義**********
DIM L1 '大臂長度
DIM L2 '小臂長度
DIM L3 'X方向偏移
DIM ZDis '旋轉軸一圈,z軸移動距離
L1=250
L2=250
L3=0
ZDis=0
DIM u_m1 '電機1一圈脈沖數
DIM u_m2 '電機2一圈脈沖數
DIM u_mz '電機z一圈脈沖數
DIM u_mv '電機v一圈脈沖數
u_m1=3600
u_m2=3600
u_mz=3600
u_mv=3600
DIM i_1 '關節1傳動比
DIM i_2 '關節2傳動比
DIM i_z '關節z傳動比
DIM i_v '關節v傳動比
i_1=2
i_2=2
i_z=2
i_v=2
DIM u_j1 '關節1實際一圈脈沖數
DIM u_j2 '關節2實際一圈脈沖數
DIM u_jz '關節z實際一圈脈沖數
DIM u_jv '關節v實際一圈脈沖數
u_j1=u_m1*i_1
u_j2=u_m2*i_2
u_jz=u_mz*i_z
u_jv=u_mv*i_v
DIM p_z 'z軸螺距
p_z=1.5
'*************關節軸設置*************
BASE(0,1,2,3) '選擇關節軸號
ATYPE=1,1,1,1 '軸類型設為脈沖軸
UNITS=u_j1/360,u_j2/360,u_jv/360,u_jz/p_z '把z軸units設成1mm的脈沖數,其余軸設成1°的脈沖數
DPOS=0,0,0,0 '設置關節軸的位置,此處要根據實際情況來修改。
SPEED=100,100,100,100 '速度參數設置
ACCEL=1000,1000,1000,1000
DECEL=1000,1000,1000,1000
CLUTCH_RATE=0,0,0,0 '使用關節軸的速度和加速度限制
'*************虛擬軸設置*************
BASE(6,7,8,9)
ATYPE=0,0,0,0 '設置為虛擬軸
TABLE(0,L1,L2,u_j1,u_j2,u_jv, L3,ZDis) '根據手冊說明填寫參數
UNITS=1000,1000 ,u_jv/360,1000 '運動精度,要提前設置,中途不能變化
SPEED=200,200,200,200 '速度參數設置
ACCEL=1000,1000,1000,1000
DECEL=1000,1000,1000,1000
SRAMP=100,100,100,100 'S曲線
MERGE=ON '開啟連續插補
CORNER_MODE=2 '啟動拐角減速
DECEL_ANGLE=15*(PI/180) '開始減速的角度 15度
STOP_ANGLE=45*(PI/180)'降到最低速度的角度45度
'*************建立機械手連接*************
WHILE 1
IF SCAN_EVENT(IN(0))>0 THEN '輸入0上升沿觸發
'建立正解,操作關節軸調整機械手姿態
BASE(6,7,8,9) '選擇虛擬軸號
CONNREFRAME(1,0,0,1,2,3) '第0/1軸作為關節軸,啟動正解連接。
WAIT LOADED '等待運動加載
?"正解模式"
ELSEIF SCAN_EVENT(IN(0))<0 THEN '輸入0下降沿觸發
'建立逆解,操作虛擬軸運行加工程序
BASE(0,1,2,3) '選擇關節軸號
CONNFRAME(1,0,6,7,8,9) '第6/7軸作為虛擬的XY軸,啟動逆解連接。
WAIT LOADED '等待運動加載,此時會自動調整虛擬軸的位置。
?"逆解模式"
BASE(6,7,8) '啟動逆解連接后,使用運動指令控制虛擬軸運行
TRIGGER
MOVEABS(300,0,20) '第1段直線,從零點(500,0,0)運動到(300,0,20)
MOVE_OP(0,1) '打開起焊IO
MOVE_DELAY(50) '延時50ms
MOVEABS(300,100,20) '第2段直線,從起始焊接點(300,0,20)運動到(300,100,20)
MOVECIRCABS(200,100,250,100,0) '第3段圓弧,(300,100,20)運動到(200,100,20)
MOVEABS(200,-100,20) '第4段直線,從(200,100,20)運動到(200,-100,20)
MOVECIRCABS(300,-100,250,-100,0) '第5段圓弧,(200,-100,20)運動到(300,-100,20)
MOVEABS(300,0,20) '第6段直線,從(300,-100,20)運動到(300,0,20)
MOVE_OP(0,0) '加工完成,關閉IO
MOVEABS(300,0,50) 'Z軸上升
ENDIF
WEND
05 機械手仿真軟件
將程序下載到控制器運行,建立正解或逆解連接之后,打開正運動機械手仿真軟件ZRobotView,點擊“連接”彈出下方窗口,選擇控制器IP,沒有控制器可連接到仿真器查看效果。
選擇控制器IP之后連接即可顯示出如下機械手模型,此時可運行運動指令或手動調試,查看機械手的運行情況。
《ZMC運動控制器SCARA機械手應用快速入門》就講到這里。更多學習視頻及圖文詳解請關注我們的公眾號“正運動小助手”。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
-
運動控制器
+關注
關注
2文章
393瀏覽量
24653 -
運動控制
+關注
關注
4文章
565瀏覽量
32825 -
SCARA
+關注
關注
0文章
50瀏覽量
13323 -
正運動技術
+關注
關注
0文章
96瀏覽量
326
發布評論請先 登錄
相關推薦
評論