Sequential function chart
Encyclopedia
Sequential function chart (SFC) is a graphical programming language used for PLCs
. It is one of the five languages defined by IEC 61131-3
standard. The SFC standard is defined in IEC 848, "Preparation of function charts for control systems", and was based on GRAFCET (itself based on binary petri nets
).
It can be used to program processes that can be split into steps.
Main components of SFC are:
Steps in an SFC diagram can be active or inactive. Actions are only executed for active steps. A step can be active for one of two motives:
(1) It is an initial step as specified by the programmer
(2) It was activated during a scan cycle and not deactivated since
Steps are activated when all steps above it are active and the connecting transition is superable (i.e. its associated condition is true). When a transition is passed, all steps above are deactivated at once and after all steps below are activated at once.
Actions associated with steps can be of several types, the most relevant ones being Continuous (N), Set (S) and Reset (R). 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 (Ladder Diagram) actions inside an SFC program (and this is the standard way, for instance, to work on integer variables).
SFC is an inherently parallel language in that multiple control flows (POUs 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.
Programmable logic controller
A programmable logic controller or programmable controller is a digital computer used for automation of electromechanical processes, such as control of machinery on factory assembly lines, amusement rides, or light fixtures. PLCs are used in many industries and machines...
. It is one of the five languages defined by IEC 61131-3
IEC 61131-3
IEC 61131-3 is the third part of the open international standard IEC 61131 for programmable logic controllers, and was first published in December 1993 by the IEC...
standard. The SFC standard is defined in IEC 848, "Preparation of function charts for control systems", and was based on GRAFCET (itself based on binary petri nets
Petri net
A Petri net is one of several mathematical modeling languages for the description of distributed systems. A Petri net is a directed bipartite graph, in which the nodes represent transitions and places...
).
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
Steps in an SFC diagram can be active or inactive. Actions are only executed for active steps. A step can be active for one of two motives:
(1) It is an initial step as specified by the programmer
(2) It was activated during a scan cycle and not deactivated since
Steps are activated when all steps above it are active and the connecting transition is superable (i.e. its associated condition is true). When a transition is passed, all steps above are deactivated at once and after all steps below are activated at once.
Actions associated with steps can be of several types, the most relevant ones being Continuous (N), Set (S) and Reset (R). 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 (Ladder Diagram) actions inside an SFC program (and this is the standard way, for instance, to work on integer variables).
SFC is an inherently parallel language in that multiple control flows (POUs 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.