S7-1200 Programmable controller
System Manual, 11/2011, A5E02486680-05
61
PLC concepts
4
4.1
Execution of the user program
The CPU supports the following types of code blocks that allow you to create an efficient
structure for your user program:
●
Organization blocks (OBs) define the structure of the program. Some OBs have
predefined behavior and start events, but you can also create OBs with custom start
events. Valid OB number ranges are shown in Event execution priorities and queuing
●
Functions (FCs) and function blocks (FBs) contain the program code that corresponds to
specific tasks or combinations of parameters. Each FC or FB provides a set of input and
output parameters for sharing data with the calling block. An FB also uses an associated
data block (called an instance DB) to maintain state of values between execution that can
be used by other blocks in the program. Valid FC and FB numbers range from 1 to
65535.
●
Data blocks (DBs) store data that can be used by the program blocks. Valid DB numbers
range from 1 to 65535.
Execution of the user program begins with one or more optional start-up organization blocks
(OBs) which are executed once upon entering RUN mode, followed by one or more program
cycle OBs which are executed cyclically. An OB can also be associated with an interrupt
event, which can be either a standard event or an error event, and executes whenever the
corresponding standard or error event occurs.
A function (FC) or a function block (FB) is a block of program code that can be called from
an OB or from another FC or FB, down to the following nesting depths:
●
16 from the program cycle or startup OB
●
4 from time delay interrupt, cyclic interrupt, time of day interrupt, hardware interrupt, time
error interrupt, or diagnostic error interrupt OB
FCs are not associated with any particular data block (DB), while FBs are tied directly to a
DB and use the DB for passing parameters and storing interim values and results.
The size of the user program, data, and configuration is limited by the available load memory
and work memory in the CPU. There is no specific limit to the number of each individual OB,
FC, FB and DB block. However, the total number of blocks is limited to 1024.
Each cycle includes writing the outputs, reading the inputs, executing the user program
instructions, and performing background processing. The cycle is referred to as a scan cycle
or scan.
The modules (SM, SB, CB, CM or CP) are detected and logged in only upon power-up.