移動焊鉗到使用力
GLOBALDEF SGM_MOVE_TO_FORCE (FORCE :IN, MovementType:IN, GunClosingReason:IN, SGEQ_ParamSet:IN, SGRS_ParamSet:IN )
力值的給入圖:
聲明變量:
DECL SG_MoveType_TMovementType
DECL ForceMovementType_TGunClosingReason
DECL SGEQg_POINT_T SGEQ_ParamSet
DECLREAL FORCE, SPEED, factor, SavedExValue
DECLINT HANDLE
DECL SGRSg_POINT_T SGRS_ParamSet
聲明結束
進入程序
SG_LogbookCurrent.TargetForce = FORCE
factor = 1.0
IF(SGEQ_ActivePointCond)THEN SGEQ_ActivePointCond=false
說明一下的IF語句里暫時沒有使用
SGEQ_ExpectedTime =SGEQ_TimeExpectedHelper(SGEQ_ParamSet)
SGEQ_SpeedProz = SGEQ_CalcSpeedAndTimes(SGEQ_ExpectedTime)
SPEED = SGEQ_SpeedProz
SGEQ_CurrentParamSet = SGEQ_ParamSet
IF NOT SGEQ_ContactMode THEN
SGEQ_INIT(SGEQ_ParamSet,SGEQ_ExpectedTime)
ENDIF
IF(ServoGun[SG_ActiveGunNumber].GunControl == #Position)THEN
TRIGGERWHENDISTANCE= 1 DELAY= 0 DO SGEQ_Start(SGEQ_CurrentParamSet,SGEQ_ExpectedTime)Prio=-1
ELSE
SavedExValue = SGL_GET_AXIS_VALUE(P_APPROX)
P_APPROX = SGEQ_StartPoint
SGL_SET_AXIS_VALUE(P_APPROX, SavedExValue)
ENDIF
SGL_MoveToPos(SGEQ_StartPoint,SGEQ_StartPoint,#CLS_OPEN,MovementType)
ENDIF
-----------------endif--------------
IF MovementType == #SG_PTP THEN 移動方式是PTP
BAS (#ACC_PTP,100 ) 使用 ACC加速度100%
BAS (#VEL_PTP,100 ) 使用 VEL速度100%
$APO.CPTP=1 使用接近距離
IF(SGEQ_ActivePointCond)THEN SGEQ_ActivePointCond=false
說明一下的IF語句里暫時沒有使用
$VEL_EXTAX[SG_ExtaxActive]= SPEED * factor
IF(ServoGun[SG_ActiveGunNumber].GunControl == #Force)THEN
TRIGGERWHENDISTANCE= 1 DELAY= 0 DO SGEQ_Start(SGEQ_CurrentParamSet,SGEQ_ExpectedTime)Prio=-1
ENDIF
ELSE
IF(GunClosingReason == #SingleWear)THEN
factor = SG_SingleWearSpeedF
$VEL_EXTAX[SG_ExtaxActive]= SG_ConstSpeed * factor
ELSE
$VEL_EXTAX[SG_ExtaxActive]= 100
ENDIF
ENDIF
-------------end-------------------------
---------------if-----------------
IF(GunClosingReason == #Init)THEN
焊接時GunClosingReason =#WELD 測量時GunClosingReason == #Init
PTP P_APPROX C_PTP
ELSE
PTP P_APPROX C_PTP
ENDIF
----------end------------------
$VEL_EXTAX[SG_ExtaxActive]=SG_ConstSpeed * factor
-----提前運行中外部軸的軸速度-----
-----SG_ConstSpeed 之前在更換電極時算得速度------------
IF(ServoGun[SG_ActiveGunNumber].GunControl == #Position)THEN
ServoGun[1]=#Position
ACTIVATE_FORCE_MODE((6+SG_ExtaxActive), FORCE, SGL_CalcPartPos(SG_CurrentCmd),0)
----使用力功能進行移動--------給入焊接控制器給的力值進行力的移動-------
ENDIF
IF(ServoGun[SG_ActiveGunNumber].GunControl == #Force)THEN
由于ServoGun[1]= #Position所以不執行力模式
ACTIVATE_FORCE_MODE((6+SG_ExtaxActive), FORCE, SGL_CalcPartPos(SG_CurrentCmd),SGEQ_AFM_ConstSpeedUser)
ENDIF
PTP P_PART C_PTP 在有力的情況下執行點到點的位置P_PART
P_PART補償之后的力的值
C_PTP帶軌跡逼近-提前執行
TRIGGERWHENDISTANCE=0 DELAY=0 DO SGM_VELEXAXFULL()PRIO=-1
提前觸發激活 外部軸速度$VEL_EXTAX[1]=100
$APO.CDIS激活逼近范圍
PTP P_WELD與ACTIVATE_FORCE_MODE()函數和$VEL_EXTAX[1]一起使用實現力的控制
PTP P_WELD 執行焊接軌跡點
ENDIF
-
機器人
+關注
關注
211文章
28560瀏覽量
207697 -
變量
+關注
關注
0文章
613瀏覽量
28425
原文標題:KUKA機器人電伺服移動到力的控制MOVE_TO_FORCE程序分析
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論