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时使用.

SWITCH PAR1 

CASE 0  无过程装置-----完成BMS的完成通知

IF(PAR4==15)THEN   PAR4=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=PAR2  PAR2=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_Nr  SO_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=0  SO_PGR_Geraete_Nr $OUT[97]  TO $OUT[112]

-------重置就绪消息号

SO_PGR_FM_Nr=0   SO_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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分