Controlling a SFC child program

Controlling a child program may be simply achieved by specifying the name of the child program as an action block in a step of its parent program. Below 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 de-activated.
Child (S); Starts the child program when the step is activated
(Inital 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, you can use the following statements in an action block programmed in ST language. In the following table, "prog" represents the name of the child program:

GSTART (prog); Starts the child program when the step is activated
(Inital 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.

You can also 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

Note: When a child program is started by its parent program, it keeps the "inactive" status until it is executed (further in the cycle). If you start a child program in a SFC chart, GSTATUS will return 1 (active) on the next cycle.