Skip to main content

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

Esempio 125. Esempio
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:

  • sa_icon_message.png SA0167: Istanza del blocco funzione temporaneo: 'methafb'