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:

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