Das Verbergen von Variablen und Bausteinen mit dem Pragma {attribute 'hide'}
ist in den allermeisten Fällen nicht zielführend. Verwenden Sie deshalb bevorzugt
das Pragma {attribute 'conditionalshow'}
.
Das Pragma verhindert, dass die mit ihm definierten Variablen und Programmierbausteine in der CODESYS-Oberfläche angezeigt werden. Somit können Sie diese Bezeichner bewusst verbergen, ohne dass der Zugriff eingeschränkt ist. Das kann nützlich sein, wenn Sie Bibliotheken entwickeln.
Betroffene Funktionalitäten:
-
Bibliotheksverwaltung
-
Debugging
-
Eingabehilfe
-
Funktion “Komponenten auflisten"
-
Monitoring
-
Symbolkonfiguration
Die mit dem Pragma definierten Variablen oder Bausteine sind weder im Bibliotheksverwalter sichtbar, noch werden sie in der Eingabehilfe oder bei der Funktion "Komponenten auflisten" angeboten. Das Pragma verhindert, dass damit gekennzeichnete Variablen in der Symbolkonfiguration angezeigt werden. Sie können solche Variablen somit nicht als Symbol exportieren. Auch im Onlinebetrieb sind die Variablen unsichtbar, folglich können deren Werte nicht überwacht werden. Außerdem können Sie keine Debugging-Funktionalitäten anwenden und haben keine Unterstützung bei einer Fehlersuche.
Syntax:
{attribute 'hide'}
Einfügeort: Bei Variablen oberhalb der Zeile mit der Deklaration der Variablen. Bei Programmierbausteinen in der ersten Zeile.
Wenn Sie als Applikationsentwickler den Instanzpfad der verborgenen Bausteine und Variablen exakt kennen, können Sie auf diese im Code zugreifen.
Beispiel verborgene Variable
Der Funktionsbaustein FB_MyA
enthält das Attributpragma {attribute 'hide'}
, um die lokale Variable xInvisibleIn
zu verberben.
FUNCTION_BLOCK FB_MyA VAR_INPUT iInA : INT; {attribute 'hide'} xInvisibleIn : BOOL; xInit: BOOL; END_VAR VAR_OUTPUT iOutA : INT; END_VAR VAR iCounter : INT; END_VAR
Im Hauptprogramm werden 2 Instanzen des Funktionsbausteins FB_MyA
definiert.
PROGRAM PLC_PRG VAR fbMyA1, fbMyA2 : FB_MyA; xVar2 : BOOL; iVar1 : INT; iVar2 : INT; END_VAR fbMyA1(iInA := 1, xInit := TRUE, xInvisibleIn := TRUE, iOutA => iVar1); fbMyA2(iInA := 1, xInit := TRUE, iOutA => iVar2);
Während nun ein Eingabewert für fbMyA1
implementiert wird, zeigt die Funktion "Komponenten auflisten", die sich beim Tippen
von fbMyA1.
(im Implementierungsteil von PLC_PRG
) öffnet, die Variablen iInA
, xInit
und iOutA
an, nicht aber die versteckte Variable xInvisibleIn
.
Beispiel verborgener Bibliotheksbaustein
FB_A
ist ein Baustein der Bibliothek HiddenFunctionality
mit dem Standard-Namensraum HIDDEN
. Um den Bezeichner und den Bausteincode vor Applikationsentwicklern zu verbergen,
beginnt die Deklaration des Bausteins mit dem Attributpragma {attribute 'hide'}
. Um die untergeordneten Programmierbausteine (Aktionen, Methoden, Eigenschaften,
Transitionen) genauso zu verbergen, beginnen auch deren Deklarationen mit {attribute 'hide'}
.
{attribute 'hide'} FUNCTION_BLOCK FB_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR iA : INT; iCount : INT; iInvisible : INT; END_VAR {attribute 'hide'} METHOD METH_Count : INT VAR_INPUT END_VAR iCount := iCount + 1; {attribute 'hide'} METHOD METH_Invisible : BOOL VAR_INPUT END_VAR iInvisible := iInvisible + 1; {attribute 'hide'} PROPERTY PUBLIC prop_iA : INT
Für Sie als Applikationsentwickler sind alle Bausteine unsichtbar. Nur wenn Sie den Instanzpfad kennen, können Sie diese verwenden.
PROGRAM PLC_PRG VAR fbHidden : HIDDEN.FB_A; // Hidden function block from library HiddenFunctionality iCounter : INT; END_VAR fbHidden.METH_Invisible(); iCounter := fbHidden.iInvisible;
Im Onlinebetrieb wird kein Monitoring durchgeführt.

Mit dem Pragma {attribute 'hide_all_locals'}
können Sie alle lokalen Variablen eines Programierbausteins verbergen.