Skip to main content

Attribut : masquer

Important

Utiliser le pragma {attribute 'hide'} masquer les variables et les POU n'a pas l'effet souhaité dans la plupart des cas. Au lieu de cela, vous devriez utiliser le {attribut 'conditionalshow'}. pragma.

Le pragma empêche les variables et les POU définis avec lui d'être affichés dans le CODESYS interface utilisateur. Par conséquent, vous pouvez masquer intentionnellement ces identifiants sans restreindre l'accès. Cela peut être utile lorsque vous développez des bibliothèques.

. Affecte les fonctionnalités :
  • Gestion de la bibliothèque

  • Débogage

  • Assistant de saisie

  • Fonction "Liste des composants"

  • Surveillance

  • Configuration des symboles

Les variables ou POU définies avec le pragma ne sont ni visibles dans le gestionnaire de bibliothèques ni suggérées dans l'assistant de saisie ou dans la fonction "Liste des composants". Le pragma empêche ces variables décorées d'être affichées dans la configuration du symbole. Par conséquent, vous ne pouvez pas exporter ces types de variables sous forme de symboles. Les variables sont également invisibles en mode en ligne, et donc leurs valeurs ne peuvent pas être surveillées. De plus, vous ne pouvez utiliser aucune fonctionnalité de débogage et vous n'avez aucune assistance lors de la recherche de bogues.

Si vous, le développeur de l'application, connaissez le chemin d'instance exact des POU et des variables masqués, vous pouvez y accéder dans le code.

Syntaxe:

{attribute 'hide'}

Emplacement d'insertion : Pour les variables, au-dessus de la ligne avec la déclaration des variables. Pour les POU, en première ligne.

Exemple 268. Variable cachée

Le bloc fonction FB_MyA contient l'attribut pragma {attribute 'hide'} pour masquer la variable locale xInvisibleIn.

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

Deux instances du bloc fonction FB_MyA sont définis dans le programme principal.

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);

Alors qu'une valeur d'entrée pour fbMyA1 est maintenant implémentée, la fonction 'Liste des composants', qui s'ouvre lors de la saisie fbMyA1. (dans la partie mise en œuvre de PLC_PRG), affiche les variables iInA, xInit, et iOutA, mais pas la variable cachée xInvisibleIn.



Exemple 269. Bibliothèque masquée POU

FB_A est un bloc fonction de la bibliothèque HiddenFunctionality avec l'espace de noms par défaut HIDDEN. Pour masquer l'identifiant et le code du POU aux développeurs d'applications, commencez la déclaration du POU par l'attribut pragma {attribute 'hide'}. Pour masquer les POU subordonnées (actions, méthodes, propriétés et transitions) de la même manière, commencez également leurs déclarations par {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

Pour vous, en tant que développeur d'applications, toutes les POU sont invisibles. Vous ne pouvez les utiliser que si vous connaissez le chemin de l'instance.

PROGRAM PLC_PRG
VAR
        fbHidden : HIDDEN.FB_A; // Hidden function block from library HiddenFunctionality
        iCounter : INT;
END_VAR
fbHidden.METH_Invisible();
iCounter := fbHidden.iInvisible;

En mode en ligne, aucune surveillance n'est effectuée.

_cds_img_hidden_pous.png


Astuce

Avec le {attribut 'hide_all_locals'} pragma, vous pouvez masquer toutes les variables locales d'un POU.