版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ABB機(jī)器人高級指令NWE技術(shù)研發(fā)部 自動化應(yīng)用 2022/7/14目錄運(yùn)動控制指令 外軸激活指令計數(shù)指令 輸入輸出指令程序運(yùn)行停止指令 例行程序調(diào)用指令計時指令 中斷指令通信指令 中斷運(yùn)動指令程序流程指令 故障處理指令坐標(biāo)轉(zhuǎn)換指令 運(yùn)動觸發(fā)指令2022/7/14運(yùn)動控制指令A(yù)ccSet VelSetConfJ ConfLSingArea PathReasolSoftAct SoftDeact2022/7/14運(yùn)動控制指令-AccSet AccSet Acc,Ramp; Acc:機(jī)器人加速度百分率(num) Ramp:機(jī)器人加速度坡度(num)應(yīng)用 當(dāng)機(jī)器人運(yùn)行速度改變時對所產(chǎn)生的相應(yīng)加速度進(jìn)
2、行限制使機(jī)器人高速運(yùn)行時更平緩但會延長循環(huán)時間系統(tǒng)默認(rèn)值為AccSet 100,100;2022/7/14運(yùn)動控制指令-AccSet實例限制機(jī)器人加速度百分率最小值為20小于20以20計機(jī)器人加速度坡度最小值為10小于10以10計機(jī)器人冷啟動新程序加載與程序重置后系統(tǒng) 自動設(shè)置為默認(rèn)值accelerationAccSet 100,100i.e.normalaccelerationAccSet 30,100accelerationAccSet 100,30Time2022/7/14運(yùn)動控制指令-VelSet VelSet Override,Max; Override:機(jī)器人運(yùn)行速度% (num)
3、 Max:最大運(yùn)行速度mm/s (num)應(yīng)用 對機(jī)器人的運(yùn)行速度進(jìn)行限制機(jī)器人運(yùn)動指令中均帶有運(yùn)行速度在執(zhí)行運(yùn)動速度控制指令VelSet后實際運(yùn)行速度為運(yùn)動指令規(guī)定的運(yùn)行速度乘以機(jī)器人運(yùn)行速率并且不超過機(jī)器人最大運(yùn)行速度系統(tǒng)默認(rèn)值為VelSet 100,5000;2022/7/14運(yùn)動控制指令-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,too
4、l1; MoveL p2,v5000,z10,tool1; MoveL p3,v1000v:=2000,z10,tool1; MoveL p4,v1000T:=5,z10,tool1;500mm/s800mm/s10s800mm/s1000smm/s1000mm/s6.25s2022/7/14運(yùn)動控制指令-VelSet限製機(jī)器人冷啟動新程序載入與程序重置後系統(tǒng)自動設(shè)置為默認(rèn)值機(jī)器人使用參變量T時最大運(yùn)行速度將不起作用Override對數(shù)據(jù)(speeddate)內(nèi)所有項都起作用例如TCP方位及外軸但對焊接參數(shù)welddate與seamdate內(nèi)機(jī)器人運(yùn)動速度不起作用Max只對速度數(shù)據(jù)(speed
5、date)內(nèi)TCP這項起作用2022/7/14運(yùn)動控制指令-ConfJ ConfJOn Off;On: 啟動軸配置數(shù)據(jù) (switch)關(guān)節(jié)運(yùn)動時機(jī)器人移動至絕對ModPos點(diǎn)如果無法到達(dá)程序?qū)⑼V惯\(yùn)行Off: 默認(rèn)H軸配置數(shù)據(jù) (switch)關(guān)節(jié)運(yùn)動時機(jī)器人移動至ModPos點(diǎn)軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值2022/7/14運(yùn)動控制指令-ConfJ應(yīng)用 對機(jī)器人運(yùn)行姿態(tài)進(jìn)行限製與調(diào)整程序運(yùn)行時使機(jī)器人運(yùn)行姿態(tài)得到控制系統(tǒng)默認(rèn)值為ConfJOn;實例 ConfJOn; . ConfJOff;限製機(jī)器人冷啟動新程序載入與程序重置後系統(tǒng)自動設(shè)置為默認(rèn)值2022/7/14運(yùn)動控制指令-ConfL C
6、onfLOn Off;On:啟動軸配置數(shù)據(jù)(switch)直線運(yùn)動時機(jī)器人移動至絕對ModPos點(diǎn)如果無法到達(dá)程序?qū)⑼V惯\(yùn)行Off:默認(rèn)H軸配置數(shù)據(jù)(switch)直線運(yùn)動時機(jī)器人移動至ModPos點(diǎn)軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值2022/7/14運(yùn)動控制指令-ConfL應(yīng)用 對機(jī)器人運(yùn)行姿態(tài)進(jìn)行限製與調(diào)整程序運(yùn)行時使機(jī)器人運(yùn)行姿態(tài)得到控制系統(tǒng)默認(rèn)值為ConfLOn;實例 ConfLOn; . ConfLOff;限製機(jī)器人冷啟動新程序載入與程序重置後系統(tǒng)自動設(shè)置為默認(rèn)值2022/7/14運(yùn)動控制指令-SingArea SingAreaWrist Off;Wrist: 啟動位置方位調(diào)整 (swit
7、ch)機(jī)器人運(yùn)動時為了避免頻繁死機(jī)位置點(diǎn)允許其方位值有些許改變例如在五軸零度時機(jī)器人四六軸平行Off: 關(guān)閉位置方位調(diào)整 (switch)機(jī)器人運(yùn)動時不允許位置點(diǎn)方位改變是機(jī)器人的默認(rèn)狀態(tài)2022/7/14運(yùn)動控制指令-SingArea應(yīng)用 當(dāng)前指令通過對機(jī)器人位置點(diǎn)姿態(tài)進(jìn)行些 許改變可以絕對避免機(jī)器人運(yùn)行時死機(jī) 但是機(jī)器人運(yùn)行路徑會受影響姿態(tài)得不 到控制通常使用與通過複雜姿態(tài)點(diǎn)絕對 不能作為工作點(diǎn)使用實例 SingAreaWrist; . SingAreaOff;2022/7/14運(yùn)動控制指令-SingArea限製以下情況機(jī)器人將自動恢復(fù)默認(rèn)值 SingAreaOff -機(jī)器人冷啟動 -系統(tǒng)
8、重新載入新的程序 -系統(tǒng)重置(Start From Beginning)2022/7/14運(yùn)動控制指令-PathResol PathResol PathSampleTime; PathSampleTime : 路徑控制% (num)應(yīng)用 當(dāng)前指令用於更改機(jī)器人主機(jī)系統(tǒng)參數(shù);調(diào)整機(jī)器人路徑采樣時間從而達(dá)到控制機(jī)器人運(yùn)行路徑的效果通過此指令可以提高機(jī)器人運(yùn)動精度或縮短循環(huán)時間路徑控制默認(rèn)值為100%調(diào)整範(fàn)圍為25%-400%路徑控制百分比越小運(yùn)動精度越高占用CPU資源也越多2022/7/14運(yùn)動控制指令-PathResol實例 MoveJ p1,v1000,fine,tool1; PathReso
9、l 150; 機(jī)器人在臨界運(yùn)動狀態(tài)(重載高速路徑變化複雜情況下接近最大工作區(qū)域)增加路徑控制值可避免頻繁死機(jī)外軸以很低的速度與機(jī)器人聯(lián)動增加路徑控制值可避免頻繁死機(jī) 機(jī)器人進(jìn)行高頻率擺動弧焊時需要很高的路徑采樣時間需要減小路徑控制值機(jī)器人進(jìn)行小範(fàn)圍複雜運(yùn)動時需要很高的精度需要減小路徑控制值2022/7/14運(yùn)動控制指令-PathResol限製機(jī)器人必須在完全停止後才能更改路徑控制值否則機(jī)器人將默認(rèn)一個停止點(diǎn)并且顯示錯誤信息50146機(jī)器人在更改路徑控制值時機(jī)器人被強(qiáng)製停止運(yùn)行機(jī)器人將不能立刻恢復(fù)正常運(yùn)行(Restart)以下情況機(jī)器人將自動恢復(fù)默認(rèn)值100% -機(jī)器人冷啟動 -系統(tǒng)載入新的程序
10、 -程序重置(Start From Beginning)2022/7/14運(yùn)動控制指令-SoftAct SoftActMechUnit,Axis,SoftnessRampMechUnit 軟化外軸名稱 (mechunit)Axis: 軟化外軸號碼 (num)Softness: 軟化值% (num)Ramp: 軟化坡度% (num)應(yīng)用 當(dāng)前指令用於軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng)軟化值範(fàn)圍0%-100%,軟化坡度範(fàn)圍=100%,此指令必須與指令SoftDeact同時使用通常不使用於工作位置。2022/7/14運(yùn)動控制指令-SoftAct實例 SoftAct 3,20; SoftAct 1,90Ra
11、mp:=150; SoftAct MechUnit:=Orbit1,1,40Ramp:=120;限製機(jī)器人被強(qiáng)製停止運(yùn)行後軟伺服設(shè)置將自動失效同一轉(zhuǎn)軸軟化伺服不允許被連續(xù)設(shè)置兩次. .SoftAct 3,20; SoftAct 3,20;SoftAct 3,20; MoveJ *,v100,fine,tool;. SoftAct 3,20; .2022/7/14運(yùn)動控制指令-SoftDeact SoftDeact Ramp Ramp: 軟化坡度=100% (num)應(yīng)用 當(dāng)前指令用於使軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng)指令SoftAct失效。實例 SoftAct 3,20; SoftDeact; S
12、oftAct 1,90; SoftDeactRamp:=150;2022/7/14外軸激活指令A(yù)ctUnit DeactUnit2022/7/14外軸激活指令-ActUnit ActUnit MecUnit MecUnit: 外軸名 (mecunit)應(yīng)用 將機(jī)器人一個外軸激活例如當(dāng)多個外軸公用一個驅(qū)動板時通過外軸激活指令A(yù)ctUnit選擇當(dāng)前所使用的外軸2022/7/14外軸激活指令-ActUnit實例 MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_moti
13、on; ActUnit orbit_a; MoveL p30,v100,z10,tool1;限製不能在指令StorePathRestorePath內(nèi)使用不能在預(yù)置程序RESTART內(nèi)使用不能在機(jī)器人轉(zhuǎn)軸處於獨(dú)立狀態(tài)時使用P10,外軸不動P20,外軸聯(lián)動Track_motionP30,外軸聯(lián)動Orbit_a2022/7/14外軸激活指令-DeactUnit DeactUnit MecUnit MecUnit: 外軸名 (mecunit)應(yīng)用 將機(jī)器人一個外軸失效例如當(dāng)多個外軸公用一個驅(qū)動板時通過外軸激活指令DeactUnit使當(dāng)前所使用的外軸失效2022/7/14實例 MoveL p10,v10
14、0,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;限製不能在指令StorePathRestorePath內(nèi)使用不能在預(yù)置程序RESTART內(nèi)使用P10,外軸不動P20,外軸聯(lián)動Track_motionP30,外軸聯(lián)動Orbit_a外軸激活指令-DeactUnit2022/7/14計數(shù)指令 Add Clear Incr Decr2022/7/14計數(shù)指令-Add Add Name,AddVal
15、ur Name: 數(shù)據(jù)名稱 (num) AddValue: 增加的值 (num)應(yīng)用 在一個數(shù)字?jǐn)?shù)據(jù)值是增加相應(yīng)的值可以用賦值指令替代實例 Add reg1,3; 等同於 reg1:=reg1+3; Add reg1,reg2; 等同於reg1:=reg1+reg2;2022/7/14計數(shù)指令-Clear Clear Name; Name: 數(shù)據(jù)名稱 (num)應(yīng)用 將一個數(shù)字?jǐn)?shù)據(jù)的值歸零可以用賦值指令替代實例 Clear reg1; 等同於 reg1:=02022/7/14計數(shù)指令-Incr Incr Name; Name: 數(shù)據(jù)名稱 (num)應(yīng)用 在一個數(shù)字?jǐn)?shù)據(jù)的值上加1可以用賦值指令替
16、代一般用於產(chǎn)量計數(shù)實例 Incr reg1; 等同於 reg1:=reg1+1;2022/7/14計數(shù)指令-Decr Decr Name; Name: 數(shù)據(jù)名稱 (num)應(yīng)用 在一個數(shù)字?jǐn)?shù)據(jù)的值減1可以用賦值指令替代一般用於產(chǎn)量計數(shù)實例 Incr reg1; 等同於 reg1:=reg1-1;2022/7/14輸入輸出指令 AliasIO InvertDO IODisable IOEnable PluseDO Reset Set SetAO SetDO SetGO WaitDI WaitDO2022/7/14輸入輸出指令-AliasIO AliasIO FromSignal,ToSignal
17、;FromSignal: 機(jī)器人系統(tǒng)參數(shù)內(nèi)所定義的 信號名稱(SignalXX or string)ToSignal: 機(jī)器人程序內(nèi)所使用的信號名稱 (SignalXX)應(yīng)用 對機(jī)器人系統(tǒng)參數(shù)內(nèi)定義的信號名稱進(jìn)行化名給機(jī)器人程序使用一般使用與LoadedModule或Built-in Module內(nèi)例如多臺機(jī)器人使用相同系統(tǒng)參數(shù)2022/7/14輸入輸出指令-AliasIO實例 VAR signaldo alias_do; CONST string config_string:=“config_do”; PROC prog_start( ) AliasIO config_do,alias_do
18、; AliasIO config_string,alias_do; ENDPROCAlias_do,在機(jī)器人程序內(nèi)定義config_do,在系統(tǒng)參數(shù)內(nèi)定義2022/7/14輸入輸出指令-AliasIO限製指令A(yù)liasIO必須放置在預(yù)置程序START內(nèi)或程序內(nèi)使用相應(yīng)的信號之前指令A(yù)liasIO在示教器上無法輸入只能通過離線編輯輸入指令A(yù)liasIO需要軟件Develops Functions的支持 2022/7/14輸入輸出指令-InvertDO InvertDO Signal;Signal: 輸出信號名稱 (SignalDO)應(yīng)用 將機(jī)器人輸出信號值反轉(zhuǎn)0為11為0在系統(tǒng)參數(shù)內(nèi)也可定義實例
19、: InvertDO do15;2022/7/14輸入輸出指令-InvertDO機(jī)器人程序內(nèi)指令I(lǐng)nvertDO被執(zhí)行1100Signal LevelSignal Level2022/7/14輸入輸出指令-IODisable IODisable UnitName,MaxTime;UnitName: 輸入輸出板名稱(num)MaxTime: 最長等待時間 (num)應(yīng)用 通過指令可以使機(jī)器人輸入板在程序運(yùn)行時自動失效系統(tǒng)將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統(tǒng)將進(jìn)入ErrorHandler處理錯誤代碼為ERR_IODISABLE如果例行程序沒有ErrorHandler機(jī)器
20、人將停機(jī)報錯。2022/7/14實例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 err
21、or”,”Restart the program”; Ttop; ENDIFENDPROC 輸入輸出指令-IODisable輸入輸出板cell開始失效最長等待時間為0肯定進(jìn)入Error Handler處理利用機(jī)器人移動到home的時間完成輸入輸出板失效確認(rèn)輸入輸出板失效連續(xù)5次RETRY後仍無法完成輸入輸出板的失效2022/7/14輸入輸出指令-IODisableError HandingERR_IODISABLE 超過最長等待時間系統(tǒng)仍未完成輸入輸出板失效ERR_CALLIO_INTER 系統(tǒng)在執(zhí)行輸入輸出板失效與激活時當(dāng)前輸入輸出板與再次被失效或激活形成沖突ERR_NAME_INV ALI
22、D 輸入輸出板名稱錯誤或無法進(jìn)行失效與激活操作2022/7/14輸入輸出指令-IOEnable IOEnable UnitName,MaxTime;UnitName: 輸入輸出板名稱(num)MaxTime: 最長等待時間 (num)應(yīng)用 通過指令可以使機(jī)器人輸入板在程序運(yùn)行時自動激活系統(tǒng)將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統(tǒng)將進(jìn)入ErrorHandler處理錯誤代碼為ERR_IOENABLE如果例行程序沒有ErrorHandler機(jī)器人將停機(jī)報錯。2022/7/14輸入輸出指令-IOEnable實例 VAR num max_retry:=0; . IOEnable
23、“cell:,0; SetDO cell_sig3,1;ERROR IF ERRNO=ERR_IOENABLE THEN IF max_retry3 THEN TPWrite “.”; ENDIF IF nCounter30 THEN Stop; ENDIF WaitDI di_Ready,1MaxTime=1Timeflag:=bTimeout; Incr nCounter; ENDWHOLE .ENDPROC機(jī)器等待到位信號如果1秒內(nèi)仍沒有等到信號di_Ready值為1機(jī)器人執(zhí)行隨後指令但此時TimeFlag值為TRUE機(jī)器人等到di_Ready值為1此時TimeFlag值為FALSE輸入
24、輸出指令-WaitDI2022/7/14輸入輸出指令-WaitDO WaitDO Signal,Value MaxTimeTimeFlag;Signal: 輸出信號名稱(signaldo)Value: 輸出信號值 (num)MaxTime: 最長等待時間s (num)TimeFlag: 超時邏輯量 (bool)應(yīng)用 等待數(shù)字輸出信號滿足相應(yīng)值達(dá)到通信目的因為輸出信號一般情況下受程序控制 此指令很少使用。2022/7/14實例 PROC Grip( ) Set do03_Grip; WaitDO do03_Grip,1; .ENDPROCPROC Grip( ) Set do03_Grip; W
25、aitDO do03_Grip,1MaxTime:=5; .ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TRWrite “.”; RETRY; ELSE RAISE; ENDIFENDPROC 機(jī)器人等待輸出信號直到信號do03_Grip為1才執(zhí)行隨後指令機(jī)器人等待相應(yīng)輸出信號如果5秒內(nèi)仍沒有等到信號do03_Grip值為1自動進(jìn)行Error Handler處理如果沒有Error Handler ,機(jī)器人停機(jī)報錯輸入輸出指令-WaitDO2022/7/14實例PROC Grip( ) Set do03_Grip; bTimeout:=TRUE; nCounter:
26、=0; WHILE bTimeout DO IF nCounter3 THEN TPWrite “.”; ENDIF IF nCounter30 THEN Stop; ENDIF WaitDI di_Ready,1MaxTime=1Timeflag:=bTimeout; Incr nCounter; ENDWHOLE .ENDPROC機(jī)器等待到位信號如果1秒內(nèi)仍沒有等到信號do03_Grip值為1機(jī)器人執(zhí)行隨後指令但此時TimeFlag值為TRUE機(jī)器人等到di_Ready值為1此時TimeFlag值為FALSE輸入輸出指令-WaitDO2022/7/14程序運(yùn)行停止指令 Break Exit
27、 Stop ExitCycle2022/7/14程序運(yùn)行停止指令-Break Break;應(yīng)用 機(jī)器人在當(dāng)前指令行立刻停止運(yùn)行程序運(yùn)行指針停留在下一行指令可以用Start鍵繼續(xù)運(yùn)行機(jī)器人。實例 . Break; .2022/7/14程序運(yùn)行停止指令-Break區(qū)別 MoveL p2,v100,z30,tool0; Break;(Stop) MoveL p3,v100,z30,tool0;p1BreakStopp3p22022/7/14程序運(yùn)行停止指令-EXIT EXIT;應(yīng)用 機(jī)器人在當(dāng)前指令行停止運(yùn)行并且程序重置程序運(yùn)行指針停留在主程序第一行。實例 . EXIT; .2022/7/14 St
28、op NoRegain;NoRegain: 路徑恢復(fù)參數(shù) (num)應(yīng)用 機(jī)器人在當(dāng)前指令停止運(yùn)行程序運(yùn)行指針停留在下一行指令可以用Start鍵繼續(xù)運(yùn)行機(jī)器人屬於臨時性停止如果機(jī)器人停止 期間被手動移動後然後直接啟動機(jī)器人機(jī)器人將警告確認(rèn)路徑如果此時采用參變量NoRegain機(jī)器人將直接運(yùn)行。程序運(yùn)行停止指令-STOP2022/7/14區(qū)別 MoveL p2,v100,z30,tool0; Stop;(Break;) MoveL p3,v100,z30,tool0;p1BreakStopp3p2程序運(yùn)行停止指令-STOP2022/7/14程序運(yùn)行停止指令-ExitCycle ExitCycle
29、;應(yīng)用 機(jī)器人在當(dāng)前指令行立刻停止運(yùn)行并且設(shè)定當(dāng)前循環(huán)結(jié)束機(jī)器人自動從主程序第一行繼續(xù)運(yùn)行下一個循環(huán)。2022/7/14程序運(yùn)行停止指令-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
30、on the next item”; ExitCycle; ENDTRAP2022/7/14例行程序調(diào)用指令 ProcCall CallByVar 2022/7/14 ProcCall ProcedureArgumentProcedure: 例行程序名稱 (Identifier)Argument: 例行程序參數(shù) (All)應(yīng)用 機(jī)器人調(diào)用相應(yīng)例行程序同時給帶有參數(shù)的例行程序中相應(yīng)的參數(shù)賦值。實例 Weldpipe1; Weldpipe2 10,lowspeed; Weldpipe3 10speed:=20;例行程序調(diào)用指令-ProcCall2022/7/14例行程序調(diào)用指令-ProcCall限
31、製機(jī)器人調(diào)用帶參數(shù)的例行程序時必須包括所有強(qiáng)製性參數(shù)例行程序所有參數(shù)位置次序必須與例行程序設(shè)置一致例行程序所有參數(shù)數(shù)據(jù)類型必須與例行程序設(shè)置一致例行程序所有參數(shù)數(shù)據(jù)性質(zhì)必須為Input,Variable或Persistent;2022/7/14 CallByVar Name,Number;Name: 例行程序名稱第一部分 (string)Number: 例行程序名稱第二部分 (num)應(yīng)用 通過指令中相應(yīng)數(shù)據(jù)機(jī)器人調(diào)用相應(yīng)例行程序但無法調(diào)用帶有參數(shù)的例行程序。實例 reg1:=Ginput(gi_Type); CallByVar “proc”,reg1;例行程序調(diào)用指令-CallByVar20
32、22/7/14例行程序調(diào)用指令-CallByVar限製不能調(diào)用帶參數(shù)的例行程序所有被調(diào)用的例行程序名稱第一部分必須相同例如proc1,proc2,proc3;使用CallByVar指令調(diào)用例行程序比直接采用ProcCall調(diào)用例行程序需要更長時間Error Handling:ERR_REFUNKPRC 系統(tǒng)無法找到例行程序名稱第一部分ERR_CALLPROC 系統(tǒng)無法找到例行程序名稱第二部分2022/7/14實例比較 TEST reg1 CASE 1: If _door door_loc; CASE 2: rf _door door_loc; CASE 3: Ir _door door_loc
33、; CASE 4: rr _door door_loc; DEFAULT EXIT; ENDTEST CallByVar “proc”, reg1; %”proc”+NumTostr(reg1,0)%door_loc;例行程序調(diào)用指令-CallByVar指令CallByVar不能調(diào)用帶有參數(shù)的例行程序通過RAPID結(jié)構(gòu)仍可以調(diào)用帶有參數(shù)的例行程序2022/7/14計時指令ClkReset ClkStartClkStop2022/7/14 ClkReset Clock;Clock: 時鐘名稱 (clock)應(yīng)用 將機(jī)器人相應(yīng)時鐘復(fù)位常用於記錄循環(huán)時間或機(jī)器人跟蹤運(yùn)輸鏈。實例 ClkReset c
34、lock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:Num:=nCycleTime計時指令-ClkReset2022/7/14 ClkStart Clock;Clock: 時鐘名稱 (clock)應(yīng)用 啟動機(jī)器人相應(yīng)時鐘常用於記錄循環(huán)時間或機(jī)器人跟蹤運(yùn)輸鏈機(jī)器人時鐘啟動後 時鐘不會因為機(jī)器人停止運(yùn)行或關(guān)機(jī)而停止計時在機(jī)器人時鐘運(yùn)行時指令ClkStop 與ClkReset仍起作用。計時指令-ClkStart2022/7/14計時指令-ClkSta
35、rt實例 ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:Num:=nCycleTime限製機(jī)器人時鐘計時超過4,294,967秒即49天17小時2分47秒機(jī)器人將出錯Error Handler代碼為ERR_OVERFLOW2022/7/14 ClkStop Clock;Clock: 時鐘名稱 (clock)應(yīng)用 停止機(jī)器人相應(yīng)時鐘常用於記錄循環(huán)時間或機(jī)器人跟蹤運(yùn)輸鏈。實例 ClkReset clock1; ClkSta
36、rt clock1; RunCycle; ClkStop clock; nCycleTime:=ClkRead(clock1); TPWrite “Last cycletime:Num:=nCycleTime計時指令-ClkStop2022/7/14中斷指令CONNECT IDeleteISignalDI ISignalDOISignalAI ISignalAOISleep IWatchIDisable IEnableITimer2022/7/14中斷指令-CONNECTCONNECT Interrupt WITH Trap routineInterrupt: 中斷數(shù)據(jù)名稱 (intnum)T
37、rap routine: 中斷處理程序 (Identifier)應(yīng)用 將機(jī)器人相應(yīng)中斷數(shù)據(jù)連接到相應(yīng)的中斷處理程序是機(jī)器人中斷功能必不可少的組成部分必須同指令I(lǐng)SignalDIISignalDOISignalAIISignalAO或ITmer聯(lián)合使用2022/7/14中斷指令-CONNECT實例VAR intnum intInspectProc main( ).CONNECT intInpect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;.ENDPROCTRAP rAlarm TPWrite “Grip Error”; Stop; WaitD
38、I di01_Vacuum,1;ENDTRAP2022/7/14中斷指令-CONNECT限製中斷數(shù)據(jù)的數(shù)據(jù)類型必須為變量(VAR)一個中斷數(shù)據(jù)不允許同時連接到多個中斷處理程序但多個中斷數(shù)據(jù)可以共享一個中斷處理程序當(dāng)一個中斷數(shù)據(jù)完成連接後 這個中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序(包括已經(jīng)連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令I(lǐng)Delete將原連接去除。2022/7/14中斷指令-CONNECTError Handler:ERR_ALRDYCNT 中斷數(shù)據(jù)已經(jīng)被連接到中斷處理程序ERR_CNTNOTVAR 中斷數(shù)據(jù)的數(shù)據(jù)類型不是變量ERR_INOMAX 沒有更多
39、的中斷數(shù)據(jù)可以使用2022/7/14中斷指令-IDeleteIDelete InterruptInterrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用將機(jī)器人相應(yīng)中斷數(shù)據(jù)與相應(yīng)的中斷處理程序之間的連接去除實例.CONNECT IntInspect WITH rAlarm;ISingalDI di01_Vacuum,0,intInspect;.IDelete intInspect;2022/7/14中斷指令-IDelete限製執(zhí)行指令I(lǐng)Delete後 當(dāng)前中斷數(shù)據(jù)的連接被完全清除如需再次使用這個中斷數(shù)據(jù)必須重新使用指令CONNECT連接到相應(yīng)的中斷處理程序在下列情況下中斷程序?qū)⒆詣尤コ?重新載入
40、新的運(yùn)行程序-機(jī)器人運(yùn)行程序被重置程序指針回到主程序的第一行(Start From Beginning);-機(jī)器人程序指針被移到任意一個例行程序的第一行(Move PP to Routine);2022/7/14中斷指令-ISignalDIISingalDI Single,Signal,TriggValue,Interruptsingle: 單次中斷信號開關(guān) (switch)Signal: 觸發(fā)中斷信號 (singaldi)TriggValue: 觸發(fā)信號值 (dionum)Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用使用相應(yīng)的數(shù)字輸入信號觸發(fā)相應(yīng)的中斷功能必須同指令CONNECT
41、聯(lián)合使用2022/7/14中斷指令-ISignalDI100中斷觸發(fā)1中斷觸發(fā)實例.CONNECT int1 WITH iroutine1;IsignalDIsingle di01,1,int1;.CONNECT int2 WITH iroutine2;ISignalDI di02,1,int1.中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效只有在程序重置或運(yùn)行指令I(lǐng)Delete後才失效2022/7/14中斷指令-ISignalDI限製當(dāng)一個中斷數(shù)據(jù)完成連接後 這個中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序(包括已經(jīng)連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令I(lǐng)Delete將原
42、連接去除;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 . ENDWHILEENDPROC2022/7/14中斷指令-ISignalDOISingalDO Single,Signal,TriggValue,Interruptsingle: 單次中斷信號開關(guān) (switch)Signal: 觸發(fā)中斷信號 (singaldi)TriggValu
43、e: 觸發(fā)信號值 (dionum)Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用使用相應(yīng)的數(shù)字輸入信號觸發(fā)相應(yīng)的中斷功能必須同指令CONNECT聯(lián)合使用2022/7/14中斷指令-ISignalDO100中斷觸發(fā)1中斷觸發(fā)實例.CONNECT int1 WITH iroutine1;IsignalDOsingle di01,1,int1;.CONNECT int2 WITH iroutine2;ISignalDO di02,1,int1.中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效只有在程序重置或運(yùn)行指令I(lǐng)Delete後才失效2022/7/14中斷指令-ISignalDO限製當(dāng)一個中斷數(shù)
44、據(jù)完成連接後 這個中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序(包括已經(jīng)連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令I(lǐng)Delete將原連接去除;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 . ENDWHILEENDPROC2022/7/14中斷指令-ISignalAIISingalAI Single,Signal,Co
45、ndition,HighValueLowValeu,DeltaValue,DposDNeg,Interruptsingle: 單次中斷信號開關(guān) (switch)Signal: 觸發(fā)中斷信號 (singaldi)Condition: 中斷觸發(fā)狀態(tài) (aiotrigg)HighValue: 最大邏輯值 (num)LowValue: 最小邏輯值 (num)2022/7/14中斷指令-ISignalAIISingalAI Single,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,InterruptDeltaValue: 中斷恢復(fù)差值 (
46、num)DPos: 正值中斷開關(guān) (switch)DNeg: 負(fù)值中斷開關(guān) (switch)Interrupt: 中斷數(shù)據(jù)名稱 (intnum)2022/7/14中斷指令-ISignalAI中斷觸發(fā)狀態(tài)AIO_ABOVE_HIGH 模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH 模擬量信號邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW 模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW 模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN 模擬量信號邏輯值處於最小邏輯值(LowValue)和最
47、大邏輯值(HighValue)之間2022/7/14中斷指令-ISignalAI中斷觸發(fā)狀態(tài)AIO_OUTSIDE 模擬量信號邏輯值大於最大邏輯值(HighValue) 或者小於最小邏輯值(LowValue)AIO_ALWAYS 總是觸發(fā)中斷與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關(guān)應(yīng)用 使用相應(yīng)的模擬量輸入信號觸發(fā)相應(yīng)的中斷功能必須同指令CONNECT聯(lián)合使用2022/7/14中斷指令-ISignalAI實例.CONNECT int1 WITH iroutine1;ISignalAISingle ai1AIO_BETWEEN,2,1,0,int
48、1;.CONNECT int2 WITH iroutine2;ISignalAI ai2AIO_BETWEEN,1.5,0.5,0,int1;.CONNECT int3 WITH iroutine3;ISignalAI ai3AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效只有在程序重置或運(yùn)行IDelete後才失效2022/7/14中斷指令-ISignalAIRefValue:=CurrentValue 如果沒有參變量Dpos與DNeg ABS(CurrentValue-RefValue)DeltaValue 如果使用參變量Dpos (Curr
49、entValue-RefValue)DeltaValue 判斷中斷條件(Condition,HighValue,LowValue) 如果使用參變量DNeg (RefValue-CurrentValue)DeltaValueABS(CurrentValue-RefValue)DeltaValueRefValue:=CurrentValue執(zhí)行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2022/7/14中斷指令-ISignalAI限製當(dāng)前最大邏輯值(HighValue)與最小邏輯值(LowValue
50、)必須是模擬量信號所定義的邏輯值範(fàn)圍內(nèi)最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復(fù)位差值(DeltaValue)必須為正數(shù)或0指令I(lǐng)SignalDI的限製仍然適用2022/7/14中斷指令-ISignalAOISingalAO Single,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,Interruptsingle: 單次中斷信號開關(guān) (switch)Signal: 觸發(fā)中斷信號 (singaldi)Condition: 中斷觸發(fā)狀態(tài) (aiotrigg)HighValue: 最大邏輯值 (nu
51、m)LowValue: 最小邏輯值 (num)2022/7/14中斷指令-ISignalAOISingalAO Single,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,InterruptDeltaValue: 中斷恢復(fù)差值 (num)DPos: 正值中斷開關(guān) (switch)DNeg: 負(fù)值中斷開關(guān) (switch)Interrupt: 中斷數(shù)據(jù)名稱 (intnum)2022/7/14中斷指令-ISignalAO中斷觸發(fā)狀態(tài)AIO_ABOVE_HIGH 模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_H
52、IGH 模擬量信號邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW 模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW 模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN 模擬量信號邏輯值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間2022/7/14中斷指令-ISignalAO中斷觸發(fā)狀態(tài)AIO_OUTSIDE 模擬量信號邏輯值大於最大邏輯值(HighValue) 或者小於最小邏輯值(LowValue)AIO_ALWAYS 總是觸發(fā)中斷與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值
53、(HighValue)無關(guān)應(yīng)用 使用相應(yīng)的模擬量輸入信號觸發(fā)相應(yīng)的中斷功能必須同指令CONNECT聯(lián)合使用2022/7/14中斷指令-ISignalAO實例.CONNECT int1 WITH iroutine1;ISignalAOSingle ao1AIO_BETWEEN,2,1,0,int1;.CONNECT int2 WITH iroutine2;ISignalAO ao2AIO_BETWEEN,1.5,0.5,0,int1;.CONNECT int3 WITH iroutine3;ISignalAO ao3AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發(fā)後失
54、效中斷功能持續(xù)有效只有在程序重置或運(yùn)行IDelete後才失效2022/7/14中斷指令-ISignalAORefValue:=CurrentValue 如果沒有參變量Dpos與DNeg ABS(CurrentValue-RefValue)DeltaValue 如果使用參變量Dpos (CurrentValue-RefValue)DeltaValue 判斷中斷條件(Condition,HighValue,LowValue) 如果使用參變量DNeg (RefValue-CurrentValue)DeltaValueABS(CurrentValue-RefValue)DeltaValueRefVal
55、ue:=CurrentValue執(zhí)行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2022/7/14中斷指令-ISignalAO限製當(dāng)前最大邏輯值(HighValue)與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值範(fàn)圍內(nèi)最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復(fù)位差值(DeltaValue)必須為正數(shù)或0指令I(lǐng)SignalDI的限製仍然適用2022/7/14中斷指令-ISleepISleep Interrupt;Interrupt: 中斷數(shù)據(jù)名稱
56、(intnum)應(yīng)用 使機(jī)器人相應(yīng)中斷數(shù)據(jù)暫時失效直到執(zhí)行指令I(lǐng)Watch後才恢復(fù)。2022/7/14中斷指令-ISleep實例.CONNECT intInspect WITH rAlarmISingalDI di01_Vacuum,0,intInspect;.ISleep intInspect;.IWatch intInspect;.中斷監(jiān)控中斷失效中斷監(jiān)控Error Handler:ERR_UNKINO 無法找到當(dāng)前的中斷數(shù)據(jù)2022/7/14中斷指令-IWatchIWatch Interrupt;Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用 激活機(jī)器人已失效的相應(yīng)中斷數(shù)據(jù)正常
57、情況下與指令I(lǐng)Sleep配合使用。2022/7/14中斷指令-IWatch實例.CONNECT intInspect WITH rAlarmISingalDI di01_Vacuum,0,intInspect;.ISleep intInspect;.IWatch intInspect;.中斷監(jiān)控中斷失效中斷監(jiān)控Error Handler:ERR_UNKINO 無法找到當(dāng)前的中斷數(shù)據(jù)2022/7/14中斷指令-IDisableIWatch Interrupt;Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用 使機(jī)器人相應(yīng)中斷功能暫時不執(zhí)行直到執(zhí)行IEnable後才進(jìn)入中斷處理程序此指令使
58、用於機(jī)器人正在執(zhí)行不希望被打斷的操作其間例如通過通信口讀寫數(shù)據(jù)。2022/7/14實例.IDisable;FOR i FROM 1 TO DO characteri:=ReadBin(sensor);ENDFORIEnable;.中斷指令-IDisable2022/7/14中斷指令-IEnableIEnable Interrupt;Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用 開始執(zhí)行被機(jī)器人暫停的相應(yīng)中斷功能正常情況下與指令I(lǐng)Disable配合使用此指令用於機(jī)器人正在執(zhí)行不希望被打斷的操作期間例如通過通信口讀寫數(shù)據(jù)。2022/7/14實例.IDisable;FOR i FROM
59、1 TO DO characteri:=ReadBin(sensor);ENDFORIEnable;.中斷指令-IEnable2022/7/14中斷指令-ITimerIWatch Single,Time,Interrupt;Single: 單次中斷開關(guān) (switch)Time: 觸發(fā)中斷時間s (num)Interrupt: 中斷數(shù)據(jù)名稱 (intnum)應(yīng)用定時處理機(jī)器人相應(yīng)中斷數(shù)據(jù)此指令 常使用於通過通信口讀寫數(shù)據(jù)等場合。2022/7/14中斷指令-ITimer實例.CONNECT timeint WITH check_serialch;ITimer 60,timeint;.Trap c
60、heck_serialch WriteBin ch1,buffer,1; IF ReadBin(ch1Time:=5)0 THEN TPWrite “Communication is broken”; EXIT; ENDIFENDTRAP2022/7/14通信指令(人機(jī)對話)TPErase TPWriteTPReadFK TPReadNumErrWrite TPShow2022/7/14 TPErase;應(yīng)用 清屏指令將機(jī)器人示教器屏幕上所有顯示清除是機(jī)器人屏幕顯示重要組成部分。實例 TPErase; TPWrite “ABB Robotics”; TPWrite “_”;通信指令-TPEra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小微企業(yè)的環(huán)保與可持續(xù)發(fā)展金融策略研究
- 2025年度歷史建筑參觀保密協(xié)議書標(biāo)準(zhǔn)模板3篇
- 2025年浙科版九年級科學(xué)上冊階段測試試卷
- 2025年人教A版八年級物理上冊階段測試試卷
- 小學(xué)語文寫作的創(chuàng)意啟發(fā)與實施
- 2025年度水利工程水泥采購年度供貨合同(抗裂型)3篇
- 技術(shù)方案集錦8篇
- 2025年度豆粕代銷與農(nóng)產(chǎn)品質(zhì)量追溯體系建設(shè)合同3篇
- 2025餐飲店冷鏈物流配送合同協(xié)議3篇
- 2025年度生態(tài)環(huán)保物流綠色物流市場拓展合同3篇
- 2025年下半年貴州高速公路集團(tuán)限公司統(tǒng)一公開招聘119人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 資產(chǎn)評估服務(wù)房屋征收項目測繪實施方案
- 國家安全責(zé)任制落實情況報告3篇
- 麻醉藥品、精神藥品處方權(quán)資格考試試題(2024年)
- 2024年度玩具代工生產(chǎn)及銷售合同模板(2024版)3篇
- 業(yè)主大會和業(yè)主委員會工作指導(dǎo)手冊
- 2024年小學(xué)五年級科學(xué)教學(xué)工作總結(jié)(2篇)
- 2023年首都機(jī)場集團(tuán)有限公司招聘考試真題
- 【7歷期末】安徽省蚌埠市2023-2024學(xué)年部編版七年級歷史上學(xué)期期末統(tǒng)考試卷(含解析)
- 廣東省深圳市重點(diǎn)中學(xué)2021-2022學(xué)年高二上學(xué)期期末生物試題
- 2024-2025學(xué)年冀教版數(shù)學(xué)五年級上冊期末測試卷(含答案)
評論
0/150
提交評論