包含有關(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è)解釋器只能訪問(wèn)自己的變量。命令解釋器不存在 $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ī)器人控制器跳過(guò)觸發(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ù)/直到;
跳過(guò)/結(jié)束跳過(guò);開關(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)在(隨后)通過(guò) ERR_RAISE 生成此消息。
與$ERR故障變量相關(guān)聯(lián)的函數(shù)
清除與$ERR相關(guān)的過(guò)程故障信息:
ERR_CLEAR (ERROR_T PERR :OUT )
產(chǎn)生與$ERR相關(guān)的過(guò)程故障信息:
ERR_RAISE (ERROR_T PERR :OUT )
原文標(biāo)題:KUKA系統(tǒng)變量:$ERR
文章出處:【微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
編程
+關(guān)注
關(guān)注
88文章
3689瀏覽量
95245 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82974 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64857
原文標(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)先 登錄
滲壓計(jì)基準(zhǔn)值選取與故障診斷的關(guān)聯(lián)性分析

集成電路后段互連設(shè)計(jì)規(guī)則的三種電流

基于 IAR Embedded Workbench 的自研 MCU 芯片軟件函數(shù)與變量內(nèi)存布局優(yōu)化精控方法

KUKA機(jī)器人使用說(shuō)明書
飛凌嵌入式ElfBoard ELF 1板卡-字符驅(qū)動(dòng)之自動(dòng)創(chuàng)建節(jié)點(diǎn)
庫(kù)卡KUKA機(jī)器人常見故障維修
KUKA機(jī)器人編程說(shuō)明(英文)
DLP9000在同一塊EVM電路板上,如何更新能依次更新兩片DLPC900控制器相關(guān)聯(lián)的bootloader程序?
關(guān)聯(lián)接口函數(shù)與libmodbus移植

如何由系統(tǒng)函數(shù)求頻率響應(yīng)
ad怎么把原理圖和pcb相關(guān)聯(lián)
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型和變量

評(píng)論