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

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

3天内不再提示

探究$err 故障变量的用法

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-04-12 11:13 次阅读

$ err

具有有关当前程序信息的结构

该变量可用于评估相对于提前运行的当前执行程序。例如,该变量可用于评估程序中的错误,以便能够使用适当的故障服务功能对其进行响应。

该变量具有写保护,只能被读取。

该变量可用于评估相对于提前运行的当前执行程序。例如,该变量可用于评估程序中的错误,以便能够使用适当的故障服务功能对其进行响应。

该变量具有写保护,只能被读取。

$ ERR对于机器人和提交解释器是分别存在的。每个解释器只能访问其自己的变量。对于命令解释器,$ ERR不存在。

每个子程序级别都有其自己的$ ERR表示形式。这样,来自一个级别的信息不会覆盖来自不同级别的信息,并且可以同时从不同级别读取信息。

ON_ERROR_PROCEED在当前解释器和当前级别从$ ERR隐式删除信息。

$ERR=Information

信息类型:Error_T

列出有关当前正在执行的程序的信息.

STRUC Error_T INT number, PROG_INT_E interpreter, INT_TYP_E int_type, INT int_prio, line_nr, CHAR module[24], up_name[24], TRIGGER_UP_TYPE trigger_type

Number:发生运行时错误时的消息编号。如果未发生错误,则显示零值。

Interpreter:当前解释器

#R_INT:机器人解释器

#S_INT:提交解释器

int_type当前图片类型和中断状态

#I_NORMAL:该程序不是中断程序。

#I_INTERRUPT:该程序为中断程序。

#I_STOP_INTERRUPT:通过$ STOPMESS中断(错误停止)

int_prio中断优先级

1,2,4…39

81…128

line_nr当前程序中的行号

module[]当前程序的目录和名称

up_name[]当前子程序的目录和名称

trigger_type

触发属于子程序的触发器的上下文

#TRG_NONE:该子程序不是触发子程序。

#TRG_REGULAR:在向前运动期间切换了触发器子程序。

#TRG_BACKWARD:触发子程序在向后运动期间被切换。

#TRG_RESTART:触发子程序已打开,切换回正向运动。

#TRG_REPLAY:触发子程序在向后运动后反复切换。

注意:此组件在KUKA System Software 8.3或更高版本中可用。

如何使用呢?

1.ERR_RAISE() 的示例:

如果不想不输出所有可能存在的运行时间错误信息,而是只不输出特定的信息,则可以通过 SWITCH … ENDSWITCH 进行该区分。在该示例中只不输出信息 1422。可能存在的其他运行时间错误信息将显示。

1 DEF myProg ()

2 DECL E6POS myPos

3 INI

4 ON_ERROR_PROCEED

5 myPos = $POS_INT

行 5 将触发信息 1422 {$ 变量 } 值无效 。(此外由中断调用该程序。)

6 SWITCH ($ERR.NUMBER) 情况区分取决于 $ERR.NUMBER获取机器人故障号

7 CASE 0

如果在行 5 中未出现错误,则 $ERR.NUMBER==0。在这种情况下不需要任何操作。

8 CASE 1422

如果触发了信息 1422,则 $ERR.NUMBER==1422。在需要时可以编程设定一个错误策略。

9 ;在需要时编程设定错误策略

...

10 DEFAULT

11 ERR_RAISE ($ERR)

如果触发了一个不同于 1422 的信息,则现在 (随后)通过 ERR_RAISE 输出该信息。

12 ENDSWITCH

...

13 END

2.ON_ERROR_PROCEED的示例:

1 DEF myMainProg ()

2 INT myVar, myVar2

3 INI

4 ON_ERROR_PROCEED

行 5 触发信息 1422 {$ 变量 } 值无效 ,因为 myVar 未安装,因此无法将其传输给子程序。该行中的 ON_ERROR_PROCEED 事先抑制错误信息。

5 mySubProg (myVar)

6 HALT

如果在此通过变量修正读取 $ERR,则以下分量具有以下值:$ERR.number == 1422/$ERR.line_nr == 15/$ERR.module[] == "MYMAINPROG"/ $ERR.up_name[] == "MYMAINPROG".

3.$ ERR不仅可以用于错误处理,还可以用于确定当前环境。

在此示例中,参数从机器人程序和提交程序都转换为子程序。在子程序中,系统确定参数来自哪个解释器。所执行的操作取决于结果。

机器人程序:

GLOBALDEF mySUB (par:IN)

INTpar

INI

IF($ERR.INTERPRETER==#R_INT) THEN -如果故障时机器人解释器-发出输出

$OUT_C[par]= TRUE

ELSE

$OUT[par]= TRUE

ENDIF

编辑:jq

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

    关注

    206

    文章

    26974

    浏览量

    201308
  • 编程
    +关注

    关注

    88

    文章

    3438

    浏览量

    92322
  • 解释器
    +关注

    关注

    0

    文章

    98

    浏览量

    6418

原文标题:$err 故障变量的用法

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

收藏 人收藏

    评论

    相关推荐

    assign语句和always语句的用法

    用法和功能。 一、Assign语句 Assign语句的定义和语法 Assign语句用于在HDL中连续赋值,它允许在设计中为信号或变量分配一个值。Assign语句的语法如下: assign = ; 其中
    的头像 发表于 02-22 16:24 438次阅读

    KUKA系统变量$err说明

    变量可用于评估相对于提前运行的当前执行程序。例如,该变量可用于评估程序中的错误,以便能够使用适当的故障服务功能对其进行响应。
    的头像 发表于 12-18 15:41 331次阅读

    pcb插针的用法

    pcb插针的用法
    的头像 发表于 12-13 16:58 656次阅读

    oracle sql 定义变量并赋值

    并赋值可以通过使用PL/SQL语句块或使用SQL*Plus工具来实现。下面将详细介绍这两种方法以及它们的具体用法。 使用PL/SQL语句块定义和赋值变量: 在Oracle SQL中,PL/SQL是一种过程化语言,允许在代码中定义和使用
    的头像 发表于 12-06 10:46 670次阅读

    for循环里的变量是局部变量

    对于一个普通for循环而言,循环变量是局部变量。在大多数编程语言中,循环变量只在循环内部的作用域中可见。换句话说,循环变量的声明和赋值仅在循环的每次迭代中有效,并且不能在循环外部访问或
    的头像 发表于 11-23 14:50 947次阅读

    static关键字的三种用法

    (StaticVariables):在C语言中,使用`static`关键字来声明静态变量是一种常见的用法,它具有以下主要作用:1.生存期延长:静态变量的生存期在程序的整个运行期间,而不仅仅是在声明它的函数调用期间。这意味着静态
    的头像 发表于 11-10 08:00 240次阅读
    static关键字的三种<b class='flag-5'>用法</b>

    什么是变量?PLC变量哪些部分组成?

    变量在 TIA Portal 中集中管理。 在程序编辑器中创建 PLC 变量与在 PLC 变量表中创建 PLC 变量没什么区别。 如果在程序或 HMI 画面的多个位置使用某个
    发表于 10-15 11:31 1869次阅读
    什么是<b class='flag-5'>变量</b>?PLC<b class='flag-5'>变量</b>哪些部分组成?

    this关键字在Java中的用法

    this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。 其实简单来说 this 关键字就是表示当前对象,下面我们来具体介绍 this 关键字在Java中的用法。 1、调用成员变量
    的头像 发表于 10-10 16:49 315次阅读
    this关键字在Java中的<b class='flag-5'>用法</b>

    ThreadLocal的定义、用法及优点

    ThreadLocal的定义、用法及其优点。 ThreadLocal是Java中一个用来实现线程封闭技术的类。它提供了一个本地线程变量,可以在多线程环境下使每个线程都拥有自己的变量副本。每个线程都可以独立地改变自己
    的头像 发表于 09-30 10:14 492次阅读
    ThreadLocal的定义、<b class='flag-5'>用法</b>及优点

    Stream模块的基础用法和进阶用法

    有用。在本教程中,我们将介绍 Stream 模块的基础用法和进阶用法,并提供示例。 基础用法 在本节中,我们将介绍 Stream 模块的基础用法,并提供基础示例。 从 Vec 中创建
    的头像 发表于 09-19 15:33 697次阅读

    SQLx的基础用法和进阶用法

    SQLx是一个Rust语言的异步SQL数据库访问库,支持多种数据库,包括PostgreSQL、MySQL、SQLite等。本教程将以SQLite为例,介绍SQLx的基础用法和进阶用法。 基础用法
    的头像 发表于 09-19 14:29 1218次阅读

    $err故障变量用法介绍

    变量可用于评估相对于提前运行的当前执行程序。例如,该变量可用于评估程序中的错误,以便能够使用适当的故障服务功能对其进行响应。
    的头像 发表于 08-27 09:52 1819次阅读
    $<b class='flag-5'>err</b><b class='flag-5'>故障</b><b class='flag-5'>变量</b>的<b class='flag-5'>用法</b>介绍

    示波器高压探头的用法

    示波器高压探头是一种广泛应用于电子测试领域的测量工具。它主要用于测量电路中的高压信号,帮助工程师们找出电路中的问题和故障。在本篇文章中,我们将详细介绍示波器高压探头的用法,包括选择与使用。
    的头像 发表于 07-18 12:00 524次阅读

    【笔记】static 在C语言中的用法

    当`static`关键字用于不同的上下文时,其含义和作用也会有所不同。下面是更多示例代码,展示了`static`在不同用法下的具体效果:示例1:静态局部变量#includevoidincrement
    的头像 发表于 06-12 10:03 677次阅读
    【笔记】static 在C语言中的<b class='flag-5'>用法</b>

    如果禁用DFS,FS状态机是否 不监控和统计发生的故障?FLT_ERR_CNT 从不递增?

    ?FLT_ERR_CNT 从不递增? 在那种情况下,假设中间值影响永远不会触发是否正确? 通道 12.5.3:每次 RSTB 和/或 FS0B 引脚有效时,故障错误计数器加 1。当 FS0B 有效时,每次
    发表于 06-09 06:10