Programation d'une fonction à effectuer une seule fois au démarrage
Demo de code pour par exemple programmer une borne intelligente (ex: moteur)
Le FunctionBlock (FB) qui ne doit être exécuté qu'une fois:
FUNCTION_BLOCK FB_InitOneTime
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
bInitDone: BOOL := FALSE; (* True when the init is done *)
END_VAR
... (* operations *) bInitDone := TRUE;
Le MAIN exécute fbInitOneTime tant que celui-ci n'est pas terminé. Cela peut donc prendre plusieurs cycles machine (même plusieurs centaines)
PROGRAM MAIN
VAR
fbInitOneTime: FB_InitOneTime;
END_VAR
IF NOT fbInitOneTime.bInitDone THEN
fbInitOneTime();
RETURN;
END_IF
...
