Er ist wieder da
Einen wunderschönen guten Abend wünsche ich,
zwischenzeitlich bin ich dem orangen Knecht nachgefahren und habe mich an seinem Einsatzort eingefunden.
Nachdem ich mein Submit den Ratschlägen entsprechend angepasst habe, ist ein Teilerfolg zu verzeichnen: Nach Programmstart, SAK Fahrt und Betriebsartumschaltung auf AutomatikExtern startet alles wie gewünscht.
Wenn ich allerdings den Bedienerschutz öffne, schließe und ihn quittiere, dann bleibe ich bei der Quittierung der $StopMess hängen (Schrittkette 90 in meinem Programm).
Nach testweisem Einfügen von 2Sekunden Wartezeit, konnte ich beobachten, wie $ConfMess pulsiert aber $StopMess dauerhaft true ist.
Wenn ich auf dem SmartPad manuell die Antriebe einschalte, läuft das Programm weiter.
Ich bin mit meinem Latein am Ende, 4 Schuljahre haben nichts zur Lösung dieses Problems beigetragen
Hat wer Vorschläge?
SWITCH StartStop_Schrittkette
CASE 1
IF ($ALARM_STOP == TRUE) AND ($MOVE_ENABLE == TRUE) THEN
StartStop_Schrittkette = 2
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 2
IF ($USER_SAF == TRUE) THEN
StartStop_Schrittkette = 3
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 3
IF ($PRO_ACT == FALSE) THEN
StartStop_Schrittkette = 4
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 4
IF (StrComp($PROG_INFO[1].SEL_NAME[],"/R1/Programmname",#CASE_SENS) == TRUE) THEN
StartStop_Schrittkette = 5
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 5
IF ($PROG_INFO[1].P_STATE == #P_STOP) THEN
StartStop_Schrittkette = 6
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 6
IF ($MODE_OP == #EX) THEN
StartStop_Schrittkette = 80
ELSE
StartStop_Schrittkette = 1
ENDIF
CASE 80
IF ($STOPMESS == TRUE) THEN
PULSE ($OUT[15], TRUE, 1.0) ;$CONF_MESS $IN[15]
StartStop_Schrittkette = 90
ELSE
StartStop_Schrittkette = 100
ENDIF
CASE 90
IF ($OUT[15] == TRUE) THEN
WAIT SEC 2.0
StartStop_Schrittkette = 90
ELSE
StartStop_Schrittkette = 80
ENDIF
CASE 100
IF ($PERI_RDY == FALSE) THEN
PULSE ($OUT[14], TRUE, 1.0) ;$DRIVES_ON $IN[14]
StartStop_Schrittkette = 110
ELSE
StartStop_Schrittkette = 120
ENDIF
CASE 110
IF ($OUT[14] == TRUE) THEN
StartStop_Schrittkette = 110
ELSE
StartStop_Schrittkette = 100
ENDIF
CASE 120
IF ($STOPMESS == TRUE) THEN
PULSE ($OUT[15], TRUE, 1.0) ;$CONF_MESS $IN[15]
StartStop_Schrittkette = 130
ELSE
StartStop_Schrittkette = 140
ENDIF
CASE 130
IF ($OUT[15] == TRUE) THEN
StartStop_Schrittkette = 130
ELSE
StartStop_Schrittkette = 120
ENDIF
CASE 140
IF ($OUT[16] == FALSE) THEN
$OUT[16] = TRUE ;OUT[16] KUKA_$EXT_START
StartStop_Schrittkette = 150
ELSE
StartStop_Schrittkette = 150
ENDIF
CASE 150
IF ($PROG_INFO[1].P_STATE == #P_ACTIVE) THEN
StartStop_Schrittkette = 160
ELSE
StartStop_Schrittkette = 140
ENDIF
CASE 160
IF ($PRO_ACT == TRUE) THEN
$OUT[16] = FALSE
StartStop_Schrittkette = 1
ELSE
StartStop_Schrittkette = 140
ENDIF
ENDSWITCH
Alles anzeigen