Control an SFC Child Program

Controlling a child program can be simply achieved by specifying the name of the child program as an action block in a step of its parent program.

These are possible qualifiers that can be applied to an action block for handling a child program:

Child (N);

Starts the child program when the step is activated and stops (kills) it when the step is deactivated.

Child (S);

Starts the child program when the step is activated.

Initial steps of the child program are activated.

Child (R);

Stops (kills) the child program when the step is activated.

All active steps of the child program are deactivated.

Alternatively, use these statements in an action block programmed in ST language.

In this table, "prog" represents the name of the child program:

GSTART (prog);

Starts the child program when the step is activated.

Initial steps of the child program are activated.

GKILL (prog);

Stops (kills) the child program when the step is activated.

All active steps of the child program are deactivated.

GFREEZE (prog);

Suspends the execution of a child program.

GRST (prog);

Restarts a program suspended by a GFREEZE command.

Use the GSTATUS function in expressions.

This function returns the current state of a child SFC program:

GSTATUS (prog)

Returns the current state of a child SFC program:

0: program is inactive

1: program is active

2: program is suspended


  • When a child program is started by its parent program, it keeps the "inactive" status until it is executed (further in the cycle).
    If a child program is started in an SFC chart, GSTATUS returns 1 (active) on the next cycle.