ZMC406硬件介紹
ZMC406是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。
ZMC406支持6軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC406支持PLC、Basic、HMI組態三種編程方式。PC上位機API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
ZMC406支持6軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和12路輸出口,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。
此類運動控制器與PCI運動控制卡相比具有如下優點:
(1)不使用插槽,穩定性更好;
(3)控制器直接做接線板使用,節省空間;
(4)控制器上可以并行運行程序,與PC只需要簡單交互,降低PC軟件的復雜性等優勢。
ZMC控制器通過RTSys開發環境來調試,RTSys是一個方便的編程、編譯和調試環境。RTSys可以通過串口、以太網、PCI和LOCAL與控制器建立連接。應用程序可以使用VC,VB,VS,C++Builder,C#等軟件來開發。調試時可以把RTSys軟件同時連接到控制器,程序運行時需要動態庫zmotion.dll。
Delta機械手支持3-4軸,關節軸1+關節軸2+關節軸3+[末端旋轉軸4]。后綴帶R的控制器支持Delta機械手功能,例如ZMC406R。
ZMC406R可以采用脫機的方式將編輯好的程序下載到控制器上,可利用觸摸屏示教的方式編輯想要運動的軌跡。也可以用PC API函數調用方式或者實時發送指令操作,在PC上位機C#,C++,Labview,Python等語言來開發Delta機械手的應用。
??? 機械手相關概念
1、關節軸與虛擬軸
(1)關節軸:是指實際機械結構中的旋轉關節,在程序中一般顯示旋轉角度(某些結構也是平移軸)。由于電機與旋轉關節會存在減速比,所以設置脈沖當量UNITS(電機走1mm或者1°需要的脈沖數)時要按照實際關節旋轉一圈來設置,同時TABLE中填寫結構參數時也要按照旋轉關節中心計算,而不是按照電機軸中心計算。
(2)虛擬軸:不是實際存在的,抽象為世界坐標系的6個自由度,依次為X、Y、Z、RX、RY、RZ。可以理解為直角坐標系的三個直線軸和三個旋轉軸,用來確定機械手末端工作點的加工軌跡與坐標。
2、正解運動與逆解運動
(1)正解運動:通過操作關節坐標,再根據機械結構參數可以計算出末端位置在直角坐標系的空間位置,這個過程稱為正解運動。此時操作的是實際關節軸,虛擬軸自動計算坐標。此時只能操作關節軸運動,正解模式一般用于手動調整關節位置或上電點位回零。
(2)逆解運動:給定一個直角坐標系中的空間位置,反推出各關節軸坐標,這個過程稱為逆解運動。此時操作的是虛擬軸,實際關節軸自動解算坐標并運動。控制器使用CONNFRAME指令建立逆解模式,此指令作用在關節軸上,此時只能操作虛擬軸,對虛擬軸發送運動指令,可以在笛卡爾坐標系中做直線,圓弧,空間圓弧等運動,關節軸在CONNFRAME的作用下會自動運動到逆解后的位置。
??? 機械手使用操作步驟
1、確認電機轉向是否正確。
3個關節軸向下旋轉時為正向。末端旋轉軸逆時針旋轉為正向(俯視)。
連接上機械手仿真工具,通過Rtsys軟件菜單欄的【工具】-【手動運動】,以較小的速度分別操作3個關節軸移動,觀察各個關節軸下桿移動過程中是否趨向末端工作點,若是則說明電機轉向是正確的。
2、TABLE寄存器(控制器上電后自動生成)依次存入機械手結構參數。
建立機械手連接時,需要將機械結構參數按照如下次序依次填寫到TABLE數組中。Delta機械手FRAME12模型機械結構參數說明如下。
‘從TableNum編號開始依次機械手結構參數上間距半徑、下間距半徑、上桿長度、下桿長度、第一個關節軸旋轉一圈的脈沖數、第二個關節軸旋轉一圈的脈沖數、第三個關節軸旋轉一圈的脈沖數、末端與下面中心點的X偏移、末端與下面中心點的Y偏移、末端與下面中心點的Z偏移、第四個關節軸旋轉一圈的脈沖數到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、設置關節軸參數及虛擬軸參數。
各軸的軸類型和脈沖當量(units)要設置正確,設置為電機走1°需要的脈沖數。虛擬軸的units跟實際發送脈沖數無關,用于設置運動精度,虛擬軸的1mm的脈沖數一般建議設置為1000,表示精度為小數點后3位。
'關節軸設置 BASE(Axis_JList(0),Axis_JList(1),Axis_JList(2),Axis_JList(3)) '脈沖軸類型設置為1。若是總線軸類型,可設置為65 ATYPE = 1,1,1,1 UNITS = UnitsJList(0),UnitsJList(1),UnitsJList(2),UnitsJList(3) '設置關節軸速度、加速度(一般設置為速度的10倍)、減速度(一般設置為速度的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) '虛擬軸設置 BASE(Axis_VList(0),Axis_VList(1),Axis_VList(2)) '虛擬軸軸類型設置為0 ATYPE = 0,0,0 '虛擬軸脈沖當量設置為1000--表示精度為小數點后3位 UNITS = 1000,1000,1000 '設置虛擬軸速度、加速度(一般設置為速度的10倍)、減速度(一般設置為速度的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、移動各關節軸到規定的零點位置。
機械手算法建立時,需要有個零點位置作為參考。當Delta機械手
各關節軸的連桿L1都處于水平位置時,認為是關節零點位置。實際現場機械手機臺
一般有定位銷,沒有定位銷的話可以通過水平儀把連桿L1調整至水平。
5、根據需求建立正解或逆解控制機械手。
??? 機械手指令說明
不同的機械手模型參數是有差異的,可通過“正運動機械手指令手冊說明”(文章末尾掃碼查看),查閱對應的機械手模型參數進行確認選擇。
本文以Delta的FRAME12模型(有末端旋轉軸,使用關節軸操作旋轉軸)為例介紹,機械手正解與逆解的指令說明如下。
1、CONNREFRAME -- 建立正解連接
指令描述:
將虛擬軸的坐標與關節軸的坐標關聯,關節軸運動后,虛擬軸自動走到相應的位置。
指令語法:
CONNREFRAME(frame,tablenum,Axis_J1,Axis_J2,Axis_J3,Axis_J4)
參數說明:
frame:坐標系類型。參考【正運動機械手指令手冊說明】,
frame是12,代表這款機械手模型是4軸Delta且
關節軸操作末端旋轉軸。Tablenum:存儲機械手結構參數的TABLE起始位置,依次存儲對應模型的機械手結構參數。Axis_J1:第1個關節軸軸號Axis_J2:第2個關節軸軸號Axis_J3:第3個關節軸軸號Axis_J4:第4個關節軸軸號
2、CONNFRAME -- 建立逆解連接
指令描述:
將當前關節坐標系的目標位置與虛擬坐標系的位置關聯;關節坐標系的運動最大速度受SPEED參數的限制;當關節軸告警等出錯時,此運動會被CANCEL。
指令語法:
CONNFRAME(frame,tablenum,Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4)
參數說明:
frame:坐標系類型。參考【正運動機械手指令手冊說明】,
frame是12,代表這款機械手模型是4軸Delta且
關節軸操作末端旋轉軸。Tablenum:存儲機械手結構參數的TABLE起始位置,依次存儲對應模型的機械手結構參數。Axis_Vx:第1個虛擬軸軸號Axis_Vy:第2個虛擬軸軸號Axis_Vz:第3個虛擬軸軸號Axis_J4:第4個關節軸軸號
??? Delta機械手模式建立
1、正解建立
以Delta機械手的Frame12模型為例。
先將機械手結構參數從某個Table起始編號依次存儲到Table數組中,然后選擇對應模型的軸列表,使用CONNREFRAME指令建立正解模式。
指令說明可通過Rtsys軟件菜單欄的【常用】-【幫助文檔】-【RTBasic幫助】-【索引】,在查找欄搜索CONNREFRAME即可查看。
'將機械手參數從編號TableNum開始依次存儲到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) '選擇軸列表 BASE(Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4) '建立機械手正解 CONNREFRAME(FrameType,TableNum,Axis_J1,Axis_J2,Axis_J3,Axis_J4)
若機械手正解建立成功,虛擬軸MTYPE(當前運動類型)將顯示為34,此時只能操作關節軸在關節坐標系中調整機械手姿態,手動運動可通過RTSys軟件菜單欄的【工具】-【手動運動】,待【手動運動】界面彈出之后選擇關節軸軸編號(本文關節軸以軸0,軸1,軸2,末端旋轉軸軸3為例),然后根據實際需求選擇點動或者寸動。
虛擬軸會自動計算末端工作點位于直角坐標系中的位置。
2、逆解建立
以Delta機械手的Frame12模型為例。先將機械手結構參數從某個Table起始編號依次存儲到Table數組中,然后選擇對應模型的軸列表,使用CONNFRAME指令建立正解模式。指令說明可通過Rtsys軟件工具欄的【常用】-【幫助文檔】-【RTBasic幫助】-【索引】,在查找欄搜索CONNFRAME查看。
'將機械手參數從編號TableNum開始依次存儲到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) '選擇軸列表 BASE(Axis_J1,Axis_J2,Axis_J3,Axis_J4) '建立機械手逆解 CONNFRAME(FrameType,TableNum,Axis_Vx,Axis_Vy,Axis_Vz,Axis_J4)
若機械手逆解建立成功,關節軸MTYPE(當前運動類型)將顯示為33,【手動運動】界面操作虛擬軸方法同上。此時加工工藝指令只能操作虛擬軸,事先編輯好運動的軌跡在直角坐標系中運動(本文虛擬軸以軸10,軸11,軸12為例),關節軸會自動計算在關節坐標系中如何聯合運動。
??? 程序編輯
RTSys軟件支持Basic,HMI與PLC混合編程,本例程采用Basic結合HMI界面混合編程進行演示。可通過RTSys軟件菜單欄的【HMI】-【工具箱】,選擇控件進行拖拉擺放,設計交互界面。
在本次例程中均先在bas文件中定義全局的SUB子函數,編輯子函數的功能(工程源碼見文章末尾)需求然后使用控件綁定,控件的動作均選擇調用函數。操作流程如下圖。
??? 應用例程
1、需求描述
Delta機械手逆解建立時以零點位置為參考,確定一個安全高度。基本動作為機械手上升到安全高度去固定的取料點上方,然后下降打開Op口通過真空吸的方式去取料,延時抬升到安全高度然后運動到固定的2*2碼盤位置,下降到碼盤位置關閉Op進行放料,然后抬升依次循環直到將碼盤放滿后停止。
2、加工代碼
'啟動標志位置1 StartFlag = 1 LOCAL SafeHigh,i '安全高度 SafeHigh = DPOS(Axis_VList(2))-25 '行,列 LOCAL Row,Col '固定的取料點位置 LOCAL SrcBorrow_X,SrcBorrow_Y,SrcBorrow_Z SrcBorrow_X = 5 SrcBorrow_Y = 5 SrcBorrow_Z = SafeHigh-20 '選擇虛擬軸 BASE(Axis_VList(0),Axis_VList(1),Axis_VList(2)) '設置加工的速度、加速度、減速度 SPEED = SpeedVList(0) ACCEL = AccelV(0) DECEL = DecelV(0) '打開連續插補 MERGE = ON '每次啟動臨時總數清零 TmpSum = 0 '運動到零點位置參考的安全高度 MOVEABS(0,0,SafeHigh) FOR Col=1 TO 2 FOR Row=1 TO 2 '運動到取料點上方 MOVEABS(SrcBorrow_X,SrcBorrow_Y,SafeHigh) '下降到取料點 MOVEABS(SrcBorrow_X,SrcBorrow_Y,SrcBorrow_Z) '打開Op口吸附取料 MOVE_OP(8,ON) '延時 MOVE_DELAY(300) '上升到安全高度 MOVEABS(SrcBorrow_X,SrcBorrow_Y,SafeHigh) '運動到碼盤放料點上方位置 MOVEABS(-5*Row,5*Col,SafeHigh) '下降到碼盤放料點位置 MOVEABS(-5*Row,5*Col,SrcBorrow_Z) '關閉Op口進行放料 MOVE_OP(8,OFF) '延時 MOVE_DELAY(300) '上升到安全高度 MOVEABS(-5*Row,5*Col,SafeHigh) '臨時總數自增 TmpSum = TmpSum+1 NEXT NEXT '等待所有軸停止 WAIT UNTIL IDLE(Axis_VList(0)) AND IDLE(Axis_VList(1)) AND IDLE(Axis_VList(2)) DELAY(10) RAPIDSTOP(2) DELAY(10) '啟動標志位置0 StartFlag = 0
??? 調試分析
1、將程序下載到控制器運行,先后點擊RTSys軟件菜單欄的【工具】-【插件】-【XPLC SCREEN】。
2、待交互界面彈出后,在主界面機械手模式選擇”機械手正解”。
3、建立正解連接之后,打開正運動機械手仿真軟件ZRobotView,點擊“連接”彈出”連接控制器”窗口,然后選擇連接控制器的方式(仿真工具支持串口和網口連接)。這里以網口連接為例,在IP欄選擇控制器的IP然后進行連接。
4、連接成功后,仿真工具上方會顯示當前機械手類別,程序中存入Table中的機械手結構參數仿真工具也可以查看,且構建出相應參數的機械手模型。
5、切換到RTSys編程軟件,先后點擊菜單欄的【常用】-【示波器】。待示波器窗口彈出后選擇XYZ模式,從三維空間觀察動作演示效果。數據源選擇DPOS(規劃位置),數據源編號選擇虛擬軸軸號。示波器參數確認后,先后點擊【停止】-【啟動】-【手動觸發】。
6、切換到交互界面,在主界面機械手模式選擇”機械手逆解”,建立逆解模式。然后點擊“啟動”,進行需求工藝的加工流程。
7、切換到RTSys軟件的示波器界面觀察加工效果,Delta機械手每次來回取放料過程,始終保持在安全高度下進行升降,這樣確保在實際加工的平穩性。
本次,正運動技術EtherCAT運動控制器Delta機械手應用,就分享到這里。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
審核編輯 黃宇
-
運動控制器
+關注
關注
2文章
401瀏覽量
24703 -
機械手
+關注
關注
7文章
335瀏覽量
29634 -
ethercat
+關注
關注
18文章
686瀏覽量
38673 -
正運動技術
+關注
關注
0文章
100瀏覽量
387
發布評論請先 登錄
相關推薦
評論