13 Functions and Function Blocks
13 Functions and Function Blocks
... be able to declare static variables and apply them in the program
absolute symbolic
Access
Declaration
OB 1 FC 17 FC 20
3
2
with temp. with temp.
variables 4
variables
5 FC 30
7 with temp.
6
variables
Result 1 2 3 4 5 6 7
Usage of
the L
256 Bytes
stack FC30
FC20
FC17 FC17 FC17 FC17 FC17
OB1 OB1 OB1 OB1 OB1 OB1 OB1
Task
Fault_Signal
Acknowledge
Stored_Fault
Display
Solution Suggestion
FC 20
A I 1.1 A #Fault_Signal I 1.1 Fault_
FP M 17.2 FP #Edge_Memory
Signal
S M 17.1 S #Stored_Fault I 1.0 Display Q 5.1
Ackno
A I 1.0 A M
wledg
10.3 e
R M 17.1 #Acknowledge R
M Flash
A M 17.1 #Stored_Fault
M17.1
17.2 _Freq
A M 10.3 A #Stored_Fault .
O A #Flash_Freq.
Stored_
AN M 17.1 O Fault
A I 1.1 AN #Stored_Fault Edge_
Formal parameters
Memor
= Q 5.1 A y
Actual parameters
#Fault_Signal
= #Display
SIMATIC S7 Date 2/8/2012 SITRAIN Training for
Automation and Industrial Solutions
Siemens AG 2006. All rights reserved. : PRO1_11E.7
Declaring Formal Parameters
DI DO
Q 4.1
L_SYSTEM
L_MAN Q 4.2
L_AUTO Q 4.3
L_Conv_
I 1.0 T_Ackn_Fault
Fault
I 1.1 S_Fault1 Q 5.1
I 1.2 L_Fault1 Q 5.2
S_Fault2
L_Fault2
Declaration Table
of the
Function Block
Call of
function block
such as in OB1 DB 2
FB 20
EN
Fault_Signal
Acknowledge
Display
Flash_frequency ENO
Declaration Table
of the
Function Block
Instance
Data Block
DI DO
L_SYSTEM Q 4.1
L_MAN Q 4.2
L_AUTO Q 4.3
L_Conv_
I 1.0 T_Ackn_Fault Fault
I 1.1 S_Fault1 L_Fault1 Q 5.1
I 1.2 S_Fault2 L_Fault2 Q 5.2
I 1.3 S_Fault3 Q 5.3
I 1.4 S_Fault4 L_Fault3 Q 5.4
L_Fault4
Block inconsistency
FC 1
Unconditional call ... EN ENO CALL 1
FC NOP 0
FC 1 Q5.0
A I 0.1
Conditional call I 0.1 EN ENO = JNB _001
CALL FC 1
_001: A BR
= Q 5.0
Example
ADD_I MUL_I DIV_I
Q 5.1
Language without parameters with parameters w/o parm., w/o stat var. with parm., and/or stat var
FC1
CALL DB3
FC2 FB2
FC1 EN Par3 Par3
FBD not available EN
EN Par1
ENO
Par1
ENO
ENO Par2
Par2
Statement
Global Local Absolute Symbolic Static Parameter
L #Number_1
L #Number_2
T #Maximum_value
L „Number_1"
T MW 40
T #MNWum40ber_2