SA0167: Istanze temporanee di blocchi funzionePermalink

Rileva le istanze di blocco funzione dichiarate come variabili temporanee. Ciò riguarda le istanze dichiarate in un metodo o in una funzione o come ‎VAR_TEMP‎, che quindi vengono reinizializzate in ogni ciclo di elaborazione o per ogni chiamata POU.

Giustificazione: I blocchi funzione hanno uno stato che di solito viene mantenuto per più cicli del PLC. Un'istanza sullo stack esiste solo per la durata della chiamata di funzione. Pertanto, raramente ha senso creare un'istanza come variabile temporanea. In secondo luogo, le istanze dei blocchi funzione sono spesso di grandi dimensioni e richiedono molto spazio sullo stack (che di solito è limitato ai controllori). In terzo luogo, l'inizializzazione e spesso anche la programmazione di un blocco funzionale possono richiedere molto tempo.

Importanza: Medio

Esempi

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

--> SA0167: Temporary function block instance: 'methafb'