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.
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.
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
.
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.

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