01 總線驅(qū)動(dòng)器回零模式
正運(yùn)動(dòng)控制器提供自己的回零模式,也支持使用EtherCAT總線驅(qū)動(dòng)器提供的回零模式,或RTEX總線驅(qū)動(dòng)器的提供的回零模式,均可使用DATUM指令實(shí)現(xiàn)回零,但采用的回零模式和配置方法與控制器提供的回零方式有所區(qū)別。
以上兩類總線驅(qū)動(dòng)器回零模式采用21,回零模式由總線驅(qū)動(dòng)器提供,參見驅(qū)動(dòng)器手冊說明。
語法:DATUM(21,驅(qū)動(dòng)器提供的回零模式) 總線驅(qū)動(dòng)器回零時(shí),除了模式需要采用驅(qū)動(dòng)器提供的,原點(diǎn)開關(guān)、正/負(fù)限位開關(guān)需要接入驅(qū)動(dòng)器的IO端子上,一般驅(qū)動(dòng)器IO端子有指定的HOME、POT,NOT用于回零,引腳需查看驅(qū)動(dòng)器手冊說明。
1.EtherCAT總線驅(qū)動(dòng)器
可使用EtherCAT總線驅(qū)動(dòng)器回零功能,DATUM(21,mode2),此時(shí)mode2有效,mode2為EtherCAT總線驅(qū)動(dòng)器6098h提供的原點(diǎn)回歸模式。
使用此模式需要參考驅(qū)動(dòng)器手冊的說明,找到手冊對應(yīng)的章節(jié),如上圖,配置驅(qū)動(dòng)器回零PDO所需要的功能,按照驅(qū)動(dòng)器手冊提供的信號接線方式完成開關(guān)信號的接線,將原點(diǎn)和正/負(fù)限位信號接在驅(qū)動(dòng)器IO指定的HOME、POT,NOT端子上,等待DATUM觸發(fā)回零即可。
示例:初始化完成后再運(yùn)行驅(qū)動(dòng)器回零程序。
BASE(iAxis) '按驅(qū)動(dòng)器軸號逐個(gè)回零 AXIS_STOPREASON = 0 SPEED = 100 '回零速度 CREEP = 10 '反找速度 ACCEL = 1000 DATUM(21,2) '驅(qū)動(dòng)器回零模式value=2 WAIT IDLE IF AXIS_STOPREASON = 0 THEN ?"回零成功" ELSE ?"回零失敗" ,"停止原因:",AXIS_STOPREASON,"狀態(tài)字0X",HEX(DRIVE_STATUS) ENDIF
2.RTEX總線驅(qū)動(dòng)器
此模式下可使用RTEX總線驅(qū)動(dòng)器回零功能,此時(shí)mode2有效,回零模式查看驅(qū)動(dòng)器手冊即可(如下表)。 使用此模式原點(diǎn)和正負(fù)限位信號接在驅(qū)動(dòng)器指定IO上,等待DATUM觸發(fā)回零即可。
初始化模式 | 11h | Z相 |
12h | HOME↑*2 | |
13h | HOME↓*3 | |
14h | POT↑*2 | |
15h | POT↓*3 | |
16h | NOT↑*2 | |
17h | NOT↓*3 | |
18h | EXT1↑*2 | |
19h | EXT1↓*3 | |
1Ah | EXT2↑*2 | |
1Bh | EXT2↓*3 | |
1Ch | EXT3↑*2 | |
1Dh | EXT3↓*3 |
02 EtherCAT總線驅(qū)動(dòng)器回零方式
使用EtherCAT總線驅(qū)動(dòng)器提供的回零,需要將原點(diǎn)信號接入驅(qū)動(dòng)器指定IO上,不同的廠商的使用要求略有差異,需要閱讀驅(qū)動(dòng)器手冊之后再進(jìn)行配置。
參考步驟如下:
1.硬件接線:以下以某個(gè)驅(qū)動(dòng)器為例,將原點(diǎn)等信號接入下圖指定引腳即可,無需映射,并且按要求給驅(qū)動(dòng)器的IO端子供電。
使用控制器OP輸出模擬IO信號輸入,控制器OUT0口接到驅(qū)動(dòng)器控制端子8引腳,模擬原點(diǎn)信號,控制器OUT6口接到驅(qū)動(dòng)器控制端子9引腳,模擬負(fù)限位信號,控制器OUT5口接到驅(qū)動(dòng)器控制端子10引腳,模擬正限位信號。
2.驅(qū)動(dòng)器配置要求:根據(jù)驅(qū)動(dòng)器手冊說明配置回零所需要的功能,例如下方配置說明中,6040h和6041是必須模式,其他模式均為選配,故DRIVE_PROFILE配置驅(qū)動(dòng)器PDO時(shí),需要包含必須模式才可完成回零操作。
3.總線初始化:運(yùn)動(dòng)下方初始化模板程序,合理配置DRIVE_PROFILE,使能總線驅(qū)動(dòng)器。
4.驅(qū)動(dòng)器回零:初始化成功方可執(zhí)行回零程序,設(shè)置合理的總線軸參數(shù),配置回零的找原點(diǎn)速度SPEED和反找速度CREEP,發(fā)送DATUM(21,mode2)驅(qū)動(dòng)器開始找原點(diǎn)運(yùn)動(dòng),例程使用模式如下,回零成功停止運(yùn)動(dòng),DPOS和MPOS自動(dòng)清零。
程序分為兩部分執(zhí)行,先總線初始化,再回零。
1.總線初始化參考程序:
'*******************************************************ECAT總線初始化 global CONST BUS_TYPE = 0 '總線類型。可用于上位機(jī)區(qū)分當(dāng)前總線類型 global CONST MAX_AXISNUM = 16 '最大軸數(shù) global CONST Bus_Slot = 0 '槽位號0(單總線控制器缺省0) global CONST PUL_AxisStart = 0 '本地脈沖軸起始軸號 global CONST PUL_AxisNum = 0 '本地脈沖軸軸數(shù)量 global CONST Bus_AxisStart = 0 '總線軸起始軸號 global CONST Bus_NodeNum = 1 '總線配置節(jié)點(diǎn)數(shù)量,用于判斷實(shí)際檢測到的從站數(shù)量是否一致 global Bus_InitStatus '總線初始化完成狀態(tài) Bus_InitStatus = -1 global Bus_TotalAxisnum '檢查掃描的總軸數(shù) delay(3000) '延時(shí)3S等待驅(qū)動(dòng)器上電,不同驅(qū)動(dòng)器自身上電時(shí)間不同,具體根據(jù)驅(qū)動(dòng)器調(diào)整延時(shí) ?"總線通訊周期:",SERVO_PERIOD,"us" Ecat_Init() '初始化ECAT總線 while (Bus_InitStatus = 0) Ecat_Init() wend end '***************************ECAT總線初始化***************************** '初始流程: slot_scan(掃描總線) -> 從站節(jié)點(diǎn)映射軸/io -> SLOT_START(啟動(dòng)總線) -> 初始化成功 '********************************************************************** global sub Ecat_Init() local Node_Num,Temp_Axis,Drive_Vender,Drive_Device,Drive_Alias RAPIDSTOP(2) for i=0 to MAX_AXISNUM - 1 '初始化還原軸類型 AXIS_ENABLE(i) = 0 atype(i)=0 AXIS_ADDRESS(i) =0 DELAY(10) '防止所有驅(qū)動(dòng)器全部同時(shí)切換使能導(dǎo)致瞬間電流過大 next Bus_InitStatus = -1 Bus_TotalAxisnum = 0 SLOT_STOP(Bus_Slot) delay(200) slot_scan(Bus_Slot) '掃描總線 if return then ?"總線掃描成功","連接從站設(shè)備數(shù):"NODE_COUNT(Bus_Slot) if NODE_COUNT(Bus_Slot) <> Bus_NodeNum then '判斷總線檢測數(shù)量是否為實(shí)際接線數(shù)量 ?"" ?"掃描節(jié)點(diǎn)數(shù)量與程序配置數(shù)量不一致!" ,"配置數(shù)量:"Bus_NodeNum,"檢測數(shù)量:"NODE_COUNT(Bus_Slot) Bus_InitStatus = 0 '初始化失敗。報(bào)警提示 return endif '"開始映射軸號" for Node_Num=0 to NODE_COUNT(Bus_Slot)-1'遍歷掃描到的所有從站節(jié)點(diǎn) Drive_Vender = NODE_INFO(Bus_Slot,Node_Num,0) '讀取驅(qū)動(dòng)器廠商 Drive_Device = NODE_INFO(Bus_Slot,Node_Num,1) '讀取設(shè)備編號 Drive_Alias=NODE_INFO(Bus_Slot,Node_Num,3)'讀取設(shè)備撥碼ID if NODE_AXIS_COUNT(Bus_Slot,Node_Num) <> 0 the '判斷當(dāng)前節(jié)點(diǎn)是否有電機(jī) for j=0 to NODE_AXIS_COUNT(Bus_Slot,Node_Num)-1 '根據(jù)節(jié)點(diǎn)帶的電機(jī)數(shù)量循環(huán)配置軸參數(shù)(針對一拖多驅(qū)動(dòng)器) Temp_Axis = Bus_AxisStart + Bus_TotalAxisnum '軸號按NODE順序分配 'Temp_Axis = Drive_Alias '軸號按驅(qū)動(dòng)器設(shè)定的撥碼分配(一拖多需要特殊處理) base(Temp_Axis) AXIS_ADDRESS= Bus_TotalAxisnum+1 '映射軸號 ATYPE=65 '設(shè)置控制模式 65-位置 66-速度 67-轉(zhuǎn)矩 DRIVE_PROFILE = 1 disable_group(Temp_Axis) '每軸單獨(dú)分組 Bus_TotalAxisnum=Bus_TotalAxisnum+1 '總軸數(shù)+1 next endif next ?"軸號映射完成","連接總軸數(shù):"Bus_TotalAxisnum DELAY200 SLOT_START(Bus_Slot) '啟動(dòng)總線 ifreturnthen wdog=1'使能總開關(guān) '?"開始清除驅(qū)動(dòng)器錯(cuò)誤" for i= Bus_AxisStart to Bus_AxisStart + Bus_TotalAxisnum - 1 BASE(i) DRIVE_CLEAR(0) DELAY50 '?"驅(qū)動(dòng)器錯(cuò)誤清除完成" datum(0) '清除控制器軸狀態(tài)錯(cuò)誤" DELAY100 '"軸使能" AXIS_ENABLE=1 next Bus_InitStatus = 1 ?"軸使能完成" '本地脈沖軸配置 for i = 0 to PUL_AxisNum - 1 base(PUL_AxisStart + i) AXIS_ADDRESS = (-1<<16) + i ????????????????ATYPE?=?4 next ?"總線開啟成功" run "Basic1",1 '開啟回零任務(wù) else ?"總線開啟失敗" Bus_InitStatus = 0 endif else ?"總線掃描失敗" Bus_InitStatus = 0 endif end sub
2.驅(qū)動(dòng)器回零程序:
?"開始回零" TABLE(0)=0 BASE(0) UNITS=(8388608/360) '脈沖當(dāng)量 SPEED=50 '找原點(diǎn)速度 CREEP=10 '反找速度 ACCEL=1000 DECEL=1000 DELAY(100) DATUM(21,19) '開始回零,模式19 WHILE 1 WAIT IDLE TABLE(0)=DRIVE_STATUS '讀取6041h狀態(tài)字判斷回零狀態(tài) IF READ_BIT2(15,TABLE(0)) THEN ?"回零完成" EXIT WHILE ENDIF WEND END示波器采用回零成功波形如下:采用模式19,采用OP模擬原點(diǎn)信號,驅(qū)動(dòng)器感應(yīng)到原點(diǎn)后低速反找,離開原點(diǎn)時(shí)停止運(yùn)動(dòng),清空位置信息。
回零時(shí)碰到限位開關(guān)停止運(yùn)動(dòng),AXISSTATUS軸狀態(tài)顯示40h正在回零中,回零完成狀態(tài)為0h。
本次,正運(yùn)動(dòng)技術(shù)EtherCAT與RTEX驅(qū)動(dòng)器軸回零的配置與實(shí)現(xiàn),就分享到這里。
審核編輯:劉清
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
52文章
8099瀏覽量
145816 -
運(yùn)動(dòng)控制器
+關(guān)注
關(guān)注
2文章
390瀏覽量
24626 -
ethercat
+關(guān)注
關(guān)注
18文章
633瀏覽量
38544
原文標(biāo)題:EtherCAT與RTEX驅(qū)動(dòng)器軸回零的配置與實(shí)現(xiàn)
文章出處:【微信號:伺服與運(yùn)動(dòng)控制,微信公眾號:伺服與運(yùn)動(dòng)控制】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論