首页 > 化工知识 > 如何理解和使用STEP7的循环中断组织块OB3x?

如何理解和使用STEP7的循环中断组织块OB3x?

时间:2020-09-28 来源:方正智芯 浏览:

在西门子Step7 PLC的编程中,组织块(OB)是操作系统与用户程序沟通的桥梁。Step7提供了各种各样的组织块,比如用于主程序循环的组织块OB1、用于日期时间中断的组织块OB10、用于延时中断的组织块OB20、用于硬件中断的组织块OB40、用于诊断中断的组织块OB82等等。今天这篇文章,我们想和大家谈谈Step7的循环中断组织块OB3x(x取值从0到8)。

所谓“循环中断(Cyclic Interrupt)”,其实就是周期性的触发中断。通俗的讲,就是每隔一段时间就触发一次中断。谁来触发呢?答案是:操作系统。

PLC的操作系统内部有若干定时器,可以给这些定时器设置不同的时间(Interval time)。当时间到了之后,定时器就会触发一次中断。之后定时器重新计时,下次时间到了之后,再次触发中断。如此循环,这就是“循环中断”(别问我它累不累)。

当然,触发中断并不是最终目的。操作系统希望当中断被触发后,用户能来干点什么。于是,它定义了一个接口模块,用户可以把程序写到这个模块中。当中断被触发后,操作系统会调用这个接口模块,于是用户程序就得以执行。这就是“中断处理(Interrupt Handling)”。

在Step7中,这个接口模块,就是循环中断组织块。

在S7-300/400中,总共有九个循环中断组织块:OB30~OB38。不同的组织块的时间周期和优先级是不同的,请看下面的表格:

在Step7 V5.5中,OB35的时间周期是可以修改的,其它OB的周期都不能修改。优先级不能修改,如下图:

怎么来使用循环中断组织块呢?最简单的例子是可以用来计时。

虽然PLC本身提供了定时器资源,但是这些定时器都只能在时间到了之后给一个信号。如果我们想查看定时器的当前时间,比如某个过程从计时开始已经走过了多少时间,传统的定时器是做不到的(IEC定时器可以在背景数据块中查看,但是不方便)。这种情况就可以利用循环中断组织块来实现。

比如,我们可以在OB35中写如下一段代码:

假设我们使用OB35的默认时间周期:100ms。那么,每隔100ms,MD0的值就会加1,这样就可以实现一个时基为100ms(0.1s)的定时器。

注:完整功能的定时器还需要其它代码。

在S7-1200/1500中,循环中断组织块的时间周期和优先级都可以根据需要修改。循环时间周期的取值范围在1~60000ms之间;优先级的取值范围在2~24之间。如下图:

好了,关于Step7的循环中断组织块就先介绍到这里。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐