1、A&D Customer Support Region South 池睿泉概述组织块(OB)是指CPU的操作系统与用户程序之间的接口。OB用于执行特定的程序段:启动CPU时 在循环或定时执行过程中 出错时 发生硬件中断时。概述概述启动组织块启动组织块 当CPU上电后,或操作模式改变为运行状态,在OB1运行前,先执行启动程序。OB 100 到 OB 102 就是用于启动程序的组织块。例如,在块里可以预置通讯连接。程序循环组织块程序循环组织块 需要连续执行的程序存在OB1里,OB1中的程序执行完毕后,开始新的循环。定期执行的程序定期执行的程序 定期执行的程序根据设定的时间间隔,中断正在循环的程序而
2、执行。通过循环中断,OB 30 到 OB 37 可以每隔一段预定的时间(例如100ms)执行一次。例如,在这些块中可以调用循环采样控制程序。通过日期时间中断,OB可以在特定的时间执行,例如每天17:00保存数据。事件驱动执行的程序事件驱动执行的程序 硬件中断可以用于快速响应的过程事件。当事件发生后,马上打断循环 程序并执行中断程序。延时中断可以在一个过程事件出现后延时一段时间响应。通过错误OB可以在出现错误时(例如通讯故障)决定系统如何响应。中断循环程序优先级优先级 OB在执行程序的过程中可以被更高优先级的事件(OB)中断。优先级 的范围从0-27,其中0 最低,26最高。具有同等优先级的OB
3、不能相互中断,而是按照发生的先后顺序执行。硬件中断(OB40)硬件中断硬件中断 当一个与硬件有关的事件发生时,执行硬件中断组织块 (OB40)。硬件中断可以由不同的模块触发:对于可分配参数的信号模块(DI,DO,AI,AO),使用硬件组态 工具来定义触发硬件中断的信号。对于CP模块和FM模块,利用相应的组态软件可以定义中断 的特性。例子例子 模拟输入模块设置适当的界限值,当测量值超出界限值时,OB40将被调用。S7-400 在S7-400 PLC中有8个不同的硬件中断组织块(OB40到47)。硬件中断(OB40)模拟输入模块上限值下限值+276480 硬件组态硬件组态:模拟输入模块的属性 CP
4、U的属性异步错误中断(OB81.87)异步错误异步错误 异步错误是 PLC的功能性错误。它们的出现与程序执行无关,不能跟踪到程序中的某个具体位置(例如模块的诊断中断)。响应响应在RUN模式下检测到一个故障后,如果已经编写了相关的组织 块,则调用并执行该组织块中的程序。程序中可包含下列功能:发出一个报警信号备份数据然后停机记录故障出现的频率,然后继续运行。说明说明如果故障相应的错误OB并不存在,CPU自动进入停机状态。示例示例异步错误中断OB82在下列情况下被调用,例如:有诊断功能模块的断线故障模拟输入模块的电源故障输入信号超出模拟模块的测量范围异步错误中断(OB81.87)模拟输入模块断线+2
5、76480 硬件组态硬件组态:模拟模块的属性CPU的属性异步错误中断(OB81.87)错误类型错误类型例例 子子OB时间错误超出最大循环扫描时间OB8026/28优先级优先级26电源故障后备电池失效OB81诊断中断有诊断能力模块的输入断线OB82插入/移除 中断在运行时移除S7-400的信号模块OB83CPU 硬件故障MPI接口上出现错误的信号电平OB84程序执行错误更新映像区错误(模块有缺陷)OB85机架错误扩展设备或DP从站故障OB86通讯错误读取信息格式错误OB87同步错误中断(OB121,122)错误类型错误类型例子例子OB优先级优先级与被中断的错误OB优先级相同编程错误在程序中调用一
6、个CPU中并不存在的块OB121访问错误访问一个模块有故障或不存在的模块(例如,直接访问一个不存在的I/O模块)OB122 只要发生同程序处理相关的错误所导致的事件,CPU的操作系统即调用OB121。例如,如果用户程序调用了尚未装载到CPU中的块,将会调用OB121。只要在访问模块上的数据时出错,CPU的操作系统即调用OB122。例如,如果在访问I/O模块上的数据时,CPU检测到读取错误,操作系统将调用 OB122。组织块的启动信息4/56/78/910/11局部变量字节8,9,10,11的数据格式附加信息 1(例如,中断模块的起始地址)附加信息 2(例如,中断状态)附加信息 3(例如,通道号
7、码)局部变量局部变量字节字节0/12/3启动事件优先级序列号OB 号12/1314/1516/1718/19年日分钟1/10 秒,1/100 秒月小时秒1/1000 秒,星期管理信息启动信息启动时间启动信息启动信息 当OB被操作系统调用时,用户可以在局部数据区中获得规范化的启动信息,长度为20字节,可以在OB开始执行后访问。访问方式访问方式 STEP 7为启动信息制订了标准的声明表,因此可利用声明表中的符号名来访问启动信息OB40的局部数据区OB82的局部数据区OB82的局部数据区OB86的局部数据区OB121的局部数据区例子1:DP从站通讯故障硬件组态例子1:DP从站通讯故障添加OB86例子1:DP从站通讯故障编辑OB86例子1:DP从站通讯故障HMI组态例子1:DP从站通讯故障运行结果例子2:编程错误引起的同步错误编辑OB121例子2:编程错误引起的同步错误HMI组态例子2:编程错误引起的同步错误运行结果