時(shí)間:2024-05-09 14:34:01來源:深圳市正運(yùn)動技術(shù)有限公司
ZMC406硬件介紹
ZMC406是正運(yùn)動推出的一款多軸高性能EtherCAT總線運(yùn)動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運(yùn)動控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場合。
ZMC406支持6軸運(yùn)動控制,最多可擴(kuò)展至32軸,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC406支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
ZMC406支持6軸運(yùn)動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和12路輸出口,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。
·
此類運(yùn)動控制器與PCI運(yùn)動控制卡相比具有如下優(yōu)點(diǎn):
·
(1)不使用插槽,穩(wěn)定性更好;(2)可以選用MINI電腦或ARM工控電腦,降低整體成本;(3)控制器直接做接線板使用,節(jié)省空間;(4)控制器上可以并行運(yùn)行程序,與PC只需要簡單交互,降低PC軟件的復(fù)雜性等優(yōu)勢。 ZMC控制器通過RTSys開發(fā)環(huán)境來調(diào)試,RTSys是一個(gè)方便的編程、編譯和調(diào)試環(huán)境。RTSys可以通過串口、以太網(wǎng)、PCI和LOCAL與控制器建立連接。應(yīng)用程序可以使用VC,VB,VS,C++Builder,C#等軟件來開發(fā)。調(diào)試時(shí)可以把RTSys軟件同時(shí)連接到控制器,程序運(yùn)行時(shí)需要動態(tài)庫zmotion.dll。Delta機(jī)械手支持3-4軸,關(guān)節(jié)軸1+關(guān)節(jié)軸2+關(guān)節(jié)軸3+[末端旋轉(zhuǎn)軸4]。后綴帶R的控制器支持Delta機(jī)械手功能,例如ZMC406R。ZMC406R可以采用脫機(jī)的方式將編輯好的程序下載到控制器上,可利用觸摸屏示教的方式編輯想要運(yùn)動的軌跡。也可以用PC API函數(shù)調(diào)用方式或者實(shí)時(shí)發(fā)送指令操作,在PC上位機(jī)C#,C++,Labview,Python等語言來開發(fā)Delta機(jī)械手的應(yīng)用。
???
機(jī)械手相關(guān)概念
1、關(guān)節(jié)軸與虛擬軸
(1)關(guān)節(jié)軸:是指實(shí)際機(jī)械結(jié)構(gòu)中的旋轉(zhuǎn)關(guān)節(jié),在程序中一般顯示旋轉(zhuǎn)角度(某些結(jié)構(gòu)也是平移軸)。由于電機(jī)與旋轉(zhuǎn)關(guān)節(jié)會存在減速比,所以設(shè)置脈沖當(dāng)量UNITS(電機(jī)走1mm或者1°需要的脈沖數(shù))時(shí)要按照實(shí)際關(guān)節(jié)旋轉(zhuǎn)一圈來設(shè)置,同時(shí)TABLE中填寫結(jié)構(gòu)參數(shù)時(shí)也要按照旋轉(zhuǎn)關(guān)節(jié)中心計(jì)算,而不是按照電機(jī)軸中心計(jì)算。(2)虛擬軸:不是實(shí)際存在的,抽象為世界坐標(biāo)系的6個(gè)自由度,依次為X、Y、Z、RX、RY、RZ?梢岳斫鉃橹苯亲鴺(biāo)系的三個(gè)直線軸和三個(gè)旋轉(zhuǎn)軸,用來確定機(jī)械手末端工作點(diǎn)的加工軌跡與坐標(biāo)。
2、正解運(yùn)動與逆解運(yùn)動
(1)正解運(yùn)動:通過操作關(guān)節(jié)坐標(biāo),再根據(jù)機(jī)械結(jié)構(gòu)參數(shù)可以計(jì)算出末端位置在直角坐標(biāo)系的空間位置,這個(gè)過程稱為正解運(yùn)動。此時(shí)操作的是實(shí)際關(guān)節(jié)軸,虛擬軸自動計(jì)算坐標(biāo)。此時(shí)只能操作關(guān)節(jié)軸運(yùn)動,正解模式一般用于手動調(diào)整關(guān)節(jié)位置或上電點(diǎn)位回零。(2)逆解運(yùn)動:給定一個(gè)直角坐標(biāo)系中的空間位置,反推出各關(guān)節(jié)軸坐標(biāo),這個(gè)過程稱為逆解運(yùn)動。此時(shí)操作的是虛擬軸,實(shí)際關(guān)節(jié)軸自動解算坐標(biāo)并運(yùn)動。控制器使用CONNFRAME指令建立逆解模式,此指令作用在關(guān)節(jié)軸上,此時(shí)只能操作虛擬軸,對虛擬軸發(fā)送運(yùn)動指令,可以在笛卡爾坐標(biāo)系中做直線,圓弧,空間圓弧等運(yùn)動,關(guān)節(jié)軸在CONNFRAME的作用下會自動運(yùn)動到逆解后的位置。
???
機(jī)械手使用操作步驟
1、確認(rèn)電機(jī)轉(zhuǎn)向是否正確。
3個(gè)關(guān)節(jié)軸向下旋轉(zhuǎn)時(shí)為正向。末端旋轉(zhuǎn)軸逆時(shí)針旋轉(zhuǎn)為正向(俯視)。連接上機(jī)械手仿真工具,通過Rtsys軟件菜單欄的【工具】-【手動運(yùn)動】,以較小的速度分別操作3個(gè)關(guān)節(jié)軸移動,觀察各個(gè)關(guān)節(jié)軸下桿移動過程中是否趨向末端工作點(diǎn),若是則說明電機(jī)轉(zhuǎn)向是正確的。
2、TABLE寄存器(控制器上電后自動生成)依次存入機(jī)械手結(jié)構(gòu)參數(shù)。建立機(jī)械手連接時(shí),需要將機(jī)械結(jié)構(gòu)參數(shù)按照如下次序依次填寫到TABLE數(shù)組中。Delta機(jī)械手FRAME12模型機(jī)械結(jié)構(gòu)參數(shù)說明如下。
·
·
‘從TableNum編號開始依次機(jī)械手結(jié)構(gòu)參數(shù)上間距半徑、下間距半徑、上桿長度、下桿長度、第一個(gè)關(guān)節(jié)軸旋轉(zhuǎn)一圈的脈沖數(shù)、第二個(gè)關(guān)節(jié)軸旋轉(zhuǎn)一圈的脈沖數(shù)、第三個(gè)關(guān)節(jié)軸旋轉(zhuǎn)一圈的脈沖數(shù)、末端與下面中心點(diǎn)的X偏移、末端與下面中心點(diǎn)的Y偏移、末端與下面中心點(diǎn)的Z偏移、第四個(gè)關(guān)節(jié)軸旋轉(zhuǎn)一圈的脈沖數(shù)到Table中。TABLE(TableNum,Top_R,Under_R,Top_L,Under_L,OneCirPules_J1,OneCirPules_J2,OneCirPules_J3,Offset_X,Offset_Y,Offset_Z,OneCirPules_J4)
3、設(shè)置關(guān)節(jié)軸參數(shù)及虛擬軸參數(shù)。
各軸的軸類型和脈沖當(dāng)量(units)要設(shè)置正確,設(shè)置為電機(jī)走1°需要的脈沖數(shù)。虛擬軸的units跟實(shí)際發(fā)送脈沖數(shù)無關(guān),用于設(shè)置運(yùn)動精度,虛擬軸的1mm的脈沖數(shù)一般建議設(shè)置為1000,表示精度為小數(shù)點(diǎn)后3位。
·
·
'關(guān)節(jié)軸設(shè)置BASE(Axis_JList(0),Axis_JList(1),Axis_JList(2),Axis_JList(3))'脈沖軸類型設(shè)置為1。若是總線軸類型,可設(shè)置為65 ATYPE = 1,1,1,1 UNITS = UnitsJList(0),UnitsJList(1),UnitsJList(2),UnitsJList(3)'設(shè)置關(guān)節(jié)軸速度、加速度(一般設(shè)置為速度的10倍)、減速度(一般設(shè)置為速度的10倍)SPEED = SpeedJList(0),SpeedJList(1),SpeedJList(2),SpeedJList(3) ACCEL = ADSpeedJList(0),ADSpeedJList(1),ADSpeedJList(2),ADSpeedJList(3)DECEL = ADSpeedJList(0),ADSpeedJList(1),ADSpeedJList(2),ADSpeedJList(3)'S曲線SRAMP = SrampJ(0),SrampJ(1),SrampJ(2),SrampJ(3)'虛擬軸設(shè)置BASE(Axis_VList(0),Axis_VList(1),Axis_VList(2))'虛擬軸軸類型設(shè)置為0ATYPE = 0,0,0'虛擬軸脈沖當(dāng)量設(shè)置為1000--表示精度為小數(shù)點(diǎn)后3位UNITS = 1000,1000,1000'設(shè)置虛擬軸速度、加速度(一般設(shè)置為速度的10倍)、減速度(一般設(shè)置為速度的10倍)SPEED = SpeedVList(0),SpeedVList(1),SpeedVList(2)ACCEL = AccelV(0),AccelV(1),AccelV(2)DECEL = DecelV(0),DecelV(1),DecelV(2)'S曲線SRAMP = SrampV(0),SrampV(1),SrampV(2)
4、移動各關(guān)節(jié)軸到規(guī)定的零點(diǎn)位置。
機(jī)械手算法建立時(shí),需要有個(gè)零點(diǎn)位置作為參考。當(dāng)Delta機(jī)械手各關(guān)節(jié)軸的連桿L1都處于水平位置時(shí),認(rèn)為是關(guān)節(jié)零點(diǎn)位置。實(shí)際現(xiàn)場機(jī)械手機(jī)臺一般有定位銷,沒有定位銷的話可以通過水平儀把連桿L1調(diào)整至水平。
5、根據(jù)需求建立正解或逆解控制機(jī)械手。
???
機(jī)械手指令說明
不同的機(jī)械手模型參數(shù)是有差異的,可通過“正運(yùn)動機(jī)械手指令手冊說明”(文章末尾掃碼查看),查閱對應(yīng)的機(jī)械手模型參數(shù)進(jìn)行確認(rèn)選擇。本文以Delta的FRAME12模型(有末端旋轉(zhuǎn)軸,使用關(guān)節(jié)軸操作旋轉(zhuǎn)軸)為例介紹,機(jī)械手正解與逆解的指令說明如下。
1、CONNREFRAME -- 建立正解連接指令描述:將虛擬軸的坐標(biāo)與關(guān)節(jié)軸的坐標(biāo)關(guān)聯(lián),關(guān)節(jié)軸運(yùn)動后,虛擬軸自動走到相應(yīng)的位置。指令語法:CONNREFRAME(frame,tablenum,Axis_J1,Axis_J2,Axis_J3,Axis_J4) 參數(shù)說明:frame:坐標(biāo)系類型。參考【正運(yùn)動機(jī)械手指令手冊說明】,frame是12,代表這款機(jī)械手模型是4軸Delta且關(guān)節(jié)軸操作末端旋轉(zhuǎn)軸。Tablenum:存儲機(jī)械手結(jié)構(gòu)參數(shù)的TABLE起始位置,依次存儲對應(yīng)模型的機(jī)械手結(jié)構(gòu)參數(shù)。Axis_J1:第1個(gè)關(guān)節(jié)軸軸號Axis_J2:第2個(gè)關(guān)節(jié)軸軸號Axis_J3:第3個(gè)關(guān)節(jié)軸軸號Axis_J4:第4個(gè)關(guān)節(jié)軸軸號
2、CONNFRAME -- 建立逆解連接
指令描述:將當(dāng)前關(guān)節(jié)坐標(biāo)系的目標(biāo)位置與虛擬坐標(biāo)系的位置關(guān)聯(lián);關(guān)節(jié)坐標(biāo)系的運(yùn)動最大速度受SPEED參數(shù)的限制;當(dāng)關(guān)節(jié)軸告警等出錯時(shí),此運(yùn)動會被CANCEL。指令語法:CONNFRAME(frame,tablenum,Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4) 參數(shù)說明:frame:坐標(biāo)系類型。參考【正運(yùn)動機(jī)械手指令手冊說明】,frame是12,代表這款機(jī)械手模型是4軸Delta且關(guān)節(jié)軸操作末端旋轉(zhuǎn)軸。Tablenum:存儲機(jī)械手結(jié)構(gòu)參數(shù)的TABLE起始位置,依次存儲對應(yīng)模型的機(jī)械手結(jié)構(gòu)參數(shù)。Axis_Vx:第1個(gè)虛擬軸軸號Axis_Vy:第2個(gè)虛擬軸軸號Axis_Vz:第3個(gè)虛擬軸軸號Axis_J4:第4個(gè)關(guān)節(jié)軸軸號
???
Delta機(jī)械手模式建立
1、正解建立
以Delta機(jī)械手的Frame12模型為例。先將機(jī)械手結(jié)構(gòu)參數(shù)從某個(gè)Table起始編號依次存儲到Table數(shù)組中,然后選擇對應(yīng)模型的軸列表,使用CONNREFRAME指令建立正解模式。
指令說明可通過Rtsys軟件菜單欄的【常用】-【幫助文檔】-【RTBasic幫助】-【索引】,在查找欄搜索CONNREFRAME即可查看。
·
·
'將機(jī)械手參數(shù)從編號TableNum開始依次存儲到Table數(shù)組中TABLE(TableNum,Top_R,Under_R,Top_L,Under_L,OneCirPules_J1,OneCirPules_J2,OneCirPules_J3,Offset_X,Offset_Y,Offset_Z,OneCirPules_J4)'選擇軸列表BASE(Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4)'建立機(jī)械手正解CONNREFRAME(FrameType,TableNum,Axis_J1,Axis_J2,Axis_J3,Axis_J4)
若機(jī)械手正解建立成功,虛擬軸MTYPE(當(dāng)前運(yùn)動類型)將顯示為34,此時(shí)只能操作關(guān)節(jié)軸在關(guān)節(jié)坐標(biāo)系中調(diào)整機(jī)械手姿態(tài),手動運(yùn)動可通過RTSys軟件菜單欄的【工具】-【手動運(yùn)動】,待【手動運(yùn)動】界面彈出之后選擇關(guān)節(jié)軸軸編號(本文關(guān)節(jié)軸以軸0,軸1,軸2,末端旋轉(zhuǎn)軸軸3為例),然后根據(jù)實(shí)際需求選擇點(diǎn)動或者寸動。虛擬軸會自動計(jì)算末端工作點(diǎn)位于直角坐標(biāo)系中的位置。
2、逆解建立
以Delta機(jī)械手的Frame12模型為例。先將機(jī)械手結(jié)構(gòu)參數(shù)從某個(gè)Table起始編號依次存儲到Table數(shù)組中,然后選擇對應(yīng)模型的軸列表,使用CONNFRAME指令建立正解模式。指令說明可通過Rtsys軟件工具欄的【常用】-【幫助文檔】-【RTBasic幫助】-【索引】,在查找欄搜索CONNFRAME查看。
·
·
'將機(jī)械手參數(shù)從編號TableNum開始依次存儲到Table數(shù)組中TABLE(TableNum,Top_R,Under_R,Top_L,Under_L,OneCirPules_J1,OneCirPules_J2,OneCirPules_J3,Offset_X,Offset_Y,Offset_Z,OneCirPules_J4)'選擇軸列表BASE(Axis_J1,Axis_J2,Axis_J3,Axis_J4) '建立機(jī)械手逆解CONNFRAME(FrameType,TableNum,Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4)
若機(jī)械手逆解建立成功,關(guān)節(jié)軸MTYPE(當(dāng)前運(yùn)動類型)將顯示為33,【手動運(yùn)動】界面操作虛擬軸方法同上。此時(shí)加工工藝指令只能操作虛擬軸,事先編輯好運(yùn)動的軌跡在直角坐標(biāo)系中運(yùn)動(本文虛擬軸以軸10,軸11,軸12為例),關(guān)節(jié)軸會自動計(jì)算在關(guān)節(jié)坐標(biāo)系中如何聯(lián)合運(yùn)動。
???
程序編輯
RTSys軟件支持Basic,HMI與PLC混合編程,本例程采用Basic結(jié)合HMI界面混合編程進(jìn)行演示?赏ㄟ^RTSys軟件菜單欄的【HMI】-【工具箱】,選擇控件進(jìn)行拖拉擺放,設(shè)計(jì)交互界面。
在本次例程中均先在bas文件中定義全局的SUB子函數(shù),編輯子函數(shù)的功能(工程源碼見文章末尾)需求然后使用控件綁定,控件的動作均選擇調(diào)用函數(shù)。操作流程如下圖。
???
應(yīng)用例程
1、需求描述
Delta機(jī)械手逆解建立時(shí)以零點(diǎn)位置為參考,確定一個(gè)安全高度;緞幼鳛闄C(jī)械手上升到安全高度去固定的取料點(diǎn)上方,然后下降打開Op口通過真空吸的方式去取料,延時(shí)抬升到安全高度然后運(yùn)動到固定的2*2碼盤位置,下降到碼盤位置關(guān)閉Op進(jìn)行放料,然后抬升依次循環(huán)直到將碼盤放滿后停止。
2、加工代碼
·
·
'啟動標(biāo)志位置1StartFlag = 1LOCAL SafeHigh,i'安全高度SafeHigh = DPOS(Axis_VList(2))-25'行,列LOCAL Row,Col'固定的取料點(diǎn)位置LOCAL SrcBorrow_X,SrcBorrow_Y,SrcBorrow_ZSrcBorrow_X = 5SrcBorrow_Y = 5SrcBorrow_Z = SafeHigh-20'選擇虛擬軸BASE(Axis_VList(0),Axis_VList(1),Axis_VList(2))'設(shè)置加工的速度、加速度、減速度SPEED = SpeedVList(0)ACCEL = AccelV(0)DECEL = DecelV(0)'打開連續(xù)插補(bǔ)MERGE = ON'每次啟動臨時(shí)總數(shù)清零TmpSum = 0'運(yùn)動到零點(diǎn)位置參考的安全高度MOVEABS(0,0,SafeHigh)FOR Col=1 TO 2 FOR Row=1 TO 2 '運(yùn)動到取料點(diǎn)上方 MOVEABS(SrcBorrow_X,SrcBorrow_Y,SafeHigh) '下降到取料點(diǎn) MOVEABS(SrcBorrow_X,SrcBorrow_Y,SrcBorrow_Z) '打開Op口吸附取料 MOVE_OP(8,ON) '延時(shí) MOVE_DELAY(300) '上升到安全高度 MOVEABS(SrcBorrow_X,SrcBorrow_Y,SafeHigh) '運(yùn)動到碼盤放料點(diǎn)上方位置 MOVEABS(-5*Row,5*Col,SafeHigh) '下降到碼盤放料點(diǎn)位置 MOVEABS(-5*Row,5*Col,SrcBorrow_Z) '關(guān)閉Op口進(jìn)行放料 MOVE_OP(8,OFF) '延時(shí) MOVE_DELAY(300) '上升到安全高度 MOVEABS(-5*Row,5*Col,SafeHigh) '臨時(shí)總數(shù)自增 TmpSum = TmpSum+1 NEXTNEXT'等待所有軸停止WAIT UNTIL IDLE(Axis_VList(0)) AND IDLE(Axis_VList(1)) AND IDLE(Axis_VList(2))DELAY(10)RAPIDSTOP(2)DELAY(10)'啟動標(biāo)志位置0StartFlag = 0
???
調(diào)試分析
1、將程序下載到控制器運(yùn)行,先后點(diǎn)擊RTSys軟件菜單欄的【工具】-【插件】-【XPLC SCREEN】。
2、待交互界面彈出后,在主界面機(jī)械手模式選擇”機(jī)械手正解”。
3、建立正解連接之后,打開正運(yùn)動機(jī)械手仿真軟件ZRobotView,點(diǎn)擊“連接”彈出”連接控制器”窗口,然后選擇連接控制器的方式(仿真工具支持串口和網(wǎng)口連接)。這里以網(wǎng)口連接為例,在IP欄選擇控制器的IP然后進(jìn)行連接。
4、連接成功后,仿真工具上方會顯示當(dāng)前機(jī)械手類別,程序中存入Table中的機(jī)械手結(jié)構(gòu)參數(shù)仿真工具也可以查看,且構(gòu)建出相應(yīng)參數(shù)的機(jī)械手模型。
5、切換到RTSys編程軟件,先后點(diǎn)擊菜單欄的【常用】-【示波器】。待示波器窗口彈出后選擇XYZ模式,從三維空間觀察動作演示效果。數(shù)據(jù)源選擇DPOS(規(guī)劃位置),數(shù)據(jù)源編號選擇虛擬軸軸號。示波器參數(shù)確認(rèn)后,先后點(diǎn)擊【停止】-【啟動】-【手動觸發(fā)】。
6、切換到交互界面,在主界面機(jī)械手模式選擇”機(jī)械手逆解”,建立逆解模式。然后點(diǎn)擊“啟動”,進(jìn)行需求工藝的加工流程。
7、切換到RTSys軟件的示波器界面觀察加工效果,Delta機(jī)械手每次來回取放料過程,始終保持在安全高度下進(jìn)行升降,這樣確保在實(shí)際加工的平穩(wěn)性。
完整代碼獲取地址
▼
本次,正運(yùn)動技術(shù)EtherCAT運(yùn)動控制器Delta機(jī)械手應(yīng)用,就分享到這里。
更多精彩內(nèi)容請關(guān)注“正運(yùn)動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運(yùn)動技術(shù)銷售工程師:400-089-8936。
本文由正運(yùn)動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。