Skip to main content

usa i pragma

Pragma dentro CODESYS

Un testo nel codice sorgente dell'applicazione racchiuso tra parentesi graffe è considerato un pragma. I pragma vengono utilizzati per inserire istruzioni speciali nel codice che il compilatore può valutare. Un pragma può quindi influenzare le proprietà di una o più variabili rispetto alla precompilazione o alla compilazione (generazione del codice). I pragma che il compilatore non conosce vengono saltati come un commento.

La stringa di istruzioni di un pragma può anche avere più righe.

Per i dettagli sulla sintassi, vedere le descrizioni di ciascuno CODESYS- Pragma.

Esistono pragma per diversi effetti: inizializzazione di una variabile, monitoraggio di una variabile, aggiunta di una variabile alla configurazione del simbolo, forzatura dell'emissione del messaggio durante il processo di compilazione, comportamento di una variabile in determinate condizioni, ecc.

Importante

Le maiuscole e le minuscole devono essere osservate.

Esempio 17. esempi
{warning 'This is not allowed'}

{attribute 'obsolete' := 'datatype fb1 not valid!'}

{attribute 'Test':='TestValue1;
                    TestValue2;
                    TestValue3'}


Possibili posizioni di inserimento

Importante

Pragma dentro CODESYS non sono implementazioni uno-a-uno delle direttive del preprocessore C. Devi posizionare un pragma come una normale affermazione. Non devi usare un pragma all'interno di un'espressione.

Un pragma che il CODESYScompilatore dovrebbe valutare, puoi inserire nelle seguenti posizioni:

  • Nella parte di dichiarazione di un blocco di programmazione:

    • Nell'editor di dichiarazione testuale si immettono pragma direttamente come riga/e, all'inizio del blocco o prima di una dichiarazione di variabile.

    • Nell'editor tabulare inserisci i pragma che dovrebbero apparire sopra la prima riga di dichiarazione nella finestra di dialogo Modifica parte della dichiarazione / attributi uno.

  • In un elenco di variabili globali

  • Nella parte di implementazione di un blocco di programmazione:

    • Il pragma deve trovarsi in una "posizione di istruzione", cioè all'inizio di un blocco di programmazione su una riga separata, oppure dopo un ";" o END_IF, END_WHILE Eccetera.

    • Editor FBD/LD/AWL: inserire i pragma nelle reti dell'editor FBD/KOP/AWL come un'etichetta di salto: a tale scopo selezionare il comando FBD/KOP/STL → Inserisci etichetta di salto. Quindi sostituire il testo predefinito Etichette: nel campo di testo dell'etichetta con la dichiarazione pragma appropriata. Se vuoi usare un pragma oltre a un'etichetta di salto, inserisci prima il pragma e poi l'etichetta di salto.

Esempio 18. Posizionamento errato e corretto di un pragma condizionale

NON CORRETTO:

{IF defined(abc)}
IF x = abc THEN
{ELSE}
IF x = 12 THEN
{END_IF}
y := {IF defined(cde)} 12; {ELSE} 13; {END_IF}
END_IF

CORRETTA:

{IF defined(abc)}
IF x = abc THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{ELSE}
IF x = 12 THEN
{IF defined(cde)}
    y := 12;
{ELSE}
   y := 13;
{END_IF}
END_IF
{END_IF}


Suggerimento

In dialogo proprietà, categoria Tradurre è possibile specificare le definizioni che possono essere interrogate in pragma.

Sfera d'effetto:

A seconda del tipo e del contenuto di un pragma, un pragma influisce su quanto segue:

  • le seguenti dichiarazioni

  • esattamente come indicato di seguito

  • su tutte le istruzioni successive fino a quando non viene nuovamente cancellato con un opportuno pragma

  • su tutte le istruzioni successive fino a quando non viene eseguito lo stesso pragma con parametri diversi o viene raggiunta la fine del codice. "Codice" in questo contesto significa: parte di dichiarazione, parte di implementazione, elenco di variabili globali, dichiarazione di tipo. Pertanto, un pragma che si trova da solo nella prima riga della parte di dichiarazione e non viene sostituito o annullato da un altro influisce sull'intero oggetto.

Categorie Pragma in CODESYS

il CODESYS-I pragma sono suddivisi nelle seguenti categorie: