900 likes | 990 Views
第 5 章 S7 的组织块和中断处理. 重点与难点 组织块的基本概念,组织块的循环执行,定期执行的组织块、事件驱动的组织块、背景组织块、启动组织块及相应的中断处理。. 基本要求 1 .理解组织块的基本概念及组织块的循环执行; 2 .掌握定期执行的组织块、事件驱动的组织块、启动组织块和地背景组织块及相应的中断处理。. 本章内容 1 .组织块概述; 2 .组织块的循环执行; 3 .定期执行的组织块和中断处理; 4 .事件驱动的组织块和中断处理; 5 .启动组织块和中断处理; 6 .背景组织块。. 5.2. 5.3. 5.1. 5.4.
E N D
第5章 • S7的组织块和中断处理
重点与难点 • 组织块的基本概念,组织块的循环执行,定期执行的组织块、事件驱动的组织块、背景组织块、启动组织块及相应的中断处理。
基本要求 • 1.理解组织块的基本概念及组织块的循环执行; • 2.掌握定期执行的组织块、事件驱动的组织块、启动组织块和地背景组织块及相应的中断处理。
本章内容 • 1.组织块概述; • 2.组织块的循环执行; • 3.定期执行的组织块和中断处理; • 4.事件驱动的组织块和中断处理; • 5.启动组织块和中断处理; • 6.背景组织块。
5.2 5.3 5.1 5.4 组织块的循环执行 定期执行的组织块和中断处理 组织块概述 事件驱动的组织块和中断处理
5.7 5.6 5.5 本章小结 背景组织块 启动组织块和中断处理
5.1 组织块概述 • 组织块是操作系统与用户程序之间的接口。用组织块可以响应延时中断、外部硬件中断、进行错误处理等。
(1)中断过程 • (2)中断源 • (3)组织块
SIMATIC S7-300有以下常用组织块。 • ① OB1主程序循环。 • ② OB10时间中断。 • ③ OB20延时中断。 • ④ OB35循环中断。 • ⑤ OB40硬件中断。 • ⑥ OB100再启动。
5.2 组织块的循环执行 • S7 CPU操作系统周期性地执行组织块OB1程序。当OB1执行完毕,操作系统再次启动它。
一般来说,以下事件可导致操作系统调用OB1。 • (1)CPU启动完毕。 • (2)OB1执行到上一个循环周期结束。
OB1执行完后,操作系统发送全局数据。再次启动OB1之前,操作系统会将输出映像区数据写入输出模板,刷新输入映像区并接收全局数据。
循环程序处理可以被以下事件中断。 • (1)一个中断。 • (2)STOP命令(模式选择开关,编程器上的菜单选项,SFC46 STP,SFB20 STOP)。 • (3)电源掉电。 • (4)出现故障或编程错误。
5.3 定期执行的组织块和中断处理 • STEP 7提供多达8个OB(OB10~OB17),它们可以运行一次或周期性地运行。
设计人员可以运用SFC或STEP 7给CPU分配参数,这些OB在特定的日期和时间或以一定间隔由操作系统调用执行。
日期时间中断可按如下方式触发。 • (1)在某特定时间(用绝对形式定义日期时间)执行一次。 • (2)从特定的时间开始并按中断应重复的间隔(如:每分钟、每小时、每天)周期地执行。
为了让CPU启动日期时间中断,用户必须首先设置日期时间中断,然后再激活它。启动该中断有以下三种方法。为了让CPU启动日期时间中断,用户必须首先设置日期时间中断,然后再激活它。启动该中断有以下三种方法。
(1)通过STEP 7中设置相应的参数(“日期时间中断”参数块),实现日期时间中断的自动启动。
(2)在用户程序中用SFC28 SET_TINT和SFC 30 ACT_TINT,设置并激活日期时间中断。 • (3)用STEP 7的参数设置日期时间中断,在用户程序中用SFC 30 ACT_TINT激活日期时间中断。
(1)执行周期性工作的OB(日时钟中断)的执行条件如下。(1)执行周期性工作的OB(日时钟中断)的执行条件如下。 • ① 在特定的日期或时间执行。 • ② 从一个编程事件开始一段特定延时后执行。 • ③ 按特定周期循环执行。
(2)响应错误的OB(错误中断)的执行条件如下。(2)响应错误的OB(错误中断)的执行条件如下。 • ① 当CPU检测到一个过程/硬件错误时执行。
② 当CPU检测到一个不依赖于程序指令的错误时执行。 • ③ 当CPU检测到一个与程序指令处理有关的错误时执行。
1.日时钟中断(OB10) • OB10可按下列间隔运行。
(1)Once • (2)Every minute • (3)Hourly • (4)Daily • (5)Weekly • (6)Monthly • (7)Annually
下面给出OB10的起始时刻和间隔时间设置。 • (1)通过定义OB10执行的起始时刻(日期和/或时间)和间隔时间对OB10进行配置。
(2)通过S7组态工具配置CPU的日时钟的中断参数或者在程序中调用SFC28(SET-TINT)设置时间。(2)通过S7组态工具配置CPU的日时钟的中断参数或者在程序中调用SFC28(SET-TINT)设置时间。
(3)通过S7组态工具在CPU的日时钟中断参数块中选择激活项。(3)通过S7组态工具在CPU的日时钟中断参数块中选择激活项。 • (4)在程序中调用SFC30(ACT-TINT)来激活OB10。
表5-5描述了日期时间中断的临时变量(TEMP),变量名是 OB10 缺省名称。
2.延时中断OB 20 • 由调用SFC 32启动,调用SFC 32时要提供相应的实参。
① OB-NR:延时中断OB的号码。 • ② DTIME:延时长度(1~60 000ms)。 • ③ SIGN:延时OB被调用时进入OB的启动信息标志器。 • ④ RET-VAL OB:执行过程中发生错误时的错误代码。
处理延时中断的SFC: • SFC32 SRT_TINT 启动延时中断 • SFC33 CAN_DINT 取消延时中断 • SFC34 QRY_TINT 查询延时中断
5.4 事件驱动的组织块和中断处理 • S7提供多达8个独立的硬件中断组织块OB(OB40~OB47)。通过STEP 7进行参数赋值,可以为会触发硬件中断的每一个信号模板指定以下参数。
① 哪个通道在哪种条件下触发一个硬件中断。 • ② 哪一个硬件中断OB被分配到单独的通道组。
设计人员可以运用STEP 7为每一个硬件中断OB选择优先级。如果一个硬件中断被触发并且它的OB正在由于另一个模板的硬件中断而激活,则记录新的中断申请,在空闲后会执行该中断。
用SFC39~42可以禁止、延时和再使能硬件中断。可以用STEP 7中的SFC 55~57,为硬件中断模板赋值参数。
表5-6描述了硬件中断OB的临时变量(TEMP),变量名是OB40的缺省名称。表5-6描述了硬件中断OB的临时变量(TEMP),变量名是OB40的缺省名称。