广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
S7-1500 CPU 的OB块讲解
发布时间:2024-11-26

组织块类型与优先级

        S7-1500 CPU 支持的优先级从 1(最低)到 26(最高),每个OB有其对应的优先级。OB可由事件触发,所以也可以说事件具有与OB相对应的优先级。对于S7-1500 CPU,如果发生OB启动事件,则可能引起以下反应:

如果事件源已分配一个OB,则事件将触发所分配OB的执行并更新分配的过程映像分区。这意味着事件是按照优先级进行排列的(因为OB具有优先级)。

如果事件源并没有分配任何OB(有一种可能是用户并没有添加相应OB),则将执行默认的系统响应。

        表2概述了OB启动事件,包括OB优先级的值、OB编号、默认的系统响应和OB个数。优先级数字越小表示优先级越低,例如程序循环组织块的优先级为“1”,表示其优先级最低,能够被其它组织块所中断。S7-1500组织块的中断类型及优先级分类参考表2。

 

表2 OB块类型及优先级


注意:

        由表2可以看出,当发生时间错误和编程错误事件时,如果程序中没有添加相应的组织块,S7-1500 CPU将进入停机模式;而对于其它事件,即使S7-1500 CPU中没有添加相应的组织块,CPU也不会停机,这与S7-300/400是有区别的。

 1)程序循环组织块

 操作系统每个周期调用程序循环组织块一次,从而启动用户程序的执行。在S7-1500 CPU中,可以使用多个“程序循环”组织块(OB编号大于等于123),并且按照序号由小到大的顺序依次执行。所有的“程序循环”组织块执行完成后,操作系统再次重新调用“程序循环”组织块。在各个“程序循环”组织块中调用FB、FC等用户程序使之循环执行。“程序循环”组织块的优先级为1且不能修改,这意味着优先级是最低的,可以被其它OB块中断。“程序循环”组织块的执行如图7-9所示。


  图7-9 S7-1500程序循环组织块

 

        2)时间中断组织块

        时间中断组织块用于在时间可控的应用中定期运行一部分用户程序,可以实现在某个预设时间到达时只运行一次,或者在设定的触发日期到达时,按每分、每小时、每周、每月、每月底等周期运行。当CPU的日期值大于设定的日期值时触发相应的OB按设定的模式执行。在用户程序中也可以通过调用SET_TINT指令设定时间中断组织块的参数,调用ACT_TINT指令激活时间中断组织块投入运行。与在OB块属性中的设置相比,通过用户程序在CPU运行时修改设定的参数更加灵活。两种方式可以任意选择,也可以同时对一个OB块进行参数设置。

 

        3)时间延迟中断组织块

        时间延时中断OB在经过一段可组态的延时时间后启动。操作系统会在调用系统函数SRT_DINT后开始计算延时时间,延时时间到达后触发执行响应的OB。OB块号及延迟时间在SRT_DINT参数中设定,延迟时间为1~60000ms,延迟精度为1ms,这也是不使用定时器作为延时条件的原因。可以使用“CAN_DINT”指令取消已经启动的延时中断,

 

        4)循环中断组织块

        循环中断组织块按设定的时间间隔循环执行,循环中断的间隔时间通过时间基数和相位偏移量来指定。在OB块属性中,每一个OB块缺省的时间间隔可以由用户设置。如果使用了多个循环中断OB,当这些循环中断OB的时间基数有公倍数时,可以使用相位偏移量来防止同时启动。不同类型的S7-1500 CPU所支持的最短时间间隔不同,例如CPU 1516支持最短250μs的时间间隔,而CPU 1518支持最短100μs的时间间隔。在循环中断组织块中的用户程序将按照固定的间隔时间执行一次。OB块中的用户程序执行时间必须小于设定的时间间隔。如果间隔时间较短,会造成循环中断OB块没有完成程序扫描而再次被调用,从而造成CPU故障,触发OB80报错。如果程序中没有创建OB80,则CPU进入停机模式。通过调用DIS_IRT,DIS_AIRT,EN_IRT系统指令可以禁用、延迟、使能循环中断的调用。循环中断组织块通常处理需要固定扫描周期的用户程序,例如PID函数块通常需要在循环中断中调用,以保证采样时间的恒定。

 

        5)硬件中断组织块

        硬件中断也称过程中断,用来响应由具有硬件中断能力的设备(例如通信处理器CP及数字量输入、输出模块等)产生的硬件中断事件。例如,可使用具有硬件中断的数字量输入模块触发中断响应,然后为每一个中断响应分配相应的中断OB块,多个中断响应可以触发一个相同的硬件中断OB。S7-1500 CPU支持多达50个硬件中断组织块,可以为最多50个不同的中断事件分配独立的硬件中断组织块,方便用户对每个中断事件独立编程。 

        如果配置的中断事件出现,则中断当前主程序,执行中断OB块中的用户程序一次,然后跳回中断处继续运行主程序。中断程序的执行不受主程序扫描和过程映像区更新时间的影响,适合需要快速响应的应用。

        如果输入模块中的一个通道触发硬件中断,操作系统将识别该模块的槽号,并触发相应的OB块,执行中断OB块之后发送与通道相关的确认。在识别和确认过程中,如果该通道存在再次的中断事件,操作系统将不予响应;如果该模块的其它通道存在中断事件,则在当前正在执行的中断确认之后响应这个新的中断事件;如果是由不同的模块触发的中断,中断请求首先被记录,中断OB块在空闲(没有其它模块的中断请求)时被触发。通过调用DIS_IRT,DIS_AIRT,EN_IRT系统函数可以禁用、延迟、使能硬件中断的调用。

 

        6)DPV1中断组织块 OB55~OB57

        CPU响应PROFIBUS-DP V1从站触发的中断信息。

 

        7)等时同步中断组织块

        用于处理 PROFIBUS-DP 或PROFINET的等时同步用户程序。在等时模式下,从各个从站/设备采集输入信号,到输出逻辑结果,需要以下过程:从站/设备输入信号采样循环(信号转换)、从站/设备背板总线循环(转换的信号从模块传递到接口模块)、总线循环(信号从分布式I/O传递到CPU)、程序执行循环(信号的程序处理,即等时同步中断组织块)、总线循环(信号从PLC传递到分布式I/O)、从站/设备背板总线循环(信号从站接口模块传递到输出模块)及模块输出循环(信号转换)等七个循环。同步时钟将同步以上七个循环,优化数据的传递,并保证各个分布式I/O数据处理的同步性。


        8)时间错误组织块OB80:

        OB 80用于处理时间故障。当在一个循环内程序执行第一次超出设置的最大循环时间时,CPU将自动调用OB80。如果程序中没有创建OB80,CPU将进入停止模式,如果程序中已经创建了OB80,但是在同一次循环内程序执行超出设置的最大循环时间两次,CPU也将进入停机模式。

 

        9)诊断中断组织块

        S7-1500操作系统在下列情况下调用诊断中断组织块:激活诊断功能的模块检测到其诊断状态发生变化(事件到来或事件离开)时,向CPU发送诊断中断请求时;发生电源错误触发事件时;操作系统检测到存储错误以及硬件中断丢失等事件时。


        10)拔出/插入中断组织块

        如果移除或者插入了已组态且未禁用的分布式I/O模块或子模块时,S7-1500 CPU操作系统将调用拔出/插入中断组织块。

        注意,目前S7-1500机架不支持热插拔,所以拔出或插入中央机架模块将导致CPU进入STOP模式。


        11)机架错误组织块

        S7-1500 CPU操作系统在下列情况下调用机架错误OB:检测到PROFIBUS-DP主站系统或PROFINET IO系统发生站点故障等事件(事件到达或离去);检测到PROFINET智能设备的部分子模块发生故障时。


     中断。


展开全文
拨打电话 微信咨询 发送询价