SA0167 : Instances de bloc fonction temporaires
Le contrôle détermine les instances de bloc fonction qui sont déclarées en tant que variables temporaires. Cela affecte les instances qui sont dans une méthode ou dans une fonction ou comme VAR_TEMP
sont déclarés, et qui sont donc réinitialisés à chaque cycle de traitement ou à chaque appel de bloc.
Justification:
Les blocs fonctionnels ont un état qui est généralement conservé sur plusieurs cycles automate. Une instance sur la pile n'existe que pendant la durée de l'appel de fonction. Par conséquent, il est rarement judicieux de créer une instance en tant que variable temporaire.
Deuxièmement, les instances de blocs fonctionnels sont souvent volumineuses et nécessitent beaucoup d’espace sur la pile (qui est généralement limitée aux contrôleurs).
Troisièmement, l'initialisation et souvent aussi la planification d'un bloc fonctionnel peuvent prendre beaucoup de temps.
Importance : Moyenne
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
Sortie dans le messages voir:
SA0167 : Instance de bloc fonction temporaire : 'methafb'