Instanzvariablen - VAR_INST
TwinCAT legt eine VAR_INST-Variable einer Methode nicht wie VAR-Variablen auf dem Methoden-Stack, sondern auf dem Stack der Funktionsbaustein-Instanz ab. Dies bedeutet, dass sich die Instanzvariable wie andere Variablen der Funktionsbaustein-Instanz verhält und nicht bei jedem Aufruf der Methode neu initialisiert wird.
Instanzvariablen sind nur in Methoden eines Funktionsbausteins erlaubt und Sie können nur innerhalb der Methode auf eine solche Variable zugreifen. Die Variablenwerte von Instanzvariablen monitoren Sie im Deklarationsteil der Methode.
Eine Instanzvariable kann nur dann mit dem Wert einer anderen Variable initialisiert werden, wenn diese Variable vom Funktionsbaustein aus zugänglich ist. Eine Initialisierung mit anderen Instanzvariablen oder mit Eingabevariablen der Methode ist somit nicht möglich und führt zu einem Übersetzungsfehler.
Sie können Instanzvariablen nicht mit einem Attribut-Schlüsselwort erweitern.
Beispiel:
METHOD MethLast : INT
VAR_INPUT
nVar : INT;
END_VAR
VAR_INST
nLast : INT := 0;
END_VAR
MethLast := nLast;
nLast := nVar;
Siehe auch: