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.
{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 "
;
" oEND_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 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.
. Quindi sostituire il testo predefinito
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:
attribuire pragma: influisce sulla compilazione e sulla precompilazione
pragma di notifica: Emissione di messaggi definiti dall'utente durante il processo di compilazione
Pragma condizionale: Influenzare la generazione del codice
Pragma personalizzate