硬件中断OB的功能

描述

硬件中断 OB

● 硬件中断 OB 的功能

硬件中断 OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。

硬件中断事件包括内置数字输入端的上升沿和下降沿事件以及 HSC(高速计数器)事件。

当发生硬件中断事件,硬件中断 OB 将中断正常的循环程序而优先执行。

S7-1200可以在硬件配置的属性中预先定义硬件中断事件,一个硬件中断事件只允许对应一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件。

在 CPU 运行期间,可使用“ATTACH”附加指令和“DETACH”分离指令对中断事件重新分配。

硬件中断 OB 的编号必须为40~47,或大于、等于123。

● 与硬件中断 OB 相关的指令功能

指令名称 功能说明
ATTACH 将硬件中断事件和硬件中断 OB 进行关联。
DETACH 将硬件中断事件和硬件中断 OB 进行分离。

● 硬件中断 OB 的使用示例:

例如:当硬件输入 I0.0 上升沿时,触发硬件中断 OB40(执行累加程序),当硬件输入 I0.1 上升沿时,触发硬件中断 OB41(执行递减程序),硬件中断事件和硬件中断 OB 关系如图1。

S7-1200

图1. 硬件中断关系

1、按如下步骤创建硬件中断 OB40 ,同样的方法创建 OB41 。如图2。

S7-1200

图2. 创建硬件中断 OB40

2、OB40 中编程如下图,当硬件输入 I0.0 上升沿时,触发硬件中断执行 MW200 加1。如图3。

S7-1200

图3. OB 40 中编程

3、OB41 中编程如下图,当硬件输入 I0.1 上升沿时,触发硬件中断执行 MW200 减1。如图4。

S7-1200

图4. OB41 中编程

4、在 CPU 属性窗口中关联硬件中断事件,如下图所示,分别将 I0.0 和 OB40 关联,I0.1 和 OB41 关联。如图5、6。

S7-1200

图5. I0.0 和 OB40 关联

S7-1200

图6. I0.1 和 OB41 关联

5、测试结果:程序下载后,在监控表中查看 MW200 的数据。

① 当 I0.0 接通,触发中断 OB40 ,MW200 的数值累加1。结果如图7。

S7-1200

图7. I0.0 硬件中断结果

② 当 I0.1 接通,触发中断 OB41 ,MW200 的数值递减1。结果如图8。

S7-1200

图8. I0.1 硬件中断结果

6、如果需要在 CPU 运行期间对中断事件重新分配,可通过“ATTACH”附加指令实现,OB1 中编程步骤如下图。如图9。

S7-1200

图9. “ATTACH”指令

① 如果“ATTACH”附加指令的引脚“ADD”为 FALSE,EVENT 中的事件将替换 OB40 中的原有事件。

即硬件中断事件 I0.1“上升沿1”事件将替换原来 OB40 中关联的 I0.0“上升沿0”事件,见下图10:

S7-1200

图10. 硬件中断关系

② 如果“ATTACH”附加指令的引脚“ADD”为 TRUE,EVENT 中的事件将添加至 OB40 ,OB40 在 I0.0“上升沿0”和 I0.1“上升沿1”事件触发时均会执行,见下图11:

S7-1200

图11. 硬件中断关系

“ATTACH”指令参数说明:

EN :=%M100.0 //当 EN 端出现上升沿时,使能该指令
OB_NR :=40 //需要关联的 OB 的编号
EVENT :=“上升沿1” //需要关联的硬件中断事件名称
ADD :=FALSE //ADD=FALSE(默认值):该事件将取代先前为此 OB 分配的所有事件。ADD=TRUE:该事件将添加到此 OB 中。
RET_VAL :=%MW0 //状态返回值(详细信息请查看在线帮助)

7、如果需要在 CPU 运行期间对中断事件进行分离,可通过“DETACH”指令实现,OB 1 中编程如图12。

S7-1200

图12. “DETACH”指令

当 M100.2 置1使能指令 DETACH 后,硬件中断事件和硬件中断 OB 关系如下图。如图13。

S7-1200

图13. 硬件中断关系

“DETACH”指令参数说明:

EN :=%M100.2 //当 EN 端出现上升沿时,使能该指令
OB_NR :=40 //需要分离的 OB 的编号
EVENT :=“上升沿0” //需要分离的硬件中断事件名称
RET_VAL :=%MW2 //状态返回值(详细信息请查看在线帮助)

常见问题:

使用硬件中断需要注意什么?

1、一个硬件中断事件只能分配给一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件;

2、用户程序中最多可使用50个互相独立的硬件中断 OB ;数字量输入和高速计数器均可触发硬件中断;

3、中断 OB 和中断事件在硬件组态中定义;在 CPU 运行时可通过“ATTACH”和“DETACH”指令进行中断事件重新分配;

4、如果“ATTACH”指令的使能端 EN 为脉冲信号触发,在使用“ATTACH”指令进行中断事件重新分配后;若 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,则硬件中断 OB 和硬件中断事件将恢复为在硬件组态中定义的分配关系;

5、如果一个中断事件发生,在该中断 OB 执行期间,同一个中断事件再次发生,则新发生的中断事件丢失;

6、如果一个中断事件发生,在该中断 OB 执行期间,又发生多个不同的中断事件中,则新发生的中断事件进入排队,等待第一个中断 OB 执行完毕后依次执行。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分