当前位置:文档之家› 第六章 结构化编程

第六章 结构化编程

系统功能(SFC) 系统功能块(SFB) 系统数据块(SDB)
二。块的含义及调用
• (一).功能(FC)
• 功能是用户所编写的无固定存储区的块。它为不带“记忆” 的逻辑块。所谓不带“记忆”表示没有背景数据块。当完 成操作后,数据不能保持。这些数据为临时变量,对于那 些需要保存的数据只能通过共享数据块(SB)来存储。 调用功能时,需要用实参来代替形参。
配料A
流量传感器 进料阀
M
进料泵 入口阀
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
5.故障检测 进料泵启动7s之后, 流量传感器会报溢出。 6.故障检测 进料运行时,若流量 传感器没有流量信号,则进料泵关 闭。 7.维护 进料泵启动次数大于50 次,必须维护。
搅拌区的混合罐中装有3个传感 器:灌装满传感器(装满之后,触 点断开),罐不空传感器,罐液体 最低限位(达到最低限位,触点关 闭)。
• 模块化编程:将程序分成根据功能分成不同的逻辑块,没 一逻辑块的功能不同,然后在OB1中可以根据条件调用不 同的功能块,特点是易于分工合作,调试方便。
• 结构化编程:结构化编程是将过程要求中类似或相似的任 务归类,在功能或功能块中编程,形成通用的解决方案。
一。块的分类
用户程序 操作系统
系统程序
组织块(OB),直接有系统调用 功能块(FB),由其他逻辑块调用 功能(FC),由其他逻辑块调用。 数据块(DB),
临时变量
类型 IN OUT IN_OUT STAT
TEMP


为调用逻辑块提供数据,输入给逻辑块。
从逻辑块中输出数据结果
参数值可以输入,也可以输出
静态变量存储于背景数据块中,块调用结束后, 变量被保留
临时变量存储于L堆栈中,块执行结束后,变 量消失。
6.2 功能和功能块编程及调用举例
• 一。 功能和功能块的编程步骤: • 1. 定义局部变量,首先定义形参和临时变量。 • 2. 编写执行程序,在编程中使用变量名。 • 3. 在OB1中调用这个功能块。 • 案例1. 做一个具有控流量传感器 进料阀
M
进料泵 入口阀
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
搅拌区功能为:
1.搅拌电动机 当液面指示“液面高 度低于最低限位”时,或者排料阀
打 开时,搅拌电动机必须停止。
2.故障检测 如果搅拌电动机在启动 后10s内没有达到电动机的额定转 速,则电动机必须断开。
二. 功能块编程及举例
• FB块带有一个存储区,即背景数据块,那么背景数据块 是如何生成的,有2中方法。
• 1)在调用FB并为它指定一个背景数据块后,如果该数据 块并不存在,则弹出一下提示信息:”Instance data block DBx does not exist. Do you want to generate it ?” 单击”Yes” 按钮可自动生成一个新的背景数据块。
配料A
流量传感器 进料阀 进料泵 入口阀
M
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
各个区域的功能如下: 配料A和配料B的每个配料管都配 有一个入口阀和进料阀,还有一个 进料泵。配料管中还有流量传感 器,检查是否有配料流过。区域功 能为: 1.进料泵 当罐的液面传感器指示 2.混合罐装满后,进料泵必须关 闭。进料泵 当排料阀打开时,进 料泵同样也要关闭。 3.阀门 在启动进料泵1s后,必须 打开入口阀和进料阀。 4.阀门 在进料泵停止后,阀门必 须关闭,防止配料泄漏。
• 通过案例2说明FC和FB的区别
6.3 FC和FB程序设计实例
• 任务描述:工业搅拌过程如下:两种配料(A.B)在一个混合罐中由 搅拌器混合在一起,之后通过排料阀排出。工业搅拌示意图如下图所 示。系统分为4个区:配料A,配料B,搅拌区排料区。电动机和泵有3 台:配料A进料泵,配料B进料泵,搅拌电动机。阀门有5个:配料A 入口阀,配料A进料阀,配料B入口阀,配料B进料阀,排料阀。
正转,反转,停止,输出信号是电机正转,电机反转。
• 案例2:设计故障I1.3出现时,在操作面板上用一个指 示灯(Q4.3)来指示,指示灯以2HZ的频率闪烁,系 统复位输入是I1.2,用来检测故障是否存在,如果故障 存在,指示灯停止闪烁,转为常亮,故障消除,指示 灯熄灭。
故障信号
复位信号
存储器
指示灯
• 一个功能块可以有多个背景数据块,使功能块可以被不同的对 象使用。
• 数据块包含共享数据块和背景数据块两种类型,共享数据块存 储的是全局变量,所有的逻辑块都可以从共享数据块中读取数 据,背景数据块则从属于某个功能块,用于传递参数。
• 块的调用即为子程序调用,块可以嵌套调用,嵌套的层数与 CPU的型号有关。
三. 块的结构
• 块是有变量声明表和程序组成的。 • 变量声明表。每个逻辑块都有变量声明表,而变量声明表是用来说明
块的局部数据,局部数据包含参数和局部变量两大类型,在不同的的 逻辑块中可以重复声明和使用同一个局部数据,因为它们在每一个块 中有效一次。
局部数据声明类型
变量名 输入 输出 输入/输出 静态变量
第六章 结构化编程
主讲:程子华
6.1 程序设计方法
• 在STEP7中有三种编程方法:线性化编程、模块化编程、 结构化编程。
• 线性化编程:线性化编程是将整个程序都放在循环控制组 织块OB1中。在整个程序执行的过程中,每一步都被扫描, 适用与一些比较简单的程序。如果是编写大型程序,要避 免线性化编程。
• 2)创建一个新的数据块时,选择其属性为“Data block referencing a function block”。
• 功能块FB的优点:当编写FC的程序时,用户必须寻找空 的标志区或数据区来存储需要保持的数据,并且要自己编 写程序来保存他们;而FB的静态变量可由STEP7的软件 自动保存。
• (二)。功能块(FB)
• 功能块是用户所编写的有固定存储区的块。FB为带“记忆”的 逻辑块。它有一个数据结构与功能块参数表完全相同的数据块 (DB)。我们称该数据块为背景数据块,当数据块背执行时, 数据块背调用;功能块结束,调用随之结束。存放在背景数据 块中的数据在FB块结束以后,仍能继续保持,具有“记忆”功 能。
相关主题