Hallo zusammen!
Anbei eine Frage zum unten stehenden Code. Leider war ich heute Zeuge eines ungewollten Kontaktes zwischen einem Handling und einem KUKA bei einem Traywechsel. Bis auf nen Kratzer ist alles gut gegangen! Flink den Not-Halt gedrückt...
Bei einer freien Position in einem Tray rufe ich das selbe Programm so häufig auf, bis ich ein Bauteil gefunden und gegriffen habe.
Dabei ist aufgefallen, dass das Signal "DO_FREIGABE_BEREICH_1" bei mehrfachem Aufruf gesetzt bleibt, obwohl dieses so nicht programmiert gewesen ist...
$ADVANCED = 1
...
PTP VOR_BEREICH_1 CONT
WAIT FOR DI_FREIGABE_BEREICH_1 CONT
SYNOUT DO_AUS_BEREICH_1 STATE = FALSE AT START DELAY = 0
;HIER BAUTEILENTNAHME, WENN BAUTEIL GEFUNDEN...
SYNOUT DO_AUS_BEREICH_1 STATE = TRUE AT END DELAY = 0
PTP AUS_BEREICH_1 CONT
Abhilfe habe ich mir erstmal so geschaffen:
$ADVANCED = 1
...
PTP VOR_BEREICH_1 CONT
WAIT FOR DI_FREIGABE_BEREICH_1 CONT
OUT DO_AUS_BEREICH_1 STATE = FALSE CONT
;HIER BAUTEILENTNAHME, WENN BAUTEIL GEFUNDEN...
PTP AUS_BEREICH_1
OUT DO_AUS_BEREICH_1 STATE = TRUE
Funktioniert natürlich... Finde diesen Genauhalt nur nicht sooo schön...
Jemand eine Erklärung für das Verhalten mit obigen Code?