Skip to main content

Attribut: hide

Wichtig

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 Features:
  • Bibliotheksverwaltung

  • Debugging

  • Eingabehilfe

  • Feature “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.

Wenn Sie als Applikationsentwickler den Instanzpfad der verborgenen Bausteine und Variablen exakt kennen, können Sie auf diese im Code zugreifen.

Syntax:

{attribute 'hide'}

Einfügeort: Bei Variablen oberhalb der Zeile mit der Deklaration der Variablen. Bei Programmierbausteinen in der ersten Zeile.

Beispiel 268. 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 269. 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.

_cds_img_hidden_pous.png


Tipp

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