Wie wird das Schlüsselwort "RETAIN" für Funktionsbaustein-Instanzen berücksichtigt?
Die →Variablen von →Funktionsbaustein-Instanz werden bzgl. RETAIN und NON_RETAIN so wie jener Abschnitt VAR behandelt, in dem die Funktionsbaustein-Instanz deklariert ist. Das bedeutet:
Falls das Schlüsselwort RETAIN im Abschnitt VAR definiert ist, werden die Variablen der Funktionsbaustein-Instanz so behandelt, als wären sie mit RETAIN deklariert.
Falls das Schlüsselwort NON_RETAIN im Abschnitt VAR definiert ist, werden die Variablen der Funktionsbaustein-Instanz so behandelt, als wären sie mit NON_RETAIN deklariert.
Ausgenommen davon sind die folgenden Fälle:
Eine oder mehrere Variablen wurden ausdrücklich als NON_RETAIN oder RETAIN in der Deklaration des zugehörigen Funktionsbausteins deklariert.
Sind in der Deklaration des zugehörigen Funktionsbausteins erneut Funktionsbaustein-Instanzen deklariert, gilt für deren Variablen nicht die Deklaration von RETAIN oder NON_RETAIN des Abschnitts VAR der ersten Funktionsbaustein-Instanz (sondern jene im zugehörigen Funktionsbaustein).
Hier ein Beispiel zu den oben genannten Regeln:
PROGRAM Test
VAR RETAIN
myFB1 : FB1;
var1 : INT;
END_VAR
END_PROGRAM
FUNCTION_BLOCK FB1
VAR
var2 : INT;
myFB2 : FB2;
myFB3 : FB3;
END_VAR
VAR NON_RETAIN
var3 : INT;
myFB3_2 : FB3;
END_VAR
VAR RETAIN
var7 : INT;
myFB3_3 : FB3;
END_VAR
END_FUNCTION_BLOCK
FUNCTION_BLOCK FB2
VAR
var4 : INT;
END_VAR
VAR NON_RETAIN
var5 : INT;
myFB3 : FB3;
END_VAR
END_FUNCTION_BLOCK
FUNCTION_BLOCK FB3
VAR
var6 : INT;
END_VAR
END_FUNCTION_BLOCK
Die Variable... |
wird als ... behandelt. |
Grund |
Test.var1 |
RETAIN |
Schlüsselwort RETAIN in Zeile 2 |
Test.myFB1.var2 |
RETAIN |
Schlüsselwort RETAIN in Zeile 2 (da kein Schlüsselwort in Zeile 9) |
Test.myFB1.var3 |
NON_RETAIN |
Schlüsselwort NON_RETAIN in Zeile 14 |
Test.myFB1.var7 |
RETAIN |
Schlüsselwort RETAIN in Zeile 18 |
Test.myFB1.myFB2.var4 |
NON_RETAIN |
keine Schlüsselwörter in Zeilen 9 und 25 |
Test.myFB1.myFB2.var5 |
NON_RETAIN |
Schlüsselwort NON_RETAIN in Zeile 28 |
Test.myFB1.myFB3.var6 |
NON_RETAIN |
keine Schlüsselwörter in Zeilen 9 und 35 |
Test.myFB1.myFB3_2.var6 |
NON_RETAIN |
Schlüsselwort NON_RETAIN in Zeile 14 (da kein Schlüsselwort in Zeile 35) |
Test.myFB1.myFB3_3.var6 |
RETAIN |
Schlüsselwort RETAIN in Zeile 18 (da kein Schlüsselwort in Zeile 35) |
Test.myFB1.myFB2.myFB3.var6 |
NON_RETAIN |
Schlüsselwort NON_RETAIN in Zeile 28 (da kein Schlüsselwort in Zeile 35) |
logi.cals empfiehlt Ihnen, die aktuellesten Versionen von logi.CAD 3 und des Laufzeitsystems zu installieren und zu verwenden, damit Sie stets über die neuesten Features und Problembehebungen laut den Release-Notes verfügen.
Hat Ihnen dieser Artikel weitergeholfen? Fanden Sie die benötigte Information in der Benutzerdokumentation?
Falls nicht, kontaktieren Sie das Support-Team von logi.cals. Geben Sie Ihre Fragen oder Ihre Vorschläge zur Verbesserung/Erweiterung der Benutzerdokumentation so detailliert wie möglich an.