如何管理 S7-1200 PLC 检测到的块的执行错误?

描述
缺省状态下,CPU 会将块执行错误登录到诊断缓存区中并且转到停机模式。这是预设的系统响应。n

可以通过在你想要监控的程序块中添加“GetError”或“GetErrorID”指令来改变这种响应。这时CPU 不会停机,也不会将错误登录到诊断缓存区。这个块被设定为管理块内的错误。错误信息报告到“GetError”或“GetErrorID”指令的输出。n

GetError”
“GetError”指示发生程序块执行错误并且填充详细的错误信息到预先定义好的错误数据结构变量中,数据类型“ErrorStruct ”。
“GetError”也可以用于传送错误状态的报警到所调用的块。为了实现这个功能,指令必须放在所调用块的最后一个网络。n

“GetErrorID”
“GetErrorID”指令指示发生程序块执行错误并且报告错误 ID (识别码)。可以在 STEP 7 Basic 的在线帮助中,通过搜寻关键字“GetErrorID”找到错误代码列表。n

注意
在创建一个新项目时,并没有“GetError”或“GetErrorID”指令出现。n

使用“GetError”指令检测块执行错误事件
块执行事件的信息将存在 “ErrorStruct”系统数据类型的变量中。

No.

使用“GetError”指令检测块执行错误事件

1添加“GetError”指令 n

  • 浏览指令窗找到“Extended instructions > Program control > GetError”。n
  • 拖放“GetError”指令到需要监控的 OB 的最后一个网络。n
  • 点击“OK”按钮

详细的信息请参看下面的视图。

2读取“GetError”指令的错误输出信息
可以保存本地错误信息到如下描述的全局变量中: n

  • 创建数据类型为“ErrorStruct”的本地变量“error_local”。n
  • 保存“错误”输出值到本地变量“error_local”。n
  • 浏览指令窗找到 “Instructions > Move > MOVE”。
  • 拖放一个 “MOVE”指令到“GetError”指令所在的网络中。
  • 连接“GetError”指令的 ENO点到“MOVE”指令的 EN 端。
  • 在“data_block”数据块中,创建一个“ErrorStruct”数据类型的全局数据变量“gl_error”。
  • 传送“GetError”变量到“data_block”.gl_error”变量。

如何管理 S7-1200 PLC 检测到的块的执行错误?
图. 01

3检测“GetError”指令的“错误”输出信息
只有“ErrorStruct’系统数据类型的变量可以用于 ERROR输出。“ErrorStruct’系统数据类型定义了保存错误信息所需的严格的数据结构。使用其它指令,还可以检测这个数据结构并且编程做出适当的响应。

“ErrorStruct”变量中包含如下信息:

  • 发生错误的块的类型,(例如:´”data_block”.gl_error.block_type´)
  • 发生错误的块号(例如: ´”data_block”.gl_error.code_block_number´)

详细的信息总揽请看下图。可以在 STEP 7 Basic 的在线帮助中,通过搜寻关键字“GetError”找到“ErrorStruct ”数据类型的详细列表。错误代码列表。

如何管理 S7-1200 PLC 检测到的块的执行错误?
图. 02

表 01

错误情况由“ENO”使能输出指示
只有在下面两个条件满足的情况下,输出“ENO”才会被置位:

  • 输入 EN 被使能。
  • 出现错误信息

如果有一个条件不满足,下面程序的执行不受“GetError”指令的影响。

如果EN = TRUE 并且“GetError”或“GetErrorID”执行,那么:

  • ENO = TRUE 指示代码块执行错误发生并且有错误数据提供
  • ENO = FALSE 指示无代码块执行错误发生

可以连接错误响应逻辑到“ENO”输出,在错误发生后激活。如果错误存在,输出参数存储程序访问的错误数据。“GetError”或“GetErrorID”可以用于发送当前正在执行的块的错误信息到调用它的块。将指令放到所调用的块的最后一个网络编程报告所调用的块的最后执行状态。

使用 STEP 7 Basic 的在线诊断
当不使用“GetError”指令时,并且使用 STEP 7 Basic 在线访问 S7-1200 PLC ,你可以使用“Online & diagnostics”功能:

  • 在线 S7-1200 PLC.
  • 浏览“Project tree”找到 “Online & diagnostics”。
  • 浏览“Online Access”窗口的导航栏找到“Diagnostics buffer”。
  • 从“Events”列表中选择一个程序执行错误事件。
  • 在“Events”列表下方,显示所选事件的详细信息。这里将看到被影响的 OB 块和错误的事件 ID。

如何管理 S7-1200 PLC 检测到的块的执行错误?
图. 03

注意
一个“Incoming event” 表示一个事件的开始。一个“Outgoing event” 表示一个事件的结束。

使用案例
如果一个直接寻址访问点(例如“IW120:P”)不可用,可以使用 “GetError”指令获得下列结果:

  • 防止 CPU 停机
  • 发出错误信息
  • 节点丢失的时候设置一个替代值

需求

  • S7-1200 PLC
  • Ethernet电缆
  • PG / PC
  • STEP 7 Basic V10.5

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论