您现在的位置是:首页 > PLC技术 > PLC技术
SIMATIC S7中断事件概要
来源:艾特贸易2018-04-20
简介SIMATIC S7 提供以下中断事件(中断): ●日历中断 该中断是由操作系统在一天的特定时间点产生,可以是单次触发或者周期性触发。 ●延时中断 该中断在一个特定长度的时间过去之后
SIMATIC S7提供以下中断事件(中断):
●日历中断
该中断是由操作系统在一天的特定时间点产生,可以是单次触发或者周期性触发。
●延时中断
该中断在一个特定长度的时间过去之后产生,一个系统功能的调用决定这个时间周期开始的时刻。
●看门狗(监视定时器)中断
该中断由操作系统周期性地产生。
●硬件中断
该中断源自模块,通过一个来自过程信号的输入产生或者由模块自己产生。
●DPV1中断
该中断来自一个PROFIBUSDPV1从站。
●多处理器中断
该中断由多处理器网络中其他的CPU产生。
●同步周期中断
该中断由一个PROFIBUSDP主站在DP周期中产生。
其他中断事件包括异步错误和可能发生的与程序扫描有关的同步错误,比如诊断中断,这些事件的处理将在第23章讨论。
1.优先级
一个具有较高优先级的事件将会中断正在处理的由另一个事件引起的较低优先级程序。除了启动程序,主程序具有最低的优先级(优先级1),异步错误优先级最高(优先级26),所有其他事件的优先级介于它们之间。在S7-300系统中(除了CPU 318),优先级是确定的;而对于S7-400系统和CPU 318,可以通过适当地调整CPU的参数来改变优先级。
全部优先级的一览表及与之对应的默认组织块艾特贸易小编将在后续文章中进行介绍。
2.禁止中断
事件驱动程序扫描的组织块,可以通过使用系统功能SFC 39 DIS_IRT和SFC 40 EN_IRT来禁止和启用,用SFC 41 DIS_AIRT和SFC 42 EN-AIRT来延迟和启用(参见21.9节)。
3.当前信号状态
在一个中断处理程序中,有一个要求就是使用I/O模块的当前信号状态(而不是使用在主程序开始时加载到输入的信号状态),并且直接把所读取的信号状态写到I/O(而不是等到主程序结束时更新过程映像输出表)。
对于中断处理程序而言,在输入腧出较少的情况下,使用加载和传送操作,直接存取I/O模块就足够了。在这里建议保持对主程序和与I/O信号有关的中断处理程序的严格区别。
如果需要在中断处理程序中处理较多的I/O信号,在S7-400 CPU上解决的方法是使用子过程映像。当分配地址时,每一个模块分配一个子过程映像。通过使用SFC 26 UPDAT_PI和SFC 27 UPDAR_PO,可以在用户程序中更新子过程映像。
在新的S7-400 CPU中,可以把一个输入和一个输出子过程映像分配到每一个中断组织块(每一个中断优先级),使得中断发生时可以自动更新过程映像。
4.启动信息和暂态局部数据
每一个组织块在其暂态局部数据的前20字节中传送启动信息,可以使用自己的数据生成启动信息声明,或者使用菜单组织块下的标准库中的模板。
在S7-300系统中,有效的暂态局部数据具有确定的长度256字节。在S7-400中,可以通过适当设置CPU的参数,来调整每个优先级对应的数据长度(参数块“局部数据”),但总量不会超过由CPU决定的最大值。需要注意的是,优先级使用的暂态局部数据的最小字节数必须为20,使其能够容纳启动信息。为未使用的优先级指定O字节。
注意,只能在组织块内部直接读取块中的启动信息,因为它只是暂态局部数据。假如在以较低级别调用的块中也需要该启动信息的值,就在程序中对应的点上调用系统功能SFC 6 RD_SINFO。
5.当前中断信息
中断组织块中,启动信息的字节4~11包含了触发中断的具体信息。在许多情况下,触发中断的部件提供了附加信息,可以在中断组织块中使用系统功能块SFB 54 RALRM来读取这些信息。特别是在PROFIBUS DP从站中,就属于这种情况。