Skip to main content

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

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

  • sa_icon_message.png SA0167 : Instance de bloc fonction temporaire : 'methafb'