linux中断响应时间太慢_西门子S7系列PLC如何响应时间中断?一文带你深入浅出的了解它。...

我是小庄,初入工控行业,目前正努力钻研、提高。即日起,借“塞北名驼”这个平台,不定期更新一些学习心得,借以鞭策自己。


一、中断组织块

组织块OB1用于循环程序处理。除了OB1外,S7中还提供了中断OB。一旦中断发生,操作系统将执行相应了中断OB内的用户程序,以便可以按已编写的动作对中断做出响应。下表汇总了不同类型的中断。

0e0013261b52ad336fad396a97a1009d.png

表一 中断类型和应用

本文,详细介绍一下时间中断,即OB10-OB17的功能及用法。


二、时间中断组织块(OB10-OB17)

STEP7提供了多达8个OB(OB10-OB17),用作时间中断。时间中断可以在指定的日期执行,也可以配置成特定的时间间隔来执行。时间中断有以下两种触发方式:

· 在特定的时间执行一次

· 周期性地,指定启动时间和中断重复的时间间隔(如:每分、每小时、每天等),如图1所示。

9275439eac59d66eca7ab4148bada925.png

图1 时间中断的触发方式

并不是每个CPU都支持全部8个时间中断,如图1所示,CPU315-2DP仅支持OB10一个时间中断,具体情况可参考硬件手册。

1、启动时间中断

有三种方法来启动时间中断:

· 使用STEP7给时间中断分配参数,然后等待中断自动启动,图1即为该种方法;

· 调用SFC28(SET_TINT)和SFC30(ACT_TINT)设置并激活时间中断。

· 如图1中,可以通过STEP7分配参数来设置时间中断,但不选择激活。然后在程序中使用SFC30(ACT_TINT)来激活。

2、查询时间中断

要查询设置了哪些时间中断以及它们设置为何时发生,可以采用以下方法:

· 调用SFC31(QRY_TINT)

· 在系统状态列表的"中断状态"列表中查询。

系统状态列表(SSL)记录PLC的当前状态,包括组态、当前参数分配、CPU的当前状态和顺序以及属于它的模块的信息。系统状态列表中的数据只能读取,而不能修改。它仅是一个按要求创建的虚拟列表。系统状态列表一般分为四个区域,如图2所示。

4090d5dc3df6e7747ecf0e98e91b9de5.png

图2 系统状态列表SSL

这里,我们要查询的"中断状态"即属于系统状态列表中的"system data"的一部分。

3、取消激活时间中断

可以使用SFC29(CAN_TINT)取消未被执行的时间中断。当然,被取消的时间中断可以用SFC28(SET_TINT)重新设置,用SFC30(ACT_TINT)激活。

4、时间中断OB的本地数据

下表给出了时间中断OB的临时(TEMP)变量,以OB10为例。

725ccd576451e60805c45e86769dd39c.png

表二 时间中断OB10的临时(TEMP)变量


三、影响时间中断OB的条件

由于时间中断仅以指定的时间间隔发生(不考虑仅执行一次的情况),因此,在执行用户程序期间,某些条件可能会影响OB的操作。下表类除了其中的一些条件,并说明了该条件对执行时间中断OB的影响。

265ba181e5f2007a5d23a0ae4a02da83.png

表三 影响时间中断OB的可能条件

时间中断的注意事项:

· 周期性的时间中断必须对应于实际日期。从1月31日开始,每月重复OB10是做不到的。没有31日的月份不会响应OB10的中断的;

· 在启动期间激活的时间中断,只有当启动完成之后才响应中断;

· 由参数分配取消选择的时间中断OB不能启动。CPU将识别编程错误,并切换到STOP模式。

· 重新启动(暖启动)之后,必须重新设置时间中断(例如,在启动程序中使用SFC30 ACT_TINT)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值