0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KUKA系統(tǒng)變量:$ERR 程序信息的結(jié)構(gòu)

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 2023-03-21 11:20 ? 次閱讀

$ err

具有有關(guān)當(dāng)前程序信息的結(jié)構(gòu)

該變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對其進(jìn)行響應(yīng)。

該變量具有寫保護(hù),只能被讀取。

$ERR單獨(dú)存在于robot和提交解釋器。每個(gè)解釋器只能訪問自己的變量$命令解釋器不存在ERR。

每個(gè)子程序級別都有自己的$ERR表示。這樣,來自一個(gè)級別的信息不會(huì)覆蓋來自不同級別的信息,并且可以同時(shí)從不同級別讀取信息。

ON_ERROR_PROCEED隱式刪除當(dāng)前解釋器和當(dāng)前級別的$ERR中的信息。

$ERR=信息

信息類型:Error_T

列出有關(guān)當(dāng)前正在執(zhí)行的程序的信息.

$ERR是結(jié)構(gòu)類型為Error_T的系統(tǒng)變量。Error_T類型有一個(gè)表示當(dāng)前解釋器的組件。

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

對于多提交模式,可能的值范圍已擴(kuò)展到包括擴(kuò)展的提交:

? #EXT_S_INT1 ? … ? #EXT_S_INT7

變量結(jié)構(gòu):

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:發(fā)生運(yùn)行時(shí)錯(cuò)誤時(shí)的消息編號。如果未發(fā)生錯(cuò)誤,則顯示零值。

Interpreter:當(dāng)前解釋器?

#R_INT:機(jī)器人解釋器

?#S_INT:提交解釋器

多功能提交模式: ? #R_INT:機(jī)器人解釋器 ? #S_INT:系統(tǒng)提交解釋器 ? #EXT_S_INT1:擴(kuò)展型提交解釋器 1 ? #EXT_S_INT2:擴(kuò)展型提交解釋器 2

int_type當(dāng)前圖片類型和中斷狀態(tài)

?#I_NORMAL:該程序不是中斷程序。

?#I_INTERRUPT:該程序?yàn)橹袛喑绦颉?/p>

?#I_STOP_INTERRUPT:通過$ STOPMESS中斷(錯(cuò)誤停止)

int_prio中斷優(yōu)先級

?1,2,4…39

?81…128

line_nr只在運(yùn)行時(shí)間錯(cuò)誤的情況下:觸發(fā)了錯(cuò)誤的行編號

module[]當(dāng)前程序的目錄和名稱

up_name[]當(dāng)前子程序的目錄和名稱

trigger_type

觸發(fā)屬于子程序的觸發(fā)器的上下文

1.#TRG_NONE:該子程序不是觸發(fā)子程序。?#TRG_REGULAR:在向前運(yùn)動(dòng)期間切換了觸發(fā)器子程序。?#TRG_BACKWARD:觸發(fā)子程序在向后運(yùn)動(dòng)期間被切換。

2.#TRG_RESTART:觸發(fā)子程序已打開,切換回正向運(yùn)動(dòng)。

3.#TRG_REPLAY:觸發(fā)子程序在向后運(yùn)動(dòng)后反復(fù)切換。

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

包含有關(guān)當(dāng)前程序信息的結(jié)構(gòu)

該變量可用于評估當(dāng)前執(zhí)行的程序相對于提前運(yùn)行。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用合適的故障服務(wù)功能對其進(jìn)行響應(yīng)。

該變量是寫保護(hù)的,只能讀取。

$ERR 單獨(dú)存在于機(jī)器人和提交解釋器中。每個(gè)解釋器只能訪問自己的變量。命令解釋器不存在 $ERR。

每個(gè)子程序級別都有自己的 $ERR 表示。這樣,一個(gè)層次的信息不會(huì)覆蓋不同層次的信息,可以同時(shí)讀取不同層次的信息。

ON_ERROR_PROCEED 在當(dāng)前解釋器和當(dāng)前級別隱式刪除 $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錯(cuò)誤繼續(xù)

ON_ERROR_PROCEED 可用于抑制由以下程序行觸發(fā)的運(yùn)行時(shí)錯(cuò)誤消息。機(jī)器人控制器跳過觸發(fā)錯(cuò)誤的語句,并用有關(guān)錯(cuò)誤的信息填充系統(tǒng)變量 $ERR。

ON_ERROR_PROCEED 始終適用于以下行,即使這是一個(gè)空行!例外:如果以下行包含語句 CONTINUE,則 ON_ERROR_PROCEED 適用于后面的行。

如果 ON_ERROR_PROCEED 之后的行是子程序調(diào)用,則該語句引用調(diào)用本身,而不是子程序的第一行。

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

函數(shù) ERR_RAISE() 隨后可以生成抑制的運(yùn)行時(shí)錯(cuò)誤消息。它只能將系統(tǒng)變量 $ERR 或從 $ERR 派生的變量作為 OUT 參數(shù)處理。

ON_ERROR_PROCEED 對運(yùn)動(dòng)語句沒有影響:

樣條/端線;PTP_SPLINE/ENDSPL INE;點(diǎn)對點(diǎn);PTP_REL;

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

MOVE_EMI

ON_ERROR_PROCEED 對以下控制結(jié)構(gòu)沒有影響:

為/ENDFOR;去; IF/ELSE/ENDIF;循環(huán)/ENDLOOP;重復(fù)/直到;

跳過/結(jié)束跳過;開關(guān)/外殼/默認(rèn)/ENDSWITCH;同時(shí)/結(jié)束盡管

ON_ERROR_PROCEED with CONTINUE:

ON_ERROR_PROCEED

CONTINUE

$OUT[1]=TRUE

CONTINUE

ON_ERROR_PROCEED

$OUT[1]=TRUE

兩個(gè)語句序列的效果是相同的。在這兩個(gè)示例中,ON_ERROR_PROCEED 和 CONTINUE 作用于 $OUT[1]=TRUE。

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

例1

如果您不想抑制所有可能的運(yùn)行時(shí)錯(cuò)誤消息,而只希望抑制特定的錯(cuò)誤消息,則可以使用 SWITCH ... ENDSWITCH 進(jìn)行區(qū)分。在此示例中,僅抑制消息 1422。將顯示任何其他運(yùn)行時(shí)錯(cuò)誤消息。

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 ;如果需要,程序故障服務(wù)功能

...

10 DEFAULT

11 ERR_RAISE ($ERR)

12 ENDSWITCH

...

13 END

4-5第 5 行觸發(fā)消息 1422 {$variable} value invalid(除非程序被中斷調(diào)用)。前一行中的 ON_ERROR_PROCEED 會(huì)抑制錯(cuò)誤消息。

6 … 12取決于 $ERR.NUMBER 的差異化

7 如果第 5 行沒有發(fā)生錯(cuò)誤,$ERR.NUMBER==0。在這種情況下,不需要任何操作。

8, 9 如果消息 1422 已被觸發(fā),$ERR.NUMBER==1422。如果需要,可以對故障服務(wù)功能進(jìn)行編程。

10, 11 如果觸發(fā)了 1422 以外的消息,則現(xiàn)在(隨后)通過 ERR_RAISE 生成此消息。

這個(gè)例子說明了每個(gè)程序級都有自己的$ERR表示。 1 DEF myMainProg () 2 INT myVar, myVar2 3 INI 4 ON_ERROR_PROCEED 5 mySubProg (myVar)

第5行觸發(fā)消息1422{$variable}值無效,因?yàn)閙yVar未初始化,因此無法傳輸?shù)阶映绦颉?/p>

預(yù)編碼行中的ON_ERROR_PROCEED將抑制錯(cuò)誤消息。

5 mySubProg (myVar)

如果此處使用變量校正函數(shù)讀取$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

如果在子程序中使用變量糾正函數(shù)讀取$ERR,則以下組件具有以下值:

$ERR。數(shù)字==0

$ERR。line_nr==0

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

$ERR。up_name[]==“MYSUBPROG”

這清楚地表明,$E RR始終具有來自當(dāng)前級別的信息(在本例中來自子程序MySubProg)。另一方面,MyMainProg的信息未知。

此示例還顯示了每個(gè)程序級別都有自己的$ERR表示。該示例還顯示了如何將$ERR信息傳輸?shù)讲煌募墑e。

1 DEF myMainProg2 ()

2 INI

3 ON_ERROR_PROCEED

4 $OUT[-10] = TRUE

第4行觸發(fā)消息1444陣列索引不可接受ON_ERROR_PROCEED,在前一行中抑制錯(cuò)誤消息。

5 myHandleErr ($ERR, $ERR)

$ERR的內(nèi)容被傳輸?shù)阶映绦騼纱危阂淮巫鳛镮N參數(shù),一次作為OUT參數(shù)。

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行觸發(fā)消息1451除以0.ON_ERROR_PROCEED,在前一行中抑制錯(cuò)誤消息。

11 ERR_RAISE($ERR)

ERR_RAISE($ERR)從第10行生成消息,而不是從第4行生成消息。$ERR始終具有當(dāng)前級別的信息。在本例中,從子程序myHandleErr。

12 ERR_RAISE(outErr)

ERR_RAISE(outErr)從主程序的第4行生成消息,因?yàn)閛utErr是對主程序中$ERR的引用。

13 ERR_RAISE(inErr)

ERR_RAISE(inErr)不允許,因此觸發(fā)消息1451{(變量名)}無效參數(shù)。 ERR_RAISE只能處理$ERR或從$ERR派生的OUT變量。

...

14 END

$ERR不僅可用于錯(cuò)誤處理,還可用于確定當(dāng)前環(huán)境。 在本例中,參數(shù)從機(jī)器人程序和提交程序轉(zhuǎn)換為子程序。在子程序中,系統(tǒng)確定參數(shù)來自哪個(gè)解釋器。執(zhí)行的操作取決于結(jié)果。

機(jī)器人程序:

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故障變量相關(guān)聯(lián)的函數(shù)

清除與$ERR相關(guān)的過程故障信息:

ERR_CLEAR (ERROR_T PERR :OUT )
產(chǎn)生與$ERR相關(guān)的過程故障信息:
ERR_RAISE (ERROR_T PERR :OUT )

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • KUKA
    +關(guān)注

    關(guān)注

    3

    文章

    217

    瀏覽量

    16471
  • 解釋器
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    6488

原文標(biāo)題:KUKA系統(tǒng)變量:$ERR 匯總版V3.14

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    KUKA機(jī)器人力矩監(jiān)控變量的控制使用簡介

    變量$TORQMON包含程序模式下軸轉(zhuǎn)矩的當(dāng)前公差范圍。該公差范圍是使用文件…STEU Mada $ custom.dat中的變量$TORQMON_DEF定義的。
    的頭像 發(fā)表于 06-11 16:25 ?7955次閱讀

    探究$err 故障變量的用法

    $ err 具有有關(guān)當(dāng)前程序信息結(jié)構(gòu)變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該
    的頭像 發(fā)表于 04-12 11:13 ?1674次閱讀

    KUKA系統(tǒng)變量:$ERR

    ON_ERROR_PROCEED 可用于抑制由以下程序行觸發(fā)的運(yùn)行時(shí)錯(cuò)誤消息。機(jī)器人控制器跳過觸發(fā)錯(cuò)誤的語句,并用有關(guān)錯(cuò)誤的信息填充系統(tǒng)變量 $ER
    的頭像 發(fā)表于 07-01 10:42 ?2837次閱讀

    大眾版KUKA程序的軌跡程序分解

    而大眾版的KUKA程序有很大的區(qū)別,它將真實(shí)的軌跡程序全都隱藏了你看到的只是一件外套.
    的頭像 發(fā)表于 07-08 10:34 ?3361次閱讀

    KUKA與$ERR故障變量相關(guān)聯(lián)的函數(shù)

    變量可用于評估當(dāng)前執(zhí)行的程序相對于提前運(yùn)行。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用合適的故障服務(wù)功能對其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 07-11 10:38 ?2026次閱讀

    請問一下$err故障變量該如何使用呢?

    變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 09-14 15:14 ?757次閱讀

    KUKA系統(tǒng)變量$err注意事項(xiàng)說明

    變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 12-06 17:11 ?1180次閱讀

    KUKA系統(tǒng)變量$INTERPRETER解釋器

    通過變量可以讀取許多系統(tǒng)狀態(tài),并且在許多情況下也可以進(jìn)行設(shè)置。嚴(yán)格來說,這些變量存在多次-每個(gè)解釋器一次。對于所有解釋器,它們的名稱相同。
    的頭像 發(fā)表于 01-03 11:16 ?1382次閱讀

    KUKA系統(tǒng)變量:$ERR匯總版V3.14

    ON_ERROR_PROCEED 始終適用于以下行,即使這是一個(gè)空行!例外:如果以下行包含語句 CONTINUE,則 ON_ERROR_PROCEED 適用于后面的行。
    的頭像 發(fā)表于 04-19 10:00 ?1374次閱讀

    KUKA機(jī)器人系統(tǒng)變量$PRO_NAME所選程序的名稱(參考解釋器)

    如果機(jī)器人控制器在Multi-Submit模式下操作(僅適用于KUKA系統(tǒng)軟件8.3及更高版本),則變量無效。多提交模式下機(jī)器人控制器的系統(tǒng)狀態(tài)分組在
    的頭像 發(fā)表于 05-15 09:54 ?1288次閱讀

    KUKA系統(tǒng)變量:$IOSIM_OPT模擬的激活或停用

    使用了KUKA.OfficeSite,或者系統(tǒng)軟件的映像正在辦公電腦上運(yùn)行。
    的頭像 發(fā)表于 05-17 16:30 ?1376次閱讀

    KUKA E6POS結(jié)構(gòu)類型的變量定義

    為[°] 變量是寫保護(hù)的。在機(jī)器人程序中,變量觸發(fā)提前運(yùn)行停止。 ?$POS_ACT_MES 測量的笛卡爾機(jī)器人位置 E6POS結(jié)構(gòu)類型的變量
    的頭像 發(fā)表于 05-22 14:57 ?5717次閱讀
    <b class='flag-5'>KUKA</b> E6POS<b class='flag-5'>結(jié)構(gòu)</b>類型的<b class='flag-5'>變量</b>定義

    KUKA大眾標(biāo)準(zhǔn)與標(biāo)準(zhǔn)版機(jī)器人程序的不同

    大眾版KUKA程序使用的程序包括SRC和Dat文件
    的頭像 發(fā)表于 06-08 15:47 ?2949次閱讀
    <b class='flag-5'>KUKA</b>大眾標(biāo)準(zhǔn)與標(biāo)準(zhǔn)版機(jī)器人<b class='flag-5'>程序</b>的不同

    $err故障變量的用法介紹

    變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 08-27 09:52 ?2119次閱讀
    $<b class='flag-5'>err</b>故障<b class='flag-5'>變量</b>的用法介紹

    KUKA系統(tǒng)變量$err說明

    變量可用于評估相對于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 12-18 15:41 ?720次閱讀