组织块类型与优先级
S7-1500 CPU 支持的优先级从 1(Zui低)到 26(Zui高),每个OB有其对应的优先级。OB可由事件触发,所以也可以说事件具有与OB相对应的优先级。对于S7-1500 CPU,如果发生OB启动事件,则可能引起以下反应:
如果事件源已分配一个OB,则事件将触发所分配OB的执行并更新分配的过程映像分区。这意味着事件是按照优先级进行排列的(因为OB具有优先级)。
如果事件源并没有分配任何OB(有一种可能是用户并没有添加相应OB),则将执行默认的系统响应。
表2概述了OB启动事件,包括OB优先级的值、OB编号、默认的系统响应和OB个数。优先级数字越小表示优先级越低,例如程序循环组织块的优先级为“1”,表示其优先级Zui低,能够被其它组织块所中断。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且不能修改,这意味着优先级是Zui低的,可以被其它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所支持的Zui短时间间隔不同,例如CPU 1516支持Zui短250μs的时间间隔,而CPU 1518支持Zui短100μs的时间间隔。在循环中断组织块中的用户程序将按照固定的间隔时间执行一次。OB块中的用户程序执行时间必须小于设定的时间间隔。如果间隔时间较短,会造成循环中断OB块没有完成程序扫描而再次被调用,从而造成CPU故障,触发OB80报错。如果程序中没有创建OB80,则CPU进入停机模式。通过调用DIS_IRT,DIS_AIRT,EN_IRT系统指令可以禁用、延迟、使能循环中断的调用。循环中断组织块通常处理需要固定扫描周期的用户程序,例如PID函数块通常需要在循环中断中调用,以保证采样时间的恒定。
5)硬件中断组织块
硬件中断也称过程中断,用来响应由具有硬件中断能力的设备(例如通信处理器CP及数字量输入、输出模块等)产生的硬件中断事件。例如,可使用具有硬件中断的数字量输入模块触发中断响应,然后为每一个中断响应分配相应的中断OB块,多个中断响应可以触发一个相同的硬件中断OB。S7-1500 CPU支持多达50个硬件中断组织块,可以为Zui多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用于处理时间故障。当在一个循环内程序执行第一次超出设置的Zui大循环时间时,CPU将自动调用OB80。如果程序中没有创建OB80,CPU将进入停止模式,如果程序中已经创建了OB80,但是在同一次循环内程序执行超出设置的Zui大循环时间两次,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智能设备的部分子模块发生故障时。
中断。
- TIA Portal中关于Variant数据类型在LAD中的简单用法 2024-11-22
- S7-1500 CPU上的面板白屏是什么情况 2024-11-22
- SIMATIC S7-1500CPU的过载特性 2024-11-22
- 正确使用S7-1500的团队调试功能 2024-11-22
- 分享一个简单的滤波算法 2024-11-22
- PLC 系统的供电与接地分析 2024-11-22
- 为什么要使用Program Alarm功能 2024-11-22
- 工业以太网基础知识介绍—网络架构 2024-11-22
- 工业以太网基础知识介绍—网络体系及标准 2024-11-22
- 【分享】关于S7-1200如何在忘记了CPU密码的条件下恢复出厂设置的问题 2024-11-22
- 工业以太网网络的诊断与分析 2024-11-22
- 西门子触摸屏VNC远程访问 2024-11-22
- 使用SIMATIC S7-1500 S7-PLCSIM Advanced有哪些限制 2024-11-22
- 如何在STEP 7(TIA Portal)中删除SIMATIC ProDiag监控 2024-11-22
- 为什么在S7-1200中查找交叉引用时 STEP 7 (TIA Portal) V15.1会崩溃 2024-11-22