Um den Code aus untergeordneten Disziplinkomponenten in den Code einer POU einzufügen wird das Plug-Socket-Prinzip in Kommentaren angewendet.
Bei diesem Prinzip wird der Kommentar durch den Code der untergeordneten Komponente, die mit ihrem Plug auf den angegebenen Socket passt, vollständig ersetzt.
Der Kommentar muss zu diesem Zweck einen Replace-Parameter enthalten, der den Namen des Sockets trägt.
// M8B_Socket:CodeSocket1_M8E
In grafischen Sprachen können innerhalb des Codebereichs Kommentare nur in Netzwerken erzeugt werden. Für diese wird nicht nur der Kommentar, sondern das komplette markierte Netzwerk gelöscht.
Es ist möglich, mehrere Socket-Markierungen innerhalb des Codes anzugeben. An jeder so markierten Stelle wird nur der Code von untergeordneten Komponenten eingefügt, dessen Plug zu diesem Socket passt. Sind mehrere passende Socket-Markierungen vorhanden (gleicher Name), so wird der Code für alle diese Markierungen eingefügt.
Handelt es sich bei der untergeordneten Komponente um eine Referenz, so wird statt des Codes ein Call auf deren referenzierte Komponente eingefügt.
Für Komponenten, die mit der Sprache Strukturierter Text (ST) geschrieben sind, kann das Plug-Socket-Prinzip sowohl in Zeilen-, als auch in Blockkommentaren angewendet werden.
// M8B_Socket:CodeSocket1_M8E
(* M8B_Socket:CodeSocket1_M8E *)
Replace-Parameter in Blockkommentar einer POU:
IF g_ErrorQuit THEN Fault[0] := FALSE;
END_IF;
(*M8B_Socket:ST_Socket=Socket_ST_1_M8E*)
IF STATION_ON AND NOT g_OmacAutoMoving THEN
(* limit MasterEncOffset to valid values *)
tmpLreal := limit_Period();
END_IF;
Einzufügender Code einer untergeordneten Komponente mit passendem Plug:
InsertVar1 = 0
IF A > 0 THEN OutVar := FALSE
END_IF
POU mit eingefügtem Code aus untergeordneter Komponente:
IF g_ErrorQuit THEN Fault[0] := FALSE;
END_IF;
InsertVar1 = 0
IF A > 0 THEN OutVar := FALSE;
END_IF
IF STATION_ON[0] AND NOT g_OmacAutoMoving THEN
(* limit MasterEncOffset to valid values *)
tmpLreal := limit_Period();
END_IF;