SA0167: Istanze di blocchi funzione temporanei
Il controllo rileva le istanze del blocco funzione dichiarate come variabili temporanee. Ciò influisce sulle istanze dichiarate in un metodo o in una funzione o come VAR_TEMP
, e quindi vengono reinizializzati in ogni ciclo di elaborazione o per ogni chiamata POU.
Giustificazione:
I blocchi funzione hanno uno stato che viene solitamente mantenuto su più cicli del PLC. Un'istanza nello stack esiste solo per la durata della chiamata alla funzione. Pertanto, raramente ha senso creare un'istanza come variabile temporanea.
In secondo luogo, le istanze dei blocchi funzione sono spesso grandi e richiedono molto spazio nello stack (che di solito è limitato ai controller).
In terzo luogo, l'inizializzazione e spesso anche la programmazione di un blocco funzione possono richiedere molto tempo.
Importanza: Media
PROGRAM PLC_PRG VAR END_VAR VAR_TEMP yafb: AFB; END_VAR
FUNCTION Fun : INT VAR_INPUT END_VAR VAR funafb: AFB; END_VAR
METHOD METH : INT VAR_INPUT END_VAR VAR methafb: AFB; // SA0167 END_VAR
Uscita in Messaggi vista:
SA0167: Istanza del blocco funzione temporaneo: 'methafb'