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

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

3天内不再提示

KUKA系统变量:$ERR汇总版V3.14

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-04-19 10:00 次阅读

$ err

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

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

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

$ERR单独存在于robot和提交解释器。每个解释器只能访问自己的变量$命令解释器不存在ERR。

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

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

$ERR=信息

信息类型:Error_T

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

$ERR是结构类型为Error_T的系统变量。Error_T类型有一个表示当前解释器的组件。

在单次提交模式下,此组件只能使用值#R_INT和#S_INT。

对于多提交模式,可能的值范围已扩展到包括扩展的提交:

 #EXT_S_INT1  …  #EXT_S_INT7

变量结构:

STRUC Error_T INT number, PROG_INT_Einterpreter, 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:提交解释器

多功能提交模式:  #R_INT:机器人解释器  #S_INT:系统提交解释器  #EXT_S_INT1:扩展型提交解释器 1  #EXT_S_INT2:扩展型提交解释器 2

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

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

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

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

int_prio中断优先级

124…39

81…128

line_nr只在运行时间错误的情况下:触发了错误的行编号

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

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

trigger_type

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

1.#TRG_NONE:该子程序不是触发子程序。#TRG_REGULAR:在向前运动期间切换了触发器子程序。#TRG_BACKWARD:触发子程序在向后运动期间被切换。

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

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

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

包含有关当前程序信息的结构

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

该变量是写保护的,只能读取。

$ERR 单独存在于机器人和提交解释器中。每个解释器只能访问自己的变量。命令解释器不存在 $ERR。

每个子程序级别都有自己的 $ERR 表示。这样,一个层次的信息不会覆盖不同层次的信息,可以同时读取不同层次的信息。

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

$ERR=Information

Information Type: 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

ON_ERROR_PROCEED错误继续

ON_ERROR_PROCEED 可用于抑制由以下程序行触发的运行时错误消息。机器人控制器跳过触发错误的语句,并用有关错误的信息填充系统变量 $ERR。

ON_ERROR_PROCEED 始终适用于以下行,即使这是一个空行!例外:如果以下行包含语句 CONTINUE,则 ON_ERROR_PROCEED 适用于后面的行。

如果 ON_ERROR_PROCEED 之后的行是子程序调用,则该语句引用调用本身,而不是子程序的第一行。

$ERR 和 ERR_RAISE() 是使用 ON_ERROR_PROCEED 时的重要工具。

函数 ERR_RAISE() 随后可以生成抑制的运行时错误消息。它只能将系统变量 $ERR 或从 $ERR 派生的变量作为 OUT 参数处理。

ON_ERROR_PROCEED 对运动语句没有影响:

样条/端线;PTP_SPLINE/ENDSPL INE;点对点;PTP_REL;

LIN_REL; CIRC_REL; ASYPTP;停止;异步;异步取消;

MOVE_EMI

ON_ERROR_PROCEED 对以下控制结构没有影响:

为/ENDFOR;去; IF/ELSE/ENDIF;循环/ENDLOOP;重复/直到;

跳过/结束跳过;开关/外壳/默认/ENDSWITCH;同时/结束尽管

ON_ERROR_PROCEED with CONTINUE:

ON_ERROR_PROCEED

CONTINUE

$OUT[1]=TRUE

CONTINUE

ON_ERROR_PROCEED

$OUT[1]=TRUE

两个语句序列的效果是相同的。在这两个示例中,ON_ERROR_PROCEED 和 CONTINUE 作用于 $OUT[1]=TRUE。

$ERR、ON_ERROR_PROCEED 和 ERR_RAISE() 的示例:

例1

如果您不想抑制所有可能的运行时错误消息,而只希望抑制特定的错误消息,则可以使用 SWITCH ... ENDSWITCH 进行区分。在此示例中,仅抑制消息 1422。将显示任何其他运行时错误消息。

1 DEF myProg ()

2 DECL E6POS myPos

3 INI

4 ON_ERROR_PROCEED

5 myPos = $POS_INT

6 SWITCH ($ERR.NUMBER)

7 CASE 0

8 CASE 1422

9 ;如果需要,程序故障服务功能

...

10 DEFAULT

11 ERR_RAISE ($ERR)

12 ENDSWITCH

...

13 END

4-5第 5 行触发消息 1422 {$variable} value invalid(除非程序被中断调用)。前一行中的 ON_ERROR_PROCEED 会抑制错误消息。

6 … 12取决于 $ERR.NUMBER 的差异化

7 如果第 5 行没有发生错误,$ERR.NUMBER==0。在这种情况下,不需要任何操作。

8, 9 如果消息 1422 已被触发,$ERR.NUMBER==1422。如果需要,可以对故障服务功能进行编程

10, 11 如果触发了 1422 以外的消息,则现在(随后)通过 ERR_RAISE 生成此消息。

这个例子说明了每个程序级都有自己的$ERR表示。 1 DEF myMainProg () 2 INT myVar, myVar2 3 INI 4 ON_ERROR_PROCEED 5 mySubProg (myVar)

第5行触发消息1422{$variable}值无效,因为myVar未初始化,因此无法传输到子程序。

预编码行中的ON_ERROR_PROCEED将抑制错误消息。

5 mySubProg (myVar)

如果此处使用变量校正函数读取$ERR,则以下组件具有以下值:

$ERR。编号==1422

$ERR。line_nr==15

$ERR。模块[]==“MYMAINPROG”

$ERR。up_name[]==“MYMAINPROG”

6 HALT 7 myVar2 = 7 8 mySubProg (myVar2) 9 END --------------------------------------- 10 DEF mySubProg (myTest:IN) 11 INT myTest 12 HALT 13 END

如果在子程序中使用变量纠正函数读取$ERR,则以下组件具有以下值:

$ERR。数字==0

$ERR。line_nr==0

$ERR。模块[]==“MYMAINPROG”

$ERR。up_name[]==“MYSUBPROG”

这清楚地表明,$E RR始终具有来自当前级别的信息(在本例中来自子程序MySubProg)。另一方面,MyMainProg的信息未知。

此示例还显示了每个程序级别都有自己的$ERR表示。该示例还显示了如何将$ERR信息传输到不同的级别。

1 DEF myMainProg2 ()

2 INI

3 ON_ERROR_PROCEED

4 $OUT[-10] = TRUE

第4行触发消息1444阵列索引不可接受ON_ERROR_PROCEED,在前一行中抑制错误消息。

5 myHandleErr ($ERR, $ERR)

$ERR的内容被传输到子程序两次:一次作为IN参数,一次作为OUT参数。

6 END

---------------------------------------

7 DEF myHandleErr (inErr:IN, outErr:OUT)

8 DECL Error_T inErr, outErr

9 ON_ERROR_PROCEED

10 $OV_PRO=100/0

第10行触发消息1451除以0.ON_ERROR_PROCEED,在前一行中抑制错误消息。

11 ERR_RAISE($ERR)

ERR_RAISE($ERR)从第10行生成消息,而不是从第4行生成消息。$ERR始终具有当前级别的信息。在本例中,从子程序myHandleErr。

12 ERR_RAISE(outErr)

ERR_RAISE(outErr)从主程序的第4行生成消息,因为outErr是对主程序中$ERR的引用。

13 ERR_RAISE(inErr)

ERR_RAISE(inErr)不允许,因此触发消息1451{(变量名)}无效参数。ERR_RAISE只能处理$ERR或从$ERR派生的OUT变量。

...

14 END

$ERR不仅可用于错误处理,还可用于确定当前环境。 在本例中,参数从机器人程序和提交程序转换为子程序。在子程序中,系统确定参数来自哪个解释器。执行的操作取决于结果。

机器人程序:

DEF Main ()

...

mySUB (55)

...

END

提交程序: DEF SPS () ... LOOP mySUB (33) ... ENDLOOP ... END 子程序: GLOBAL DEF mySUB (par:IN) INT par INI IF ($ERR.INTERPRETER==#R_INT) THEN $OUT_C[par] = TRUE ELSE $OUT[par] = TRUE ENDIF ... END

$ERR故障变量相关联的函数

清除与$ERR相关的过程故障信息:

ERR_CLEAR (ERROR_T PERR :OUT )
产生与$ERR相关的过程故障信息:
ERR_RAISE (ERROR_T PERR :OUT )

-----------------------END---------------------

审核编辑 :李倩


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

    关注

    0

    文章

    596

    浏览量

    28112
  • KUKA
    +关注

    关注

    3

    文章

    216

    浏览量

    16266
  • 解释器
    +关注

    关注

    0

    文章

    98

    浏览量

    6423

原文标题:KUKA系统变量:$ERR 汇总版V3.14

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

收藏 人收藏

    评论

    相关推荐

    KUKA库卡机器人伺服驱动器相关型号举例

    普通交流马达,属于伺服系统的一部分,主要应用于高精度的定位系统。型号举例:KUKA库卡 00-103-117 Lenze伺服驱动器 (EVS9326-KHV531)KUKA库卡 00-
    发表于 09-08 16:30

    嵌入式串口CAN模块CSM100数据手册V3.14

    【数据手册】嵌入式串口CAN模块CSM100数据手册 V3.14
    发表于 10-17 07:24

    探究$err 故障变量的用法

    $ err 具有有关当前程序信息的结构 该变量可用于评估相对于提前运行的当前执行程序。例如,该变量可用于评估程序中的错误,以便能够使用适当的故障服务功能对其进行响应。 该变量具有写保护
    的头像 发表于 04-12 11:13 1472次阅读

    KUKA系统变量:$ERR

    ON_ERROR_PROCEED 可用于抑制由以下程序行触发的运行时错误消息。机器人控制器跳过触发错误的语句,并用有关错误的信息填充系统变量 $ERR
    的头像 发表于 07-01 10:42 2166次阅读

    KUKA与$ERR故障变量相关联的函数

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

    请问一下$err故障变量该如何使用呢?

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

    KUKA系统变量$err注意事项说明

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

    KUKA系统变量$INTERPRETER解释器

    通过变量可以读取许多系统状态,并且在许多情况下也可以进行设置。严格来说,这些变量存在多次-每个解释器一次。对于所有解释器,它们的名称相同。
    的头像 发表于 01-03 11:16 1057次阅读

    KUKA的$PRO_IP变量简析

    变量包含接下来将在解释器中执行的块的数据。
    的头像 发表于 03-20 10:30 984次阅读

    KUKA系统变量:$ERR 程序信息的结构

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

    KUKA机器人系统变量$PRO_NAME所选程序的名称(参考解释器)

    如果机器人控制器在Multi-Submit模式下操作(仅适用于KUKA系统软件8.3及更高版本),则变量无效。多提交模式下机器人控制器的系统状态分组在
    的头像 发表于 05-15 09:54 857次阅读

    KUKA系统变量:$IOSIM_OPT模拟的激活或停用

    使用了KUKA.OfficeSite,或者系统软件的映像正在办公电脑上运行。
    的头像 发表于 05-17 16:30 776次阅读

    KUKA.ProConOS软件相关变量

    借助Mulitprog库KrcExVarLib的功能块,可以从数组变量中读取单个或多个值,也可以将其写入数组变量
    发表于 05-26 09:27 262次阅读

    $err故障变量的用法介绍

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

    KUKA系统变量$err说明

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