Verwaltung der Echtzeit-Zyklen
Das Verhalten eines Echtzeit-Zyklus kann über folgende Schlüsselwörter beeinflusst werden:
#RT CYCLE [START | HOLD | CONTINUE | ABORT ACTION | DELETE] [ID=..] |
Schlüsselwort | Beschreibung |
START | Echtzeit-Zyklus wird jetzt durchlaufen, Zustand der $IF-Bedingung wird neu initialisiert, Bewegungen/Aktionen werden ausgeführt |
HOLD | Echtzeit-Zyklus wird nicht mehr durchlaufen, Zustand der $IF-Bedingung bleibt erhalten, Bewegungen/Aktionen werden angehalten |
CONTINUE | Mit HOLD angehaltener Echtzeit-Zyklus wird wieder durchlaufen, Zustand der $IF-Bedingung wie vor dem HOLD, zuvor angehaltene Bewegungen/Aktionen werden fortgesetzt |
ABORT ACTION | Echtzeit-Zyklus wird weiter durchlaufen, Zustand der $IF-Bedingung bleibt erhalten, Bewegungen/Aktionen werden abgebrochen |
DELETE | Echtzeit-Zyklus wird gelöscht |
Programmierbeispiel
Verwaltung eines Echtzeit-Zyklus
; X-Achse auf 0mm fahren
G00 X0
; Echtzeit-Zyklus definieren, noch nicht starten
#RT CYCLE DEF [ID = 17 SCOPE = PROG]
; ACS-Position der X-Achse abfragen
$IF ONCE V.RTA.ACS.ACT_POS.X > 200
; unabhaengige Z-Achsbewegung starten
; ...
$ENDIF
#RT CYCLE END
; X-Achse verfahren
G00 X50
; Echtzeit-Zyklus starten
#RT CYCLE START [ID = 17]
; X-Achse verfahren, Z-Bewegung wird gestartet
G00 X250
; Z-Bewegung anhalten
#RT CYCLE HOLD [ID = 17]
; ...
; Z-Bewegung fortsetzen
#RT CYCLE CONTINUE [ID = 17]
; ...
; Hauptprogramm beenden
; PROG-Zyklus 17 wird automatisch gelöscht
M30
Programmierbeispiel
Globalen Echtzeit-Zyklus löschen
; Globalen Echtzeit-Zyklus definieren
#RT CYCLE [ID = 17 SCOPE = GLOBAL]
; Anweisungen
; ...
#RT CYCLE END
; ...
; Globalen Echtzeit-Zyklus explizit löschen
#RT CYCLE DELETE [ID = 17]
; Hauptprogramm beenden
M30