Skip to main content

Attributo: hide

Importante

Utilizzando il pragma {attribute 'hide'} nascondere variabili e POU non ha l'effetto desiderato nella maggior parte dei casi. Invece, dovresti usare il file {attributo 'conditionalshow'}. pragma.

Il pragma impedisce che le variabili e le POU definite con esso vengano mostrate nel CODESYS interfaccia utente. Di conseguenza, puoi nascondere intenzionalmente questi identificatori senza limitare l'accesso. Questo può essere utile quando si sviluppano librerie.

. Influisce sulle caratteristiche:
  • Gestione della biblioteca

  • Debug

  • Assistente di input

  • Funzione "Elenca componenti".

  • Monitoraggio

  • Configurazione dei simboli

Le variabili o le POU definite con il pragma non sono né visibili nel Library Manager né sono suggerite nell'Input Assistant o nella funzione "List components". Il pragma impedisce che quelle variabili decorate vengano visualizzate nella configurazione dei simboli. Di conseguenza, non è possibile esportare questo tipo di variabili come simboli. Le variabili sono invisibili anche in modalità online e quindi i loro valori non possono essere monitorati. Inoltre, non puoi utilizzare alcuna funzionalità di debug e non hai alcun supporto durante il controllo dei bug.

Se tu, lo sviluppatore dell'applicazione, conosci il percorso esatto dell'istanza delle POU nascoste e delle variabili, puoi accedervi nel codice.

Sintassi:

{attribute 'hide'}

Inserisci posizione: per le variabili, sopra la riga con la dichiarazione delle variabili. Per le POU, nella prima riga.

Esempio 268. Variabile nascosta

Il blocco funzione FB_MyA contiene l'attributo pragma {attribute 'hide'} per nascondere la variabile 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

Due istanze del blocco funzione FB_MyA sono definiti nel programma principale.

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

Mentre un valore di input per fbMyA1 è ora implementata la funzione 'Elenca componenti', che si apre durante la digitazione fbMyA1. (nella parte attuativa del PLC_PRG), visualizza le variabili iInA, xInit, e iOutA, ma non la variabile nascosta xInvisibleIn.



Esempio 269. Libreria nascosta POU

FB_A è un blocco funzione della libreria HiddenFunctionality con lo spazio dei nomi predefinito HIDDEN. Per nascondere l'identificatore e il codice POU agli sviluppatori dell'applicazione, iniziare la dichiarazione della POU con l'attributo pragma {attribute 'hide'}. Per nascondere allo stesso modo le POU subordinate (azioni, metodi, proprietà e transizioni, iniziare anche le loro dichiarazioni con {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

Per te come sviluppatore di applicazioni, tutte le POU sono invisibili. Puoi usarli solo se conosci il percorso dell'istanza.

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

In modalità online, non viene eseguito alcun monitoraggio.

_cds_img_hidden_pous.png


Suggerimento

Con il {attributo 'hide_all_locals'} pragma, puoi nascondere tutte le variabili locali di una POU.