0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子博途: 有关处理程序执行错误的示例

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-12 17:43 次阅读

简介

本地错误处理可单独编程,也可与其它代码一起编程。为确保可识别程序中的所有错误,建议使用本地错误处理组合方案,如以下示例所示。

为提高错误分析的准确程度的错误分析,除输出参数 RET_VAL 之外,还可使用指令“GET_ERROR”或“GET_ERR_ID”。这些方案提供有错误代码,并在相应指令的描述中对其进行详细说明。

此外,RET_VAL 输出参数也可能不输出有效错误代码。如果在读取输入参数时发生访问错误(如,指令输出无法入),则这是因为指令执行已中断。此时,建议在用户程序中插入两条指令“GET_ERROR”和“GET_ERR_ID”。这是因为,发生此类错误时,这两条指令将返回可靠的错误信息

警告
读取输入参数时发生访问错误
RET_VAL 参数未返回有效的错误代码,且诊断缓冲区中未输出任何详细错误信息。

错误的第一个指示符可以是状态字的 BR 位,也可以是使能输出 ENO 。如果返回信号状态“0”,则说明指令执行过程中出错。信号状态为“1”表示无错误,因而无需进行进一步错误分析,但存储器访问错误例外。此时,信号状态为“1”表示发生错误。

操作步骤

以下示例说明了如何在读取输入参数时识别访问错误:

按以下方式声明程序块的块接口
2c08f8a8-2097-11ee-962d-dac502259ad0.png
2c08f8a8-2097-11ee-962d-dac502259ad0.png
编写以下程序代码
2c5e90ec-2097-11ee-962d-dac502259ad0.png
2c5e90ec-2097-11ee-962d-dac502259ad0.png

在程序段 1 中,调用指令“MOVE_BLK_VARIANT:块移动”。在 SRC 参数中,使用一个变量索引访问“SrcField”源区域。如果指令成功执行无错误,则使能输出 ENO 将返回信号状态“1”,同时程序执行跳转到程序段 4 中继续执行。

如果指令在执行过程中发生访问错误(如,由变量索引而引发),则程序段 2 中的指令“GET_ERR_ID:获取本地错误 ID”将返回错误 ID。程序段 2 中“UNEQUAL”的错误 ID 将与值“0”进行比较并返回结果 #Test2 = TRUE。在程序段 3 中,“EQUAL”的错误 ID 将与值“0”进行比较,并返回结果 #Test3 = TRUE。

此时,输出参数 RET_VAL 处的 #TagRet_Val 操作数将不返回有效错误代码。

例外

但也有一些指令不适用于以上示例中所列的错误处理方式。具体包括以下指令:

通常不支持 EN/ENO 机制的指令

禁用 ENO 的指令

S_COMP

PEEK、PEEK_BOOL、POKE、POKE_BOOL 和 POKE_BLK

即使发生访问错误,这些指令中的 BR 位或使能输出 ENO 也将设置为 TRUE。

以下示例中说明了如何在 STL 编程语言中编程可靠的错误处理方式:

2caaad74-2097-11ee-962d-dac502259ad0.png

STL 说明
SET // 操作数 #Tag_ErrorID 将初始化为“0”。
L 0
T #Tag_ErrorID
CALL S_COMP // 调用该指令。
src_type := String // 参数 IN1 和 IN2 的数据类型
relation := EQ // 该指令的比较类型
IN1 := #StringArray.THIS[#index] // 对 ARRAY 元素的可变访问。
IN2 := 'STRING' // 将两个值互相比较。
OUT := #TagResult // 如果两个值相等,则操作数 #TagResult 的信号状态为“1”。
A BR // 查询 BR 位。
CALL GET_ERR_ID // 调用该指令。
RET_VAL := #Tag_ErrorID // 发生访问错误时,该指令将输出一个错误代码。

即使 BR 位的信号状态为“1”,也将检测到访问错误。通过评估指令“GET_ERR_ID:获取本地错误 ID”的操作数 #Tag_ErrorID,可查询该错误代码。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161986
  • 西门子
    +关注

    关注

    91

    文章

    2849

    浏览量

    113767
  • STL算法
    +关注

    关注

    0

    文章

    6

    浏览量

    5338

原文标题:西门子博途: 有关处理程序执行错误的示例

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子S7-200PLC与西门子变频器MM440通讯程序实例

    西门子S7-200PLC与西门子变频器MM440通讯程序实例
    的头像 发表于 05-04 09:54 3582次阅读
    <b class='flag-5'>西门子</b>S7-200PLC与<b class='flag-5'>西门子</b>变频器MM440通讯<b class='flag-5'>程序</b>实例

    北京回收西门子组态软件

    回收西门子变频器SINAMICS V10系列变频器回收西门子触摸屏回收西门子组态软件回收西门子
    发表于 05-27 12:16

    西门子1200码垛机程序应用

    西门子1200码垛机、立体仓库程序(带注释),程序应用到变频器、触摸屏、步进电机、工业机器人、视觉相机。
    发表于 09-03 07:42

    西门子无线预处理手册

    电子发烧友网为大家提供了西门子无线预处理手册.
    发表于 02-28 15:28 45次下载

    西门子s7-200库函数安装程序

    西门子s7-200库函数安装程序,官网的200库函数程序含有全部西门子原装库函数
    发表于 01-20 15:55 4次下载

    西门子S7-200使用教程

    西门子S7-200 PLC仿真软件超详细使用教程西门子S7-200使用教程
    发表于 05-06 16:43 0次下载

    西门子大赛1200电梯参考程序

    西门子大赛1200电梯参考程序,博途V13文件.有需要的加油!
    发表于 06-22 15:56 183次下载

    带注释的西门子200程序

    西门子200程序
    发表于 10-17 10:59 0次下载

    博世和西门子哪个好_博世和西门子的关系

    本文开始阐述了博世和西门子的关系以及分析了西门子和博世哪个更好,其次分析了西门子和博世的冰箱哪个更好,最后介绍了博世和西门子家电集团在中国的发展。
    的头像 发表于 04-04 09:30 15.2w次阅读

    西门子plc程序下载步骤

    今天我们主要学习西门子PLC的程序下载步骤,下面以S7-200SMART为例进行说明.
    发表于 07-25 11:25 2.7w次阅读

    西门子阀门执行器SKBSKC说明书

    西门子阀门执行器SKBSKC说明书免费下载。
    发表于 04-23 11:19 8次下载

    西门子SETP7常见错误分析

    西门子STEP7编程常见错误分析解答。
    发表于 04-30 11:15 56次下载

    西门子PLC指令和程序设计

    西门子PLC指令和程序设计方法免费下载。
    发表于 05-07 09:42 116次下载

    西门子S7程序软件下载

    西门子S7程序软件下载
    发表于 12-09 16:06 22次下载

    大型西门子PLC程序结构示例

    大型的西门子PLC程序结构示例
    的头像 发表于 07-06 10:34 774次阅读