电工学习网

 找回密码
 立即注册
查看: 9442|回复: 0
打印 上一主题 下一主题

Step7主程序OB组织块介绍和使用技巧

[复制链接]
跳转到指定楼层
楼主
发表于 2018-10-4 09:46:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
组织块(OB)表示操作系统和用户程序之间的接口。组织块由操作系统调用,控制循环和中断驱动的程序执行、plc启动特性和错误处理。
组织块是操作系统与用户程序的接口,可以从下面几个方面来理解:
1. 组织块不是用户程序调用的,而是由操作系统调用的。其变量声明表中只有临时变量。
2.组织块分为三类:
启动组织块用于系统初始化;
主程序OB1是循环执行的;
出现中断事件时,操作系统将会停止执行当前的任务,调用一个分配给该事件的组织块。
3.除了自动生成的OB1,其他组织块需要用户生成,组织块中的程序是用户编写的。
4.每个组织块都有20个字节的局部变量,其中包含OB的启动信息。这些信息在OB启动时由操作系统提供,包括启动事件、启动日期与时间,错误及诊断事件。
5. 中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,CPU将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的OB的优先级高,将中止当前正在处理的OB,改为执行较高优先级的OB。
下面是优先级的顺序(后面的比前面的优先):背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、I/O冗余错误、异步故障(OB80~87)、启动和CPU冗余,背景循环的优先级最低。可以用STEP 7修改S7-400 CPU某些组织块的优先级。
6. 时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能。
其他组织块可以用SFC 39“DIS_INT”来禁止处理某些中断,用SFC 40“EN_INT”来激活(使能)被禁止的中断。
SFC 41“DIS_AIRT”用来延迟处理比当前优先级更高的中断,直到用SFC 42“EN_ AIRT”来允许立即处理被SFC 41暂时禁止的中断。
● 什么是组织块?
组织块是操作系统和用户程序之间的接口。OB 用于执行具体的程序:
1、在 CPU 启动时;
2、在一个循环或延时时间到达时;
3、当发生硬件中断时;
4、当发生故障时;
5、组织块根据其优先级执行。
OB 事件
● 组织块 OB 的类型
Step7主程序OB组织块介绍和使用技巧
图1. OB 事件概览
● 通过上图,可以看到 OB 组织块分为三个优先组,高优先组中的组织块可中断低优先组中的组织块;如果同一个优先组中的组织块同时触发将按其优先级由高到低进行排队依次执行;如果同一个优先级的组织块同时触发时,将按块的编号由小到大依次执行。
● CPU 为三个 OB 优先级组中的每一个组都提供了临时(本地)存储器:
1、16 KB 用于启动和程序循环(包括相关的 FB 和 FC)
2、4 KB 用于标准中断事件(包括 FB 和 FC)
3、4 KB 用于错误中断事件(包括 FB 和 FC)
● 嵌套深度:是指可从 OB 调用功能 (FC) 或功能块 (FB) 等程序代码块的深度。
1、从程序循环 OB 或启动 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为16层;
2、从延时中断、循环中断、硬件中断、时间错误中断或诊断错误中断 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为4层。
程序循环 OB
● 程序循环 OB 的功能
程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB 。操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
S7-1200 允许使用多个程序循环 OB ,按 OB 的编号顺序执行。OB1 是默认设置,其它程序循环 OB 的编号必须大于或等于123。程序循环 OB 的优先级为1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。最长循环时间缺省设置为150ms。如果您的程序超过了最长循环时间,操作系统将调用 OB80(时间故障OB );如果 OB80 不存在,则 CPU 停机。
● 操作系统的执行过程,请参见下图1:
1、操作系统启动扫描循环监视时间;
2、操作系统将输出过程映像区的值写到输出模块;
3、操作系统读取输入模块的输入状态,并更新输入过程映像区;
4、操作系统处理用户程序并执行程序中包含的运算;
5、当循环结束时,操作系统执行所有未决的任务,例如加载和删除块,或调用其他循环 OB
6、最后,CPU 返回循环起点,并重新启动扫描循环监视时间。
Step7主程序OB组织块介绍和使用技巧
图2. 程序循环图例
● 程序循环 OB 的使用示例:
例如:在循环组织块 OB123 中调用 FC1 。具体实现过程如下:
1、按如下步骤创建循环组织块 OB123 。如图2。
Step7主程序OB组织块介绍和使用技巧
图3. 创建循环组织块
2、通过上述类似方法创建功能 FC1 。如图3。
Step7主程序OB组织块介绍和使用技巧
图4. 创建 FC1
3、在循环组织块 OB123 中调用 FC1 。如图4。
Step7主程序OB组织块介绍和使用技巧
图5. 调用 FC1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-27 08:55

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表