0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KUKA電伺服焊鉗USER程序SPOT焊接點時序編程分析

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 2020-06-12 15:37 ? 次閱讀

SPOT(MoveType, POINT_DATA, SGEQ_ParamData, SGRS_ParamData) 焊接控制時序

DEF SPOT (MoveType:IN, PointData:IN, SGEQ_ParamData:IN, SGRS_ParamData:OUT )

MoveType:移動類型 PTP

PointData: 焊點的數(shù)據(jù):

SG_POINT_Default={Name[]"SG1",GNumber 1,Thickness 0.0,ThicknessTol 0.0,ForceProfile[]"none",ForceMode #SINGLE,Force 0.0,WeldTime 0.0,Force2 0.0,Comp#NO,Path 2.30000,PrNumber 1,MoveApprox TRUE,MaxRestart 5,Cont#NO,KeepForceAtWelding FALSE}

SGEQ_ParamData: 平衡控制的數(shù)據(jù)

CASE #MEDIUM

EEQ_PAct.MODE = EQMode

EEQ_PAct.TimeExpectedFactor = 75

EEQ_PAct.Push_ThresholdFactor = 100

EEQ_PAct.Push_ReduceTorqueFactor = 100

SGEQ_StartForceFactor =100

SGRS_ParamData: 暫時不用

SPOT準(zhǔn)備點:

retry = FALSE 初始化變量重試功能

IF(SG_MaxRestart== 0)THEN SG_MaxRestart=3

SG_MaxRestart = ServoGun[1].MaxRestart=3重復(fù)次數(shù)

RetryMaxReached = TRUE 重試達(dá)到的最大

ELSE

RetryMaxReached = FALSE

ENDIF

NewStart = FALSE

SpotSteps=checkwear 檢查磨損步

REPEAT 開始執(zhí)行循環(huán)

IF((retry) AND (SpotSteps == endSpot))THEN

重試功能被激活, SpotSteps == endSpot在結(jié)束步

RetryMaxReached = SpotCountRetry()重復(fù)計數(shù)重試>3重試達(dá)到的最大

SpotSteps = checkwear 去檢查磨損步

retry = FALSE 關(guān)閉重試

ENDIF

SWITCH SpotSteps

CASE checkwear 檢查磨損

SGL_HandleCheckWear(SGL_CheckWear(), SpotSteps, checkNoPartIn, checkNoPartIn, 0, endspot, errorRetry, RetryMaxReached)

檢查電極是否滿足要求,正常情況去下一步checkNoPartIn

IF(SpotSteps == errorRetry)THEN 如果需要去錯誤重試步

retry = TRUE 激活重試

ENDIF

CASE checkNoPartIn 檢查沒有零件

IF(ServoGun[SG_ActiveGunNumber].CompType == #AIR)THEN

設(shè)置規(guī)定CompType #EQUALIZING平衡技術(shù),因此這段程序不執(zhí)行

SG_DECL_COMP_INTERRUPT (PointData.Comp,PointData.Cont)

ENDIF

IF(SGL_ReadIn(SG_NoPart,FALSE))THEN

SG_NoPart=0, 讀入E0=0,檢驗位SGL_ReadIn反饋false

SG_NoPart_ER = TRUE

SG_MainErrorHandlTyp = #MainWithNotify

returnUnused = SGE_MainAndSubmitMsg_ER (FALSE)

SpotSteps = reposition 去返回原位

ELSESGL_ReadIn反饋false執(zhí)行下一步檢查槍力

SpotSteps = checkGunForceLim 執(zhí)行下一步檢查槍力

ENDIF

CASE checkGunForceLim 檢查槍力極最小限值

CONTINUE

IF(NOT ((SG_GunForce)<=$FORCE_LIM[(6+SG_ExtaxActive)]))THEN

SG_ExtaxActive=1 激活的外部軸1$FORCE_LIM 力最小極限值,這段的意思是給入的力值不能小于系統(tǒng)極限值.

SpotSteps = checkGunForceMax去檢查力是否超出最大值

ELSE 如果小于最小值

SG_ForceLowerFlim_ER=TRUE 小于最小值故障報警

SG_MainErrorHandlTyp = #MainWithDlg

SpotSteps =SGL_DlgAnsOrMsgLineSel(FALSE, reposition,,RetryMaxReached) 需要跳到回到原位步

ENDIF

CASE checkGunForceMax 檢查槍力是否超出最大值

CONTINUE

IF(NOT ((SG_GunForce)>$FORCE_MAX[(6+SG_ExtaxActive)]))THEN

SG_ExtaxActive=1 激活的外部軸1$FORCE_MAX 力最大極限值,這段的意思是給入的力值不能大于系統(tǒng)極限值.

SpotSteps = checkSpinTime 去檢查旋轉(zhuǎn)時間步

ELSE 否則

SG_ForceHigherFmax_ER=TRUE大于最大值故障報警

SG_MainErrorHandlTyp = #MainWithDlg

SpotSteps = SGL_DlgAnsOrMsgLineSel (FALSE, reposition,,RetryMaxReached)需要跳到故障復(fù)位步

ENDIF

CASE checkSpinTime ;檢查旋轉(zhuǎn)時間-機器人旋轉(zhuǎn)選項已啟用(機器人沒有使用此功能)

IF(SG_RobospinInstalled) AND SGRS_Active AND NOT (SGRS_ParamData.SpinTyp== #OFF)THEN

SG_RobospinInstalled=FALSE 控制器沒有安裝機器人旋轉(zhuǎn).因此以下程序很多將不執(zhí)行.

IF(SGRS_ParamData.SpinAngle == 0)THEN

SGRS_ParamData.SpinTyp = #OFF

SGRS_AngleZero_ER = TRUE

SG_MainErrorHandlTyp = #MainWithNotify

returnUnused =SGE_MainAndSubmitMsg_ER (FALSE)

ENDIF

IF((SGRS_ParamData.SpinTimeSource == #WELDTIMER) AND (SGRS_ParamData.SpinTyp== #DURING))THEN

SGRS_ParamData.SpinTime = 0

FOR i = 1 TO(SG_ForceCountMax-1);多力驗證

IF(SG_PointForcesTime[i] < 10)THEN;檢查時間是以秒還是毫秒為單位?????????? SG_PointForcesTime[i] =SG_PointForcesTime[i] * 1000

ENDIF

SGRS_ParamData.SpinTime =SGRS_ParamData.SpinTime + SG_PointForcesTime[i]

ENDFOR

SGRS_ParamData.SpinTime =SGRS_ParamData.SpinTime + SGRS_ParamData.TimeOffset

IF NOT (SGRS_ParamData.SpinTime < 0 )THEN

SpotSteps =ActivateTorqSafety

ELSE

SGRS_TimeToLow_ER=TRUE

SG_MainErrorHandlTyp = #MainWithDlg

SpotSteps =SGL_DlgAnsOrMsgLineSel (FALSE, reposition,,RetryMaxReached)

ENDIF

ELSE

SpotSteps =ActivateTorqSafety

ENDIF

ELSE 如果沒有使用運轉(zhuǎn)功能就去下一步“啟動焊接安全”

SpotSteps = ActivateTorqSafety

ENDIF

CASE ActivateTorqSafety啟動焊接安全

SGL_TorqueOn () 扭矩檢查扭矩,用以保護槍設(shè)置極限機器人扭矩值

SpotSteps = resetCompensation 去重置補償步

CASE resetCompensation重置補償,跳過

IF(ServoGun[SG_ActiveGunNumber].CompType== #AIR)THEN

SGL_SetCompOut(TRUE,PointData.Comp) CompType=#EQUALIZING平衡技術(shù)

ENDIF

SpotSteps = PrepareMoveToForce 去準(zhǔn)備移至力值步

CASE PrepareMoveToForce準(zhǔn)備移至力值

CONTINUE

INTERRUPTDECL SG_Interrupt21 WHEN $SG_PART_DETECTED[6+SG_ExtaxActive] == TRUE DO SG_SetPartDetected()

激活中斷零件檢測, $SG_PART_DETECTED[7]外部軸7軸的零件檢測,被認(rèn)為檢測到零件

SG_PartDetected= FALSE零件檢測

SGL_SaveSetSoftend (SG_PartThickness-SG_PartThicknessTol)

SG_ConstSpeed=SGL_SPEED_CALC(SG_GunForce,MoveType,TRUE)

速度計算(焊鉗給入力值,運動類型PTP, 激活)

SGM_CALCULATE_POINTS(SG_GunForce,#WELD) 點計算和設(shè)定最大扭矩

IF SG_DEBUG_MeasureForce THEN

returnUnused = SGL_ForceMeanVal(TRUE)

ENDIF

SpotSteps = MoveToForce

CASE MoveToForce 移動到力量

IF(SG_ForceTraceEnable)THEN強制跟蹤沒有啟用SG_ForceTraceEnable=FALSE

SG_StartForceTrace(SG_ActiveGunNumber)啟動力追蹤

ENDIF

SG_StopReaction = FALSE停止反應(yīng)

-------開啟中斷----------

INTERRUPTON SG_Interrupt1 ; 禁止重新定位

INTERRUPTON SG_Interrupt9 ; 停止按鈕

INTERRUPTON SG_Interrupt21 ; 檢測分割

SG_ReposActive = FALSE 重復(fù)定位不啟動

SGM_MOVE_TO_FORCE(SG_GunForce, MoveType, #WELD, SGEQ_ParamData, SGRS_ParamData) 移動到焊接軌跡點并帶力移動進(jìn)行夾緊

SGL_MaintenanceCounter(SG_ActiveGunNumber)維護計數(shù)器

SpotSteps = WaitPartDetected 等待零件檢測到給到下一步

SGL_TimerControl(SG_TimerFCTRL,#TRestart) 開啟時間監(jiān)控

CASE WaitPartDetected 等待零件檢測到

IF((SGEQ_ParamData.MODE<>#OFF) AND (SGEQ_Active==TRUE) AND SGEQ_ActivePointCond)THEN

SGEQ_ParamData.MODE = EQMode,平衡控制激活,活動點號SGEQ_ActivePointCond=FALSE

IF(($TIMER[SGEQ_TimerFixPos] * 0.001)> SGEQ_CurrentParameters.TIME_EXPECTED)THEN

SGEQ_StartFreeze = TRUE 開始凍結(jié)

ENDIF

ENDIF

IF(SG_PartDetected)THEN 如果檢測到零件,通過中斷程序檢測零件

SpotSteps = ContPosChckFandThick 去檢查厚度步

ELSE 如果沒有檢測到零件

CONTINUE

IF(($MODE_OP == #T1) OR ($OV_PRO < 50))THEN

TimeResult =SG_TimeoutTimePartDetec * 5.0

SG_TimeoutTimePartDetec 1750.0

ELSE 如果不是T1模式,速度沒有小與50

TimeResult =SG_TimeoutTimePartDetec

ENDIF

---超時報警-----

IF($Timer[SG_TimerFCTRL] >= TimeResult)THEN

如果T33>=1750.0/875

SG_NoPartDetected_ER = TRUE 沒有找到零件故障

SG_MainErrorHandlTyp = #MainWithDlg 手動復(fù)位報警提示

$FORCE[(6+SG_ExtaxActive)] = 0 ;力控制關(guān)閉

SGEQ_StartFreeze = TRUE

SGEQ_Stop()焊鉗移動關(guān)閉

IF(NOT RetryMaxReached)THEN 如果沒有達(dá)到最大重復(fù)次數(shù)

SWITCH( SGE_MainAndSubmitMsg_ER(RetryMaxReached))

CASE 1 通過提示信息反饋,是要重焊,還是去下一點

是->重試最后一點

SpotSteps = errorRetry 去錯誤重試步

retry = TRUE

CASE 2; 不->繼續(xù)開槍->下一點

SpotSteps = disableForceMode 去關(guān)閉力模式

ENDSWITCH

ELSE 如果沒有到達(dá)最大重復(fù)步,就去

SpotSteps = SGL_DlgAnsOrMsgLineSel (false, disableForceMode,,RetryMaxReached)監(jiān)控計算步

ENDIF

ELSE如果沒有超時就再去等待零件檢測步

SpotSteps = WaitPartDetected

ENDIF

ENDIF

CASE FastVectorMoveOff快速矢量移動關(guān)閉步

ActivateFastVMVOff() 確認(rèn)焊接快速夾緊

SpotSteps = ContPosChckFandThick 連續(xù)位置檢查零件厚度

CASE ContPosChckFandThick連續(xù)位置檢查零件厚度

SG_TriggerEnd=FALSE 觸發(fā)結(jié)束

IF(SGM_ChkForcePartThick(SGEQ_ParamData,TRUE,RetryMaxReached))THEN 如果計算零件厚度正確

SpotSteps = ForceReached 去力達(dá)到

ELSE 如果厚度不正確

SG_MainErrorHandlTyp = #MainWithDlg 需要手動復(fù)位

CONTINUE

IF(($MODE_OP == #T1) OR ($MODE_OP == #T2))THEN

CONTINUE

$FORCE[(6+SG_ExtaxActive)] = 0 ;關(guān)力控制

ENDIF

IF(NOT RetryMaxReached)THEN 如果沒有到達(dá)力重復(fù)最大值

SWITCH( SGE_MainAndSubmitMsg_ER(RetryMaxReached))

主要并提交故障信息

CASE 1 ; 是->重試最后一點

SpotSteps = errorRetry

retry = TRUE

CASE 2 ;否->繼續(xù)開槍->下一點

SpotSteps = disableForceMode去關(guān)閉力模式步

ENDSWITCH

ELSE 如果可以計算步信息

SpotSteps = SGL_DlgAnsOrMsgLineSel (false, disableForceMode,,RetryMaxReached)

ENDIF

ENDIF

CASE ForceReached力達(dá)到

IF SG_DEBUG_MeasureForce THEN 測量力診斷暫時不用

returnUnused = SGL_ForceMeanVal(FALSE)

ENDIF

IF( SGW_PrepAndStartWeld(#WaitForReady,NewStart)== 1 )THEN

開始焊接 ,焊接結(jié)束后

SpotSteps = detectWeldEnd檢測焊接結(jié)束

ELSE 如果焊接不合格

SG_TimerErrorHandlTyp = #TimerWithDlg 故障報警類型

CONTINUE

IF(($MODE_OP == #T1) OR ($MODE_OP == #T2))THEN

如果是在T1模式或者T2模式

CONTINUE

$FORCE[(6+SG_ExtaxActive)] = 0 ;關(guān)力控制

ENDIF

SGEQ_Stop() 關(guān)閉焊鉗平衡移動

;水位檢查

error_Water =SGE_WaterguardChecker()流量檢測

IF(NOT RetryMaxReached)THEN 如果沒有重試達(dá)到的最大值

IF error_Water THEN 水錯誤

Result =SGE_MainAndSubmitMsg_ER(RetryMaxReached)

進(jìn)入機器人故障提示對話框報錯: 重試達(dá)到的最大

ELSE

Result =SGE_WeldTimerMsg_ER(RetryMaxReached)

ENDIF

SWITCH Result

CASE 1 ; yes -->重試

returnUnused = SG_ResetError_IWT(#ResetDefault)恢復(fù)默認(rèn)

SpotSteps = errorRetry 去故障重試步

retry = TRUE

CASE 2; no -->繼續(xù)開槍->下一點

returnUnused = SG_ResetError_IWT(#ResetDefault)恢復(fù)默認(rèn)

SpotSteps = disableForceMode

ENDSWITCH

ELSE

SpotSteps = SGL_DlgAnsOrMsgLineSel ((NOT error_Water), disableForceMode,,RetryMaxReached)

ENDIF

ENDIF

CASE detectWeldEnd 檢測焊接結(jié)束

SG_WriteLogbook(SG_ProgramNumber, FALSE, SGEQ_ParamData)寫日志書

IF(SG_RobospinInstalled AND (SGRS_ParamData.SpinTyp==#DURING) AND SGRS_Active)THEN;SG_RobospinInstalled=false機器人運行, SpinTyp= #OFF SGRS_Active=TRUE 不使用機器人旋轉(zhuǎn)

IF SGEQ_ActivePointCond THEN

IF $VMSTATE.ACTIVE THEN

SGEQ_STOP()

WAIT FOR ($VMSTATE.ACTIVE ==FALSE)

ENDIF

ENDIF

SGRS_RoboSpinTurn($POS_ACT_MES,MoveType, PointData, SGRS_ParamData) ;開始機器人旋轉(zhuǎn)的轉(zhuǎn)彎運動

TimerResult = SGg_ResultWeldEnd

NewStart = SGg_NewStart

ELSE 不使用機器人旋轉(zhuǎn)就執(zhí)行下面的程序

TimerResult = SGW_GetWeldEndSignal(NewStart)E785焊接完成FK

獲取焊接結(jié)束信號(重新開始)

ENDIF

IF( TimerResult == 1)THEN ;焊接控制器無錯誤

RoboSpinBySPS = FALSE 機器人旋轉(zhuǎn)

RoboSpinBySPS = SGL_ReadIn(SG_StartRoboSpin,TRUE)

SG_StartRoboSpin=0 ,沒有使用機器人旋轉(zhuǎn)

IF(SG_RobospinInstalled AND (SGRS_ParamData.SpinTyp==#AFTER) ANDSGRS_Active AND RoboSpinBySPS)THEN(不使用)

-焊接后機器人旋轉(zhuǎn)-SG_RobospinInstalled=FALSE SpinTyp= #OFF ,SGRS_Active=TRUE,RoboSpinBySPS = FALSE

IF(SGRS_AktCounter[SG_ActiveGunNumber] <= SGRS_TurnCount)THEN

SGRS_HelpGunForce =((100-SGRS_ParamData.PercentForce)/100)* SG_GunForce

SGRS_GunForce =SGRS_HelpGunForce

IF(SGRS_GunForce < $Force_LIM[6+SG_ExtaxActive])THEN

;目標(biāo)力小于力的極限值

SGRS_GunForce = $Force_LIM[6+SG_ExtaxActive]+1

SGRS_ForceLim_ER = TRUE

returnUnused = SGE_MainAndSubmitMsg_ER (FALSE)

ENDIF

$FORCE[(6+SG_ExtaxActive)] = SGRS_GunForce 旋轉(zhuǎn)力760

PTP $POS_ACT 執(zhí)行當(dāng)前位置

waitfor TRUE

IF SGEQ_ActivePointCond THEN

IF $VMSTATE.ACTIVE THEN

SGEQ_STOP()

WAITFOR($VMSTATE.ACTIVE == FALSE)

ENDIF

ENDIF

SGRS_RoboSpinTurn($POS_ACT_MES,MoveType, PointData, SGRS_ParamData);開始RoboSpin的轉(zhuǎn)彎運動

SGRS_RoboSpinSetOpenPos()

IF($MODE_OP == #AUT) OR ($MODE_OP== #EX)THEN

SGRS_AktCounter[SG_ActiveGunNumber] = SGRS_AktCounter[SG_ActiveGunNumber] + 1

ENDIF

ENDIF

ENDIF

焊接合格后:去禁用力模式步

SpotSteps = disableForceMode, disableForceMode=140去禁用力模式步

IF(SG_RobospinInstalled AND (SGRS_ParamData.SpinTyp==#DURING) AND SGRS_Active)THENSpinTyp=OFF 機器人旋轉(zhuǎn)暫時沒有使用

; 焊接計時器沒有錯誤,將新的起點設(shè)置為打開噴槍

SGRS_RoboSpinSetOpenPos()

ENDIF

ELSE焊接控制器錯誤,焊接不合格

SG_TimerErrorHandlTyp = #TimerWithDlg

SGEQ_Stop() 關(guān)閉平衡控制

IF(NOT RetryMaxReached)THEN

SWITCH( SGE_WeldTimerMsg_ER(RetryMaxReached))

CASE 1 ; 是,重試地點,并帶有新的槍口關(guān)閉功能

SpotSteps = errorRetry 去錯誤重試步

retry = TRUE

returnUnused = SG_ResetError_IWT(#ResetDefault)

CASE 2 ; 不->繼續(xù)開槍->下一點

returnUnused = SG_ResetError_IWT(#ResetDefault)

SpotSteps = errorRetry

retry = FALSE

CASE 3 僅重試焊縫而無需打開和關(guān)閉

returnUnused = SG_ResetError_IWT(#ResetWithRetry)

SpotSteps = ForceReached

DEFAULT

REPEAT

MsgNotify("Unexpectedanswer from weld timer, program running must be stopped.")焊接計時器的意外應(yīng)答,必須停止程序運行

HALT

UNTIL FALSE

ENDSWITCH

ELSE

SpotSteps =SGL_DlgAnsOrMsgLineSel (TRUE, disableForceMode,,RetryMaxReached) ---計算步去力關(guān)閉步

ENDIF

ENDIF

CASE disableForceMode 關(guān)閉力模式

IF(SG_PointDataAct.KeepForceAtWelding)THEN

KeepForceAtWelding=FALSE保持焊接力

RESET_TORQUE_LIMITS(6+SG_ExtaxActive)復(fù)位扭矩極限E1焊鉗

waitsec 0.0

ENDIF

CONTINUE

$FORCE[(6+SG_ExtaxActive)] = 0 ;關(guān)斷力控制

CONTINUE

;$APO.CPTP=1

INTERRUPTOFF SG_Interrupt1 ; 禁用抑制重新定位

INTERRUPTOFF SG_Interrupt9 ; 停止按鈕

INTERRUPTOFF SG_Interrupt21

SpotSteps = reposition去回到原位步

CASE errorRetry 錯誤重試

INTERRUPTOFF SG_Interrupt1 ; 禁用抑制重新定位

INTERRUPTOFF SG_Interrupt9 ; 停止按鈕

INTERRUPTOFF SG_Interrupt21

$FORCE[(6+SG_ExtaxActive)] = 0 ;關(guān)斷力控制

IF(SG_PointDataAct.KeepForceAtWelding)THEN

保持焊接力KeepForceAtWelding =false

RESET_TORQUE_LIMITS(6+SG_ExtaxActive)重置扭矩極限

waitsec 0.0

ENDIF

TRIGGERWHENDISTANCE= 1 DELAY= 0 DO SGL_ResetSoftEnd(SG_ActiveGunNumber)PRIO=-1

因為有焊接故障,重新移動到打開位置

IF((ServoGun[SG_ActiveGunNumber].CompType==#EQUALIZING) AND (SGEQ_ParamData.Mode<>#OFF) AND (SGEQ_Active==TRUE))THEN

CompType=#EQUALIZING使用平衡控制. MODE = EQMode,平衡控制激活

SGEQ_Stop();如果上次嘗試仍將其關(guān)閉,請關(guān)閉矢量移

SGL_MoveToPos(SGEQ_StartPoint,SGEQ_StartPoint,#NO,#SG_LIN)

ELSE

SGL_MoveToPos(P_APPROX,P_APPROX,#NO,MoveType)

ENDIF

----X軸沒有補償

IF ServoGun[SG_ActiveGunNumber].XCompActive THEN XCompActive=FALSE

SWITCH MoveType

CASE #SG_PTP, #SG_LIN ,#SG_CIRC

SGL_MoveToPos(SG_Startpoint,SG_Startpoint,#NO,#SG_LIN)

CASE #SG_SPTP, #SG_SLIN ,#SG_SCIRC

SGL_MoveToPos(SG_Startpoint,SG_Startpoint,#NO,#SG_SLIN)

ENDSWITCH

ENDIF

SpotSteps = reposition去回到原位

CASE reposition 回到原位

SGL_TorqueOff() 轉(zhuǎn)矩控制關(guān)閉

IF((ServoGun[SG_ActiveGunNumber].CompType==#EQUALIZING) AND (SGEQ_ParamData.Mode<>#OFF) AND (SGEQ_Active==TRUE))THEN

SGEQ_Stop();停止焊槍平衡控制.如果上次嘗試仍將其關(guān)閉,請關(guān)閉向量移動

ENDIF

IF(ServoGun[SG_ActiveGunNumber].CompType == #AIR)THEN

焊鉗平衡控制不使用空氣控制 CompType==#EQUALIZING

SWITCH SG_ExtaxActive

CASE 1

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E1>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E1<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

CASE 2

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E2>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E2<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

CASE 3

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E3>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E3<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

CASE 4

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E4>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E4<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

CASE 5

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E5>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E5<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

CASE 6

IF(SG_ClosingAxDir<0)THEN

IF($AXIS_ACT.E6>=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ELSE

IF($AXIS_ACT.E6<=SG_TriggerCompPos)THEN

SGL_COMPENSATOR()

ELSE

INTERRUPTON SG_Interrupt11

ENDIF

ENDIF

ENDSWITCH

ENDIF

SpotSteps = endSpot步結(jié)束

ENDSWITCH

UNTIL((SpotSteps == endSpot) AND ((retry == FALSE) OR (RetryMaxReached)))

結(jié)束循環(huán)控制的條件: 在結(jié)束步并且沒有重復(fù),或者重復(fù)次數(shù)達(dá)到最大值

END;

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 焊接
    +關(guān)注

    關(guān)注

    38

    文章

    2963

    瀏覽量

    59157
  • 伺服
    +關(guān)注

    關(guān)注

    16

    文章

    638

    瀏覽量

    40755
  • KUKA
    +關(guān)注

    關(guān)注

    3

    文章

    216

    瀏覽量

    16399

原文標(biāo)題:KUKA電伺服焊鉗USER程序SPOT 焊接點時序編程分析

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    時序邏輯電路故障分析

    時序邏輯電路的主要故障分析是一個復(fù)雜而重要的課題,它涉及電路的穩(wěn)定性、可靠性以及整體性能。以下是對時序邏輯電路主要故障的全面分析,旨在幫助理解和解決這些故障。
    的頭像 發(fā)表于 08-29 11:13 ?200次閱讀

    FPGA 高級設(shè)計:時序分析和收斂

    今天給大俠帶來FPGA 高級設(shè)計:時序分析和收斂,話不多說,上貨。 這里超鏈接一篇之前的STA的文章,僅供各位大俠參考。 FPGA STA(靜態(tài)時序分析) 什么是靜態(tài)
    發(fā)表于 06-17 17:07

    伺服驅(qū)動器不上是什么原因

    的故障,導(dǎo)致設(shè)備無法正常工作。本文將從多個角度分析伺服驅(qū)動器不上的原因,并提供相應(yīng)的解決方案。 電源問題 伺服驅(qū)動器的電源問題是最常見的原因之一。電源問題主要包括以下幾個方面: 1.
    的頭像 發(fā)表于 06-14 10:19 ?1438次閱讀

    plc控制伺服驅(qū)動器編程實例介紹

    在現(xiàn)代工業(yè)自動化領(lǐng)域,可編程邏輯控制器(PLC)和伺服驅(qū)動器的組合應(yīng)用非常廣泛。PLC 控制伺服驅(qū)動器可以實現(xiàn)精確的速度、位置和力矩控制,廣泛應(yīng)用于機械手、輸送帶、數(shù)控機床等多種自動化設(shè)備。本文將
    的頭像 發(fā)表于 06-12 14:07 ?927次閱讀

    LED模組燈珠焊接點推拉力測試機應(yīng)用案例

    最近有客戶在網(wǎng)上咨詢有沒有測試led模組燈珠焊接點強度的設(shè)備,客戶算是找對了,我們有和做過很多l(xiāng)ed行業(yè)的客戶,例如:力揚、長方、照實等,有很多的應(yīng)用案例。LED模組就是將一定數(shù)量的發(fā)光二極管按規(guī)則
    的頭像 發(fā)表于 05-18 16:00 ?247次閱讀
    LED模組燈珠<b class='flag-5'>焊接點</b>推拉力測試機應(yīng)用案例

    伺服缸和伺服壓機區(qū)別 伺服缸能取代液壓油缸嗎

    伺服缸是一種通過電動機驅(qū)動實現(xiàn)線性運動的設(shè)備,它的原理和結(jié)構(gòu)可以簡單描述如下: 原理: 伺服缸的原理基于電動機的轉(zhuǎn)電磁效應(yīng)和轉(zhuǎn)換機械能的能力。通過電動機的正反轉(zhuǎn)和電流的控制,可以實
    的頭像 發(fā)表于 01-26 08:47 ?400次閱讀
    <b class='flag-5'>伺服</b><b class='flag-5'>電</b>缸和<b class='flag-5'>伺服</b>壓機區(qū)別 <b class='flag-5'>伺服</b><b class='flag-5'>電</b>缸能取代液壓油缸嗎

    伺服缸和伺服壓機區(qū)別 伺服缸能取代液壓油缸嗎

    伺服缸通常采用閉環(huán)控制系統(tǒng),通過反饋信號實時調(diào)整電機的轉(zhuǎn)速和位置,以達(dá)到精確的運動控制。而伺服壓機一般采用閉環(huán)或開環(huán)控制系統(tǒng),通過控制液壓系統(tǒng)或壓力傳感器實時調(diào)整壓力或力量,以滿足加工需求。
    發(fā)表于 01-22 17:21 ?1206次閱讀

    筆記本上時序電流判斷法

    筆記本上時序
    發(fā)表于 01-09 10:26 ?1次下載

    KUKA C4機器人:為宏啟用或阻止內(nèi)聯(lián)窗體USER

    對于不同的宏類型,可以配置內(nèi)聯(lián)表單USER是否可用。默認(rèn)情況下,USER在以下宏中可用
    的頭像 發(fā)表于 12-18 11:38 ?714次閱讀
    <b class='flag-5'>KUKA</b> C4機器人:為宏啟用或阻止內(nèi)聯(lián)窗體<b class='flag-5'>USER</b>

    關(guān)于伺服焊鉗的通訊號設(shè)置步驟

    ? Workvisual中焊機已經(jīng)正確設(shè)置了握手程序為91號程序 ?手動調(diào)用91號程序(截圖是97號),查看壓力反饋是否為400N ? 91號程序會在每次執(zhí)行
    發(fā)表于 11-10 17:37 ?372次閱讀
    關(guān)于<b class='flag-5'>電</b><b class='flag-5'>伺服</b><b class='flag-5'>焊鉗</b>的通訊號設(shè)置步驟

    KUKA伺服焊接點時序編程分析

    SG_ExtaxActive=1 激活的外部軸1$FORCE_LIM 力最小極限值,這段的意思是給入的力值不能小于系統(tǒng)極限值. SpotSteps = checkGunForceMax去檢查力是否超出最大值
    發(fā)表于 11-07 15:01 ?929次閱讀
    <b class='flag-5'>KUKA</b><b class='flag-5'>電</b><b class='flag-5'>伺服</b><b class='flag-5'>焊接點</b><b class='flag-5'>時序</b><b class='flag-5'>編程</b><b class='flag-5'>分析</b>

    KUKA C5機器人更換SSD硬盤的步驟

    手持式編程器,KUKA smartPAD-2
    發(fā)表于 10-08 09:23 ?795次閱讀
    <b class='flag-5'>KUKA</b> C5機器人更換SSD硬盤的步驟

    PLC時序圖的設(shè)計步驟

     時序圖(Timing Diagram)是信號隨時間變化的圖形。橫坐標(biāo)為時間軸,縱坐標(biāo)為信號值,其值為 0 或 1。以這種圖形為基礎(chǔ)進(jìn)行 plc 程序設(shè)計的方法稱為時序圖法。時序圖是從
    的頭像 發(fā)表于 10-05 09:55 ?4388次閱讀

    淺析汽車線束超聲波焊接影響接點撕裂力因素及解決方法

    超聲波焊接是超聲波傳遞到需焊接的金屬導(dǎo)體表面,然后施加一定的壓力,使兩個金屬導(dǎo)體的表面相互摩擦,形成分子層之間的熔合。而接點位置的撕裂力大小便是衡量分子層之間熔合效果的參數(shù),分子間熔合效果越好,撕裂力就越大。
    發(fā)表于 09-27 09:46 ?825次閱讀
    淺析汽車線束超聲波<b class='flag-5'>焊接</b>影響<b class='flag-5'>接點</b>撕裂力因素及解決方法

    接點如何找到公共端

    接點壓力表是一種大量應(yīng)用于壓力控制領(lǐng)域的設(shè)備,它具有測量準(zhǔn)確、調(diào)整方便、穩(wěn)定性高等優(yōu)點。在使用電接點壓力表時,公共端是其中一個重要的組成部分。那么,如何找到
    的頭像 發(fā)表于 09-26 09:59 ?3116次閱讀