Attribute hide
Le pragma {attribute 'hide'}
permet d'empêcher l'affichage de variables, voire de signatures complètes, dans la fonctionnalité de liste des composants ou l'aide à la saisie ou la partie déclaration en mode en ligne ou la configuration de symbole. Seule la variable suivant le pragma sera masquée.
Si vous connaissez le chemin d'instance d'une variable, vous pouvez l'adresser dans le code même si {attribute 'hide'}
lui est affecté.
Cela peut être utile pour les développeurs de bibliothèques.
{attribute 'hide'}
Pour masquer toutes les variables locales d'une signature, utilisez attribute hide_all_locals.
Le bloc fonction myPOU est implémenté avec l'attribut :
FUNCTION_BLOCK myPOU
VAR_INPUT
a:INT;
{attribute 'hide'}
a_invisible: BOOL;
a_visible: BOOL;
END_VAR
VAR_OUTPUT
b:INT;
END_VAR
Dans le programme principal, deux instances du bloc fonction myPOU sont définies :
PROGRAM PLC_PRG
VAR
POU1, POU2: myPOU;
END_VAR
Lors de l'affectation d'une valeur d'entrée à POU1
, la fonctionnalité de liste des composants (accessible en saisissant POU1
dans la partie implémentation de PLC_PRG
) affichera les variables d'entrée a
et a_visible
(et la variable de sortie b
). La variable d'entrée masquée a_invisible
ne sera pas affichée.
Pour masquer les POU subordonnés (méthodes et propriétés, par exemple) de la même manière, insérez le pragma {attribute 'hide'}
au début des déclarations.
{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
Ces POU ne seront pas affichés lors du développement de l'application. Ils restent néanmoins accessibles via leur chemin d'instance.
PROGRAM PLC_PRG
VAR
fbHidden : FB_A; // Hidden function block from library HiddenFunctionality
iCounter : INT;
END_VAR
fbHidden.METH_Invisible();
iCounter := fbHidden.iInvisible;
La surveillance n'est pas effectuée en mode en ligne.