亚洲最大成人网 色香蕉,无码毛片aaa在线,亚洲a∨精品一区二区三区,日本不卡一区二区三区在线

更多聯(lián)系我們

廣州子銳機(jī)器人技術(shù)有限公司

電話:400-878-2528
手機(jī):15889988091
傳真:020-32887675
地址:廣州市番禺區(qū)東環(huán)街金山谷創(chuàng)意八街1號109


官方微信


添加微信幫助解決機(jī)器人故障

首頁 > ABB機(jī)器人維修 >

ABB機(jī)器人的數(shù)據(jù)類型錯誤處理

日期:2020-04-15 人氣: 來源:www.gcceramics.com 作者:ABB機(jī)器人維修

簡介:errnum用于描述在執(zhí)行過程中,發(fā)生的所有可恢復(fù)的錯誤。例如程序執(zhí)行時,被零除。如果機(jī)器人程序執(zhí)行過程中檢測到一個錯誤,錯誤非致命,可以被錯誤處理程序處理。這類錯誤的典型例子是過大的值或者被零除。errnum類型的系統(tǒng)變errno,根據(jù)不同的錯誤性質(zhì),分……
  
  errnum用于描述在執(zhí)行過程中,發(fā)生的所有可恢復(fù)的錯誤。例如程序執(zhí)行時,被零除。如果機(jī)器人程序執(zhí)行過程中檢測到一個錯誤,錯誤非致命,可以被錯誤處理程序處理。這類錯誤的典型例子是過大的值或者被零除。errnum類型的系統(tǒng)變errno,根據(jù)不同的錯誤性質(zhì),分配不同的值。錯誤處理程序可以通過讀取這個變量來糾正錯誤,然后執(zhí)行程序可以正確的方式繼續(xù)運(yùn)行。
  錯誤也可以通過使用RAISE指令在程序中創(chuàng)建。錯誤處理程序通過指定一個能檢測到該特定類型的錯誤號(范圍1-90內(nèi)或通過BookErrNo指令預(yù)訂)作為RAISE的參數(shù)。
  示例:
  reg1:=reg2/reg3;
  ERROR
  IFERRNO=ERR_DIVZEROTHEN
  reg3:=1;
  RETRY;
  ENDIF
  如果REG3=0,機(jī)器人除法時檢測到發(fā)生的錯誤。這個錯誤可以被檢測并通過分配REG3的值為1予以糾正。因此除法可再次被執(zhí)行,程序可以繼續(xù)執(zhí)行。
  CONST
  errnummachine_error:=1;
  IF di1=0RAISEmachine_error;
  ERROR
  IFERRNO=machine_errorRAISE;
  機(jī)器人通過信號DI1檢測出現(xiàn)的錯誤。跳轉(zhuǎn)到錯誤處理程序。調(diào)用的錯誤處理程序調(diào),糾正這個錯誤。machine_error作為一個常數(shù),用來讓錯誤處理程序確切知道發(fā)生的是哪種錯誤的類型。
  系統(tǒng)變量ERRNO可以用于讀取最后一次發(fā)生的錯誤。許多預(yù)定義常量可以用來確定發(fā)生的錯誤類型。關(guān)于raise,RAISE用于在程序中產(chǎn)生一個錯誤,并調(diào)用程序的錯誤處理函數(shù)。RAISE同樣可以在錯誤處理函數(shù)中使用,將當(dāng)前錯誤傳送給調(diào)用程序的錯誤處理函數(shù)。這個指令可以用于跳回高一層的程序結(jié)構(gòu),例如,底層的錯誤返給主程序的錯誤處理函數(shù)。
  參數(shù):
  RAISE [Error no]
  Error no的數(shù)據(jù)類型為errnum。Errornumber:錯誤處理程序可以通過ERRNO系統(tǒng)變量查找1和90之間任意數(shù)字的錯誤。
  舉例:
  MODULEMainModule
  VAR errnumERR_MY_ERR:=-1;
  PROC main( )
  BookErrNoERR_MY_ERR;
  IF=0THEN
  RAISEERR_MY_ERR;
  ENDIF
  ERROR
  IF ERRNO=ERR_MY_ERR
  THENTPWrite"di1equals 0";
  ENDIF
  ENDPROC
  ENDMODULE
  如果di1等于0產(chǎn)生一個錯誤。RAISE會將程序推動到錯誤處理程序處執(zhí)行。在這個程序中,用戶創(chuàng)建了自己的錯誤號處理指定的錯誤。通過BookErrNo注冊錯誤號并使用。
  MODULEMainModule
  VAR numvalue1:=10;
  VAR numvalue2:=0;
  PROC main()
  routine1;
  ERROR
  IFERRNO=ERR_DIVZEROTHEN
  value2:=1;
  RETRY;RETRY指令用于當(dāng)一個錯誤發(fā)生時,重新運(yùn)行引起錯誤的指令。
  ENDIF
  ENDPROC
  PROCroutine1( )
  value1:=5/value2;當(dāng)value2為0的時候,這將導(dǎo)致一個錯誤。
  ERROR
  RAISE;
  ENDPROC
  ENDMODULE
  關(guān)于錯誤處理,TRYNEXT-跳過產(chǎn)生錯誤的指令,繼續(xù)運(yùn)行。TRYNEXT指令用于在產(chǎn)生一個錯誤后,程序運(yùn)行產(chǎn)生錯誤的下一條語句。
  示例:
  reg2:=reg3/reg4;
  ERROR
  IF ERRNO=ERR_DIVZEROTHEN
  reg2:=0;
  TRYNEXT;
  ENDIF
  RETRY指令用于從引起錯誤的地方恢復(fù)程序繼續(xù)運(yùn)行。
  示例:
  reg2:=reg3/reg4;
  ERROR
  IF ERRNO =ERR_DIVZERO THEN
  reg4:=1;
  RETRY;
  ENDIF
  reg3除以reg4,如果reg4等于0(零),那么跳轉(zhuǎn)到錯誤處理程序,重新為reg4賦值。然后RETRY從錯誤處理程序跳出,回到產(chǎn)生錯誤的除法指令,執(zhí)行除法指令。錯誤處理程序與機(jī)器人運(yùn)動示例(在機(jī)器人運(yùn)動過程中產(chǎn)生某種錯誤時,如何在自動模式下恢復(fù)錯誤)
  PROC
  CONSTrobtarget service_pos:=[...];
  VARrobtargetstop_pos;
  ERROR
  IFERRNO=AW_WELD_ERRTHEN
  Currentmovement on motion base pathlevel is already stopped.
  New motionpath level for newmovements in the ERROR handler
  StorePath;
  Storecurrent position from motionbase path level
  stop_pos:=CRobT(\Tool:=tool1,\WObj:=wobj1);
  !Do the workto fix the problem
  MoveJservice_pos,v50,fine,tool1,\WObj:=wobj1;
  Move backto the position on themotion base path level
  MoveJstop_pos,v50,fine,tool1,\WObj:=wobj1;
  Go back tomotion base path leveRestoPath;
  Restart thestopped movements onmotion base path level,
  restart theprocess and retryprogram execution
  StartMoveRetry;
  ENDIF
  ENDPROC

文章來源,工業(yè)機(jī)器人維修官網(wǎng):www.gcceramics.com

亚洲国产另类精品| 亚洲va中文慕无码久久av| 国产成人亚洲精品无码青app| 国产精品婷婷久久爽一下| 伊人久久大香线蕉av不卡| 蜜臀av99无码精品国产专区| 一区二区伊人久久大杳蕉| 国产欧美另类久久久精品不卡| 狠狠人妻久久久久久综合蜜桃| 夜夜夜高潮夜夜爽夜夜爰爰| 国产精品久久久久9999吃药| 色婷婷亚洲一区二区三区| 涩欲国产一区二区三区四区| 成人国内精品久久久久影院vr| 精品伊人久久久大香线蕉天堂| 亚洲国产精品一区二区久久hs| 欧美人牲交免费观看| 日本阿v网站在线观看中文| 无码人妻一区二区三区av| 国产精品制服丝袜无码| 免费高清av一区二区三区| 国产乱对白刺激视频| 久久久欧美国产精品人妻| 瑜伽裤国产一区二区三区| 人妻丰满熟妇av无码区| 好紧好爽好湿别拔出来视频男男| 国产免费踩踏调教视频| 中文字幕日本六区小电影| 夜精品a片一区二区三区无码白浆| 国产亚洲精品久久久久久久久动漫| 成人无码免费一区二区三区| 亚洲一区在线日韩在线秋葵| 精品国产v无码大片在线看| 无码少妇精品一区二区免费| 妺妺窝人体色777777| a一区二区三区乱码在线 | 欧洲| 亚洲精品自产拍在线观看动漫| 日日碰狠狠躁久久躁96| 制服丝袜中文字幕在线| 亚洲色播爱爱爱爱爱爱爱| 日本艳妓bbw高潮一19|