SZMsg()焊钳提示故障信息程序:
SWITCHMsgNr
CASE1
SWITCH$SoftPlcint[21]
CASE1
USER_MSG.MSG_TXT[]="SZ1 SchleppfehlerimProgrammbetrieb,Quittierung in Single-Step erforderlich !"–拉拽故障需要单步复位-
CASE2
USER_MSG.MSG_TXT[]="SZ2 SchleppfehlerimProgrammbetrieb, Quittierungin Single-Step erforderlich !"
......
CASE2
SWITCH$SoftPlcint[21]
CASE1
USER_MSG.MSG_TXT[]="SZ1SchleppfehlerimProgrammbetrieb"
–在程序中的拉拽故障-
CASE2
USER_MSG.MSG_TXT[]="SZ2 SchleppfehlerimProgrammbetrieb"
......
CASE3
SWITCH$SoftPlcint[21]
CASE1
USER_MSG.MSG_TXT[]="SZ1 Schleppfehler,WartebiskeinSchleppfehler !"
-拉拽故障等待没有拉拽故障-
CASE2
USER_MSG.MSG_TXT[]="SZ2 Schleppfehler,WartebiskeinSchleppfehler !"
CASE3
........
CASE4
SWITCH$SoftPlcint[21]
CASE1
USER_MSG.MSG_TXT[]="SZ1, WartebisReferenziert !"
-焊钳等待参考位置存在-
CASE2
USER_MSG.MSG_TXT[]="SZ2, WartebisReferenziert !"
......
CASE5
USER_MSG.MSG_TXT[]="SZ%1, Zangensteuerungnicht inAutomatik !"
CASE6
USER_MSG.MSG_TXT[]="Docking AlleBahnhoefebelegt"
CASE7
USER_MSG.MSG_TXT[]="UngueltigeWerkzeugNummer"
-工具名字无效-
CASE8
SWITCH$SoftPlcint[30]
CASE1
USER_MSG.MSG_TXT[]="SZ1, Istpositionungueltig !"
-焊钳的实际位置无效-
CASE2
USER_MSG.MSG_TXT[]="SZ2, Istpositionungueltig !"
DEFFolge10()
-程序调用的最开始执行VW_USR_R用户程序的初始化; FOLD ;%{H} %MKUKATPVW
VW_USR_R (#USR_INIT)
-这样使得在在执行每段轨迹指令时VW_USR_R里的中断指令都能起作用。
.......
DEFUSER_INIT ()-用户程序初始化-
IFSZ_VORHANDEN THEN
ExtSg_init()-外部伺服钳的初始化-
ENDIF
;ENDFOLDOption***Externe Servozange***[INIT]
......
ExtSg_init()外部伺服钳程序
FORi =1 TO7
$softplcint[7+i]=SysBusDelay[i]–保存延迟扫描时间给软PLC
通过中断指令条用SZIntR()程序
GLOBALINTERRUPTDECL6 WHENSF_Vorwarnung DO SZIntR(9)
GLOBALINTERRUPTDECL7 WHEN$softplcint[30]>0 DO SZIntR(1)
GLOBALINTERRUPTDECL8 WHEN$softplcbool[5] DO SZIntR(7)
GLOBALINTERRUPTDECL21 WHENNOT $softplcbool[1] DO SZIntR(8)
GLOBALINTERRUPTDECL22 WHENBahnhof_Feh DO SZIntR(6)
GLOBALINTERRUPTDECL23 WHENAntriebe_Aus DO SZIntR(10)
-$softplcbool[5]-软PLC反馈拉拽故障
SZIntR(7)
CASE7
INTERRUPTOFF8
IFNOT $OUT[O_SZ1_FRG] AND (abs($softplcreal[1])>max_sf)AND ($softplcint[1]>0)THEN
-!A715 焊钳在7轴模式-$softplcint[1]=7 伺服焊钳-max_sf=15
-$softplcreal[1]实际由软PLC偏差距离反馈
-$softplcreal[20]=max_sf将最大偏差值传输给软PLC
-$softplcint[7+i]=SysBusDelay[i]将由EMZ计算出来的大循环时间给软PLC
BRAKE-如果出现上述故障立即中断移动的轨迹
IFANTEIN_MERKER AND $softplcbool[5] THEN
-有拉拽故障在机器人没有进行外部自动时
nRintMsgHandle[2] =SZMsg(2)–发出提示信息-–在程序中的拉拽故障-
WAITFOR$softplcbool[6]==FALSE-等待故障消除
SF_Vorwarnung=FALSE
WAITFOR$IN[I_SZ1_IPos_g]-等待E716焊钳位置有效
IF(nRintMsgHandle[2] >0)Then
MSG_DEL =Clear_KrlMsg(-99)
nRintMsgHandle[2]=-1
ENDIF
ELSE-如果在外部自动状态时出现拉拽故障-
IF(Handbetrieb==FALSE)THEN-当前操作模式是外部自动那么Handbetrieb=FALSE
F_Handbetrieb=TRUE
IF($softplcint[1]>0)THEN-给PLC发出来拽故障
$OUT[O_SZ1_F_Schl]=TRUE–A131拉拽故障
ENDIF
nRintMsgHandle[1] =SZMsg(1)–发出提示信息-–拉拽故障需要单步复位
WHILEHandbetrieb==FALSE
ENDWHILE
IF(nRintMsgHandle[1] >0)Then
MSG_DEL =Clear_KrlMsg(-99)
nRintMsgHandle[1]=-1
ENDIF
ENDIF
IFNOT F_HandbetriebTHEN
nRintMsgHandle[1] =SZMsg(1)
IF(nRintMsgHandle[1] >0)Then
MSG_DEL =Clear_KrlMsg(-99)
nRintMsgHandle[1]=-1
ENDIF
ENDIF
ENDIF
ENDIF