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