KUKA系统变量$err说明 V12.16

科技   汽车   2024-09-14 18:12   吉林  

$ err

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

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

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

$ERR=Information

信息类型:Error_T

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

 变量结构:

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:提交解释器

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不仅可以用于错误处理,还可以用于确定当前环境。


在本例中,参数从robot程序和submit程序传递到子例程。子程序确定参数源自哪个解释器。根据结果,将执行另一个操作。

机器人程序:

  DEF Main ()

  ...

  my_prog (55)

  ...

  END

提交Programm::

  DEF my_sub ()

  ...

  LOOP

      my_prog (33)

      ...

  ENDLOOP

  ...

  END

Unter programm:

  GLOBAL DEF my_prog (par:IN)

  INT par

  INI

  SWITCH $ERR.interpreter

      CASE #R_INT

        $OUT[par] = TRUE

      CASE #S_INT

        sub_prog_s()

      CASE #EXT_S_INT1

        sub_prog_1()

      CASE #EXT_S_INT2

        sub_prog_2()

      CASE #EXT_S_INT3

        sub_prog_3()

      ...

  ENDSWITCH

  ...

  END

此示例显示,每个程序级别都有自己的$ERR重新表示。

 1  DEF myMainProg ()

 2  INT myVar, myVar2

 3  INI

 4  ON_ERROR_PROCEED

 5  mySubProg (myVar)

第5行实际触发消息1422{$Variable}Invalid,因为myVar未初始化,因此无法传递给子程序。前一行中的ON_ERROR_PROCEED禁止显示该消息。

 6  HALT

如果您从此处的变量显示中读取$ERR,则以下组件具有以下值:

$ERR.number===1422

$ERR.line_nr==15

$ERR.module[]===MYMAINPROG“

$ERR.up_name[]===MYMAINPROG“

 7  myVar2 = 7

 8  mySubProg (myVar2)

 9  END

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

10  DEF mySubProg (myTest:IN)

11  INT myTest

12  HALT

如果从变量显示中读取$ERR,则以下组件具有以下值:

$ERR.number==0

$ERR.line_nr==0

$ERR.module[]===MYMAINPROG“

$ERR.up_name[]===MYSUBPROG“

这表明:$ERR总是具有来自当前级别的信息(此处来自子程序MySubProg)。另一方面,来自MyMainProg的信息是未知的。

13  END

ERR_RAISE:稍后输出抑制消息

ERR_RAISE随后可以输出用ON_ERROR_PROCEED抑制的消息。

ERR_RAISE只能处理$ERR或从$ERR派生的变量作为OUT参数。

ERR_RAISE ($ERR | out_var)








---------------------end----------------------

每天进步一点点


Make small but daily progress


机器人及PLC自动化应用
机器人技术讲解,PLC程序分析讲解,PLC机器人自动化培训. 以工业自动化培训为主.也会有些个人喜爱的军事和休闲.
 最新文章