1、-NWE技术研发部 自动化应用 2022/5/19-目录目录运动控制指令运动控制指令 外轴激活指令外轴激活指令计数指令计数指令 输入输出指令输入输出指令程序运行停止指令程序运行停止指令 例行程序调用指令例行程序调用指令计时指令计时指令 中断指令中断指令通信指令通信指令 中断运动指令中断运动指令程序流程指令程序流程指令 故障处理指令故障处理指令坐标转换指令坐标转换指令 运动触发指令运动触发指令2022/5/19-运动控制指令AccSet VelSetConfJ ConfLSingArea PathReasolSoftAct SoftDeact2022/5/19-运动控制指令运动控制指令-AccS
2、et AccSet Acc,Ramp; Acc:机器人加速度百分率机器人加速度百分率(num) Ramp:机器人加速度坡度机器人加速度坡度(num)应用应用 当机器人运行速度改变时当机器人运行速度改变时对所产生的相对所产生的相应加速度进行限制应加速度进行限制使机器人高速运行时使机器人高速运行时更平缓更平缓但会延长循环时间但会延长循环时间系统默认值系统默认值为为AccSet 100,100;2022/5/19-运动控制指令运动控制指令-AccSet实例实例限制限制l机器人加速度百分率最小值为机器人加速度百分率最小值为20小于小于20以以20计计机器人加速度坡度最小值为机器人加速度坡度最小值为10
3、小于小于10以以10计计l机器人冷启动机器人冷启动新程序加载与程序重置后新程序加载与程序重置后系统系统 自动设置为默认值自动设置为默认值accelerationAccSet 100,100i.e.normalaccelerationAccSet 30,100accelerationAccSet 100,30Time2022/5/19-运动控制指令运动控制指令-VelSet VelSet Override,Max; Override:机器人运行速度机器人运行速度% (num) Max:最大运行速度最大运行速度mm/s (num)应用应用 对机器人的运行速度进行限制对机器人的运行速度进行限制机器人
4、运动机器人运动指令中均带有运行速度指令中均带有运行速度在执行运动速度控在执行运动速度控制指令制指令VelSet后后实际运行速度为运动指令实际运行速度为运动指令规定的运行速度乘以机器人运行速率规定的运行速度乘以机器人运行速率并且并且不超过机器人最大运行速度不超过机器人最大运行速度系统默认值为系统默认值为VelSet 100,5000;2022/5/19-運動控制指令運動控制指令-VelSet實例實例 VelSet 50,800; MoveL p1,v1000,z10,tool1; MoveL p2,v1000v:=2000,z10,tool1; MoveL p3,v1000T:=5,z10,to
5、ol1; 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/s800mm/s10s800mm/s1000smm/s1000mm/s6.25s2022/5/19-運動控制指令運動控制指令-VelSet限製限製l 機器人冷啟動機器人冷啟動新程序載入與程序重置後新程序載入與程序重置後系系統自動設置為默認值統自動設置為默認值l 機器人使用參變量機器人使用參變量T時時最大運行速度將不最
6、大運行速度將不起作用起作用l Override對數據對數據(speeddate)內所有項都起作內所有項都起作用用例如例如TCP方位及外軸方位及外軸但對焊接參數但對焊接參數welddate與與seamdate內機器人運動速度不起內機器人運動速度不起作用作用l Max只對速度數據只對速度數據(speeddate)內內TCP這項起這項起作用作用2022/5/19-運動控制指令運動控制指令-ConfJ ConfJOn Off;On: 啟動軸配置數據啟動軸配置數據 (switch)關節運動時關節運動時機器人移動至絕對機器人移動至絕對ModPos點點如果無法到達如果無法到達程序將停止運行程序將停止運行Of
7、f: 默認默認H軸配置數據軸配置數據 (switch)關節運動時關節運動時機器人移動至機器人移動至ModPos點點軸軸配置數據默認為當前最接近值配置數據默認為當前最接近值2022/5/19-運動控制指令運動控制指令-ConfJ應用應用 對機器人運行姿態進行限製與調整對機器人運行姿態進行限製與調整程序運行時程序運行時使機器人運行姿態得到控制使機器人運行姿態得到控制系統默認值為系統默認值為ConfJOn;實例實例 ConfJOn; . ConfJOff;限製限製l 機器人冷啟動機器人冷啟動新程序載入與程序重置後新程序載入與程序重置後系統系統自動設置為默認值自動設置為默認值2022/5/19-运动控
8、制指令运动控制指令-ConfL ConfLOn Off;On:启动轴配置数据启动轴配置数据(switch)直线运动时直线运动时机器人移动至绝对机器人移动至绝对ModPos点点如果无法到达如果无法到达程序将停止运行程序将停止运行Off:默认默认H轴配置数据轴配置数据(switch)直线运动时直线运动时机器人移动至机器人移动至ModPos点点轴轴配置数据默认为当前最接近值配置数据默认为当前最接近值2022/5/19-運動控制指令運動控制指令-ConfL應用應用 對機器人運行姿態進行限製與調整對機器人運行姿態進行限製與調整程序運行時程序運行時使機器人運行姿態得到控制使機器人運行姿態得到控制系統默認值
9、為系統默認值為ConfLOn;實例實例 ConfLOn; . ConfLOff;限製限製l 機器人冷啟動機器人冷啟動新程序載入與程序重置後新程序載入與程序重置後系統系統自動設置為默認值自動設置為默認值2022/5/19-運動控制指令運動控制指令-SingArea SingAreaWrist Off;Wrist: 啟動位置方位調整啟動位置方位調整 (switch)機器人運動時機器人運動時為了避免頻繁死機為了避免頻繁死機位置點位置點允許其方位值有些許改變允許其方位值有些許改變例如例如在五軸零在五軸零度時度時機器人四六軸平行機器人四六軸平行Off: 關閉位置方位調整關閉位置方位調整 (switch)
10、機器人運動時機器人運動時不允許位置點方位改變不允許位置點方位改變是是機器人的默認狀態機器人的默認狀態2022/5/19-運動控制指令運動控制指令-SingArea應用應用 當前指令通過對機器人位置點姿態進行些當前指令通過對機器人位置點姿態進行些 許改變許改變可以絕對避免機器人運行時死機可以絕對避免機器人運行時死機 但是但是機器人運行路徑會受影響機器人運行路徑會受影響姿態得不姿態得不 到控制到控制通常使用與通過複雜姿態點通常使用與通過複雜姿態點絕對絕對 不能作為工作點使用不能作為工作點使用實例實例 SingAreaWrist; . SingAreaOff;2022/5/19-運動控制指令運動控制
11、指令-SingArea限製限製l 以下情況機器人將自動恢復默認值以下情況機器人將自動恢復默認值 SingAreaOff -機器人冷啟動機器人冷啟動 -系統重新載入新的程序系統重新載入新的程序 -系統重置系統重置(Start From Beginning)2022/5/19-運動控制指令運動控制指令-PathResol PathResol PathSampleTime; PathSampleTime : 路徑控制路徑控制% (num)應用應用 當前指令用於更改機器人主機系統參數當前指令用於更改機器人主機系統參數;調整機器人路徑采樣時間調整機器人路徑采樣時間從而達到控制從而達到控制機器人運行路徑的
12、效果機器人運行路徑的效果通過此指令可以通過此指令可以提高機器人運動精度或縮短循環時間提高機器人運動精度或縮短循環時間路路徑控制默認值為徑控制默認值為100%調整範圍為調整範圍為25%-400%路徑控制百分比越小路徑控制百分比越小運動精度越高運動精度越高占用占用CPU資源也越多資源也越多2022/5/19-運動控制指令運動控制指令-PathResol實例實例 MoveJ p1,v1000,fine,tool1; PathResol 150; 機器人在臨界運動狀態機器人在臨界運動狀態(重載重載高速高速路徑變化路徑變化複雜情況下接近最大工作區域複雜情況下接近最大工作區域)增加路徑控制增加路徑控制值值
13、可避免頻繁死機可避免頻繁死機外軸以很低的速度與機器外軸以很低的速度與機器人聯動人聯動增加路徑控制值增加路徑控制值可避免頻繁死機可避免頻繁死機 機器人進行高頻率擺動弧焊時機器人進行高頻率擺動弧焊時需要很高的路需要很高的路徑采樣時間徑采樣時間需要減小路徑控制值需要減小路徑控制值機器人進行機器人進行小範圍複雜運動時小範圍複雜運動時需要很高的精度需要很高的精度需要減小需要減小路徑控制值路徑控制值2022/5/19-運動控制指令運動控制指令-PathResol限製限製l 機器人必須在完全停止後才能更改路徑控制值機器人必須在完全停止後才能更改路徑控制值否則否則機器人將默認一個停止點機器人將默認一個停止點并
14、且顯示錯誤并且顯示錯誤信息信息50146l 機器人在更改路徑控制值時機器人在更改路徑控制值時機器人被強製停止機器人被強製停止運行運行機器人將不能立刻恢復正常運行機器人將不能立刻恢復正常運行(Restart)l 以下情況機器人將自動恢復默認值以下情況機器人將自動恢復默認值100% -機器人冷啟動機器人冷啟動 -系統載入新的程序系統載入新的程序 -程序重置程序重置(Start From Beginning)2022/5/19-運動控制指令運動控制指令-SoftAct SoftActMechUnit,Axis,SoftnessRampMechUnit 軟化外軸名稱軟化外軸名稱 (mechunit)A
15、xis: 軟化外軸號碼軟化外軸號碼 (num)Softness: 軟化值軟化值% (num)Ramp: 軟化坡度軟化坡度% (num)應用應用 當前指令用於軟化機器人主機或外軸伺服系統當前指令用於軟化機器人主機或外軸伺服系統軟化值範圍軟化值範圍0%-100%,軟化坡度範圍軟化坡度範圍=100%,此指令必須與指令此指令必須與指令SoftDeact同時使用同時使用通常不通常不使用於工作位置。使用於工作位置。2022/5/19-運動控制指令運動控制指令-SoftAct實例實例 SoftAct 3,20; SoftAct 1,90Ramp:=150; SoftAct MechUnit:=Orbit1,
16、1,40Ramp:=120;限製限製l 機器人被強製停止運行後機器人被強製停止運行後軟伺服設置將自動失效軟伺服設置將自動失效l 同一轉軸軟化伺服不允許被連續設置兩次同一轉軸軟化伺服不允許被連續設置兩次. .SoftAct 3,20; SoftAct 3,20;SoftAct 3,20; MoveJ *,v100,fine,tool;. SoftAct 3,20; .2022/5/19-運動控制指令運動控制指令-SoftDeact SoftDeact Ramp Ramp: 軟化坡度軟化坡度=100% (num)應用應用 當前指令用於使軟化機器人主機或外軸伺服系當前指令用於使軟化機器人主機或外軸伺
17、服系統指令統指令SoftAct失效。失效。實例實例 SoftAct 3,20; SoftDeact; SoftAct 1,90; SoftDeactRamp:=150;2022/5/19-外軸激活指令ActUnit DeactUnit2022/5/19-外軸激活指令外軸激活指令-ActUnit ActUnit MecUnit MecUnit: 外軸名外軸名 (mecunit)應用應用 將機器人一個外軸激活將機器人一個外軸激活例如例如當多個外當多個外軸公用一個驅動板時軸公用一個驅動板時通過外軸激活指令通過外軸激活指令ActUnit選擇當前所使用的外軸選擇當前所使用的外軸2022/5/19-外軸激
18、活指令外軸激活指令-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 不能在指令不能在指令StorePathRestorePath內使用內使用l 不能在預置程序不能在預置程序RESTART內使用內使用l 不能在機器人轉軸處於獨立狀態時使用不能在機器人轉軸處於獨立狀態時使用P10,外軸不動外軸不動P20,外軸聯動外軸聯動Track_
19、motionP30,外軸聯動外軸聯動Orbit_a2022/5/19-外軸激活指令外軸激活指令-DeactUnit DeactUnit MecUnit MecUnit: 外軸名外軸名 (mecunit)應用應用 將機器人一個外軸失效將機器人一個外軸失效例如例如當多個外當多個外軸公用一個驅動板時軸公用一個驅動板時通過外軸激活指令通過外軸激活指令DeactUnit使當前所使用的外軸失效使當前所使用的外軸失效2022/5/19-實例實例 MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUn
20、it track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;限製限製l 不能在指令不能在指令StorePathRestorePath內使用內使用l 不能在預置程序不能在預置程序RESTART內使用內使用P10,外軸不動外軸不動P20,外軸聯動外軸聯動Track_motionP30,外軸聯動外軸聯動Orbit_a外軸激活指令外軸激活指令-DeactUnit2022/5/19-計數指令計數指令 Add Clear Incr Decr2022/5/19-計數指令計數指令-Add Add Name,AddValur Name: 數據名稱數據名稱
21、 (num) AddValue: 增加的值增加的值 (num)應用應用 在一個數字數據值是增加相應的值在一個數字數據值是增加相應的值可以可以用賦值指令替代用賦值指令替代實例實例 Add reg1,3; 等同於等同於 reg1:=reg1+3; Add reg1,reg2; 等同於等同於reg1:=reg1+reg2;2022/5/19-計數指令計數指令-Clear Clear Name; Name: 數據名稱數據名稱 (num)應用應用 將一個數字數據的值歸零將一個數字數據的值歸零可以用賦值指可以用賦值指令替代令替代實例實例 Clear reg1; 等同於等同於 reg1:=02022/5/1
22、9-計數指令計數指令-Incr Incr Name; Name: 數據名稱數據名稱 (num)應用應用 在一個數字數據的值上加在一個數字數據的值上加1可以用賦值可以用賦值指令替代指令替代一般用於產量計數一般用於產量計數實例實例 Incr reg1; 等同於等同於 reg1:=reg1+1;2022/5/19-計數指令計數指令-Decr Decr Name; Name: 數據名稱數據名稱 (num)應用應用 在一個數字數據的值減在一個數字數據的值減1可以用賦值指可以用賦值指令替代令替代一般用於產量計數一般用於產量計數實例實例 Incr reg1; 等同於等同於 reg1:=reg1-1;2022
23、/5/19-輸入輸出指令輸入輸出指令 AliasIO InvertDO IODisable IOEnable PluseDO Reset Set SetAO SetDO SetGO WaitDI WaitDO2022/5/19-輸入輸出指令輸入輸出指令-AliasIO AliasIO FromSignal,ToSignal;FromSignal: 機器人系統參數內所定義的機器人系統參數內所定義的 信號名稱信號名稱(SignalXX or string)ToSignal: 機器人程序內所使用的信號名稱機器人程序內所使用的信號名稱 (SignalXX)應用應用 對機器人系統參數內定義的信號名稱進行
24、對機器人系統參數內定義的信號名稱進行化名化名給機器人程序使用給機器人程序使用一般使用與一般使用與LoadedModule或或Built-in Module內內例例如如多台機器人使用相同系統參數多台機器人使用相同系統參數2022/5/19-輸入輸出指令輸入輸出指令-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_
25、do,在機器在機器人程序內定義人程序內定義config_do,在系統在系統參數內定義參數內定義2022/5/19-輸入輸出指令輸入輸出指令-AliasIO限製限製l指令指令AliasIO必須放置在預置程序必須放置在預置程序START內或程序內使用相應的信號之前內或程序內使用相應的信號之前l指令指令AliasIO在示教器上無法輸入在示教器上無法輸入只能只能通過離線編輯輸入通過離線編輯輸入l指令指令AliasIO需要軟件需要軟件Develops Functions的支持的支持 2022/5/19-輸入輸出指令輸入輸出指令-InvertDO InvertDO Signal;Signal: 輸出信號名
26、稱輸出信號名稱 (SignalDO)應用應用 將機器人輸出信號值反轉將機器人輸出信號值反轉0為為11為為0在系統參數內也可定義在系統參數內也可定義實例實例: InvertDO do15;2022/5/19-輸入輸出指令輸入輸出指令-InvertDO機器人程序內指令機器人程序內指令InvertDO被執行被執行1100Signal LevelSignal Level2022/5/19-輸入輸出指令輸入輸出指令-IODisable IODisable UnitName,MaxTime;UnitName: 輸入輸出板名稱輸入輸出板名稱(num)MaxTime: 最長等待時間最長等待時間 (num)應用
27、應用 通過指令可以使機器人輸入板在程序運行時通過指令可以使機器人輸入板在程序運行時自動失效自動失效系統將一塊輸入輸出板失效需要系統將一塊輸入輸出板失效需要2-5秒秒如果失效時間超過最長等待時間如果失效時間超過最長等待時間系系統將進入統將進入ErrorHandler處理處理錯誤代碼為錯誤代碼為ERR_IODISABLE如果例行程序沒有如果例行程序沒有ErrorHandler機器人將停機報錯。機器人將停機報錯。2022/5/19-實例實例PROC go_home( ) recover_flag:=1; IODisable “cell”,0 MoveJ home,v1000,fine,tool1;
28、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開始失效開始失效最長等待時間最長等
29、待時間為為0肯定進入肯定進入Error Handler處理處理利用機器人移動到利用機器人移動到home的時的時間完成輸入輸出板失效間完成輸入輸出板失效確認輸入輸出板失效確認輸入輸出板失效連續連續5次次RETRY後後仍無法仍無法完成輸入輸出板的失效完成輸入輸出板的失效2022/5/19-輸入輸出指令輸入輸出指令-IODisableError Handingl ERR_IODISABLE 超過最長等待時間超過最長等待時間系統仍未完成輸入輸出系統仍未完成輸入輸出板失效板失效l ERR_CALLIO_INTER 系統在執行輸入輸出板失效與激活時系統在執行輸入輸出板失效與激活時當前當前輸入輸出板與再次被
30、失效或激活輸入輸出板與再次被失效或激活形成沖突形成沖突l ERR_NAME_INV ALID 輸入輸出板名稱錯誤或無法進行失效與激活輸入輸出板名稱錯誤或無法進行失效與激活操作操作2022/5/19-輸入輸出指令輸入輸出指令-IOEnable IOEnable UnitName,MaxTime;UnitName: 輸入輸出板名稱輸入輸出板名稱(num)MaxTime: 最長等待時間最長等待時間 (num)應用應用 通過指令可以使機器人輸入板在程序運行時通過指令可以使機器人輸入板在程序運行時自動激活自動激活系統將一塊輸入輸出板失效需要系統將一塊輸入輸出板失效需要2-5秒秒如果失效時間超過最長等待時
31、間如果失效時間超過最長等待時間系系統將進入統將進入ErrorHandler處理處理錯誤代碼為錯誤代碼為ERR_IOENABLE如果例行程序沒有如果例行程序沒有ErrorHandler機器人將停機報錯。機器人將停機報錯。2022/5/19-輸入輸出指令輸入輸出指令-IOEnable實例實例 VAR num max_retry:=0; . IOEnable “cell:,0; SetDO cell_sig3,1;ERROR IF ERRNO=ERR_IOENABLE THEN IF max_retry3 THEN TPWrite “.”; ENDIF IF nCounter30 THEN Stop
32、; ENDIF WaitDI di_Ready,1MaxTime=1Timeflag:=bTimeout; Incr nCounter; ENDWHOLE .ENDPROC機器等待到位信號機器等待到位信號如果如果1秒內仍沒有等到信號秒內仍沒有等到信號di_Ready值為值為1機器人執機器人執行隨後指令行隨後指令但此時但此時TimeFlag值為值為TRUE機器機器人等到人等到di_Ready值為值為1此此時時TimeFlag值為值為FALSE輸入輸出指令輸入輸出指令-WaitDI2022/5/19-輸入輸出指令輸入輸出指令-WaitDO WaitDO Signal,Value MaxTimeTi
33、meFlag;Signal: 輸出信號名稱輸出信號名稱(signaldo)Value: 輸出信號值輸出信號值 (num)MaxTime: 最長等待時間最長等待時間s (num)TimeFlag: 超時邏輯量超時邏輯量 (bool)應用應用 等待數字輸出信號滿足相應值等待數字輸出信號滿足相應值達到通信目達到通信目的的因為輸出信號一般情況下受程序控制因為輸出信號一般情況下受程序控制 此指令很少使用。此指令很少使用。2022/5/19-實例實例 PROC Grip( ) Set do03_Grip; WaitDO do03_Grip,1; .ENDPROCPROC Grip( ) Set do03_
34、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 ,機機器人停機報錯器人停機報錯輸入輸出指令輸入
35、輸出指令-WaitDO2022/5/19-實例實例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機
36、器人機器人執行隨後指令執行隨後指令但此時但此時TimeFlag值為值為TRUE機器機器人等到人等到di_Ready值為值為1此此時時TimeFlag值為值為FALSE輸入輸出指令輸入輸出指令-WaitDO2022/5/19-程序運行停止指令程序運行停止指令 Break Exit Stop ExitCycle2022/5/19-程序運行停止指令程序運行停止指令-Break Break;應用應用 機器人在當前指令行立刻停止運行機器人在當前指令行立刻停止運行程序運程序運行指針停留在下一行指令行指針停留在下一行指令可以用可以用Start鍵繼鍵繼續運行機器人。續運行機器人。實例實例 . Break; .
37、2022/5/19-程序運行停止指令程序運行停止指令-Break區別區別 MoveL p2,v100,z30,tool0; Break;(Stop) MoveL p3,v100,z30,tool0;p1BreakStopp3p22022/5/19-程序運行停止指令程序運行停止指令-EXIT EXIT;應用應用 機器人在當前指令行停止運行機器人在當前指令行停止運行并且程序重并且程序重置置程序運行指針停留在主程序第一行。程序運行指針停留在主程序第一行。實例實例 . EXIT; .2022/5/19- Stop NoRegain;NoRegain: 路徑恢復參數路徑恢復參數 (num)應用應用 機器
38、人在當前指令停止運行機器人在當前指令停止運行程序運行指針程序運行指針停留在下一行指令停留在下一行指令可以用可以用Start鍵繼續運行鍵繼續運行機器人機器人屬於臨時性停止屬於臨時性停止如果機器人停止如果機器人停止 期間被手動移動後期間被手動移動後然後直接啟動機器人然後直接啟動機器人機器人將警告確認路徑機器人將警告確認路徑如果此時采用參變如果此時采用參變量量NoRegain機器人將直接運行。機器人將直接運行。程序運行停止指令程序運行停止指令-STOP2022/5/19-區別區別 MoveL p2,v100,z30,tool0; Stop;(Break;) MoveL p3,v100,z30,too
39、l0;p1BreakStopp3p2程序運行停止指令程序運行停止指令-STOP2022/5/19-程序運行停止指令程序運行停止指令-ExitCycle ExitCycle;應用應用 機器人在當前指令行立刻停止運行機器人在當前指令行立刻停止運行并且設并且設定當前循環結束定當前循環結束機器人自動從主程序第一機器人自動從主程序第一行繼續運行下一個循環。行繼續運行下一個循環。2022/5/19-程序運行停止指令程序運行停止指令-ExitCycle實例實例 PROC main( ) IF cyclecount=0 THEN CONNECT error_intno WITH error_trap ISig
40、nalDI 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; ENDTRAP2022/5/19-例行程序調用指令例行程序調用指令 ProcCall CallByVar 2022/5/19- ProcCall ProcedureArgumentProcedure: 例行程序名稱例行程序名稱 (Identifier
41、)Argument: 例行程序參數例行程序參數 (All)應用應用 機器人調用相應例行程序機器人調用相應例行程序同時給帶有參數同時給帶有參數的例行程序中相應的參數賦值。的例行程序中相應的參數賦值。實例實例 Weldpipe1; Weldpipe2 10,lowspeed; Weldpipe3 10speed:=20;例行程序調用指令例行程序調用指令-ProcCall2022/5/19-例行程序調用指令例行程序調用指令-ProcCall限製限製l 機器人調用帶參數的例行程序時機器人調用帶參數的例行程序時必須包括必須包括所有強製性參數所有強製性參數l 例行程序所有參數位置次序必須與例行程序例行程序
42、所有參數位置次序必須與例行程序設置一致設置一致l 例行程序所有參數數據類型必須與例行程序例行程序所有參數數據類型必須與例行程序設置一致設置一致l 例行程序所有參數數據性質必須為例行程序所有參數數據性質必須為Input,Variable或或Persistent;2022/5/19- CallByVar Name,Number;Name: 例行程序名稱第一部分例行程序名稱第一部分 (string)Number: 例行程序名稱第二部分例行程序名稱第二部分 (num)應用應用 通過指令中相應數據通過指令中相應數據機器人調用相應例行機器人調用相應例行程序程序但無法調用帶有參數的例行程序。但無法調用帶有參
43、數的例行程序。實例實例 reg1:=Ginput(gi_Type); CallByVar “proc”,reg1;例行程序調用指令例行程序調用指令-CallByVar2022/5/19-例行程序調用指令例行程序調用指令-CallByVar限製限製l 不能調用帶參數的例行程序不能調用帶參數的例行程序l 所有被調用的例行程序名稱第一部分必須相所有被調用的例行程序名稱第一部分必須相同同例如例如proc1,proc2,proc3;l 使用使用CallByVar指令調用例行程序比直接采指令調用例行程序比直接采用用ProcCall調用例行程序需要更長時間調用例行程序需要更長時間Error Handling
44、:l ERR_REFUNKPRC 系統無法找到例行程序名稱第一部分系統無法找到例行程序名稱第一部分l ERR_CALLPROC 系統無法找到例行程序名稱第二部分系統無法找到例行程序名稱第二部分2022/5/19-實例比較實例比較 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
45、,0)%door_loc;例行程序調用指令例行程序調用指令-CallByVar指令指令CallByVar不能調用帶有參不能調用帶有參數的例行程序數的例行程序通過通過RAPID結構結構仍可以調用帶有仍可以調用帶有參數的例行程序參數的例行程序2022/5/19-計時指令計時指令ClkReset ClkStartClkStop2022/5/19- ClkReset Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用 將機器人相應時鐘復位將機器人相應時鐘復位常用於記錄循環時常用於記錄循環時間或機器人跟蹤運輸鏈。間或機器人跟蹤運輸鏈。實例實例 ClkReset clock1; ClkSt
46、art clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:Num:=nCycleTime計時指令計時指令-ClkReset2022/5/19- ClkStart Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用 啟動機器人相應時鐘啟動機器人相應時鐘常用於記錄循環時間常用於記錄循環時間或機器人跟蹤運輸鏈或機器人跟蹤運輸鏈機器人時鐘啟動後機器人時鐘啟動後 時鐘不會因為機器人停止運行或關機而停止時鐘不會因為機器人停止運行或關機而停止計時計時在機器人時鐘運行時在機
47、器人時鐘運行時指令指令ClkStop 與與ClkReset仍起作用。仍起作用。計時指令計時指令-ClkStart2022/5/19-計時指令計時指令-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代碼為代碼為
48、ERR_OVERFLOW2022/5/19- ClkStop Clock;Clock: 時鐘名稱時鐘名稱 (clock)應用應用 停止機器人相應時鐘停止機器人相應時鐘常用於記錄循環時間常用於記錄循環時間或機器人跟蹤運輸鏈。或機器人跟蹤運輸鏈。實例實例 ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:Num:=nCycleTime計時指令計時指令-ClkStop2022/5/19-中斷指令中斷指令CONNECT IDele
49、teISignalDI ISignalDOISignalAI ISignalAOISleep IWatchIDisable IEnableITimer2022/5/19-中斷指令中斷指令-CONNECTCONNECT Interrupt WITH Trap routineInterrupt: 中斷數據名稱中斷數據名稱 (intnum)Trap routine: 中斷處理程序中斷處理程序 (Identifier)應用應用 將機器人相應中斷數據連接到相應的中將機器人相應中斷數據連接到相應的中斷處理程序是機器人中斷功能必不可少的斷處理程序是機器人中斷功能必不可少的組成部分組成部分必須同指令必須同指令
50、ISignalDIISignalDOISignalAIISignalAO或或ITmer聯合使用聯合使用2022/5/19-中斷指令中斷指令-CONNECT實例實例VAR intnum intInspectProc main( ).CONNECT intInpect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;.ENDPROCTRAP rAlarm TPWrite “Grip Error”; Stop; WaitDI di01_Vacuum,1;ENDTRAP2022/5/19-中斷中斷指令指令-CONNECT限製限製l中斷數據的數據類型必須為變