Skip to main content

Attributo: call_after_init

Importante

VAR_INPUT le dichiarazioni in funzioni o metodi che utilizzano questo attributo portano a errori di compilazione. Motivo: in questo caso le variabili di input sono sconosciute al momento del richiamo, che si verifica implicitamente durante la modifica online.

Importante

Le funzioni contrassegnate con questo attributo verranno eseguite solo se sono state compilate e scaricate nel controller.

Se la funzione non viene chiamata in nessun'altra parte del progetto, il compilatore può escludere la funzione dalla build. Per assicurarti che la funzione sia sempre compilata e disponibile per l'esecuzione, aggiungi {attribute 'linkalways'} alla dichiarazione della funzione.

In alternativa, puoi anche abilitare Link sempre opzione nella finestra di dialogo delle proprietà della funzione in Costruisci scheda.

Senza questa opzione, la funzione di inizializzazione potrebbe non essere eseguita, anche se sembra configurata correttamente.

Nota

Questa funzionalità è supportata dalla versione del compilatore 3.4.1.0.

L'effetto di questo pragma è che un metodo viene chiamato implicitamente dopo l'inizializzazione di un'istanza di blocco funzione. Per motivi di prestazioni è necessario aggiungere l'attributo sia al blocco funzione che al metodo nella sua prima riga sopra la parte di dichiarazione.

Un metodo con questo pragma è chiamato dopo il FB_Init metodo e dopo che il valore della variabile di un'espressione di inizializzazione è stato valido nella dichiarazione di istanza.

Sintassi:

{attribute 'call_after_init'}

Richiamo: prima riga sopra la parte di dichiarazione del metodo e del blocco funzione

Esempio 259. esempio

Definizione

{attribute 'call_after_init'}
FUNCTION_BLOCK FB_DoIt
... <functionblock definition>

{attribute 'call_after_init'}
METHOD FB_AfterInit
... <method definition>

La dichiarazione implementa la seguente dichiarazione nella successiva elaborazione del codice:

fbDoIt : FB_DoIt := (in1 := 99);

Elaborazione del codice

fbDoIt.FB_Init();
fbDoIt.in1 := 99;
fbDoIt.FB_AfterInit();

Ciò consente una reazione all'inizializzazione definita dall'utente in FB_AfterInit.