Programmierung

Die Schleifenbedingung ist gekoppelt an die Echtzeit-Variable V.RTG.LOOP.ENABLED. Die Echtzeit Schleife wird mit folgendem Befehl programmiert.

Syntax:

#RT WHILE [ [MODULO] ]

 

#RT ENDWHILE

 

MODULO

(optional) am Ende der Schleife wird die “dist_prog_start” auf den Startwert der Echtzeit Schleife zurückgesetzt. Wird dieser Parameter nicht programmiert, so wird diese Variablen kontinuierlich inkrementiert. Siehe Vergleichsdarstellung in Anzeigedaten.

Die Programmierung der Schleifenbedingung erfolgt über die Syntax der Echtzeit-Zyklen.

Syntax:

#RT CYCLE [DEF] [[ ID =.. ] SCOPE =.. END_ACTION =..]

;…Anweisungen

#RT CYCLE END

DEF

Echtzeit-Zyklus wird nur definiert, aber noch nicht gestartet.

ID=..

Eindeutiger Identifier des Echtzeit-Zyklus, siehe Hinweis.

SCOPE

Gültigkeit, siehe Gültigkeit.

Zulässige Kennungen sind BLOCK, PROG oder GLOBAL.

END_ACTION

Verhalten beim Beenden des Echtzeit-Zyklus, siehe Aktion beim Beenden.

Zulässige Kennungen sind MOVE_ABORT oder MOVE_CONT.

Im nachfolgenden Programmierbeispiel wird in einem Echtzeit-Zyklus die Schleifenbedingung an den Wert der externen Variablen V.E.RtLoopEnable gekoppelt.

Die externe Variable muss über den Parameter P-EXTV-00005 als synchron parametriert sein.

Programmierbeispiel

Echtzeit-Schleife mit externer Variablen als Schleifenbedingung

%RtLoop
; RT WHILE condition
N0010 #RT CYCLE DELETE [ID = 4711 ]
N0020 #RT CYCLE [ID=4711 SCOPE = GLOBAL]
N0030   $IF V.E.RtLoopEnable != 0
N0040     V.RTG.LOOP.ENABLED = TRUE
N0050   $ELSE
N0060     V.RTG.LOOP.ENABLED = FALSE
N0070   $ENDIF
N0080 #RT CYCLE END
; start movement
N0090 X0 Y0 Z0
N0100 #BACKWARD STORAGE CLEAR
N0110 #DISTANCE PROG START CLEAR
N0120 Z33 G01 F100
N0130 Z0
;------------
; while until V.E.RtLoopEnable == 0
N0140 #RT WHILE
N0150 X100
N0160 Y100
N0170 X0
N0180 Y0
N0190 #RT ENDWHILE
;------------
N0200 X10
N0210 Y20
N0220 Z30
N0230 M30

Programmierbeispiel

Echtzeit-Schleife mit veränderbarer Geometrie

Dieses Beispiel zeigt eine Echtzeit-Schleife, welche durch den Befehl #OPTIONAL EXECUTION ON/OFF [SIMULATE] eine veränderbare Geometrie besitzt. Die Geometrie innerhalb #OPTIONAL EXECUTION ON/OFF [SIMULATE] kann mit der Control Unit simulate_motion während der Bearbeitung zu oder abgeschaltet werden. Es ist auch möglich, weitere NC-Befehle wie zum Beispiel M-Funktionen mit #OPTIONAL EXECUTION ON/OFF [SIMULATE] zu schalten.

%RtLoop
; RT WHILE condition
N0010 #RT CYCLE DELETE [ID = 4711 ]
N0020 #RT CYCLE [ID=4711 SCOPE = GLOBAL]
N0030 $IF V.E.RtLoopEnable != 0
N0040     V.RTG.LOOP.ENABLED = TRUE
N0050   $ELSE
N0060     V.RTG.LOOP.ENABLED = FALSE
N0070   $ENDIF
N0080 #RT CYCLE END
; start movement
N0090 X0 Y0 Z0
N0100 #BACKWARD STORAGE CLEAR
N0110 #DISTANCE PROG START CLEAR
N0120 Z33 G01 F100
N0130 Z0
;------------
; while until V.E.RtLoopEnable == 0
N0140 #RT WHILE
N0150 X100
N0160 Y100
N0170 #OPTIONAL EXECUTION ON [SIMULATE]
N0180 Z100
N0190 Z0
N0200 #OPTIONAL EXECUTION OFF
N0210 X0
N0220 Y0
N0230 #RT ENDWHILE
;------------
N0240 X10
N0250 Y20
N0260 Z30
N0270 M30