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

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

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

探究$err 故障變量的用法

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:機(jī)器人及PLC自動(dòng)化 ? 2021-04-12 11:13 ? 次閱讀

$ 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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux環(huán)境變量配置方法

    Linux上環(huán)境變量配置分為設(shè)置永久變量和臨時(shí)變量兩種。環(huán)境變量設(shè)置方法同時(shí)要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時(shí)變量方法和
    的頭像 發(fā)表于 10-23 13:39 ?99次閱讀

    伺服驅(qū)動(dòng)器err13故障原因怎么解決

    伺服驅(qū)動(dòng)器ERR13故障是一種常見的伺服驅(qū)動(dòng)器故障,通常表示伺服驅(qū)動(dòng)器的編碼器信號(hào)異常。為了解決這個(gè)問(wèn)題,我們需要從多個(gè)方面進(jìn)行分析和排查。本文將詳細(xì)介紹ERR13
    的頭像 發(fā)表于 06-06 12:10 ?1.3w次閱讀

    AD7124-8 RTD三線單次轉(zhuǎn)化采樣,軟件診斷偶現(xiàn)產(chǎn)生 AINP_UV_ERR AINM_UV_ERR錯(cuò)誤如何解決?

    AD7124-8RTD 三線單次轉(zhuǎn)化采樣,硬件采樣電路參考官方文檔 CN-383。 軟件診斷偶現(xiàn)產(chǎn)生 AINP_UV_ERRAINM_UV_ERR錯(cuò)誤,硬件上如何調(diào)試驗(yàn)證,消除此類故障。
    發(fā)表于 05-31 08:09

    請(qǐng)問(wèn)訪問(wèn)XMC4400的FW_TRACE_ERR (63H) 的JTAG指令是什么?

    英飛凌 xmc4400_rm_v1.6_2016-UM-v01_06-EN.pdf 中 XMC4400 的 FW_TRACE_ERR (63H) 是用于訪問(wèn)的 JTAG 指令? 25.3.2 故障
    發(fā)表于 05-17 12:25

    EMC技術(shù):未來(lái)趨勢(shì)下的應(yīng)用與發(fā)展探究?

    EMC技術(shù):未來(lái)趨勢(shì)下的應(yīng)用與發(fā)展探究?|深圳比創(chuàng)達(dá)電子EMC
    的頭像 發(fā)表于 03-20 10:24 ?486次閱讀
    EMC技術(shù):未來(lái)趨勢(shì)下的應(yīng)用與發(fā)展<b class='flag-5'>探究</b>?

    C語(yǔ)言變量應(yīng)用詳解

    變量其實(shí)只不過(guò)是程序可操作的存儲(chǔ)區(qū)的名稱。C 中每個(gè)變量都有特定的類型,類型決定了變量存儲(chǔ)的大小和布局,該范圍內(nèi)的值都可以存儲(chǔ)在內(nèi)存中,運(yùn)算符可應(yīng)用于變量上。
    發(fā)表于 03-18 11:18 ?334次閱讀
    C語(yǔ)言<b class='flag-5'>變量</b>應(yīng)用詳解

    assign語(yǔ)句和always語(yǔ)句的用法

    用法和功能。 一、Assign語(yǔ)句 Assign語(yǔ)句的定義和語(yǔ)法 Assign語(yǔ)句用于在HDL中連續(xù)賦值,它允許在設(shè)計(jì)中為信號(hào)或變量分配一個(gè)值。Assign語(yǔ)句的語(yǔ)法如下: assign = ; 其中
    的頭像 發(fā)表于 02-22 16:24 ?2186次閱讀

    ros怎么設(shè)置環(huán)境變量

    設(shè)置ROS環(huán)境變量是使用ROS的重要步驟之一。本文將詳細(xì)介紹如何設(shè)置ROS環(huán)境變量,包括什么是環(huán)境變量、為什么要設(shè)置ROS環(huán)境變量、如何設(shè)置ROS環(huán)境
    的頭像 發(fā)表于 12-28 13:52 ?1897次閱讀

    split在python中的用法

    split在python中的用法 split()是Python中一個(gè)非常常用的字符串函數(shù),它能夠根據(jù)指定的分隔符將一個(gè)字符串分割成多個(gè)子字符串,并返回一個(gè)包含這些子字符串的列表。本文將詳細(xì)介紹
    的頭像 發(fā)表于 12-25 15:12 ?1951次閱讀

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

    變量可用于評(píng)估相對(duì)于提前運(yùn)行的當(dāng)前執(zhí)行程序。例如,該變量可用于評(píng)估程序中的錯(cuò)誤,以便能夠使用適當(dāng)?shù)?b class='flag-5'>故障服務(wù)功能對(duì)其進(jìn)行響應(yīng)。
    的頭像 發(fā)表于 12-18 15:41 ?733次閱讀

    pcb插針的用法

    pcb插針的用法
    的頭像 發(fā)表于 12-13 16:58 ?1740次閱讀

    oracle sql 定義變量并賦值

    賦值可以通過(guò)使用PL/SQL語(yǔ)句塊或使用SQL*Plus工具來(lái)實(shí)現(xiàn)。下面將詳細(xì)介紹這兩種方法以及它們的具體用法。 使用PL/SQL語(yǔ)句塊定義和賦值變量: 在Oracle SQL中,PL/SQL是一種過(guò)程化語(yǔ)言,允許在代碼中定義和使用變量
    的頭像 發(fā)表于 12-06 10:46 ?2588次閱讀

    oracle中substr函數(shù)用法

    字符串的源字符串,start_position是子字符串的起始位置,length是要提取的子字符串的長(zhǎng)度(可選參數(shù))。 下面將詳細(xì)介紹SUBSTR函數(shù)的用法及示例。 基本用法 最簡(jiǎn)單的用法是只指定源
    的頭像 發(fā)表于 12-05 16:57 ?1190次閱讀

    python變量命名規(guī)則

    Python是一種高級(jí)編程語(yǔ)言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學(xué)計(jì)算等領(lǐng)域。在Python中,變量是用來(lái)存儲(chǔ)數(shù)據(jù)的容器,它們具有名稱以及與之關(guān)聯(lián)的值。然而,變量的命名并不是隨意的,而是需要遵循一定
    的頭像 發(fā)表于 11-23 15:44 ?1173次閱讀

    for循環(huán)里的變量是局部變量

    對(duì)于一個(gè)普通for循環(huán)而言,循環(huán)變量是局部變量。在大多數(shù)編程語(yǔ)言中,循環(huán)變量只在循環(huán)內(nèi)部的作用域中可見。換句話說(shuō),循環(huán)變量的聲明和賦值僅在循環(huán)的每次迭代中有效,并且不能在循環(huán)外部訪問(wèn)或
    的頭像 發(fā)表于 11-23 14:50 ?2462次閱讀