Wird in CoDeSysV3 per Plug-Socket-Prinzip der Code einer Komponente in eine andere eingefügt (z.B. Netzwerke einfügen), werden zusätzlich zum eingefügten Code alle, nicht bereits vorhandenen, Variablen in die Variablendeklaration der einfügenden Komponente übernommen. Eine bereits deklarierte Variable wird nicht erneut geschrieben, unabhängig davon, in welchen Deklarationsbereich (z.B. VAR_INPUT) sich diese befindet oder welchen Datentyp die Variable in beiden Komponenten hat.
Es werden alle Variablen übernommen, unabhängig davon, ob diese im eingefügten Code verwendet werden oder nicht.
Variablendeklarationen mit Kommentar in der gleichen Zeile werden komplett in den Code der einfügenden Komponente übernommen. Dies gilt auch für Blockkommentare, die in der gleichen Zeile der Variablendeklaration beginnen.
Deklaration der einfügenden Komponente bevor die Variablen übernommen werden:
PROGRAMM Basis_ST
VAR_INPUT
InVar1: BOOL;
END_VAR
VAR
Var1: BOOL;
// comment
VAR2: INT;
END_VAR
Deklaration der einzufügenden Komponente:
PROGRAMM Insert_ST
VAR
Var1: BOOL;
// comment
InsVAR1: BOOL; // comment to InsVar1
InsVAR2: INT; (* block comment
to InsVAR2*)
// free comment
END_VAR
Deklaration der einfügenden Komponente nachdem die Variablen übernommen wurden:
PROGRAMM Basis_ST
VAR_INPUT
InVar1: BOOL;
END_VAR
VAR
Var1: BOOL;
// comment
VAR2: INT;
InsVAR1: BOOL; // comment to InsVar1
InsVAR2: INT; (* block comment
to InsVAR2*)
END_VAR
Sollen Variablen eingefügt werden, für die in der einfügenden Komponente kein Deklarationsbereich vorhanden ist, wird der Deklarationsbereich inklusive der Variablendeklaration eingefügt.
Deklarationsbereiche mit Flags (CONSTANT, PERSISTENT und/oder RETAIN) werden als eigenständige Deklarationsbereiche behandelt, wobei die folgenden Dekarationsgleichheiten gelten:
PERSISTENT <=> PERSISTENT RETAIN <=> RETAIN PERSISTENT
Beispiele zur Erläuterung von Deklarationsgleichheiten:
VAR_INPUTungleichVAR
VARungleichVAR CONSTANT
VAR_OUTPUT PERSISTENT RETAINgleichVAR_OUTPUT PERSISTENT