KUKA机器人8.3系统完成信号的控制方法
最新的8.3系统完成信号的控制方法
TECH4 ProzessgeraetGesamtarbeitsfertigmeldung 15 Techaufruf=EIN
VW_USR_R(#USR_MAIN,403,0,0,0,15,0,0,0,0,0,TRUE)
发出总完成信号
PAR1=0 指总完成信号
PAR4=15指总完成信号
文章插图
TECH4 Prozessgeraet MS Steuerung=Nr1Brenner=Nr1 Teilarbeitsfertigmeldung 1 Prozessgeraete-Nr=1 Techaufruf=EIN
VW_USR_R(#USR_MAIN,403,14,1,61,1,1,1,0,0,0,TRUE)
使用用于14指CMT的工具用机器人的完成信号1发出
PAR1=14指CMT
PAR4完成信号几如: 1-14
PGR_Interface(#USR_TRIG,CMD_SEL,PAR1,PAR2,PAR3,PAR4,PAR5,PAR6,PAR7,PAR8,PAR9)
#USR_ADV ,#USR_MAIN没有用.
使用#USR_TRIG在执行SPS时使用.
【KUKA机器人8.3系统完成信号的控制方法】 SWITCH PAR1
CASE 0无过程装置-----完成BMS的完成通知
IF(PAR4==15)THENPAR4=15完成信号
FM_Nr=PAR4
FOR i=1 TO 30
IF(Hilf1_FM[i]<>Hilf2_FM[i])THEN
-这段比较的意思是之前是否已经把完成信号发出过了( 完成信号1-14)
要是之前发过完成信号则例如:Hilf1_FM[1]=Hilf2_FM[2]
Sperre_FM15=TRUE正常perre_FM15==FALSE
ENDIF
ENDFOR
IF(Sperre_FM15==FALSE)THEN
Fertigmeldung(FM_Nr)发出总完成信号
ELSE
PGR_Msg(11,#QuitMsg)
ENDIF
..............
CASE 14;处理设备MIG / MAG(MS)
Steu_Nr=PAR2PAR2=1中间变量保存
Wkzg_Nr=(PAR3-60)工具号
IF(Wkzg_Nr<1) OR (Wkzg_Nr>4)THEN
PGR_Msg(7,#QuitMsg)工具用来激活提示信息
ENDIF
; BMS上的过程设备编号
IF(PAR4==20) OR (PAR4==21)THENPAR4==1
Proz_Nr=((((MS_BASE_SL[Steu_Nr]-BitOffset)/Byte)-15)*IdentNr)+Wkzg_Nr
SO_PGR_Geraete_Nr=Proz_Nr
进程号SO_PGR_Geraete_Nr $OUT[97]TO $OUT[112]
ENDIF
;完成报告给BMS
IF(PAR4>=1) AND (PAR4<=14)THEN PAR4==1
FM_Nr=PAR4完成信号=1
Hilf1_FM[PAR1]=TRUE PAR1=14
IF(FM_Nr>=1) AND (FM_Nr<=14)THEN完成信号FM_Nr =1
IF NOT $IN[MS_BASE_SL[Steu_Nr]+I_MS_o_Proz] THEN
MS_BASE_SL[1]=209 I_MS_o_Proz=0如果没有E209进程工具不激活
Hilf2_FM[PAR1]=TRUE
Fertigmeldung(FM_Nr) Fertigmeldung(1)发出完成信号1
ELSE
PGR_Msg(9,#NotifyMsg)如果条件不满足
ENDIF
ENDIF
ENDIF
--------------------------------------------------------
文章插图
DEF Fertigmeldung(FM_Nr :IN)
INT FM_Nr,RobTimerStart,BMS_FM_QUIT
IF $FLAG[F_o_Proz_SStep] THENF_o_Proz_SStep=525,F525指不使用工具
PGR_Msg(8,#QuitMsg)提示程序信息
ELSE
RobTimerStart=$Rob_Timer 激活机器人时间计算
SO_PGR_FM_Nr=FM_NrSO_PGR_FM_Nr $OUT[33]TO$OUT[36]发出完成信号
WAITFOR((SI_PGR_FM_Nr==SO_PGR_FM_Nr) OR
(($Rob_Timer-RobTimerStart)>2000))
SI_PGR_FM_Nr $IN[33]TO $IN[36]PLC反馈完成信好
IF(($Rob_Timer- RobTimerStart)>=2000)THEN
PGR_Msg(10,#QuitMsg)提出超时反馈完成信好故障提示
ENDIF
ENDIF
FM_Nr=0
SO_PGR_FM_Nr=FM_Nr直接给出完成信号0关闭完成信号
END
--------------------------------------------------------
文章插图
GLOBALDEF PGR_LOOP()
INT i
IF($OUT[O_R_PF0]OR ($OUT[O_R_Loop_akt]AND $IN_HOME))THEN
A15机器人原位或者 ,A22机器人循环激活与机器人在home位(A22机器人循环没使用)
-------重置过程设备号
SO_PGR_Geraete_Nr=0SO_PGR_Geraete_Nr $OUT[97]TO $OUT[112]
-------重置就绪消息号
SO_PGR_FM_Nr=0SO_PGR_FM_Nr$OUT[33]TO $OUT[36]
-------重置完成消息的变量
Sperre_FM15=FALSE
FOR i=1 TO 30 -------------初始化中间值
Hilf1_FM[i]=FALSE
Hilf2_FM[i]=FALSE
ENDFOR
ENDIF
END