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 ...