ABB機器人標(biāo)準(zhǔn)指令詳解_第1頁
ABB機器人標(biāo)準(zhǔn)指令詳解_第2頁
ABB機器人標(biāo)準(zhǔn)指令詳解_第3頁
ABB機器人標(biāo)準(zhǔn)指令詳解_第4頁
ABB機器人標(biāo)準(zhǔn)指令詳解_第5頁
已閱讀5頁,還剩233頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、機 器 人 標(biāo) 準(zhǔn) 指 令,2020/9/14,賦值指令運動控制指令 外軸激活指令計數(shù)指令 輸入輸出指令程序運行停止指令 例行程序調(diào)用指令計時指令 中斷指令通信指令 運動指令中斷運動指令 程序流程指令故障處理指令 座標(biāo)轉(zhuǎn)換指令運動觸發(fā)指令,2020/9/14,運動控制指令,AccSetVelSet ConfJConfL SingAreaPathResol SoftActSoftDeact,2020/9/14,運動控制指令A(yù)ccSet,AccSet Acc, Ramp;,Acc:機器人加速度百分率 。( num ) Ramp:機器人加速度坡度 。( num ),應(yīng)用: 當(dāng)機器人運行速度改變時,對

2、所產(chǎn)生的相應(yīng)加速度進行限制,使機器人高速運行時更平緩,但會延長循環(huán)時間,系統(tǒng)默認(rèn)值為 AccSet 100, 100; 。,2020/9/14,運動控制指令A(yù)ccSet,實例:,限制: 機器人加速度百分率值最小為 20,小于 20以 20 計,機器人加速度坡度值最小為 10,小于 10 以 10 計。 機器人冷啟動,新程序載入與程序重置后,系統(tǒng)自動設(shè)置為默認(rèn)值。,2020/9/14,運動控制指令VelSet,VelSet Override, Max;,Override:機器人運行速率 %。( num ) Max:最大運行速度 mm/s。( num ),應(yīng)用: 對機器人運行速度進行限制,機器人運

3、動指令中均帶有運行速度,在執(zhí)行運動速度控制指令 VelSet 后,實際運行速度為運動指令規(guī)定的運行速度乘以機器人運行速率,并且不超過機器人最大運行速度,系統(tǒng)默認(rèn)值為 VelSet 100, 5000; 。,2020/9/14,運動控制指令VelSet,500 mm/s,800 mm/s,10 s,800 mm/s,1000 mm/s,1000 mm/s,6.25 s,實例: VelSet 50,800; MoveL p1,v1000,z10,tool1; MoveL p2,v1000V:=2000,z10,tool1; MoveL p3,v1000T:=5,z10,tool1; VelSet

4、80,1000; MoveL p1,v1000,z10,tool1; MoveL p2,v5000,z10,tool1; MoveL p3,v1000V:=2000,z10,tool1; MoveL p4,v1000T:=5,z10,tool1;,2020/9/14,運動控制指令VelSet,限制: 機器人冷啟動,新程序載入與程序重置后,系統(tǒng)自動設(shè)置為默認(rèn)值。 機器人運動使用參變量 T 時,最大運行速度將不起作用。 Override 對速度數(shù)據(jù) (speeddata) 內(nèi)所有項都起作用,例如:TCP、方位及外軸。但對焊接參數(shù) welddata 與 seamdata 內(nèi)機器人運動速度不起作用。

5、Max 只對速度數(shù)據(jù) (speeddata) 內(nèi) TCP 這項起作用。,2020/9/14,運動控制指令ConfJ,ConfJ On|Off;,On:啟用軸配置數(shù)據(jù)。( switch ) 關(guān)節(jié)運動時,機器人移動至絕對 ModPos 點,如果無法到達(dá),程序?qū)⑼V惯\行。 Off:默認(rèn)軸配置數(shù)據(jù)。 ( switch ) 關(guān)節(jié)運動時,機器人移動至 ModPos 點,軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值。,2020/9/14,運動控制指令ConfJ,應(yīng)用: 對機器人運行姿態(tài)進行限制與調(diào)整,程序運行時,使機器人運行姿態(tài)得到控制。系統(tǒng)默認(rèn)值為 ConfJOn; 。,限制: 機器人冷啟動,新程序載入與程序重置后,系統(tǒng)

6、自動設(shè)置為默認(rèn)值。,實例: ConfJOn; ConfJOff;,2020/9/14,運動控制指令ConfL,ConfL On|Off;,On:啟用軸配置數(shù)據(jù)。( switch ) 直線運動時,機器人移動至絕對 ModPos 點,如果無法到達(dá),程序?qū)⑼V惯\行。 Off:默認(rèn)軸配置數(shù)據(jù)。 ( switch ) 直線運動時,機器人移動至 ModPos 點,軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值。,2020/9/14,運動控制指令ConfL,應(yīng)用: 對機器人運行姿態(tài)進行限制與調(diào)整,程序運行時,使機器人運行姿態(tài)得到控制。系統(tǒng)默認(rèn)值為 ConfLOn; 。,限制: 機器人冷啟動,新程序載入與程序重置后,系統(tǒng)自動設(shè)

7、置為默認(rèn)值。,實例: ConfLOn; ConfLOff;,2020/9/14,運動控制指令SingArea,SingArea Wrist|Off;,Wrist:啟用位置方位調(diào)整。( switch ) 機器人運動時,為了避免死機,位置點允許其方位值有些許改變,例如:在五軸零度時,機器人四六軸平行。 Off:關(guān)閉位置方位調(diào)整。 ( switch ) 機器人運動時,不允許位置點方位改變,是機器人的默認(rèn)狀態(tài)。,2020/9/14,運動控制指令SingArea,應(yīng)用: 當(dāng)前指令通過對機器人位置點姿態(tài)進行些許改變,可以絕對避免機器人運行時死機,但是,機器人運行路徑會受影響,姿態(tài)得不到控制,通常使用于通過

8、復(fù)雜姿態(tài)點,絕對不能作為工作點使用。,實例: SingAreaWrist; SingAreaOff;,2020/9/14,運動控制指令SingArea,限制: 以下情況機器人將自動恢復(fù)默認(rèn)值 SingAreaOff。 機器人冷啟動。 系統(tǒng)載入新的程序。 程序重置 ( Start From Beginning )。,2020/9/14,運動控制指令PathResol,PathResol PathSampleTime;,PathSampleTime:路徑控制 %。( num ),應(yīng)用: 當(dāng)前指令用于更改機器人主機系統(tǒng)參數(shù),調(diào)整機器人路徑采樣時間,從而達(dá)到控制機器人運行路徑的效果,通過此指令可以提高

9、機器人運動精度或縮短循環(huán)時間,路徑控制默認(rèn)值為 100%,調(diào)整范圍為25%400%,路徑控制百分比越小,運動精度越高,占用 CPU 資源也越多。,2020/9/14,運動控制指令PathResol,實例: MoveJ p1,v1000,fine,tool1; PathResol 150;,機器人在臨界運動狀態(tài) ( 重載、高速、路徑變化復(fù)雜情況下接近最大工作區(qū)域 ),增加路徑控制值,可以避免頻繁死機。,外軸以很低的速度與機器人聯(lián)動,增加路徑控制值,可以避免頻繁死機。,機器人進行高頻率擺動弧焊時,需要很高的路徑采樣時間,需要減小路徑控制值。,機器人進行小圓周或小范圍復(fù)雜運動時,需要很高精度,需要減

10、小路徑控制值。,2020/9/14,運動控制指令PathResol,限制: 機器人必須在完全停止后才能更改路徑控制值,否則,機器人將默認(rèn)一個停止點,并且顯示錯誤信息 50146。 機器人正在更改路徑控制值時,機器人被強制停止運行,機器人將不能立刻恢復(fù)正常運行 ( Restart )。 以下情況機器人將自動恢復(fù)默認(rèn)值 100%。 機器人冷啟動。 系統(tǒng)載入新的程序。 程序重置 ( Start From Beginning )。,2020/9/14,運動控制指令SoftAct,SoftAct MechUnit, Axis, Softness Ramp;,應(yīng)用: 當(dāng)前指令用于軟化機器人主機或外軸伺服系

11、統(tǒng),軟化值范圍 0%100%,軟化坡度范圍=100%,此指令必須與指令 SoftDeact 同時使用,通常不使用于工作位置。,MechUnit:軟化外軸名稱。( mecunit ) Axis:軟化轉(zhuǎn)軸號碼。( num ) Softness:軟化值 %。( num ) Ramp:軟化坡度 % 。( num ),2020/9/14,運動控制指令SoftAct,實例: SoftAct 3,20; SoftAct 1,90Ramp:=150; SoftAct MechUnit:=orbit1,1,40Ramp:=120;,限制: 機器人被強制停止運行后,軟伺服設(shè)置將自動失效。 同一轉(zhuǎn)軸軟化伺服不允許被

12、連續(xù)設(shè)置兩次。, SoftAct 3,20; SoftAct 3,30; , SoftAct 3,20; MoveJ *,v100,fine,tool1; SoftAct 3,30; ,2020/9/14,運動控制指令SoftDeact,SoftDeact Ramp;,Ramp:軟化坡度,=100%。( num ),應(yīng)用: 當(dāng)前指令用于使軟化機器人主機或外軸伺服系統(tǒng)指令 SoftAct 失效。,實例: SoftAct 3,20; SoftDeact; SoftAct 1,90; SoftDeactRamp:=150;,2020/9/14,外軸激活指令,ActUnitDeactUnit,2020

13、/9/14,外軸激活指令A(yù)ctUnit,ActUnit MecUnit;,MecUnit:外軸名。( mecunit ),應(yīng)用: 將機器人一個外軸激活,例如:當(dāng)多個外軸公用一個驅(qū)動板時,通過外軸激活指令 ActUnit 選擇當(dāng)前所使用的外軸。,2020/9/14,外軸激活指令A(yù)ctUnit,p10,外軸不動。,p20,外軸聯(lián)動track_motion。,p30,外軸聯(lián)動 orbit_a。,實例: MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; A

14、ctUnit orbit_a; MoveL p30,v100,z10,tool1;,限制: 不能在指令 StorePath RestoPath 內(nèi)使用。 不能在預(yù)置程序 RESTART 內(nèi)使用。 不能在機器人轉(zhuǎn)軸處于獨立狀態(tài)時使用。,2020/9/14,外軸激活指令DeactUnit,DeactUnit MecUnit;,MecUnit:外軸名。( mecunit ),應(yīng)用: 使機器人一個外軸失效,例如:當(dāng)多個外軸公用一個驅(qū)動板時,通過外軸激活指令 DeactUnit 使當(dāng)前所使用的外軸失效。,2020/9/14,外軸激活指令DeactUnit,p10,外軸不動。,p20,外軸聯(lián)動track_

15、motion。,p30,外軸聯(lián)動 orbit_a。,實例: MoveL p10,v100,fine,tool1; ActUnit track_motion; MoveL p20,v100,z10,tool1; DeactUnit track_motion; ActUnit orbit_a; MoveL p30,v100,z10,tool1;,限制: 不能在指令 StorePath RestoPath 內(nèi)使用。 不能在預(yù)置程序 RESTART 內(nèi)使用。,2020/9/14,計數(shù)指令,AddClear IncrDecr,2020/9/14,計數(shù)指令A(yù)dd,Add Name, AddValue;,N

16、ame:數(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;,2020/9/14,計數(shù)指令Clear,Clear Name;,Name:數(shù)據(jù)名稱。( num ),應(yīng)用: 將一個數(shù)字?jǐn)?shù)據(jù)的值歸零,可以用賦值指令替代。,實例: Clear reg1;等同于reg1:=0;,2020/9/14,計數(shù)指令I(lǐng)ncr,Incr Name;,Name:數(shù)據(jù)名稱。( num ),應(yīng)用: 在一個數(shù)字

17、數(shù)據(jù)值上增加 1,可以用賦值指令替代,一般用于產(chǎn)量計數(shù)。,實例: Incr reg1;等同于reg1:=reg1+1;,2020/9/14,計數(shù)指令Decr,Decr Name;,Name:數(shù)據(jù)名稱。( num ),應(yīng)用: 在一個數(shù)字?jǐn)?shù)據(jù)值上增加 1,可以用賦值指令替代,一般用于產(chǎn)量計數(shù)。,實例: Decr reg1;等同于reg1:=reg1-1;,2020/9/14,輸入輸出指令,AliasIOInvertDO IODisableIOEnable PluseDOReset SetSetAO SetDOSetGO WaitDIWaitDO,2020/9/14,輸入輸出指令A(yù)liasIO,Al

18、iasIO FromSignal, ToSignal;,FromSignal:機器人系統(tǒng)參數(shù)內(nèi)所定義的信號名稱。( signalxx or string ) ToSignal:機器人程序內(nèi)所使用的信號名稱。( signalxx ),應(yīng)用: 對機器人系統(tǒng)參數(shù)內(nèi)定義的信號名稱進行化名,給機器人程序使用,一般使用與 Loaded Modules 或 Built-in Modules 內(nèi)。例如:多臺機器人使用相同系統(tǒng)參數(shù)。,2020/9/14,輸入輸出指令A(yù)liasIO,Alias_do,在機器人程序內(nèi)定義。,config_do,在系統(tǒng)參數(shù)內(nèi)定義。,實例: VAR signaldo alias_do;

19、 CONST string config_string:=config_do; PROC prog_start() AliasIO config_do,alias_do; AliasIO config_string,alias_do; ENDPROC,2020/9/14,輸入輸出指令A(yù)liasIO,限制: 指令 AliasIO 必須放置在預(yù)置程序 START內(nèi)或程序內(nèi)使用相應(yīng)信號之前。 指令 AliasIO 在示教器上無法輸入,只能通過離線編程輸入。 指令 AliasIO 需要軟件 Developers Functions 支持。,2020/9/14,輸入輸出指令I(lǐng)nvertDO,Invert

20、DO Signal;,Signal:輸出信號名稱。( signaldo ),應(yīng)用: 將機器人輸出信號值反轉(zhuǎn),0 為 1,1 為 0,在系統(tǒng)參數(shù)內(nèi)也可定義。,實例: InvertDO do15;,2020/9/14,輸入輸出指令I(lǐng)nvertDO,機器人程序內(nèi)指令 InvertDO 被執(zhí)行。,2020/9/14,輸入輸出指令I(lǐng)ODisable,IODisable UnitName, MaxTime;,UnitName:輸入輸出板名稱。( num ) MaxTime:最長等待時間。 ( num ),應(yīng)用: 通過指令可以使機器人輸入輸出板在程序運行時自動失效,系統(tǒng)將一塊輸入輸出板失效需要 25 秒。如

21、果失效時間超過最長等待時間,系統(tǒng)將進入 Error Handler 處理,錯誤代碼為 ERR_IODISABLE,如果例行程序沒有 Error Handler 機器人將停機報錯。,2020/9/14,輸入輸出指令I(lǐng)ODisable,輸入輸出板 cell1 開始失效,最長等待時間為 0,肯定進入 Error Handler 處理。,利用機器人移動至 home 的時間完成輸入輸出板失效。,確認(rèn)輸入輸出板 cell1 失效。,連續(xù) 5 次 RETRY,仍無法完成輸入輸出板失效。,實例: PROC go_home() recover_flag:=1; IODisable “cell1”,0; Move

22、J home,v1000,fine,tool1; recover_flag:=2; IODisable “cell1”,5; ERROR IF ERRNO=ERR_IODISABLE THEN IF recover_flag=1 THEN TRYNEXT; ELSEIF recover_flag=2 THEN RETRY; ENDIF ELSEIF ERRNO=ERR_EXCRTYMAX THEN ErrWrite “IODisable error”,“Restart the program”; Stop; ENDIF ENDPROC,2020/9/14,輸入輸出指令I(lǐng)ODisable,Err

23、or Handling: ERR_IODISABLE 超過最長等待時間,系統(tǒng)仍未完成輸入輸出板失效。 ERR_CALLIO_INTER 系統(tǒng)在執(zhí)行輸入輸出板失效與激活時,當(dāng)前輸入輸出板再次被失效或激活,形成沖突。 ERR_NAME_INVALID 輸入輸出板名稱錯誤或無法進行失效與激活操作。,2020/9/14,輸入輸出指令I(lǐng)OEnable,IOEnable UnitName, MaxTime;,UnitName:輸入輸出板名稱。( num ) MaxTime:最長等待時間。 ( num ),應(yīng)用: 通過這指令可以使機器人輸入輸出板在程序運行時自動激活,系統(tǒng)將一塊輸入輸出板激活需要 25 秒。

24、如果激活時間超過最長等待時間,系統(tǒng)將進入 Error Handler 處理,錯誤代碼為 ERR_IOENABLE,如果例行程序沒有 Error Handler 機器人將停機報錯。,2020/9/14,輸入輸出指令PulseDO,PulseDO HighPLength Signal;,High:輸出脈沖時,輸出信號可以處在高電平。( switch ) Plength:脈沖長度,0.1s32s,默認(rèn)值為 0.2s。( num ) Signal:輸出信號名稱。( signaldo ),應(yīng)用: 機器人輸出數(shù)字脈沖信號,一般作為運輸鏈完成信號或計數(shù)信號。,2020/9/14,輸入輸出指令PulseDO,

25、實例:,PulseDO,PulseDOHigh,脈沖長度,脈沖長度,PulseDOHighPlength:=x,PulseDOHighPlength:=y,2020/9/14,輸入輸出指令PulseDO,限制: 機器人脈沖輸出長度小于 0.01 秒,系統(tǒng)將報錯,不得不重新熱啟動。,例如: WHILE TRUE DO PulseDO do5; ENDWHILE,2020/9/14,輸入輸出指令I(lǐng)OEnable,輸入輸出板 cell1 開始激活,最長等待時間為 0,肯定進入 Error Handler 處理。,通過每次 1 秒進行計數(shù),連續(xù)5 次仍無法激活輸入輸出板,執(zhí)行指令 RAISE。,實例:

26、 VAR num max_retry:=0; . IOEnable “cell1”,0; SetDO cell1_sig3,1; ERROR IF ERRNO=ERR_IOENABLE THEN IF max_retry5 THEN WaitTime 1; max_retry:=max_retry+1; RETRY; ELSE RAISE; ENDIF ENDIF,2020/9/14,輸入輸出指令I(lǐng)OEnable,Error Handling: ERR_IOENABLE 超過最長等待時間,系統(tǒng)仍未完成輸入輸出板激活。 ERR_CALLIO_INTER 系統(tǒng)在執(zhí)行輸入輸出板失效與激活時,當(dāng)前輸入

27、輸出板再次被失效或激活,形成沖突。 ERR_NAME_INVALID 輸入輸出板名稱錯誤或無法進行失效與激活操作。,2020/9/14,輸入輸出指令Reset,Reset Signal;,Signal:機器人輸出信號名稱。( signaldo ),應(yīng)用: 將機器人相應(yīng)數(shù)字輸出信號值置為 0,與指令 Set 對應(yīng),是自動化重要組成部分。,實例: Reset do12;,2020/9/14,輸入輸出指令Set,Set Signal;,Signal:機器人輸出信號名稱。( signaldo ),應(yīng)用: 將機器人相應(yīng)數(shù)字輸出信號值置為 1,與指令 Reset 對應(yīng),是自動化重要組成部分。,實例: Se

28、t do12;,2020/9/14,輸入輸出指令SetAO,SetAO Signal, Value;,Signal:模擬量輸出信號名稱。( signalao ) Value:模擬量輸出信號值。( num ),應(yīng)用: 機器人當(dāng)前模擬量輸出信號輸出相應(yīng)的值,例如:機器人焊接時,通過模擬量輸出控制焊接電壓與送絲速度。,2020/9/14,輸入輸出指令SetAO,實例: SetAO ao2,5.5; SetAO weldcurr,curr_outp;,2020/9/14,輸入輸出指令SetDO,SetDO SDelay Signal, Value;,SDelay:延時輸出時間 s。( num ) Si

29、gnal:輸出信號名稱。( signaldo ) Value:輸出信號值。( dionum ),應(yīng)用: 設(shè)置機器人相應(yīng)數(shù)字輸出信號的值,與指令 Set 與 Reset 雷同,并且可以設(shè)置延時,延時范圍為 0.1s32s,默認(rèn)狀態(tài)為沒有延時。,實例: SetDOSDelay:=0.2,weld,high;,2020/9/14,輸入輸出指令SetGO,SetGO SDelay Signal, Value;,SDelay:延時輸出時間 s。( num ) Signal:輸出信號名稱。( signaldo ) Value:輸出信號值。( dionum ),應(yīng)用: 設(shè)置機器人相應(yīng)組合輸出信號的值 ( 采

30、用 8421 碼 ),可以設(shè)置延時輸出,延時范圍為 0.1s32s,默認(rèn)狀態(tài)為沒有延時。,實例: SetGOSDelay:=0.2,go_Type,10;,2020/9/14,輸入輸出指令WaitDI,WaitDI Signal, Value MaxTimeTimeFlag;,Signal:輸入信號名稱。( signaldi ) Value:輸入信號值。( dionum ) MaxTime:最長等待時間 s。( num ) TimeFlag:超時邏輯量。( bool ),應(yīng)用: 等待數(shù)字輸入信號滿足相應(yīng)值,達(dá)到通信目的,是自動化生產(chǎn)重要組成部分,例如:機器人等待工件到位信號。,2020/9/1

31、4,輸入輸出指令WaitDI,實例: PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1; ENDPROC,PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1MaxTime:=5; ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TPWrite “”; RETRY; ELSE RAISE; ENDIF ENDPROC,機器人等待輸入信號,直到信號 di_Ready 值為 1,才執(zhí)行隨后指

32、令。,機器人等待相應(yīng)輸入信號,如果 5 秒內(nèi)仍沒有等到信號 di_Ready 值為 1,自動進行 Error Handler 處理,如果沒有 Error Handler,機器人停機報錯 。,2020/9/14,輸入輸出指令WaitDI,實例: 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_

33、Ready,1MaxTime:=1TimeFlag:=bTimeout; Incr nCounter; ENDWHILE ENDPROC,機器人等待到位信號,如果 1 秒內(nèi)仍沒有等到信號 di_Ready 值為 1,機器人自動執(zhí)行隨后指令,但此時 TimeFlag 值為 TRUE;機器人等到信號 di_Ready 值為 1,此時,TimeFlag 值為 FALSE。,2020/9/14,輸入輸出指令WaitDO,WaitDO Signal, Value MaxTimeTimeFlag;,Signal:輸入信號名稱。( signaldi ) Value:輸入信號值。( dionum ) MaxT

34、ime:最長等待時間 s。( num ) TimeFlag:超時邏輯量。( bool ),應(yīng)用: 等待數(shù)字輸出信號滿足相應(yīng)值,達(dá)到通信目的,因為輸出信號一般情況下受程序控制,此指令很少使用。,2020/9/14,輸入輸出指令WaitDO,實例: PROC Grip() Set do03_Grip; WaitDO do03_Grip,1; ENDPROC,機器人等待輸出信號,直到信號 do03_Grip 值為 1,才執(zhí)行隨后相應(yīng)指令。,機器人等待相應(yīng)輸出信號,如果 5 秒內(nèi)仍沒有等到信號 do03_Grip 值為 1,自動進行 Error Handler 處理,如果沒有 Error Handle

35、r,機器人停機報錯 。,PROC Grip() Set do03_Grip; WaitDO do03_Grip,1MaxTime:=5; ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TPWrite “”; RETRY; ELSE RAISE; ENDIF ENDPROC,2020/9/14,輸入輸出指令WaitDO,實例: PROC Grip() Set do03_Grip; bTimeout:=TRUE; nCounter:=0; WHILE bTimeout DO IF nCounter3 THEN TPWrite “”; ENDIF IF nCounter3

36、0 THEN Stop; ENDIF WaitDO do03_Grip,1MaxTime:=1TimeFlag:=bTimeout; Incr nCounter; ENDWHILE ENDPROC,機器人等待到位信號,如果 1 秒內(nèi)仍沒有等到信號 do03_Grip 值為 1,機器人自動執(zhí)行隨后指令,但此時 TimeFlag 值為 TRUE;機器人等到信號 do03_Grip 值為 1,此時,TimeFlag 值為 FALSE。,2020/9/14,程序運行停止指令,BreakExit StopExitCycle,2020/9/14,程序運行停止指令Break,Break;,應(yīng)用: 機器人在當(dāng)

37、前指令行立刻停止運行,程序運行指針停留在下一行指令,可以用 Start 鍵繼續(xù)運行機器人。,實例: Break; ,2020/9/14,程序運行停止指令Break,P1,P2,P3,區(qū)別: MoveL p2,v100,z30,tool0; Break; ( Stop; ) MoveL p3,v100,fine,tool0;,Stop,Break,2020/9/14,程序運行停止指令Exit,Exit;,應(yīng)用: 機器人在當(dāng)前指令行停止運行,并且程序重置,程序運行指針停留在主程序第一行。,實例: Exit; ,2020/9/14,程序運行停止指令Stop,Stop NoRegain;,應(yīng)用: 機器

38、人在當(dāng)前指令行停止運行,程序運行指針停留在下一行指令,可以用 Start 鍵繼續(xù)運行機器人,屬于臨時性停止。如果機器人停止期間被手動移動后,然后直接啟動機器人,機器人將警告確認(rèn)路徑,如果此時采用參變量 NoRegain,機器人將直接運行。,NoRegain:路徑恢復(fù)參數(shù)。( switch ),2020/9/14,程序運行停止指令Stop,P1,P2,P3,區(qū)別: MoveL p2,v100,z30,tool0; Stop; ( Break; ) MoveL p3,v100,fine,tool0;,Stop,Break,實例: Stop; ,2020/9/14,程序運行停止指令ExitCycle

39、,ExitCycle;,應(yīng)用: 機器人在當(dāng)前指令行停止運行,并且設(shè)定當(dāng)前循環(huán)結(jié)束,機器人自動從主程序第一行繼續(xù)運行下一個循環(huán)。,2020/9/14,程序運行停止指令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 TPWrit

40、e “I will start on the next item”; ExitCycle; ENDTRAP,2020/9/14,例行程序調(diào)用指令,ProcCallCallByVar,2020/9/14,例行程序調(diào)用指令ProcCall,Procedure Argument;,應(yīng)用: 機器人調(diào)用相應(yīng)例行程序,同時給帶有參數(shù)的例行程序中相應(yīng)參數(shù)賦值。,Procedure:例行程序名稱。( Identifier ) Argument:例行程序參數(shù)。( All ),實例: Weldpipe1; Weldpipe2 10,lowspeed; Weldpipe3 10speed:=20;,2020/9/1

41、4,程序運行停止指令ProcCall,限制: 機器人調(diào)用帶參數(shù)的例行程序時,必須包括所有強制性參數(shù)。 例行程序所有參數(shù)位置次序必須與例行程序設(shè)置一致。 例行程序所有參數(shù)數(shù)據(jù)類型必須與例行程序設(shè)置一致。 例行程序所有參數(shù)數(shù)據(jù)性質(zhì)必須為 Input,Variable 或 Persistent。,2020/9/14,例行程序調(diào)用指令CallByVar,CallByVar Name, Number;,應(yīng)用: 通過指令中相應(yīng)數(shù)據(jù),機器人調(diào)用相應(yīng)例行程序,但無法調(diào)用帶有參數(shù)的例行程序。,Name:例行程序名稱第一部分。( string ) Number:例行程序名稱第二部分。( num ),實例: reg

42、1:=Ginput(gi_Type); CallByVar “Proc”,reg1;,2020/9/14,程序運行停止指令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)無法找到例行程序名稱第二部分。,2020/9/14,程序運行停止指令CallByVar,實例比較: TEST

43、reg1 CASE 1: lf_door door_loc; CASE 2: rf_door door_loc; CASE 3: lr_door door_loc; CASE 4: rr_door door_loc; DEFAULT: EXIT; ENDTEST,%”proc”+NumToStr(reg1,0)% door_loc;,CallByVar “proc”,reg1;,指令 CallByVar 不能調(diào)用帶有參數(shù)的例行程序。,通過 RAPID 結(jié)構(gòu)仍可以調(diào)用帶有參數(shù)的例行程序。,2020/9/14,計時指令,ClkResetClkStart ClkStop,2020/9/14,計時指令

44、ClkReset,ClkReset Clock;,應(yīng)用: 將機器人相應(yīng)時鐘復(fù)位,常用于記錄循環(huán)時間或機器人跟蹤運輸鏈。,Clock:時鐘名稱。( clock ),實例: ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock1; nCycleTime:=ClkRead(clock1); TPWrite “Last Cycle Time: ”Num:=nCycleTime;,2020/9/14,計時指令ClkStart,ClkStart Clock;,應(yīng)用: 啟動機器人相應(yīng)時鐘,常用于記錄循環(huán)時間或機器人跟蹤運輸鏈。機器人時鐘啟動后,時

45、鐘不會因為機器人停止運行或關(guān)機而停止計時。在機器人時鐘運行時,指令 ClkStop 與 ClkReset 仍起作用。,Clock:時鐘名稱。( clock ),2020/9/14,計時指令ClkStart,限制: 機器人時鐘計時超過 4,294,967 秒,即 49 天17 小時 2 分 47 秒,機器人將出錯。Error Handler 代碼為 ERR_OVERFLOW。,實例: ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock1; nCycleTime:=ClkRead(clock1); TPWrite “Last Cycl

46、e Time: ”Num:=nCycleTime;,2020/9/14,計時指令ClkStop,ClkStop Clock;,應(yīng)用: 停止機器人相應(yīng)時鐘,常用于記錄循環(huán)時間或機器人跟蹤運輸鏈。,Clock:時鐘名稱。( clock ),實例: ClkReset clock1; ClkStart clock1; RunCycle; ClkStop clock1; nCycleTime:=ClkRead(clock1); TPWrite “Last Cycle Time: ”Num:=nCycleTime;,2020/9/14,中斷指令,CONNECTIDelete ISignalDI ISign

47、alDO ISignalAI ISignalAO ISleepIWatch IDisableIEnable ITimer,2020/9/14,中斷指令I(lǐng)Delete,IDelete Interrupt;,應(yīng)用: 將機器人相應(yīng)中斷數(shù)據(jù)與相應(yīng)的中斷處理程序之間的連接去除。,Interrupt:中斷數(shù)據(jù)名稱。( intnum ),實例: CONNECT intInspect WITH rAlarm; ISignalDI di01_Vacuum,0,intInspect; IDelete intInspect;,2020/9/14,中斷指令I(lǐng)Delete,限制: 執(zhí)行指令 IDelete 后,當(dāng)前中斷

48、數(shù)據(jù)的連接被完全清除,如需再次使用這個中斷數(shù)據(jù)必須重新用指令 CONNECT 連接至相應(yīng)的中斷處理程序。 在下列情況下,中斷將被自動去除: 重新載入新的運行程序。 機器人運行程序被重置,程序指針回到主程序第一行 ( Start From Beginning )。 機器人程序指針被移至任意一個例行程序第一行 ( Move pp to Routine )。,2020/9/14,中斷指令I(lǐng)SignalDI,ISignalDI Single, Signal, TriggValue, Interrupt;,應(yīng)用: 使用相應(yīng)的數(shù)字輸入信號觸發(fā)相應(yīng)的中斷功能,必須同指令 CONNECT 聯(lián)合使用。,Sing

49、le:單次中斷開關(guān)。( switch ) Signal:觸發(fā)中斷信號。( signaldi ) TriggValue:觸發(fā)信號值。( dionum ) Interrupt:中斷數(shù)據(jù)名稱。( intnum ),2020/9/14,中斷指令I(lǐng)SignalDI,0,1,0,1,中斷觸發(fā),中斷觸發(fā),實例: CONNECT int1 WITH iroutine1; ISignalDISignal di01,1,int1; CONNECT int2 WITH iroutine2; ISignalDI di02,1,int1; ,中斷功能在單次觸發(fā)觸發(fā)后失效。,中斷功能持續(xù)有效,只有在程序重置或運行指令 I

50、Delete 后才失效。,2020/9/14,中斷指令I(lǐng)SignalDI,限制: 當(dāng)一個中斷數(shù)據(jù)完成連接后,這個中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序 ( 包括已經(jīng)連接的中斷處理程序 )。如果需要再次連接至任何中斷處理程序,必須先使用指令 IDelete 將原連接去除。,PROC main() CONNECT int1 WITH r1; ISignalDI di01,1,int1; WHILE TRUE DO ENDWHILE ENDPROC,PROC main() CONNECT int1 WITH r1; ISignalDI di01,1,int1; IDelete int1; ENDP

51、ROC,2020/9/14,中斷指令I(lǐng)SignalDO,ISignalDO Single, Signal, TriggValue, Interrupt;,應(yīng)用: 使用相應(yīng)的數(shù)字輸出信號觸發(fā)相應(yīng)的中斷功能,必須同指令 CONNECT 聯(lián)合使用。,Single:單次中斷開關(guān)。( switch ) Signal:觸發(fā)中斷信號。( signaldo ) TriggValue:觸發(fā)信號值。( dionum ) Interrupt:中斷數(shù)據(jù)名稱。( intnum ),2020/9/14,中斷指令I(lǐng)SignalDO,實例: CONNECT int1 WITH iroutine1; ISignalDOSign

52、al do01,1,int1; CONNECT int2 WITH iroutine2; ISignalDO do02,1,int1; ,0,1,0,1,中斷觸發(fā),中斷觸發(fā),中斷功能在單次觸發(fā)觸發(fā)后失效。,中斷功能持續(xù)有效,只有在程序重置或運行指令 IDelete 后才失效。,2020/9/14,中斷指令I(lǐng)SignalDO,限制: 當(dāng)一個中斷數(shù)據(jù)完成連接后,這個中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序 ( 包括已經(jīng)連接的中斷處理程序 )。如果需要再次連接至任何中斷處理程序,必須先使用指令 IDelete 將原連接去除。,PROC main() CONNECT int1 WITH r1; ISi

53、gnalDO do01,1,int1; WHILE TRUE DO ENDWHILE ENDPROC,PROC main() CONNECT int1 WITH r1; ISignalDO do01,1,int1; IDelete int1; ENDPROC,2020/9/14,中斷指令I(lǐng)SignalAI,ISignalAI Single, Signal, Condition, HighValue, LowValue, DeltaValue, DPos|DNeg Interrupt;,Single:單次中斷開關(guān)。( switch ) Signal:觸發(fā)中斷信號。( signalai ) Con

54、dition:中斷觸發(fā)狀態(tài)。( aiotrigg ) HighValue:最大邏輯值。( num ) LowValue:最小邏輯值。( num ),2020/9/14,中斷指令I(lǐng)SignalAI,DeltaValue:中斷復(fù)位差值。( num ) DPos:正值中斷開關(guān)。( switch ) DNeg:負(fù)值中斷開關(guān)。( switch ) Interrupt:中斷數(shù)據(jù)名稱。( intnum ),ISignalAI Single, Signal, Condition, HighValue, LowValue, DeltaValue, DPos|DNeg Interrupt;,2020/9/14,中

55、斷指令I(lǐng)SignalAI,中斷觸發(fā)狀態(tài): AIO_ABOVE_HIGH 模擬量信號邏輯值大于最大邏輯值 ( HighValue )。 AIO_BELOW_HIGH 模擬量信號邏輯值小于最大邏輯值 ( HighValue )。 AIO_ABOVE_LOW 模擬量信號邏輯值大于最小邏輯值 ( LowValue )。 AIO_BELOW_LOW 模擬量信號邏輯值小于最小邏輯值 ( LowValue )。 AIO_BETWEEN 模擬量信號邏輯值處于最小邏輯值 ( LowValue ) 與最大邏輯值 ( HighValue )之間。,2020/9/14,中斷指令I(lǐng)SignalAI,中斷觸發(fā)狀態(tài): AI

56、O_OUTSIDE 模擬量信號邏輯值大于最大邏輯值 ( HighValue ) 或小于最小邏輯值 ( LowValue )。 AIO_ALWAYS 總是觸發(fā)中斷,與模擬量信號邏輯值處于最小邏輯值 ( LowValue ) 與最大邏輯值 ( HighValue )無關(guān)。,應(yīng)用: 使用相應(yīng)的模擬量輸入信號觸發(fā)相應(yīng)的中斷功能,必須同指令 CONNECT 聯(lián)合使用。,2020/9/14,中斷指令I(lǐng)SignalAI,實例: CONNECT int1 WITH iroutine1; ISignalAISignal ai1,AIO_BETWEEN,2,1,0,int1; CONNECT int2 WITH

57、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; ,中斷功能在單次觸發(fā)觸發(fā)后失效。,中斷功能持續(xù)有效,只有在程序重置或運行指令 IDelete 后才失效。,2020/9/14,中斷指令I(lǐng)SignalAI,判斷中斷條件。 ( Condition, HighValue, LowValue ),TRUE,如果沒有參變量 DPos 與 Dneg ABS(CurrentValue - RefValue)

58、DeltaValue,RefValue := CurrentValue,FALSE,如果使用參變量 DPos (CurrentValue - RefValue) DeltaValue,FALSE,如果使用參變量 DNeg (RefValue - CurrentValue) DeltaValue,FALSE,ABS(CurrentValue - RefValue) DeltaValue,FALSE,RefValue := CurrentValue,執(zhí)行中斷處理,TRUE,TRUE,TRUE,RefValue := CurrentValue,FALSE,TRUE,2020/9/14,中斷指令I(lǐng)Si

59、gnalAI,限制: 當(dāng)前最大邏輯值 ( HighValue ) 與最小邏輯值 ( LowValue ) 必須在模擬量信號所定義的邏輯值范圍內(nèi)。 最大邏輯值 ( HighValue ) 必須大于最小邏輯值 ( LowValue )。 中斷復(fù)位差值 ( DeltaValue ) 必須為正數(shù)或 0。 指令 ISignalDI 的限制,仍適用。,2020/9/14,中斷指令I(lǐng)SignalAO,ISignalAO Single, Signal, Condition, HighValue, LowValue, DeltaValue, DPos|DNeg Interrupt;,Single:單次中斷開關(guān)。( switch ) Signal:觸發(fā)中斷信號。( signalao ) Condition:中斷觸發(fā)狀態(tài)。( aiotrigg ) HighValue:最大邏輯值。( num ) LowValue:最小邏輯值。( num ),2020/9

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論