ABB機(jī)器人高級(jí)編程指令_第1頁
ABB機(jī)器人高級(jí)編程指令_第2頁
ABB機(jī)器人高級(jí)編程指令_第3頁
ABB機(jī)器人高級(jí)編程指令_第4頁
ABB機(jī)器人高級(jí)編程指令_第5頁
已閱讀5頁,還剩202頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ABB機(jī)器人高級(jí)指令NWE技術(shù)研發(fā)部自動(dòng)化應(yīng)用

目錄運(yùn)動(dòng)控制指令

外軸激活指令

計(jì)數(shù)指令

輸入輸出指令

程序運(yùn)行停止指令

例行程序調(diào)用指令

計(jì)時(shí)指令

中斷指令

通信指令

中斷運(yùn)動(dòng)指令程序流程指令

故障處理指令坐標(biāo)轉(zhuǎn)換指令

運(yùn)動(dòng)觸發(fā)指令2023/2/2運(yùn)動(dòng)控制指令A(yù)ccSetVelSetConfJConfLSingAreaPathReasolSoftActSoftDeact2023/2/2運(yùn)動(dòng)控制指令-AccSet

AccSetAcc,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ì)延長(zhǎng)循環(huán)時(shí)間﹐系統(tǒng)默認(rèn)值為﹕AccSet100,100;2023/2/2運(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)值accelerationAccSet100,100﹐i.e.normalaccelerationAccSet30,100accelerationAccSet100,30Time2023/2/2運(yùn)動(dòng)控制指令-VelSet

VelSetOverride,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;2023/2/2運(yùn)動(dòng)控制指令-VelSet實(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;500mm/s800mm/s10s800mm/s1000smm/s1000mm/s6.25s2023/2/2運(yùn)動(dòng)控制指令-VelSet限製﹕機(jī)器人冷啟動(dòng)﹐新程序載入與程序重置後﹐系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值﹔機(jī)器人使用參變量[\T]時(shí)﹐最大運(yùn)行速度將不起作用﹔Override對(duì)數(shù)據(jù)(speeddate)內(nèi)所有項(xiàng)都起作用﹐例如﹕TCP﹑方位及外軸﹐但對(duì)焊接參數(shù)welddate與seamdate內(nèi)機(jī)器人運(yùn)動(dòng)速度不起作用﹔Max只對(duì)速度數(shù)據(jù)(speeddate)內(nèi)TCP這項(xiàng)起作用﹔2023/2/2運(yùn)動(dòng)控制指令-ConfJ

ConfJ[\On][\Off];[\On]:啟動(dòng)軸配置數(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)H軸配置數(shù)據(jù)(switch)關(guān)節(jié)運(yùn)動(dòng)時(shí)﹐機(jī)器人移動(dòng)至ModPos點(diǎn)﹐軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值﹔2023/2/2運(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;實(shí)例﹕ConfJ\On;…..ConfJ\Off;限製﹕機(jī)器人冷啟動(dòng)﹐新程序載入與程序重置後﹐系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值2023/2/2運(yùn)動(dòng)控制指令-ConfL

ConfL[\On][\Off];[\On]:啟動(dòng)軸配置數(shù)據(jù)(switch)直線運(yùn)動(dòng)時(shí)﹐機(jī)器人移動(dòng)至絕對(duì)ModPos點(diǎn)﹐如果無法到達(dá)﹐程序?qū)⑼V惯\(yùn)行﹔[\Off]:默認(rèn)H軸配置數(shù)據(jù)(switch)直線運(yùn)動(dòng)時(shí)﹐機(jī)器人移動(dòng)至ModPos點(diǎn)﹐軸配置數(shù)據(jù)默認(rèn)為當(dāng)前最接近值﹔2023/2/2運(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;實(shí)例﹕ConfL\On;…..ConfL\Off;限製﹕機(jī)器人冷啟動(dòng)﹐新程序載入與程序重置後﹐系統(tǒng)自動(dòng)設(shè)置為默認(rèn)值2023/2/2運(yùn)動(dòng)控制指令-SingArea

SingArea[\Wrist][\Off];[\Wrist]:啟動(dòng)位置方位調(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)﹔2023/2/2運(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)得不到控制﹐通常使用與通過複雜姿態(tài)點(diǎn)﹐絕對(duì)不能作為工作點(diǎn)使用﹔實(shí)例﹕SingArea\Wrist;…..SingArea\Off;2023/2/2運(yùn)動(dòng)控制指令-SingArea限製﹕以下情況機(jī)器人將自動(dòng)恢復(fù)默認(rèn)值

SingArea\Off-機(jī)器人冷啟動(dòng)

-系統(tǒng)重新載入新的程序

-系統(tǒng)重置(StartFromBeginning)2023/2/2運(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)整範(fàn)圍為25%-400%路徑控制百分比越小﹐運(yùn)動(dòng)精度越高﹐占用CPU資源也越多2023/2/2運(yùn)動(dòng)控制指令-PathResol實(shí)例﹕MoveJp1,v1000,fine,tool1;PathResol150;

機(jī)器人在臨界運(yùn)動(dòng)狀態(tài)(重載﹑高速﹑路徑變化複雜情況下接近最大工作區(qū)域)﹔增加路徑控制值﹐可避免頻繁死機(jī)﹔外軸以很低的速度與機(jī)器人聯(lián)動(dòng)﹐增加路徑控制值﹐可避免頻繁死機(jī)﹔

機(jī)器人進(jìn)行高頻率擺動(dòng)弧焊時(shí)﹐需要很高的路徑采樣時(shí)間﹐需要減小路徑控制值﹔機(jī)器人進(jìn)行小範(fàn)圍複雜運(yùn)動(dòng)時(shí)﹐需要很高的精度﹐需要減小路徑控制值﹔2023/2/2運(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)2023/2/2運(yùn)動(dòng)控制指令-SoftActSoftAct[\MechUnit],Axis,Softness[\Ramp][\MechUnit]﹕軟化外軸名稱(mechunit)Axis:軟化外軸號(hào)碼(num)Softness:軟化值%(num)[\Ramp]:軟化坡度%(num)應(yīng)用﹕

當(dāng)前指令用於軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng)﹐軟化值範(fàn)圍0%-100%,軟化坡度範(fàn)圍>=100%,此指令必須與指令SoftDeact同時(shí)使用﹐通常不使用於工作位置。2023/2/2運(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,20;SoftAct3,20;MoveJ*,v100,fine,tool;…..SoftAct3,20;…..2023/2/2運(yùn)動(dòng)控制指令-SoftDeactSoftDeact[\Ramp][\Ramp]:軟化坡度>=100%(num)應(yīng)用﹕

當(dāng)前指令用於使軟化機(jī)器人主機(jī)或外軸伺服系統(tǒng)指令SoftAct失效。實(shí)例﹕SoftAct3,20;SoftDeact;SoftAct1,90;SoftDeact\Ramp:=150;2023/2/2外軸激活指令A(yù)ctUnitDeactUnit2023/2/2外軸激活指令-ActUnitActUnitMecUnitMecUnit:外軸名(mecunit)應(yīng)用﹕

將機(jī)器人一個(gè)外軸激活﹐例如﹕當(dāng)多個(gè)外軸公用一個(gè)驅(qū)動(dòng)板時(shí)﹐通過外軸激活指令A(yù)ctUnit選擇當(dāng)前所使用的外軸﹔2023/2/2外軸激活指令-ActUnit實(shí)例﹕MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool1;DeactUnittrack_motion;ActUnitorbit_a;MoveLp30,v100,z10,tool1;限製﹕不能在指令StorePath…RestorePath內(nèi)使用不能在預(yù)置程序RESTART內(nèi)使用不能在機(jī)器人轉(zhuǎn)軸處於獨(dú)立狀態(tài)時(shí)使用P10,外軸不動(dòng)P20,外軸聯(lián)動(dòng)Track_motionP30,外軸聯(lián)動(dòng)Orbit_a2023/2/2外軸激活指令-DeactUnitDeactUnitMecUnitMecUnit:外軸名(mecunit)應(yīng)用﹕

將機(jī)器人一個(gè)外軸失效﹐例如﹕當(dāng)多個(gè)外軸公用一個(gè)驅(qū)動(dòng)板時(shí)﹐通過外軸激活指令DeactUnit使當(dāng)前所使用的外軸失效﹔2023/2/2實(shí)例﹕MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool1;DeactUnittrack_motion;ActUnitorbit_a;MoveLp30,v100,z10,tool1;限製﹕不能在指令StorePath…RestorePath內(nèi)使用不能在預(yù)置程序RESTART內(nèi)使用P10,外軸不動(dòng)P20,外軸聯(lián)動(dòng)Track_motionP30,外軸聯(lián)動(dòng)Orbit_a外軸激活指令-DeactUnit2023/2/2計(jì)數(shù)指令A(yù)ddClearIncrDecr2023/2/2計(jì)數(shù)指令-AddAddName,AddValurName:數(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;2023/2/2計(jì)數(shù)指令-ClearClearName;Name:數(shù)據(jù)名稱(num)應(yīng)用﹕

將一個(gè)數(shù)字?jǐn)?shù)據(jù)的值歸零﹐可以用賦值指令替代﹔實(shí)例﹕Clearreg1;等同於reg1:=02023/2/2計(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;2023/2/2計(jì)數(shù)指令-DecrDecrName;Name:數(shù)據(jù)名稱(num)應(yīng)用﹕

在一個(gè)數(shù)字?jǐn)?shù)據(jù)的值減1﹐可以用賦值指令替代﹔一般用於產(chǎn)量計(jì)數(shù)﹔實(shí)例﹕Incrreg1;等同於reg1:=reg1-1;2023/2/2輸入輸出指令A(yù)liasIOInvertDOIODisableIOEnablePluseDOResetSetSetAOSetDOSetGOWaitDIWaitDO2023/2/2輸入輸出指令-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ī)器人程序使用﹐一般使用與LoadedModule或Built-inModule內(nèi)﹐例如﹕多臺(tái)機(jī)器人使用相同系統(tǒng)參數(shù)2023/2/2輸入輸出指令-AliasIO實(shí)例﹕VARsignaldoalias_do;

CONSTstringconfig_string:=“config_do”;PROCprog_start()AliasIOconfig_do,alias_do;AliasIOconfig_string,alias_do;ENDPROCAlias_do,在機(jī)器人程序內(nèi)定義config_do,在系統(tǒng)參數(shù)內(nèi)定義2023/2/2輸入輸出指令-AliasIO限製﹕指令A(yù)liasIO必須放置在預(yù)置程序START內(nèi)或程序內(nèi)使用相應(yīng)的信號(hào)之前﹔指令A(yù)liasIO在示教器上無法輸入﹐只能通過離線編輯輸入﹔指令A(yù)liasIO需要軟件Develop’sFunctions的支持

2023/2/2輸入輸出指令-InvertDOInvertDOSignal;Signal:輸出信號(hào)名稱﹔(SignalDO)應(yīng)用﹕

將機(jī)器人輸出信號(hào)值反轉(zhuǎn)﹐0為1﹐1為0﹐在系統(tǒng)參數(shù)內(nèi)也可定義﹔實(shí)例:InvertDOdo15;2023/2/2輸入輸出指令-InvertDO機(jī)器人程序內(nèi)指令I(lǐng)nvertDO被執(zhí)行1100SignalLevelSignalLevel2023/2/2輸入輸出指令-IODisableIODisableUnitName,MaxTime;UnitName:輸入輸出板名稱﹔(num)MaxTime:最長(zhǎng)等待時(shí)間(num)應(yīng)用﹕

通過指令可以使機(jī)器人輸入板在程序運(yùn)行時(shí)自動(dòng)失效﹐系統(tǒng)將一塊輸入輸出板失效需要2-5秒﹐如果失效時(shí)間超過最長(zhǎng)等待時(shí)間﹐系統(tǒng)將進(jìn)入ErrorHandler處理﹐錯(cuò)誤代碼為ERR_IODISABLE﹐如果例行程序沒有ErrorHandler﹐機(jī)器人將停機(jī)報(bào)錯(cuò)。2023/2/2實(shí)例﹕PROCgo_home()recover_flag:=1;IODisable“cell”,0’MoveJhome,v1000,fine,tool1;recover_cover:=2;IODisable“cell”,5;ERRORIFERRNO=ERR_IODISABLETHENIFrecover_flag=1THENTRYNEXT;ELSEIFrecover_flag=2THENRETRY;ENDIFELSEIFERRNO=ERR_EXCRPTYMAXTHENErrorWrite“IODisableerror”,”Restarttheprogram”;Ttop;ENDIFENDPROC

輸入輸出指令-IODisable輸入輸出板cell開始失效﹐最長(zhǎng)等待時(shí)間為0﹐肯定進(jìn)入ErrorHandler處理利用機(jī)器人移動(dòng)到home的時(shí)間完成輸入輸出板失效確認(rèn)輸入輸出板失效連續(xù)5次RETRY後﹐仍無法完成輸入輸出板的失效2023/2/2輸入輸出指令-IODisableErrorHandingERR_IODISABLE

超過最長(zhǎng)等待時(shí)間﹐系統(tǒng)仍未完成輸入輸出板失效﹔ERR_CALLIO_INTER

系統(tǒng)在執(zhí)行輸入輸出板失效與激活時(shí)﹐當(dāng)前輸入輸出板與再次被失效或激活﹐形成沖突ERR_NAME_INVALID

輸入輸出板名稱錯(cuò)誤或無法進(jìn)行失效與激活操作2023/2/2輸入輸出指令-IOEnableIOEnableUnitName,MaxTime;UnitName:輸入輸出板名稱﹔(num)MaxTime:最長(zhǎng)等待時(shí)間(num)應(yīng)用﹕

通過指令可以使機(jī)器人輸入板在程序運(yùn)行時(shí)自動(dòng)激活﹐系統(tǒng)將一塊輸入輸出板失效需要2-5秒﹐如果失效時(shí)間超過最長(zhǎng)等待時(shí)間﹐系統(tǒng)將進(jìn)入ErrorHandler處理﹐錯(cuò)誤代碼為ERR_IOENABLE﹐如果例行程序沒有ErrorHandler﹐機(jī)器人將停機(jī)報(bào)錯(cuò)。2023/2/2輸入輸出指令-IOEnable實(shí)例﹕VARnummax_retry:=0;

…..IOEnable“cell:,0;SetDOcell_sig3,1;ERRORIFERRNO=ERR_IOENABLETHENIFmax_retry<5THENWaitTime1;max_retry:=max_retry+1;RETRY;ELSERAISE;ENDIFENDIF輸入輸出板cell開始激活﹐最長(zhǎng)等待時(shí)間為0﹐肯定進(jìn)入ErrorHandler處理通過每次1秒進(jìn)行計(jì)數(shù)﹐連續(xù)5次仍無法激活輸入輸出板﹐執(zhí)行指令RAISE2023/2/2輸入輸出指令-IOEnableErrorHandingERR_IOENABLE

超過最長(zhǎng)等待時(shí)間﹐系統(tǒng)仍未完成輸入輸出板激活﹔ERR_CALLIO_INTER

系統(tǒng)在執(zhí)行輸入輸出板失效與激活時(shí)﹐當(dāng)前輸入輸出板與再次被失效或激活﹐形成沖突ERR_NAME_INVALID

輸入輸出板名稱錯(cuò)誤或無法進(jìn)行失效與激活操作2023/2/2輸入輸出指令-PulseDOPulseDO[\High][\PLength]Signal;;[\High]:輸出脈沖時(shí)﹐輸出信號(hào)可以處在高電平﹔(swtich)[\PLength]:脈沖長(zhǎng)度﹐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)2023/2/2輸入輸出指令-PulseDOPulseDO\High\Plength:=X1100SignalLevelSignalLevel脈沖長(zhǎng)度PulseDO10SignalLevel10SignalLevel脈沖長(zhǎng)度PluseDO\HighPulseDO\High\Plength:=YYX實(shí)例﹕2023/2/2輸入輸出指令-PulseDO限製﹕機(jī)器人脈沖輸出長(zhǎng)度小於0.01秒﹐系統(tǒng)將報(bào)錯(cuò)﹐不得不熱啟動(dòng)例如﹕WHILETRUEDOPulseDOdo5;ENDWHILE

2023/2/2輸入輸出指令-ResetResetSignal;Signal:輸入輸出信號(hào)名稱﹔(signaldo)應(yīng)用﹕

將機(jī)器人相應(yīng)數(shù)字輸出信號(hào)置為0﹐與指令Set對(duì)應(yīng)﹐是自動(dòng)化重要組成部分。實(shí)例﹕Resetdo12;2023/2/2輸入輸出指令-SetSetSignal;Signal:輸入輸出信號(hào)名稱﹔(signaldo)應(yīng)用﹕

將機(jī)器人相應(yīng)數(shù)字輸出信號(hào)置為1﹐與指令Reset對(duì)應(yīng)﹐是自動(dòng)化重要組成部分。實(shí)例﹕Setdo12;2023/2/2輸入輸出指令-SetAoSetAoSignal,Value;Signal:模擬量輸出信號(hào)名稱﹔(signaldo)Value:模擬量輸出信號(hào)值﹔(num)應(yīng)用﹕

機(jī)器人當(dāng)前模擬量輸出信號(hào)輸出相應(yīng)的值;例如﹕機(jī)器人焊接時(shí)﹐通過模擬量輸出控制焊接電壓和送絲速度。2023/2/2輸入輸出指令-SetAoMINSIGNALMINPROGRAMMAXSIGNALMAXPROGRAMPhysicalvaluroftheOutputsignal(V.mA.etd)Logicalvalurintheprogram實(shí)例﹕SetAOao2,5.5;SetAoweldcurr,curr_outp2023/2/2輸入輸出指令-SetDoSetDo[\SDelay]Signal,Value;[\SDelay]:延時(shí)輸出時(shí)間s(num)Signal:輸出信號(hào)名稱﹔(signaldo)Value:輸出信號(hào)值﹔(num)應(yīng)用﹕

設(shè)置機(jī)器人相應(yīng)組合輸出信號(hào)的值(采用8421碼)﹐可以設(shè)置延時(shí)輸出﹐延時(shí)範(fàn)圍為0.1s-32s,默認(rèn)狀態(tài)為沒有延時(shí)。實(shí)例﹕SetGo\SDelay:=0.2,go_Type,10;2023/2/2輸入輸出指令-SetGoSetGo[\SDelay]Signal,Value;[\SDelay]:延時(shí)輸出時(shí)間s(num)Signal:輸出信號(hào)名稱﹔(signaldo)Value:輸出信號(hào)值﹔(num)應(yīng)用﹕

設(shè)置機(jī)器人相應(yīng)數(shù)字輸出信號(hào)的值﹐與指令Set和Reset雷同﹐并且可以設(shè)置延時(shí)﹐延時(shí)的範(fàn)圍為0.1s-32s,默認(rèn)狀態(tài)為沒有延時(shí)。實(shí)例﹕SetDo\SDelay:=0.2,weld,high;2023/2/2輸入輸出指令-WaitDIWaitDISignal,Value[\MaxTime][\TimeFlag];Signal:輸入信號(hào)名稱﹔(signaldo)Value:輸入信號(hào)值﹔(num)[\MaxTime]:最長(zhǎng)等待時(shí)間s(num)[\TimeFlag]:超時(shí)邏輯量(bool)應(yīng)用﹕

等待數(shù)字輸入信號(hào)滿足相應(yīng)值﹐達(dá)到通信目的﹐是自動(dòng)化生產(chǎn)重要組成部分﹐例如﹕機(jī)器人等待工件到位信號(hào)。2023/2/2輸入輸出指令-WaitDI實(shí)例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;WaitDIdi_Ready,1;…..ENDPROCPROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;WaitDIdi_Ready,1\MaxTime﹕=5﹔…..ERRORIFERRNO=ERR_WAIT_MAXTIMETHENTRWrite“…..”;RETRY;ELSERAISE;ENDIFENDPROC機(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ò)2023/2/2實(shí)例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;bTimeout:=TRUE;nCounter:=0;WHILEbTimeoutDOIFnCounter>3THENTPWrite“…..”;ENDIFIFnCounter>30THENStop;ENDIFWaitDIdi_Ready,1\MaxTime﹕=1\Timeflag:=bTimeout;IncrnCounter;ENDWHOLE…..ENDPROC機(jī)器等待到位信號(hào)﹐如果1秒內(nèi)仍沒有等到信號(hào)di_Ready值為1﹐機(jī)器人執(zhí)行隨後指令﹐但此時(shí)TimeFlag值為TRUE﹐機(jī)器人等到di_Ready值為1﹐此時(shí)TimeFlag值為FALSE輸入輸出指令-WaitDI2023/2/2輸入輸出指令-WaitDOWaitDOSignal,Value[\MaxTime][\TimeFlag];Signal:輸出信號(hào)名稱﹔(signaldo)Value:輸出信號(hào)值﹔(num)[\MaxTime]:最長(zhǎng)等待時(shí)間s(num)[\TimeFlag]:超時(shí)邏輯量(bool)應(yīng)用﹕

等待數(shù)字輸出信號(hào)滿足相應(yīng)值﹐達(dá)到通信目的﹐因?yàn)檩敵鲂盘?hào)一般情況下受程序控制此指令很少使用。2023/2/2實(shí)例﹕PROCGrip()Setdo03_Grip;WaitDOdo03_Grip,1;…..ENDPROCPROCGrip()Setdo03_Grip;WaitDOdo03_Grip,1\MaxTime:=5;…..ERRORIFERRNO=ERR_WAIT_MAXTIMETHENTRWrite“…..”;RETRY;ELSERAISE;ENDIFENDPROC機(jī)器人等待輸出信號(hào)﹐直到信號(hào)do03_Grip為1﹐才執(zhí)行隨後指令﹔機(jī)器人等待相應(yīng)輸出信號(hào)﹐如果5秒內(nèi)仍沒有等到信號(hào)do03_Grip值為1﹐自動(dòng)進(jìn)行ErrorHandler處理﹐如果沒有ErrorHandler,機(jī)器人停機(jī)報(bào)錯(cuò)輸入輸出指令-WaitDO2023/2/2實(shí)例﹕PROCGrip()Setdo03_Grip;bTimeout:=TRUE;nCounter:=0;WHILEbTimeoutDOIFnCounter>3THENTPWrite“…..”;ENDIFIFnCounter>30THENStop;ENDIFWaitDIdi_Ready,1\MaxTime﹕=1\Timeflag:=bTimeout;IncrnCounter;ENDWHOLE…..ENDPROC機(jī)器等待到位信號(hào)﹐如果1秒內(nèi)仍沒有等到信號(hào)do03_Grip值為1﹐機(jī)器人執(zhí)行隨後指令﹐但此時(shí)TimeFlag值為TRUE﹐機(jī)器人等到di_Ready值為1﹐此時(shí)TimeFlag值為FALSE輸入輸出指令-WaitDO2023/2/2程序運(yùn)行停止指令BreakExitStopExitCycle2023/2/2程序運(yùn)行停止指令-BreakBreak;應(yīng)用﹕

機(jī)器人在當(dāng)前指令行立刻停止運(yùn)行﹐程序運(yùn)行指針停留在下一行指令﹐可以用Start鍵繼續(xù)運(yùn)行機(jī)器人。實(shí)例﹕…..Break;…..2023/2/2程序運(yùn)行停止指令-Break區(qū)別﹕MoveLp2,v100,z30,tool0;

Break;(Stop)MoveLp3,v100,z30,tool0;p1BreakStopp3p22023/2/2程序運(yùn)行停止指令-EXITEXIT;應(yīng)用﹕

機(jī)器人在當(dāng)前指令行停止運(yùn)行﹐并且程序重置﹐程序運(yùn)行指針停留在主程序第一行。實(shí)例﹕…..EXIT;…..2023/2/2Stop[\NoRegain];[\NoRegain]:路徑恢復(fù)參數(shù)(num)應(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)行。程序運(yùn)行停止指令-STOP2023/2/2區(qū)別﹕MoveLp2,v100,z30,tool0;Stop;(Break;)MoveLp3,v100,z30,tool0;p1BreakStopp3p2程序運(yùn)行停止指令-STOP2023/2/2程序運(yùn)行停止指令-ExitCycle

ExitCycle;應(yīng)用﹕

機(jī)器人在當(dāng)前指令行立刻停止運(yùn)行﹐并且設(shè)定當(dāng)前循環(huán)結(jié)束﹐機(jī)器人自動(dòng)從主程序第一行繼續(xù)運(yùn)行下一個(gè)循環(huán)。2023/2/2程序運(yùn)行停止指令-ExitCycle實(shí)例﹕PROCmain()IFcyclecount=0THENCONNECTerror_intnoWITHerror_trapISignalDIdi_error,1,error_intno;ENDIFcyclecount:=cyclecount+1;!starttodosomethingintelligent…..ENDPROCTRAPerror_trapTPWrite“Iwillstatronthenextitem”;ExitCycle;ENDTRAP2023/2/2例行程序調(diào)用指令ProcCallCallByVar

2023/2/2ProcCallProcedure{Argument}Procedure:例行程序名稱(Identifier){Argument}:例行程序參數(shù)(All)應(yīng)用﹕

機(jī)器人調(diào)用相應(yīng)例行程序﹐同時(shí)給帶有參數(shù)的例行程序中相應(yīng)的參數(shù)賦值。實(shí)例﹕Weldpipe1;Weldpipe210,lowspeed;Weldpipe310\speed:=20;例行程序調(diào)用指令-ProcCall2023/2/2例行程序調(diào)用指令-ProcCall限製﹕機(jī)器人調(diào)用帶參數(shù)的例行程序時(shí)﹐必須包括所有強(qiáng)製性參數(shù)﹔例行程序所有參數(shù)位置次序必須與例行程序設(shè)置一致﹔例行程序所有參數(shù)數(shù)據(jù)類型必須與例行程序設(shè)置一致﹔例行程序所有參數(shù)數(shù)據(jù)性質(zhì)必須為Input,Variable或Persistent;2023/2/2CallByVarName,Number;Name:例行程序名稱第一部分(string)Number:例行程序名稱第二部分(num)應(yīng)用﹕

通過指令中相應(yīng)數(shù)據(jù)﹐機(jī)器人調(diào)用相應(yīng)例行程序﹐但無法調(diào)用帶有參數(shù)的例行程序。實(shí)例﹕reg1:=Ginput(gi_Type);CallByVar“proc”,reg1;例行程序調(diào)用指令-CallByVar2023/2/2例行程序調(diào)用指令-CallByVar限製﹕不能調(diào)用帶參數(shù)的例行程序﹔所有被調(diào)用的例行程序名稱第一部分必須相同﹐例如﹕proc1,proc2,proc3;使用CallByVar指令調(diào)用例行程序比直接采用ProcCall調(diào)用例行程序需要更長(zhǎng)時(shí)間﹔ErrorHandling:ERR_REFUNKPRC

系統(tǒng)無法找到例行程序名稱第一部分ERR_CALLPROC

系統(tǒng)無法找到例行程序名稱第二部分2023/2/2實(shí)例比較﹕TESTreg1CASE1:If_doordoor_loc;CASE2:rf_doordoor_loc;CASE3:Ir_doordoor_loc;CASE4:rr_doordoor_loc;DEFAULTEXIT;ENDTESTCallByVar“proc”,reg1;%”proc”+NumTostr(reg1,0)%door_loc;例行程序調(diào)用指令-CallByVar指令CallByVar不能調(diào)用帶有參數(shù)的例行程序通過RAPID結(jié)構(gòu)仍可以調(diào)用帶有參數(shù)的例行程序2023/2/2計(jì)時(shí)指令ClkResetClkStartClkStop2023/2/2ClkResetClock;Clock:時(shí)鐘名稱(clock)應(yīng)用﹕

將機(jī)器人相應(yīng)時(shí)鐘復(fù)位﹐常用於記錄循環(huán)時(shí)間或機(jī)器人跟蹤運(yùn)輸鏈。實(shí)例﹕ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:’\Num:=nCycleTime計(jì)時(shí)指令-ClkReset2023/2/2ClkStartClock;Clock:時(shí)鐘名稱(clock)應(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仍起作用。計(jì)時(shí)指令-ClkStart2023/2/2計(jì)時(shí)指令-ClkStart實(shí)例﹕ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:’\Num:=nCycleTime限製﹕機(jī)器人時(shí)鐘計(jì)時(shí)超過4,294,967秒﹐即49天17小時(shí)2分47秒﹐機(jī)器人將出錯(cuò)﹐ErrorHandler代碼為ERR_OVERFLOW2023/2/2ClkStopClock;Clock:時(shí)鐘名稱(clock)應(yīng)用﹕停止機(jī)器人相應(yīng)時(shí)鐘﹐常用於記錄循環(huán)時(shí)間或機(jī)器人跟蹤運(yùn)輸鏈。實(shí)例﹕ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:’\Num:=nCycleTime計(jì)時(shí)指令-ClkStop2023/2/2中斷指令CONNECTIDeleteISignalDIISignalDOISignalAIISignalAOISleepIWatchIDisableIEnableITimer2023/2/2中斷指令-CONNECTCONNECTInterruptWITHTraproutineInterrupt:

中斷數(shù)據(jù)名稱(intnum)Traproutine:中斷處理程序(Identifier)應(yīng)用﹕

將機(jī)器人相應(yīng)中斷數(shù)據(jù)連接到相應(yīng)的中斷處理程序是機(jī)器人中斷功能必不可少的組成部分﹐必須同指令I(lǐng)SignalDI﹑ISignalDO﹑ISignalAI﹑ISignalAO﹑或ITmer聯(lián)合使用2023/2/2中斷指令-CONNECT實(shí)例﹕VARintnumintInspectProcmain()…..CONNECTintInpectWITHrAlarm;ISignalDIdi01_Vacuum,0,intInspect;…..ENDPROCTRAPrAlarmTPWrite“GripError”;Stop;WaitDIdi01_Vacuum,1;ENDTRAP2023/2/2中斷指令-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將原連接去除。2023/2/2中斷指令-CONNECTErrorHandler:ERR_ALRDYCNT

中斷數(shù)據(jù)已經(jīng)被連接到中斷處理程序﹔ERR_CNTNOTVAR

中斷數(shù)據(jù)的數(shù)據(jù)類型不是變量﹔ERR_INOMAX

沒有更多的中斷數(shù)據(jù)可以使用﹔2023/2/2中斷指令-IDeleteIDeleteInterruptInterrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕將機(jī)器人相應(yīng)中斷數(shù)據(jù)與相應(yīng)的中斷處理程序之間的連接去除﹔實(shí)例﹕…..CONNECTIntInspectWITHrAlarm;ISingalDIdi01_Vacuum,0,intInspect;…..IDeleteintInspect;2023/2/2中斷指令-IDelete限製﹕執(zhí)行指令I(lǐng)Delete後﹐當(dāng)前中斷數(shù)據(jù)的連接被完全清除﹐如需再次使用這個(gè)中斷數(shù)據(jù)必須重新使用指令CONNECT連接到相應(yīng)的中斷處理程序﹔在下列情況下﹐中斷程序?qū)⒆詣?dòng)去除﹕-重新載入新的運(yùn)行程序﹔-機(jī)器人運(yùn)行程序被重置﹐程序指針回到主程序的第一行(StartFromBeginning);-機(jī)器人程序指針被移到任意一個(gè)例行程序的第一行(MovePPtoRoutine);2023/2/2中斷指令-ISignalDIISingalDI[\Single],Signal,TriggValue,Interrupt[\single]:單次中斷信號(hào)開關(guān)(switch)Signal:觸發(fā)中斷信號(hào)(singaldi)TriggValue:觸發(fā)信號(hào)值(dionum)Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕使用相應(yīng)的數(shù)字輸入信號(hào)觸發(fā)相應(yīng)的中斷功能﹐必須同指令CONNECT聯(lián)合使用2023/2/2中斷指令-ISignalDI100中斷觸發(fā)1中斷觸發(fā)實(shí)例﹕…..CONNECTint1WITHiroutine1;IsignalDI\singledi01,1,int1;…..CONNECTint2WITHiroutine2;ISignalDIdi02,1,int1…..中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效﹐只有在程序重置或運(yùn)行指令I(lǐng)Delete後才失效2023/2/2中斷指令-ISignalDI限製﹕當(dāng)一個(gè)中斷數(shù)據(jù)完成連接後﹐這個(gè)中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序﹐(包括已經(jīng)連接的中斷處理程序)﹐如果需要再次連接到任何中斷處理程序﹐必須先使用指令I(lǐng)Delete將原連接去除;PROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,int1;…..IDeleteint1;ENDPROCPROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,int1;WHILETRUEDO …..ENDWHILEENDPROC2023/2/2中斷指令-ISignalDOISingalDO[\Single],Signal,TriggValue,Interrupt[\single]:單次中斷信號(hào)開關(guān)(switch)Signal:觸發(fā)中斷信號(hào)(singaldi)TriggValue:觸發(fā)信號(hào)值(dionum)Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕使用相應(yīng)的數(shù)字輸入信號(hào)觸發(fā)相應(yīng)的中斷功能﹐必須同指令CONNECT聯(lián)合使用2023/2/2中斷指令-ISignalDO100中斷觸發(fā)1中斷觸發(fā)實(shí)例﹕…..CONNECTint1WITHiroutine1;IsignalDO\singledi01,1,int1;…..CONNECTint2WITHiroutine2;ISignalDOdi02,1,int1…..中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效﹐只有在程序重置或運(yùn)行指令I(lǐng)Delete後才失效2023/2/2中斷指令-ISignalDO限製﹕當(dāng)一個(gè)中斷數(shù)據(jù)完成連接後﹐這個(gè)中斷數(shù)據(jù)不允許再次連接到任何中斷處理程序﹐(包括已經(jīng)連接的中斷處理程序)﹐如果需要再次連接到任何中斷處理程序﹐必須先使用指令I(lǐng)Delete將原連接去除;PROCmain()CONNECTint1WITHr1;ISignalDOdO01,1,int1;…..IDeleteint1;ENDPROCPROCmain()CONNECTint1WITHr1;ISignalDOdi01,1,int1;WHILETRUEDO …..ENDWHILEENDPROC2023/2/2中斷指令-ISignalAIISingalAI[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]:單次中斷信號(hào)開關(guān)(switch)Signal:觸發(fā)中斷信號(hào)(singaldi)Condition:中斷觸發(fā)狀態(tài)(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num)2023/2/2中斷指令-ISignalAIISingalAI[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue:中斷恢復(fù)差值(num)[\DPos]:正值中斷開關(guān)(switch)[\DNeg]:負(fù)值中斷開關(guān)(switch)Interrupt:中斷數(shù)據(jù)名稱(intnum)2023/2/2中斷指令-ISignalAI中斷觸發(fā)狀態(tài)﹕AIO_ABOVE_HIGH

模擬量信號(hào)邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH

模擬量信號(hào)邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW

模擬量信號(hào)邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW

模擬量信號(hào)邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN

模擬量信號(hào)邏輯值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間2023/2/2中斷指令-ISignalAI中斷觸發(fā)狀態(tài)﹕AIO_OUTSIDE

模擬量信號(hào)邏輯值大於最大邏輯值(HighValue)

或者小於最小邏輯值(LowValue)AIO_ALWAYS

總是觸發(fā)中斷﹐與模擬量信號(hào)邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關(guān)應(yīng)用﹕

使用相應(yīng)的模擬量輸入信號(hào)觸發(fā)相應(yīng)的中斷功能﹐必須同指令CONNECT聯(lián)合使用﹔2023/2/2中斷指令-ISignalAI實(shí)例﹕…..CONNECTint1WITHiroutine1;ISignalAI\Singleai1﹐AIO_BETWEEN,2,1,0,int1;…..CONNECTint2WITHiroutine2;ISignalAIai2﹐AIO_BETWEEN,1.5,0.5,0,int1;…..CONNECTint3WITHiroutine3;ISignalAIai3﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效﹐只有在程序重置或運(yùn)行IDelete後才失效2023/2/2中斷指令-ISignalAIRefValue:=CurrentValue如果沒有參變量[\Dpos]與[\DNeg]ABS(CurrentValue-RefValue)>DeltaValue如果使用參變量[\Dpos](CurrentValue-RefValue)>DeltaValue判斷中斷條件(Condition,HighValue,LowValue)如果使用參變量[\DNeg](RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentValue執(zhí)行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2023/2/2中斷指令-ISignalAI限製﹕當(dāng)前最大邏輯值(HighValue)與最小邏輯值(LowValue)必須是模擬量信號(hào)所定義的邏輯值範(fàn)圍內(nèi)﹔最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復(fù)位差值(DeltaValue)必須為正數(shù)或0﹔指令I(lǐng)SignalDI的限製﹐仍然適用﹔2023/2/2中斷指令-ISignalAOISingalAO[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]:單次中斷信號(hào)開關(guān)(switch)Signal:觸發(fā)中斷信號(hào)(singaldi)Condition:中斷觸發(fā)狀態(tài)(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num)2023/2/2中斷指令-ISignalAOISingalAO[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue:中斷恢復(fù)差值(num)[\DPos]:正值中斷開關(guān)(switch)[\DNeg]:負(fù)值中斷開關(guān)(switch)Interrupt:中斷數(shù)據(jù)名稱(intnum)2023/2/2中斷指令-ISignalAO中斷觸發(fā)狀態(tài)﹕AIO_ABOVE_HIGH

模擬量信號(hào)邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH模擬量信號(hào)邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW

模擬量信號(hào)邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW

模擬量信號(hào)邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN

模擬量信號(hào)邏輯值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間2023/2/2中斷指令-ISignalAO中斷觸發(fā)狀態(tài)﹕AIO_OUTSIDE

模擬量信號(hào)邏輯值大於最大邏輯值(HighValue)

或者小於最小邏輯值(LowValue)AIO_ALWAYS

總是觸發(fā)中斷﹐與模擬量信號(hào)邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關(guān)應(yīng)用﹕

使用相應(yīng)的模擬量輸入信號(hào)觸發(fā)相應(yīng)的中斷功能﹐必須同指令CONNECT聯(lián)合使用﹔2023/2/2中斷指令-ISignalAO實(shí)例﹕…..CONNECTint1WITHiroutine1;ISignalAO\Singleao1﹐AIO_BETWEEN,2,1,0,int1;…..CONNECTint2WITHiroutine2;ISignalAOao2﹐AIO_BETWEEN,1.5,0.5,0,int1;…..CONNECTint3WITHiroutine3;ISignalAOao3﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發(fā)後失效中斷功能持續(xù)有效﹐只有在程序重置或運(yùn)行IDelete後才失效2023/2/2中斷指令-ISignalAORefValue:=CurrentValue如果沒有參變量[\Dpos]與[\DNeg]ABS(CurrentValue-RefValue)>DeltaValue如果使用參變量[\Dpos](CurrentValue-RefValue)>DeltaValue判斷中斷條件(Condition,HighValue,LowValue)如果使用參變量[\DNeg](RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentValue執(zhí)行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2023/2/2中斷指令-ISignalAO限製﹕當(dāng)前最大邏輯值(HighValue)與最小邏輯值(LowValue)必須是模擬量信號(hào)所定義的邏輯值範(fàn)圍內(nèi)﹔最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復(fù)位差值(DeltaValue)必須為正數(shù)或0﹔指令I(lǐng)SignalDI的限製﹐仍然適用﹔2023/2/2中斷指令-ISleepISleepInterrupt;Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕

使機(jī)器人相應(yīng)中斷數(shù)據(jù)暫時(shí)失效﹐直到執(zhí)行指令I(lǐng)Watch後才恢復(fù)。2023/2/2中斷指令-ISleep實(shí)例﹕…..CONNECTintInspectWITHrAlarmISingalDIdi01_Vacuum,0,intInspect;…..ISleepintInspect;…..IWatchintInspect;…..中斷監(jiān)控中斷失效中斷監(jiān)控ErrorHandler:ERR_UNKINO

無法找到當(dāng)前的中斷數(shù)據(jù)2023/2/2中斷指令-IWatchIWatchInterrupt;Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕

激活機(jī)器人已失效的相應(yīng)中斷數(shù)據(jù)﹐正常情況下﹐與指令I(lǐng)Sleep配合使用。2023/2/2中斷指令-IWatch實(shí)例﹕…..CONNECTintInspectWITHrAlarmISingalDIdi01_Vacuum,0,intInspect;…..ISleepintInspect;…..IWatchintInspect;…..中斷監(jiān)控中斷失效中斷監(jiān)控ErrorHandler:ERR_UNKINO

無法找到當(dāng)前的中斷數(shù)據(jù)2023/2/2中斷指令-IDisableIWatchInterrupt;Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕

使機(jī)器人相應(yīng)中斷功能暫時(shí)不執(zhí)行﹐直到執(zhí)行IEnable後﹐才進(jìn)入中斷處理程序﹐此指令使用於機(jī)器人正在執(zhí)行不希望被打斷的操作其間﹐例如﹕通過通信口讀寫數(shù)據(jù)。2023/2/2實(shí)例﹕…..IDisable;FORiFROM1TODOcharacter[i]:=ReadBin(sensor);ENDFORIEnable;…..中斷指令-IDisable2023/2/2中斷指令-IEnableIEnableInterrupt;Interrupt:中斷數(shù)據(jù)名稱(intnum)應(yīng)用﹕

開始執(zhí)行被機(jī)器人暫停的相應(yīng)中斷功能﹐正常情況下﹐與指令I(lǐng)Disable配合使用﹐此指令用於機(jī)器人正在執(zhí)行不希望被打斷的操作期間﹐例如﹕通過通信口讀寫數(shù)據(jù)。2023/2/2實(shí)例﹕…..IDisable;FORiFROM1TODOcharacter[i]:=ReadBin(sensor);ENDFORIEnable;…..中斷指令-IEnable2023/2/2中斷指令-ITimerIW

溫馨提示

  • 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)論