如何理解和使用STEP7的循环中断组织块OB3x?
在西门子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的循环中断组织块就先介绍到这里。
-
Origin(Pro):学习版的窗口限制【数据绘图】 2020-08-07
-
如何卸载Aspen Plus并再重新安装,这篇文章告诉你! 2020-05-29
-
AutoCAD 保存时出现错误:“此图形中的一个或多个对象无法保存为指定格式”怎么办? 2020-08-03
-
OriginPro:学习版申请及过期激活方法【数据绘图】 2020-08-06
-
CAD视口的边框线看不到也选不中是怎么回事,怎么解决? 2020-06-04
-
教程 | Origin从DSC计算焓和比热容 2020-08-31
-
如何评价拟合效果-Origin(Pro)数据拟合系列教程【数据绘图】 2020-08-06
-
Aspen Plus安装过程中RMS License证书安装失败的解决方法,亲测有效! 2021-10-15
-
CAD外部参照无法绑定怎么办? 2020-06-03
-
CAD中如何将布局连带视口中的内容复制到另一张图中? 2020-07-03