S7-1200第12讲:扩展指令讲解3-中断、诊断指令.pptx

S7-1200第12讲:扩展指令讲解3-中断、诊断指令.pptx

博途1200课程--第12讲;中断指令:;什么是组织块? 组织块是操作系统和用户程序之间的接口。OB 用于执行具体的程序: 1、在 CPU 启动时; 2、在一个循环或延时时间到达时; 3、当发生硬件中断时; 4、当发生故障时; 5、组织块根据其优先级执行。 ;组织块 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 在 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 返回循环起点,并重新启动扫描循环监视时间。 ;硬件中断 OB 的功能 硬件中断 OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。 硬件中断事件包括内置数字输入端的上升沿和下降沿事件以及 HSC(高速计数器)事件。当发生硬件中断事件,硬件中断 OB 将中断正常的循环程序而优先执行。S7-1200可以在硬件配置的属性中预先定义硬件中断事件,一个硬件中断事件只允许对应一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件。在 CPU 运行期间,可使用“ATTACH”附加指令和“DETACH”分离指令对中断事件重新分配。硬件中断 OB 的编号必须为40~47,或大于、等于123。 ;与硬件中断 OB 相关的指令功能: ATTACH 和 DETACH(附加/分离 OB 和中断事件)指令: ATTACH 启用响应硬件中断事件的中断OB 子程序执行。 DETACH 禁用响应硬件中断事件的中断OB 子程序执行。;示例:当硬件输入 I0.0 上升沿时,触发硬件中断 OB40(执行累加程序),当硬件输入 I0.1 上升沿时,触发硬件中断 OB41(执行递减程序),硬件中断事件和硬件中断 OB 关系如下图。;使用硬件中断需要注意以下几点: 1、一个硬件中断事件只能分配给一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件; 2、用户程序中最多可使用50个互相独立的硬件中断 OB ;数字量输入和高速计数器均可触发硬件中断; 3、中断 OB 和中断事件在硬件组态中定义;在 CPU 运行时可通过“ATTACH”和“DETACH”指令进行中断事件重新分配; 4、如果“ATTACH”指令的使能端 EN 为脉冲信号触发,在使用“ATTACH”指令进行中断事件重新分配后;若 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,则硬件中断 OB 和硬件中断事件将恢复为在硬件组态

文档评论(0)

1亿VIP精品文档

相关文档