【文档说明】ABB机器人高级编程(培训)课件.ppt,共(207)页,949.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-13103.html
以下为本文档部分文字说明:
NWE技术研发部自动化应用2022/11/15目录运动控制指令外轴激活指令计数指令输入输出指令程序运行停止指令例行程序调用指令计时指令中断指令通信指令中断运动指令程序流程指令故障处理指令坐标转换指令运动触发指令2022/11/15运
动控制指令AccSetVelSetConfJConfLSingAreaPathReasolSoftActSoftDeact2022/11/15运动控制指令-AccSetAccSetAcc,Ramp;Acc:机器人加速度百分率(num)Ramp:
机器人加速度坡度(num)应用﹕当机器人运行速度改变时﹐对所产生的相应加速度进行限制﹐使机器人高速运行时更平缓﹐但会延长循环时间﹐系统默认值为﹕AccSet100,100;2022/11/15运动控制指令-AccSet实例﹕限制﹕机器人加速度百分率最小值为20﹐小于20﹐以20计﹐机器人
加速度坡度最小值为10﹐小于10以10计﹔机器人冷启动﹐新程序加载与程序重置后﹐系统自动设置为默认值accelerationAccSet100,100﹐i.e.normalaccelerationAccSet30,100accelerationAccSet100,30
Time2022/11/15运动控制指令-VelSetVelSetOverride,Max;Override:机器人运行速度%(num)Max:最大运行速度mm/s(num)应用﹕对机器人的运行速度进行限制﹐机器人运动指令中均带有运行速度﹐
在执行运动速度控制指令VelSet后﹐实际运行速度为运动指令规定的运行速度乘以机器人运行速率﹐并且不超过机器人最大运行速度﹐系统默认值为﹕VelSet100,5000;2022/11/15運動控制指令-VelSet實例﹕VelSet50,800;MoveLp1,v1000,z10
,tool1;MoveLp2,v1000\v:=2000,z10,tool1;MoveLp3,v1000\T:=5,z10,tool1;VelSet80,1000;MoveLp1,v1000,z10,tool1;M
oveLp2,v5000,z10,tool1;MoveLp3,v1000\v:=2000,z10,tool1;MoveLp4,v1000\T:=5,z10,tool1;500mm/s800mm/s10s800mm/s100
0smm/s1000mm/s6.25s2022/11/15運動控制指令-VelSet限製﹕機器人冷啟動﹐新程序載入與程序重置後﹐系統自動設置為默認值﹔機器人使用參變量[\T]時﹐最大運行速度將不起作
用﹔Override對數據(speeddate)內所有項都起作用﹐例如﹕TCP﹑方位及外軸﹐但對焊接參數welddate與seamdate內機器人運動速度不起作用﹔Max只對速度數據(speeddate)內TCP這項起作用﹔2022/11/15
運動控制指令-ConfJConfJ[\On][\Off];[\On]:啟動軸配置數據(switch)關節運動時﹐機器人移動至絕對ModPos點﹐如果無法到達﹐程序將停止運行﹔[\Off]:默認H軸配置數據(switch)關節
運動時﹐機器人移動至ModPos點﹐軸配置數據默認為當前最接近值﹔2022/11/15運動控制指令-ConfJ應用﹕對機器人運行姿態進行限製與調整﹐程序運行時﹐使機器人運行姿態得到控制﹐系統默認值為﹕ConfJ\On;實例﹕ConfJ\On;…..C
onfJ\Off;限製﹕機器人冷啟動﹐新程序載入與程序重置後﹐系統自動設置為默認值2022/11/15运动控制指令-ConfLConfL[\On][\Off];[\On]:启动轴配置数据(switch)直
线运动时﹐机器人移动至绝对ModPos点﹐如果无法到达﹐程序将停止运行﹔[\Off]:默认H轴配置数据(switch)直线运动时﹐机器人移动至ModPos点﹐轴配置数据默认为当前最接近值﹔2022/11/15運動控制指令-ConfL應用﹕對機
器人運行姿態進行限製與調整﹐程序運行時﹐使機器人運行姿態得到控制﹐系統默認值為﹕ConfL\On;實例﹕ConfL\On;…..ConfL\Off;限製﹕機器人冷啟動﹐新程序載入與程序重置後﹐系統自動設
置為默認值2022/11/15運動控制指令-SingAreaSingArea[\Wrist][\Off];[\Wrist]:啟動位置方位調整(switch)機器人運動時﹐為了避免頻繁死機﹐位置點允許其方位值有些許改變﹐例如﹕在五軸零度時﹐機器人四六軸平行﹔[\Off]:關閉位置方位調整(switc
h)機器人運動時﹐不允許位置點方位改變﹐是機器人的默認狀態﹔2022/11/15運動控制指令-SingArea應用﹕當前指令通過對機器人位置點姿態進行些許改變﹐可以絕對避免機器人運行時死機﹐但是﹐機器人運行路
徑會受影響﹐姿態得不到控制﹐通常使用與通過複雜姿態點﹐絕對不能作為工作點使用﹔實例﹕SingArea\Wrist;…..SingArea\Off;2022/11/15運動控制指令-SingArea限製﹕以下情況機器人將自動恢復默認值SingArea\Off-機器人
冷啟動-系統重新載入新的程序-系統重置(StartFromBeginning)2022/11/15運動控制指令-PathResolPathResolPathSampleTime;PathSampleTime:路徑控制%(num)應用﹕當前指令用於更改機器人主機系統參數;調整機器人路徑采樣時間﹐從
而達到控制機器人運行路徑的效果﹐通過此指令可以提高機器人運動精度或縮短循環時間﹐路徑控制默認值為100%﹐調整範圍為25%-400%路徑控制百分比越小﹐運動精度越高﹐占用CPU資源也越多2022/11/15運動控制指令-PathResol實例﹕MoveJp1,v1000,fine
,tool1;PathResol150;機器人在臨界運動狀態(重載﹑高速﹑路徑變化複雜情況下接近最大工作區域)﹔增加路徑控制值﹐可避免頻繁死機﹔外軸以很低的速度與機器人聯動﹐增加路徑控制值﹐可避免頻繁死機﹔機器人進行高頻率擺動弧焊時﹐需要很高
的路徑采樣時間﹐需要減小路徑控制值﹔機器人進行小範圍複雜運動時﹐需要很高的精度﹐需要減小路徑控制值﹔2022/11/15運動控制指令-PathResol限製﹕機器人必須在完全停止後才能更改路徑控制值﹐否則﹐機器人將默認一個停止點﹐并
且顯示錯誤信息50146﹔機器人在更改路徑控制值時﹐機器人被強製停止運行﹐機器人將不能立刻恢復正常運行(Restart)以下情況機器人將自動恢復默認值100%-機器人冷啟動-系統載入新的程序-程序重置(StartFrom
Beginning)2022/11/15運動控制指令-SoftActSoftAct[\MechUnit],Axis,Softness[\Ramp][\MechUnit]﹕軟化外軸名稱(mechunit)Axis:軟化外軸號碼(num)Sof
tness:軟化值%(num)[\Ramp]:軟化坡度%(num)應用﹕當前指令用於軟化機器人主機或外軸伺服系統﹐軟化值範圍0%-100%,軟化坡度範圍>=100%,此指令必須與指令SoftDeact同時使用﹐通常不使用於工作位置。
2022/11/15運動控制指令-SoftAct實例﹕SoftAct3,20;SoftAct1,90\Ramp:=150;SoftAct\MechUnit:=Orbit1,1,40\Ramp:=120;限
製﹕機器人被強製停止運行後﹐軟伺服設置將自動失效﹔同一轉軸軟化伺服不允許被連續設置兩次﹔…..…..SoftAct3,20;SoftAct3,20;SoftAct3,20;MoveJ*,v100,fine,tool;…..SoftAct3,20;…..2022/11/15運
動控制指令-SoftDeactSoftDeact[\Ramp][\Ramp]:軟化坡度>=100%(num)應用﹕當前指令用於使軟化機器人主機或外軸伺服系統指令SoftAct失效。實例﹕SoftAct3,20;So
ftDeact;SoftAct1,90;SoftDeact\Ramp:=150;2022/11/15外軸激活指令ActUnitDeactUnit2022/11/15外軸激活指令-ActUnitActUnitMecUnitMecUnit:外軸名(mecunit)應用﹕
將機器人一個外軸激活﹐例如﹕當多個外軸公用一個驅動板時﹐通過外軸激活指令ActUnit選擇當前所使用的外軸﹔2022/11/15外軸激活指令-ActUnit實例﹕MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool
1;DeactUnittrack_motion;ActUnitorbit_a;MoveLp30,v100,z10,tool1;限製﹕不能在指令StorePath…RestorePath內使用不能在預置程序RESTART內使用不能在機器人轉軸處於獨立狀態時使用P10
,外軸不動P20,外軸聯動Track_motionP30,外軸聯動Orbit_a2022/11/15外軸激活指令-DeactUnitDeactUnitMecUnitMecUnit:外軸名(mecunit)應用﹕將機器人一個外軸失效﹐例如﹕當多個外軸公用一個驅動板時﹐通過外軸激活指令Deac
tUnit使當前所使用的外軸失效﹔2022/11/15實例﹕MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool1;DeactUnittrack_motion;ActUnitorbit_a;M
oveLp30,v100,z10,tool1;限製﹕不能在指令StorePath…RestorePath內使用不能在預置程序RESTART內使用P10,外軸不動P20,外軸聯動Track_motionP30,外軸聯動Orbit_a外軸激活指令-DeactUnit2022/11/15計數指令Ad
dClearIncrDecr2022/11/15計數指令-AddAddName,AddValurName:數據名稱(num)AddValue:增加的值(num)應用﹕在一個數字數據值是增加相應的值﹐可以用賦值指令替代﹔實例﹕Addreg1,3;等同於reg1:=reg1+3;Addreg1,re
g2;等同於reg1:=reg1+reg2;2022/11/15計數指令-ClearClearName;Name:數據名稱(num)應用﹕將一個數字數據的值歸零﹐可以用賦值指令替代﹔實例﹕Clearr
eg1;等同於reg1:=02022/11/15計數指令-IncrIncrName;Name:數據名稱(num)應用﹕在一個數字數據的值上加1﹐可以用賦值指令替代﹔一般用於產量計數﹔實例﹕Incrreg1;等同於reg1:=reg1+1;2022/11/15計數指令-
DecrDecrName;Name:數據名稱(num)應用﹕在一個數字數據的值減1﹐可以用賦值指令替代﹔一般用於產量計數﹔實例﹕Incrreg1;等同於reg1:=reg1-1;2022/11/15輸入輸出指令AliasIOInvertDOIODisableIOEnablePluseDOR
esetSetSetAOSetDOSetGOWaitDIWaitDO2022/11/15輸入輸出指令-AliasIOAliasIOFromSignal,ToSignal;FromSignal:機器人系統參數內所定義的信號名稱﹔(SignalXXorstring)T
oSignal:機器人程序內所使用的信號名稱(SignalXX)應用﹕對機器人系統參數內定義的信號名稱進行化名﹐給機器人程序使用﹐一般使用與LoadedModule或Built-inModule內﹐例如﹕多台機器人使用相同系統參數2022
/11/15輸入輸出指令-AliasIO實例﹕VARsignaldoalias_do;CONSTstringconfig_string:=“config_do”;PROCprog_start()AliasIOconfig_d
o,alias_do;AliasIOconfig_string,alias_do;ENDPROCAlias_do,在機器人程序內定義config_do,在系統參數內定義2022/11/15輸入輸出指令-AliasIO限製﹕指令AliasIO必須放置在預置程序S
TART內或程序內使用相應的信號之前﹔指令AliasIO在示教器上無法輸入﹐只能通過離線編輯輸入﹔指令AliasIO需要軟件Develop’sFunctions的支持2022/11/15輸入輸出指令-InvertDOInvertDOSignal;Signal:輸出信號名稱﹔
(SignalDO)應用﹕將機器人輸出信號值反轉﹐0為1﹐1為0﹐在系統參數內也可定義﹔實例:InvertDOdo15;2022/11/15輸入輸出指令-InvertDO機器人程序內指令InvertDO被執行1100SignalLevelSignalLevel2022/11/15輸入輸出指令-
IODisableIODisableUnitName,MaxTime;UnitName:輸入輸出板名稱﹔(num)MaxTime:最長等待時間(num)應用﹕通過指令可以使機器人輸入板在程序運行時自動失效﹐系統將一塊輸入輸出板失效需要2-5秒﹐如果失效時間超過最長等待時
間﹐系統將進入ErrorHandler處理﹐錯誤代碼為ERR_IODISABLE﹐如果例行程序沒有ErrorHandler﹐機器人將停機報錯。2022/11/15實例﹕PROCgo_home()recover_fl
ag:=1;IODisable“cell”,0’MoveJhome,v1000,fine,tool1;recover_cover:=2;IODisable“cell”,5;ERRORIFERRNO=ERR_IODISABLETHENIFrecover_flag=1THEN
TRYNEXT;ELSEIFrecover_flag=2THENRETRY;ENDIFELSEIFERRNO=ERR_EXCRPTYMAXTHENErrorWrite“IODisableerror”,”Restarttheprogram”;Ttop
;ENDIFENDPROC輸入輸出指令-IODisable輸入輸出板cell開始失效﹐最長等待時間為0﹐肯定進入ErrorHandler處理利用機器人移動到home的時間完成輸入輸出板失效確認輸入輸出板失效連續5次RETRY後﹐仍無法完成輸入輸出板的失效2022/11/15輸入輸出指令-IO
DisableErrorHandingERR_IODISABLE超過最長等待時間﹐系統仍未完成輸入輸出板失效﹔ERR_CALLIO_INTER系統在執行輸入輸出板失效與激活時﹐當前輸入輸出板與再次被失效或激活﹐形成沖突ER
R_NAME_INVALID輸入輸出板名稱錯誤或無法進行失效與激活操作2022/11/15輸入輸出指令-IOEnableIOEnableUnitName,MaxTime;UnitName:輸入輸出板名稱﹔(num)MaxTime:最長等待時間(num)應用﹕通過指令可以
使機器人輸入板在程序運行時自動激活﹐系統將一塊輸入輸出板失效需要2-5秒﹐如果失效時間超過最長等待時間﹐系統將進入ErrorHandler處理﹐錯誤代碼為ERR_IOENABLE﹐如果例行程序沒有ErrorHandler﹐
機器人將停機報錯。2022/11/15輸入輸出指令-IOEnable實例﹕VARnummax_retry:=0;…..IOEnable“cell:,0;SetDOcell_sig3,1;ERRORIFERRNO=ERR_IOENABLETHENIFma
x_retry<5THENWaitTime1;max_retry:=max_retry+1;RETRY;ELSERAISE;ENDIFENDIF輸入輸出板cell開始激活﹐最長等待時間為0﹐肯定進入ErrorHand
ler處理通過每次1秒進行計數﹐連續5次仍無法激活輸入輸出板﹐執行指令RAISE2022/11/15輸入輸出指令-IOEnableErrorHandingERR_IOENABLE超過最長等待時間﹐系統仍未完成輸入輸出板激活﹔ERR_CAL
LIO_INTER系統在執行輸入輸出板失效與激活時﹐當前輸入輸出板與再次被失效或激活﹐形成沖突ERR_NAME_INVALID輸入輸出板名稱錯誤或無法進行失效與激活操作2022/11/15輸入輸出指令-PulseD
OPulseDO[\High][\PLength]Signal;;[\High]:輸出脈沖時﹐輸出信號可以處在高電平﹔(swtich)[\PLength]:脈沖長度﹐0.1s-32s,,默認為0.2s(num)Signa
l:輸出信號名稱(signaldo)應用﹕機器人輸出數字脈沖信號﹐一般作為運輸鏈完成信號或計數信號2022/11/15輸入輸出指令-PulseDOPulseDO\High\Plength:=X1100Sign
alLevelSignalLevel脈沖長度PulseDO10SignalLevel10SignalLevel脈沖長度PluseDO\HighPulseDO\High\Plength:=YYX實例﹕2022/11/15輸入輸出指令-PulseDO限製﹕機器人脈沖輸出長
度小於0.01秒﹐系統將報錯﹐不得不熱啟動例如﹕WHILETRUEDOPulseDOdo5;ENDWHILE2022/11/15輸入輸出指令-ResetResetSignal;Signal:輸入輸出信號名稱﹔(signaldo)應用﹕將機器人相應數字輸出信號置
為0﹐與指令Set對應﹐是自動化重要組成部分。實例﹕Resetdo12;2022/11/15輸入輸出指令-SetSetSignal;Signal:輸入輸出信號名稱﹔(signaldo)應用﹕將機器人相應數字輸出信號置為1﹐與指令Reset對應﹐是自動化重要組成部分。實例﹕Set
do12;2022/11/15輸入輸出指令-SetAoSetAoSignal,Value;Signal:模擬量輸出信號名稱﹔(signaldo)Value:模擬量輸出信號值﹔(num)應用﹕機器人當前模擬量輸出信號輸出相應的值;例如﹕機器人焊接時﹐通過模
擬量輸出控制焊接電壓和送絲速度。2022/11/15輸入輸出指令-SetAoMINSIGNALMINPROGRAMMAXSIGNALMAXPROGRAMPhysicalvaluroftheOutput
signal(V.mA.etd)Logicalvalurintheprogram實例﹕SetAOao2,5.5;SetAoweldcurr,curr_outp2022/11/15輸入輸出指令-SetDoSetDo[\SDelay]Si
gnal,Value;[\SDelay]:延時輸出時間s(num)Signal:輸出信號名稱﹔(signaldo)Value:輸出信號值﹔(num)應用﹕設置機器人相應組合輸出信號的值(采用8421碼)﹐可以設置延時輸出﹐延時範圍為0.1s-32
s,默認狀態為沒有延時。實例﹕SetGo\SDelay:=0.2,go_Type,10;2022/11/15輸入輸出指令-SetGoSetGo[\SDelay]Signal,Value;[\SDelay]:延時輸出時間s(num)Signal:輸出信號名稱﹔(
signaldo)Value:輸出信號值﹔(num)應用﹕設置機器人相應數字輸出信號的值﹐與指令Set和Reset雷同﹐并且可以設置延時﹐延時的範圍為0.1s-32s,默認狀態為沒有延時。實例﹕SetDo\SDelay:=0.2,weld,high
;2022/11/15輸入輸出指令-WaitDIWaitDISignal,Value[\MaxTime][\TimeFlag];Signal:輸入信號名稱﹔(signaldo)Value:輸入信號值﹔(num)[\MaxTime]:最長等待時間s(num)[\TimeFlag]:超時邏輯量(
bool)應用﹕等待數字輸入信號滿足相應值﹐達到通信目的﹐是自動化生產重要組成部分﹐例如﹕機器人等待工件到位信號。2022/11/15輸入輸出指令-WaitDI實例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;Wait
DIdi_Ready,1;…..ENDPROCPROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;WaitDIdi_Ready,1\MaxTime﹕=5﹔…..ERRORIFERRNO=ERR_WAIT_MAXTIME
THENTRWrite“…..”;RETRY;ELSERAISE;ENDIFENDPROC機器人等待輸入信號﹐直到信號di_Ready值為1﹐才執行隨後指令機器人等待相應輸入信號﹐如果5秒內仍沒有等到信號di_Ready值為1﹐自動進行ErrorHandle
r處理﹐如果沒有ErrorHandler,機器人停機報錯2022/11/15實例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;bTimeout:=TRUE;nCoun
ter:=0;WHILEbTimeoutDOIFnCounter>3THENTPWrite“…..”;ENDIFIFnCounter>30THENStop;ENDIFWaitDIdi_Ready,1\MaxTime﹕=1\Timeflag
:=bTimeout;IncrnCounter;ENDWHOLE…..ENDPROC機器等待到位信號﹐如果1秒內仍沒有等到信號di_Ready值為1﹐機器人執行隨後指令﹐但此時TimeFlag值為TRUE﹐機器人等到di_Ready值為1﹐此時Time
Flag值為FALSE輸入輸出指令-WaitDI2022/11/15輸入輸出指令-WaitDOWaitDOSignal,Value[\MaxTime][\TimeFlag];Signal:輸出信號名稱﹔(signaldo)Value:
輸出信號值﹔(num)[\MaxTime]:最長等待時間s(num)[\TimeFlag]:超時邏輯量(bool)應用﹕等待數字輸出信號滿足相應值﹐達到通信目的﹐因為輸出信號一般情況下受程序控制此指令很少使用。2022/11/15實例﹕PROCGrip()Setdo03_Grip
;WaitDOdo03_Grip,1;…..ENDPROCPROCGrip()Setdo03_Grip;WaitDOdo03_Grip,1\MaxTime:=5;…..ERRORIFERRNO=ERR_WAIT_MAXTIMETHENTRWrite“…..”;RETRY
;ELSERAISE;ENDIFENDPROC機器人等待輸出信號﹐直到信號do03_Grip為1﹐才執行隨後指令﹔機器人等待相應輸出信號﹐如果5秒內仍沒有等到信號do03_Grip值為1﹐自動進行ErrorHandler處理﹐如果沒有ErrorHandler,機器人停機報錯輸入輸出指
令-WaitDO2022/11/15實例﹕PROCGrip()Setdo03_Grip;bTimeout:=TRUE;nCounter:=0;WHILEbTimeoutDOIFnCounter>3THENTPWrite“…..”;ENDIFIFnCounter
>30THENStop;ENDIFWaitDIdi_Ready,1\MaxTime﹕=1\Timeflag:=bTimeout;IncrnCounter;ENDWHOLE…..ENDPROC機器等待到位信號﹐如果1秒內仍沒有等到信號do03_Grip值為1﹐機器人執行
隨後指令﹐但此時TimeFlag值為TRUE﹐機器人等到di_Ready值為1﹐此時TimeFlag值為FALSE輸入輸出指令-WaitDO2022/11/15程序運行停止指令BreakExitStopExitCycle2022/1
1/15程序運行停止指令-BreakBreak;應用﹕機器人在當前指令行立刻停止運行﹐程序運行指針停留在下一行指令﹐可以用Start鍵繼續運行機器人。實例﹕…..Break;…..2022/11/15程序運行停止指令-Break區別﹕MoveLp2,v100,z30,tool0
;Break;(Stop)MoveLp3,v100,z30,tool0;p1BreakStopp3p22022/11/15程序運行停止指令-EXITEXIT;應用﹕機器人在當前指令行停止運行﹐并且程序重置﹐程序運
行指針停留在主程序第一行。實例﹕…..EXIT;…..2022/11/15Stop[\NoRegain];[\NoRegain]:路徑恢復參數(num)應用﹕機器人在當前指令停止運行﹐程序運行指針停留在下一
行指令﹐可以用Start鍵繼續運行機器人﹐屬於臨時性停止﹐如果機器人停止期間被手動移動後﹐然後直接啟動機器人﹐機器人將警告確認路徑﹐如果此時采用參變量[\NoRegain]﹐機器人將直接運行。程序運行停止指令-STOP2022/11/15區別﹕MoveLp2,
v100,z30,tool0;Stop;(Break;)MoveLp3,v100,z30,tool0;p1BreakStopp3p2程序運行停止指令-STOP2022/11/15程序運行停止指令-ExitCycleExitCycle;應
用﹕機器人在當前指令行立刻停止運行﹐并且設定當前循環結束﹐機器人自動從主程序第一行繼續運行下一個循環。2022/11/15程序運行停止指令-ExitCycle實例﹕PROCmain()IFcyclecount=0THENCONNECTerror_intnoWITHerror_
trapISignalDIdi_error,1,error_intno;ENDIFcyclecount:=cyclecount+1;!starttodosomethingintelligent…..ENDPROCTRAPerror_trapTPWrite“Iwil
lstatronthenextitem”;ExitCycle;ENDTRAP2022/11/15例行程序調用指令ProcCallCallByVar2022/11/15ProcCallProcedure{Argument}Procedure:例行程序名稱(Identi
fier){Argument}:例行程序參數(All)應用﹕機器人調用相應例行程序﹐同時給帶有參數的例行程序中相應的參數賦值。實例﹕Weldpipe1;Weldpipe210,lowspeed;Weldpipe31
0\speed:=20;例行程序調用指令-ProcCall2022/11/15例行程序調用指令-ProcCall限製﹕機器人調用帶參數的例行程序時﹐必須包括所有強製性參數﹔例行程序所有參數位置次序必
須與例行程序設置一致﹔例行程序所有參數數據類型必須與例行程序設置一致﹔例行程序所有參數數據性質必須為Input,Variable或Persistent;2022/11/15CallByVarName,Number;Name:例行程序名稱第一
部分(string)Number:例行程序名稱第二部分(num)應用﹕通過指令中相應數據﹐機器人調用相應例行程序﹐但無法調用帶有參數的例行程序。實例﹕reg1:=Ginput(gi_Type);CallByVar“proc”,reg1;例行程序調用指令-CallByV
ar2022/11/15例行程序調用指令-CallByVar限製﹕不能調用帶參數的例行程序﹔所有被調用的例行程序名稱第一部分必須相同﹐例如﹕proc1,proc2,proc3;使用CallByVar指令調用例行程序比直接采用ProcCall調用例行程序需要更長時
間﹔ErrorHandling:ERR_REFUNKPRC系統無法找到例行程序名稱第一部分ERR_CALLPROC系統無法找到例行程序名稱第二部分2022/11/15實例比較﹕TESTreg1CASE1:If_doordoor_loc;CASE2:rf_doordo
or_loc;CASE3:Ir_doordoor_loc;CASE4:rr_doordoor_loc;DEFAULTEXIT;ENDTESTCallByVar“proc”,reg1;%”proc”+NumTostr(reg1,0)%
door_loc;例行程序調用指令-CallByVar指令CallByVar不能調用帶有參數的例行程序通過RAPID結構仍可以調用帶有參數的例行程序2022/11/15計時指令ClkResetClkS
tartClkStop2022/11/15ClkResetClock;Clock:時鐘名稱(clock)應用﹕將機器人相應時鐘復位﹐常用於記錄循環時間或機器人跟蹤運輸鏈。實例﹕ClkResetclock1;ClkStartclock1;RunCycle;C
lkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:’\Num:=nCycleTime計時指令-ClkReset2022/11/15ClkStartClock;Clock:時鐘名稱(clo
ck)應用﹕啟動機器人相應時鐘﹐常用於記錄循環時間或機器人跟蹤運輸鏈﹐機器人時鐘啟動後﹐時鐘不會因為機器人停止運行或關機而停止計時﹐在機器人時鐘運行時﹐指令ClkStop與ClkReset仍起作用。計時指令-ClkStart2022/11/15計時指令-ClkStar
t實例﹕ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycl
etime:’\Num:=nCycleTime限製﹕機器人時鐘計時超過4,294,967秒﹐即49天17小時2分47秒﹐機器人將出錯﹐ErrorHandler代碼為ERR_OVERFLOW2022/11/15ClkStopClock;Clock:
時鐘名稱(clock)應用﹕停止機器人相應時鐘﹐常用於記錄循環時間或機器人跟蹤運輸鏈。實例﹕ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock
1);TPWrite“Lastcycletime:’\Num:=nCycleTime計時指令-ClkStop2022/11/15中斷指令CONNECTIDeleteISignalDIISignalDOISignalAIISignalAOISleepIWatchIDisableIEnabl
eITimer2022/11/15中斷指令-CONNECTCONNECTInterruptWITHTraproutineInterrupt:中斷數據名稱(intnum)Traproutine:中斷處理程序(Identifier)應用
﹕將機器人相應中斷數據連接到相應的中斷處理程序是機器人中斷功能必不可少的組成部分﹐必須同指令ISignalDI﹑ISignalDO﹑ISignalAI﹑ISignalAO﹑或ITmer聯合使用2022/11/15中斷指令-CONNECT實例﹕VARintnumintI
nspectProcmain()…..CONNECTintInpectWITHrAlarm;ISignalDIdi01_Vacuum,0,intInspect;…..ENDPROCTRAPrAlarmTPWrite“GripError”;Stop;WaitDIdi01_Vacuum,1
;ENDTRAP2022/11/15中斷指令-CONNECT限製﹕中斷數據的數據類型必須為變量(VAR)﹐一個中斷數據不允許同時連接到多個中斷處理程序﹐但多個中斷數據可以共享一個中斷處理程序﹐當一個中斷數據完成連接後
﹐這個中斷數據不允許再次連接到任何中斷處理程序﹐(包括已經連接的中斷處理程序)﹐如果需要再次連接到任何中斷處理程序﹐必須先使用指令IDelete將原連接去除。2022/11/15中斷指令-CONNECTErrorHandler:ERR_ALRDYCN
T中斷數據已經被連接到中斷處理程序﹔ERR_CNTNOTVAR中斷數據的數據類型不是變量﹔ERR_INOMAX沒有更多的中斷數據可以使用﹔2022/11/15中斷指令-IDeleteIDeleteIn
terruptInterrupt:中斷數據名稱(intnum)應用﹕將機器人相應中斷數據與相應的中斷處理程序之間的連接去除﹔實例﹕…..CONNECTIntInspectWITHrAlarm;ISingalDIdi01_Vacuum,0,intInspect;….
.IDeleteintInspect;2022/11/15中斷指令-IDelete限製﹕執行指令IDelete後﹐當前中斷數據的連接被完全清除﹐如需再次使用這個中斷數據必須重新使用指令CONNECT連接到相應的中斷處理程序﹔在下列情況下﹐中斷程序
將自動去除﹕-重新載入新的運行程序﹔-機器人運行程序被重置﹐程序指針回到主程序的第一行(StartFromBeginning);-機器人程序指針被移到任意一個例行程序的第一行(MovePPtoRoutine);2022/11/
15中斷指令-ISignalDIISingalDI[\Single],Signal,TriggValue,Interrupt[\single]:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)TriggValue:觸
發信號值(dionum)Interrupt:中斷數據名稱(intnum)應用﹕使用相應的數字輸入信號觸發相應的中斷功能﹐必須同指令CONNECT聯合使用2022/11/15中斷指令-ISignalDI100中斷觸發1中斷觸
發實例﹕…..CONNECTint1WITHiroutine1;IsignalDI\singledi01,1,int1;…..CONNECTint2WITHiroutine2;ISignalDIdi02,1,int1…..中斷功能在單次觸發後失效中斷功能持續有
效﹐只有在程序重置或運行指令IDelete後才失效2022/11/15中斷指令-ISignalDI限製﹕當一個中斷數據完成連接後﹐這個中斷數據不允許再次連接到任何中斷處理程序﹐(包括已經連接的中斷處理程序)﹐如果需要再次連接到任何中斷處理程序﹐必須先使用指令ID
elete將原連接去除;PROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,int1;…..IDeleteint1;ENDPROCPROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,i
nt1;WHILETRUEDO…..ENDWHILEENDPROC2022/11/15中斷指令-ISignalDOISingalDO[\Single],Signal,TriggValue,Interrupt[\single]:單次中斷信號開關(swi
tch)Signal:觸發中斷信號(singaldi)TriggValue:觸發信號值(dionum)Interrupt:中斷數據名稱(intnum)應用﹕使用相應的數字輸入信號觸發相應的中斷功能﹐必須同指令CONNECT聯合使用2
022/11/15中斷指令-ISignalDO100中斷觸發1中斷觸發實例﹕…..CONNECTint1WITHiroutine1;IsignalDO\singledi01,1,int1;…..CONNECTint2WITH
iroutine2;ISignalDOdi02,1,int1…..中斷功能在單次觸發後失效中斷功能持續有效﹐只有在程序重置或運行指令IDelete後才失效2022/11/15中斷指令-ISignalDO限製﹕當一個中斷數據完成連接後﹐這個中斷數據不
允許再次連接到任何中斷處理程序﹐(包括已經連接的中斷處理程序)﹐如果需要再次連接到任何中斷處理程序﹐必須先使用指令IDelete將原連接去除;PROCmain()CONNECTint1WITHr1;ISignalDOdO01,1,int1;…..IDeleteint1;E
NDPROCPROCmain()CONNECTint1WITHr1;ISignalDOdi01,1,int1;WHILETRUEDO…..ENDWHILEENDPROC2022/11/15中斷指令-ISignalAIISingalAI[\Si
ngle],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)Condition
:中斷觸發狀態(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num)2022/11/15中斷指令-ISignalAIISingalAI[\Single],Signal,Condition,HighValu
eLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue:中斷恢復差值(num)[\DPos]:正值中斷開關(switch)[\DNeg]:負值中斷開關(switch)Interrupt:中斷數據名稱(
intnum)2022/11/15中斷指令-ISignalAI中斷觸發狀態﹕AIO_ABOVE_HIGH模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH模擬量信號邏輯值小於最大
邏輯值(HighValue)AIO_ABOVE_LOW模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN模擬量信號邏輯值處於最小邏輯值
(LowValue)和最大邏輯值(HighValue)之間2022/11/15中斷指令-ISignalAI中斷觸發狀態﹕AIO_OUTSIDE模擬量信號邏輯值大於最大邏輯值(HighValue)或者小於最小邏輯值(LowValue)AIO_ALWAYS總是觸發中斷﹐
與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關應用﹕使用相應的模擬量輸入信號觸發相應的中斷功能﹐必須同指令CONNECT聯合使用﹔2022/11/15中斷指令-ISignalAI實例﹕…..C
ONNECTint1WITHiroutine1;ISignalAI\Singleai1﹐AIO_BETWEEN,2,1,0,int1;…..CONNECTint2WITHiroutine2;ISignalAIai2﹐AIO_BETWEEN,1.5,0.5,0,int1;…..CO
NNECTint3WITHiroutine3;ISignalAIai3﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發後失效中斷功能持續有效﹐只有在程序重置或運行IDelete後才失效2022/11/15中斷指令-ISi
gnalAIRefValue:=CurrentValue如果沒有參變量[\Dpos]與[\DNeg]ABS(CurrentValue-RefValue)>DeltaValue如果使用參變量[\Dpos](CurrentValue-RefValue)>Delt
aValue判斷中斷條件(Condition,HighValue,LowValue)如果使用參變量[\DNeg](RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentVa
lue執行中斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2022/11/15中斷指令-ISignalAI限製﹕當前最大邏輯值(HighVa
lue)與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值範圍內﹔最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復位差值(DeltaValue)必須為正數或0﹔指令ISignalDI的限製﹐仍然適用﹔2022/11/15中斷指令-ISign
alAOISingalAO[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],Interrupt[\single]:單次中斷信號開關(switch)Si
gnal:觸發中斷信號(singaldi)Condition:中斷觸發狀態(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num)2022/11/15中斷指令-
ISignalAOISingalAO[\Single],Signal,Condition,HighValueLowValeu,DeltaValue,[\Dpos][\DNeg],InterruptDeltaValue:中斷恢復差值(num)[\DPos]:正值中斷開關(switch)[\DN
eg]:負值中斷開關(switch)Interrupt:中斷數據名稱(intnum)2022/11/15中斷指令-ISignalAO中斷觸發狀態﹕AIO_ABOVE_HIGH模擬量信號邏輯值大於最大邏輯
值(HighValue)AIO_BELOW_HIGH模擬量信號邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN模擬量信號邏輯
值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間2022/11/15中斷指令-ISignalAO中斷觸發狀態﹕AIO_OUTSIDE模擬量信號邏輯值大於最大邏輯值(HighValue)或者小於最小
邏輯值(LowValue)AIO_ALWAYS總是觸發中斷﹐與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關應用﹕使用相應的模擬量輸入信號觸發相應的中斷功能﹐必須同指令CONNECT聯合使用﹔202
2/11/15中斷指令-ISignalAO實例﹕…..CONNECTint1WITHiroutine1;ISignalAO\Singleao1﹐AIO_BETWEEN,2,1,0,int1;…..CONNECTint2WITHiroutine2;ISignalAOao2﹐AIO_BETWEE
N,1.5,0.5,0,int1;…..CONNECTint3WITHiroutine3;ISignalAOao3﹐AIO_BETWEEN,1.5,0.5,0.1,int3;中斷功能在單次觸發後失效中斷功能持續有效﹐只有在程序重置或運行IDelete後才失效2022/11/15中斷指令
-ISignalAORefValue:=CurrentValue如果沒有參變量[\Dpos]與[\DNeg]ABS(CurrentValue-RefValue)>DeltaValue如果使用參變量[\Dpos](CurrentValue-RefValue)>DeltaValue判斷中斷條件(
Condition,HighValue,LowValue)如果使用參變量[\DNeg](RefValue-CurrentValue)>DeltaValueABS(CurrentValue-RefValue)>DeltaValueRefValue:=CurrentValue執行中
斷處理RefValue:=CurrentValueTRUETRUETRUETRUETRUEFALSEFALSEFALSEFALSEFALSE2022/11/15中斷指令-ISignalAO限製﹕當前最大邏輯值(HighValue)與最
小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值範圍內﹔最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復位差值(DeltaValue)必須為正數或0﹔指令ISignalDI的限製﹐仍然適用﹔2022/11/15中斷指令-ISleep
ISleepInterrupt;Interrupt:中斷數據名稱(intnum)應用﹕使機器人相應中斷數據暫時失效﹐直到執行指令IWatch後才恢復。2022/11/15中斷指令-ISleep實例﹕…..CONNECTintInspect
WITHrAlarmISingalDIdi01_Vacuum,0,intInspect;…..ISleepintInspect;…..IWatchintInspect;…..中斷監控中斷失效中斷監控ErrorHandler:ERR_UNKINO無法找到當前的中
斷數據2022/11/15中斷指令-IWatchIWatchInterrupt;Interrupt:中斷數據名稱(intnum)應用﹕激活機器人已失效的相應中斷數據﹐正常情況下﹐與指令ISleep配合使用。2022/11/15中斷指令-IWatch
實例﹕…..CONNECTintInspectWITHrAlarmISingalDIdi01_Vacuum,0,intInspect;…..ISleepintInspect;…..IWatchintInspect;…..中斷監控
中斷失效中斷監控ErrorHandler:ERR_UNKINO無法找到當前的中斷數據2022/11/15中斷指令-IDisableIWatchInterrupt;Interrupt:中斷數據名稱(intnum)應用﹕使機器人相應中斷功能暫時不執行﹐直到執行IEnable後﹐才進入中斷處理程
序﹐此指令使用於機器人正在執行不希望被打斷的操作其間﹐例如﹕通過通信口讀寫數據。2022/11/15實例﹕…..IDisable;FORiFROM1TODOcharacter[i]:=ReadBin(sensor);ENDFORIEnable;…..中斷指令-IDisa
ble2022/11/15中斷指令-IEnableIEnableInterrupt;Interrupt:中斷數據名稱(intnum)應用﹕開始執行被機器人暫停的相應中斷功能﹐正常情況下﹐與指令IDisable配
合使用﹐此指令用於機器人正在執行不希望被打斷的操作期間﹐例如﹕通過通信口讀寫數據。2022/11/15實例﹕…..IDisable;FORiFROM1TODOcharacter[i]:=ReadBin(sen
sor);ENDFORIEnable;…..中斷指令-IEnable2022/11/15中斷指令-ITimerIWatch[\Single],Time,Interrupt;[\Single]:單次中斷開關(switch)Time:觸發中斷
時間s(num)Interrupt:中斷數據名稱(intnum)應用﹕定時處理機器人相應中斷數據﹐此指令常使用於通過通信口讀寫數據等場合。2022/11/15中斷指令-ITimer實例﹕…..CONNECTtimeintWITHcheck_serialch;ITimer60,timein
t;…..Trapcheck_serialchWriteBinch1,buffer,1;IFReadBin(ch1\Time:=5)<0THENTPWrite“Communicationisbroken”;EXIT;ENDIFENDTRAP202
2/11/15通信指令(人機對話)TPEraseTPWriteTPReadFKTPReadNumErrWriteTPShow2022/11/15TPErase;應用﹕清屏指令﹐將機器人示教器屏幕上所有顯示清除﹐是機器人屏幕顯示重要組
成部分。實例﹕TPErase;TPWrite“ABBRobotics”;TPWrite“_____________”;通信指令-TPErase2022/11/15TPWriteString[\Num][\Bool][\Pos][\Orient]
;String:屏幕顯示的字符串。(string)[\Num]:屏幕顯示數字數據值(num)[\Bool]:屏幕顯示邏輯量數據(bool)[\Pos]:顯示位置XYZ(pos)[\Orient]:顯示方位q1q2q3q4(orient)應用﹕在示教器屏幕上顯示相應字
符串﹐字符串最長80個字節﹐屏幕每行可顯示40個字節﹐在字符串後可顯示相應參變量。通信指令-TPWrite2022/11/15通信指令-TPWrite實例﹕TPWritestring1;TPWrite“CycleTime=”\Num:=nTime;限製﹕每個TPWrite指令只允許單獨使用參變量
﹐不允許同時使用﹔參變量值<0.000005或>0.999995將圓整﹔ArgumentValueTextstring\num23“23”\num1.141367“1.141367”\boolTURE“TRUE”\Pos[1817.3,9
05.17,879.11]“[1817.3,905.17,879.11]”\Orient[0.96593,0,0.25882,0]“[0.96593,0,0.25882,0]”2022/11/15通信指令-TPReadFKTPRead
FKAnswer,Text,FK1,FK2,FK3,FK4,FK5,[\MaxTime][\DIBreak][\BreakFlag]Answer:數字賦值1-5;(num)Text:屏幕字符串﹔(string)FKx:功能鍵字符串﹔(string)[\MaxTime]:最長
等待時間s;(num)[\DIBreak]﹕輸入信號控制﹔(signaldi)[\BreakFlag]﹕指令狀態控制﹔(errnum)2022/11/15通信指令-TPReadFK應用﹕在示教器屏幕上顯示相應字符串(Text),字符串最長80個字節﹐屏幕每行可顯示40個字節﹐同時在5個功能鍵上顯示
相應字符串(FKx)﹐字符串最長7個字節﹐通過選擇安相應的功能鍵﹐給數字變量(Answer)賦值1-5﹐通過這種功能﹐當前指令可以進行數據選擇﹐但必須有人參與﹐無法達到自動化﹐已被輸入輸出信號代替﹐另外﹐在執行當
前指令時﹐必須等到功能鍵輸入﹐才執行以后指令﹐除非選擇相應參變量﹐通過這種功能﹐當前指令常用于錯誤處理等場合。2022/11/15通信指令-TPReadFK實例﹕TPReadFKreg1,”more?”,stEmpty,stEmpty,stEmpty,“yes”,”no”;2022/11/15通信
指令-TPReadFK參變量﹕[\MaxTime]機器人執行當前指令等待時間超過最長等待時間﹐機器人將停機報錯﹐如果同時采用參變量[\BreakFlag]﹐機器人將繼續執行以后指令﹐并且給出相應錯誤數據﹔[\DIBreak]機器人通過輸入信號來
繼續執行以后指令﹐并且給出相應錯誤數據﹔[\BreakFlag]--ERR_TP_MAXTIME--ERR_TP_DIBREAK2022/11/15通信指令-TPReadNumTPReadNumAnsw
er,String,[\MaxTime][\DIBreak][\BreakFlag]Answer:數字賦值1-5;(num)String:屏幕字符串﹔(string)[\MaxTime]:最長等待時間s;(num)[\DIBreak]﹕輸入信號控制﹔(signaldi)[\BreakFl
ag]﹕指令狀態控制﹔(errnum)2022/11/15通信指令-TPReadNum應用﹕在示教器屏幕上顯示相應字符串(String),字符串最長80個字節﹐屏幕每行可顯示40個字節﹐同時在功能鍵上顯示OK﹐通過數字鍵輸入相應數值﹐給數字變量(Answer)賦值﹐通過
這種功能﹐當前指令可以進行數字數據賦值﹐但是必須有人參與﹐無法達到自動化﹐已被輸入輸出指令替代。實例﹕TPReadNumreg1,”Howmanyunits?”FORIFROM1TOreg1DOproduce_part;ENDFOR2022/11/15參變量﹕[\MaxTime]機器人執行當前
指令等待時間超過最長等待時間﹐機器人將停機報錯﹐如果同時采用參變量[\BreakFlag]﹐機器人將繼續執行以后指令﹐并且給出相應錯誤數據﹔[\DIBreak]機器人通過輸入信號來繼續執行以后指令﹐并且給出相應錯誤數
據﹔[\BreakFlag]--ERR_TP_MAXTIME--ERR_TP_DIBREAK通信指令-TPReadNum2022/11/15通信指令-ErrWriteErrWrite[\W],Header,Reason[\RL2][\RL3][\RL4],[\W]:事件記錄開關
﹔(switch)Header:錯誤信息標題(string)Reason:錯誤信息原因(string)[\RL2]:附加錯誤信息原因(string)[\RL3]:附加錯誤信息原因(string)[\RL4]:附加錯誤信息原因(string)2022/11/15應用﹕在示教器屏幕上顯示
標准出錯截面﹐錯誤代碼為80001﹐標題最長24個字符﹐原因最長40個字符﹐如果由多種錯誤原因﹐可使用參變量[\RL2][\RL3][\RL4],每種原因最長40個字符﹐使用參變量[\W],錯誤代碼為80002﹐并且只在事件清單中記錄﹐不中示教器屏幕上顯示﹐當前指令只顯示或記錄出錯信息﹐不
影響機器人正常運行﹐在示教器屏幕上顯示的信息﹐需要按功能鍵OK確認并清除﹐如果需要影響機器人運行﹐使用指令Stop﹑EXIT﹑TRReadFK等。通信指令-ErrWrite2022/11/15通信指令-ErrWrite實例﹕…..ErrWrite\W,”Searcherro
r”,”Nohitforthefirstsearch”;ErrWrite\W,”PLCerror”,”FatalerrorinPLC”\RL2:=“Callservice”;…..限制﹕每個ErrWrite指令最多能顯示145個字節﹔(Header+Reason+\RL2+\RL
3+RL4)2022/11/15通信指令-TPShowTPShowWindow;Window:顯示相應示教器窗口﹔(tpnum)TP_PROGRAM自動模式下﹐顯示生產窗口﹔手動模式下﹐顯示測試窗口﹔
TP_LATEST顯示當前窗口的前一個窗口﹔TP_SCREENVIEWER顯示ScreenViewer窗口﹐需要相應軟件﹔2022/11/15通信指令-TPShow應用﹕機器人在示教器屏幕上顯示相應截面﹐通常情況下與機器人附加軟件ScreenViewer配合使用。實例﹕…..TPSh
owTP_PROGRAM;TPShowTP_TEST2022/11/15程序流程指令FORWaitUntilWaitTimeCompactIFIFTESTWHILEGOTOLable2022/11/15程序流程指令-FORFORLo
opcounterFROMStartvalueTOEndvalue[STEPstepvalue]DO…..ENDFOR;Loopcounter:循環計數標識﹔(Identifier)Startvalue:標識初始值﹔(num)Endvalue:標識最終值﹔(num)[Stepvalue]:計數更改
值﹔(num)2022/11/15程序流程指令-FOR應用﹕當前指令通過循環判斷標識從初始值逐漸更改至最終值﹐從而控制相應循環次數﹐如果不使用參變量[Step],循環標識每次更改值為1﹐如果使用參變量[Step],循環標識每次更改值為參變量相應設置﹐通常情況
下﹐初始值﹐最終值與更改值為整數﹐循環判斷標識使用ijk等小寫字母﹐是標準的機器人循環指令﹐常在通訊口讀寫﹐數組數據賦值等數據處理時使用。2022/11/15程序流程指令-FOR實例﹕FORiFROM1TO10DOroutine1;ENDFORFORiFROM10TO2STEP
-1DOa{i}:=a{i-1};ENDFORPROCResetCount()FORiFROM1TO20DOFORjFROM1TO2DOnCount{i,j}:=0;ENDFORENDFORENDPROC2022/11/15程序流程指令-FOR限製﹕循環標識只能自動更改﹐不允許
賦值﹔在程序循環內﹐循環標識可以作為數字數據(num)使用﹐但只能讀取相應值﹐不允許賦值﹔如果循環標識﹑初始值﹑最終值與更改值使用小數形式﹐必須為精確值﹔2022/11/15程序流程指令-WaitUntilWaitUntil[
\InPos],Cond[\MaxTime][\TimeFlag][\InPos]:提前量開關﹔(switch)Cond:判斷條件﹔(bool)[\MaxTime]:最長等待時間s;(num)[\TimeFlag]:超時邏輯量﹔(bool)2022/11/15程序流程指令-WaitU
ntil應用﹕當前指令用於等待滿足相應判斷條件後﹐才執行以後指令﹐使用參變量[\InPos],機器人及其外軸必須在完全停止的情況下﹐才進行條件判斷﹐此指令比指令WaitDI的功能更廣﹐可以替代其所有功能﹔限製﹕當前指令在使用參變量[\InPos]時﹐遇到程序突然停止運
行﹐機器人不能其保証停在最終停止點進行條件判斷。2022/11/15實例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;(WaitDIdi_Ready,1;)…..ENDPROCPROCPickPart()MoveJpPrePick,vFast
Empty,zBig,tool1;WaitUntilnCounter=4\MaxTime:=5;…..ERRORIFERRNO=ERR_WAIT_MAXTIMETHENTRWrite“…..”;RETRY;
ELSERAISE;ENDIFENDPROC機器人等待輸入信號﹐直到信號di_Ready值為1﹐才執行隨後指令機器人等待相應輸入信號﹐如果5秒內仍沒有得到相應數據值4﹐自動進行ErrorHandler處理﹐如果沒有ErrorHandler,機器人停機報錯程序流程指令-Wa
itUntil2022/11/15實例﹕PROCPickPart()MoveJpPrePick,vFastEmpty,zBig,tool1;bTimeout:=TRUE;nCounter:=0;WHILEbTimeoutDOIFnCou
nter>3THENTPWrite“…..”;ENDIFIFnCounter>30THENStop;ENDIFWaitUntilbOK=TRUE\MaxTime:=1\TimeFlag:=bTimeOut;In
crnCounter;ENDWHOLE…..ENDPROC機器等待到位信號﹐如果1秒內仍沒有等到信號di_Ready值為1﹐機器人執行隨後指令﹐但此時TimeFlag值為TRUE﹐機器人等到di_Ready值為1﹐此時TimeFlag值為FALSE程序流程指令-WaitUntil2022/11
/15程序流程指令-WaitTimeWaitTime[\InPos],Time;[\InPos]:程序運行提前量開關﹔(switch)Time:相應等待時間s;(num)應用﹕當前指令只用於機器人等待相應時間後﹐才執行以後指令
﹐使用參變量[\InPos]﹐機器人及其外軸必須在完全停止的情況下﹐才進行等待時間計時﹐此指令會延長循環時間﹔2022/11/15程序流程指令-WaitTime實例﹕WaitTime3;WaitTime\Inpos,0.5;Wai
tTime\InPos,0;限製﹕當前指令在使用參變量[\InPos]時﹐遇到程序突然停止運行﹐機器人不能保証停在最終停止點進行等待計時﹔當前指令參變量[\InPos]不能與機器人指令SoftServo同時使用。2022/11/15程序流程指令-CompactIFIFConditio
n…..;Condition:判斷條件﹔(switch)應用﹕當前指令是指令IF的簡化版﹐判斷條件後只允許跟一句指令﹐如果有多句指令需要執行﹐必須采用指令IF﹔實例﹕IFreg1>5GOTOnextIFcounter>10setdo1;2022/11/15
程序流程指令-IFIFCondition…..THEN{ELSEIFConditionTHEN…..}[\ELSE…..]ENDIF;Condition:判斷條件﹔(switch)應用﹕當前指令通過判斷相應條件﹐控制需要執行的相應指令﹐是機器人程序流程基本指令﹔20
22/11/15程序流程指令-IF實例﹕IFreg1>5THENSetdo1;Setdo2;ENDIFIFreg1>5THENSetdo1;Setdo2;ELSEResetdo1;Resetdo2;ENDI
FIFreg2=1THENroutine1;ELSEIFreg2=2THENrountin2;ELSEIFreg2=3THENrountine3;ELSEIFreg2=4THENrountine4;ELSE
error;ENDIF2022/11/15程序流程指令-TESTTESTTestdate{CASETestvalue,{Testvalue}:…}[DEFAULT:….}ENDTESTTestdate:判斷數據變量﹔(All)Testvalue:判斷數據值﹔(sameas)
應用﹕當前指令通過判斷相應數據變量與其所對應的值﹐控制需要執行的相應指令﹔2022/11/15實例﹕TESTreg2CASE1:routine1;CASE2:routine2;CASE3:routine3;CASE4﹑5:routine9;DEFAULT:Err
orENDTESTIFreg2=1THENroutine1;ELSEIFreg2=2THENrountin2;ELSEIFreg2=3THENrountine3;ELSEIFreg2=4orreg2=5THENrountine4;ELSEerr
or;ENDIF程序流程指令-TEST2022/11/15程序流程指令-GOTOGOTOLabelLabel:程序執行位置標簽﹔(Identifier)應用﹕當前指令必須與指令Label同時使用﹐執行當前指令後﹐機器人將從相應標簽位置Label處繼續運行程序指令﹔
2022/11/15程序流程指令-GOTO實例﹕IFreg1>100GOTOhighvaluelowvalue;…..GOTOready;highvalue;…..ready:…..reg1:=1;ne
xt:reg1:=reg1+1;IFreg1<=5GOTOnext;2022/11/15程序流程指令-GOTO限製﹕只能使用當前指令跳至同一例行程序內相應的位置標簽Label;如果相應位置標簽Label處
於指令TEST或IF內﹐相應指令GOTO必須同處於相同的判斷指令內或其分支內﹔如果相應位置標簽Label處於指令WHILE或FOR內﹐相應指令GOTO必須同處於相同循環指令內﹔2022/11/15程序流程指令-LabelLabelLabel:程序執行位置標簽﹔(I
dentifier)應用﹕當前指令必須與指令GOTO同時使用﹐執行當前指令GOTO後﹐機器人將從相應標簽位置Label處繼續運行程序指令﹔當前指令用后﹐程序內不會顯示Label字樣﹐直接顯示相應標簽。2022/11/15程序流程指令-Label實例﹕IFre
g1>100GOTOhighvaluelowvalue;…..GOTOready;highvalue;…..ready:…..限制:在同一例行程序內﹐程序位置標簽Label的名稱必須唯一。2022/11/15程序流程指令-WHILEWHILECondition
DO…ENDWHILE…Condition:判斷條件﹔(bool)應用﹕當前指令通過判斷相應條件﹐如果符合判斷條件執行循環內指令﹐直至判斷條件不滿足才跳出循環指令﹐繼續執行循環指令以后的指令﹐需要注意﹐當前指令存在死循環。2022/11/15實例﹕WHILEreg1<reg2DO…..r
eg1:=reg1+1;ENDWHILEPROCmain()rInitial;WHILETRUEDO…ENDWHILEENDPROC程序流程指令-WHILE2022/11/15故障處理指令RETREYTRYNEXTRAISERETURN2022/11/15checkche
ckWaitDIdi4,1\MaxTime:=15;RETURNerrorhandlerRETRYTRYBEXTRETURN故障處理指令-RETRY2022/11/15故障處理指令-RETRYRETRY應用﹕當前指令只用于機器人故障處理程序ErrorHandler
內﹐經過故障處理后﹐再次對故障的指令進行再次運行。限制﹕通過當前指令對所發生故障的指令進行再次運行連續4次嘗試后﹐故障仍無法解決﹐機器人將停止運行﹐示教器顯示錯誤信息ERR_EXCRTYMAX2022/11/15checkcheckWai
tDIdi4,1\MaxTime:=15;RETURNerrorhandlerRETRYTRYBEXTRETURN故障處理指令-TRYNEXT2022/11/15TRYNEXT;應用﹕當前指令只用于機器
人故障處理程序ErrorHandler內﹐經過故障處理后﹐跳過發生故障的指令繼續運行程序。故障處理指令-TRYNEXT2022/11/15RAISE[Errorno.];[Errorno.]:錯誤信息編號﹔(errnum)應用﹕當前指令如果不使用參變量﹐只用于機器人故障處理程序Error
Handler內﹐經過故障處理后﹐跳至上一層例行程序故障處理程序內﹐繼續運行故障處理﹐如果使用參變量﹐只用于例行程序內﹐直接進入當前例行程序故障處理程序進行處理。故障處理指令-RAISE2022/11/15限制﹕參變量錯誤代碼范圍為1-90﹐超出范圍
﹐示教器顯示錯誤信息ERR_ILLRAISE﹔如果需要更多的錯誤代碼﹐超出1-90﹐必須使用機器人指令BookErrNo.。故障處理指令-RAISE2022/11/15RETURN[Returnvalue];[Returnvalu
e]:返回時間值﹔(all)應用﹕當前指令如果使用參變量﹐只用于機器人函數例行程序內﹐經過運行返回相應的值﹐通常情況下﹐在不使用參變量時﹐機器人運行到此指令時﹐無論主程序main,標准例行程序PROC﹐中斷例行程序TRAP﹐故
障處理程序ErrorHandler都代表當前例行程序結束。。故障處理指令-RETURN2022/11/15checkcheckWaitDIdi4,1\MaxTime:=15;RETURNerrorhandlerRETRYTRYBEXTRETURN故障處理指令-RETU
RN2022/11/15故障處理指令-RETURN實例﹕PROCrPick()…RETURN;…ENDPROCFUNCnumabs_value(numvalue)IFvalue<0THENRETURN-value;ELSERETURNvalue;ENDIFENDFUN
C2022/11/15中斷運動指令StopMoveStartMoveStorePathRestoPath2022/11/15中斷運動指令-StopMoveStopMove應用﹕當前指令使機器人運動臨時停止﹐直到運行指令StartMove后﹐才繼續恢復被臨時停止的運動﹐此指令通
常被用于處理牽涉到機器人運動的中斷程序。實例﹕StopMove;WaitDIready_input,1;StartMove;2022/11/15中斷運動指令-StopMove實例﹕…CONNECTintno1WITHgo_to_
home_pos;ISignalDIdi1,1,intno1;…TRAPgo_to_home_posStorePath;p10:=CRobT()MoveLHome,v500,fine,tool1;WaitD
Idi1,0;MoveLp10,v500,fine,tool1;RestoPath;StartMove;ENDTRAP機器人完成當前運動指令后停止運動﹐并記錄運動路徑﹐在Home位置等待di1為0后﹐繼續原運動狀態﹔機器人臨時
停止運動﹐并記錄運動路徑﹐在Home位置等待di1為0后﹐繼續原運動狀態。2022/11/15中斷運動指令-StartMoveStartMove應用﹕當前指令必須與指令StopMove聯合使用﹐使機器人臨時
停止的運動恢復﹐此指令通常被用于處理牽涉到機器人運動的中斷程序。實例﹕StopMove;WaitDIready_input,1;StartMove;ErrorHandlingERR_PATHDIST偏離原來路徑(大于10mm或20
度)2022/11/15中斷運動指令-StorePathStorePath應用﹕當前指令用來記錄機器人當前運動狀態﹐通常與指令RestoPath聯合使用﹐此指令通常被用于處理牽涉到機器人運動的中斷程序。限制﹕當前指令只能用來記錄機器人運動
路徑﹔機器人臨時停止后﹐需要執行新的運動﹐必須記錄當前運動路徑﹔機器人系統只能記錄一個運動路徑﹔2022/11/15實例﹕TRAPgo_to_home_posStorePath;p10:=CRob
T()MoveLHome,v500,fine,tool1;WaitDIdi1,0;MoveLp10,v500,fine,tool1;RestoPath;StartMove;ENDTRAP機器人臨時停止運動﹐并記錄運動路徑﹐在Home位置等待di1為0后﹐繼續原運動狀態。中斷
運動指令-StorePath2022/11/15中斷運動指令-RestoPathRestoPath應用﹕當前指令用來恢復已經被記錄的機器人運動狀態﹐必須與指令StorePath聯合使用﹐此指令通常被用于機器人錯誤處理與處理牽涉到
運動的中斷程序。限制﹕當前指令只能用來恢復機器人運動路徑﹔機器人臨時停止后﹐需要執行新的運動﹐必須記錄當前運動路徑﹔機器人系統只能記錄一個運動路徑﹔2022/11/15實例﹕TRAPgo_to_home_posStorePath;p10:=CRobT(
)MoveLHome,v500,fine,tool1;WaitDIdi1,0;MoveLp10,v500,fine,tool1;RestoPath;StartMove;ENDTRAP機器人臨時停止運動﹐并記錄運動路徑﹐在Hom
e位置等待di1為0后﹐繼續原運動狀態。中斷運動指令-RestoPath2022/11/15坐標轉換指令PDispOnPDispOffPDispSetEOffsOnEOffsOffEOffsSet2022/11
/15坐標轉換指令-PDispOnPDispOn[\Rot][\ExeP]ProgPoint,Tool[\Wobj];[\Rot]:坐標旋轉開關﹐(switch)[\Exep]:運行起始點﹐(robtarg
et)ProgPoint:坐標原始點﹐(robtarget)Tool:工具坐標系﹐(Tooldate)[\Wobj]:工件坐標系﹐(wobjdate)應用﹕當前指令可以使機器人坐標通過編程進行即時轉換﹐通常用于水切割等運動軌跡保持不變的場合
﹐可以快捷的完成工作位置修正。2022/11/15坐標轉換指令-PDispOn原始坐標MoveLp10,v500,z10,tool1;PDispOn\Exep:=p10,p20,tool1;轉換后坐標原始坐標
轉換后坐標MoveLp10,v500,fine\Inpos:=inpos50,tool;PDispOn\Rot\Exep:=p10,p20,tool1;2022/11/15坐標轉換指令-PDispOnPROCdraw_square()PDispOn,*,tool1;Mo
veL*,v500,z10,tool1;MoveL*,v500,z10,tool1;MoveL*,v500,z10,tool1;MoveL*,v500,z10,tool1;PDispOff;ENDPROCMoveLp10,v500,fine\Inpos:=inpos
50,tool1;Draw_square;MoveLp20,v500,fine\Inpos:=inpos50,tool1;Draw_square;MoveLp30,v500,fine\Inpos:=inpos50,tool1;Drar_square;不使
用參變量[\Exep],機器人默認為當前點p20p30p102022/11/15坐標轉換指令-PDispOn實例﹕SearchLsen1,psearch,p10,v100,tool1;PDispOn\Exep:=psearch,*,tool1;限制﹕●當前指令在使用后﹐機器人坐
標將被轉換﹐直到使用指令PDispOff后才失效﹔●在下列情況下﹐機器人坐標轉換功能將自動失效--機器人系統冷啟動--載入新機器人程序--程序重置2022/11/15坐標轉換指令-PDispOffPDispOff應用﹕當前指令用于使機器人通過編程達到的坐標轉
換功能失效﹐必須于指令PDispOn或PDispSet同時使用。實例﹕MoveLp10,v500,z10,tool1;PDispOn\Exep:=p10,p11,tool1;MoveLp20,v500,z10,too
l1;MoveLp30,v500,z10,tool1;PDispOnMoveLp50,v500,z10,tool1;坐標轉換指令失效坐標轉換指令生效坐標轉換指令失效2022/11/15坐標轉換指令-PDispSetPD
ispSetDispFrameDispFrame:坐標偏差量(pose)應用﹕當前指令通過輸入坐標偏差量﹐使機器人坐標通過編程進行即時轉換﹐通常用于水切割等運行軌跡保持不變的場合﹐可以快捷的完成工作位置修正。2022/11/15坐標轉換指令-PDispSet實例﹕VA
Rposexp100:=[[100,0,0],[1,0,0,0];MoveLp10,v500,z10,tool1;PDispSetxp100;MoveLp20,v500,z10,tool1;PDispO
ffMoveLp30,v500,z10,tool1;坐標轉換指令失效坐標轉換指令生效坐標轉換指令失效轉換后坐標原始坐標100YX2022/11/15坐標轉換指令-PDispSet限制﹕●當前指令在使用后﹐機器人坐標將被轉換﹐直到使用指令PDispOff后才失效﹔●在下列情況下﹐機器人
坐標轉換功能將自動失效--機器人系統冷啟動--載入新機器人程序--程序重置(StartFromBeginning)2022/11/15坐標轉換指令-EOffsOffEOffsOff應用﹕當前指令用于使機器人通過編
程達到的外軸位置更改功能失效﹐必須于指令EOffsOn或EOffsSet同時使用。實例﹕MoveLp10,v500,z10,tool1;EOffsOn\Exep:=p10,p11,tool1;MoveLp20,v500,z10,t
ool1;MoveLp30,v500,z10,tool1;EOffsOff;MoveLp50,v500,z10,tool1;外軸位置更改失效外軸位置更改生效外軸位置更改失效2022/11/15坐標轉換指令-EOffsOnPD
ispOn[\ExeP]ProgPoint;[\Exep]:運行起始點﹐(robtarget)ProgPoint:坐標原始點﹐(robtarget)應用﹕當前指令可以使機器人外軸通過編程進行即時更改﹐帶導軌
的機器人。實例﹕SearchLsen1,psearch,p10,v100,tool1;PDispOn\Exep:=psearch,*,tool1;EOffsOn\Exep:=psearch,*;2022/11/15坐標轉換指令-EOffsOn限制﹕●當前指令在
使用后﹐機器人外軸位置將被更改﹐直到使用指令EOffsOff后才失效﹔●在下列情況下﹐機器人坐標轉換功能將自動失效--機器人系統冷啟動--載入新機器人程序--程序重置(StartFromBeginning)2022/11/15坐標轉換指令-EOffsSetEOffsSetEAxOff
s;EAxOffs:外軸位置偏差量(extjoint)應用﹕當前指令通過輸入外軸位置偏差量﹐使機器人外軸位置通過編程進行即時更改﹐對于導軌類外軸﹐偏差值單位為mm,對于轉軸類外軸﹐偏差值單位為角度。2022/11/15實例﹕VARex
tjointeax_a_p100:=[[100,0,0,0,0];MoveLp10,v500,z10,tool1;EOffsSeteax_a_p100;;MoveLp20,v500,z10,tool1;EOffsOff;MoveLp30,v500,z10,tool1;外軸位置更改
失效外軸位置更改生效外軸位置更改失效轉換后外軸位置原始外軸位置0100坐標轉換指令-EOffsSet02022/11/15坐標轉換指令-EOffsSet限制﹕●當前指令在使用后﹐機器人外軸位置將被更改﹐直
到使用指令EOffsOff后才失效﹔●在下列情況下﹐機器人坐標轉換功能將自動失效--機器人系統冷啟動--載入新機器人程序--程序重置(StartFromBeginning)2022/11/15運動觸發指令Trigg
IOTriggIntTriggEquippTriggJTriggLTriggC2022/11/15運動觸發指令-TriggIOTriggIOTriggDate,Distance[\Start][\Time][\Dop][\Gop][\Aop
][\ProcID],SetValue,[\DODelay];[\TriggDate]:觸發變量名稱﹐(triggdate)Distance:觸發距離mm﹐(num)[\Start]:觸發起始開關﹐(switch)[\Time]:時間觸發開關﹐(switch)[\DOp]:觸發數字輸出﹐(s
ignaldo)2022/11/15運動觸發指令-TriggIOTriggIOTriggDate,Distance[\Start][\Time][\Dop][\Gop][\Aop][\ProcID],SetValue,[\DODelay];[\GOp]:觸發組合輸出﹐(signalgo)
[\AOp]:觸發模擬輸出﹐(signalao)[\ProcID]:過程處理觸發﹐(num)SetValue:相應信號值﹐(num)[\DODelay]:數字輸出延遲﹐(num)2022/11/15運動觸發指令-TriggIO應用﹕機器人可以在運動時通過
觸發指令精確的輸出相應信號﹐當前指令用于定義觸發性質﹐此指令必須與其他觸發指令TriggJ,TriggL或TriggC同時使用才有意義﹐同機器人指令TriggEquip比較﹐多了時間控制功能﹐少了外部設備觸發延遲功能﹐通常用于噴涂﹑涂膠等行業
﹐使用參變量[\Start]﹐表示以運動起始點觸發基准點﹐默認為運動終止點﹐使用參變量[\Time],以時間來控制觸發﹐允許最大時間為0.5s,詳見限制﹐參變量[\ProcID],正常情況用戶無法自行使用﹐此參變量用于IPM過程處理。2022/11/15運
動觸發指令-TriggIO實例﹕VARtriggdategunon;TriggIOgunon,10\Dop:=gun,1;TriggLp1,v500,gunon,z50,gun1;StartPointEnd
pointp110mmTheoutputsignalgunissetwhentheTCPishereTriggLp1,v500,gunon,z50,gun1;2022/11/15運動觸發指令-TriggIO實例﹕VARtriggdategunon;Trig
gIOgunon,0\Start\Dop:=gun,1;MoveJp1,v500,z50,gun1;TriggLp1,v500,gunon,z50,gun1;StartPointp1Endpointp2Theoutputsignalgunissettoonw
hentherobot’sTCPishereTriggLp2,v500,gunon,fine,gun1;2022/11/15運動觸發指令-TriggIO限制﹕當前指令使用參變量[\Time]可以提高信號輸出精度﹐此參變量以目標點為基准﹐使用固定的目標點
fine比轉角zone精度高﹐一般情況下﹐此參變量采用固定目標點﹔參變量[\Time]設置的時間應小于機器人開始減速時間(最大0.5s),例如﹕運行速度為500mm/s,IRB2400為150ms,IRB6400為250ms,在設置時間超過
減速時間的情況下﹐實際控制時間會縮短﹐但不會對正常的運行造成影響﹔2022/11/15運動觸發指令-TriggIntTriggIntTriggDate,Distance[\Start][\Time],Interrupt;[\TriggDate]
:觸發變量名稱﹐(triggdate)Distance:觸發距離mm﹐(num)[\Start]:觸發起始開關﹐(switch)[\Time]:時間觸發開關﹐(switch)interrupt:觸發中斷名稱﹐(intnum)2022/11
/15應用﹕機器人可以在運動時通過觸發指令精確的進入中斷處理﹐當前指令用于定義觸發性質﹐此指令必須與其他觸發指令TriggJ,TriggL或TriggC同時使用才有意義﹐通常用于噴涂﹑涂膠等行業﹐使用參變量[\Start]﹐表示以運動起始點觸發基准點﹐默認為運動終止點﹐使用參變量[\
Time],以時間來控制觸發﹐允許最大時間為0.5s,詳見限制。限制﹕正常情況下﹐當前指令從觸發中斷到得到響應﹐有5-120ms的延遲﹐用指令TriggIO或TriggEquip控制信號輸出效果更佳。運動觸發指
令-TriggInt2022/11/15限制﹕當前指令使用參變量[\Time]可以提高中斷觸發精度﹐此參變量以目標點為基准﹐使用固定的目標點fine比轉角zone精度高﹐一般情況下﹐此參變量采用固定目標點﹔參
變量[\Time]設置的時間應小于機器人開始減速時間(最大0.5s),例如﹕運行速度為500mm/s,IRB2400為150ms,IRB6400為250ms,在設置時間超過減速時間的情況下﹐實際控制時間會縮短﹐但不會對正常的運行造成影響﹔運動觸發指令-Tri
ggInt2022/11/15運動觸發指令-TriggInt實例﹕VARintnumintno1;VARtriggdateTrigg1;CONNECTintno1WITHtrap1;TriggInttrigg1,5,intno1;TriggLp
1,v500,trigg1,z50,gun1;TriggLp2,v500,gunon,z50,gun1;Ideleteintno1;StartPointEndpointp1orp210mmTheinter
ruptisgengratedwhentheTCPishereTriggLp1,v500,trigg1,z50,gun1;2022/11/15運動觸發指令-TriggEquipTriggEquipTriggDate,Distance[\Start],EquipLag,[\
Dop][\Gop][\Aop][\ProcID],SetValue,[\Inhib];[\TriggDate]:觸發變量名稱﹐(triggdate)Distance:觸發距離mm﹐(num)[\Star
t]:觸發起始開關﹐(switch)EquipLag:觸發延遲補償s﹐(num)[\DOp]:觸發數字輸出﹐(signaldo)2022/11/15運動觸發指令-TriggEquipTriggEquipTriggDate,Distance[\Start],E
quipLag,[\Dop][\Gop][\Aop][\ProcID],SetValue,[\Inhib];[\GOp]:觸發組合輸出﹐(signalgo)[\AOp]:觸發模擬輸出﹐(signalao)[\ProcID]
:過程處理觸發﹐(num)SetValue:相應信號值﹐(num)[\Inhib]:信號抑止數據﹐(bool)2022/11/15運動觸發指令-TriggEquip應用﹕機器人可以在運動時通過觸發指令精確的輸出相應信號﹐當前指
令用于定義觸發性質﹐此指令必須與其他觸發指令TriggJ,TriggL或TriggC同時使用才有意義﹐同機器人指令TriggIO比較﹐多了外部設備觸發延遲功能﹐少了時間控制功能﹐通常用于噴涂﹑涂膠等行業。2022/11/15運動觸發指令-
TriggEquip應用﹕使用參變量[\Start]﹐表示以運動起始點觸發基准點﹐默認為運動終止點﹐參變量[\ProcID],正常情況用戶無法自行使用﹐此參變量用于IPM過程處理,當參變量[\Inhib]值為TRUE﹐在觸發點所有輸出信號(AO﹐GO﹐DO)將被置為0。Star
tPointEndpointDistanceEquipLagDistance+-+-\start2022/11/15運動觸發指令-TriggEquip實例﹕VARtriggdategunon;TriggEquipgunon,10,0.1\Dop:=gun,1;TriggLp1,v
500,gunon,z50,gun1;StartPointEndpointp110mmPointp2foropenfothegunTriggLp1,v500,gunon,z50,gun1;2022/11/15運動觸發指令-Tr
iggEquip限制﹕●當前指令通過觸發延遲可以提高信號輸出精度﹐設置的時間應小于機器人開始減速的時間(最大0.5s),例如﹕運行速度為500mm/s,IRB2400為150ms,IRB6400為250ms,在設置時間超過減速時間的情況
下﹐實際時間會縮短﹐但不會對正常的運行造成影響﹔●觸發延遲EquipLag值應小于系統參數內EventPresetTime配置值﹐默認為60ms;●如果觸發延遲EquipLag值大于系統參數內Even
tPresetTime配置值﹐需要使用指令SingArea\Wrist。2022/11/15運動觸發指令-TriggJTriggJ[\Conc]ToPointspeed[\T]Trigg_1[\T2][\T3][\T4]ZoneTool[\Wobj]Trigg_1:觸發變量名稱﹐
(triggdate)[\T2]:觸發變量名稱﹐(triggdate)[\T3]:觸發變量名稱﹐(triggdate)[\T4]:觸發變量名稱,(triggdate)2022/11/15應用﹕機器人可以在運動時通過該觸發
指令在確定的位置輸出某個信號或出發某個中斷﹐同時機器人進行一個圓滑的過度路徑﹔需與指令TriggIO,TriggInt﹐TriggEquip等聯合使用才有意義﹐總共可定義4個觸發事件﹔運動觸發指令-Trigg
J2022/11/15實例﹕VARtriggdategunon;TriggEquipgunon,10,0.1\Dop:=gun,1;TriggLp1,v500,gunon,z50,gun1;StartPointEndpointp110mmPointp2forope
nfothegunTriggLp1,v500,gunon,z50,gun1;運動觸發指令-TriggJ2022/11/15限制﹕●當前指令通過觸發延遲可以提高信號輸出精度﹐設置的時間應小于機器人開始減速的時間(最大0.5s),例如﹕運行速度為500mm/s,IRB2400為150ms,I
RB6400為250ms,在設置時間超過減速時間的情況下﹐實際時間會縮短﹐但不會對正常的運行造成影響﹔●觸發延遲EquipLag值應小于系統參數內EventPresetTime配置值﹐默認為60ms;●如果觸發延遲EquipLag值大于系統參數
內EventPresetTime配置值﹐需要使用指令SingArea\Wrist。運動觸發指令-TriggJ