Externe Variablen
Aus dem Echtzeit-Zyklus sind Lese-/Schreibzugriffe auf kanalspezifische und globale externe Variablen V.E.* möglich. Für einen Schreibzugriff muss die Variable als synchron definiert sein.
Programmierbeispiel
Definition einer synchronisierten V.E.-Variablen
...
var[0].name VALUE1
var[0].type REAL64
var[0].scope GLOBAL
var[0].synchronisation TRUE
var[0].access_rights READ_WRITE
...
Nur synchronisierte Variablen dürfen in Echtzeit-Zyklen geschrieben werden.
Beim Lese-Zugriff einer V.E-Variablen hängt ihr Wert von ihrer Synchronisierung ab:
- Eine synchronisierte Variable wird im Echtzeit-Kontext der CNC ausgewertet.
- Eine nicht-synchronisierte Variable wird zum Zeitpunkt der Dekodierung ausgewertet und als Konstante verwendet.
Programmierbeispiel
Zugriffe auf V.E.-Variablen
; Variablen vorbelegen
V.E.SYNC = 47 ; synchrone Variable
V.E.ASYNC = 11 ; asynchrone Variable
; Echtzeit-Zyklus definieren
#RT CYCLE [SCOPE = PROG]
; nur einmal durch Anweisungen laufen
$IF ONCE 1 < 2
; neuen Wert zuweisen
V.E.SYNC = 99
; hat den Wert 198
V.E.VALUE1 = 2 * V.E.SYNC
; V.E.ASYNC hat in diesem Echtzeit-Zyklus immer den Wert 11
; rechte Seite hat den Wert 22
V.E.VALUE2 = 2 * V.E.ASYNC
$ENDIF
#RT CYCLE END
; Hauptprogramm beenden
M30