Le pragma {attribute call_after_init} permet de définir une méthode appelée de façon implicite après l'initialisation d'une instance de bloc fonction. Pour des performances optimales, associez l'attribut à la fois au bloc fonction et à la méthode d'instance à appeler. Il convient d'appeler la méthode après FB_Init et après avoir appliqué les valeurs de variable d'une expression d'initialisation dans la déclaration d'instance.
NOTE : les erreurs de compilation seront détectées si les déclarations VAR_INPUT sont utilisées dans des méthodes contenant cet attribut. Cela est dû au fait que les variables d'entrée sont inconnues lorsque la méthode est appelée implicitement lors d'un changement en ligne.
{attribute 'call_after_init'}
Avec la définition suivante :
{attribute 'call_after_init'}
FUNCTION_BLOCK FB
... <functionblock definition>
{attribute 'call_after_init'}
METHOD FB_AfterInit
... <method definition>
… la déclaration suivante :
inst : FB := (in1 := 99);
… déclenche le traitement du code dans l'ordre suivant :
inst.FB_Init();
inst.in1 := 99;
inst.FB_AfterInit();
FB_Afterinit permet donc d'indiquer l'action à effectuer suite à une initialisation définie par l'utilisateur.