西门子PLC S7-1500局部错误处理

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2019年1月5日22:32:59 评论 848 阅读

在块内处理错误 步骤

与 S7-300/400 的 CPU 不同,S7-1500 的 CPU 会在发生非常少见的错误时转入 STOP 模式。 如果发生了错误,就会将错误输入到 CPU 的诊断缓冲区中。 通过在每个块上使用局部错误处理,可以避免 CPU 停止。 最好应在用户程序的开发过程中启用局部错误处理。

西门子PLC S7-1500局部错误处理

这样就可以对信息进行精确评估,例如,使用 STL/FBD/LAD 和 SCL 程序对块中的错误处理进行编程。 块会生成由“GET_ERROR_ID”指令进行评估的错误 ID。 可以在 MAIN 块中以及在函数块中调用“GET_ERROR_ID”指令。 CPU 保留在 RUN 模式。

西门子PLC S7-1500局部错误处理

加载用于局部错误处理的块

简介

为了说明局部错误处理,可在项目中加载“ProgLib_LEH”库的块。 这些块仅用于说明局部错误处理,不在项目中另外使用。

步骤

  1. 打开全局库“ProgLib_LEH”。
  2. 将主模板中的块复制到项目中。

西门子PLC S7-1500局部错误处理

  1. 在“Main”块的一个空程序段中调用“LAD_Local_Error_Handling”函数块。
  2. 将“LAD_Local_Error_Handling”函数块的参数与“LEH_InOutValues”数据块的变量互连。

西门子PLC S7-1500局部错误处理

  1.  在线连接到CPU。
  2.  对更改内容进行编译并加载到CPU。

结果

使用“INDEX[0..100]”输入参数处的“LEH_INDEX”变量随后触发一个编程错误。 例如,如果将该输入参数设置为“101”,则会通过输出参数报告错误。

不进行局部错误处理时生成错误

简介

为了在不使用局部错误处理或不创建相应 OB 的情况下触发编程错误,请执行以下步骤。

步骤

  1.  激活“监视”(Monitor)功能。
  2. 将“LEH_INDEX”变量的值设置为一个无效的值,如“101”。在“测试”(Testing)对话框中,ERROR LED 指示灯短暂闪烁,CPU 从 RUN 转为 STOP。

西门子PLC S7-1500局部错误处理

  1.  切换到诊断缓冲区。错误和错误响应显示在诊断缓冲区中。
  2. 将 CPU 设置回RUN。

结果

从 RUN 状态转换到 STOP 状态会将“LEH_INDEX”变量复位到起始值“0”。 这会自动将问题解决。

进行局部错误处理时生成错误

简介

为了通过错误消息对错误做出响应,请执行以下步骤将“GET_ERR_ID”指令及其 ENO

位用于局部错误处理。 这意味着 CPU 保持在 RUN 模式。

步骤

  1. 打开“LAD_Local_Error_Handling”函数块。
  2. 在第二个程序段中插入“GET_ERR_ID”指令,然后连接“ID”输出。

西门子PLC S7-1500局部错误处理

  1. 从项目树调用“ErrorID_to_ErrorText”函数。
  2. 将“ErrorID_to_ErrorText”函数的参数进行互连,以便它们可以将错误代码转换为错误消息。
  3.  将更改内容加载到CPU。
  4. 通过输入一个无效的值(如“101”),在“Main”组织块中触发错误。通过“ERROR_MESSAGE”参数输出一个错误消息。

结果

只要未将错误纠正,就会输出错误消息。 若要纠正该错误,请为“LEH_INDEX”变量分配一个有效的值,或重新启动 CPU。

西门子PLC S7-1500局部错误处理

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: