收藏 分享(赏)

Step7-OB组织块介绍和使用技巧.docx

上传人:scg750829 文档编号:8098668 上传时间:2019-06-08 格式:DOCX 页数:20 大小:19.39KB
下载 相关 举报
Step7-OB组织块介绍和使用技巧.docx_第1页
第1页 / 共20页
Step7-OB组织块介绍和使用技巧.docx_第2页
第2页 / 共20页
Step7-OB组织块介绍和使用技巧.docx_第3页
第3页 / 共20页
Step7-OB组织块介绍和使用技巧.docx_第4页
第4页 / 共20页
Step7-OB组织块介绍和使用技巧.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、导读: 在 OB1 中可以调用 FB、SFB、 FC、SFC 等用户程序使其循环执行。除 OB90 以外,OB1 优先级最低,可以被其他 OB 中断。OB1 默认扫描监控时间为 150ms(可设置) ,扫描超时,CPU 自动调用)B80 报错,如果程序中没有建立 OB80,CPU 进入停止模式。每种类型的 OB 块的分析及其使用方法:1、自由循环组织块 OB1S7 CPU 启动完成后,操作系统循环执行 OB1,OB1执行完成后,操作系统再次启动 OB1。在 OB1 中可以调用FB、SFB、FC、SFC 等用户程序使其循环执行。除 OB90 以外,OB1 优先级最低,可以被其他 OB 中断。OB

2、1 默认扫描监控时间为 150ms(可设置) ,扫描超时,CPU 自动调用)B80 报错,如果程序中没有建立OB80,CPU 进入停止模式。2、日期中断组织块 OB10OB17在 CPU 属性中,可以设置日期中断组织块OB10OB17 触发的日期、执行模式(到达设定的触发日期后,OB 只执行一次或按每分、每小时、每周、每月周期执行)等参数,当 CPU 的日期值大于设定的日期值时,触发相应的 OB 并按设定的模式执行。在用户程序中也可以通过调用 SFC28系统函数设定 CPU 日期中断的参数,调用 SFC30 激活日期中断投入运行,与在 CPU 属性中的设置相比,通过用户程序,可以在 CPU运行

3、时灵活地修改设定的参数,两种方式可以任意选择,也可以同时对一个 OB 进行设置。3、时间延迟中断组织块 OB20OB23时间延迟中断组织块 OB20OB23 的优先级及更新过程映像区的参数需要在 CPU 属性中设置,通过调用系统函数 SFC32 触发执行,OB 号及延迟时间在 SFC32 参数中设定,延迟时间为 160000ms,大大优于定时器精度。4、循环中断组织块 OB30OB38循环中断组织块 OB30OB38 按设定的时间间隔循环执行,循环中断的间隔时间在 CPU 属性中设定,每一个OB 默认的时间间隔不同,例如)B35 默认的时间间隔为100ms,在 OB35 中的用程序将每隔 10

4、0ms 调用一次,时间间隔可以自由设定,最小时间间隔不能小于 55ms。OB 中的用户程序执行时间必须小于设定的时间间隔,如果间隔时间较短,由于循环中断 OB 没有完成程序扫描而被再次调用,从而造成 CPU 故障,触发 OB80 报错,如果程序中没有创建OB80,CPU 进入停止模式。通过调用 SFC39SFC42 系统函数可以禁止、延迟、使能循环中断的调用。循环中断组织块通常处理需要固定扫描周期的用户程序,例如 PID 函数块通常需在循环中断中调用以处理积分时间的计算。5、硬件中断组织块 OB40OB47硬件中断也叫过程中断,由外部设备产生,例如功能模块 FM、通信处理器 CP 及数字量输入

5、、输出模块等。通常使用具有硬件中断的数字量输入模块触发中断响应,然后为每一个模块配置相应的中断 OB(一个模块只能良一个中断 OB,S7-300 系列 PLC CPU 只能触发硬件中断OB40) ,在模块配置中可以选择输入点的上升沿、下降沿或全部作为触发中断 OB 的事件。配置中的中断事件出现,中断主程序,执行中断 OB 中的用户程序一个周期,然后跳回中断处继续执行主程序。使用中断与普通输入信号相比,没有主程序扫描和过程映像区更新时间,适合需要快速响应的应用。如果输入模块中的一个通道触发硬件中断,操作系统将识别模块的槽号及触发相应的 OB,中断 OB 执行之后发送与通道相关的确认。在识别和确认

6、过程中,该通道再次触发的中断事件将丢失;如果模块其他通道触发中断事件,中断不会丢失,在当前正在运行的中断确认之后触发;如果是不同的模块触发的中断事件,中断请求被记录,中断 OB 在空闲(没有模块其他通道的中断请求)时触发。通过调用 SFC39SFC42 系统函数可以禁止、延迟、使能硬件中断的调用。6、 DPV1 中断组织块 OB55OB57CPU 响应 PROFIBUS-DP V1 从站触发的中断信息。7、多处理器中断组织块 OB60用于 S7-400 系列 PLC 多 CPU(一个机架中最多插入4 个 CPU 完成同一个复杂任务)处理功能,通过调用SFC35,可以触发 OB60 在多个 CP

7、U 中同时执行。8、时钟同步中断组织块 OB61OB64用于处理 PROFIBUS-DP V1 等时钟同步,从采集各个从站的输入到逻辑结果输出,需要经过从站输入信号采样循环(信号转换) 、从站背板总线循环(转换的信号从模块传递到从站接口) 、PROFIBUS-DP 总线循环(信号自从站传递到主站) 、程序执行循环(信号的程序处理) 、PROFIBUS-DP 总线循环(信号从主站传递到从站) 、从站背板总线循环(信号从从站接口传递到输出柜块)及模块输出循环(信号转换)7 个循环,时钟同步中断将 7 个循环同步,优化数据的传递并保证PROFIBUS-DP 各个从站数据处理的同步性。PROFIBUS

8、 时钟同步中断只能用于 S7-400 系列 PLC CPU(具有 DP V2 功能) 。9、工艺同步处理中断组织块 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、异步故障中断组织块 OB80OB87异步

9、故障中断用于处理各种故障事件。OB80:处理时间故障、CIR(Configuration In Run)后的重新运行等功能,例如 OB1 或 OB35 运行超时,CPU 自动调用 OB80 报错,如果程序中没有创建OB80,CPU 进入停止模式。OB81:处理与电源相关的各种信息(S7-400 系列PLC CPU 只有电池故障时调用) ,出现故障,CPU 自动调用 OB81 报错,如果程序中没有创建 OB81,CPU 不会进入停止模式。OB82:诊断中断,如果使能一个具有诊断中断模块的诊断功能(例如断线、传感器电源丢失) ,出现故障时调用OB82,如果程序中没有创建 OB82,CPU 进入停止

10、模式。诊断中断还对 CPU 所有内外部故障,包括模块前连接器拔出、硬件中断丢失等作出响应。OB83:用于模块插拔事件的中断处理,事件出现,CPU 自动调用 OB83 报警,如果程序中没有创建OB83,CPU 进入停止模式。OB84:用于处理存储器、冗余系统中两个 CPU 的冗余连接性能降低等事件。OB85:用于处理操作系统访问模块故障、更新过程映像区时 I/O 访问故障、事件触发但相应的 OB 没有下载到CPU 等事件,事件出现,CPU 自动调用 OB85 报错,如果程序中没创建 OB85,CPU 进入停止模式。OB86:用于处理扩展机架(不适用于 S7-300 系列) 、PROFIBUS-D

11、P 主站、PROFIBUS-DP 或 PROFINET I/O分布 I/O 系统中站点故障等事件,事件出现,CPU 自动调用 OB86 报错,如果程序中没有创建,CPU 进入停止模式。OB87:用于处理 MPI GD 通信及时钟同步故障,事件出现,CPU 自动调用 OB87 报错,如果程序中没有创建,CPU 不会进入停止模式。12、处理中断组织块 OB88用于处理程序嵌套、区域数据分配故障,故障出现,CPU 自动调用 OB88 报错,如果程序中没有创建,CPU 进入停止模式。13、背景循环中断组织块 OB90优先级最低,保证 CPU 最短的扫描时间,避免过程映像区更新过于频繁。程序的下载和 C

12、PU 中程序的删除触发OB90 的调用。只能用于 S7-400 系列 PLC CPU。14、启动中断组织块 OB100OB102用于处理 CPU 启动事件,暖启动 CPU 调用 OB100,热启动 CPU 调用 OB101(不适合 S7-300 系列 PLC 和 S7-400H) ,冷启动 CPU 调用 OB102,温度越低,CPU 启动时清除存储器中数据区的类型越多。15、同步错误中断组织块 OB121、OB122OB121 处理与编程故障有关的事件,例如调用的函数没有下载到 CPU 中、BCD 码出错等, OB122 处理与 I/O地址访问故障有关的事件,例如访问一个 I/O 模块时,出现

13、读故障等。如果上述故障出现,在程序中没有创建OB121、 OB122, CP 进入停止模式。注意:不是所有的 OB 都可以在 S7 CPU 中使用,例如 S7-300 系列 PLC PU 中只有暖启动 OB100,操作系统不能调用 OB101、 OB102,CPU 中可以使用的 OB 请参考CPU 选型手册。S7-300 系列 PLC 中组织块的优先级是固定的,不能修改,在 S7-400 系列 PLC 中下列组织块的优先级可以进行修改:OB10OB47:优先级修改范围 223。OB70OB72:优先级修改范围 238。OB81OB87:优先级修改范围 226,优先级 2426确保异步故障中断不

14、被其他的事件中断。几个组织块可以具有相同的优先级,当事件同时出现时,组织块按事件出现的先后顺序触发,如果超过 12 个相同优先级的 OB 同进触发,中断可能丢失。我们在使用相应 OB 时要注意以下问题。1.OB 只是及时反应出了故障,但并不解决故障,OB允许 CPU 带故障运行。2.诊断 OB 如 OB82/86/122 反映的是硬件上的故障,靠软件是解决不了的,软件的作用是尽快指向故障点,硬件的问题还是硬件解决。3.诊断 OB 的产生会影响 CPU 的整个程序的执行速度,会影响系统的控制品质,尤其是一些带过程中断,大量运算及运动控制的高速生产线。4.无条件的让 OB 去掩盖故障是一件很危险的

15、事情,应该有应对的措施,让系统尽快的进入一种可控的安全状态。由于通信的原因,模块不存在或有故障,刷新过程映像表时 I/O 访问出错,将会调用优先级错误中断(OB85) 。可以在 CPU 属性对话框中设置 3 种调用 OB85 的方式。S7-300 默认的方式是不调用 OB85,S7-400 默认的方式是每个扫描循环周期调用一次,还可以设置为故障发生和消失时分别调用一次。用 PI/PQ 地址区访问有故障的 I/O 模块、DP 从站时,将会调用 I/O 访问错误中断(OB122 ) ,每个扫描周期调用一次。对于简单程序,只涉及到数字量逻辑控制,只使用OB1 就可以了,对于复杂程序,使用了 DP 通

16、讯等等,就需要做一些相应功能的组织块来保证 PLC 的运行正常。1 OB100 启动组织块,即 PLC 一通电的第一个扫描周期就先处理此块,以后就不扫描了,所以在这个块内可以做初始化脉冲,复位一些数据。2 OB122 I/O 访问错误组织块,3 OB121 编程错误组织块,这个块比较重要,曾经遇到一个德国进口喂料机,使用一段时间后出现 CPU 不能运行,程序是使用 STL 编程,使用了很多间接寻址,很难找到问题所在,后来就选择了这个组织块后,CPU 运行设备就正常工作了。4 OB82 诊断中断组织块,这个对于使用模拟量模块多的项目需要使用这个块,否则一旦接入的模拟量信号出现问题时,CPU 停机

17、就是大事了。5 OB80 时间错误组织块,包括:超出周期时间、执行 OB 时出现确认错误、提前了时间而使 OB 的启动时间被跳过、在 CiR 后恢复 RUN 模式。6 OB86 机架故障组织块,对于使用了 DP 通讯的分布式 I/O 需要使用这个块。 要想第一时间找到处故障的子站,需要使用 OB86 来作为 DP 故障诊断.需要对 OB86内变量做编程处理,使用触摸屏或其他上位机来显示报警内容。7 OB87 通讯错误组织块。组织块是操作系统与用户程序的接口,可以从下面几个方面来理解:1. 组织块不是用户程序调用的,而是由操作系统调用的。其变量声明表中只有临时变量。2组织块分为三类:启动组织块用

18、于系统初始化;主程序 OB1 是循环执行的;出现中断事件时,操作系统将会停止执行当前的任务,调用一个分配给该事件的组织块。3除了自动生成的 OB1,其他组织块需要用户生成,组织块中的程序是用户编写的。4每个组织块都有 20 个字节的局部变量,其中包含OB 的启动信息。这些信息在 OB 启动时由操作系统提供,包括启动事件、启动日期与时间,错误及诊断事件。5. 中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,CPU 将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的 OB 的优先级高,将中止当前正在

19、处理的 OB,改为执行较高优先级的 OB。下面是优先级的顺序(后面的比前面的优先):背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、I/O 冗余错误、异步故障(OB8087)、启动和 CPU 冗余,背景循环的优先级最低。可以用 STEP 7 修改 S7-400 CPU 某些组织块的优先级。6. 时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能。其他组织块可以用 SFC 39“DIS_INT”来禁止处理某些中断,用 SFC 40“EN_INT”来激活(使能)被禁止的中断。SFC 41“DIS_AIRT”用来延迟处理比当前优先级更

20、高的中断,直到用 SFC 42“EN_ AIRT”来允许立即处理被 SFC 41 暂时禁止的中断。ob1:循环扫描 ob,它是没有时间间隔的,执行完ob1 后就会再次从头开始执行 ob1,所以外部输入的模拟量数据转换成工程量的程序在 ob1 中执行,使得数据能够及时更新。ob10ob23:一般很少用到。ob30ob38:ob33 和 ob35 是常用的,和时间有关的程序一般都是放在这些 ob 中得,比如利用 pid 控制的程序块,要求不是很严格的时间处理功能,当定时器不够用的时候自己编写的类似定时器的程序块。ob100ob102 :这些 ob 只是在 cpu 不同的启动模式下启动一次,所有一些初始化的程序可以写在这些 ob 中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报