功能和功能块 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程序