文档介绍:功能和功能块
FC
FB
DB
目标
学****了本章之后,你将...
... 熟悉临时变量的用途
... 能够声明临时变量并在程序中使用
... 熟悉可赋值参数的块的用途
... 能够编程可赋值参数的功能和它们的调用
... 了解功能(FC)和功能块(FB)之间的差别
... 熟悉背景模型和多重背景模型
... 熟悉静态变量的用途
... 能够声明静态变量并在程序中使用
... 能够编程可赋值参数的功能块和它们的调用
局部变量
临时变量
•当相关块执行完毕后被清除
•临时存储在 L stack中
•可在下列块中使用 OB / FC / FB
静态变量
•当相关块执行完毕后仍然 保留
•永久存储在DB中
•只能在FB中使用
局部变量/ 数据
(只在一个块中有效)
全局变量/数据
(在全部程序中有效)
• PII / PIQ
• I/ O
• M / T / C
• DB 区
符号地址
绝对地址
访问方式
临时变量
256 Bytes
事件
所占用的
L stack
1
OB1
OB 1
1
操作系统
程序所占用的局部数据区的总长度
FC 20
有临时
变量
OB1
FC20
FC17
3
3
OB1
FC17
4
4
OB1
FC17
6
6
FC 20
有临时
变量
OB1
FC20
FC17
5
5
FC 17
有临时
变量
2
OB1
FC17
2
7
OB1
7
执行的程序
局部数据堆栈的大小
对于 S7-300:
局部堆栈大小
优先级
256 bytes
1
27
总容量: Kbyte(CPU 313..316)
启动程序(只执行一次)
循环扫描程序
256 bytes
256 bytes
256 bytes
12
3
2
时间中断
日时钟中断
延时处理中断
循环处理中断
循环扫描中的错误处理中断
256 bytes
16
28
26
256 bytes
事件驱动中断
硬件中断
启动过程中的错误处理中断
块所需要的局部数据区的长度
Right Click
练****使用临时变量
#Setpoint
#Setpoint
替换为临时变量
#Setpoint
示例:用输出 LED故障信息指示
Fault_Signal
Display
Acknowledge
Stored_Fault
要求
解决方案
Acknowledge
Stored_Fault
Fault_Signal
Stored_Fault
Fault_Signal
Display
Edge_Memory
Flash_Frequency
P
RS
S
R
Q
Fault_Signal
Edge_Memory
Acknowledge
Stored_Fault
Display
Flash_freq
FC 20
调用FC 20 (. in OB 1)
可以分配参数的块
A(
A I
R M
A I
FP M
S M
A M
)
A M
O
A I
AN M
= Q
不可以分配参数的块
形式参数
M
M
I
I
Q
M
实际参数
A(
A #Acknowledge
R #Stored_Fault
A #Fault_Signal
FP #Edge_Memory
S #Stored_Fault
A #Stored_Fault
)
A #Flash_Freq.
O
A #Fault_Signal
AN #Stored_Fault
= #Display
可以分配参数的块
FC 20 的 STL程序