包含有關(guān)當(dāng)前程序信息的結(jié)構(gòu)
該變量可用于評(píng)估當(dāng)前執(zhí)行的程序相對(duì)于提前運(yùn)行。例如,該變量可用于評(píng)估程序中的錯(cuò)誤,以便能夠使用合適的故障服務(wù)功能對(duì)其進(jìn)行響應(yīng)。
該變量是寫保護(hù)的,只能讀取。
$ERR 單獨(dú)存在于機(jī)器人和提交解釋器中。每個(gè)解釋器只能訪問自己的變量。命令解釋器不存在 $ERR。
每個(gè)子程序級(jí)別都有自己的 $ERR 表示。這樣,一個(gè)層次的信息不會(huì)覆蓋不同層次的信息,可以同時(shí)讀取不同層次的信息。
ON_ERROR_PROCEED 在當(dāng)前解釋器和當(dāng)前級(jí)別隱式刪除 $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ò)誤的語(yǔ)句,并用有關(guān)錯(cuò)誤的信息填充系統(tǒng)變量 $ERR。
ON_ERROR_PROCEED 始終適用于以下行,即使這是一個(gè)空行!例外:如果以下行包含語(yǔ)句 CONTINUE,則 ON_ERROR_PROCEED 適用于后面的行。
如果 ON_ERROR_PROCEED 之后的行是子程序調(diào)用,則該語(yǔ)句引用調(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 對(duì)運(yùn)動(dòng)語(yǔ)句沒有影響:
樣條/端線;PTP_SPLINE/ENDSPL INE;點(diǎn)對(duì)點(diǎn);林; 中國(guó)保監(jiān)會(huì);PTP_REL;
LIN_REL; CIRC_REL; ASYPTP;停止;異步;異步取消;
MOVE_EMI
ON_ERROR_PROCEED 對(duì)以下控制結(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è)語(yǔ)句序列的效果是相同的。在這兩個(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。如果需要,可以對(duì)故障服務(wù)功能進(jìn)行編程。
10, 11 如果觸發(fā)了 1422 以外的消息,則現(xiàn)在(隨后)通過 ERR_RAISE 生成此消息。
與$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 )
審核編輯 :李倩
-
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28306 -
KUKA
+關(guān)注
關(guān)注
3文章
217瀏覽量
16471 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6488
原文標(biāo)題:KUKA系統(tǒng)變量:$ERR
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論