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
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.