(a)组织块分类说明

(01)自由循环组织块OB1

S7 CPU启动完成后,操作系统将重复OB1,OB1运行完成后,操作系统将重新启动OB1。可以从OB1调用用户程序(如FB、SFB、FC、SFC等)来循环。除OB90外,OB1优先级最低,可能会被其他OB中断。OB1默认扫描监控时间为150毫秒(可设置),扫描超时,CPU自动调用OB80错误报告,如果程序未设置OB80,CPU将进入停止模式。循环扫描,没有时间间隔。运行OB1后再次从头运行OB1,因此外部输入的模拟数据转换为工程量的程序在OB1上运行,可以及时更新数据。

(02)日期中断组织块OB10至OB17

在CPU属性中,设置日期中断组织块OB10~OB17触发的日期、执行模式(当达到设定的触发日期时,OB只运行一次或以每分钟、每小时、每周、每月周期运行)等参数,如果CPU的日期值大于设定的日期值,则可以触发相应的OB并以设定的模式运行。此外,用户程序可以调用SFC28系统函数来设置CPU日期中断参数,并调用SFC30激活日期中断执行。与CPU属性的设置相比,用户程序可以灵活地修改在运行CPU时设置的参数。您可以选择两种方法之一,也可以同时设置OB(OB10至OB17)

(03)时间延迟中断组织块OB20~OB23

时间延迟中断组织块OB20~OB23的优先级和更新过程图像区域的参数必须在CPU属性中设置,并且必须调用系统函数SFC32来触发执行。OB编号和延迟时间在SFC32参数中设置。延迟为1~60000毫秒,大大优于计时器精度,OB10~OB17一般很少使用。

(04)循环中断组织块OB30~OB38

循环中断组织块OB30~OB38以设定的间隔循环。循环中断的间隔是在CPU属性中设置的,每个OB的默认间隔是不同的。例如,OB35的默认间隔为100毫秒。OB35中的应用程序每100毫秒调用一次,最小间隔不能小于55毫秒。OB的用户程序运行时间必须小于设置的时间间隔。如果间隔短,环路中断OB没有完成程序扫描,将重新调用,导致CPU故障,OB80报告错误,如果程序没有生成OB80,CPU将进入停止模式。可以通过调用SFC39到SFC42系统函数来禁止、延迟和阻止可能中断循环的调用。循环中断组织块通常处理需要固定扫描周期的用户程序。例如,PID函数块通常需要在循环中断中调用,以处理集成时间计算。通常使用OB33和OB35,与时间相关的程序通常放置在这些块中。例如,由PID控制的程序块不需要非常严格的时间处理功能。计时器不足时自己编写的计时器等程序块。

(05)硬件中断组织块OB40~OB47

硬件中断也称为进程中断,由功能模块FM、通信处理器CP和外部设备(如数字输入、输出模块等)生成。通常使用带有硬件中断的数字输入模块来触发中断响应,然后为每个模块配置相应的中断OB(S7-300系列CPU只能触发硬件中断OB40)。在模块配置中,可以选择输入点的上升、下降或全部作为触发中断OB的事件。配置中发生中断事件,主程序中断,中断OB中运行用户程序周期,然后返回中断,继续运行主程序。与使用中断正常输入信号相比,没有主程序扫描和进程图像区域更新时间,非常适合需要快速响应的应用程序。

如果输入模块的一个通道触发硬件中断,操作系统将识别模块的插槽号,触发相应的OB,停止OB执行,然后发送与通道相关的确认。在识别和确认过程中,该通道上再次触发的中断事件将丢失。如果模块中的其他通道触发中断事件,则中断不会丢失,而是在检查当前运行的中断后触发。如果是其他模块触发的中断事件,则会记录中断请求,当中断OB处于空闲状态(模块中没有其他通道的中断请求)时触发。可以通过调用SFC39到SFC42系统函数来禁止、延迟和阻止可能中断硬件的调用。

(06)DPV1中断组织块OB55~OB57

CPU响应PROFIBUS-DP V1在工作站上触发的中断信息。

(07)多处理器中断组织块OB60

对于S7-400系列PLC多CPU(在一个机架中最多插入4个CPU以执行相同的复杂任务)处理功能,可以调用SFC35在多个CPU上同时运行OB60。

(08)时钟同步中断组织块OB61~OB64

用于处理时钟同步,如PROFIBUS-DPV1。从每个站输入收集到逻辑结果输出,站输入信号采样环路(信号转换)、站背板总线环路(转换后的信号从模块传递到从属接口)、PROFIBUS-DP总线环路(信号从站传递到主站)、程序执行环路(信号的程序处理)、PROFIBUS-DP总线环路。

性。PROFIBUS时钟同步中断只能用于S7-400系列PLC CPU(具有DPV2 功能)。

(09)工艺同步处理中断组织块OB65

用于T-CPU(具有运动控制功能的CPU)工艺块与开始程序的同步处理。

(10)冗余故障中断组织块OB70、OB72

用于S7-400H冗余系统,当I/O冗余故障,例如冗余的PROFIBUS-DP从站故障时,触发OB70的调用,当CPU冗余故障,如CPU切换、同步故障时,触发OB72的调用。如果I/O冗余,或者CPU冗余故障而在CPU中没有创建OB70、OB72,CPU不会进入停止模式。

(11)异步故障中断组织块OB80~OB87

异步故障中断用于处理各种故障事件。

OB80:处理时间故障、CIR(Configuration In Run)后的重新运行等功能,例如OB1或OB35运行超时,CPU自动调用OB80报错,如果程序中没有创建OB80,CPU进入停止模式。

OB81:处理与电源相关的各种信息(S7-400系列PLC CPU只有电池故障时调用),出现故障,CPU自动调用OB81报错,如果程序中没有创建OB81,CPU不会进入停止模式。

OB82:诊断中断,如果使能一个具有诊断中断模块的诊断功能(例如断线、传感器电源丢失),出现故障时调用OB82,如果程序中没有创建OB82,CPU进入停止模式。诊断中断还对CPU所有内外部故障,包括模块前连接器拔出、硬件中断丢失等作出响应。

OB83:用于模块插拔事件的中断处理,事件出现,CPU自动调用OB83报警,如果程序中没有创建OB83,CPU进入停止模式。

OB84:用于处理存储器、冗余系统中两个CPU的冗余连接性能降低等事件。

OB85:用于处理操作系统访问模块故障、更新过程映像区时I/O访问故障、事件触发但相应的OB没有下载到CPU等事件,事件出现,CPU自动调用OB85报错,如果程序中没创建OB85,CPU进入停止模式。

OB86:用于处理扩展机架(不适用于S7-300系列)、PROFIBUS-DP主站、PROFIBUS-DP或PROFINET I/O分布I/O系统中站点故障等事件,事件出现,CPU自动调用OB86报错,如果程序中没有创建,CPU进入停止模式。

OB87:用于处理MPI GD 通信及时钟同步故障,事件出现,CPU自动调用OB87报错,如果程序中没有创建,CPU不会进入停止模式。

(12)处理中断组织块OB88

用于处理程序嵌套、区域数据分配故障,故障出现,CPU自动调用OB88报错,如果程序中没有创建,CPU进入停止模式。

(13)背景循环中断组织块OB90

优先级最低,保证CPU最短的扫描时间,避免过程映像区更新过于频繁。程序的下载和CPU中程序的删除触发OB90的调用。只能用于S7-400系列PLC CPU。

(14)启动中断组织块OB100~OB102

用于处理CPU启动事件,暖启动CPU调用OB100,热启动CPU调用OB101(不适合S7-300系列PLC和S7-400H),冷启动CPU调用OB102,温度越低,CPU启动时清除存储器中数据区的类型越多,这些OB只是在cpu不同的启动模式下启动一次,所有一些初始化的程序可以写在这些OB中。

(15)同步错误中断组织块OB121、OB122

OB121处理与编程故障有关的事件,例如调用的函数没有下载到CPU中、BCD码出错等,OB122处理与I/O地址访问故障有关的事件,例如访问一个I/O模块时,出现读故障等。如果上述故障出现,在程序中没有创建OB121、OB122,CP进入停止模式。

(二)OB块使用注意事项

(1)OB只是及时反应出了故障,但并不解决故障,OB允许CPU带故障运行。

(2)诊断OB如OB82/86/122反映的是硬件上的故障,靠软件是解决不了的,软件的作用是尽快指向故障点,硬件的问题还是硬件解决。

(3)诊断OB的产生会影响CPU的整个程序的执行速度,会影响系统的控制品质,尤其是一些带过程中断,大量运算及运动控制的高速生产线。

(4)条件的让OB去掩盖故障是一件很危险的事情,应该有应对的措施,让系统尽快的进入一种可控的安全状态。

(5)由于通信的原因,模块不存在或有故障,刷新过程映像表时I/O访问出错,将会调用优先级错误中断(OB85),可以在CPU属性对话框中设置3种调用OB85的方式。S7-300默认的方式是不调用OB85,S7-400默认的方式是每个扫描循环周期调用一次,还可以设置为故障发生和消失时分别调用一次。

(6)用PI/PQ地址区访问有故障的I/O模块、DP从站时,将调用I/O访问错误中断OB122,每个扫描周期调用一次。

(7)不是所有的OB都可以在CPU中使用,例如S7-300系列CPU中只有暖启动OB100,操作系统不能调用OB101、OB102,CPU中可以使用的OB请参考CPU选型手册。

(8)S7-300系列PLC中组织块的优先级是固定的,不能修改,在S7-400系列PLC中下列组织块的优先级可以进行修改:

OB10~OB47:优先级修改范围2~23

OB70~OB72:优先级修改范围2~38

OB81~OB87:优先级修改范围2~26

(9)几个组织块可以具有相同的优先级,当事件同时出现时,组织块按事件出现的先后顺序触发,如果超过12个相同优先级的OB同进触发,中断可能丢失。

(三)项目中必要的OB块 

对于简单程序,只涉及到数字量逻辑控制,只使用OB1就可以了,对于复杂程序,使用了DP通讯等等,就需要做一些相应功能的组织块来保证PLC的运行正常。

(1)OB100启动组织块,即PLC一通电的第一个扫描周期就先处理此块,以后就不扫描了,所以在这个块内可以做初始化脉冲,复位一些数据。

(2)OB122 I/O访问错误组织块,

(3)OB121 编程错误组织块,这个块比较重要,曾经遇到一个德国进口喂料机,使用一段时间后出现CPU不能运行,程序是使用STL编程,使用了很多间接寻址,很难找到问题所在,后来就选择了这个组织块后,CPU运行设备就正常工作了。

(4)OB82诊断中断组织块,这个对于使用模拟量模块多的项目需要使用这个块,否则一旦接入的模拟量信号出现问题时,CPU停机就是大事了。

(5)OB80 时间错误组织块,包括:超出周期时间、执行OB时出现确认错误、提前了时间而使OB的启动时间被跳过、在CiR后恢复RUN模式。

(6)OB86机架故障组织块,对于使用了DP通讯的分布式I/O需要使用这个块。 要想第一时间找到处故障的子站,需要使用OB86来作为DP故障诊断.需要对OB86内变量做编程处理,使用触摸屏或其他上位机来显示报警内容。

(7)OB87通讯错误组织块。

(四)OB块的主要作用解释 

组织块是操作系统与用户程序的接口,可以从下面几个方面来理解:

(1) 组织块不是用户程序调用的,而是由操作系统调用的。其变量声明表中只有临时变量。

(2)组织块分为三类:启动组织块用于系统初始化;主程序OB1是循环执行的; 出现中断事件时,操作系统将会停止执行当前的任务,调用一个分配给该事件的组织块。

(3)除了自动生成的OB1,其他组织块需要用户生成,组织块中的程序是用户编写的。

(4)每个组织块都有20个字节的局部变量,其中包含OB的启动信息。这些信息在OB启动时由操作系统提供,包括启动事件、启动日期与时间,错误及诊断事件。

(5)中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,CPU将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的OB的优先级高,将中止当前正在处理的OB,改为执行较高优先级的OB。下面是优先级的顺序(后面的比前面的优先):背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、I/O冗余错误、异步故障(OB80~87)、启动和CPU冗余,背景循环的优先级最低,可以用STEP7修改S7-400 CPU某些组织块的优先级。

(6)时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能。其他组织块可以用SFC39“DIS_INT”来禁止处理某些中断,用SFC40“EN_INT”来激活(使能)被禁止的中断。 SFC41“DIS_AIRT”用来延迟处理比当前优先级更高的中断,直到用SFC42“EN_AIRT”来允许立即处理被SFC41暂时禁止的中断。

1.《【ob2226ap是什么模块】西门子OB区块分类及使用方法“精华”》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【ob2226ap是什么模块】西门子OB区块分类及使用方法“精华”》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/2927092.html