包含有關(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);林; 中國保監(jiān)會(huì);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 生成此消息。
與$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文章
614瀏覽量
28950 -
KUKA
+關(guān)注
關(guān)注
3文章
218瀏覽量
16984 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6762
原文標(biāo)題:KUKA系統(tǒng)變量:$ERR
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Ansible Playbook中的變量使用技巧
庫卡KUKA機(jī)器人常見故障維修
KUKA機(jī)器人編程說明(英文)
圖紙模板中的文本變量

如何在文本字段中使用上標(biāo)、下標(biāo)及變量

自變量機(jī)器人宣布完成Pre-A與Pre-A+輪融資
TAS5711有時(shí)候出現(xiàn)PLL autolock err,為什么?
Linux環(huán)境變量配置方法
Xilinx設(shè)計(jì)工具怎么設(shè)置環(huán)境變量
通過工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)中間變量表達(dá)式的快速配置

Keil中變量不被初始化方法

技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

評論