Sequence blocks

Preset

Step

Start

Stop

Transition

Splitting transition

Joining transition

Introduction Sequence blocks

This library provides the possibility to realise a sequential function chart. It provides function blocks to manipulate the control flow of a program to work gradually along a series of conditions.

The sequential control blocks in this library provide the medium to partition a program into a set of interconnected steps and transitions.

The actions will be represented by step flags (or tokens). Depending on the state of the step flag, a step is either active or inactive. Each step has an associated set of actions which are executed, if the step is active.

A transition is a passage between steps. Each transition has an associated condition. Depending on the Boolean condition, a transition passes a step flag from (one or more) predecessor steps to (one or more) successor steps.

To be able to function properly, a sequence control must have one step active at the start of processing. Such a step is called an initial step or initially active step. Furthermore it needs at least one normal working step and finally a final step to finish the sequence. The steps are interconnected by transitions.

All sequences contained in a Macro or Program block belong to a structure net. A sequence net may also span more than one macro or program block when special sequence connections exist between the single blocks. To connect steps and transitions special data types and connectors are used (TOTRANS and TOSTEP).

Irrespective of the number of steps and hierarchical order of sequences, a sequence net is transformed, for the purpose of evaluation, into a separate structural block similar to a macro block. This block is not visible for the user, and has the effect that the runtime evaluation of all steps and associated transitions is performed in one unit.

The processing of the steps occurs according to the sequence connections. So the working process is serialized where all steps are numbered sequentially. The function block numbers have no influence on this numbering scheme.

By using the sequence blocks Splitting transition and Joining transition, several sequence chains can be created, which are processed simultaneously.

It is also possible to create alternative branches or loops. In this case the programming has to be done very carefully to not produce unwanted effects for the sequence flow like dead locks or infinite loops.

The Preset function block can be used to reset a sequence net to a preset configuration.