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

prg_example

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

prg_example

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