S7-300系列PLC中组织块的优先级是固定的,不能修改,在S7-400系列PLC中下列组织块的优先级可以进行修改:
OB10~OB47:优先级修改范围2~23。
OB70~OB72:优先级修改范围2~38。
OB81~OB87:优先级修改范围2~26,优先级24~26确保异步故障中断不被其他的事件中断。
几个组织块可以具有相同的优先级,当事件同时出现时,组织块按事件出现的先后顺序触发,如果超过12个相同优先级的OB同进触发,中断可能丢失。
我们在使用相应OB时要注意以下问题。
1.OB只是及时反应出了故障,但并不解决故障,OB允许CPU带故障运行。
2.诊断OB如OB82/86/122反映的是硬件上的故障,靠软件是解决不了的,软件的作用是尽快指向故障点,硬件的问题还是硬件解决。
3.诊断OB的产生会影响CPU的整个程序的执行速度,会影响系统的控制品质,尤其是一些带过程中断,大量运算及运动控制的高速生产线。
4.无条件的让OB去掩盖故障是一件很危险的事情,应该有应对的措施,让系统尽快的进入一种可控的安全状态。
由于通信的原因,模块不存在或有故障,刷新过程映像表时I/O访问出错,将会调用优先级错误中断(OB85)。
可以在CPU属性对话框中设置3种调用OB85的方式。S7-300默认的方式是不调用OB85,S7-400默认的方式是每个扫描循环周期调用一次,还可以设置为故障发生和消失时分别调用一次。
用PI/PQ地址区访问有故障的I/O模块、DP从站时,将会调用I/O访问错误中断(OB122),每个扫描周期调用一次。
对于简单程序,只涉及到数字量逻辑控制,只使用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通讯错误组织块。
组织块是操作系统与用户程序的接口,可以从下面几个方面来理解:
1. 组织块不是用户程序调用的,而是由操作系统调用的。其变量声明表中只有临时变量。
2.组织块分为三类:
启动组织块用于系统初始化;
主程序OB1是循环执行的;
出现中断事件时,操作系统将会停止执行当前的任务,调用一个分配给该事件的组织块。
3.除了自动生成的OB1,其他组织块需要用户生成,组织块中的程序是用户编写的。
4.每个组织块都有20个字节的局部变量,其中包含OB的启动信息。这些信息在OB启动时由操作系统提供,包括启动事件、启动日期与时间,错误及诊断事件。
5. 中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,CPU将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的OB的优先级高,将中止当前正在处理的OB,改为执行较高优先级的OB。
下面是优先级的顺序(后面的比前面的优先):背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、I/O冗余错误、异步故障(OB80~87)、启动和CPU冗余,背景循环的优先级最低。可以用STEP 7修改S7-400 CPU某些组织块的优先级。
6. 时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能。
其他组织块可以用SFC 39“DIS_INT”来禁止处理某些中断,用SFC 40“EN_INT”来激活(使能)被禁止的中断。
SFC 41“DIS_AIRT”用来延迟处理比当前优先级更高的中断,直到用SFC 42“EN_ AIRT”来允许立即处理被SFC 41暂时禁止的中断。
ob1:循环扫描ob,它是没有时间间隔的,执行完ob1后就会再次从头开始执行ob1,所以外部输入的模拟量数据转换成工程量的程序在ob1中执行,使得数据能够及时更新。
ob10~ob23:一般很少用到。
ob30~ob38:ob33和ob35是常用的,和时间有关的程序一般都是放在这些ob中得,比如利用pid控制的程序块,要求不是很严格的时间处理功能,当定时器不够用的时候自己编写的类似定时器的程序块。
ob100~ob102:这些ob只是在cpu不同的启动模式下启动一次,所有一些初始化的程序可以写在这些ob中。
其他ob就不常用了。
本文关键字:技巧 PLC入门,plc技术 - PLC入门
上一篇:PLC编程梯形图编辑说明分析