Function Blocks are equivalent to Integrated Circuits (ICs), representing a specialized control function. They consist data as well as the algorithm, so they can keep track of the past which is one of the differences of Functions. They have a well defined interface and hidden internals, like a black box or IC. In this way they give a clear separation between different levels of maintenance people, or programmers.
A temperature control loop, or PID, is an excellent sample of a Function Block. It can be used over and over again once defined in the same program, different programs, or even different projects. This makes them highly reusable. Function Blocks can be written in any of the IEC languages, and in the most cases using C language programming. They can be defined by the user. Derived Function Blocks are based on the standard defined FBs, but also completely new, customized FBs are possible within the standard. It just provides the framework.
With the above mentioned basic building blocks, we can say that a program is a network of Functions and Function Blocks. A program can be written in any of the defined programming languages.
Sequential Function Chart (SFC) describes graphically the sequential behavior of a control program. It is derived from Petri Nets and IEC 848 Grafcet, with the changes necessary to convert the representation from a documentation standard to a set of execution control elements.
SFC structures the program of internal organization, and helps to decompose a control problem into manageable parts, while maintaining the overview. SFC contains of steps, linked with Action Blocks and Transitions. Each step represents a state of particular of the system being controlled. A transition is associated with a condition, which, when true, causes the step before the transition to be deactivated, and the next step to activate. Steps are linked to action blocks, performing a certain control action. Each element can be programmed in any IEC languages, including SFC language.