KUKA電伺服機器人焊點位置補償示意圖:
GLOBALDEFInitialize(TEACH_POS:IN,cont:IN)初始化
初始化示教位置
DECLE6PosTEACH_POS
DECLSG_Cont_Tcont
CONTINUE
$ADVANCE=3
SG_ExtaxActive=ServoGun[SG_ActiveGunNumber].ExtAxNumber
SG_ActiveWeldTimer=ServoGun[SG_ActiveGunNumber].WeldTimerIndex
bckupSetSG_AxVal()
–獲得當前點的外部軸速度加速度—逼近$和提前運行$RED_VEL
SGE_InitErrorHandler()
IF(ServoGun[SG_ActiveGunNumber].ExtAxNumber0)then
SGA_SensorReset()
ENDIF
;------初始化點-----------
P_Part=SGL_CALC_POS(TEACH_POS,ServoGun[SG_ActiveGunNumber].TipCorrection,0)----獲得焊接點位置
P_Approx=P_Part位置轉移/傳輸
P_Forcelim=P_Part位置轉移/傳輸
P_Pressure=P_Part
P_Weld=P_Part焊接位置
P_Ret=P_Part
SG_SpotHelper=P_Part
SG_PartPos=SGL_GET_AXIS_VALUE(TEACH_POS);力模式下可能的極板接觸位置
END;
GLOBALDEFFCTE6POSSGL_CALC_POS(CURRENT_POS:IN,TipCorrection:IN,TouchDiff:IN)
分揀機器人缺點TouchDiff=0執行焊接時
CURRENT_POS=TEACH_POS
TipCorrection=ServoGun[SG_ActiveGunNumber].TipCorrection=true電極校正
SGL_CALC_START_POS
REALTouchDiff,wearflex,wearfix,TouchOffset
E6POSCURRENT_POS,RETURNED_POS
BOOLTipCorrection
IF(TipCorrection)THENTipCorrection=true電極校正
wearflex=SG_WearFlex[SG_ActiveGunNumber]+SG_TipSeating_mm[SG_ActiveGunNumber]
wearflex彎曲磨損量由銑削后測量出來,SG_TipSeating_mm[1]電極坐值
wearfix=SG_WearFix[SG_ActiveGunNumber]+(SG_TipSeating_mm[SG_ActiveGunNumber]/2)
wearfix磨損修復由銑削后測量出來
ELSE---沒有使用校正
wearflex=0.0
wearfix=0.0
ENDIF
X方向的補償改變坐標–使用BASE坐標
SG_Helpframe=SGL_CALC_TCP_POS(TouchDiff,wearfix)---計算位置值
RETURNED_POS=CURRENT_POS:SG_Helpframe-----補償值X方向的坐標
轉移外部軸和S,T坐標值,用來沒有激活外部軸時
RETURNED_=CURRENT_
RETURNED_=CURRENT_
RETURNED_=CURRENT_
RETURNED_=CURRENT_
RETURNED_=CURRENT_
RETURNED_=CURRENT_
教育用分揀機器人RETURNED_=CURRENT_
RETURNED_=CURRENT_
TouchOffset=(wearflex+wearfix-TouchDiff)*SG_ClosingAxDir
計算偏差值
SG_ClosingAxDir=-1
TouchDiff=0執行焊接時
Wearflex彎曲磨損
Wearfix電極磨損
改變補償焊接點的外部軸E1
SWITCHSG_ExtaxActiveSG_ExtaxActive=1
Case1
RETURNED_=CURRENT_+TouchOffset
Case2
RETURNED_=CURRENT_+TouchOffset
Case3
RETURNED_=CURRENT_+TouchOffset
Case4
RETURNED_=CURRENT_+TouchOffset
Case5
RETURNED_=CURRENT_+TouchOffset
Case6
RETURNED_=CURRENT_+TouchOffset
ENDSWITCH
RETURN(RETURNED_POS)反饋返回坐標值
ENDFCT;
GLOBALDEFFCTE6POSSGL_CALC_TCP_POS(touchDiff:IN,wearFix:IN)
計算補償值touchDiff=0,wearFix電極磨損
SGL_CALC_TCP_START_POS
REALtouchDiff,wearFix
E6POSRETURN_HELPFRAME
DECLSG_DIRECTIONTYP_TrealDirectio
RETURN_HELPFRAME=$NULLFRAME坐標清0
realDirection=ServoGun[SG_ActiveGunNumber].GunDirection
GunDirection#PX--槍移動方向
IF((FDAT__FRAME==#TCP)ANDSG_RevFixedGunDirection)THEN
--------------FDAT__FRAME=#BASE所以此IF語句暫時不執行-------
realDirection=SG_RevToolDirection(ServoGun[SG_ActiveGunNumber].GunDirection)
ENDIF
--------------end---------------------
SWITCHrealDirectionrealDirection=#PX
CASE#NX
RETURN_=-wearFix+touchDiff
CASE#NY
RETURN_=-wearFix+touchDiff
CASE#NZ
RETURN_=-wearFix+touchDiff
CASE#PX----------本次機器人執行的補償數據touchDiff=0
RETURN_=wearFix-touchDiff直接用磨損值來補償X方向
CASE#PY
藥品分揀機器人哪家強RETURN_=wearFix-touchDiff
CASE#PZ
快遞自動分揀機器人設計RETURN_=wearFix-touchDiff
ENDSWITCH
RETURN(RETURN_HELPFRAME)
ENDFCT
自動分揀機器人難嗎無人分揀機器人垃圾分揀機器人的構成