s7-300组织块
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断程序不是由程序块调用,而是在中断事件发 生时由操作系统调用。因为不能预知系统何时调用中 断程序,中断程序不能改写其他程序中可能正在使用 的存储器,应在中断程序中尽可能地使用局域变量。
第六页,编辑于星期五:十点 二十九分。
中断循环程序
例如:OB82 (优先级26) =错误处理程序。
当模拟输入PIW352 断线时执行。
S7系统程序可以检测出下列错误:不正确的CPU功
能、系统程序执行中的错误、用户程序中的错误和I/O中
的错误。根据错误类型的不同,CPU将采取不同的措施 ,如进入STOP模式或调用一个错误处理OB。
第二十二页,编辑于星期五:十点 二十九分。
异步错误组织块
错误类型
时间错误
电源故障 诊断中断 插入 / 移除 中断 CPU 硬件故障
8 / 9 附加信息 2
(例如,中断状态)
10 / 11 附加信息 3
(例如,通道号码)
12 / 13 年
月
14 / 15 日
小时
16 / 17 分钟
秒
18 / 19 1/10 秒, 1/100 秒
1 /1000 秒, 星期
管理信息 启动信息 启动时间
第十一页,编辑于星期五:十点 二十九分。
变量 OB100_EV_CLASS OB100_STARTUP OB100_PRIORITY OB100_OB_NUMBR OB100_RESERVED_1 INFO OB100_DATE_TIME
I 0.0 M0.1
(P)
20
T#500ms
SFC 32
EN
(SRT_DINT)
ENO
OB_NR
RET_VAL
DTIME
W#16#01 SIGN
M2.0
()
MW10
第十九页,编辑于星期五:十点 二十九分。
模拟输入模块
硬件中断 (OB40)
硬件组态:
模拟输入模块的属性
CPU的属性
+27648
上限值
下限值
OB1 连续执行
例如OB10 (优先级2) =日期时间中断。
从9:30开始每分钟 执行一次。
例如 OB20 (优先级3) =延时中断。 检测到一个信号后 延 迟3.25s 执行。
...... 直到被其它OB中断
OB号 OB 类型 OB 1 循环程序 OB 10 日期时间中断 OB 20 延时中断 OB 35 循环中断 OB 40 硬件中断 OB 82 错误处理
在S7-400中移动 在运行状态下移动模块 停机, 如果相应的错误OB块不存在 和连接模块
第二十五页,编辑于星期五:十点 二十九分。
使用错误组织块
• 为避免发生某错误时CPU进入停机状态,可以在CPU中 建立一个相应的空错误组织块。
• 可以在错误OB块中编程实现所希望的响应,如果需要,
在执行完规定指令后,调用系统功能SFC 46申请停机。
程序执行错误 机架错误
通讯错误
例子 超出最大循环扫描时间 后备电池失效 有诊断能力模块的输入断线 在运行时移除S7-400的信号模块 MPI接口上出现错误的信号电平 更新映像区错误(模块有缺陷) 扩展设备或DP从站故障 读取信息格式错误
OB OB80
OB81 OB82
优先级 26
OB83
OB84
OB85
中断处理用来实现对特殊内部事件或外部事件的快速 响应。
如果没有中断,CPU循环执行组织块OB1。CPU
检测到中断源的中断请求时,操作系统在执行完当前程序的 当前指令(即断点处)后,立即响应中断。
CPU暂停正在执行的程序,调用中断源对应的中断
程序。在S7-300/400中,中断用组织块来处理。执行完
中断程序后,返回到被中断的程序的断点处继续执行原来 的程序。
OB86 OB87
26 / 28
第二十三页,编辑于星期五:十点 二十九分。
错误类型
编程错误 访问错误
同步错误
例子
OB
优先级
在程序中调用一个 CPU中并不存在的块
OB121
访问一个模块有故障或不存在的模块
(例如,直接访问一个不存在的
OB122
I/O模块)
与被中断的错误 OB优先级相同
第二十四页,编辑于星期五:十点 二十九分。
第四页,编辑于星期五:十点 二十九分。
如果在执行中断程序(组织块)时,又检测到一个中
断请求,CPU将比较两个中断源的中断优先级。如果 优先级相同,按照产生中断请求的先后次序进行处理 。如果后者的优先级比正在执行的OB的优先级高, 将中止当前正在处理的OB,改为调用较高优先级的OB
。这种处理方式称为中断程序的嵌套调用。
(异步错误)
OB 121, 122
(同步错误)
中断 OB
错误 OB
第二页,编辑于星期五:十点 二十九分。
(1)循环执行的组织块 (2)启动组织块 (3)定期执行的组织块 (4)事件驱动的组织块 (5)中断组织块 (6)错误组织块 (7)背景组织块
第三页,编辑于星期五:十点 二十九分。
11.1 中断
编程使其按下列间隔运行: Once(一次): 只在特定日期和时间执行一次。
Every minute(每分钟): 从某一特定日期和时间开始,每分钟执行一次。 Hourly(每小时): 从某一特定日期和时间开始,每小时执行一次。
Daily(每天): 从某一特定日期和时间开始,每天执行一次。
Weekly(每周): 从某一特定日期和时间开始,每周执行一次。 Monthly(每月): 从某一特定日期和时间开始,每月执行一次。 Annually(每年): 从某一特定日期和时间开始,每年执行一次。
当系统检测到一个OB块中断时,则被中断块的累 加器和寄存器上的当前信息将被作为一个中断堆栈(I 堆栈)存储起来。如果新的OB块调用FB和FC,则每一 个块的处理数据将被存储在块堆栈(B堆栈)中。当新 的OB块执行结束后,操作系统将把I堆栈中的信息重新装载
并在中断发生处继续执行被中断的块。
第五页,编辑于星期五:十点 二十九分。
优先级
1 2 3 12 16 26 / 28
第七页,编辑于星期五:十点 二十九分。
被中断的 OB 块的数据保存
系统调用新的 OB
在执行新的 OB 前, 保存被中断块的寄 存器
中断堆栈 (I 堆栈) ACCU1, ACCU2 累加器的内容 AR1, AR2 地址寄存器的内容
DB, DI 数据块寄存器的内容 局部数据堆栈的地址指针
OB1 OB1 O B1
第十七页,编辑于星期五:十点 二十九分。
11.4 事件驱动组织块
可以采用延时中断在过程事件出现后延时一定的时 间再执行中断程序;
硬件中断则用于需要 快速响应的过程事件 ,事件出现时马上中 止循环程序,执行对 应的中断程序。
第十八页,编辑于星期五:十点 二十九分。
延时中断 (OB20)
循
读入 PII
执行 OB1
环
输出 PIQ
第九页,编辑于星期五:十点 二十九分。
冷启动方式
第十页,编辑于星期五:十点 二十九分。
局部变量 字节
0 / 1 启动事件
组织块的启动信息
序列号
2 / 3 优先级
OB 号
4 / 5 局部变量字节8, 9, 10, 11的数据格式
6 / 7 附加信息 1
(例如,中断模块的起始地址)
组织块
第一页,编辑于星期五:十点 二十九分。
启动 OB 100 OB 101 OB 102
循环的 程序执行
OB 1
组织块概述
定期的 程序执行
事件驱动的 程序执行
OB 10...17
(日期时间中断)
OB 30...38
(循环中断)
OB 20...23
(延时中断)
OB 40...47
(硬件中断)
OB 80...87
状态字, MCR 寄存器, B 堆栈指针
块堆栈 (B 堆栈) DB 和 DI 寄存器 临时数据 (L 堆栈)的指针 块的号码 返回地址
第八页,编辑于星期五:十点 二十九分。
11.2 启动组织块
完全再启动
自动
手动
S7-300 / 400 S7-300
S7-400
Power ON
STOP->RUN
STOP->RUN + CRST
• 在错误组织块的启动信息中包含有错误的特征,可以在 程序中使用。
• 关于错误组织块的详细描述参见在线帮助或系统和标准 功能手册。
• 当CPU不支持某些错误OB时,相关的错误信息就不会记
录在OB块中。
第二十六页,编辑于星期五:十点 二十九分。
再启动(手动) • 仅指 S7-400 (根据硬件组态的设置): STOP -> RUN + WRST
执行 OB 101
完成剩余的循环
清除过程映像,非保持的M, T, C
清除 PIQ (可设置)
执行 OB 100
允许输出
读入 PII
循
执行OB1 环
输出 PIQ
超过重启动的 监视时间?
否
允许输出
是 STOP
错误类型
错误类型
举例
CPU的反应
外部错误 内部错误 系统错误
模拟模块输入断线 AD转换器的转换错误 MPI接口的硬件错误
停机, 如果相应的错误OB块不存在且模 块诊断功能被激活
停机, 如果相应的错误OB块不存在且模 块诊断功能被激活
停机
用户程序错误 调用一个不存在的块
停机, 如果相应的错误OB块不存在
类型
描述
Byte
事件类型及标识符
Byte
启动方式
Byte
OB优先级
Byte
OB号
Byte
系统保留
Byte
系统保留
Word
导致CPU停止的事件
DWord
系统启动信息
Date_And_Time OB100启动的日期和时间
第十二页,编辑于星期五:十点 二十九分。
11.3 定期执行组织块
定期执行的组织块包括
第十四页,编辑于星期五:十点 二十九分。
日期时间中断OB10(2)
第十五页,编辑于星期五:十点 二十九分。
练习2: 设置系统时间
第十六页,编辑于星期五:十点 二十九分。
循环中断 (OB35)
RUN
Interval
OB35
Interval
OB35
Interval
OB35
OB1 OB1 O B1 OB1 OB1
日期时间中断组织块OB10~OB17 循环中断组织块OB30~OB38 可以根据设定的日期时间或时间间隔执行中断程 序。
第十三页,编辑于星期五:十点 二十九分。
日期时间中断OB10(1)
日时钟 OB (OB10 在 S7-314) 允许你在某一特定日期或特定间 隔,中断正在循环的 OB 而去执行中断程序。你可以对此 OB
0
第二十页,编辑于星期五:十点 二十九分。
11.5 中断处理组织块
除日期时间中断、循环中断组织块、延时中断、硬 件中断外,DVP1中断以及多处理器中断也有相应的组织 块进行处理。
第二十一页,编辑于星期五:十点 二十九分。
11.6 错误处理组织块
S7-300/400有很强的PLC内部的功能性错误或编程 错误(或称故障)的检测和处理能力。CPU检测到某种 错误后,操作系统调用对应的组织块,可以在组织块 中编程,对发生的错误采取相应的措施。对于大多数 错误,如果没有编写相应的组织块处理程序,出现错 误时CPU将进入STOP模式。