$ err
具有有關(guān)當(dāng)前程序信息的結(jié)構(gòu)
該變量可用于評(píng)估相對(duì)于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評(píng)估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對(duì)其進(jìn)行響應(yīng)。
該變量具有寫保護(hù),只能被讀取。
該變量可用于評(píng)估相對(duì)于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評(píng)估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)墓收戏?wù)功能對(duì)其進(jìn)行響應(yīng)。
該變量具有寫保護(hù),只能被讀取。
$ ERR對(duì)于機(jī)器人和提交解釋器是分別存在的。每個(gè)解釋器只能訪問(wèn)其自己的變量。對(duì)于命令解釋器,$ ERR不存在。
每個(gè)子程序級(jí)別都有其自己的$ ERR表示形式。這樣,來(lái)自一個(gè)級(jí)別的信息不會(huì)覆蓋來(lái)自不同級(jí)別的信息,并且可以同時(shí)從不同級(jí)別讀取信息。
ON_ERROR_PROCEED在當(dāng)前解釋器和當(dāng)前級(jí)別從$ ERR隱式刪除信息。
$ERR=Information
信息類型:Error_T
列出有關(guān)當(dāng)前正在執(zhí)行的程序的信息.
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
Number:發(fā)生運(yùn)行時(shí)錯(cuò)誤時(shí)的消息編號(hào)。如果未發(fā)生錯(cuò)誤,則顯示零值。
Interpreter:當(dāng)前解釋器?
#R_INT:機(jī)器人解釋器
?#S_INT:提交解釋器
int_type當(dāng)前圖片類型和中斷狀態(tài)
?#I_NORMAL:該程序不是中斷程序。
?#I_INTERRUPT:該程序?yàn)橹袛喑绦颉?/p>
?#I_STOP_INTERRUPT:通過(guò)$ STOPMESS中斷(錯(cuò)誤停止)
int_prio中斷優(yōu)先級(jí)
?1,2,4…39
?81…128
line_nr當(dāng)前程序中的行號(hào)
module[]當(dāng)前程序的目錄和名稱
up_name[]當(dāng)前子程序的目錄和名稱
trigger_type
觸發(fā)屬于子程序的觸發(fā)器的上下文
?#TRG_NONE:該子程序不是觸發(fā)子程序。
?#TRG_REGULAR:在向前運(yùn)動(dòng)期間切換了觸發(fā)器子程序。
?#TRG_BACKWARD:觸發(fā)子程序在向后運(yùn)動(dòng)期間被切換。
?#TRG_RESTART:觸發(fā)子程序已打開,切換回正向運(yùn)動(dòng)。
?#TRG_REPLAY:觸發(fā)子程序在向后運(yùn)動(dòng)后反復(fù)切換。
注意:此組件在KUKA System Software 8.3或更高版本中可用。
如何使用呢?
1.ERR_RAISE() 的示例:
如果不想不輸出所有可能存在的運(yùn)行時(shí)間錯(cuò)誤信息,而是只不輸出特定的信息,則可以通過(guò) 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
行 5 將觸發(fā)信息 1422 {$ 變量 } 值無(wú)效 。(此外由中斷調(diào)用該程序。)
6 SWITCH ($ERR.NUMBER) 情況區(qū)分取決于 $ERR.NUMBER獲取機(jī)器人故障號(hào)
7 CASE 0
如果在行 5 中未出現(xiàn)錯(cuò)誤,則 $ERR.NUMBER==0。在這種情況下不需要任何操作。
8 CASE 1422
如果觸發(fā)了信息 1422,則 $ERR.NUMBER==1422。在需要時(shí)可以編程設(shè)定一個(gè)錯(cuò)誤策略。
9 ;在需要時(shí)編程設(shè)定錯(cuò)誤策略
...
10 DEFAULT
11 ERR_RAISE ($ERR)
如果觸發(fā)了一個(gè)不同于 1422 的信息,則現(xiàn)在 (隨后)通過(guò) ERR_RAISE 輸出該信息。
12 ENDSWITCH
...
13 END
2.ON_ERROR_PROCEED的示例:
1 DEF myMainProg ()
2 INT myVar, myVar2
3 INI
4 ON_ERROR_PROCEED
行 5 觸發(fā)信息 1422 {$ 變量 } 值無(wú)效 ,因?yàn)?myVar 未安裝,因此無(wú)法將其傳輸給子程序。該行中的 ON_ERROR_PROCEED 事先抑制錯(cuò)誤信息。
5 mySubProg (myVar)
6 HALT
如果在此通過(guò)變量修正讀取 $ERR,則以下分量具有以下值:$ERR.number == 1422/$ERR.line_nr == 15/$ERR.module[] == "MYMAINPROG"/ $ERR.up_name[] == "MYMAINPROG".
3.$ ERR不僅可以用于錯(cuò)誤處理,還可以用于確定當(dāng)前環(huán)境。
在此示例中,參數(shù)從機(jī)器人程序和提交程序都轉(zhuǎn)換為子程序。在子程序中,系統(tǒng)確定參數(shù)來(lái)自哪個(gè)解釋器。所執(zhí)行的操作取決于結(jié)果。
機(jī)器人程序:
GLOBALDEF mySUB (par:IN)
INTpar
INI
IF($ERR.INTERPRETER==#R_INT) THEN -如果故障時(shí)機(jī)器人解釋器-發(fā)出輸出
$OUT_C[par]= TRUE
ELSE
$OUT[par]= TRUE
ENDIF
編輯:jq
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28128瀏覽量
205889 -
編程
+關(guān)注
關(guān)注
88文章
3574瀏覽量
93545 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6489
原文標(biāo)題:$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)論