文档详情

ABB机器人高级编程指令

桔****
实名认证
店铺
PPT
642KB
约207页
文档ID:591200921
ABB机器人高级编程指令_第1页
1/207

NWE技術研發部 自動化應用 目錄目錄運動控制指令運動控制指令 外軸激活指令外軸激活指令 計數指令計數指令 輸入輸出指令輸入輸出指令 程序運行停止指令程序運行停止指令 例行程序調用指令例行程序調用指令 計時指令計時指令 中斷指令中斷指令 通信指令通信指令 中斷運動指令中斷運動指令程序流程指令程序流程指令 故障處理指令故障處理指令坐標轉換指令坐標轉換指令 運動觸發指令運動觸發指令2024/9/17 運動控制指令AccSet VelSetConfJ ConfLSingArea PathReasolSoftAct SoftDeact2024/9/17 運動控制指令運動控制指令-AccSet AccSet Acc,Ramp; Acc: 機器人加速度百分率機器人加速度百分率 (num) Ramp: 機器人加速度坡度機器人加速度坡度 (num)應用應用﹕﹕ 當機器人運行速度改變時當機器人運行速度改變時﹐﹐對所產生的相對所產生的相應加速度進行限製應加速度進行限製﹐﹐使機器人高速運行時使機器人高速運行時更平緩更平緩﹐﹐但會延長循環時間但會延長循環時間﹐﹐系統默認值系統默認值為為﹕﹕AccSet 100,100;2024/9/17 運動控制指令運動控制指令-AccSet實例實例﹕﹕限製限製﹕﹕l機器人加速度百分率最小值為機器人加速度百分率最小值為20﹐﹐小於小於20﹐﹐以以20 計計﹐﹐機器人加速度坡度最小值為機器人加速度坡度最小值為10﹐﹐小於小於10以以10計計﹔﹔l機器人冷啟動機器人冷啟動﹐﹐新程序載入與程序重置後新程序載入與程序重置後﹐﹐系統系統 自自動設置為默認值動設置為默認值accelerationAccSet 100,100﹐i.e.normalaccelerationAccSet 30,100accelerationAccSet 100,30Time2024/9/17 運動控制指令運動控制指令-VelSet VelSet Override,Max; Override: 機器人運行速度機器人運行速度% (num) Max: 最大運行速度最大運行速度mm/s (num)應用應用﹕﹕ 對機器人的運行速度進行限製對機器人的運行速度進行限製﹐﹐機器人運動機器人運動指令中均帶有運行速度指令中均帶有運行速度﹐﹐在執行運動速度控在執行運動速度控制指令制指令VelSet後後﹐﹐實際運行速度為運動指令實際運行速度為運動指令規定的運行速度乘以機器人運行速率規定的運行速度乘以機器人運行速率﹐﹐并且并且不超過機器人最大運行速度不超過機器人最大運行速度﹐﹐系統默認值為系統默認值為﹕﹕VelSet 100,5000;2024/9/17 運動控制指令運動控制指令-VelSet實例實例﹕﹕ VelSet 50,800; MoveL p1,v1000,z10,tool1; MoveL p2,v1000\v:=2000,z10,tool1; MoveL p3,v1000\T:=5,z10,tool1; VelSet 80,1000; MoveL p1,v1000,z10,tool1; MoveL p2,v5000,z10,tool1; MoveL p3,v1000\v:=2000,z10,tool1; MoveL p4,v1000\T:=5,z10,tool1;500mm/s800mm/s10s800mm/s1000smm/s1000mm/s6.25s2024/9/17 運動控制指令運動控制指令-VelSet限製限製﹕﹕l機器人冷啟動機器人冷啟動﹐﹐新程序載入與程序重置後新程序載入與程序重置後﹐﹐系系統自動設置為默認值統自動設置為默認值﹔﹔l機器人使用參變量機器人使用參變量[\T]時時﹐﹐最大運行速度將不最大運行速度將不起作用起作用﹔﹔lOverride對數據對數據(speeddate)內所有項都起作內所有項都起作用用﹐﹐例如例如﹕﹕TCP﹑﹑方位及外軸方位及外軸﹐﹐但對焊接參數但對焊接參數welddate與與seamdate內機器人運動速度不起內機器人運動速度不起作用作用﹔﹔lMax只對速度數據只對速度數據(speeddate)內內TCP這項起這項起作用作用﹔﹔2024/9/17 運動控制指令運動控制指令-ConfJ ConfJ[\On] [\Off];[\On]: 啟動軸配置數據啟動軸配置數據 (switch)關節運動時關節運動時﹐﹐機器人移動至絕對機器人移動至絕對ModPos點點﹐﹐如果無法到達如果無法到達﹐﹐程序將停止運行程序將停止運行﹔﹔[\Off]: 默認默認H軸配置數據軸配置數據 (switch)關節運動時關節運動時﹐﹐機器人移動至機器人移動至ModPos點點﹐﹐軸軸配置數據默認為當前最接近值配置數據默認為當前最接近值﹔﹔2024/9/17 運動控制指令運動控制指令-ConfJ應用應用﹕﹕ 對機器人運行姿態進行限製與調整對機器人運行姿態進行限製與調整﹐﹐程序運行時程序運行時﹐﹐使機器人運行姿態得到控制使機器人運行姿態得到控制﹐﹐系統默認值為系統默認值為﹕﹕ConfJ\On;實例實例﹕﹕ ConfJ\On; ….. ConfJ\Off;限製限製﹕﹕l機器人冷啟動機器人冷啟動﹐﹐新程序載入與程序重置後新程序載入與程序重置後﹐﹐系統系統自動設置為默認值自動設置為默認值2024/9/17 運動控制指令運動控制指令-ConfL ConfL[\On] [\Off];[\On]: 啟動軸配置數據啟動軸配置數據 (switch)直線運動時直線運動時﹐﹐機器人移動至絕對機器人移動至絕對ModPos點點﹐﹐如果無法到達如果無法到達﹐﹐程序將停止運行程序將停止運行﹔﹔[\Off]: 默認默認H軸配置數據軸配置數據 (switch)直線運動時直線運動時﹐﹐機器人移動至機器人移動至ModPos點點﹐﹐軸軸配置數據默認為當前最接近值配置數據默認為當前最接近值﹔﹔2024/9/17 運動控制指令運動控制指令-ConfL應用應用﹕﹕ 對機器人運行姿態進行限製與調整對機器人運行姿態進行限製與調整﹐﹐程序運行時程序運行時﹐﹐使機器人運行姿態得到控制使機器人運行姿態得到控制﹐﹐系統默認值為系統默認值為﹕﹕ConfL\On;實例實例﹕﹕ ConfL\On; ….. ConfL\Off;限製限製﹕﹕l機器人冷啟動機器人冷啟動﹐﹐新程序載入與程序重置後新程序載入與程序重置後﹐﹐系統系統自動設置為默認值自動設置為默認值2024/9/17 運動控制指令運動控制指令-SingArea SingArea[\Wrist] [\Off];[\Wrist]: 啟動位置方位調整啟動位置方位調整 (switch)機器人運動時機器人運動時﹐﹐為了避免頻繁死機為了避免頻繁死機﹐﹐位置點位置點允許其方位值有些許改變允許其方位值有些許改變﹐﹐例如例如﹕﹕在五軸零在五軸零度時度時﹐﹐機器人四六軸平行機器人四六軸平行﹔﹔[\Off]: 關閉位置方位調整關閉位置方位調整 (switch)機器人運動時機器人運動時﹐﹐不允許位置點方位改變不允許位置點方位改變﹐﹐是是機器人的默認狀態機器人的默認狀態﹔﹔2024/9/17 運動控制指令運動控制指令-SingArea應用應用﹕﹕ 當前指令通過對機器人位置點姿態進行些當前指令通過對機器人位置點姿態進行些 許改變許改變﹐﹐可以絕對避免機器人運行時死機可以絕對避免機器人運行時死機﹐﹐ 但是但是﹐﹐機器人運行路徑會受影響機器人運行路徑會受影響﹐﹐姿態得不姿態得不 到控制到控制﹐﹐通常使用與通過複雜姿態點通常使用與通過複雜姿態點﹐﹐絕對絕對 不能作為工作點使用不能作為工作點使用﹔﹔實例實例﹕﹕ SingArea\Wrist; ….. SingArea\Off;2024/9/17 運動控制指令運動控制指令-SingArea限製限製﹕﹕l以下情況機器人將自動恢復默認值以下情況機器人將自動恢復默認值 SingArea\Off -機器人冷啟動機器人冷啟動 -系統重新載入新的程序系統重新載入新的程序 -系統重置系統重置(Start From Beginning)2024/9/17 運動控制指令運動控制指令-PathResol PathResol PathSampleTime; PathSampleTime : 路徑控制路徑控制% (num)應用應用﹕﹕ 當前指令用於更改機器人主機系統參數當前指令用於更改機器人主機系統參數;調整機器人路徑采樣時間調整機器人路徑采樣時間﹐﹐從而達到控制從而達到控制機器人運行路徑的效果機器人運行路徑的效果﹐﹐通過此指令可以通過此指令可以提高機器人運動精度或縮短循環時間提高機器人運動精度或縮短循環時間﹐﹐路路徑控制默認值為徑控制默認值為100%﹐﹐調整範圍為調整範圍為25%-400%路徑控制百分比越小路徑控制百分比越小﹐﹐運動精度越高運動精度越高﹐﹐占用占用CPU資源也越多資源也越多2024/9/17 運動控制指令運動控制指令-PathResol實例實例﹕﹕ MoveJ p1,v1000,fine,tool1; PathResol 150; 機器人在臨界運動狀態機器人在臨界運動狀態(重載重載﹑﹑高速高速﹑﹑路徑變化路徑變化複雜情況下接近最大工作區域複雜情況下接近最大工作區域)﹔﹔增加路徑控制增加路徑控制值值﹐﹐可避免頻繁死機可避免頻繁死機﹔﹔外軸以很低的速度與機器外軸以很低的速度與機器人聯動人聯動﹐﹐增加路徑控制值增加路徑控制值﹐﹐可避免頻繁死機可避免頻繁死機﹔﹔ 機器人進行高頻率擺動弧焊時機器人進行高頻率擺動弧焊時﹐﹐需要很高的路徑需要很高的路徑采樣時間采樣時間﹐﹐需要減小路徑控制值需要減小路徑控制值﹔﹔機器人進行小機器人進行小範圍複雜運動時範圍複雜運動時﹐﹐需要很高的精度需要很高的精度﹐﹐需要減小路需要減小路徑控制值徑控制值﹔﹔2024/9/17 運動控制指令運動控制指令-PathResol限製限製﹕﹕l機器人必須在完全停止後才能更改路徑控制值機器人必須在完全停止後才能更改路徑控制值﹐﹐否則否則﹐﹐機器人將默認一個停止點機器人將默認一個停止點﹐﹐并且顯示錯誤并且顯示錯誤信息信息50146﹔﹔l機器人在更改路徑控制值時機器人在更改路徑控制值時﹐﹐機器人被強製停止機器人被強製停止運行運行﹐﹐機器人將不能立刻恢復正常運行機器人將不能立刻恢復正常運行(Restart)l以下情況機器人將自動恢復默認值以下情況機器人將自動恢復默認值100% -機器人冷啟動機器人冷啟動 -系統載入新的程序系統載入新的程序 -程序重置程序重置(Start From Beginning)2024/9/17 運動控制指令運動控制指令-SoftAct SoftAct[\MechUnit],Axis,Softness[\Ramp][\MechUnit]﹕﹕ 軟化外軸名稱軟化外軸名稱 (mechunit)Axis: 軟化外軸號碼軟化外軸號碼 (num)Softness: 軟化值軟化值% (num)[\Ramp]: 軟化坡度軟化坡度% (num)應用應用﹕﹕ 當前指令用於軟化機器人主機或外軸伺服系統當前指令用於軟化機器人主機或外軸伺服系統﹐﹐軟化值範圍軟化值範圍0%-100%,軟化坡度範圍軟化坡度範圍>=100%,此此指令必須與指令指令必須與指令SoftDeact同時使用同時使用﹐﹐通常不使通常不使用於工作位置。

用於工作位置2024/9/17 運動控制指令運動控制指令-SoftAct實例實例﹕﹕ SoftAct 3,20; SoftAct 1,90\Ramp:=150; SoftAct \MechUnit:=Orbit1,1,40\Ramp:=120;限製限製﹕﹕l機器人被強製停止運行後機器人被強製停止運行後﹐﹐軟伺服設置將自動失效軟伺服設置將自動失效﹔﹔l同一轉軸軟化伺服不允許被連續設置兩次同一轉軸軟化伺服不允許被連續設置兩次﹔﹔….. …..SoftAct 3,20; SoftAct 3,20;SoftAct 3,20; MoveJ *,v100,fine,tool;….. SoftAct 3,20; …..2024/9/17 運動控制指令運動控制指令-SoftDeact SoftDeact [\Ramp] [\Ramp]: 軟化坡度軟化坡度>=100% (num)應用應用﹕﹕ 當前指令用於使軟化機器人主機或外軸伺服系統當前指令用於使軟化機器人主機或外軸伺服系統指令指令SoftAct失效。

失效實例實例﹕﹕ SoftAct 3,20; SoftDeact; SoftAct 1,90; SoftDeact\Ramp:=150;2024/9/17 外軸激活指令ActUnit DeactUnit2024/9/17 外軸激活指令外軸激活指令-ActUnit ActUnit MecUnit MecUnit: 外軸名外軸名 (mecunit)應用應用﹕﹕ 將機器人一個外軸激活將機器人一個外軸激活﹐﹐例如例如﹕﹕當多個外當多個外軸公用一個驅動板時軸公用一個驅動板時﹐﹐通過外軸激活指令通過外軸激活指令ActUnit選擇當前所使用的外軸選擇當前所使用的外軸﹔﹔2024/9/17 外軸激活指令外軸激活指令-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;限製限製﹕﹕l不能在指令不能在指令StorePath…RestorePath內使用內使用l不能在預置程序不能在預置程序RESTART內使用內使用l不能在機器人轉軸處於獨立狀態時使用不能在機器人轉軸處於獨立狀態時使用P10,外軸不動外軸不動P20,外軸聯動外軸聯動Track_motionP30,外軸聯動外軸聯動Orbit_a2024/9/17 外軸激活指令外軸激活指令-DeactUnit DeactUnit MecUnit MecUnit: 外軸名外軸名 (mecunit)應用應用﹕﹕ 將機器人一個外軸失效將機器人一個外軸失效﹐﹐例如例如﹕﹕當多個外當多個外軸公用一個驅動板時軸公用一個驅動板時﹐﹐通過外軸激活指令通過外軸激活指令DeactUnit使當前所使用的外軸失效使當前所使用的外軸失效﹔﹔2024/9/17 實例實例﹕﹕ MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;限製限製﹕﹕l不能在指令不能在指令StorePath…RestorePath內使用內使用l不能在預置程序不能在預置程序RESTART內使用內使用P10,外軸不動外軸不動P20,外軸聯動外軸聯動Track_motionP30,外軸聯動外軸聯動Orbit_a外軸激活指令外軸激活指令-DeactUnit2024/9/17 計數指令計數指令 Add Clear Incr Decr2024/9/17 計數指令計數指令-Add Add Name,AddValur Name: 數據名稱數據名稱 (num) AddValue: 增加的值增加的值 (num)應用應用﹕﹕ 在一個數字數據值是增加相應的值在一個數字數據值是增加相應的值﹐﹐可以可以用賦值指令替代用賦值指令替代﹔﹔實例實例﹕﹕ Add reg1,3; 等同於等同於 reg1:=reg1+3; Add reg1,reg2; 等同於等同於reg1:=reg1+reg2;2024/9/17 計數指令計數指令-Clear Clear Name; Name: 數據名稱數據名稱 (num)應用應用﹕﹕ 將一個數字數據的值歸零將一個數字數據的值歸零﹐﹐可以用賦值指可以用賦值指令替代令替代﹔﹔實例實例﹕﹕ Clear reg1; 等同於等同於 reg1:=02024/9/17 計數指令計數指令-Incr Incr Name; Name: 數據名稱數據名稱 (num)應用應用﹕﹕ 在一個數字數據的值上加在一個數字數據的值上加1﹐﹐可以用賦值可以用賦值指令替代指令替代﹔﹔一般用於產量計數一般用於產量計數﹔﹔實例實例﹕﹕ Incr reg1; 等同於等同於 reg1:=reg1+1;2024/9/17 計數指令計數指令-Decr Decr Name; Name: 數據名稱數據名稱 (num)應用應用﹕﹕ 在一個數字數據的值減在一個數字數據的值減1﹐﹐可以用賦值指可以用賦值指令替代令替代﹔﹔一般用於產量計數一般用於產量計數﹔﹔實例實例﹕﹕ Incr reg1; 等同於等同於 reg1:=reg1-1;2024/9/17 輸入輸出指令輸入輸出指令 AliasIO InvertDO IODisable IOEnable PluseDO Reset Set SetAO SetDO SetGO WaitDI WaitDO2024/9/17 輸入輸出指令輸入輸出指令-AliasIO AliasIO FromSignal,ToSignal;FromSignal: 機器人系統參數內所定義的機器人系統參數內所定義的 信號名稱信號名稱﹔﹔(SignalXX or string)ToSignal: 機器人程序內所使用的信號名稱機器人程序內所使用的信號名稱 (SignalXX)應用應用﹕﹕ 對機器人系統參數內定義的信號名稱進行化對機器人系統參數內定義的信號名稱進行化名名﹐﹐給機器人程序使用給機器人程序使用﹐﹐一般使用與一般使用與LoadedModule或或Built-in Module內內﹐﹐例例如如﹕﹕多台機器人使用相同系統參數多台機器人使用相同系統參數2024/9/17 輸入輸出指令輸入輸出指令-AliasIO實例實例﹕﹕ VAR signaldo alias_do; CONST string config_string:=“config_do”; PROC prog_start( ) AliasIO config_do,alias_do; AliasIO config_string,alias_do; ENDPROCAlias_do,在機器在機器人程序內定義人程序內定義config_do,在系統在系統參數內定義參數內定義2024/9/17 輸入輸出指令輸入輸出指令-AliasIO限製限製﹕﹕l指令指令AliasIO必須放置在預置程序必須放置在預置程序START內或程序內使用相應的信號之前內或程序內使用相應的信號之前﹔﹔l指令指令AliasIO在示教器上無法輸入在示教器上無法輸入﹐﹐只能只能通過離線編輯輸入通過離線編輯輸入﹔﹔l指令指令AliasIO需要軟件需要軟件Develop’s Functions的支持的支持 2024/9/17 輸入輸出指令輸入輸出指令-InvertDO InvertDO Signal;Signal: 輸出信號名稱輸出信號名稱﹔﹔ (SignalDO)應用應用﹕﹕ 將機器人輸出信號值反轉將機器人輸出信號值反轉﹐﹐0為為1﹐﹐1為為0﹐﹐在系統參數內也可定義在系統參數內也可定義﹔﹔實例實例: InvertDO do15;2024/9/17 輸入輸出指令輸入輸出指令-InvertDO機器人程序內指令機器人程序內指令InvertDO被執行被執行1100Signal LevelSignal Level2024/9/17 輸入輸出指令輸入輸出指令-IODisable IODisable UnitName,MaxTime;UnitName: 輸入輸出板名稱輸入輸出板名稱﹔﹔(num)MaxTime: 最長等待時間最長等待時間 (num)應用應用﹕﹕ 通過指令可以使機器人輸入板在程序運行時通過指令可以使機器人輸入板在程序運行時自動失效自動失效﹐﹐系統將一塊輸入輸出板失效需要系統將一塊輸入輸出板失效需要2-5秒秒﹐﹐如果失效時間超過最長等待時間如果失效時間超過最長等待時間﹐﹐系系統將進入統將進入ErrorHandler處理處理﹐﹐錯誤代碼為錯誤代碼為ERR_IODISABLE﹐﹐如果例行程序沒有如果例行程序沒有ErrorHandler﹐﹐機器人將停機報錯。

機器人將停機報錯2024/9/17 實例實例﹕﹕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後後﹐﹐仍無法完仍無法完成輸入輸出板的失效成輸入輸出板的失效2024/9/17 輸入輸出指令輸入輸出指令-IODisableError HandinglERR_IODISABLE 超過最長等待時間超過最長等待時間﹐﹐系統仍未完成輸入輸出系統仍未完成輸入輸出板失效板失效﹔﹔lERR_CALLIO_INTER 系統在執行輸入輸出板失效與激活時系統在執行輸入輸出板失效與激活時﹐﹐當前當前輸入輸出板與再次被失效或激活輸入輸出板與再次被失效或激活﹐﹐形成沖突形成沖突lERR_NAME_INV ALID 輸入輸出板名稱錯誤或無法進行失效與激活輸入輸出板名稱錯誤或無法進行失效與激活操作操作2024/9/17 輸入輸出指令輸入輸出指令-IOEnable IOEnable UnitName,MaxTime;UnitName: 輸入輸出板名稱輸入輸出板名稱﹔﹔(num)MaxTime: 最長等待時間最長等待時間 (num)應用應用﹕﹕ 通過指令可以使機器人輸入板在程序運行時通過指令可以使機器人輸入板在程序運行時自動激活自動激活﹐﹐系統將一塊輸入輸出板失效需要系統將一塊輸入輸出板失效需要2-5秒秒﹐﹐如果失效時間超過最長等待時間如果失效時間超過最長等待時間﹐﹐系系統將進入統將進入ErrorHandler處理處理﹐﹐錯誤代碼為錯誤代碼為ERR_IOENABLE﹐﹐如果例行程序沒有如果例行程序沒有ErrorHandler﹐﹐機器人將停機報錯。

機器人將停機報錯2024/9/17 輸入輸出指令輸入輸出指令-IOEnable實例實例﹕﹕ VAR num max_retry:=0; ….. IOEnable “cell:,0; SetDO cell_sig3,1;ERROR IF ERRNO=ERR_IOENABLE THEN IF max_retry<5 THEN WaitTime 1; max_retry:=max_retry+1; RETRY; ELSE RAISE; ENDIF ENDIF輸入輸出板輸入輸出板cell開始激活開始激活﹐﹐最長等待時間為最長等待時間為0﹐﹐肯定進入肯定進入Error Handler處理處理通過每次通過每次1秒進行計數秒進行計數﹐﹐連續連續5次仍無法次仍無法激活輸入輸出板激活輸入輸出板﹐﹐執行指令執行指令RAISE2024/9/17 輸入輸出指令輸入輸出指令-IOEnableError HandinglERR_IOENABLE 超過最長等待時間超過最長等待時間﹐﹐系統仍未完成輸入輸出系統仍未完成輸入輸出板激活板激活﹔﹔lERR_CALLIO_INTER 系統在執行輸入輸出板失效與激活時系統在執行輸入輸出板失效與激活時﹐﹐當前當前輸入輸出板與再次被失效或激活輸入輸出板與再次被失效或激活﹐﹐形成沖突形成沖突lERR_NAME_INV ALID 輸入輸出板名稱錯誤或無法進行失效與激活輸入輸出板名稱錯誤或無法進行失效與激活操作操作2024/9/17 輸入輸出指令輸入輸出指令-PulseDO PulseDO[\High][\PLength]Signal;;[\High]: 輸出脈沖時輸出脈沖時﹐﹐輸出信號可以處在輸出信號可以處在 高電平高電平﹔﹔(swtich)[\PLength]: 脈沖長度脈沖長度﹐﹐0.1s-32s,,默認為默認為 0.2s (num)Signal: 輸出信號名稱輸出信號名稱 (signaldo)應用應用﹕﹕ 機器人輸出數字脈沖信號機器人輸出數字脈沖信號﹐﹐一般作為運輸鏈一般作為運輸鏈 完成信號或計數信號完成信號或計數信號2024/9/17 輸入輸出指令輸入輸出指令-PulseDOPulseDO\High\Plength:=X1100Signal LevelSignal Level脈沖長度脈沖長度PulseDO10Signal Level10Signal Level脈沖長度脈沖長度PluseDO\HighPulseDO\High\Plength:=YYX實例實例﹕﹕2024/9/17 輸入輸出指令輸入輸出指令-PulseDO限製限製﹕﹕l機器人脈沖輸出長度小於機器人脈沖輸出長度小於0.01秒秒﹐﹐系統將系統將報錯報錯﹐﹐不得不熱啟動不得不熱啟動例如例如﹕﹕ WHILE TRUE DO PulseDO do5; ENDWHILE 2024/9/17 輸入輸出指令輸入輸出指令-Reset Reset Signal;Signal: 輸入輸出信號名稱輸入輸出信號名稱﹔﹔(signaldo)應用應用﹕﹕ 將機器人相應數字輸出信號置為將機器人相應數字輸出信號置為0﹐﹐與指令與指令Set對應對應﹐﹐是自動化重要組成部分。

是自動化重要組成部分實例實例﹕﹕Reset do12;2024/9/17 輸入輸出指令輸入輸出指令-Set Set Signal;Signal: 輸入輸出信號名稱輸入輸出信號名稱﹔﹔(signaldo)應用應用﹕﹕ 將機器人相應數字輸出信號置為將機器人相應數字輸出信號置為1﹐﹐與指令與指令Reset對應對應﹐﹐是自動化重要組成部分是自動化重要組成部分實例實例﹕﹕ Set do12;2024/9/17 輸入輸出指令輸入輸出指令-SetAo SetAo Signal,Value;Signal: 模擬量輸出信號名稱模擬量輸出信號名稱﹔﹔(signaldo)Value: 模擬量輸出信號值模擬量輸出信號值﹔﹔ (num)應用應用﹕﹕ 機器人當前模擬量輸出信號輸出相應的值機器人當前模擬量輸出信號輸出相應的值;例例如如﹕﹕機器人焊接時機器人焊接時﹐﹐通過模擬量輸出控制焊通過模擬量輸出控制焊接電壓和送絲速度接電壓和送絲速度2024/9/17 輸入輸出指令輸入輸出指令-SetAoMIN SIGNALMIN PROGRAMMAX SIGNALMAX PROGRAMPhysical valur of theOutput signal(V.mA.etd )Logical valur in the program 實例實例﹕﹕ SetAO ao2,5.5; SetAo weldcurr,curr_outp 2024/9/17 輸入輸出指令輸入輸出指令-SetDo SetDo[\SDelay] Signal,Value;[\SDelay]:延時輸出時間延時輸出時間s (num)Signal: 輸出信號名稱輸出信號名稱﹔﹔(signaldo)Value: 輸出信號值輸出信號值﹔﹔ (num)應用應用﹕﹕ 設置機器人相應組合輸出信號的值設置機器人相應組合輸出信號的值(采用采用8421碼碼)﹐﹐可以設置延時輸出可以設置延時輸出﹐﹐延時範圍為延時範圍為0.1s-32s,默認狀態為沒有延時。

默認狀態為沒有延時實例實例﹕﹕ SetGo\SDelay:=0.2,go_Type,10;2024/9/17 輸入輸出指令輸入輸出指令-SetGo SetGo[\SDelay] Signal,Value;[\SDelay]:延時輸出時間延時輸出時間s (num)Signal: 輸出信號名稱輸出信號名稱﹔﹔(signaldo)Value: 輸出信號值輸出信號值﹔﹔ (num)應用應用﹕﹕ 設置機器人相應數字輸出信號的值設置機器人相應數字輸出信號的值﹐﹐與指令與指令Set和和Reset雷同雷同﹐﹐并且可以設置延時并且可以設置延時﹐﹐延時延時的範圍為的範圍為0.1s-32s,默認狀態為沒有延時默認狀態為沒有延時實例實例﹕﹕ SetDo\SDelay:=0.2,weld,high;2024/9/17 輸入輸出指令輸入輸出指令-WaitDI WaitDI Signal,Value [\MaxTime][\TimeFlag];Signal: 輸入信號名稱輸入信號名稱﹔﹔(signaldo)Value: 輸入信號值輸入信號值﹔﹔ (num)[\MaxTime]: 最長等待時間最長等待時間s (num)[\TimeFlag]: 超時邏輯量超時邏輯量 (bool)應用應用﹕﹕ 等待數字輸入信號滿足相應值等待數字輸入信號滿足相應值﹐﹐達到通信目達到通信目的的﹐﹐是自動化生產重要組成部分是自動化生產重要組成部分﹐﹐例如例如﹕﹕機機器人等待工件到位信號。

器人等待工件到位信號2024/9/17 輸入輸出指令輸入輸出指令-WaitDI實例實例﹕﹕ PROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1; …..ENDPROCPROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1\MaxTime﹕﹕=5﹔﹔ …..ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite “…..”; RETRY; ELSE RAISE; ENDIFENDPROC 機器人等待輸入信號機器人等待輸入信號﹐﹐直直到信號到信號di_Ready值為值為1﹐﹐才執行隨後指令才執行隨後指令機器人等待相應輸機器人等待相應輸入信號入信號﹐﹐如果如果5秒內秒內仍沒有等到信號仍沒有等到信號di_Ready值為值為1﹐﹐自自動進行動進行Error Handler處理處理﹐﹐如果如果沒有沒有Error Handler ,機器人機器人停機報錯停機報錯2024/9/17 實例實例﹕﹕PROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; bTimeout:=TRUE; nCounter:=0; WHILE bTimeout DO IF nCounter>3 THEN TPWrite “…..”; ENDIF IF nCounter>30 THEN Stop; ENDIF WaitDI di_Ready,1\MaxTime﹕﹕=1\Timeflag:=bTimeout; Incr nCounter; ENDWHOLE …..ENDPROC機器等待到位信號機器等待到位信號﹐﹐如果如果1秒秒內仍沒有等到信號內仍沒有等到信號di_Ready值為值為1﹐﹐機器人執行隨後指令機器人執行隨後指令﹐﹐但此時但此時TimeFlag值為值為TRUE﹐﹐機器人等到機器人等到di_Ready值為值為1﹐﹐此時此時TimeFlag值為值為FALSE輸入輸出指令輸入輸出指令-WaitDI2024/9/17 輸入輸出指令輸入輸出指令-WaitDO WaitDO Signal,Value [\MaxTime][\TimeFlag];Signal: 輸出信號名稱輸出信號名稱﹔﹔(signaldo)Value: 輸出信號值輸出信號值﹔﹔ (num)[\MaxTime]: 最長等待時間最長等待時間s (num)[\TimeFlag]: 超時邏輯量超時邏輯量 (bool)應用應用﹕﹕ 等待數字輸出信號滿足相應值等待數字輸出信號滿足相應值﹐﹐達到通信目達到通信目的的﹐﹐因為輸出信號一般情況下受程序控制因為輸出信號一般情況下受程序控制 此指令很少使用。

此指令很少使用2024/9/17 實例實例﹕﹕ PROC Grip( ) Set do03_Grip; WaitDO do03_Grip,1; …..ENDPROCPROC Grip( ) Set do03_Grip; WaitDO do03_Grip,1\MaxTime:=5; …..ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite “…..”; RETRY; ELSE RAISE; ENDIFENDPROC 機器人等待輸出信號機器人等待輸出信號﹐﹐直直到信號到信號do03_Grip為為1﹐﹐才才執行隨後指令執行隨後指令﹔﹔機器人等待相應輸機器人等待相應輸出信號出信號﹐﹐如果如果5秒內秒內仍沒有等到信號仍沒有等到信號do03_Grip值為值為1﹐﹐自動進行自動進行Error Handler處理處理﹐﹐如果如果沒有沒有Error Handler ,機器人機器人停機報錯停機報錯輸入輸出指令輸入輸出指令-WaitDO2024/9/17 實例實例﹕﹕PROC Grip( ) Set do03_Grip; bTimeout:=TRUE; nCounter:=0; WHILE bTimeout DO IF nCounter>3 THEN TPWrite “…..”; ENDIF IF nCounter>30 THEN Stop; ENDIF WaitDI di_Ready,1\MaxTime﹕﹕=1\Timeflag:=bTimeout; Incr nCounter; ENDWHOLE …..ENDPROC機器等待到位信號機器等待到位信號﹐﹐如果如果1秒秒內仍沒有等到信號內仍沒有等到信號do03_Grip值為值為1﹐﹐機器人執機器人執行隨後指令行隨後指令﹐﹐但此時但此時TimeFlag值為值為TRUE﹐﹐機器人機器人等到等到di_Ready值為值為1﹐﹐此時此時TimeFlag值為值為FALSE輸入輸出指令輸入輸出指令-WaitDO2024/9/17 程序運行停止指令程序運行停止指令 Break Exit Stop ExitCycle2024/9/17 程序運行停止指令程序運行停止指令-Break Break;應用應用﹕﹕ 機器人在當前指令行立刻停止運行機器人在當前指令行立刻停止運行﹐﹐程序運程序運行指針停留在下一行指令行指針停留在下一行指令﹐﹐可以用可以用Start鍵繼鍵繼續運行機器人。

續運行機器人實例實例﹕﹕ ….. Break; …..2024/9/17 程序運行停止指令程序運行停止指令-Break區別區別﹕﹕ MoveL p2,v100,z30,tool0; Break;(Stop) MoveL p3,v100,z30,tool0;p1BreakStopp3p22024/9/17 程序運行停止指令程序運行停止指令-EXIT EXIT;應用應用﹕﹕ 機器人在當前指令行停止運行機器人在當前指令行停止運行﹐﹐并且程序重并且程序重置置﹐﹐程序運行指針停留在主程序第一行程序運行指針停留在主程序第一行實例實例﹕﹕ ….. EXIT; …..2024/9/17 Stop [\NoRegain];[\NoRegain]: 路徑恢復參數路徑恢復參數 (num)應用應用﹕﹕ 機器人在當前指令停止運行機器人在當前指令停止運行﹐﹐程序運行指針程序運行指針停留在下一行指令停留在下一行指令﹐﹐可以用可以用Start鍵繼續運行鍵繼續運行機器人機器人﹐﹐屬於臨時性停止屬於臨時性停止﹐﹐如果機器人停止如果機器人停止 期間被手動移動後期間被手動移動後﹐﹐然後直接啟動機器人然後直接啟動機器人﹐﹐機器人將警告確認路徑機器人將警告確認路徑﹐﹐如果此時采用參變如果此時采用參變量量[\NoRegain]﹐﹐機器人將直接運行。

機器人將直接運行程序運行停止指令程序運行停止指令-STOP2024/9/17 區別區別﹕﹕ MoveL p2,v100,z30,tool0; Stop;(Break;) MoveL p3,v100,z30,tool0;p1BreakStopp3p2程序運行停止指令程序運行停止指令-STOP2024/9/17 程序運行停止指令程序運行停止指令-ExitCycle ExitCycle;應用應用﹕﹕ 機器人在當前指令行立刻停止運行機器人在當前指令行立刻停止運行﹐﹐并且設并且設定當前循環結束定當前循環結束﹐﹐機器人自動從主程序第一機器人自動從主程序第一行繼續運行下一個循環行繼續運行下一個循環2024/9/17 程序運行停止指令程序運行停止指令-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; ENDTRAP2024/9/17 例行程序調用指令例行程序調用指令 ProcCall CallByVar 2024/9/17 ProcCall Procedure{Argument}Procedure: 例行程序名稱例行程序名稱 (Identifier){Argument}: 例行程序參數例行程序參數 (All)應用應用﹕﹕ 機器人調用相應例行程序機器人調用相應例行程序﹐﹐同時給帶有參數同時給帶有參數的例行程序中相應的參數賦值。

的例行程序中相應的參數賦值實例實例﹕﹕ Weldpipe1; Weldpipe2 10,lowspeed; Weldpipe3 10\speed:=20;例行程序調用指令例行程序調用指令-ProcCall2024/9/17 例行程序調用指令例行程序調用指令-ProcCall限製限製﹕﹕l機器人調用帶參數的例行程序時機器人調用帶參數的例行程序時﹐﹐必須包括必須包括所有強製性參數所有強製性參數﹔﹔l例行程序所有參數位置次序必須與例行程序例行程序所有參數位置次序必須與例行程序設置一致設置一致﹔﹔l例行程序所有參數數據類型必須與例行程序例行程序所有參數數據類型必須與例行程序設置一致設置一致﹔﹔l例行程序所有參數數據性質必須為例行程序所有參數數據性質必須為Input,Variable或或Persistent;2024/9/17 CallByVar Name,Number;Name: 例行程序名稱第一部分例行程序名稱第一部分 (string)Number: 例行程序名稱第二部分例行程序名稱第二部分 (num)應用應用﹕﹕ 通過指令中相應數據通過指令中相應數據﹐﹐機器人調用相應例行機器人調用相應例行程序程序﹐﹐但無法調用帶有參數的例行程序。

但無法調用帶有參數的例行程序實例實例﹕﹕ reg1:=Ginput(gi_Type); CallByVar “proc”,reg1;例行程序調用指令例行程序調用指令-CallByVar2024/9/17 例行程序調用指令例行程序調用指令-CallByVar限製限製﹕﹕l不能調用帶參數的例行程序不能調用帶參數的例行程序﹔﹔l所有被調用的例行程序名稱第一部分必須相所有被調用的例行程序名稱第一部分必須相同同﹐﹐例如例如﹕﹕proc1,proc2,proc3;l使用使用CallByVar指令調用例行程序比直接采指令調用例行程序比直接采用用ProcCall調用例行程序需要更長時間調用例行程序需要更長時間﹔﹔Error Handling:lERR_REFUNKPRC 系統無法找到例行程序名稱第一部分系統無法找到例行程序名稱第一部分lERR_CALLPROC 系統無法找到例行程序名稱第二部分系統無法找到例行程序名稱第二部分2024/9/17 實例比較實例比較﹕﹕ 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結構結構仍可以調用帶有仍可以調用帶有參數的例行程序參數的例行程序2024/9/17 計時指令計時指令ClkReset ClkStartClkStop2024/9/17 ClkReset Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用﹕﹕ 將機器人相應時鐘復位將機器人相應時鐘復位﹐﹐常用於記錄循環時常用於記錄循環時間或機器人跟蹤運輸鏈。

間或機器人跟蹤運輸鏈實例實例﹕﹕ ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:’\Num:=nCycleTime計時指令計時指令-ClkReset2024/9/17 ClkStart Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用﹕﹕ 啟動機器人相應時鐘啟動機器人相應時鐘﹐﹐常用於記錄循環時間常用於記錄循環時間或機器人跟蹤運輸鏈或機器人跟蹤運輸鏈﹐﹐機器人時鐘啟動後機器人時鐘啟動後﹐﹐ 時鐘不會因為機器人停止運行或關機而停止時鐘不會因為機器人停止運行或關機而停止計時計時﹐﹐在機器人時鐘運行時在機器人時鐘運行時﹐﹐指令指令ClkStop 與與ClkReset仍起作用仍起作用計時指令計時指令-ClkStart2024/9/17 計時指令計時指令-ClkStart實例實例﹕﹕ ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:’\Num:=nCycleTime限製限製﹕﹕l機器人時鐘計時超過機器人時鐘計時超過4,294,967秒秒﹐﹐即即49天天17小時小時2分分47秒秒﹐﹐機器人將出錯機器人將出錯﹐﹐Error Handler代碼為代碼為ERR_OVERFLOW2024/9/17 ClkStop Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用﹕﹕ 停止機器人相應時鐘停止機器人相應時鐘﹐﹐常用於記錄循環時間常用於記錄循環時間或機器人跟蹤運輸鏈。

或機器人跟蹤運輸鏈實例實例﹕﹕ ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:’\Num:=nCycleTime計時指令計時指令-ClkStop2024/9/17 中斷指令中斷指令CONNECT IDeleteISignalDI ISignalDOISignalAI ISignalAOISleep IWatchIDisable IEnableITimer2024/9/17 中斷指令中斷指令-CONNECTCONNECT Interrupt WITH Trap routineInterrupt: 中斷數據名稱中斷數據名稱 (intnum)Trap routine: 中斷處理程序中斷處理程序 (Identifier)應用應用﹕﹕ 將機器人相應中斷數據連接到相應的中將機器人相應中斷數據連接到相應的中斷處理程序是機器人中斷功能必不可少的斷處理程序是機器人中斷功能必不可少的組成部分組成部分﹐﹐必須同指令必須同指令ISignalDI﹑ ﹑ISignalDO﹑ ﹑ISignalAI﹑ ﹑ISignalAO﹑ ﹑或或ITmer聯合使用聯合使用2024/9/17 中斷指令中斷指令-CONNECT實例實例﹕﹕VAR intnum intInspectProc main( )…..CONNECT intInpect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;…..ENDPROCTRAP rAlarm TPWrite “Grip Error”; Stop; WaitDI di01_Vacuum,1;ENDTRAP2024/9/17 中斷中斷指令指令-CONNECT限製限製﹕﹕l中斷數據的數據類型必須為變量中斷數據的數據類型必須為變量(VAR)﹐﹐l一個中斷數據不允許同時連接到多個中斷處一個中斷數據不允許同時連接到多個中斷處理程序理程序﹐﹐但多個中斷數據可以共享一個中斷處但多個中斷數據可以共享一個中斷處理程序理程序﹐﹐l當一個中斷數據完成連接後當一個中斷數據完成連接後﹐﹐ 這個中斷數據這個中斷數據不允許再次連接到任何中斷處理程序不允許再次連接到任何中斷處理程序﹐﹐(包括已包括已經連接的中斷處理程序經連接的中斷處理程序)﹐﹐如果需要再次連接到如果需要再次連接到任何中斷處理程序任何中斷處理程序﹐﹐必須先使用指令必須先使用指令IDelete將將原連接去除。

原連接去除2024/9/17 中斷指令中斷指令-CONNECTError Handler:lERR_ALRDYCNT 中斷數據已經被連接到中斷處理程序中斷數據已經被連接到中斷處理程序﹔﹔lERR_CNTNOTVAR 中斷數據的數據類型不是變量中斷數據的數據類型不是變量﹔﹔lERR_INOMAX 沒有更多的中斷數據可以使用沒有更多的中斷數據可以使用﹔﹔2024/9/17 中斷指令中斷指令-IDeleteIDelete InterruptInterrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕將機器人相應中斷數據與相應的中斷處理程將機器人相應中斷數據與相應的中斷處理程序之間的連接去除序之間的連接去除﹔﹔實例實例﹕﹕…..CONNECT IntInspect WITH rAlarm;ISingalDI di01_Vacuum,0,intInspect;…..IDelete intInspect;2024/9/17 中斷指令中斷指令-IDelete限製限製﹕﹕l執行指令執行指令IDelete後後 ﹐﹐當前中斷數據的連接被完全當前中斷數據的連接被完全清除清除﹐﹐如需再次使用這個中斷數據必須重新使用指如需再次使用這個中斷數據必須重新使用指令令CONNECT連接到相應的中斷處理程序連接到相應的中斷處理程序﹔﹔l在下列情況下在下列情況下﹐﹐中斷程序將自動去除中斷程序將自動去除﹕﹕-重新載入新的運行程序重新載入新的運行程序﹔﹔-機器人運行程序被重置機器人運行程序被重置﹐﹐程序指針回到主程序的第程序指針回到主程序的第一行一行(Start From Beginning);-機器人程序指針被移到任意一個例行程序的第一機器人程序指針被移到任意一個例行程序的第一行行(Move PP to Routine);2024/9/17 中斷指令中斷指令-ISignalDIISingalDI [\Single],Signal,TriggValue,Interrupt[\single]: 單次中斷信號開關單次中斷信號開關 (switch)Signal: 觸發中斷信號觸發中斷信號 (singaldi)TriggValue: 觸發信號值觸發信號值 (dionum)Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕使用相應的數字輸入信號觸發相應的中斷功使用相應的數字輸入信號觸發相應的中斷功能能﹐﹐必須同指令必須同指令CONNECT聯合使用聯合使用2024/9/17 中斷指令中斷指令-ISignalDI100中斷觸發中斷觸發1中斷觸發中斷觸發實例實例﹕﹕…..CONNECT int1 WITH iroutine1;IsignalDI\single di01,1,int1;…..CONNECT int2 WITH iroutine2;ISignalDI di02,1,int1…..中斷功能在單次觸中斷功能在單次觸發後失效發後失效中斷功能持續有效中斷功能持續有效﹐﹐只有在程序重置只有在程序重置或運行指令或運行指令IDelete後才失效後才失效2024/9/17 中斷指令中斷指令-ISignalDI限製限製﹕﹕l當一個中斷數據完成連接後當一個中斷數據完成連接後﹐﹐ 這個中斷數據不允許再這個中斷數據不允許再次連接到任何中斷處理程序次連接到任何中斷處理程序﹐﹐(包括已經連接的中斷處理包括已經連接的中斷處理程序程序)﹐﹐如果需要再次連接到任何中斷處理程序如果需要再次連接到任何中斷處理程序﹐﹐必須先使必須先使用指令用指令IDelete將原連接去除將原連接去除;PROC main( ) CONNECT int1 WITH r1; ISignalDI di01,1,int1; ….. IDelete int1;ENDPROCPROC main( ) CONNECT int1 WITH r1; ISignalDI di01,1,int1; WHILE TRUE DO ….. ENDWHILEENDPROC2024/9/17 中斷指令中斷指令-ISignalDOISingalDO [\Single],Signal,TriggValue,Interrupt[\single]: 單次中斷信號開關單次中斷信號開關 (switch)Signal: 觸發中斷信號觸發中斷信號 (singaldi)TriggValue: 觸發信號值觸發信號值 (dionum)Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕使用相應的數字輸入信號觸發相應的中斷使用相應的數字輸入信號觸發相應的中斷功能功能﹐﹐必須同指令必須同指令CONNECT聯合使用聯合使用2024/9/17 中斷指令中斷指令-ISignalDO100中斷觸發中斷觸發1中斷觸發中斷觸發實例實例﹕﹕…..CONNECT int1 WITH iroutine1;IsignalDO\single di01,1,int1;…..CONNECT int2 WITH iroutine2;ISignalDO di02,1,int1…..中斷功能在單次觸中斷功能在單次觸發後失效發後失效中斷功能持續有效中斷功能持續有效﹐﹐只有在程序重置或運只有在程序重置或運行指令行指令IDelete後才失後才失效效2024/9/17 中斷指令中斷指令-ISignalDO限製限製﹕﹕l當一個中斷數據完成連接後當一個中斷數據完成連接後﹐﹐ 這個中斷數據不允許再這個中斷數據不允許再次連接到任何中斷處理程序次連接到任何中斷處理程序﹐﹐(包括已經連接的中斷處理包括已經連接的中斷處理程序程序)﹐﹐如果需要再次連接到任何中斷處理程序如果需要再次連接到任何中斷處理程序﹐﹐必須先使必須先使用指令用指令IDelete將原連接去除將原連接去除;PROC main( ) CONNECT int1 WITH r1; ISignalDO dO01,1,int1; ….. IDelete int1;ENDPROCPROC main( ) CONNECT int1 WITH r1; ISignalDO di01,1,int1; WHILE TRUE DO ….. ENDWHILEENDPROC2024/9/17 中斷指令中斷指令-ISignalAIISingalAI [\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]: 單次中斷信號開關單次中斷信號開關 (switch)Signal: 觸發中斷信號觸發中斷信號 (singaldi)Condition: 中斷觸發狀態中斷觸發狀態 (aiotrigg)HighValue: 最大邏輯值最大邏輯值 (num)LowValue: 最小邏輯值最小邏輯值 (num)2024/9/17 中斷指令中斷指令-ISignalAIISingalAI [\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue: 中斷恢復差值中斷恢復差值 (num)[\DPos]: 正值中斷開關正值中斷開關 (switch)[\DNeg]: 負值中斷開關負值中斷開關 (switch)Interrupt: 中斷數據名稱中斷數據名稱 (intnum)2024/9/17 中斷指令中斷指令-ISignalAI中斷觸發狀態中斷觸發狀態﹕﹕lAIO_ABOVE_HIGH 模擬量信號邏輯值大於最大邏輯值模擬量信號邏輯值大於最大邏輯值(HighValue)lAIO_BELOW_HIGH 模擬量信號邏輯值小於最大邏輯值模擬量信號邏輯值小於最大邏輯值(HighValue)lAIO_ABOVE_LOW 模擬量信號邏輯值大於最小邏輯值模擬量信號邏輯值大於最小邏輯值(LowValue)lAIO_BELOW_LOW 模擬量信號邏輯值小於最小邏輯值模擬量信號邏輯值小於最小邏輯值(LowValue)lAIO_BETWEEN 模擬量信號邏輯值處於最小邏輯值模擬量信號邏輯值處於最小邏輯值(LowValue)和最和最大邏輯值大邏輯值(HighValue)之間之間2024/9/17 中斷指令中斷指令-ISignalAI中斷觸發狀態中斷觸發狀態﹕﹕lAIO_OUTSIDE 模擬量信號邏輯值大於最大邏輯值模擬量信號邏輯值大於最大邏輯值(HighValue) 或者小於最小邏輯值或者小於最小邏輯值(LowValue)lAIO_ALWAYS 總是觸發中斷總是觸發中斷﹐﹐與模擬量信號邏輯值處於最小與模擬量信號邏輯值處於最小邏輯值邏輯值(LowValue)與最大邏輯值與最大邏輯值(HighValue)無關無關應用應用﹕﹕ 使用相應的模擬量輸入信號觸發相應的中斷使用相應的模擬量輸入信號觸發相應的中斷功能功能﹐﹐必須同指令必須同指令CONNECT聯合使用聯合使用﹔﹔2024/9/17 中斷指令中斷指令-ISignalAI實例實例﹕﹕…..CONNECT int1 WITH iroutine1;ISignalAI\Single ai1﹐﹐AIO_BETWEEN,2,1,0,int1;…..CONNECT int2 WITH iroutine2;ISignalAI ai2﹐﹐AIO_BETWEEN,1.5,0.5,0,int1;…..CONNECT int3 WITH iroutine3;ISignalAI ai3﹐﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單中斷功能在單次觸發後失效次觸發後失效中斷功能持續有效中斷功能持續有效﹐﹐只有在程序重置或運行只有在程序重置或運行IDelete後才失效後才失效2024/9/17 中斷指令中斷指令-ISignalAIRefValue:=CurrentValue 如果沒有參變量[\Dpos]與[\DNeg] ABS(CurrentValue-RefValue)>DeltaValue 如果使用參變量[\Dpos] (CurrentValue-RefValue)>DeltaValue 判斷中斷條件(Condition,HighValue,LowValue) 如果使用參變量[\DNeg] (RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentValue執行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2024/9/17 中斷指令中斷指令-ISignalAI限製限製﹕﹕l當前最大邏輯值當前最大邏輯值(HighValue)與最小邏輯值與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯必須是模擬量信號所定義的邏輯值範圍內值範圍內﹔﹔l最大邏輯值最大邏輯值(HighValue)必須大於最小邏輯值必須大於最小邏輯值(LowValue);l中斷復位差值中斷復位差值(DeltaValue)必須為正數或必須為正數或0﹔﹔l指令指令ISignalDI的限製的限製﹐﹐仍然適用仍然適用﹔﹔2024/9/17 中斷指令中斷指令-ISignalAOISingalAO [\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]: 單次中斷信號開關單次中斷信號開關 (switch)Signal: 觸發中斷信號觸發中斷信號 (singaldi)Condition: 中斷觸發狀態中斷觸發狀態 (aiotrigg)HighValue: 最大邏輯值最大邏輯值 (num)LowValue: 最小邏輯值最小邏輯值 (num)2024/9/17 中斷指令中斷指令-ISignalAOISingalAO [\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue: 中斷恢復差值中斷恢復差值 (num)[\DPos]: 正值中斷開關正值中斷開關 (switch)[\DNeg]: 負值中斷開關負值中斷開關 (switch)Interrupt: 中斷數據名稱中斷數據名稱 (intnum)2024/9/17 中斷指令中斷指令-ISignalAO中斷觸發狀態中斷觸發狀態﹕﹕AIO_ABOVE_HIGH 模擬量信號邏輯值大於最大邏輯值模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH 模擬量信號邏輯值小於最大邏輯值模擬量信號邏輯值小於最大邏輯值(HighValue)lAIO_ABOVE_LOW 模擬量信號邏輯值大於最小邏輯值模擬量信號邏輯值大於最小邏輯值(LowValue)lAIO_BELOW_LOW 模擬量信號邏輯值小於最小邏輯值模擬量信號邏輯值小於最小邏輯值(LowValue)lAIO_BETWEEN 模擬量信號邏輯值處於最小邏輯值模擬量信號邏輯值處於最小邏輯值(LowValue)和最大邏輯值和最大邏輯值(HighValue)之間之間2024/9/17 中斷指令中斷指令-ISignalAO中斷觸發狀態中斷觸發狀態﹕﹕lAIO_OUTSIDE 模擬量信號邏輯值大於最大邏輯值模擬量信號邏輯值大於最大邏輯值(HighValue) 或者小於最小邏輯值或者小於最小邏輯值(LowValue)lAIO_ALWAYS 總是觸發中斷總是觸發中斷﹐﹐與模擬量信號邏輯值處於最小邏輯與模擬量信號邏輯值處於最小邏輯值值(LowValue)與最大邏輯值與最大邏輯值(HighValue)無關無關應用應用﹕﹕ 使用相應的模擬量輸入信號觸發相應的中斷功使用相應的模擬量輸入信號觸發相應的中斷功能能﹐﹐必須同指令必須同指令CONNECT聯合使用聯合使用﹔﹔2024/9/17 中斷指令中斷指令-ISignalAO實例實例﹕﹕…..CONNECT int1 WITH iroutine1;ISignalAO\Single ao1﹐﹐AIO_BETWEEN,2,1,0,int1;…..CONNECT int2 WITH iroutine2;ISignalAO ao2﹐﹐AIO_BETWEEN,1.5,0.5,0,int1;…..CONNECT int3 WITH iroutine3;ISignalAO ao3﹐﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單中斷功能在單次觸發後失效次觸發後失效中斷功能持續有效中斷功能持續有效﹐﹐只有在程序重置或運行只有在程序重置或運行IDelete後才失效後才失效2024/9/17 中斷指令中斷指令-ISignalAORefValue:=CurrentValue 如果沒有參變量[\Dpos]與[\DNeg] ABS(CurrentValue-RefValue)>DeltaValue 如果使用參變量[\Dpos] (CurrentValue-RefValue)>DeltaValue 判斷中斷條件(Condition,HighValue,LowValue) 如果使用參變量[\DNeg] (RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentValue執行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2024/9/17 中斷指令中斷指令-ISignalAO限製限製﹕﹕l當前最大邏輯值當前最大邏輯值(HighValue)與最小邏輯值與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值必須是模擬量信號所定義的邏輯值範圍內範圍內﹔﹔l最大邏輯值最大邏輯值(HighValue)必須大於最小邏輯值必須大於最小邏輯值(LowValue);l中斷復位差值中斷復位差值(DeltaValue)必須為正數或必須為正數或0﹔﹔l指令指令ISignalDI的限製的限製﹐﹐仍然適用仍然適用﹔﹔2024/9/17 中斷指令中斷指令-ISleepISleep Interrupt;Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕ 使機器人相應中斷數據暫時失效使機器人相應中斷數據暫時失效﹐﹐直到直到執行指令執行指令IWatch後才恢復。

後才恢復2024/9/17 中斷指令中斷指令-ISleep實例實例﹕﹕…..CONNECT intInspect WITH rAlarmISingalDI di01_Vacuum,0,intInspect;…..ISleep intInspect;…..IWatch intInspect;…..中斷監控中斷監控中斷失效中斷失效中斷監控中斷監控Error Handler:lERR_UNKINO 無法找到當前的中斷數據無法找到當前的中斷數據2024/9/17 中斷指令中斷指令-IWatchIWatch Interrupt;Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕ 激活機器人已失效的相應中斷數據激活機器人已失效的相應中斷數據﹐﹐正正常情況下常情況下﹐﹐與指令與指令ISleep配合使用配合使用2024/9/17 中斷指令中斷指令-IWatch實例實例﹕﹕…..CONNECT intInspect WITH rAlarmISingalDI di01_Vacuum,0,intInspect;…..ISleep intInspect;…..IWatch intInspect;…..中斷監控中斷監控中斷失效中斷失效中斷監控中斷監控Error Handler:lERR_UNKINO 無法找到當前的中斷數據無法找到當前的中斷數據2024/9/17 中斷指令中斷指令-IDisableIWatch Interrupt;Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕ 使機器人相應中斷功能暫時不執行使機器人相應中斷功能暫時不執行﹐﹐直到執行直到執行IEnable後後﹐﹐才進入中斷處理程序才進入中斷處理程序﹐﹐此指令使用於機此指令使用於機器人正在執行不希望被打斷的操作其間器人正在執行不希望被打斷的操作其間﹐﹐例如例如﹕﹕通通過通信口讀寫數據。

過通信口讀寫數據2024/9/17 實例實例﹕﹕…..IDisable;FOR i FROM 1 TO DO character[i]:=ReadBin(sensor);ENDFORIEnable;…..中斷指令中斷指令-IDisable2024/9/17 中斷指令中斷指令-IEnableIEnable Interrupt;Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕ 開始執行被機器人暫停的相應中斷功能開始執行被機器人暫停的相應中斷功能﹐﹐正正常情況下常情況下﹐﹐與指令與指令IDisable配合使用配合使用﹐﹐此指令用於此指令用於機器人正在執行不希望被打斷的操作期間機器人正在執行不希望被打斷的操作期間﹐﹐例例如如﹕﹕通過通信口讀寫數據通過通信口讀寫數據2024/9/17 實例實例﹕﹕…..IDisable;FOR i FROM 1 TO DO character[i]:=ReadBin(sensor);ENDFORIEnable;…..中斷指令中斷指令-IEnable2024/9/17 中斷指令中斷指令-ITimerIWatch [\Single],Time,Interrupt;[\Single]: 單次中斷開關單次中斷開關 (switch)Time: 觸發中斷時間觸發中斷時間s (num)Interrupt: 中斷數據名稱中斷數據名稱 (intnum)應用應用﹕﹕定時處理機器人相應中斷數據定時處理機器人相應中斷數據﹐﹐此指令此指令 常使用於通過通信口讀寫數據等場合。

常使用於通過通信口讀寫數據等場合2024/9/17 中斷指令中斷指令-ITimer實例實例﹕﹕…..CONNECT timeint WITH check_serialch;ITimer 60,timeint;…..Trap check_serialch WriteBin ch1,buffer,1; IF ReadBin(ch1\Time:=5)<0 THEN TPWrite “Communication is broken”; EXIT; ENDIFENDTRAP2024/9/17 通信指令通信指令(人機對話人機對話)TPErase TPWriteTPReadFK TPReadNumErrWrite TPShow2024/9/17 TPErase;應用應用﹕﹕ 清屏指令清屏指令﹐﹐將機器人示教器屏幕上所有顯示將機器人示教器屏幕上所有顯示清除清除﹐﹐是機器人屏幕顯示重要組成部分是機器人屏幕顯示重要組成部分實例實例﹕﹕ TPErase; TPWrite “ABB Robotics”; TPWrite “_____________”;通信指令通信指令-TPErase2024/9/17 TPWrite String[\Num][\Bool] [\Pos][\Orient];String: 屏幕顯示的字符串。

屏幕顯示的字符串 (string)[\Num]: 屏幕顯示數字數據值屏幕顯示數字數據值 (num)[\Bool]: 屏幕顯示邏輯量數據屏幕顯示邏輯量數據 (bool)[\Pos]: 顯示位置顯示位置XYZ (pos)[\Orient]: 顯示方位顯示方位q1q2q3q4 (orient)應用應用﹕﹕ 在示教器屏幕上顯示相應字符串在示教器屏幕上顯示相應字符串﹐﹐字符串最長字符串最長80個字節個字節﹐﹐屏幕每行可顯示屏幕每行可顯示40個字節個字節﹐﹐在字符在字符串後可顯示相應參變量串後可顯示相應參變量通信指令通信指令-TPWrite2024/9/17 通信指令通信指令-TPWrite實例實例﹕﹕ TPWrite string1; TPWrite “Cycle Time= ”\Num:=nTime;限製限製﹕﹕l每個每個TPWrite指令只允許單獨使用參變量指令只允許單獨使用參變量﹐﹐不不允許同時使用允許同時使用﹔﹔l參變量值參變量值<0.000005或或>0.999995將圓整將圓整﹔﹔Argument Value Text string\num 23 “23”\num 1.141367 “1.141367”\bool TURE “TRUE”\Pos [1817.3,905.17,879.11] “[1817.3,905.17,879.11]”\Orient [0.96593,0,0.25882,0] “[0.96593,0,0.25882,0]”2024/9/17 通信指令通信指令-TPReadFK TPReadFK Answer,Text,FK1,FK2, FK3,FK4, FK5,[\MaxTime][\DIBreak][\BreakFlag]Answer: 數字賦值數字賦值1-5; (num)Text: 屏幕字符串屏幕字符串﹔﹔ (string)FKx: 功能鍵字符串功能鍵字符串﹔﹔ (string)[\MaxTime]: 最長等待時間最長等待時間s; (num)[\DIBreak]﹕﹕ 輸入信號控制輸入信號控制﹔﹔ (signaldi)[\BreakFlag]﹕﹕指令狀態控制指令狀態控制﹔﹔ (errnum)2024/9/17 通信指令通信指令-TPReadFK應用應用﹕﹕ 在示教器屏幕上顯示相應字符串在示教器屏幕上顯示相應字符串(Text),字符串字符串最長最長80個字節個字節﹐﹐屏幕每行可顯示屏幕每行可顯示40個字節個字節﹐﹐同時在同時在5個功能鍵上顯示相應字符串個功能鍵上顯示相應字符串(FKx)﹐﹐字符串最長字符串最長7個字節個字節﹐﹐通過選擇安相應的功能通過選擇安相應的功能鍵鍵﹐﹐給數字變量給數字變量(Answer)賦值賦值1-5﹐﹐通過這種通過這種功能功能﹐﹐當前指令可以進行數據選擇當前指令可以進行數據選擇﹐﹐但必須但必須有人參與有人參與﹐﹐無法達到自動化無法達到自動化﹐﹐已被輸入輸出已被輸入輸出信號代替信號代替﹐﹐另外另外﹐﹐在執行當前指令時在執行當前指令時﹐﹐必須必須等到功能鍵輸入等到功能鍵輸入﹐﹐才執行以后指令才執行以后指令﹐﹐除非選除非選擇相應參變量擇相應參變量﹐﹐通過這種功能通過這種功能﹐﹐當前指令常當前指令常用于錯誤處理等場合。

用于錯誤處理等場合2024/9/17 通信指令通信指令-TPReadFK實例實例﹕﹕ TPReadFK reg1,”more?”,stEmpty,stEmpty,stEmpty, “yes”,”no”;2024/9/17 通信指令通信指令-TPReadFK參變量參變量﹕﹕l[\MaxTime] 機器人執行當前指令等待時間超過最長等待時間機器人執行當前指令等待時間超過最長等待時間﹐﹐機器人將停機報錯機器人將停機報錯﹐﹐如果同時采用參變量如果同時采用參變量[\BreakFlag]﹐﹐機器人將繼續執行以后指令機器人將繼續執行以后指令﹐﹐并且給并且給出相應錯誤數據出相應錯誤數據﹔﹔l[\DIBreak] 機器人通過輸入信號來繼續執行以后指令機器人通過輸入信號來繼續執行以后指令﹐﹐并且給并且給出相應錯誤數據出相應錯誤數據﹔﹔l[\BreakFlag]--ERR_TP_MAXTIME--ERR_TP_DIBREAK2024/9/17 通信指令通信指令-TPReadNum TPReadNum Answer,String,[\MaxTime] [\DIBreak][\BreakFlag]Answer: 數字賦值數字賦值1-5; (num)String: 屏幕字符串屏幕字符串﹔﹔ (string)[\MaxTime]: 最長等待時間最長等待時間s; (num)[\DIBreak]﹕﹕ 輸入信號控制輸入信號控制﹔﹔ (signaldi)[\BreakFlag]﹕﹕指令狀態控制指令狀態控制﹔﹔ (errnum)2024/9/17 通信指令通信指令-TPReadNum應用應用﹕﹕ 在示教器屏幕上顯示相應字符串在示教器屏幕上顯示相應字符串(String),字符串最字符串最長長80個字節個字節﹐﹐屏幕每行可顯示屏幕每行可顯示40個字節個字節﹐﹐同時同時在功能鍵上顯示在功能鍵上顯示OK﹐﹐通過數字鍵輸入相應數值通過數字鍵輸入相應數值﹐﹐給數字變量給數字變量(Answer)賦值賦值﹐﹐通過這種功能通過這種功能﹐﹐當當前指令可以進行數字數據賦值前指令可以進行數字數據賦值﹐﹐但是必須有人參但是必須有人參與與﹐﹐無法達到自動化無法達到自動化﹐﹐已被輸入輸出指令替代。

已被輸入輸出指令替代實例實例﹕﹕ TPReadNum reg1,”How many units?” FOR I FROM 1 TO reg1 DO produce_part; ENDFOR 2024/9/17 參變量參變量﹕﹕l[\MaxTime] 機器人執行當前指令等待時間超過最長等待時間機器人執行當前指令等待時間超過最長等待時間﹐﹐機器人將停機報錯機器人將停機報錯﹐﹐如果同時采用參變量如果同時采用參變量[\BreakFlag]﹐﹐機器人將繼續執行以后指令機器人將繼續執行以后指令﹐﹐并且給并且給出相應錯誤數據出相應錯誤數據﹔﹔l[\DIBreak] 機器人通過輸入信號來繼續執行以后指令機器人通過輸入信號來繼續執行以后指令﹐﹐并且給并且給出相應錯誤數據出相應錯誤數據﹔﹔l[\BreakFlag]--ERR_TP_MAXTIME--ERR_TP_DIBREAK通信指令通信指令-TPReadNum2024/9/17 通信指令通信指令-ErrWrite ErrWrite [\W],Header,Reason [\RL2][\RL3] [\RL4],[\W]: 事件記錄開關事件記錄開關﹔﹔ (switch)Header: 錯誤信息標題錯誤信息標題 (string)Reason: 錯誤信息原因錯誤信息原因 (string)[\RL2]: 附加錯誤信息原因附加錯誤信息原因 (string) [\RL3]: 附加錯誤信息原因附加錯誤信息原因 (string)[\RL4]: 附加錯誤信息原因附加錯誤信息原因 (string)2024/9/17 應用應用﹕﹕ 在示教器屏幕上顯示標准出錯截面在示教器屏幕上顯示標准出錯截面﹐﹐錯誤代錯誤代碼為碼為80001﹐﹐標題最長標題最長24個字符個字符﹐﹐原因最長原因最長40個字符個字符﹐﹐如果由多種錯誤原因如果由多種錯誤原因﹐﹐可使用參可使用參變量變量[\RL2] [\RL3] [\RL4],每種原因最長每種原因最長40個字個字符符﹐﹐使用參變量使用參變量[\W],錯誤代碼為錯誤代碼為80002﹐﹐并并且只在事件清單中記錄且只在事件清單中記錄﹐﹐不中示教器屏幕上不中示教器屏幕上顯示顯示﹐﹐當前指令只顯示或記錄出錯信息當前指令只顯示或記錄出錯信息﹐﹐不不影響機器人正常運行影響機器人正常運行﹐﹐在示教器屏幕上顯示在示教器屏幕上顯示的信息的信息﹐﹐需要按功能鍵需要按功能鍵OK確認并清除確認并清除﹐﹐如果如果需要影響機器人運行需要影響機器人運行﹐﹐使用指令使用指令Stop﹑﹑EXIT﹑﹑TRReadFK等等 。

通信指令通信指令-ErrWrite2024/9/17 通信指令通信指令-ErrWrite實例實例﹕﹕ ….. ErrWrite\W,”Search error”,”No hit for the first search”; ErrWrite\W,”PLC error”,”Fatal error in PLC”\RL2:=“Call service”; …..限制限制﹕﹕l每個每個ErrWrite指令最多能顯示指令最多能顯示145個字節個字節﹔﹔ (Header+Reason+\RL2+\RL3+RL4)2024/9/17 通信指令通信指令-TPShow TPShow Window;Window:顯示相應示教器窗口顯示相應示教器窗口﹔﹔ (tpnum)lTP_PROGRAM 自動模式下自動模式下﹐﹐顯示生產窗口顯示生產窗口﹔﹔ 手動模式下手動模式下﹐﹐顯示測試窗口顯示測試窗口﹔﹔lTP_LATEST 顯示當前窗口的前一個窗口顯示當前窗口的前一個窗口﹔﹔lTP_SCREENVIEWER 顯示顯示Screen Viewer窗口窗口﹐﹐需要相應軟件需要相應軟件﹔﹔2024/9/17 通信指令通信指令-TPShow應用應用﹕﹕ 機器人在示教器屏幕上顯示相應截面機器人在示教器屏幕上顯示相應截面﹐﹐通常通常情況下與機器人附加軟件情況下與機器人附加軟件Screen Viewer配配合使用。

合使用實例實例﹕﹕ ….. TPShow TP_PROGRAM; TPShow TP_TEST2024/9/17 程序流程指令程序流程指令FOR WaitUntilWaitTime Compact IFIF TESTWHILE GOTOLable2024/9/17 程序流程指令程序流程指令-FOR FOR Loop counter FROM Start value TO End value [STEP step value] DO ….. ENDFOR;Loop counter: 循環計數標識循環計數標識﹔﹔ (Identifier)Start value: 標識初始值標識初始值﹔﹔ (num)End value: 標識最終值標識最終值﹔﹔ (num)[Step value]: 計數更改值計數更改值﹔﹔ (num)2024/9/17 程序流程指令程序流程指令-FOR應用應用﹕﹕ 當前指令通過循環判斷標識從初始值逐漸更當前指令通過循環判斷標識從初始值逐漸更改至最終值改至最終值﹐﹐從而控制相應循環次數從而控制相應循環次數﹐﹐如果如果不使用參變量不使用參變量[Step],循環標識每次更改值為循環標識每次更改值為1﹐﹐如果使用參變量如果使用參變量[Step],循環標識每次更循環標識每次更改值為參變量相應設置改值為參變量相應設置﹐﹐通常情況下通常情況下﹐﹐初始初始值值﹐﹐最終值與更改值為整數最終值與更改值為整數﹐﹐循環判斷標識循環判斷標識使用使用ijk等小寫字母等小寫字母﹐﹐是標準的機器人循環指是標準的機器人循環指令令﹐﹐常在通訊口讀寫常在通訊口讀寫﹐﹐數組數據賦值等數據數組數據賦值等數據處理時使用。

處理時使用2024/9/17 程序流程指令程序流程指令-FOR實例實例﹕﹕ FOR i FROM 1TO 10 DO routine1; ENDFOR FOR i FROM 10 TO 2 STEP -1 DO a{i}:=a{i-1}; ENDFOR PROC ResetCount( ) FOR i FROM 1 TO 20 DO FOR j FROM 1 TO 2 DO nCount{i,j}:=0; ENDFOR ENDFOR ENDPROC2024/9/17 程序流程指令程序流程指令-FOR限製限製﹕﹕l循環標識只能自動更改循環標識只能自動更改﹐﹐不允許賦值不允許賦值﹔﹔l在程序循環內在程序循環內﹐﹐循環標識可以作為數字數據循環標識可以作為數字數據(num)使用使用﹐﹐但只能讀取相應值但只能讀取相應值﹐﹐不允許賦不允許賦值值﹔﹔l如果循環標識如果循環標識﹑﹑初始值初始值﹑﹑最終值與更改值使最終值與更改值使用小數形式用小數形式﹐﹐必須為精確值必須為精確值﹔﹔2024/9/17 程序流程指令程序流程指令-WaitUntil WaitUntil [\InPos],Cond [\MaxTime][\TimeFlag][\InPos]: 提前量開關提前量開關﹔﹔ (switch)Cond: 判斷條件判斷條件﹔﹔ (bool)[\MaxTime]:最長等待時間最長等待時間s; (num)[\TimeFlag]:超時邏輯量超時邏輯量﹔﹔ (bool)2024/9/17 程序流程指令程序流程指令-WaitUntil應用應用﹕﹕ 當前指令用於等待滿足相應判斷條件後當前指令用於等待滿足相應判斷條件後﹐﹐才才執行以後指令執行以後指令﹐﹐使用參變量使用參變量[\InPos],機器人機器人及其外軸必須在完全停止的情況下及其外軸必須在完全停止的情況下﹐﹐才進行才進行條件判斷條件判斷﹐﹐此指令比指令此指令比指令WaitDI的功能更廣的功能更廣﹐﹐可以替代其所有功能可以替代其所有功能﹔﹔限製限製﹕﹕l當前指令在使用參變量當前指令在使用參變量[\InPos]時時﹐﹐遇到程遇到程序突然停止運行序突然停止運行﹐﹐機器人不能其保証停在最機器人不能其保証停在最終停止點進行條件判斷。

終停止點進行條件判斷2024/9/17 實例實例﹕﹕ PROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; (WaitDI di_Ready,1;) …..ENDPROCPROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitUntil nCounter=4\MaxTime:=5; …..ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite “…..”; RETRY; ELSE RAISE; ENDIFENDPROC 機器人等待輸入信號機器人等待輸入信號﹐﹐直直到信號到信號di_Ready值為值為1﹐﹐才執行隨後指令才執行隨後指令機器人等待相應輸機器人等待相應輸入信號入信號﹐﹐如果如果5秒內秒內仍沒有得到相應數仍沒有得到相應數據值據值4﹐﹐自動進行自動進行Error Handler處處理理﹐﹐如果沒有如果沒有Error Handler ,機器人機器人停機報錯停機報錯程序流程指令程序流程指令-WaitUntil2024/9/17 實例實例﹕﹕PROC PickPart( ) MoveJ pPrePick,vFastEmpty,zBig,tool1; bTimeout:=TRUE; nCounter:=0; WHILE bTimeout DO IF nCounter>3 THEN TPWrite “…..”; ENDIF IF nCounter>30 THEN Stop; ENDIF WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeOut;Incr nCounter; ENDWHOLE …..ENDPROC機器等待到位信號機器等待到位信號﹐﹐如果如果1秒秒內仍沒有等到信號內仍沒有等到信號di_Ready值為值為1﹐﹐機器人執行隨後指令機器人執行隨後指令﹐﹐但此時但此時TimeFlag值為值為TRUE﹐﹐機器人等到機器人等到di_Ready值為值為1﹐﹐此時此時TimeFlag值為值為FALSE程序流程指令程序流程指令-WaitUntil2024/9/17 程序流程指令程序流程指令-WaitTime WaitTime [\InPos],Time;[\InPos]: 程序運行提前量開關程序運行提前量開關﹔﹔ (switch)Time: 相應等待時間相應等待時間s; (num)應用應用﹕﹕ 當前指令只用於機器人等待相應時間後當前指令只用於機器人等待相應時間後﹐﹐才才執行以後指令執行以後指令﹐﹐使用參變量使用參變量[\InPos]﹐﹐機器機器人及其外軸必須在完全停止的情況下人及其外軸必須在完全停止的情況下﹐﹐才進才進行等待時間計時行等待時間計時﹐﹐此指令會延長循環時間此指令會延長循環時間﹔﹔2024/9/17 程序流程指令程序流程指令-WaitTime實例實例﹕﹕ WaitTime 3; WaitTime\Inpos, 0.5; WaitTime\InPos,0;限製限製﹕﹕l當前指令在使用參變量當前指令在使用參變量[\InPos]時時﹐﹐遇到程遇到程序突然停止運行序突然停止運行﹐﹐機器人不能保証停在最終機器人不能保証停在最終停止點進行等待計時停止點進行等待計時﹔﹔l當前指令參變量當前指令參變量[\InPos]不能與機器人指令不能與機器人指令SoftServo同時使用。

同時使用2024/9/17 程序流程指令程序流程指令-Compact IF IF Condition…..;Condition: 判斷條件判斷條件﹔﹔ (switch)應用應用﹕﹕ 當前指令是指令當前指令是指令IF的簡化版的簡化版﹐﹐判斷條件後只判斷條件後只允許跟一句指令允許跟一句指令﹐﹐如果有多句指令需要執行如果有多句指令需要執行﹐﹐必須采用指令必須采用指令IF﹔﹔實例實例﹕﹕ IF reg1>5 GOTO next IF counter>10 set do1;2024/9/17 程序流程指令程序流程指令- IF IF Condition….. THEN {ELSEIF Condition THEN…..} [\ELSE…..] ENDIF;Condition: 判斷條件判斷條件﹔﹔ (switch)應用應用﹕﹕ 當前指令通過判斷相應條件當前指令通過判斷相應條件﹐﹐控制需要執行控制需要執行的相應指令的相應指令﹐﹐是機器人程序流程基本指令是機器人程序流程基本指令﹔﹔2024/9/17 程序流程指令程序流程指令- IF實例實例﹕﹕ IF reg1>5 THEN Set do1; Set do2; ENDIF IF reg1>5 THEN Set do1; Set do2; ELSE Reset do1; Reset do2; ENDIF IF reg2=1 THEN routine1; ELSEIF reg2=2 THEN rountin2; ELSEIF reg2=3 THEN rountine3; ELSEIF reg2=4 THEN rountine4; ELSE error; ENDIF2024/9/17 程序流程指令程序流程指令- TEST TEST Test date {CASE Test value ,{Test value}:…} [DEFAULT:….} ENDTESTTest date: 判斷數據變量判斷數據變量﹔﹔ (All)Test value: 判斷數據值判斷數據值﹔﹔ (same as)應用應用﹕﹕ 當前指令通過判斷相應數據變量與其所對應當前指令通過判斷相應數據變量與其所對應的值的值﹐﹐控制需要執行的相應指令控制需要執行的相應指令﹔﹔2024/9/17 實例實例﹕﹕ TEST reg2 CASE 1: routine1; CASE 2: routine2; CASE 3: routine3; CASE 4﹑﹑5: routine9; DEFAULT: Error ENDTEST IF reg2=1 THEN routine1; ELSEIF reg2=2 THEN rountin2; ELSEIF reg2=3 THEN rountine3; ELSEIF reg2=4 or reg2=5 THEN rountine4; ELSE error; ENDIF程序流程指令程序流程指令- TEST2024/9/17 程序流程指令程序流程指令- GOTO GOTO LabelLabel: 程序執行位置標簽程序執行位置標簽﹔﹔ (Identifier)應用應用﹕﹕ 當前指令必須與指令當前指令必須與指令Label同時使用同時使用﹐﹐執行執行當前指令後當前指令後﹐﹐機器人將從相應標簽位置機器人將從相應標簽位置Label處繼續運行程序指令處繼續運行程序指令﹔﹔2024/9/17 程序流程指令程序流程指令- GOTO實例實例﹕﹕ IF reg1>100 GOTO highvalue lowvalue; ….. GOTO ready; highvalue; ….. ready: ….. reg1:=1; next: reg1:=reg1+1; IF reg1<=5 GOTO next;2024/9/17 程序流程指令程序流程指令- GOTO限製限製﹕﹕l只能使用當前指令跳至同一例行程序內相應只能使用當前指令跳至同一例行程序內相應的位置標簽的位置標簽Label;l如果相應位置標簽如果相應位置標簽Label處於指令處於指令TEST或或IF內內﹐﹐相應指令相應指令GOTO必須同處於相同的判斷必須同處於相同的判斷指令內或其分支內指令內或其分支內﹔﹔l如果相應位置標簽如果相應位置標簽Label處於指令處於指令WHILE或或FOR內內﹐﹐相應指令相應指令GOTO必須同處於相同循必須同處於相同循環指令內環指令內﹔﹔2024/9/17 程序流程指令程序流程指令- Label LabelLabel: 程序執行位置標簽程序執行位置標簽﹔﹔ (Identifier)應用應用﹕﹕ 當前指令必須與指令當前指令必須與指令GOTO同時使用同時使用﹐﹐執行執行當前指令當前指令GOTO後後﹐﹐機器人將從相應標簽位機器人將從相應標簽位置置Label處繼續運行程序指令處繼續運行程序指令﹔﹔當前指令用當前指令用后后﹐﹐程序內不會顯示程序內不會顯示Label字樣字樣﹐﹐直接顯示直接顯示相應標簽。

相應標簽2024/9/17 程序流程指令程序流程指令- Label實例實例﹕﹕ IF reg1>100 GOTO highvalue lowvalue; ….. GOTO ready; highvalue; ….. ready: …..限制限制:l在同一例行程序內在同一例行程序內﹐﹐程序位置標簽程序位置標簽Label的名的名稱必須唯一稱必須唯一2024/9/17 程序流程指令程序流程指令-WHILE WHILE Condition DO … ENDWHILE …Condition: 判斷條件判斷條件﹔﹔ (bool)應用應用﹕﹕ 當前指令通過判斷相應條件當前指令通過判斷相應條件﹐﹐如果符合判斷如果符合判斷條件執行循環內指令條件執行循環內指令﹐﹐直至判斷條件不滿足直至判斷條件不滿足才跳出循環指令才跳出循環指令﹐﹐繼續執行循環指令以后的繼續執行循環指令以后的指令指令﹐﹐需要注意需要注意﹐﹐當前指令存在死循環當前指令存在死循環2024/9/17 實例實例﹕﹕ WHILE reg1

故障的指令進行再次運行限制限制﹕﹕l通過當前指令對所發生故障的指令進行再次通過當前指令對所發生故障的指令進行再次運行連續運行連續4次嘗試后次嘗試后﹐﹐故障仍無法解決故障仍無法解決﹐﹐機器機器人將停止運行人將停止運行﹐﹐示教器顯示錯誤信息示教器顯示錯誤信息ERR_EXCRTYMAX2024/9/17 故障處理指令故障處理指令-TRYNEXT2024/9/17 TRYNEXT;應用應用﹕﹕ 當前指令只用于機器人故障處理程序當前指令只用于機器人故障處理程序ErrorHandler內內﹐﹐經過故障處理后經過故障處理后﹐﹐跳過發跳過發生故障的指令繼續運行程序生故障的指令繼續運行程序故障處理指令故障處理指令-TRYNEXT2024/9/17 RAISE [Error no.];[Error no.]: 錯誤信息編號錯誤信息編號﹔﹔ (errnum)應用應用﹕﹕ 當前指令如果不使用參變量當前指令如果不使用參變量﹐﹐只用于機器人只用于機器人故障處理程序故障處理程序ErrorHandler內內﹐﹐經過故障處經過故障處理后理后﹐﹐跳至上一層例行程序故障處理程序內跳至上一層例行程序故障處理程序內﹐﹐繼續運行故障處理繼續運行故障處理﹐﹐如果使用參變量如果使用參變量﹐﹐只只用于例行程序內用于例行程序內﹐﹐直接進入當前例行程序故直接進入當前例行程序故障處理程序進行障處理程序進行 處理。

處理故障處理指令故障處理指令-RAISE2024/9/17 限制限制﹕﹕l參變量錯誤代碼范圍為參變量錯誤代碼范圍為1-90﹐﹐超出范圍超出范圍﹐﹐示示教器顯示錯誤信息教器顯示錯誤信息ERR_ILLRAISE﹔﹔l如果需要更多的錯誤代碼如果需要更多的錯誤代碼﹐﹐超出超出1-90﹐﹐必須必須使用機器人指令使用機器人指令BookErrNo.故障處理指令故障處理指令-RAISE2024/9/17 RETURN [Return value];[Return value] : 返回時間值返回時間值﹔﹔ (all)應用應用﹕﹕ 當前指令如果使用參變量當前指令如果使用參變量﹐﹐只用于機器人函只用于機器人函數例行程序內數例行程序內﹐﹐經過運行返回相應的值經過運行返回相應的值﹐﹐通通常情況下常情況下﹐﹐在不使用參變量時在不使用參變量時﹐﹐機器人運行機器人運行到此指令時到此指令時﹐﹐無論主程序無論主程序main ,標准例行程標准例行程序序PROC﹐﹐中斷例行程序中斷例行程序TRAP﹐﹐故障處理故障處理程序程序ErrorHandler 都代表當前例行程序結束都代表當前例行程序結束。

故障處理指令故障處理指令-RETURN2024/9/17 故障處理指令故障處理指令-RETURN2024/9/17 故障處理指令故障處理指令-RETURN實例實例﹕﹕ PROC rPick ( ) … RETURN; … ENDPROC FUNC num abs_value( num value) IF value<0 THEN RETURN -value; ELSE RETURN value; ENDIF ENDFUNC2024/9/17 中斷運動指令中斷運動指令StopMove StartMoveStorePath RestoPath2024/9/17 中斷運動指令中斷運動指令-StopMove StopMove應用應用﹕﹕ 當前指令使機器人運動臨時停止當前指令使機器人運動臨時停止﹐﹐直到運行直到運行指令指令StartMove后后﹐﹐才繼續恢復被臨時停止才繼續恢復被臨時停止的運動的運動﹐﹐此指令通常被用于處理牽涉到機器此指令通常被用于處理牽涉到機器人運動的中斷程序。

人運動的中斷程序實例實例﹕﹕ StopMove; WaitDI ready_input,1; StartMove;2024/9/17 中斷運動指令中斷運動指令-StopMove實例實例﹕﹕ … CONNECT intno1 WITH go_to_home_pos; ISignalDI di1,1,intno1; …TRAP go_to_home_pos StorePath; p10:=CRobT( ) MoveL Home,v500,fine,tool1; WaitDI di1,0; MoveL p10,v500,fine,tool1; RestoPath; StartMove;ENDTRAP 機器人完成當前運動指機器人完成當前運動指令后停止運動令后停止運動﹐﹐并記錄并記錄運動路徑運動路徑﹐﹐在在Home位位置等待置等待di1為為0后后﹐﹐繼續繼續原運動狀態原運動狀態﹔﹔機器人臨時停止運機器人臨時停止運動動﹐﹐并記錄運動路并記錄運動路徑徑﹐﹐在在Home位置位置等待等待di1為為0后后﹐﹐繼繼續原運動狀態。

續原運動狀態2024/9/17 中斷運動指令中斷運動指令-StartMove StartMove應用應用﹕﹕ 當前指令必須與指令當前指令必須與指令StopMove聯合使用聯合使用﹐﹐使機器使機器人臨時停止的運動恢復人臨時停止的運動恢復﹐﹐此指令通常被用于處理牽此指令通常被用于處理牽涉到機器人運動的中斷程序涉到機器人運動的中斷程序實例實例﹕﹕ StopMove; WaitDI ready_input,1; StartMove;Error HandlinglERR_PATHDIST偏離原來路徑偏離原來路徑(大于大于10mm或或20度度)2024/9/17 中斷運動指令中斷運動指令-StorePath StorePath應用應用﹕﹕ 當前指令用來記錄機器人當前運動狀態當前指令用來記錄機器人當前運動狀態﹐﹐通通常與指令常與指令RestoPath聯合使用聯合使用﹐﹐此指令通常此指令通常被用于處理牽涉到機器人運動的中斷程序被用于處理牽涉到機器人運動的中斷程序限制限制﹕﹕l當前指令只能用來記錄機器人運動路徑當前指令只能用來記錄機器人運動路徑﹔﹔l機器人臨時停止后機器人臨時停止后﹐﹐需要執行新的運動需要執行新的運動﹐﹐必須記錄當必須記錄當前運動路徑前運動路徑﹔﹔l機器人系統只能記錄一個運動路徑機器人系統只能記錄一個運動路徑﹔﹔2024/9/17 實例實例﹕﹕TRAP go_to_home_pos StorePath; p10:=CRobT( ) MoveL Home,v500,fine,tool1; WaitDI di1,0; MoveL p10,v500,fine,tool1; RestoPath; StartMove;ENDTRAP 機器人臨時停止機器人臨時停止運動運動﹐﹐并記錄運并記錄運動路徑動路徑﹐﹐在在Home位置等待位置等待di1為為0后后﹐﹐繼續原運動狀繼續原運動狀態。

態中斷運動指令中斷運動指令-StorePath2024/9/17 中斷運動指令中斷運動指令-RestoPath RestoPath應用應用﹕﹕ 當前指令用來恢復已經被記錄的機器人運動當前指令用來恢復已經被記錄的機器人運動狀態狀態﹐﹐必須與指令必須與指令StorePath聯合使用聯合使用﹐﹐此此指令通常被用于機器人錯誤處理與處理牽涉指令通常被用于機器人錯誤處理與處理牽涉到運動的中斷程序到運動的中斷程序限制限制﹕﹕l當前指令只能用來恢復機器人運動路徑當前指令只能用來恢復機器人運動路徑﹔﹔l機器人臨時停止后機器人臨時停止后﹐﹐需要執行新的運動需要執行新的運動﹐﹐必須記錄當必須記錄當前運動路徑前運動路徑﹔﹔l機器人系統只能記錄一個運動路徑機器人系統只能記錄一個運動路徑﹔﹔2024/9/17 實例實例﹕﹕TRAP go_to_home_pos StorePath; p10:=CRobT( ) MoveL Home,v500,fine,tool1; WaitDI di1,0; MoveL p10,v500,fine,tool1; RestoPath; StartMove;ENDTRAP 機器人臨時停止機器人臨時停止運動運動﹐﹐并記錄運并記錄運動路徑動路徑﹐﹐在在Home位置等待位置等待di1為為0后后﹐﹐繼續原運動狀繼續原運動狀態。

態中斷運動指令中斷運動指令-RestoPath2024/9/17 坐標轉換指令坐標轉換指令PDispOn PDispOffPDispSet EOffsOnEOffsOff EOffsSet2024/9/17 坐標轉換指令坐標轉換指令-PDispOn PDispOn [\Rot][\ExeP] ProgPoint, Tool[\Wobj];[\Rot]: 坐標旋轉開關坐標旋轉開關﹐﹐ (switch)[\Exep]: 運行起始點運行起始點﹐﹐ (robtarget)ProgPoint:坐標原始點坐標原始點﹐﹐ (robtarget)Tool: 工具坐標系工具坐標系﹐﹐ (Tooldate)[\Wobj]: 工件坐標系工件坐標系﹐﹐ (wobjdate)應用應用﹕﹕ 當前指令可以使機器人坐標通過編程進行即時當前指令可以使機器人坐標通過編程進行即時轉換轉換﹐﹐通常用于水切割等運動軌跡保持不變的通常用于水切割等運動軌跡保持不變的場合場合﹐﹐可以快捷的完成工作位置修正。

可以快捷的完成工作位置修正2024/9/17 坐標轉換指令坐標轉換指令-PDispOn原始坐標原始坐標MoveL p10,v500,z10,tool1;PDispOn\Exep:=p10,p20,tool1;轉換后坐標轉換后坐標原始坐標原始坐標轉換后坐標轉換后坐標MoveL p10,v500,fine\Inpos:=inpos50,tool;PDispOn\Rot\Exep:=p10,p20,tool1;2024/9/17 坐標轉換指令坐標轉換指令-PDispOnPROC draw_square( ) PDispOn,*,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; PDispOff;ENDPROCMoveL p10,v500,fine\Inpos:=inpos50,tool1;Draw_square;MoveL p20,v500,fine\Inpos:=inpos50,tool1;Draw_square;MoveL p30,v500,fine\Inpos:=inpos50,tool1;Drar_square; 不使用參變量不使用參變量[\Exep],機器人機器人默認為當前點默認為當前點p20p30p102024/9/17 坐標轉換指令坐標轉換指令-PDispOn實例實例﹕﹕ SearchL sen1,psearch,p10,v100,tool1; PDispOn\Exep:=psearch,*,tool1;限制限制﹕﹕●當前指令在使用后當前指令在使用后 ﹐﹐機器人坐標將被轉換機器人坐標將被轉換﹐﹐直到使用指令直到使用指令PDispOff后才失效后才失效﹔﹔●在下列情況下在下列情況下﹐﹐機器人坐標轉換功能將自動機器人坐標轉換功能將自動失效失效--機器人系統冷啟動機器人系統冷啟動--載入新機器人程序載入新機器人程序--程序重置程序重置2024/9/17 坐標轉換指令坐標轉換指令-PDispOff PDispOff 應用應用﹕﹕ 當前指令用于使機器人通過編程達到的坐標轉當前指令用于使機器人通過編程達到的坐標轉換功能失效換功能失效﹐﹐必須于指令必須于指令PDispOn或或PDispSet同時使用。

同時使用實例實例﹕﹕ MoveL p10,v500,z10,tool1; PDispOn\Exep:=p10,p11,tool1; MoveL p20,v500,z10,tool1; MoveL p30,v500,z10,tool1; PDispOn MoveL p50,v500,z10,tool1;坐標轉換指令失效坐標轉換指令失效坐標轉換指令生效坐標轉換指令生效坐標轉換指令失效坐標轉換指令失效2024/9/17 坐標轉換指令坐標轉換指令-PDispSet PDispSet DispFrameDispFrame: 坐標偏差量坐標偏差量 ( pose)應用應用﹕﹕ 當前指令通過輸入坐標偏差量當前指令通過輸入坐標偏差量﹐﹐使機器人坐標使機器人坐標通過編程進行即時轉換通過編程進行即時轉換﹐﹐通常用于水切割等運通常用于水切割等運行軌跡保持不變的場合行軌跡保持不變的場合﹐﹐可以快捷的完成工作可以快捷的完成工作位置修正位置修正2024/9/17 坐標轉換指令坐標轉換指令-PDispSet實例實例﹕﹕ VAR pose xp100:=[[100,0,0],[1,0,0,0]; MoveL p10,v500,z10,tool1; PDispSet xp100; MoveL p20,v500,z10,tool1; PDispOff MoveL p30,v500,z10,tool1;坐標轉換指令失效坐標轉換指令失效坐標轉換指令生效坐標轉換指令生效坐標轉換指令失效坐標轉換指令失效轉換后坐標轉換后坐標原始坐標原始坐標100YX2024/9/17 坐標轉換指令坐標轉換指令-PDispSet限制限制﹕﹕●當前指令在使用后當前指令在使用后 ﹐﹐機器人坐標將被轉換機器人坐標將被轉換﹐﹐直到使用指令直到使用指令PDispOff后才失效后才失效﹔﹔●在下列情況下在下列情況下﹐﹐機器人坐標轉換功能將自動機器人坐標轉換功能將自動失效失效--機器人系統冷啟動機器人系統冷啟動--載入新機器人程序載入新機器人程序--程序重置程序重置(Start From Beginning)2024/9/17 坐標轉換指令坐標轉換指令-EOffsOff EOffsOff 應用應用﹕﹕ 當前指令用于使機器人通過編程達到的外軸位當前指令用于使機器人通過編程達到的外軸位置更改功能失效置更改功能失效﹐﹐必須于指令必須于指令EOffsOn或或EOffsSet同時使用。

同時使用實例實例﹕﹕ MoveL p10,v500,z10,tool1; EOffsOn\Exep:=p10,p11,tool1; MoveL p20,v500,z10,tool1; MoveL p30,v500,z10,tool1; EOffsOff; MoveL p50,v500,z10,tool1;外軸位置更改失效外軸位置更改失效外軸位置更改生效外軸位置更改生效外軸位置更改失效外軸位置更改失效2024/9/17 坐標轉換指令坐標轉換指令-EOffsOn PDispOn [\ExeP]ProgPoint;[\Exep]: 運行起始點運行起始點﹐﹐ (robtarget)ProgPoint:坐標原始點坐標原始點﹐﹐ (robtarget) 應用應用﹕﹕ 當前指令可以使機器人外軸通過編程進行即時當前指令可以使機器人外軸通過編程進行即時更改更改﹐﹐帶導軌的機器人帶導軌的機器人實例實例﹕﹕ SearchL sen1,psearch,p10,v100,tool1; PDispOn\Exep:=psearch,*,tool1; EOffsOn\Exep:=psearch,*;2024/9/17 坐標轉換指令坐標轉換指令-EOffsOn限制限制﹕﹕●當前指令在使用后當前指令在使用后 ﹐﹐機器人外軸位置將被更機器人外軸位置將被更改改﹐﹐直到使用指令直到使用指令EOffsOff后才失效后才失效﹔﹔●在下列情況下在下列情況下﹐﹐機器人坐標轉換功能將自動機器人坐標轉換功能將自動失效失效--機器人系統冷啟動機器人系統冷啟動--載入新機器人程序載入新機器人程序--程序重置程序重置(Start From Beginning)2024/9/17 坐標轉換指令坐標轉換指令-EOffsSet EOffsSet EAxOffs;EAxOffs: 外軸位置偏差量外軸位置偏差量 ( extjoint)應用應用﹕﹕ 當前指令通過輸入外軸位置偏差量當前指令通過輸入外軸位置偏差量﹐﹐使機器人使機器人外軸位置通過編程進行即時更改外軸位置通過編程進行即時更改﹐﹐對于導軌類對于導軌類外軸外軸﹐﹐偏差值單位為偏差值單位為mm,對于轉軸類外軸對于轉軸類外軸﹐﹐偏偏差值單位為角度。

差值單位為角度2024/9/17 實例實例﹕﹕ VAR extjoint eax_a_p100:=[[100,0,0,0,0]; MoveL p10,v500,z10,tool1; EOffsSet eax_a_p100;; MoveL p20,v500,z10,tool1; EOffsOff; MoveL p30,v500,z10,tool1;外軸位置更改失效外軸位置更改失效外軸位置更改生效外軸位置更改生效外軸位置更改失效外軸位置更改失效轉換后外軸位置轉換后外軸位置原始外軸位置原始外軸位置0100坐標轉換指令坐標轉換指令-EOffsSet02024/9/17 坐標轉換指令坐標轉換指令-EOffsSet限制限制﹕﹕●當前指令在使用后當前指令在使用后 ﹐﹐機器人外軸位置將被更機器人外軸位置將被更改改﹐﹐直到使用指令直到使用指令EOffsOff后才失效后才失效﹔﹔●在下列情況下在下列情況下﹐﹐機器人坐標轉換功能將自動機器人坐標轉換功能將自動失效失效--機器人系統冷啟動機器人系統冷啟動--載入新機器人程序載入新機器人程序--程序重置程序重置(Start From Beginning)2024/9/17 運動觸發指令運動觸發指令TriggIO TriggIntTriggEquipp TriggJTriggL TriggC2024/9/17 運動觸發指令運動觸發指令-TriggIO TriggIO TriggDate,Distance [\Start][\Time][\Dop][\Gop] [\Aop][\ProcID],SetValue,[\DODelay];[\TriggDate]: 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)Distance: 觸發距離觸發距離mm﹐﹐ (num)[\Start]: 觸發起始開關觸發起始開關﹐﹐ (switch)[\Time]: 時間觸發開關時間觸發開關﹐﹐ (switch)[\DOp]: 觸發數字輸出觸發數字輸出﹐﹐ (signaldo)2024/9/17 運動觸發指令運動觸發指令-TriggIO TriggIO TriggDate,Distance [\Start][\Time][\Dop][\Gop] [\Aop][\ProcID],SetValue,[\DODelay];[\GOp]: 觸發組合輸出觸發組合輸出﹐﹐ (signalgo)[\AOp] : 觸發模擬輸出觸發模擬輸出﹐﹐ (signalao)[\ProcID]: 過程處理觸發過程處理觸發﹐﹐ (num)SetValue: 相應信號值相應信號值﹐﹐ (num)[\DODelay]: 數字輸出延遲數字輸出延遲﹐﹐ (num)2024/9/17 運動觸發指令運動觸發指令-TriggIO應用應用﹕﹕ 機器人可以在運動時通過觸發指令精確的輸出機器人可以在運動時通過觸發指令精確的輸出相應信號相應信號﹐﹐當前指令用于定義觸發性質當前指令用于定義觸發性質﹐﹐此指此指令必須與其他觸發指令令必須與其他觸發指令TriggJ,TriggL或或TriggC同時使用才有意義同時使用才有意義﹐﹐同機器人指令同機器人指令TriggEquip比較比較﹐﹐多了時間控制功能多了時間控制功能﹐﹐少了外部設備觸發少了外部設備觸發延遲功能延遲功能﹐﹐通常用于噴涂通常用于噴涂﹑﹑涂膠等行業涂膠等行業﹐﹐使用使用參變量參變量[\Start]﹐﹐表示以運動起始點觸發基准點表示以運動起始點觸發基准點﹐﹐默認為運動終止點默認為運動終止點﹐﹐使用參變量使用參變量[\Time],以時間以時間來控制觸發來控制觸發﹐﹐允許最大時間為允許最大時間為0.5s,詳見限制詳見限制﹐﹐參變量參變量[\ProcID],正常情況用戶無法自行使用正常情況用戶無法自行使用﹐﹐此此參變量用于參變量用于IPM過程處理。

過程處理2024/9/17 運動觸發指令運動觸發指令-TriggIO實例實例﹕﹕ VAR triggdate gunon; TriggIO gunon,10\Dop:=gun,1; TriggL p1,v500,gunon,z50,gun1;StartPointEnd point p110mmThe output signal gun is set when the TCP is hereTriggL p1,v500,gunon,z50,gun1;2024/9/17 運動觸發指令運動觸發指令-TriggIO實例實例﹕﹕ VAR triggdate gunon; TriggIO gunon,0\Start\Dop:=gun,1; MoveJ p1,v500,z50,gun1; TriggL p1,v500,gunon,z50,gun1;StartPoint p1End point p2The output signal gun is set to on when the robot’s TCP is hereTriggL p2,v500,gunon,fine,gun1;2024/9/17 運動觸發指令運動觸發指令-TriggIO限制限制﹕﹕l當前指令使用參變量當前指令使用參變量[\Time]可以提高信號輸可以提高信號輸出精度出精度﹐﹐此參變量以目標點為基准此參變量以目標點為基准﹐﹐使用固使用固定的目標點定的目標點fine比轉角比轉角zone精度高精度高﹐﹐一般情一般情況下況下﹐﹐此此 參變量采用固定目標點參變量采用固定目標點﹔﹔l參變量參變量[\Time]設置的時間應小于機器人開始設置的時間應小于機器人開始減速時間減速時間(最大最大0.5s),例如例如﹕﹕運行速度運行速度 為為500mm/s, IRB2400為為150ms,IRB6400為為250ms,在設置時間超過減速時間的情況下在設置時間超過減速時間的情況下﹐﹐實際控制時間會縮短實際控制時間會縮短﹐﹐但不會對正常的運但不會對正常的運行造成影響行造成影響﹔﹔2024/9/17 運動觸發指令運動觸發指令-TriggInt TriggInt TriggDate,Distance [\Start][\Time],Interrupt;[\TriggDate]: 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)Distance: 觸發距離觸發距離mm﹐﹐ (num)[\Start]: 觸發起始開關觸發起始開關﹐﹐ (switch)[\Time]: 時間觸發開關時間觸發開關﹐﹐ (switch)interrupt: 觸發中斷名稱觸發中斷名稱﹐﹐ (intnum)2024/9/17 應用應用﹕﹕ 機器人可以在運動時通過觸發指令精確的進入機器人可以在運動時通過觸發指令精確的進入中斷處理中斷處理﹐﹐當前指令用于定義觸發性質當前指令用于定義觸發性質﹐﹐此指此指令必須與其他觸發指令令必須與其他觸發指令TriggJ,TriggL或或TriggC同時使用才有意義同時使用才有意義﹐﹐通常用于噴涂通常用于噴涂﹑﹑涂膠等行涂膠等行業業﹐﹐使用參變量使用參變量[\Start]﹐﹐表示以運動起始點觸發表示以運動起始點觸發基准點基准點﹐﹐默認為運動終止點默認為運動終止點﹐﹐使用參變量使用參變量[\Time],以時間來控制觸發以時間來控制觸發﹐﹐允許最大時間為允許最大時間為0.5s,詳見限制。

詳見限制限制限制﹕﹕l正常情況下正常情況下﹐﹐當前指令從觸發中斷到得到響應當前指令從觸發中斷到得到響應﹐﹐有有5-120ms的延遲的延遲﹐﹐用指令用指令TriggIO或或TriggEquip控制信號輸出效果更佳控制信號輸出效果更佳運動觸發指令運動觸發指令-TriggInt2024/9/17 限制限制﹕﹕l當前指令使用參變量當前指令使用參變量[\Time]可以提高中斷觸發精可以提高中斷觸發精度度﹐﹐此參變量以目標點為基准此參變量以目標點為基准﹐﹐使用固定的使用固定的目目標點標點fine比轉角比轉角zone精度高精度高﹐﹐一般情況下一般情況下﹐﹐此此 參變量采用固定目標點參變量采用固定目標點﹔﹔l參變量參變量[\Time]設置的時間應小于機器人開始設置的時間應小于機器人開始減速時間減速時間(最大最大0.5s),例如例如﹕﹕運行速度運行速度 為為500mm/s, IRB2400為為150ms,IRB6400為為250ms,在設置時間超過減速時間的情況下在設置時間超過減速時間的情況下﹐﹐實際控制時間會縮短實際控制時間會縮短﹐﹐但不會對正常的運但不會對正常的運行造成影響行造成影響﹔﹔運動觸發指令運動觸發指令-TriggInt2024/9/17 運動觸發指令運動觸發指令-TriggInt實例實例﹕﹕ VAR intnum intno1; VAR triggdate Trigg1; CONNECT intno1 WITH trap1; TriggInt trigg1,5,intno1; TriggL p1,v500,trigg1,z50,gun1; TriggL p2,v500,gunon,z50,gun1; Idelete intno1;StartPointEnd point p1 or p210mmThe interrupt is gengrated when the TCP is hereTriggL p1,v500,trigg1,z50,gun1;2024/9/17 運動觸發指令運動觸發指令-TriggEquip TriggEquip TriggDate,Distance [\Start],EquipLag,[\Dop][\Gop] [\Aop][\ProcID],SetValue,[\Inhib];[\TriggDate]: 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)Distance: 觸發距離觸發距離mm﹐﹐ (num)[\Start]: 觸發起始開關觸發起始開關﹐﹐ (switch)EquipLag: 觸發延遲補償觸發延遲補償s﹐﹐ (num)[\DOp]: 觸發數字輸出觸發數字輸出﹐﹐ (signaldo)2024/9/17 運動觸發指令運動觸發指令-TriggEquip TriggEquip TriggDate,Distance [\Start],EquipLag,[\Dop][\Gop] [\Aop][\ProcID],SetValue,[\Inhib];[\GOp]: 觸發組合輸出觸發組合輸出﹐﹐ (signalgo)[\AOp] : 觸發模擬輸出觸發模擬輸出﹐﹐ (signalao)[\ProcID]: 過程處理觸發過程處理觸發﹐﹐ (num)SetValue: 相應信號值相應信號值﹐﹐ (num)[\Inhib]: 信號抑止數據信號抑止數據﹐﹐ (bool)2024/9/17 運動觸發指令運動觸發指令-TriggEquip應用應用﹕﹕ 機器人可以在運動時通過觸發指令精確的輸出機器人可以在運動時通過觸發指令精確的輸出相應信號相應信號﹐﹐當前指令用于定義觸發性質當前指令用于定義觸發性質﹐﹐此指此指令必須與其他觸發指令令必須與其他觸發指令TriggJ,TriggL或或TriggC同時使用才有意義同時使用才有意義﹐﹐同機器人指令同機器人指令TriggIO比較比較﹐﹐多了外部設備觸發延遲功能多了外部設備觸發延遲功能﹐﹐少了時間控制少了時間控制功能功能﹐﹐通常用于噴涂通常用于噴涂﹑﹑涂膠等行業。

涂膠等行業2024/9/17 運動觸發指令運動觸發指令-TriggEquip應用應用﹕﹕ 使用參變量使用參變量[\Start]﹐﹐表示以運動起始點觸發基准表示以運動起始點觸發基准點點﹐﹐默認為運動終止點默認為運動終止點﹐﹐參變量參變量[\ProcID],正常情正常情況用戶無法自行使用況用戶無法自行使用﹐﹐此參變量用于此參變量用于IPM過程處過程處理理,當參變量當參變量[\Inhib]值為值為TRUE﹐﹐在觸發點所有輸在觸發點所有輸出信號出信號(AO﹐﹐GO﹐﹐DO)將被置為將被置為0StartPointEnd pointDistanceEquipLagDistance+ -+ -\start2024/9/17 運動觸發指令運動觸發指令-TriggEquip實例實例﹕﹕ VAR triggdate gunon; TriggEquip gunon,10,0.1\Dop:=gun,1; TriggL p1,v500,gunon,z50,gun1;StartPointEnd point p110mmPoint p2 for open fo the gunTriggL p1,v500,gunon,z50,gun1;2024/9/17 運動觸發指令運動觸發指令-TriggEquip限制限制﹕﹕●當前指令通過觸發延遲可以提高信號輸出精當前指令通過觸發延遲可以提高信號輸出精度度﹐﹐設置的時間應小于機器人開始減速的時設置的時間應小于機器人開始減速的時間間(最大最大0.5s),例如例如﹕﹕運行速度運行速度 為為500mm/s, IRB2400為為150ms,IRB6400為為250ms,在設在設置時間超過減速時間的情況下置時間超過減速時間的情況下﹐﹐實際時間會實際時間會縮短縮短﹐﹐但不會對正常的運行造成影響但不會對正常的運行造成影響﹔﹔●觸發延遲觸發延遲EquipLag值應小于系統參數內值應小于系統參數內Event Preset Time配置值配置值﹐﹐默認為默認為60ms;●如果觸發延遲如果觸發延遲EquipLag值大于系統參數內值大于系統參數內Event Preset Time配置值配置值﹐﹐需要使用指令需要使用指令SingArea\Wrist。

2024/9/17 運動觸發指令運動觸發指令-TriggJ TriggJ [\Conc]ToPoint speed [\T] Trigg_1[\T2][\T3][\T4] Zone Tool [\Wobj]Trigg_1: 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)[\T2] : 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)[\T3]: 觸發變量名稱觸發變量名稱﹐﹐ (triggdate)[\T4]: 觸發變量名稱觸發變量名稱, (triggdate)2024/9/17 應用應用﹕﹕ 機器人可以在運動時通過該觸發指令在確定的機器人可以在運動時通過該觸發指令在確定的位置輸出某個信號或出發某個中斷位置輸出某個信號或出發某個中斷﹐﹐同時機器同時機器人進行一個圓滑的過度路徑人進行一個圓滑的過度路徑﹔﹔需與指令需與指令TriggIO,TriggInt﹐﹐TriggEquip等聯合使用才有等聯合使用才有意義意義﹐﹐總共可定義總共可定義4個觸發事件個觸發事件﹔﹔運動觸發指令運動觸發指令-TriggJ2024/9/17 實例實例﹕﹕ VAR triggdate gunon; TriggEquip gunon,10,0.1\Dop:=gun,1; TriggL p1,v500,gunon,z50,gun1;StartPointEnd point p110mmPoint p2 for open fo the gunTriggL p1,v500,gunon,z50,gun1;運動觸發指令運動觸發指令-TriggJ2024/9/17 限制限制﹕﹕●當前指令通過觸發延遲可以提高信號輸出精當前指令通過觸發延遲可以提高信號輸出精度度﹐﹐設置的時間應小于機器人開始減速的時設置的時間應小于機器人開始減速的時間間(最大最大0.5s),例如例如﹕﹕運行速度運行速度 為為500mm/s, IRB2400為為150ms,IRB6400為為250ms,在設在設置時間超過減速時間的情況下置時間超過減速時間的情況下﹐﹐實際時間會實際時間會縮短縮短﹐﹐但不會對正常的運行造成影響但不會對正常的運行造成影響﹔﹔●觸發延遲觸發延遲EquipLag值應小于系統參數內值應小于系統參數內Event Preset Time配置值配置值﹐﹐默認為默認為60ms;●如果觸發延遲如果觸發延遲EquipLag值大于系統參數內值大于系統參數內Event Preset Time配置值配置值﹐﹐需要使用指令需要使用指令SingArea\Wrist。

運動觸發指令運動觸發指令-TriggJ2024/9/17 。

下载提示
相似文档
正为您匹配相似的精品文档