抖音粉丝群1
『7x24小时有问必答』

二、组织块(OB)深度解析(系统核心)

组织块是  PLC  系统事件的  响应中心,不同  OB  对应特定触发条件,决定程序的执行时机与优先级,核心覆盖循环、启动、中断三大类。

2.1  程序循环组织块(OB1

OB1  是用户程序的主入口,处于第  1  优先级组,CPU  在  RUN  模式下按扫描周期循环执行,是周期性任务的核心载体。

2.1.1  核心特性与触发机制

触发条件CPU  处于  RUN  模式时持续循环,每次执行完毕自动重启,支持多程序循环  OB  按编号顺序执行(如  OB1OB123);
扫描周期:由输入读取程序执行输出刷新”  全流程耗时决定,默认最大循环时间  150ms
超时处理:执行时间超最大值时,若下载  OB80  则调用中断处理,否则  CPU  切换至  STOP  模式。

2.1.2  应用场景与优化技巧

典型用途:周期性数据采集(如读取温度传感器)、设备状态监控、常规逻辑控制;
效率优化
a.复杂逻辑拆分至  FC/FBOB1  仅保留块调用,避免单次执行时间过长;
b.精确定时任务(如  100ms  采样)移交  OB30-OB38(循环中断  OB),减少  OB1  负担;
c.通过  CPU  属性查看  当前循环时间,针对性优化耗时逻辑。

2.2  启动组织块(OB100

OB100  在  CPU  从  STOP  切换至  RUN  时执行一次,处于第  2  优先级组,专用于系统初始化,执行完毕后移交  OB1  运行。

2.2.1  触发场景与核心功能

触发条件CPU  上电启动、手动切换至  RUN  模式、热启动操作;
核心功能:变量初值赋值(如  MW100:=0)、硬件参数配置(如高速计数器初始化)、保持性数据检查、实时时钟校验。

2.2.2  接口变量与编程示例

OB100  包含两个关键接口变量,用于诊断系统启动状态:
变量名称
数据类型
描述
LostRetentive
Bool
保持性数据丢失时为  TRUE
LostRTC
Bool
实时时钟丢失时为  TRUE
编程示例:启动时初始化与故障诊断
//  程序段1:保持性数据丢失检测
IF LostRetentive THEN
    Q0.0 := TRUE; //  输出报警信号
    MW100 := 0;      //  重置关键变量
END_IF;
//  程序段2:实时时钟校准
IF LostRTC THEN
    "DB_System".RTC := DTL2024-05-20-10:00:00.0; //  重置时钟
END_IF;
//  程序段3:变量初始化
"DB_Motor".Speed := 500.0; //  电机速度初值
"DB_Sensor".Enable := TRUE; //  传感器使能

2.3  时间错误中断组织块(OB80

OB80  为最高优先级(第  3  优先级组),当系统出现时间相关错误时触发,可中断所有其他  OB  执行,是系统稳定性的关键保障。

2.3.1  触发条件与接口变量

触发场景
a.循环时间超过最大限值;
b.中断  OB(如  OB30)被重复请求且正在执行;
c.中断队列溢出(处理速度低于触发频率)。
核心接口变量
变量名称
数据类型
描述
fault_id
Byte
错误代码(1601  =  循环超时,1602=OB  冲突)
csg_OBnr
OB ANY
出错时正在执行的  OB  编号
csg_prio
UINT
错误  OB  的优先级

2.3.2  编程示例与  RE_TRIGR  指令

典型应用:处理循环超时并延长监控定时器,避免  CPU  停机。
//  程序段1:错误信息记录
"DB_Diagnose".ErrorID := fault_id;
"DB_Diagnose".ErrorOB := csg_OBnr;
//  程序段2:重启扫描循环监视定时器
RE_TRIGR(EN := TRUE); //  延长最大循环时间一个周期
RE_TRIGR  指令说明
功能:重新启动扫描循环监视定时器,单次执行延长一个最大循环时间段;
场景:长时间任务(如数据批量处理)中定期调用,或  OB80  中应急处理;
注意:仅可在  OB1  或  OB80  中使用,避免频繁调用导致响应延迟。

2.4  其他常用  OB  

2.4.1  循环中断  OBOB30-OB38

特性:按固定周期执行(1ms-1min),优先级  1-26  可调,适用于精确定时任务;
创建步骤:添加新块选择  “Cyclic interrupt”→设置周期与优先级;
应用PID  控制(100ms  周期)、数据采样、定时报警。

2.4.2  硬件中断  OBOB40-OB47

特性:由硬件事件触发(如数字量输入上升沿),优先级  1-26  可调;
配置流程:创建  OB40→硬件组态中启用输入中断关联触发点(如  I0.0  上升沿);
应用:急停信号处理、高速脉冲计数触发。

2.4.3  诊断中断  OBOB82

特性:模块故障时触发(如传感器断线、电源故障);
接口变量:包含  IO_State(硬件状态)、LADDR(故障地址)等诊断信息;
应用:故障定位与报警,如记录故障模块地址并触发声光报警。

2.5 OB  块优化使用原则

1.优先级分配:实时性任务(如急停处理)分配高优先级(15-26),常规任务用低优先级(1-10);
2.可中断设置:高优先级  OB  需中断低优先级  OB  时,将低优先级  OB  的  可中断”  属性设为  
3.资源管控:避免  OB  数量过多,同类任务合并(如多个定时任务共用一个  OB30,通过计数器区分周期);
4.错误处理:为关键  OB(如  OB1OB30)配套错误处理逻辑,避免单点故障导致系统停机。
1.gif
往期推荐

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码