Sequential function chart
Sequential function chart is a visual programming language used for programmable [logic controller]s. It is one of the five languages defined by IEC 61131-3 standard. The SFC standard is defined as Preparation of function charts for control systems, and was based on .
It can be used to program processes that can be split into steps.
Main components of SFC are:
- Steps with associated actions;
- Transitions with associated logic conditions;
- Directed links between steps and transitions.
- It is an initial step as specified by the programmer.
- It was activated during a scan cycle and not deactivated since.
Actions associated with steps can be of several types, the most relevant ones being Continuous, Set, and Reset. Apart from the obvious meaning of Set and Reset, an N action ensures that its target variable is set to 1 as long as the step is active. An SFC rule states that if two steps have an N action on the same target, the variable must never be reset to 0. It is also possible to insert LD actions inside an SFC program.
SFC is an inherently parallel programming language in that multiple control flows — Program Organization Units in the standard's parlance — can be active at once.
Non-standard extensions to the language include macroactions: i.e. actions inside a program unit that influence the state of another program unit. The most relevant such macroaction is "forcing", in which a POU can decide the active steps of another POU.