西门子PLC模块6ES7323-1BL00-0AA0
组织块OB是操作系统与用户程序之间的接口,组织块由操作系统调用,组织块中的程序是用户编写的。S7 plc的组织块用来创建在特定的时间执行的程序或相应特定事件的程序,例如延时中断OB、外部硬件中断OB和错误中断OB等。
一、中断的基本概念
1、中断过程
中断处理用来实现对特殊内部事件或外部事件的快速响应,如果没有中断,CPU循环执行组织块OB1,因为除了背景组织块OB90以外,OB1的中断优先级最低,CPU检测到中断源的中断请求,操作系统在执行完当前程序的当前指令(即断点处)后,立即响应中断。CPU暂停正在执行的程序,调用中断源的中断组织块OB来处理,执行完中断组织块后,返回被中断的程序断点处继续执行原来的程序。
有中断事件发生时,如果没有下载相应的组织块,CPU将会进入STOP模式,即使生成和下载一个空的组织块,出现相应的中断事件时,CPU也不会进入STOP模式。
PLC的中断源可能来自I/O模块的硬件中断,或者来自CPU模块内部的软件中断,例如时间中断、延时中断、循环中断和编程错误引起的中断。
一个OB的执行被另一个OB中断时,操作系统对现场进行保护,被中断的OB的局部数据压入L堆栈(局部数据堆栈),被中断的断点处的现场信息保存在I堆栈(中断堆栈)和B堆栈(块堆栈)中。中断程序不是由逻辑块调用,而是在中断事件发生时由操作系统调用,因为不能预知系统何时调用中断程序,中断程序不能改写其他程序中可能正在使用的存储器,中断程序应尽可能的使用局部变量。编写中断程序应越短越好,减少中断程序的执行时间,减少对其他事件处理的延迟,否则可能引起主程序控制的设备操作异常。
2、组织块的分类
组织块只能由操作系统启动,它由变量声明表和用户编写的控制程序组成。
(1)启动组织块:用于系统初始化,CPU上电或操作模式切换到RUN时,S7-300执行OB100,S7-400根据组态的启动方式执行OB100~OB102中的一个。
(2)循环执行OB1:需要连续执行的程序放在OB1中,循环执行。
(3)定期执行的组织块:包括时间中断组织块OB10~OB17,和循环中断组织块OB30~OB38,可以根据设定的日期时间或时间间隔执行中断程序。
(4)事件驱动的组织块:延时中断OB20~OB23在过程事件出现后延时一定时间再执行中断程序,硬件中断OB40~OB47用于需要快速响应的过程事件,时间出现时马上中止当前正在执行的程序,执行对应的中断程序。diangon.com版权所有!异步错误中断0B80~OB87和同步错误中断OB121、OB122用来决定出现错误时系统如何响应。
|