ABB機(jī)器人指令培訓(xùn)教材_第1頁
ABB機(jī)器人指令培訓(xùn)教材_第2頁
ABB機(jī)器人指令培訓(xùn)教材_第3頁
ABB機(jī)器人指令培訓(xùn)教材_第4頁
ABB機(jī)器人指令培訓(xùn)教材_第5頁
已閱讀5頁,還剩185頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ABB機(jī)器人指令培訓(xùn)教材2024/9/26數(shù)據(jù)與數(shù)據(jù)類型2024/9/26數(shù)據(jù)構(gòu)成類型基本數(shù)據(jù)類型。 最根本的數(shù)據(jù)類型,無法分離與組合。組合數(shù)據(jù)類型。 由多個(gè)基本數(shù)據(jù)類型組成的新數(shù)據(jù)類型,也可以由多個(gè)基本數(shù)據(jù)類型與多個(gè)組合數(shù)據(jù)類型組成?;麛?shù)據(jù)類型。 除了名稱,這種數(shù)據(jù)類型與原數(shù)據(jù)類型相同,可以互相賦值。2024/9/26基本數(shù)據(jù)類型ABB

機(jī)器人有三種基本數(shù)據(jù)類型:Num-數(shù)字?jǐn)?shù)據(jù)

1 3.14159 4.31E2 -5E-1String-字符串?dāng)?shù)據(jù)

雙引號(hào)內(nèi)最長為80個(gè)字節(jié)。 “Thisisalongstring.”Bool-邏輯量數(shù)據(jù)

只有TRUE

或FALSE。其他數(shù)據(jù)類型都由這三種基本數(shù)據(jù)類型組合或化名而成。2024/9/26組合數(shù)據(jù)類型實(shí)例pos組成 值 數(shù)據(jù)類型

x 10 numy 45 numz 1.3 numorient組成 值 數(shù)據(jù)類型

q1 1 numq2 0 numq3 0 numq4 0 numVARpospos1:=[10,45,1.3];VARorientorient1:=[1.0,0,0,0];2024/9/26組合數(shù)據(jù)類型實(shí)例組成組合數(shù)據(jù)類型的所有基本數(shù)據(jù)都可以單獨(dú)賦值。PERStooldatagripper:=

[TRUE,[[97.4,0,223.1],[0.924,0,0.383,0]],[5,[23,0,75],[1,0,0,0],0,0,0]];

gripper.robhold:=TRUE; gripper.tframe.trans.z:=224;2024/9/26化名數(shù)據(jù)類型 VARdionumhigh:=1;

VARnumlevel;level:=high;除了名稱,這種數(shù)據(jù)類型與原數(shù)據(jù)類型相同,可以互相賦值。2024/9/26數(shù)據(jù)命名數(shù)據(jù)命名必須符合以下要求:命名只能使用字母、數(shù)字與下劃線。名稱最長使用16個(gè)字符。第一個(gè)字符必須為字母。好的數(shù)據(jù)名稱能幫助理解程序。數(shù)據(jù)名稱不能使用

RAPID語言專用詞,例如:num、MoveL、BASE

等。機(jī)器人不區(qū)分?jǐn)?shù)據(jù)名稱中字母大小寫,例如:football與FoOtBAlL等同。2024/9/26數(shù)據(jù)性質(zhì)在機(jī)器人程序中,根據(jù)不同的工況,有三種數(shù)據(jù)性質(zhì)可以選擇。VAR Variable,變量。CONST Constant,常量。PERS Persistent,可變量。2024/9/26數(shù)據(jù)性質(zhì)-VAR實(shí)例:VARnummint;VARnumcherry:=100;VARboolTimeOut:=TRUE;VARstringstBase:=”Welcome”;變量,用于程序運(yùn)行時(shí),記憶相應(yīng)數(shù)據(jù)值。在程序自動(dòng)運(yùn)行時(shí),變量可以被賦值。當(dāng)機(jī)器人被重置(Reset),變量數(shù)據(jù)值會(huì)自動(dòng)復(fù)位,回到初始值。2024/9/26數(shù)據(jù)性質(zhì)-CONST實(shí)例:CONSTstringstr:=”ABBRobotics…”;CONSTrobtargethome0p:=[[1962.64,334.13,-177.17],[0.420452,0.582636,-0.576927,-0.388473],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

所有常量在被定義時(shí),必須被賦予一個(gè)相應(yīng)的初始值。常量,在程序自動(dòng)運(yùn)行時(shí),其記憶的數(shù)據(jù)值無法更改與賦值。2024/9/26數(shù)據(jù)性質(zhì)-PERS實(shí)例:

PERSbooldirty:=FALSE;

PERSnumnCouther:=0;所有可變量在被定義時(shí),必須被賦予一個(gè)相應(yīng)的初始值。在程序自動(dòng)運(yùn)行時(shí),可變量可以被賦值。當(dāng)機(jī)器人被重置(Reset),可變量數(shù)據(jù)值會(huì)自動(dòng)記憶數(shù)據(jù)當(dāng)前值,并更改數(shù)據(jù)初始值。在機(jī)器人系統(tǒng)內(nèi),可變量數(shù)據(jù)數(shù)量受系統(tǒng)參數(shù)定義限制。2024/9/26數(shù)據(jù)范圍在機(jī)器人程序中,根據(jù)不同的工況,有三種數(shù)據(jù)范圍可以選擇。全體數(shù)據(jù)-Global。 一般在模塊起始處,在所有例行程序以外,并且不帶LOCAL的數(shù)據(jù),所有模塊與例行程序都可使用此數(shù)據(jù)。模塊數(shù)據(jù)-Local。 一般在模塊起始處,在所有例行程序以外,并且?guī)в蠰OCAL的數(shù)據(jù),只有當(dāng)前模塊與其例行程序可使用此數(shù)據(jù)。2024/9/26數(shù)據(jù)范圍例行程序數(shù)據(jù)。

被定義在例行程序內(nèi)的數(shù)據(jù),只有當(dāng)前例行程序可使用此數(shù)據(jù)。 只有VAR與CONST數(shù)據(jù)可以被定義為例行程序數(shù)據(jù)。 當(dāng)程序自動(dòng)運(yùn)行至此例行程序時(shí),例行程序數(shù)據(jù)被啟用,當(dāng)此例行程序執(zhí)行完成,當(dāng)前數(shù)據(jù)值將丟失,每次執(zhí)行此例行程序時(shí),其例行程序數(shù)據(jù)值都為初始值。2024/9/26數(shù)據(jù)范圍實(shí)例MODULEA

VARnumnTime:=0;ENDMODULEMODULEB LOCALVARnumnTime:=0; PROCroutine1( VARnumnTime:=0) ENDPROCENDMODULE在相同的數(shù)據(jù)范圍內(nèi),數(shù)據(jù)名稱必須不同;在不同的數(shù)據(jù)范圍內(nèi),數(shù)據(jù)名稱允許相同。一個(gè)模塊數(shù)據(jù)可以 與一個(gè)名稱相同的 全體數(shù)據(jù)共存,但 這兩個(gè)數(shù)據(jù)必須處 在不同模塊內(nèi)。一個(gè)例行程序數(shù)據(jù) 可以與一個(gè)名稱相 同的模塊數(shù)據(jù)或全 體數(shù)據(jù)共存。2024/9/26數(shù)據(jù)表達(dá)式通過表達(dá)式(+-*/),機(jī)器人可以對(duì)變量與常量數(shù)據(jù)進(jìn)行賦值。實(shí)例:33+45/52*a-b/35tool1.tframe.trans.x+23.3pHome.trans.z+44.52024/9/26數(shù)據(jù)賦值表達(dá)式* num*num multiplication num* num*posorpos*num scalarvectormultiplication pos* pos*pos vectorproduct pos* orient*orient linkingofrotations orient/ num/num division numdiv numdivnum(onlyinteger) integerdivision nummod nummodnum(onlyinteger) integermodulo num+ num+num addition num+ +numor+pos unaryplus same+ pos+pos vectoraddition pos+ string+string stringconcatenation string- num-num subtraction num- -numor-pos unaryminus same- pos-pos vectorsubtraction pos2024/9/26數(shù)據(jù)邏輯表達(dá)式< num<num lessthan bool<= num<=num lessthanorequal bool= anytype=anytype equal bool>= num>=num greaterthanorequal bool> num>num greaterthan bool<> anytype<>anytype notequalto booland boolandbool and boolxor boolxorbool exclusiveor boolor boolorbool or boolnot notbool negation bool2024/9/26數(shù)據(jù)初始值實(shí)例:

CONSTnuma:=2; CONSTnumb:=3; CONSTnumc:=a+b; VARnumd:=a+b; PERSnume:=5; PERSnume:=a+b;變量與常量數(shù)據(jù)初始值可以用一個(gè)賦值表達(dá)式表示??勺兞繑?shù)據(jù)初始值必須為一個(gè)定值,不允許使用賦值表達(dá)式。2024/9/26數(shù)據(jù)初始值2024/9/26賦值實(shí)例:a:=1;x:=x+3.45;pen.tframe.trans.x:=145.3;pen.tframe.trans.x:=pen.tframe.trans.x+3.3;pen:=tool1;機(jī)器人賦值指令“:=”,“=”只是判斷符號(hào)。程序運(yùn)行時(shí),常量數(shù)據(jù)不允許賦值。數(shù)據(jù)賦值時(shí),變量與值數(shù)據(jù)類型必須相同。2024/9/26運(yùn)動(dòng)控制指令-AccSetAccSetAcc,Ramp;

Acc: 機(jī)器人加速度百分率。

(num)Ramp: 機(jī)器人加速度坡度。

(num)應(yīng)用: 當(dāng)機(jī)器人運(yùn)行速度改變時(shí),對(duì)所產(chǎn)生的相應(yīng)加速度進(jìn)行限制,使機(jī)器人高速運(yùn)行時(shí)更平緩,但會(huì)延長循環(huán)時(shí)間,系統(tǒng)默認(rèn)值為AccSet100,100;。2024/9/26運(yùn)動(dòng)控制指令-AccSet實(shí)例:限制:機(jī)器人加速度百分率值最小為20,小于20以20計(jì),機(jī)器人加速度坡度值最小為10,小于10以10計(jì)。機(jī)器人冷啟動(dòng),新程序載入與程序重置后,系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值。2024/9/26運(yùn)動(dòng)控制指令-VelSetVelSetOverride,Max;

Override:機(jī)器人運(yùn)行速率%。

(num)Max: 最大運(yùn)行速度mm/s。 (num)應(yīng)用: 對(duì)機(jī)器人運(yùn)行速度進(jìn)行限制,機(jī)器人運(yùn)動(dòng)指令中均帶有運(yùn)行速度,在執(zhí)行運(yùn)動(dòng)速度控制指令VelSet

后,實(shí)際運(yùn)行速度為運(yùn)動(dòng)指令規(guī)定的運(yùn)行速度乘以機(jī)器人運(yùn)行速率,并且不超過機(jī)器人最大運(yùn)行速度,系統(tǒng)默認(rèn)值為VelSet100,5000;。2024/9/26運(yùn)動(dòng)控制指令-VelSet500mm/s800mm/s10s800mm/s1000mm/s1000mm/s6.25s實(shí)例:

VelSet50,800; MoveLp1,v1000,z10,tool1; MoveLp2,v1000\V:=2000,z10,tool1; MoveLp3,v1000\T:=5,z10,tool1; VelSet80,1000; MoveLp1,v1000,z10,tool1; MoveLp2,v5000,z10,tool1; MoveLp3,v1000\V:=2000,z10,tool1; MoveLp4,v1000\T:=5,z10,tool1;2024/9/26運(yùn)動(dòng)控制指令-VelSet限制:機(jī)器人冷啟動(dòng),新程序載入與程序重置后,系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值。機(jī)器人運(yùn)動(dòng)使用參變量[\T]時(shí),最大運(yùn)行速度將不起作用。Override對(duì)速度數(shù)據(jù)(speeddata)內(nèi)所有項(xiàng)都起作用,例如:TCP、方位及外軸。但對(duì)焊接參數(shù)welddata與seamdata內(nèi)機(jī)器人運(yùn)動(dòng)速度不起作用。Max只對(duì)速度數(shù)據(jù)(speeddata)內(nèi)TCP這項(xiàng)起作用。2024/9/26運(yùn)動(dòng)控制指令-ConfJConfJ[\On]|[\Off];

[\On]: 啟用軸配置數(shù)據(jù)。

(switch)關(guān)節(jié)運(yùn)動(dòng)時(shí),機(jī)器人移動(dòng)至絕對(duì)ModPos

點(diǎn),如果無法到達(dá),程序?qū)⑼V惯\(yùn)行。

[\Off]: 默認(rèn)軸配置數(shù)據(jù)。

(switch)

關(guān)節(jié)運(yùn)動(dòng)時(shí),機(jī)器人移動(dòng)至ModPos

點(diǎn),軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值。2024/9/26運(yùn)動(dòng)控制指令-ConfJ應(yīng)用: 對(duì)機(jī)器人運(yùn)行姿態(tài)進(jìn)行限制與調(diào)整,程序運(yùn)行時(shí),使機(jī)器人運(yùn)行姿態(tài)得到控制。系統(tǒng)默認(rèn)值為ConfJ\On;。限制:機(jī)器人冷啟動(dòng),新程序載入與程序重置后,系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值。實(shí)例:

ConfJ\On; … ConfJ\Off;2024/9/26運(yùn)動(dòng)控制指令-ConfLConfL[\On]|[\Off];

[\On]: 啟用軸配置數(shù)據(jù)。

(switch)直線運(yùn)動(dòng)時(shí),機(jī)器人移動(dòng)至絕對(duì)ModPos

點(diǎn),如果無法到達(dá),程序?qū)⑼V惯\(yùn)行。

[\Off]: 默認(rèn)軸配置數(shù)據(jù)。

(switch)

直線運(yùn)動(dòng)時(shí),機(jī)器人移動(dòng)至ModPos

點(diǎn),軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值。2024/9/26運(yùn)動(dòng)控制指令-ConfL應(yīng)用: 對(duì)機(jī)器人運(yùn)行姿態(tài)進(jìn)行限制與調(diào)整,程序運(yùn)行時(shí),使機(jī)器人運(yùn)行姿態(tài)得到控制。系統(tǒng)默認(rèn)值為ConfL\On;。限制:機(jī)器人冷啟動(dòng),新程序載入與程序重置后,系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值。實(shí)例:

ConfL\On; … ConfL\Off;2024/9/26運(yùn)動(dòng)控制指令-SingAreaSingArea[\Wrist]|[\Off];

[\Wrist]: 啟用位置方位調(diào)整。

(switch)機(jī)器人運(yùn)動(dòng)時(shí),為了避免死機(jī),位置點(diǎn)允許其方位值有些許改變,例如:在五軸零度時(shí),機(jī)器人四六軸平行。

[\Off]: 關(guān)閉位置方位調(diào)整。

(switch)

機(jī)器人運(yùn)動(dòng)時(shí),不允許位置點(diǎn)方位改變,是機(jī)器人的默認(rèn)狀態(tài)。2024/9/26運(yùn)動(dòng)控制指令-SingArea應(yīng)用: 當(dāng)前指令通過對(duì)機(jī)器人位置點(diǎn)姿態(tài)進(jìn)行些許改變,可以絕對(duì)避免機(jī)器人運(yùn)行時(shí)死機(jī),但是,機(jī)器人運(yùn)行路徑會(huì)受影響,姿態(tài)得不到控制,通常使用于通過復(fù)雜姿態(tài)點(diǎn),絕對(duì)不能作為工作點(diǎn)使用。實(shí)例:

SingArea\Wrist; … SingArea\Off;2024/9/26運(yùn)動(dòng)控制指令-SingArea限制:以下情況機(jī)器人將自動(dòng)恢復(fù)默認(rèn)值SingArea\Off。機(jī)器人冷啟動(dòng)。系統(tǒng)載入新的程序。程序重置(StartFromBeginning)。2024/9/26運(yùn)動(dòng)控制指令-PathResol

PathResolPathSampleTime;

PathSampleTime: 路徑控制%。(num)應(yīng)用: 當(dāng)前指令用于更改機(jī)器人主機(jī)系統(tǒng)參數(shù),調(diào)整機(jī)器人路徑采樣時(shí)間,從而達(dá)到控制機(jī)器人運(yùn)行路徑的效果,通過此指令可以提高機(jī)器人運(yùn)動(dòng)精度或縮短循環(huán)時(shí)間,路徑控制默認(rèn)值為100%,調(diào)整范圍為25%-400%,路徑控制百分比越小,運(yùn)動(dòng)精度越高,占用CPU資源也越多。2024/9/26運(yùn)動(dòng)控制指令-PathResol實(shí)例:

MoveJp1,v1000,fine,tool1; PathResol150; 機(jī)器人在臨界運(yùn)動(dòng)狀態(tài)(重載、高速、路徑變化復(fù)雜情況下接近最大工作區(qū)域),增加路徑控制值,可以避免頻繁死機(jī)。 外軸以很低的速度與機(jī)器人聯(lián)動(dòng),增加路徑控制值,可以避免頻繁死機(jī)。 機(jī)器人進(jìn)行高頻率擺動(dòng)弧焊時(shí),需要很高的路徑采樣時(shí)間,需要減小路徑控制值。 機(jī)器人進(jìn)行小圓周或小范圍復(fù)雜運(yùn)動(dòng)時(shí),需要很高精度,需要減小路徑控制值。2024/9/26運(yùn)動(dòng)控制指令-PathResol限制:機(jī)器人必須在完全停止后才能更改路徑控制值,否則,機(jī)器人將默認(rèn)一個(gè)停止點(diǎn),并且顯示錯(cuò)誤信息50146。機(jī)器人正在更改路徑控制值時(shí),機(jī)器人被強(qiáng)制停止運(yùn)行,機(jī)器人將不能立刻恢復(fù)正常運(yùn)行(Restart)。以下情況機(jī)器人將自動(dòng)恢復(fù)默認(rèn)值100%。機(jī)器人冷啟動(dòng)。系統(tǒng)載入新的程序。程序重置(StartFromBeginning)。2024/9/26運(yùn)動(dòng)控制指令-SoftAct SoftAct[\MechUnit,]

Axis,Softness

[\Ramp];應(yīng)用: 當(dāng)前指令用于軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng),軟化值范圍0%-100%,軟化坡度范圍>=100%,此指令必須與指令SoftDeact同時(shí)使用,通常不使用于工作位置。

[\MechUnit]: 軟化外軸名稱。 (mecunit)Axis: 軟化轉(zhuǎn)軸號(hào)碼。 (num)Softness: 軟化值%。 (num)[\Ramp]: 軟化坡度%。 (num)2024/9/26運(yùn)動(dòng)控制指令-SoftAct實(shí)例:

SoftAct3,20; SoftAct1,90\Ramp:=150; SoftAct\MechUnit:=orbit1,1,40\Ramp:=120;限制:機(jī)器人被強(qiáng)制停止運(yùn)行后,軟伺服設(shè)置將自動(dòng)失效。同一轉(zhuǎn)軸軟化伺服不允許被連續(xù)設(shè)置兩次。 … SoftAct3,20; SoftAct3,30; … … SoftAct3,20; MoveJ*,v100,fine,tool1; SoftAct3,30; …2024/9/26運(yùn)動(dòng)控制指令-SoftDeact

SoftDeact[\Ramp];

[\Ramp]: 軟化坡度,>=100%。 (num)應(yīng)用: 當(dāng)前指令用于使軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng)指令SoftAct失效。實(shí)例:

SoftAct3,20; SoftDeact; SoftAct1,90; SoftDeact\Ramp:=150;2024/9/26外軸激活指令-ActUnitActUnitMecUnit;

MecUnit: 外軸名。

(mecunit)應(yīng)用:

將機(jī)器人一個(gè)外軸激活,例如:當(dāng)多個(gè)外軸公用一個(gè)驅(qū)動(dòng)板時(shí),通過外軸激活指令A(yù)ctUnit

選擇當(dāng)前所使用的外軸。2024/9/26外軸激活指令-ActUnitp10,外軸不動(dòng)。p20,外軸聯(lián)動(dòng)track_motion。p30,外軸聯(lián)動(dòng)orbit_a。實(shí)例:

MoveLp10,v100,fine,tool1; ActUnittrack_motion; MoveLp20,v100,z10,tool1; DeactUnittrack_motion; ActUnitorbit_a; MoveLp30,v100,z10,tool1;限制:不能在指令StorePath…RestoPath內(nèi)使用。不能在預(yù)置程序RESTART內(nèi)使用。不能在機(jī)器人轉(zhuǎn)軸處于獨(dú)立狀態(tài)時(shí)使用。2024/9/26外軸激活指令-DeactUnitDeactUnitMecUnit;

MecUnit: 外軸名。

(mecunit)應(yīng)用:

使機(jī)器人一個(gè)外軸失效,例如:當(dāng)多個(gè)外軸公用一個(gè)驅(qū)動(dòng)板時(shí),通過外軸激活指令DeactUnit

使當(dāng)前所使用的外軸失效。2024/9/26外軸激活指令-DeactUnitp10,外軸不動(dòng)。p20,外軸聯(lián)動(dòng)track_motion。p30,外軸聯(lián)動(dòng)orbit_a。實(shí)例:

MoveLp10,v100,fine,tool1; ActUnittrack_motion; MoveLp20,v100,z10,tool1; DeactUnittrack_motion; ActUnitorbit_a; MoveLp30,v100,z10,tool1;限制:不能在指令StorePath…RestoPath內(nèi)使用。不能在預(yù)置程序RESTART內(nèi)使用。2024/9/26計(jì)數(shù)指令-AddAddName,AddValue;

Name: 數(shù)據(jù)名稱。 (num)AddValue: 增加的值。

(num)應(yīng)用:

在一個(gè)數(shù)字?jǐn)?shù)據(jù)值上增加相應(yīng)的值,可以用賦值指令替代。實(shí)例:

Addreg1,3;

等同于

reg1:=reg1+3;

Addreg1,-reg2;

等同于

reg1:=reg1-reg2;2024/9/26計(jì)數(shù)指令-ClearClearName;

Name: 數(shù)據(jù)名稱。 (num)應(yīng)用:

將一個(gè)數(shù)字?jǐn)?shù)據(jù)的值歸零,可以用賦值指令替代。實(shí)例:

Clearreg1;

等同于

reg1:=0;2024/9/26計(jì)數(shù)指令-IncrIncrName;

Name: 數(shù)據(jù)名稱。 (num)應(yīng)用:

在一個(gè)數(shù)字?jǐn)?shù)據(jù)值上增加1,可以用賦值指令替代,一般用于產(chǎn)量計(jì)數(shù)。實(shí)例:

Incrreg1;

等同于

reg1:=reg1+1;2024/9/26計(jì)數(shù)指令-DecrDecrName;

Name: 數(shù)據(jù)名稱。 (num)應(yīng)用:

在一個(gè)數(shù)字?jǐn)?shù)據(jù)值上減去1,可以用賦值指令替代,一般用于產(chǎn)量計(jì)數(shù)。實(shí)例:

Decrreg1; 等同于

reg1:=reg1-1;2024/9/26輸入輸出指令-AliasIOAliasIOFromSignal,ToSignal;

FromSignal: 機(jī)器人系統(tǒng)參數(shù)內(nèi)所定義的 信號(hào)名稱。

(signalxxorstring)ToSignal: 機(jī)器人程序內(nèi)所使用的信號(hào) 名稱。

(signalxx)應(yīng)用: 對(duì)機(jī)器人系統(tǒng)參數(shù)內(nèi)定義的信號(hào)名稱進(jìn)行化名,給機(jī)器人程序使用,一般使用與LoadedModules或Built-inModules內(nèi)。例如:多臺(tái)機(jī)器人使用相同系統(tǒng)參數(shù)。2024/9/26輸入輸出指令-AliasIOAlias_do,在機(jī)器人程序內(nèi)定義。config_do,在系統(tǒng)參數(shù)內(nèi)定義。實(shí)例:

VARsignaldoalias_do; CONSTstringconfig_string:="config_do"; PROCprog_start() AliasIOconfig_do,alias_do; AliasIOconfig_string,alias_do; ENDPROC2024/9/26輸入輸出指令-AliasIO限制:指令A(yù)liasIO必須放置在預(yù)置程序START內(nèi)或程序內(nèi)使用相應(yīng)信號(hào)之前。指令A(yù)liasIO在示教器上無法輸入,只能通過離線編程輸入。指令A(yù)liasIO需要軟件Developer’sFunctions

支持。2024/9/26輸入輸出指令-InvertDOInvertDOSignal;

Signal:

輸出信號(hào)名稱。

(signaldo)應(yīng)用: 將機(jī)器人輸出信號(hào)值反轉(zhuǎn),0為1,1為0,在系統(tǒng)參數(shù)內(nèi)也可定義。實(shí)例:

InvertDOdo15;2024/9/26輸入輸出指令-InvertDO機(jī)器人程序內(nèi)指令I(lǐng)nvertDO被執(zhí)行。2024/9/26輸入輸出指令-IODisableIODisableUnitName,MaxTime;

UnitName: 輸入輸出板名稱。(num)MaxTime: 最長等待時(shí)間。 (num)應(yīng)用: 通過指令可以使機(jī)器人輸入輸出板在程序運(yùn)行時(shí)自動(dòng)失效,系統(tǒng)將一塊輸入輸出板失效需要2-5秒。如果失效時(shí)間超過最長等待時(shí)間,系統(tǒng)將進(jìn)入ErrorHandler處理,錯(cuò)誤代碼為ERR_IODISABLE,如果例行程序沒有ErrorHandler機(jī)器人將停機(jī)報(bào)錯(cuò)。2024/9/26輸入輸出指令-IODisable輸入輸出板cell1開始失效,最長等待時(shí)間為0,肯定進(jìn)入ErrorHandler處理。利用機(jī)器人移動(dòng)至home的時(shí)間完成輸入輸出板失效。確認(rèn)輸入輸出板cell1失效。連續(xù)5次RETRY,仍無法完成輸入輸出板失效。實(shí)例:

PROCgo_home() recover_flag:=1; IODisable“cell1”,0; MoveJhome,v1000,fine,tool1; recover_flag:=2; IODisable“cell1”,5; ERROR IFERRNO=ERR_IODISABLETHEN IFrecover_flag=1THEN TRYNEXT; ELSEIFrecover_flag=2THEN RETRY; ENDIF ELSEIFERRNO=ERR_EXCRTYMAXTHEN ErrWrite“IODisableerror”,“Restarttheprogram”; Stop; ENDIF ENDPROC2024/9/26輸入輸出指令-IODisableErrorHandling:ERR_IODISABLE 超過最長等待時(shí)間,系統(tǒng)仍未完成輸入輸出板失效。ERR_CALLIO_INTER 系統(tǒng)在執(zhí)行輸入輸出板失效與激活時(shí),當(dāng)前輸入輸出板再次被失效或激活,形成沖突。ERR_NAME_INVALID 輸入輸出板名稱錯(cuò)誤或無法進(jìn)行失效與激活操作。2024/9/26輸入輸出指令-IOEnableIOEnableUnitName,MaxTime;

UnitName: 輸入輸出板名稱。(num)MaxTime: 最長等待時(shí)間。 (num)應(yīng)用: 通過這指令可以使機(jī)器人輸入輸出板在程序運(yùn)行時(shí)自動(dòng)激活,系統(tǒng)將一塊輸入輸出板激活需要2-5秒。如果激活時(shí)間超過最長等待時(shí)間,系統(tǒng)將進(jìn)入ErrorHandler處理,錯(cuò)誤代碼為ERR_IOENABLE,如果例行程序沒有ErrorHandler機(jī)器人將停機(jī)報(bào)錯(cuò)。2024/9/26輸入輸出指令-IOEnable輸入輸出板cell1開始激活,最長等待時(shí)間為0,肯定進(jìn)入ErrorHandler處理。通過每次1秒進(jìn)行計(jì)數(shù),連續(xù)5次仍無法激活輸入輸出板,執(zhí)行指令RAISE。實(shí)例:

VARnummax_retry:=0; ... IOEnable“cell1”,0; SetDOcell1_sig3,1;ERROR IFERRNO=ERR_IOENABLETHEN IFmax_retry<5THEN WaitTime1; max_retry:=max_retry+1; RETRY; ELSE RAISE; ENDIF ENDIF2024/9/26輸入輸出指令-IOEnableErrorHandling:ERR_IOENABLE 超過最長等待時(shí)間,系統(tǒng)仍未完成輸入輸出板激活。ERR_CALLIO_INTER 系統(tǒng)在執(zhí)行輸入輸出板失效與激活時(shí),當(dāng)前輸入輸出板再次被失效或激活,形成沖突。ERR_NAME_INVALID 輸入輸出板名稱錯(cuò)誤或無法進(jìn)行失效與激活操作。2024/9/26輸入輸出指令-PulseDOPulseDO[\High][\PLength]

Signal;

[\High]: 輸出脈沖時(shí),輸出信號(hào)可以 處在高電平。 (switch)[\Plength]: 脈沖長度,0.1s-32s,默認(rèn) 值為0.2s。 (num)Signal: 輸出信號(hào)名稱。 (signaldo)應(yīng)用: 機(jī)器人輸出數(shù)字脈沖信號(hào),一般作為運(yùn)輸鏈完成信號(hào)或計(jì)數(shù)信號(hào)。2024/9/26輸入輸出指令-PulseDO實(shí)例:PulseDOPulseDO\High脈沖長度脈沖長度PulseDO\High\Plength:=x

PulseDO\High\Plength:=y2024/9/26輸入輸出指令-PulseDO限制:機(jī)器人脈沖輸出長度小于0.01秒,系統(tǒng)將報(bào)錯(cuò),不得不重新熱啟動(dòng)。例如:

WHILETRUEDO PulseDOdo5; ENDWHILE2024/9/26輸入輸出指令-ResetResetSignal;

Signal: 機(jī)器人輸出信號(hào)名稱。

(signaldo)應(yīng)用: 將機(jī)器人相應(yīng)數(shù)字輸出信號(hào)值置為0,與指令Set對(duì)應(yīng),是自動(dòng)化重要組成部分。實(shí)例:

Resetdo12;2024/9/26輸入輸出指令-SetSetSignal;

Signal: 機(jī)器人輸出信號(hào)名稱。

(signaldo)應(yīng)用: 將機(jī)器人相應(yīng)數(shù)字輸出信號(hào)值置為1,與指令Reset對(duì)應(yīng),是自動(dòng)化重要組成部分。實(shí)例:

Setdo12;2024/9/26輸入輸出指令-SetAOSetAOSignal,Value;

Signal: 模擬量輸出信號(hào)名稱。

(signalao)Value: 模擬量輸出信號(hào)值。 (num)應(yīng)用: 機(jī)器人當(dāng)前模擬量輸出信號(hào)輸出相應(yīng)的值,例如:機(jī)器人焊接時(shí),通過模擬量輸出控制焊接電壓與送絲速度。2024/9/26輸入輸出指令-SetAO實(shí)例:

SetAOao2,5.5; SetAOweldcurr,curr_outp;2024/9/26輸入輸出指令-SetDOSetDO[\SDelay]

Signal,Value; [\SDelay]: 延時(shí)輸出時(shí)間s。 (num)Signal: 輸出信號(hào)名稱。

(signaldo)Value:

輸出信號(hào)值。 (dionum)應(yīng)用:

設(shè)置機(jī)器人相應(yīng)數(shù)字輸出信號(hào)的值,與指令Set與Reset雷同,并且可以設(shè)置延時(shí),延時(shí)范圍為0.1s-32s,默認(rèn)狀態(tài)為沒有延時(shí)。實(shí)例:

SetDO\SDelay:=0.2,weld,high;2024/9/26輸入輸出指令-SetGOSetGO[\SDelay]

Signal,Value; [\SDelay]: 延時(shí)輸出時(shí)間s。 (num)Signal: 輸出信號(hào)名稱。

(signaldo)Value:

輸出信號(hào)值。 (dionum)應(yīng)用: 設(shè)置機(jī)器人相應(yīng)組合輸出信號(hào)的值(采用8421碼),可以設(shè)置延時(shí)輸出,延時(shí)范圍為0.1s-32s,默認(rèn)狀態(tài)為沒有延時(shí)。實(shí)例:

SetGO\SDelay:=0.2,go_Type,10;2024/9/26輸入輸出指令-WaitDI WaitDISignal,Value

[\MaxTime][\TimeFlag];

Signal: 輸入信號(hào)名稱。 (signaldi)Value: 輸入信號(hào)值。 (dionum)[\MaxTime]: 最長等待時(shí)間

s。(num)

[\TimeFlag]: 超時(shí)邏輯量。 (bool)應(yīng)用: 等待數(shù)字輸入信號(hào)滿足相應(yīng)值,達(dá)到通信目的,是自動(dòng)化生產(chǎn)重要組成部分,例如:機(jī)器人等待工件到位信號(hào)。2024/9/26輸入輸出指令-WaitDI實(shí)例:

PROCPickPart() MoveJpPrePick,vFastEmpty,zBig,tool1; WaitDIdi_Ready,1; … ENDPROC

PROCPickPart() MoveJpPrePick,vFastEmpty,zBig,tool1; WaitDIdi_Ready,1\MaxTime:=5; … ERROR IFERRNO=ERR_WAIT_MAXTIMETHEN TPWrite“……”; RETRY; ELSE RAISE; ENDIF ENDPROC機(jī)器人等待輸入信號(hào),直到信號(hào)di_Ready值為1,才執(zhí)行隨后指令。機(jī)器人等待相應(yīng)輸入信號(hào),如果5秒內(nèi)仍沒有等到信號(hào)di_Ready值為1,自動(dòng)進(jìn)行ErrorHandler處理,如果沒有ErrorHandler,機(jī)器人停機(jī)報(bào)錯(cuò)。2024/9/26輸入輸出指令-WaitDI實(shí)例:

PROCPickPart() MoveJpPrePick,vFastEmpty,zBig,tool1; bTimeout:=TRUE; nCounter:=0; WHILEbTimeoutDO IFnCounter>3THEN TPWrite“……”; ENDIF IFnCounter>30THEN Stop; ENDIF WaitDIdi_Ready,1\MaxTime:=1\TimeFlag:=bTimeout; IncrnCounter; ENDWHILE … ENDPROC機(jī)器人等待到位信號(hào),如果1秒內(nèi)仍沒有等到信號(hào)di_Ready值為1,機(jī)器人自動(dòng)執(zhí)行隨后指令,但此時(shí)TimeFlag值為TRUE;機(jī)器人等到信號(hào)di_Ready值為1,此時(shí),TimeFlag值為FALSE。2024/9/26輸入輸出指令-WaitDO WaitDOSignal,Value

[\MaxTime][\TimeFlag];

Signal: 輸入信號(hào)名稱。 (signaldi)Value: 輸入信號(hào)值。 (dionum)[\MaxTime]: 最長等待時(shí)間

s。(num)

[\TimeFlag]: 超時(shí)邏輯量。 (bool)應(yīng)用: 等待數(shù)字輸出信號(hào)滿足相應(yīng)值,達(dá)到通信目的,因?yàn)檩敵鲂盘?hào)一般情況下受程序控制,此指令很少使用。2024/9/26輸入輸出指令-WaitDO實(shí)例:

PROCGrip() Setdo03_Grip; WaitDOdo03_Grip,1; … ENDPROC機(jī)器人等待輸出信號(hào),直到信號(hào)do03_Grip值為1,才執(zhí)行隨后相應(yīng)指令。機(jī)器人等待相應(yīng)輸出信號(hào),如果5秒內(nèi)仍沒有等到信號(hào)do03_Grip值為1,自動(dòng)進(jìn)行ErrorHandler處理,如果沒有ErrorHandler,機(jī)器人停機(jī)報(bào)錯(cuò)。 PROCGrip() Setdo03_Grip; WaitDOdo03_Grip,1\MaxTime:=5; … ERROR IFERRNO=ERR_WAIT_MAXTIMETHEN TPWrite“……”; RETRY; ELSE RAISE; ENDIF ENDPROC2024/9/26輸入輸出指令-WaitDO實(shí)例:

PROCGrip() Setdo03_Grip; bTimeout:=TRUE; nCounter:=0; WHILEbTimeoutDO IFnCounter>3THEN TPWrite“……”; ENDIF IFnCounter>30THEN Stop; ENDIF WaitDOdo03_Grip,1\MaxTime:=1\TimeFlag:=bTimeout; IncrnCounter; ENDWHILE … ENDPROC機(jī)器人等待到位信號(hào),如果1秒內(nèi)仍沒有等到信號(hào)do03_Grip值為1,機(jī)器人自動(dòng)執(zhí)行隨后指令,但此時(shí)TimeFlag值為TRUE;機(jī)器人等到信號(hào)do03_Grip值為1,此時(shí),TimeFlag值為FALSE。2024/9/26程序運(yùn)行停止指令-ExitExit;應(yīng)用:

機(jī)器人在當(dāng)前指令行停止運(yùn)行,并且程序重置,程序運(yùn)行指針停留在主程序第一行。實(shí)例: … Exit; …2024/9/26程序運(yùn)行停止指令-StopStop[\NoRegain];應(yīng)用:

機(jī)器人在當(dāng)前指令行停止運(yùn)行,程序運(yùn)行指針停留在下一行指令,可以用Start

鍵繼續(xù)運(yùn)行機(jī)器人,屬于臨時(shí)性停止。如果機(jī)器人停止期間被手動(dòng)移動(dòng)后,然后直接啟動(dòng)機(jī)器人,機(jī)器人將警告確認(rèn)路徑,如果此時(shí)采用參變量[\NoRegain],機(jī)器人將直接運(yùn)行。

[\NoRegain]: 路徑恢復(fù)參數(shù)。 (switch)2024/9/26程序運(yùn)行停止指令-StopP1P2P3區(qū)別:

MoveLp2,v100,z30,tool0; Stop;(Break;) MoveLp3,v100,fine,tool0;StopBreak實(shí)例:

… Stop; …2024/9/26程序運(yùn)行停止指令-ExitCycleExitCycle;應(yīng)用:

機(jī)器人在當(dāng)前指令行停止運(yùn)行,并且設(shè)定當(dāng)前循環(huán)結(jié)束,機(jī)器人自動(dòng)從主程序第一行繼續(xù)運(yùn)行下一個(gè)循環(huán)。2024/9/26程序運(yùn)行停止指令-ExitCycle實(shí)例: PROCmain() IFcyclecount=0THEN CONNECTerror_intnoWITHerror_trap; ISignalDIdi_error,1,error_intno; ENDIF cyclecount:=cyclecount+1; !starttodosomethingintelligent .... ENDPROC TRAPerror_trap TPWrite“Iwillstartonthenextitem”; ExitCycle; ENDTRAP2024/9/26例行程序調(diào)用指令-ProcCallProcedure{Argument};應(yīng)用:

機(jī)器人調(diào)用相應(yīng)例行程序,同時(shí)給帶有參數(shù)的例行程序中相應(yīng)參數(shù)賦值。

Procedure: 例行程序名稱。 (Identifier)Argument: 例行程序參數(shù)。 (All)實(shí)例:

Weldpipe1; Weldpipe210,lowspeed; Weldpipe310\speed:=20;2024/9/26例行程序調(diào)用指令-ProcCall限制:機(jī)器人調(diào)用帶參數(shù)的例行程序時(shí),必須包括所有強(qiáng)制性參數(shù)。例行程序所有參數(shù)位置次序必須與例行程序設(shè)置一致。例行程序所有參數(shù)數(shù)據(jù)類型必須與例行程序設(shè)置一致。例行程序所有參數(shù)數(shù)據(jù)性質(zhì)必須為Input,Variable或Persistent。2024/9/26例行程序調(diào)用指令-CallByVarCallByVarName,Number;應(yīng)用: 通過指令中相應(yīng)數(shù)據(jù),機(jī)器人調(diào)用相應(yīng)例行程序,但無法調(diào)用帶有參數(shù)的例行程序。

Name: 例行程序名稱第一部分。(string)Number: 例行程序名稱第二部分。(num)實(shí)例:

reg1:=Ginput(gi_Type); CallByVar“Proc”,reg1; 2024/9/26程序運(yùn)行停止指令-CallByVar限制:不能調(diào)用帶參數(shù)的例行程序。所有被調(diào)用的例行程序名稱第一部分必須相同,例如:proc1、proc2、proc3。使用CallByVar指令調(diào)用例行程序比直接采用ProcCall調(diào)用例行程序需要更長時(shí)間。ErrorHandling:ERR_REFUNKPRC 系統(tǒng)無法找到例行程序名稱第一部分。ERR_CALLPROC 系統(tǒng)無法找到例行程序名稱第二部分。2024/9/26程序運(yùn)行停止指令-CallByVar實(shí)例比較:

TESTreg1 CASE1: lf_doordoor_loc; CASE2: rf_doordoor_loc; CASE3: lr_doordoor_loc; CASE4: rr_doordoor_loc; DEFAULT: EXIT; ENDTEST%”proc”+NumToStr(reg1,0)%door_loc;CallByVar“proc”,reg1;指令CallByVar不能調(diào)用帶有參數(shù)的例行程序。通過RAPID結(jié)構(gòu)仍可以調(diào)用帶有參數(shù)的例行程序。2024/9/26計(jì)時(shí)指令-ClkResetClkResetClock;應(yīng)用:

將機(jī)器人相應(yīng)時(shí)鐘復(fù)位,常用于記錄循環(huán)時(shí)間或機(jī)器人跟蹤運(yùn)輸鏈。

Clock: 時(shí)鐘名稱。 (clock)實(shí)例:

ClkResetclock1; ClkStartclock1; RunCycle; ClkStopclock1; nCycleTime:=ClkRead(clock1); TPWrite“LastCycleTime:”\Num:=nCycleTime;2024/9/26計(jì)時(shí)指令-ClkStartClkStartClock;應(yīng)用:

啟動(dòng)機(jī)器人相應(yīng)時(shí)鐘,常用于記錄循環(huán)時(shí)間或機(jī)器人跟蹤運(yùn)輸鏈。機(jī)器人時(shí)鐘啟動(dòng)后,時(shí)鐘不會(huì)因?yàn)闄C(jī)器人停止運(yùn)行或關(guān)機(jī)而停止計(jì)時(shí)。在機(jī)器人時(shí)鐘運(yùn)行時(shí),指令ClkStop與

ClkReset仍起作用。

Clock: 時(shí)鐘名稱。 (clock)2024/9/26計(jì)時(shí)指令-ClkStart限制:機(jī)器人時(shí)鐘計(jì)時(shí)超過4,294,967秒,即49天17小時(shí)2分47秒,機(jī)器人將出錯(cuò)。ErrorHandler代碼為ERR_OVERFLOW。實(shí)例:

ClkResetclock1; ClkStartclock1; RunCycle; ClkStopclock1; nCycleTime:=ClkRead(clock1); TPWrite“LastCycleTime:”\Num:=nCycleTime;2024/9/26計(jì)時(shí)指令-ClkStopClkStopClock;應(yīng)用:

停止機(jī)器人相應(yīng)時(shí)鐘,常用于記錄循環(huán)時(shí)間或機(jī)器人跟蹤運(yùn)輸鏈。

Clock: 時(shí)鐘名稱。 (clock)實(shí)例:

ClkResetclock1; ClkStartclock1; RunCycle; ClkStopclock1; nCycleTime:=ClkRead(clock1); TPWrite“LastCycleTime:”\Num:=nCycleTime;2024/9/26中斷指令-CONNECT CONNECTInterruptWITHTraproutine;應(yīng)用:

將機(jī)器人相應(yīng)中斷數(shù)據(jù)連接到相應(yīng)的中斷處理程序,是機(jī)器人中斷功能必不可少的組成部分,必須同指令I(lǐng)SignalDI、ISignalDO、ISignalAI、ISignalAO或ITimer聯(lián)合使用。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)Traproutine: 中斷處理程序。 (Identifier)2024/9/26中斷指令-CONNECT實(shí)例:

VARintnumintInspect;

PROCmain() … CONNECTintInspectWITHrAlarm; ISignalDIdi01_Vacuum,0,intInspect; … ENDPROC TRAPrAlarm TPWrite“GripError”; Stop; WaitDIdi01_Vacuum,1; ENDTRAP2024/9/26中斷指令-CONNECT限制:中斷數(shù)據(jù)的數(shù)據(jù)類型必須為變量(VAR)。一個(gè)中斷數(shù)據(jù)不允許同時(shí)連接到多個(gè)中斷處理程序,但多個(gè)中斷數(shù)據(jù)可以共享一個(gè)中斷處理程序。當(dāng)一個(gè)中斷數(shù)據(jù)完成連接后,這個(gè)中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序(包括已經(jīng)連接的中斷處理程序)。如果需要再次連接至任何中斷處理程序,必須先使用指令I(lǐng)Delete將原連接去除。2024/9/26中斷指令-CONNECTErrorHandler:ERR_ALRDYCNT 中斷數(shù)據(jù)已經(jīng)被連接至中斷處理程序。ERR_CNTNOTVAR 中斷數(shù)據(jù)的數(shù)據(jù)類型不是變量(VAR)。ERR_INOMAX 沒有更多的中斷數(shù)據(jù)可以使用。2024/9/26中斷指令-IDeleteIDeleteInterrupt;應(yīng)用:

將機(jī)器人相應(yīng)中斷數(shù)據(jù)與相應(yīng)的中斷處理程序之間的連接去除。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)實(shí)例:

… CONNECTintInspectWITHrAlarm; ISignalDIdi01_Vacuum,0,intInspect; … IDeleteintInspect;2024/9/26中斷指令-IDelete限制:執(zhí)行指令I(lǐng)Delete后,當(dāng)前中斷數(shù)據(jù)的連接被完全清除,如需再次使用這個(gè)中斷數(shù)據(jù)必須重新用指令CONNECT連接至相應(yīng)的中斷處理程序。在下列情況下,中斷將被自動(dòng)去除:重新載入新的運(yùn)行程序。機(jī)器人運(yùn)行程序被重置,程序指針回到主程序第一行(StartFromBeginning)。機(jī)器人程序指針被移至任意一個(gè)例行程序第一行(MovepptoRoutine)。2024/9/26中斷指令-ISleepISleepInterrupt;應(yīng)用:

使機(jī)器人相應(yīng)中斷數(shù)據(jù)暫時(shí)失效,直到執(zhí)行指令I(lǐng)Watch后才恢復(fù)。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-ISleepErrorHandler:ERR_UNKINO

無法找到當(dāng)前的中斷數(shù)據(jù)。實(shí)例:

… CONNECTintInspectWITHrAlarm; ISignalDIdi01_Vacuum,0,intInspect; … … ISleepintInspect; … IWatchintInspect; …中斷監(jiān)控。中斷失效。中斷監(jiān)控。2024/9/26中斷指令-IWatchIWatchInterrupt;應(yīng)用:

激活機(jī)器人已失效的相應(yīng)中斷數(shù)據(jù),正常情況下,與指令I(lǐng)Sleep配合使用。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-IWatchErrorHandler:ERR_UNKINO

無法找到當(dāng)前的中斷數(shù)據(jù)。實(shí)例:

… CONNECTintInspectWITHrAlarm; ISignalDIdi01_Vacuum,0,intInspect; … … ISleepintInspect; … IWatchintInspect; …中斷失效。中斷監(jiān)控。中斷監(jiān)控。2024/9/26中斷指令-IDisableIDisableInterrupt;應(yīng)用:

使機(jī)器人相應(yīng)中斷功能暫時(shí)不執(zhí)行,直到執(zhí)行指令I(lǐng)Enable后,才進(jìn)入中斷處理程序,此指令使用于機(jī)器人正在執(zhí)行不希望被打斷的操作期間,例如:通過通信口讀寫數(shù)據(jù)。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-IDisable實(shí)例:

… IDisable; FORiFROM1TO100DO character[i]:=ReadBin(sensor); ENDFOR IEnable; …2024/9/26中斷指令-IEnableIEnableInterrupt;應(yīng)用:

開始執(zhí)行被機(jī)器人暫停的相應(yīng)中斷功能,正常情況下,與指令I(lǐng)Disable配合使用,此指令使用于機(jī)器人正在執(zhí)行不希望被打斷的操作期間,例如:通過通信口讀寫數(shù)據(jù)。

Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-IEnable實(shí)例:

… IDisable; FORiFROM1TO100DO character[i]:=ReadBin(sensor); ENDFOR IEnable; …2024/9/26中斷指令-ITimerITimer[\Single,]

Time,Interrupt;應(yīng)用:

定時(shí)處理機(jī)器人相應(yīng)中斷數(shù)據(jù),此指令常使用于通過通信口讀寫數(shù)據(jù)等場合。

[\Single]: 單次中斷開關(guān)。 (switch)Time: 觸發(fā)中斷時(shí)間s。 (num)Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-ITimer實(shí)例:

… CONNECTtimeintWITHcheck_serialch; ITimer60,timeint; … TRAPcheck_serialch WriteBinch1,buffer,1; IFReadBin(ch1\Time:=5)<0THEN TPWrite“Communicationisbroken”; EXIT; ENDIF ENDTRAP2024/9/26中斷指令-ITimerITimer[\Single,]

Time,Interrupt;應(yīng)用:

定時(shí)處理機(jī)器人相應(yīng)中斷數(shù)據(jù),此指令常使用于通過通信口讀寫數(shù)據(jù)等場合。

[\Single]: 單次中斷開關(guān)。 (switch)Time: 觸發(fā)中斷時(shí)間s。 (num)Interrupt: 中斷數(shù)據(jù)名稱。 (intnum)2024/9/26中斷指令-ITimer實(shí)例:

… CONNECTtimeintWITHcheck_serialch; ITimer60,timeint; … TRAPcheck_serialch WriteBinch1,buffer,1; IFReadBin(ch1\Time:=5)<0THEN TPWrite“Communicationisbroken”; EXIT; ENDIF ENDTRAP2024/9/26通信指令-TPWrite TPWriteString

[\Num]|[\Bool]|[\Pos]|[\Orient];應(yīng)用: 在示教器屏幕上顯示相應(yīng)字符串,字符串最長80個(gè)字節(jié),屏幕每行可顯示40個(gè)字節(jié)。在字符串后可顯示相應(yīng)參變量。

String: 屏幕顯示的字符串。 (string)[\Num]: 屏幕顯示數(shù)字?jǐn)?shù)據(jù)值。 (num)[\Bool]: 屏幕顯示邏輯量數(shù)據(jù)。 (bool)

[\Pos]: 顯示位置值XYZ。 (pos)

[\Orient]: 顯示方位q1q2q3q4。 (orient)2024/9/26通信指令-TPWrite實(shí)例:

TPWritestring1; TPWrite“CycleTime=”\Num:=nTime;限制:每個(gè)TPWrite指令只允許單獨(dú)使用參變量,不允許同時(shí)使用。參變量值<0.000005或>0.999995將圓整。Argument Value Textstring\Num 23 "23"\Num 1.141367 "1.14137"\Bool TRUE "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/26通信指令-TPReadFK

TPReadFKAnswer,Text,FK1,FK2,FK3,FK4,FK5

[\MaxTime][\DIBreak][\BreakFlag];

Answer: 數(shù)字賦值1-5。 (num)Text: 屏幕字符串。 (string)FKx: 功能鍵字符串。 (string)

[\MaxTime]: 最長等待時(shí)間s。 (num)

[\DIBreak]: 輸入信號(hào)控制。 (signaldi)[\BreakFlag]: 指令狀態(tài)控制。 (errnum)2024/9/26通信指令-TPReadFK應(yīng)用: 在示教器屏幕上顯示相應(yīng)字符串(Text),字符串最長80個(gè)字節(jié),屏幕每行可顯示40個(gè)字節(jié),同時(shí)在5個(gè)功能鍵上顯示相應(yīng)字符串(FKx),字符串最長7個(gè)字節(jié),通過選擇按相應(yīng)功能鍵,給數(shù)字變量(Answer)賦值1-5,通過這種功能,當(dāng)前指令可以進(jìn)行數(shù)據(jù)選擇,但必須有人參與,無法達(dá)到自動(dòng)化,已被輸入輸出信號(hào)替代。另外,在執(zhí)行當(dāng)前指令時(shí),必須等到功能鍵輸入,才執(zhí)行以后指令,除非選擇相應(yīng)參變量。通過這種功能,當(dāng)前指令常用于錯(cuò)誤處理等場合。2024/9/26通信指令-TPReadFK實(shí)例:

TPReadFKreg1,“More?”,stEmpty,stEmpty, stEmpty,“Yes”,“No”;2024/9/26通信指令-TPReadFK參變量:[\MaxTime]

機(jī)器人執(zhí)行當(dāng)前指令等待時(shí)間超過最長等待時(shí)間,機(jī)器人將停機(jī)報(bào)錯(cuò),如果同時(shí)采用參變量[BreakFlag],機(jī)器人將繼續(xù)執(zhí)行以后指令,并且給出相應(yīng)錯(cuò)誤數(shù)據(jù)。[\DIBreak]

機(jī)器人通過輸入信號(hào)來繼續(xù)執(zhí)行以后指令,并且給出相應(yīng)錯(cuò)誤數(shù)據(jù)。[\BreakFlag]ERR_TP_MAXTIMEERR_TP_DIBREAK2024/9/26通信指令-TPReadNum

TPReadNumAnswer,String,[\MaxTime][\DIBreak][\BreakFlag];

Answer: 數(shù)字賦值。 (num)String: 屏幕字符串。 (string)[\MaxTime]: 最長等待時(shí)間s。 (num)

[\DIBreak]: 輸入信號(hào)控制。 (signaldi)[\BreakFlag]: 指令狀態(tài)控制。 (errnum)2024/9/26通信指令-TPReadNum應(yīng)用: 在示教器屏幕上顯示相應(yīng)字符串(String),字符串最長80個(gè)字節(jié),屏幕每行可顯示40個(gè)字節(jié),同時(shí)在功能鍵上顯示OK,通過數(shù)字鍵輸入相應(yīng)數(shù)值,給數(shù)字變量(Answer)賦值,通過這種功能,當(dāng)前指令可以進(jìn)行數(shù)字?jǐn)?shù)據(jù)賦值,但必須有人參與,無法達(dá)到自動(dòng)化,已被輸入輸出信號(hào)替代。實(shí)例:

TPReadNumreg1,“Howmanyunits?”; FORiFROM1TOreg1DO produce_part; ENDFOR2024/9/26通信指令-TPReadNum參變量:[\MaxTime]

機(jī)器人執(zhí)行當(dāng)前指令等待時(shí)間超過最長等待時(shí)間,機(jī)器人將停機(jī)報(bào)錯(cuò),如果同時(shí)采用參變量[BreakFlag],機(jī)器人將繼續(xù)執(zhí)行以后指令,并且給出相應(yīng)錯(cuò)誤數(shù)據(jù)。[\DIBreak]

機(jī)器人通過輸入信號(hào)來繼續(xù)執(zhí)行以后指令,并且給出相應(yīng)錯(cuò)誤數(shù)據(jù)。[\BreakFlag]ERR_TP_MAXTIMEERR_TP_DIBREAK2024/9/26通信指令-ErrWrite ErrWrite[\W],Header,Reason

[\RL2][\RL3][\RL4];

[\W]: 事件記錄開關(guān)。 (switch)Header: 錯(cuò)誤信息標(biāo)題。 (string)Reason: 錯(cuò)誤信息原因。 (string)

[\RL2]: 附加錯(cuò)誤信息原因。 (string)

[\RL3]: 附加錯(cuò)誤信息原因。 (string)[\RL4]: 附加錯(cuò)誤信息原因。 (string)2024/9/26通信指令-ErrWrite應(yīng)用: 在示教器屏幕上顯示標(biāo)準(zhǔn)出錯(cuò)界面,錯(cuò)誤代碼為80001,標(biāo)題最長24個(gè)字符,原因最長40個(gè)字符,如果由多種錯(cuò)誤原因,可使用參變量[\RL2][\RL3][\RL4],每種原因最長40個(gè)字符,使用參變量[\W],錯(cuò)誤代碼為80002,并且只在事件清單中記錄,不在示教器屏幕上顯示。當(dāng)前指令只顯示或記錄出錯(cuò)信息,不影響機(jī)器人正常運(yùn)行,在示教器屏幕上顯示的信息,需要按功能鍵OK確認(rèn)并清除,如需影響機(jī)器人運(yùn)行,使用指令Stop、EXIT、TPReadFK等。2024/9/26通信指令-ErrWrite實(shí)例:

ErrWrite\W,“Searcherror”,“Nohitforthefirstsearch”; ErrWrite“PLCerror”,“FatalerrorinPLC”\RL2:=”Callservice”; Stop; …限制:每個(gè)ErrWrite指令最多能顯示145個(gè)字節(jié)。(Header+Reason+\RL2+\RL3+\RL4)2024/9/26通信指令-TPShow TPShowWindow;

Window: 顯示相應(yīng)示教器窗口。 (tpnum)TP_PROGRAM

自動(dòng)模式下,顯示生產(chǎn)窗口。 手動(dòng)模式下,顯示測試窗口。TP_LATEST

顯示當(dāng)前窗口的前一個(gè)窗口。TP_SCREENVIEWER

顯示ScreenViewer

窗口,需要相應(yīng)軟件。2024/9/26通信指令-TPShow實(shí)例:

… TPShowTP_PROGRAM; TPShowTP_LATEST; …應(yīng)用: 機(jī)器人在示教器屏幕上顯示相應(yīng)界面,通常情況下與機(jī)器人附加軟件ScreenViewer配合使用。2024/9/26運(yùn)動(dòng)指令-StopMove StopMove;應(yīng)用: 當(dāng)前指令使機(jī)器人運(yùn)動(dòng)臨時(shí)停止,直到運(yùn)行指令StartMove后,才繼續(xù)恢復(fù)被臨時(shí)停止的運(yùn)動(dòng)。此指令通常被用于處理牽涉到機(jī)器人運(yùn)動(dòng)的中斷程序。實(shí)例:

StopMove; WaitDIready_input,1; StartMove;2024/9/26運(yùn)動(dòng)指令-StopMove實(shí)例: … CONNECTintno1WITHgo_to_home_pos; ISignalDIdi1,1,intno1; … TRAPgo_to_home_posStopMove;StorePath;p10:=CRobT();MoveLHome,v500,fine,tool1;WaitDIdi1,0;MoveLp10,v500,fine,tool1;RestoPath;StartMove;ENDTRAP

機(jī)器人臨時(shí)停止運(yùn)動(dòng),并記錄運(yùn)動(dòng)路徑,在Home位置等待di1為0后,繼續(xù)原運(yùn)動(dòng)狀態(tài)。機(jī)器人完成當(dāng)前運(yùn)動(dòng)指令后停止運(yùn)動(dòng),并記錄運(yùn)動(dòng)路徑,在Home位置等待di1為0后,繼續(xù)原運(yùn)動(dòng)狀態(tài)。2024/9/26運(yùn)動(dòng)指令-StopMove StopMove;應(yīng)用: 當(dāng)前指令使機(jī)器人運(yùn)動(dòng)臨時(shí)停止,直到運(yùn)行指令StartMove后,才繼續(xù)恢復(fù)被臨時(shí)停止的運(yùn)動(dòng)。此指令通常被用于處理牽涉到機(jī)器人運(yùn)動(dòng)的中斷程序。實(shí)例:

StopMove; WaitDIready_input,1; StartMove;2024/9/26運(yùn)動(dòng)指令-StopMove實(shí)例: … CONNECTintno1WITHgo_to_home_pos; ISignalDIdi1,1,intno1; … TRAPgo_to_home_posStopMove;StorePath;p10:=CRobT();MoveLHome,v500,fine,tool1;WaitDIdi1,0;Mov

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論