ABB机器人高级编程指令解读课件.ppt
ABB機器人高級指令,NWE技術研發部 自動化應用,2023/3/25,目錄,運動控制指令 外軸激活指令 計數指令 輸入輸出指令 程序運行停止指令 例行程序調用指令 計時指令 中斷指令 通信指令 中斷運動指令程序流程指令 故障處理指令坐標轉換指令 運動觸發指令,2023/3/25,運動控制指令,AccSet VelSetConfJ ConfLSingArea PathReasolSoftAct SoftDeact,2023/3/25,運動控制指令-AccSet,AccSet Acc,Ramp;Acc:機器人加速度百分率(num)Ramp:機器人加速度坡度(num)應用 當機器人運行速度改變時對所產生的相應加速度進行限製使機器人高速運行時更平緩但會延長循環時間系統默認值為AccSet 100,100;,2023/3/25,運動控制指令-AccSet,實例限製機器人加速度百分率最小值為20小於20以20 計機器人加速度坡度最小值為10小於10以10計機器人冷啟動新程序載入與程序重置後系統 自動設置為默認值,2023/3/25,運動控制指令-VelSet,VelSet Override,Max;Override:機器人運行速度%(num)Max:最大運行速度mm/s(num)應用 對機器人的運行速度進行限製機器人運動指令中均帶有運行速度在執行運動速度控制指令VelSet後實際運行速度為運動指令規定的運行速度乘以機器人運行速率并且不超過機器人最大運行速度系統默認值為VelSet 100,5000;,2023/3/25,運動控制指令-VelSet,實例 VelSet 50,800;MoveL p1,v1000,z10,tool1;MoveL p2,v1000v:=2000,z10,tool1;MoveL p3,v1000T:=5,z10,tool1;VelSet 80,1000;MoveL p1,v1000,z10,tool1;MoveL p2,v5000,z10,tool1;MoveL p3,v1000v:=2000,z10,tool1;MoveL p4,v1000T:=5,z10,tool1;,500mm/s,800mm/s,10s,800mm/s,1000smm/s,1000mm/s,6.25s,2023/3/25,運動控制指令-VelSet,限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值機器人使用參變量T時最大運行速度將不起作用Override對數據(speeddate)內所有項都起作用例如TCP方位及外軸但對焊接參數welddate與seamdate內機器人運動速度不起作用Max只對速度數據(speeddate)內TCP這項起作用,2023/3/25,運動控制指令-ConfJ,ConfJOn Off;On:啟動軸配置數據(switch)關節運動時機器人移動至絕對ModPos點如果無法到達程序將停止運行Off:默認H軸配置數據(switch)關節運動時機器人移動至ModPos點軸配置數據默認為當前最接近值,2023/3/25,運動控制指令-ConfJ,應用 對機器人運行姿態進行限製與調整程序運行時使機器人運行姿態得到控制系統默認值為ConfJOn;實例 ConfJOn;.ConfJOff;限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值,2023/3/25,運動控制指令-ConfL,ConfLOn Off;On:啟動軸配置數據(switch)直線運動時機器人移動至絕對ModPos點如果無法到達程序將停止運行Off:默認H軸配置數據(switch)直線運動時機器人移動至ModPos點軸配置數據默認為當前最接近值,2023/3/25,運動控制指令-ConfL,應用 對機器人運行姿態進行限製與調整程序運行時使機器人運行姿態得到控制系統默認值為ConfLOn;實例 ConfLOn;.ConfLOff;限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值,2023/3/25,運動控制指令-SingArea,SingAreaWrist Off;Wrist:啟動位置方位調整(switch)機器人運動時為了避免頻繁死機位置點允許其方位值有些許改變例如在五軸零度時機器人四六軸平行Off:關閉位置方位調整(switch)機器人運動時不允許位置點方位改變是機器人的默認狀態,2023/3/25,運動控制指令-SingArea,應用 當前指令通過對機器人位置點姿態進行些 許改變可以絕對避免機器人運行時死機 但是機器人運行路徑會受影響姿態得不 到控制通常使用與通過複雜姿態點絕對 不能作為工作點使用實例 SingAreaWrist;.SingAreaOff;,2023/3/25,運動控制指令-SingArea,限製以下情況機器人將自動恢復默認值 SingAreaOff-機器人冷啟動-系統重新載入新的程序-系統重置(Start From Beginning),2023/3/25,運動控制指令-PathResol,PathResol PathSampleTime;PathSampleTime:路徑控制%(num)應用 當前指令用於更改機器人主機系統參數;調整機器人路徑采樣時間從而達到控制機器人運行路徑的效果通過此指令可以提高機器人運動精度或縮短循環時間路徑控制默認值為100%調整範圍為25%-400%路徑控制百分比越小運動精度越高占用CPU資源也越多,2023/3/25,運動控制指令-PathResol,實例 MoveJ p1,v1000,fine,tool1;PathResol 150;機器人在臨界運動狀態(重載高速路徑變化複雜情況下接近最大工作區域)增加路徑控制值可避免頻繁死機外軸以很低的速度與機器人聯動增加路徑控制值可避免頻繁死機 機器人進行高頻率擺動弧焊時需要很高的路徑采樣時間需要減小路徑控制值機器人進行小範圍複雜運動時需要很高的精度需要減小路徑控制值,2023/3/25,運動控制指令-PathResol,限製機器人必須在完全停止後才能更改路徑控制值否則機器人將默認一個停止點并且顯示錯誤信息50146機器人在更改路徑控制值時機器人被強製停止運行機器人將不能立刻恢復正常運行(Restart)以下情況機器人將自動恢復默認值100%-機器人冷啟動-系統載入新的程序-程序重置(Start From Beginning),2023/3/25,運動控制指令-SoftAct,SoftActMechUnit,Axis,SoftnessRampMechUnit 軟化外軸名稱(mechunit)Axis:軟化外軸號碼(num)Softness:軟化值%(num)Ramp:軟化坡度%(num)應用 當前指令用於軟化機器人主機或外軸伺服系統軟化值範圍0%-100%,軟化坡度範圍=100%,此指令必須與指令SoftDeact同時使用通常不使用於工作位置。,2023/3/25,運動控制指令-SoftAct,實例 SoftAct 3,20;SoftAct 1,90Ramp:=150;SoftAct MechUnit:=Orbit1,1,40Ramp:=120;限製機器人被強製停止運行後軟伺服設置將自動失效同一轉軸軟化伺服不允許被連續設置兩次.SoftAct 3,20;SoftAct 3,20;SoftAct 3,20;MoveJ*,v100,fine,tool;.SoftAct 3,20;.,2023/3/25,運動控制指令-SoftDeact,SoftDeact Ramp Ramp:軟化坡度=100%(num)應用 當前指令用於使軟化機器人主機或外軸伺服系統指令SoftAct失效。實例 SoftAct 3,20;SoftDeact;SoftAct 1,90;SoftDeactRamp:=150;,2023/3/25,外軸激活指令,ActUnit DeactUnit,2023/3/25,外軸激活指令-ActUnit,ActUnit MecUnit MecUnit:外軸名(mecunit)應用 將機器人一個外軸激活例如當多個外軸公用一個驅動板時通過外軸激活指令ActUnit選擇當前所使用的外軸,2023/3/25,外軸激活指令-ActUnit,實例 MoveL p10,v100,fine,tool1;ActUnit track_motion;MoveL p20,v100,z10,tool1;DeactUnit track_motion;ActUnit orbit_a;MoveL p30,v100,z10,tool1;限製不能在指令StorePathRestorePath內使用不能在預置程序RESTART內使用不能在機器人轉軸處於獨立狀態時使用,P10,外軸不動,P20,外軸聯動Track_motion,P30,外軸聯動Orbit_a,2023/3/25,外軸激活指令-DeactUnit,DeactUnit MecUnit MecUnit:外軸名(mecunit)應用 將機器人一個外軸失效例如當多個外軸公用一個驅動板時通過外軸激活指令DeactUnit使當前所使用的外軸失效,2023/3/25,實例 MoveL p10,v100,fine,tool1;ActUnit track_motion;MoveL p20,v100,z10,tool1;DeactUnit track_motion;ActUnit orbit_a;MoveL p30,v100,z10,tool1;限製不能在指令StorePathRestorePath內使用不能在預置程序RESTART內使用,P10,外軸不動,P20,外軸聯動Track_motion,P30,外軸聯動Orbit_a,外軸激活指令-DeactUnit,2023/3/25,計數指令,Add Clear Incr Decr,2023/3/25,計數指令-Add,Add Name,AddValur Name:數據名稱(num)AddValue:增加的值(num)應用 在一個數字數據值是增加相應的值可以用賦值指令替代實例 Add reg1,3;等同於 reg1:=reg1+3;Add reg1,reg2;等同於reg1:=reg1+reg2;,2023/3/25,計數指令-Clear,Clear Name;Name:數據名稱(num)應用 將一個數字數據的值歸零可以用賦值指令替代實例 Clear reg1;等同於 reg1:=0,2023/3/25,計數指令-Incr,Incr Name;Name:數據名稱(num)應用 在一個數字數據的值上加1可以用賦值指令替代一般用於產量計數實例 Incr reg1;等同於 reg1:=reg1+1;,2023/3/25,計數指令-Decr,Decr Name;Name:數據名稱(num)應用 在一個數字數據的值減1可以用賦值指令替代一般用於產量計數實例 Incr reg1;等同於 reg1:=reg1-1;,2023/3/25,輸入輸出指令,AliasIO InvertDO IODisable IOEnable PluseDO Reset Set SetAO SetDO SetGO WaitDI WaitDO,2023/3/25,輸入輸出指令-AliasIO,AliasIO FromSignal,ToSignal;FromSignal:機器人系統參數內所定義的 信號名稱(SignalXX or string)ToSignal:機器人程序內所使用的信號名稱(SignalXX)應用 對機器人系統參數內定義的信號名稱進行化名給機器人程序使用一般使用與LoadedModule或Built-in Module內例如多台機器人使用相同系統參數,2023/3/25,輸入輸出指令-AliasIO,實例 VAR signaldo alias_do;CONST string config_string:=“config_do”;PROC prog_start()AliasIO config_do,alias_do;AliasIO config_string,alias_do;ENDPROC,Alias_do,在機器人程序內定義,config_do,在系統參數內定義,2023/3/25,輸入輸出指令-AliasIO,限製指令AliasIO必須放置在預置程序START內或程序內使用相應的信號之前指令AliasIO在示教器上無法輸入只能通過離線編輯輸入指令AliasIO需要軟件Develops Functions的支持,2023/3/25,輸入輸出指令-InvertDO,InvertDO Signal;Signal:輸出信號名稱(SignalDO)應用 將機器人輸出信號值反轉0為11為0在系統參數內也可定義實例:InvertDO do15;,2023/3/25,輸入輸出指令-InvertDO,2023/3/25,輸入輸出指令-IODisable,IODisable UnitName,MaxTime;UnitName:輸入輸出板名稱(num)MaxTime:最長等待時間(num)應用 通過指令可以使機器人輸入板在程序運行時自動失效系統將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統將進入ErrorHandler處理錯誤代碼為ERR_IODISABLE如果例行程序沒有ErrorHandler機器人將停機報錯。,2023/3/25,實例PROC go_home()recover_flag:=1;IODisable“cell”,0 MoveJ home,v1000,fine,tool1;recover_cover:=2;IODisable“cell”,5;ERROR IF ERRNO=ERR_IODISABLE THEN IF recover_flag=1 THEN TRYNEXT;ELSEIF recover_flag=2 THEN RETRY;ENDIF ELSEIF ERRNO=ERR_EXCRPTYMAX THEN ErrorWrite“IODisable error”,”Restart the program”;Ttop;ENDIFENDPROC,輸入輸出指令-IODisable,輸入輸出板cell開始失效最長等待時間為0肯定進入Error Handler處理,利用機器人移動到home的時間完成輸入輸出板失效,確認輸入輸出板失效,連續5次RETRY後仍無法完成輸入輸出板的失效,2023/3/25,輸入輸出指令-IODisable,Error HandingERR_IODISABLE 超過最長等待時間系統仍未完成輸入輸出板失效ERR_CALLIO_INTER 系統在執行輸入輸出板失效與激活時當前輸入輸出板與再次被失效或激活形成沖突ERR_NAME_INV ALID 輸入輸出板名稱錯誤或無法進行失效與激活操作,2023/3/25,輸入輸出指令-IOEnable,IOEnable UnitName,MaxTime;UnitName:輸入輸出板名稱(num)MaxTime:最長等待時間(num)應用 通過指令可以使機器人輸入板在程序運行時自動激活系統將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統將進入ErrorHandler處理錯誤代碼為ERR_IOENABLE如果例行程序沒有ErrorHandler機器人將停機報錯。,2023/3/25,輸入輸出指令-IOEnable,實例 VAR num max_retry:=0;.IOEnable“cell:,0;SetDO cell_sig3,1;ERROR IF ERRNO=ERR_IOENABLE THEN IF max_retry5 THEN WaitTime 1;max_retry:=max_retry+1;RETRY;ELSE RAISE;ENDIF ENDIF,輸入輸出板cell開始激活最長等待時間為0肯定進入Error Handler處理,通過每次1秒進行計數連續5次仍無法激活輸入輸出板執行指令RAISE,2023/3/25,輸入輸出指令-IOEnable,Error HandingERR_IOENABLE 超過最長等待時間系統仍未完成輸入輸出板激活ERR_CALLIO_INTER 系統在執行輸入輸出板失效與激活時當前輸入輸出板與再次被失效或激活形成沖突ERR_NAME_INV ALID 輸入輸出板名稱錯誤或無法進行失效與激活操作,2023/3/25,輸入輸出指令-PulseDO,PulseDOHighPLengthSignal;High:輸出脈沖時輸出信號可以處在 高電平(swtich)PLength:脈沖長度0.1s-32s,默認為 0.2s(num)Signal:輸出信號名稱(signaldo)應用 機器人輸出數字脈沖信號一般作為運輸鏈 完成信號或計數信號,2023/3/25,輸入輸出指令-PulseDO,PulseDOHighPlength:=X,1,1,0,0,Signal Level,Signal Level,脈沖長度,PulseDO,1,0,Signal Level,1,0,Signal Level,脈沖長度,PluseDOHigh,PulseDOHighPlength:=Y,Y,X,實例,2023/3/25,輸入輸出指令-PulseDO,限製機器人脈沖輸出長度小於0.01秒系統將報錯不得不熱啟動例如 WHILE TRUE DO PulseDO do5;ENDWHILE,2023/3/25,輸入輸出指令-Reset,Reset Signal;Signal:輸入輸出信號名稱(signaldo)應用 將機器人相應數字輸出信號置為0與指令Set對應是自動化重要組成部分。實例Reset do12;,2023/3/25,輸入輸出指令-Set,Set Signal;Signal:輸入輸出信號名稱(signaldo)應用 將機器人相應數字輸出信號置為1與指令Reset對應是自動化重要組成部分。實例 Set do12;,2023/3/25,輸入輸出指令-SetAo,SetAo Signal,Value;Signal:模擬量輸出信號名稱(signaldo)Value:模擬量輸出信號值(num)應用 機器人當前模擬量輸出信號輸出相應的值;例如機器人焊接時通過模擬量輸出控制焊接電壓和送絲速度。,2023/3/25,輸入輸出指令-SetAo,Physical valur of theOutput signal(V.mA.etd),Logical valur in the program,實例 SetAO ao2,5.5;SetAo weldcurr,curr_outp,2023/3/25,輸入輸出指令-SetDo,SetDoSDelay Signal,Value;SDelay:延時輸出時間s(num)Signal:輸出信號名稱(signaldo)Value:輸出信號值(num)應用 設置機器人相應組合輸出信號的值(采用8421碼)可以設置延時輸出延時範圍為0.1s-32s,默認狀態為沒有延時。實例 SetGoSDelay:=0.2,go_Type,10;,2023/3/25,輸入輸出指令-SetGo,SetGoSDelay Signal,Value;SDelay:延時輸出時間s(num)Signal:輸出信號名稱(signaldo)Value:輸出信號值(num)應用 設置機器人相應數字輸出信號的值與指令Set和Reset雷同并且可以設置延時延時的範圍為0.1s-32s,默認狀態為沒有延時。實例 SetDoSDelay:=0.2,weld,high;,2023/3/25,輸入輸出指令-WaitDI,WaitDI Signal,Value MaxTimeTimeFlag;Signal:輸入信號名稱(signaldo)Value:輸入信號值(num)MaxTime:最長等待時間s(num)TimeFlag:超時邏輯量(bool)應用 等待數字輸入信號滿足相應值達到通信目的是自動化生產重要組成部分例如機器人等待工件到位信號。,2023/3/25,輸入輸出指令-WaitDI,實例 PROC PickPart()MoveJ pPrePick,vFastEmpty,zBig,tool1;WaitDI di_Ready,1;.ENDPROCPROC PickPart()MoveJ pPrePick,vFastEmpty,zBig,tool1;WaitDI di_Ready,1MaxTime=5.ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite“.”;RETRY;ELSE RAISE;ENDIFENDPROC,機器人等待輸入信號直到信號di_Ready值為1才執行隨後指令,機器人等待相應輸入信號如果5秒內仍沒有等到信號di_Ready值為1自動進行Error Handler處理如果沒有Error Handler,機器人停機報錯,2023/3/25,實例PROC PickPart()MoveJ pPrePick,vFastEmpty,zBig,tool1;bTimeout:=TRUE;nCounter:=0;WHILE bTimeout DO IF nCounter3 THEN TPWrite“.”;ENDIF IF nCounter30 THEN Stop;ENDIF WaitDI di_Ready,1MaxTime=1Timeflag:=bTimeout;Incr nCounter;ENDWHOLE.ENDPROC,機器等待到位信號如果1秒內仍沒有等到信號di_Ready值為1機器人執行隨後指令但此時TimeFlag值為TRUE機器人等到di_Ready值為1此時TimeFlag值為FALSE,輸入輸出指令-WaitDI,2023/3/25,輸入輸出指令-WaitDO,WaitDO Signal,Value MaxTimeTimeFlag;Signal:輸出信號名稱(signaldo)Value:輸出信號值(num)MaxTime:最長等待時間s(num)TimeFlag:超時邏輯量(bool)應用 等待數字輸出信號滿足相應值達到通信目的因為輸出信號一般情況下受程序控制 此指令很少使用。,2023/3/25,實例 PROC Grip()Set do03_Grip;WaitDO do03_Grip,1;.ENDPROCPROC Grip()Set do03_Grip;WaitDO do03_Grip,1MaxTime:=5;.ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite“.”;RETRY;ELSE RAISE;ENDIFENDPROC,機器人等待輸出信號直到信號do03_Grip為1才執行隨後指令,機器人等待相應輸出信號如果5秒內仍沒有等到信號do03_Grip值為1自動進行Error Handler處理如果沒有Error Handler,機器人停機報錯,輸入輸出指令-WaitDO,2023/3/25,實例PROC Grip()Set do03_Grip;bTimeout:=TRUE;nCounter:=0;WHILE bTimeout DO IF nCounter3 THEN TPWrite“.”;ENDIF IF nCounter30 THEN Stop;ENDIF WaitDI di_Ready,1MaxTime=1Timeflag:=bTimeout;Incr nCounter;ENDWHOLE.ENDPROC,機器等待到位信號如果1秒內仍沒有等到信號do03_Grip值為1機器人執行隨後指令但此時TimeFlag值為TRUE機器人等到di_Ready值為1此時TimeFlag值為FALSE,輸入輸出指令-WaitDO,2023/3/25,程序運行停止指令,Break Exit Stop ExitCycle,2023/3/25,程序運行停止指令-Break,Break;應用 機器人在當前指令行立刻停止運行程序運行指針停留在下一行指令可以用Start鍵繼續運行機器人。實例.Break;.,2023/3/25,程序運行停止指令-Break,區別 MoveL p2,v100,z30,tool0;Break;(Stop)MoveL p3,v100,z30,tool0;,p1,Break,Stop,p3,p2,2023/3/25,程序運行停止指令-EXIT,EXIT;應用 機器人在當前指令行停止運行并且程序重置程序運行指針停留在主程序第一行。實例.EXIT;.,2023/3/25,Stop NoRegain;NoRegain:路徑恢復參數(num)應用 機器人在當前指令停止運行程序運行指針停留在下一行指令可以用Start鍵繼續運行機器人屬於臨時性停止如果機器人停止 期間被手動移動後然後直接啟動機器人機器人將警告確認路徑如果此時采用參變量NoRegain機器人將直接運行。,程序運行停止指令-STOP,2023/3/25,區別 MoveL p2,v100,z30,tool0;Stop;(Break;)MoveL p3,v100,z30,tool0;,p1,Break,Stop,p3,p2,程序運行停止指令-STOP,2023/3/25,程序運行停止指令-ExitCycle,ExitCycle;應用 機器人在當前指令行立刻停止運行并且設定當前循環結束機器人自動從主程序第一行繼續運行下一個循環。,2023/3/25,程序運行停止指令-ExitCycle,實例 PROC main()IF cyclecount=0 THEN CONNECT error_intno WITH error_trap ISignalDI di_error,1,error_intno;ENDIF cyclecount:=cyclecount+1;!start to do something intelligent.ENDPROC TRAP error_trap TPWrite“I will statr on the next item”;ExitCycle;ENDTRAP,2023/3/25,例行程序調用指令,ProcCall CallByVar,2023/3/25,ProcCall ProcedureArgumentProcedure:例行程序名稱(Identifier)Argument:例行程序參數(All)應用 機器人調用相應例行程序同時給帶有參數的例行程序中相應的參數賦值。實例 Weldpipe1;Weldpipe2 10,lowspeed;Weldpipe3 10speed:=20;,例行程序調用指令-ProcCall,2023/3/25,例行程序調用指令-ProcCall,限製機器人調用帶參數的例行程序時必須包括所有強製性參數例行程序所有參數位置次序必須與例行程序設置一致例行程序所有參數數據類型必須與例行程序設置一致例行程序所有參數數據性質必須為Input,Variable或Persistent;,2023/3/25,CallByVar Name,Number;Name:例行程序名稱第一部分(string)Number:例行程序名稱第二部分(num)應用 通過指令中相應數據機器人調用相應例行程序但無法調用帶有參數的例行程序。實例 reg1:=Ginput(gi_Type);CallByVar“proc”,reg1;,例行程序調用指令-CallByVar,2023/3/25,例行程序調用指令-CallByVar,限製不能調用帶參數的例行程序所有被調用的例行程序名稱第一部分必須相同例如proc1,proc2,proc3;使用CallByVar指令調用例行程序比直接采用ProcCall調用例行程序需要更長時間Error Handling:ERR_REFUNKPRC 系統無法找到例行程序名稱第一部分ERR_CALLPROC 系統無法找到例行程序名稱第二部分,2023/3/25,實例比較 TEST reg1 CASE 1:If _door door_loc;CASE 2:rf _door door_loc;CASE 3:Ir _door door_loc;CASE 4:rr _door door_loc;DEFAULT EXIT;ENDTEST CallByVar“proc”,reg1;%”proc”+NumTostr(reg1,0)%door_loc;,例行程序調用指令-CallByVar,指令CallByVar不能調用帶有參數的例行程序,通過RAPID結構仍可以調用帶有參數的例行程序,2023/3/25,計時指令,ClkReset ClkStartClkStop,2023/3/25,ClkReset Clock;Clock:時鐘名稱(clock)應用 將機器人相應時鐘復位常用於記錄循環時間或機器人跟蹤運輸鏈。實例 ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock;nCycleTime:=ClkRead(clock1);TPWrite“Last cycletime:Num:=nCycleTime,計時指令-ClkReset,2023/3/25,ClkStart Clock;Clock:時鐘名稱(clock)應用 啟動機器人相應時鐘常用於記錄循環時間或機器人跟蹤運輸鏈機器人時鐘啟動後 時鐘不會因為機器人停止運行或關機而停止計時在機器人時鐘運行時指令ClkStop 與ClkReset仍起作用。,計時指令-ClkStart,2023/3/25,計時指令-ClkStart,實例 ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock;nCycleTime:=ClkRead(clock1);TPWrite“Last cycletime:Num:=nCycleTime限製機器人時鐘計時超過4,294,967秒即49天17小時2分47秒機器人將出錯Error Handler代碼為ERR_OVERFLOW,2023/3/25,ClkStop Clock;Clock:時鐘名稱(clock)應用 停止機器人相應時鐘常用於記錄循環時間或機器人跟蹤運輸鏈。實例 ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock;nCycleTime:=ClkRead(clock1);TPWrite“Last cycletime:Num:=nCycleTime,計時指令-ClkStop,2023/3/25,中斷指令,CONNECT IDeleteISignalDI ISignalDOISignalAI ISignalAOISleep IWatchIDisable IEnableITimer,2023/3/25,中斷指令-CONNECT,CONNECT Interrupt WITH Trap routine,Interrupt:中斷數據名稱(intnum)Trap routine:中斷處理程序(Identifier),應用 將機器人相應中斷數據連接到相應的中斷處理程序是機器人中斷功能必不可少的組成部分必須同指令ISignalDIISignalDOISignalAIISignalAO或ITmer聯合使用,2023/3/25,中斷指令-CONNECT,實例,VAR intnum intInspectProc main().CONNECT intInpect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;.ENDPROCTRAP rAlarm TPWrite“Grip Error”;Stop;WaitDI di01_Vacuum,1;ENDTRAP,2023/3/25,中斷指令-CONNECT,限製中斷數據的數據類型必須為變量(VAR)一個中斷數據不允許同時連接到多個中斷處理程序但多個中斷數據可以共享一個中斷處理程序當一個中斷數據完成連接後 這個中斷數據不允許再次連接到任何中斷處理程序(包括已經連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令IDelete將原連接去除。,2023/3/25,中斷指令-CONNECT,Error Handler:ERR_ALRDYCNT 中斷數據已經被連接到中斷處理程序ERR_CNTNOTVAR 中斷數據的數據類型不是變量ERR_INOMAX 沒有更多的中斷數據可以使用,2023/3/25,中斷指令-IDelete,IDelete Interrupt,Interrupt:中斷數據名稱(intnum),應用,將機器人相應中斷數據與相應的中斷處理程序之間的連接去除,實例,.CONNECT IntInspect WITH rAlarm;ISingalDI di01_Vacuum,0,intInspect;.IDelete intInspect;,2023/3/25,中斷指令-IDelete,限製,執行指令IDelete後 當前中斷數據的連接被完全清除如需再次使用這個中斷數據必須重新使用指令CONNECT連接到相應的中斷處理程序在下列情況下中斷程序將自動去除-重新載入新的運行程序-機器人運行程序被重置程序指針回到主程序的第一行(Start From Beginning);-機器人程序指針被移到任意一個例行程序的第一行(Move PP to Routine);,2023/3/25,中斷指令-ISignalDI,ISingalDI Single,Signal,TriggValue,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)TriggValue:觸發信號值(dionum)Interrupt:中斷數據名稱(intnum),應用使用相應的數字輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2023/3/25,中斷指令-ISignalDI,1,0,0,中斷觸發,1,中斷觸發,實例,.CONNECT int1 WITH iroutine1;IsignalDIsingle di01,1,int1;.CONNECT int2 WITH iroutine2;ISignalDI di02,1,int1.,中斷功能在單次觸發後失效,中斷功能持續有效只有在程序重置或運行指令IDelete後才失效,2023/3/25,中斷指令-ISignalDI,限製,當一個中斷數據完成連接後 這個中斷數據不允許再次連接到任何中斷處理程序(包括已經連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令IDelete將原連接去除;,PROC main()CONNECT int1 WITH r1;ISignalDI di01,1,int1;.IDelete int1;ENDPROC,PROC main()CONNECT int1 WITH r1;ISignalDI di01,1,int1;WHILE TRUE DO.ENDWHILEENDPROC,2023/3/25,中斷指令-ISignalDO,ISingalDO Single,Signal,TriggValue,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)TriggValue:觸發信號值(dionum)Interrupt:中斷數據名稱(intnum),應用使用相應的數字輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2023/3/25,中斷指令-ISignalDO,1,0,0,中斷觸發,1,中斷觸發,實例,.CONNECT int1 WITH iroutine1;IsignalDOsingle di01,1,int1;.CONNECT int2 WITH iroutine2;ISignalDO di02,1,int1