Detecta instancias de bloques de funciones que se declaran como variables temporales.
Esto afecta a las instancias que se declaran en un método o función o como VAR_TEMP, y por lo tanto se reinicializan en cada ciclo de procesamiento o para cada llamada
POU.
Justificación: Los bloques de función tienen un estado que normalmente se mantiene durante varios ciclos del PLC. Una instancia en la pila sólo existe mientras dura la llamada a la función. Por lo tanto, rara vez tiene sentido crear una instancia como variable temporal. En segundo lugar, las instancias de bloques de funciones suelen ser grandes y necesitan mucho espacio en la pila (que suele estar restringida a los controladores). En tercer lugar, la inicialización y a menudo también la programación de un bloque de funciones puede llevar mucho tiempo.
Importancia: Medio
Ejemplos
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'