Hallo,
ich richte gerade mal wieder einen KUKA (KRC 4) ein und um das Hin- und Herschalten zwischen T1 und EXT etwas komfortabler zu gestalten habe ich folgende Routine in sps.sub eingefügt:
IF B_AUTOEX AND NOT ($MODE_OP==#EX) THEN
B_AUTOEX = FALSE
ENDIF
IF ($MODE_OP == #EX) AND (B_AUTOEX == FALSE) THEN
CWRITE($CMD,STAT,MODE,"STOP 1")
CWRITE($CMD,STAT,MODE,"CANCEL 1")
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
B_AUTOEX = TRUE
ENDIF
Alles anzeigen
Der Plan war, dass ein von mir in T1 angewähltes Unterprogramm automatisch beendet und dann cell angewählt wird wenn ich in Extern umschalte. Das funktioniert auch soweit. Nur: Wenn ich in den externen Modus umschalte und zuvor ein Programm angewählt hatte startet cell automatisch, obwohl von der SPS definitiv kein Startsignal kommt. Das passiert, unabhängig ob das Programm noch am Anfang stand, pausiert ist oder durchgelaufen ist. Das kann doch nicht so gewollt sein?
Wenn cell mit cwrite aktiviert wird ohne dass vorher ein Programm angewählt war passiert das nicht, d.h. der Roboter wartet brav auf sein Startsignal; ich habe die Routine erst mal wieder auf den Fall ($PRO_STATE1 == #P_FREE) beschränkt.
Gibt es eine Möglichkeit, das automatische Abwählen von Programmen 'sicher' zu machen, also zu verhindern dass der Roboter direkt loslegen will?