[西门子] 西门子1200与1500PLC的错误诊断中断程序

[复制链接]
查看80491 | 回复0 | 2024-4-13 11:24:48 | 显示全部楼层 |阅读模式


西门子1200,1500PLC支持诊断错误中断,可以为具有诊断功能的模块启用诊断错误中断功能来检测模块状态。



OB82 时唯一支持诊断错误事件的 OB ,出现故障(进入事件),故障解除(离开事件)均会触发诊断中断 OB82 。当模块检测到故障并且在软件中使能了诊断错误中断时,操作系统将启动诊断错误中断,诊断错误中断 OB82 将中断正常的循环程序优先执行。此时无论程序中有没有诊断中断 OB82,CPU 都会保持 RUN 模式,同时 CPU 的 ERROR 指示灯闪烁。如果希望 CPU 在接收到该类型的错误时进入 STOP 模式,可以在 OB82 中加入 STP 指令使 CPU 进入 STOP 模式。



如果没有激活其它中断 OB,则调用诊断中断 OB (OB 82)。如果已经在执行其它中断 OB,诊断错误中断将置于同优先级的队列中。

在用户程序中只能使用一个诊断中断 OB。当触发诊断错误中断时,通过 OB82 的接口变量可以读取相应的启动信息,可以帮助确定事件发生的设备、通道和错误原因。OB82 的接口变量及启动信息参考下图:



IO_state 变量

下表列出了 IO_state 变量所能包含的可能 I/O 状态:



OB82中编程如下:



添加1500plc与扩展模块



设置诊断功能

模块 AQ4xU/I ST 硬件标识 269,通道1地址是 98。程序下载后,在监控表中给“通道1”设置输出值5000,如果此时出现了短路故障,则将立即触发诊断错误功能。



触发诊断错误中断时,CPU 如何响应?

1、启用诊断错误中断且 CPU 中创建了 OB82 ;

2、OB82 是唯一支持诊断错误事件的 OB ;一次只能报告一个通道的诊断错误;

3、如果多通道设备的两个通道出现错误,则第二个错误只会在以下情况触发 OB82 :第一个通道错误已清除,由第一个错误触发的 OB82 已执行完毕,并且第二个错误仍然存在;

4、事件的进入或离开都会触发一次 OB82 ;

5、触发 OB82 ,CPU 不会进入 STOP 模式。

哪些情况会触发诊断错误中断?

如下错误将触发诊断错误中断 OB82 :

① 无用户电源

② 超出上限

③ 超出下限

④ 断路(电流)

⑤ 短路(电压)

扫描下方二维码

助你成为优秀的电气工程师



左老师:18073180632(同微信)

本帖子中包含更多资源

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

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

本版积分规则