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