[西门子] 1200PLC的OB块如何使用?

[复制链接]
查看150 | 回复0 | 2024-8-27 10:55:53 | 显示全部楼层 |阅读模式
导读:在我们需要对PLC编程时,需要使用OB块来做些特殊程序编写,比如在做PID运算时需要在循环中断中编写程序。那么本文就一起来探讨一下1200PLC中的OB块的作用。
S7-1200用户程序中包含不同的程序块,各程序块实现的功能不同。


ØS7-1200程序组织块介绍
OB组织块是操作系统和用户程序之间的接口。
   OB 用于执行具体的程序:
•   在 CPU 启动时;
•   在一个循环或延时时间到达时;
•   当发生硬件中断时;
•   当发生故障时;

程序循环 OB 的功能
1.程序循环OB 在 CPU 处于 RUN 模式时,周期性地循环执行
2.主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB
3.操作系统每个周期调用该程序循环OB 一次,从而启动用户程序的执行。
4.S7-1200允许使用多个程序循环OB ,按 OB 的编号顺序执行
5.OB1是默认设置,其它程序循环 OB 的编号必须大于或等于123
6.程序循环OB 的优先级为1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。最长循环时间缺省设置为150ms。如果您的程序超过了最长循环时间,( 操作系统将调用 OB80(时间故障OB );如果 OB80 不存在 ),则 CPU 停机。

Ø组织块与程序块的结构
● 一个OB的调用和执行可以中断宁一个正在执行的OB,是否允许一个OB中断另一个OB取决于他的优先级,(例如程序循环 的OB的优先级最低,为1 因此他可以被其他高优先级的OB中断)

硬件中断OB 在发生相关硬件事件时执行,可以快速的响应并执行硬件中断 OB 中的程序(例如立即停止某些关键设备)。硬件中断事件包括内置数字输入端的上升沿和下降沿事件以及HSC(高速计数器)事件。当发生硬件中断事件,硬件中断OB将中断正常的循环程序而优先执行。一个硬件中断事件只允许对应一个硬件中断 OB ,而一个硬件中断 OB 可以分配给多个硬件中断事件。硬件中断 OB 的编号必须为40~47,或大于、等于123。

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

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

           循环中断 OB 在经过一段固定的时间间隔后执行相应的中断 OB 中的程序。S7-1200 最多支持 4 个循环中断 OB ,在创建循环中断 OB 时设定固定的间隔扫描时间。循环中断 OB 的编号必须为30~38,或大于、等于123。


例如:运用循环中断,使Q0.0500ms输出为1,500ms输出为0,即实现周期为1s的方波输出。具体实现过程如下:1、按如下步骤创建循环中断 OB30 。


延时中断OB 在经过一段指定的时间延时后,才执行相应的 OB 中的程序。S7-1200 最多支持 4 个延时中断 OB ,通过调用“SRT_DINT”指令启动延时中断 OB 。在使用“SRT_DINT”指令编程时,延时中断 OB 的编号必须为20~23,或大于、等于123。

例如:当 I0.0 由1变0时,延时5s后启动延时中断 OB20 ,并将输出Q0.0 置位。具体实现过程如下:1、按如下步骤创建延时中断OB20






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则