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

prg_example

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

prg_example

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