PROGRAM MAIN
VAR
    StartRise : R_TRIG;
    SafeDelay : FB_SafeDelay;
END_VAR

StartRise(CLK := g_StartCmd);
SafeDelay(
    Execute := StartRise.Q,
    Reset := g_ResetCmd,
    DelayTime := T#500ms
);

IF g_ResetCmd THEN
    g_Station.State := Idle;
    g_Station.Done := FALSE;
    g_Station.Error := FALSE;
    g_Station.ErrorID := 0;
ELSIF SafeDelay.Done THEN
    g_Station.State := Complete;
    g_Station.Done := TRUE;
END_IF
END_PROGRAM
