S7PLC的功能和功能块
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 结构化程序
所谓结构化程序,就是处理复杂自动化控制任务的过程 中,为了使任务更易于控制,常把过程要求类似或相关的功 能进行分类,分割为可用于几个任务的通用解决方案的小任 务,这些小任务以相应的程序段表示,称为块(FC或FB)。 OB1通过调用这些程序块来完成整个自动化控制任 务。
结构化程序的特点是每个块(FC或FB)在OB1中可能会 被多次调用,以完成具有相同过程工艺要求的不同控制对象。 这种结构可简化程序设计过程、减小代码长度、提高 编程效率,比较适合于较复杂自动化控制任务的设计。
例:正反转编程实例
(二)编辑并调用有参功能(FC)——结构化程序设计
所谓有参功能(FC),是指编辑功能(FC)时,在局部 变量声明表内定义了形式参数,在功能(FC)中使用了虚拟 的符号地址完成控制程序的编程,以便在其他块中能重复调 用有参功能(FC)。这种方式一般应用于结构化程序编写。
例:电机顺序启动编程实例
三、功能(FC)
(一)编辑并调用无参功能(FC)——模块化程序设计
所谓无参功能(FC),是指在编辑功能(FC)时,在局 部变量声明表不进行形式参数的定义,在功能(FC)中直接 使用绝对地址完成控制程序的编程。这种方式一般应用于分 部式结构的程序编写,每个功能(FC)实现整个控制任务的 一部分,不重复调用。
二、功能(FC)和功能块(FB)说明
功能块(FB)有一个数据结构与该功能块的参数完全相 同的数据块,称为背景数据块,背景数据块依附于功能块, 它随着功能块的调用而打开,随着功能块的结束而关闭。 存放在背景数据块中的数据在功能块结束时继续保持。而 功能(FC)则不需要背景数据块,功能调用结束后数据不 能保持。
3.编写控制程序
编写逻辑块(FC和FB)程序时,可以用以下两种方式使 用局部变量:
①使用变量名,此时变量名前加前缀“#”,以区别于在 符号表中定义的符号地址。增量方式下,前缀会自动产生。
②直接使用局部变量的地址,这种方式只对背景数据块和 L堆栈有效。
在调用FB块时,要说明其背景数据块。背景数据块应在调 用前生成,其顺序格式与变量声明表必须保持一致。
编辑并调用有静态参数的功能块
在编辑功能块(FB)时,如果程序中需要特定数据的参数, 可以考虑将该特定数据定义为静态参数,并在FB的声明表内 STAT处声明。
下面以交通信号灯控制系统的设计为例,介绍如何编辑和 调用有静态参数的功能块。
(一)编辑并调用无静态参数的功能块
例:电机顺序启动编程实例
最大嵌套深度:
S7-300:8 16(CPU318)
S7-400:24
2. 线性程序(线性编程)
所谓线性程序结构,就是将整个用户程序连续放置在一 个循环程序块(OB1)中,块中的程序按顺序执行,CPU 通过反复执行OB1来实现自动化控制任务。这种结构和PLC 所代替的硬接线继电器控制类似,CPU逐条地处理指令。 事实上所有的程序都可以用线性结构实现,不过,线性结构 一般适用于相对简单的程序编写。
四、功能块(FB)
功能块(FB)在程序的体系结构中位于组织块之下。它包 含程序的一部分,这部分程序在OB1中可以多次调用。功能 块的所有形参和静态数据都存储在一个单独的、被指定给该 功能块的数据块(DB)中,该数据块被称为背景数据块。当 调用FB时,该背景数据块会自动打开,实际参数的值被存储 在背景数据块中;当块退出时,背景数据块中的数据仍然 保持。
S7-300/400PLC的功能与功能块
E_Mail:
一、S7-300/400中的程序
1.用户程序中的块结构
操作系统
DB
DB
循环 FC
定时
OB 组织块
过程 FB
故障
图例: OB--组织块 FB--功能块 FC--功能 SFB--系统功能块 SFC--系统功能
FB FB带背景数据块
FB
SFC
FC
SFB
1. 局部变量声明表 每个逻辑块前部都有一个变量声明表,称为局部Байду номын сангаас量声明
表。
局部数据分为参数和局部变量两大类,局部变量又包括静 态变量和临时变量(暂态变量)两种。
2.定义形式参数
选择参数类型
输入参数名称
从下拉列表中选择数据类型
参数注解 定义输入参数 定义输出参数
数据类型下拉列表
定义输入/输出参数
3.模块化程序
所谓模块程序,就是将整个程序按任务分成若干个部分, 并分别放置在不同的功能(FC)、功能块(FB)及组织块 中,在一个块中可以进一步分解成段。在组织块OB1中 包含按顺序调用其他块的指令,并控制程序执行。
在分部程序中,既无数据交换,也不存在重复利用的程 序代码。功能(FC)和功能块(FB)不传递也不接收参数, 分部程序结构的编程效率比线性程序有所提高,程序测试也 较方便,对程序员的要求也不太高。对不太复杂的 控制程序可考虑采用这种程序结构。