




已阅读5页,还剩202页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABB機器人高級指令,NWE技術研發部自動化應用,2020/5/24,目錄,運動控制指令外軸激活指令計數指令輸入輸出指令程序運行停止指令例行程序調用指令計時指令中斷指令通信指令中斷運動指令程序流程指令故障處理指令坐標轉換指令運動觸發指令,2020/5/24,運動控制指令,AccSetVelSetConfJConfLSingAreaPathReasolSoftActSoftDeact,2020/5/24,運動控制指令-AccSet,AccSetAcc,Ramp;Acc:機器人加速度百分率(num)Ramp:機器人加速度坡度(num)應用當機器人運行速度改變時對所產生的相應加速度進行限製使機器人高速運行時更平緩但會延長循環時間系統默認值為AccSet100,100;,2020/5/24,運動控制指令-AccSet,實例限製機器人加速度百分率最小值為20小於20以20計機器人加速度坡度最小值為10小於10以10計機器人冷啟動新程序載入與程序重置後系統自動設置為默認值,2020/5/24,運動控制指令-VelSet,VelSetOverride,Max;Override:機器人運行速度%(num)Max:最大運行速度mm/s(num)應用對機器人的運行速度進行限製機器人運動指令中均帶有運行速度在執行運動速度控制指令VelSet後實際運行速度為運動指令規定的運行速度乘以機器人運行速率并且不超過機器人最大運行速度系統默認值為VelSet100,5000;,2020/5/24,運動控制指令-VelSet,實例VelSet50,800;MoveLp1,v1000,z10,tool1;MoveLp2,v1000v:=2000,z10,tool1;MoveLp3,v1000T:=5,z10,tool1;VelSet80,1000;MoveLp1,v1000,z10,tool1;MoveLp2,v5000,z10,tool1;MoveLp3,v1000v:=2000,z10,tool1;MoveLp4,v1000T:=5,z10,tool1;,500mm/s,800mm/s,10s,800mm/s,1000smm/s,1000mm/s,6.25s,2020/5/24,運動控制指令-VelSet,限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值機器人使用參變量T時最大運行速度將不起作用Override對數據(speeddate)內所有項都起作用例如TCP方位及外軸但對焊接參數welddate與seamdate內機器人運動速度不起作用Max只對速度數據(speeddate)內TCP這項起作用,2020/5/24,運動控制指令-ConfJ,ConfJOnOff;On:啟動軸配置數據(switch)關節運動時機器人移動至絕對ModPos點如果無法到達程序將停止運行Off:默認H軸配置數據(switch)關節運動時機器人移動至ModPos點軸配置數據默認為當前最接近值,2020/5/24,運動控制指令-ConfJ,應用對機器人運行姿態進行限製與調整程序運行時使機器人運行姿態得到控制系統默認值為ConfJOn;實例ConfJOn;.ConfJOff;限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值,2020/5/24,運動控制指令-ConfL,ConfLOnOff;On:啟動軸配置數據(switch)直線運動時機器人移動至絕對ModPos點如果無法到達程序將停止運行Off:默認H軸配置數據(switch)直線運動時機器人移動至ModPos點軸配置數據默認為當前最接近值,2020/5/24,運動控制指令-ConfL,應用對機器人運行姿態進行限製與調整程序運行時使機器人運行姿態得到控制系統默認值為ConfLOn;實例ConfLOn;.ConfLOff;限製機器人冷啟動新程序載入與程序重置後系統自動設置為默認值,2020/5/24,運動控制指令-SingArea,SingAreaWristOff;Wrist:啟動位置方位調整(switch)機器人運動時為了避免頻繁死機位置點允許其方位值有些許改變例如在五軸零度時機器人四六軸平行Off:關閉位置方位調整(switch)機器人運動時不允許位置點方位改變是機器人的默認狀態,2020/5/24,運動控制指令-SingArea,應用當前指令通過對機器人位置點姿態進行些許改變可以絕對避免機器人運行時死機但是機器人運行路徑會受影響姿態得不到控制通常使用與通過複雜姿態點絕對不能作為工作點使用實例SingAreaWrist;.SingAreaOff;,2020/5/24,運動控制指令-SingArea,限製以下情況機器人將自動恢復默認值SingAreaOff-機器人冷啟動-系統重新載入新的程序-系統重置(StartFromBeginning),2020/5/24,運動控制指令-PathResol,PathResolPathSampleTime;PathSampleTime:路徑控制%(num)應用當前指令用於更改機器人主機系統參數;調整機器人路徑采樣時間從而達到控制機器人運行路徑的效果通過此指令可以提高機器人運動精度或縮短循環時間路徑控制默認值為100%調整範圍為25%-400%路徑控制百分比越小運動精度越高占用CPU資源也越多,2020/5/24,運動控制指令-PathResol,實例MoveJp1,v1000,fine,tool1;PathResol150;機器人在臨界運動狀態(重載高速路徑變化複雜情況下接近最大工作區域)增加路徑控制值可避免頻繁死機外軸以很低的速度與機器人聯動增加路徑控制值可避免頻繁死機機器人進行高頻率擺動弧焊時需要很高的路徑采樣時間需要減小路徑控制值機器人進行小範圍複雜運動時需要很高的精度需要減小路徑控制值,2020/5/24,運動控制指令-PathResol,限製機器人必須在完全停止後才能更改路徑控制值否則機器人將默認一個停止點并且顯示錯誤信息50146機器人在更改路徑控制值時機器人被強製停止運行機器人將不能立刻恢復正常運行(Restart)以下情況機器人將自動恢復默認值100%-機器人冷啟動-系統載入新的程序-程序重置(StartFromBeginning),2020/5/24,運動控制指令-SoftAct,SoftActMechUnit,Axis,SoftnessRampMechUnit軟化外軸名稱(mechunit)Axis:軟化外軸號碼(num)Softness:軟化值%(num)Ramp:軟化坡度%(num)應用當前指令用於軟化機器人主機或外軸伺服系統軟化值範圍0%-100%,軟化坡度範圍=100%,此指令必須與指令SoftDeact同時使用通常不使用於工作位置。,2020/5/24,運動控制指令-SoftAct,實例SoftAct3,20;SoftAct1,90Ramp:=150;SoftActMechUnit:=Orbit1,1,40Ramp:=120;限製機器人被強製停止運行後軟伺服設置將自動失效同一轉軸軟化伺服不允許被連續設置兩次.SoftAct3,20;SoftAct3,20;SoftAct3,20;MoveJ*,v100,fine,tool;.SoftAct3,20;.,2020/5/24,運動控制指令-SoftDeact,SoftDeactRampRamp:軟化坡度=100%(num)應用當前指令用於使軟化機器人主機或外軸伺服系統指令SoftAct失效。實例SoftAct3,20;SoftDeact;SoftAct1,90;SoftDeactRamp:=150;,2020/5/24,外軸激活指令,ActUnitDeactUnit,2020/5/24,外軸激活指令-ActUnit,ActUnitMecUnitMecUnit:外軸名(mecunit)應用將機器人一個外軸激活例如當多個外軸公用一個驅動板時通過外軸激活指令ActUnit選擇當前所使用的外軸,2020/5/24,外軸激活指令-ActUnit,實例MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool1;DeactUnittrack_motion;ActUnitorbit_a;MoveLp30,v100,z10,tool1;限製不能在指令StorePathRestorePath內使用不能在預置程序RESTART內使用不能在機器人轉軸處於獨立狀態時使用,P10,外軸不動,P20,外軸聯動Track_motion,P30,外軸聯動Orbit_a,2020/5/24,外軸激活指令-DeactUnit,DeactUnitMecUnitMecUnit:外軸名(mecunit)應用將機器人一個外軸失效例如當多個外軸公用一個驅動板時通過外軸激活指令DeactUnit使當前所使用的外軸失效,2020/5/24,實例MoveLp10,v100,fine,tool1;ActUnittrack_motion;MoveLp20,v100,z10,tool1;DeactUnittrack_motion;ActUnitorbit_a;MoveLp30,v100,z10,tool1;限製不能在指令StorePathRestorePath內使用不能在預置程序RESTART內使用,P10,外軸不動,P20,外軸聯動Track_motion,P30,外軸聯動Orbit_a,外軸激活指令-DeactUnit,2020/5/24,計數指令,AddClearIncrDecr,2020/5/24,計數指令-Add,AddName,AddValurName:數據名稱(num)AddValue:增加的值(num)應用在一個數字數據值是增加相應的值可以用賦值指令替代實例Addreg1,3;等同於reg1:=reg1+3;Addreg1,reg2;等同於reg1:=reg1+reg2;,2020/5/24,計數指令-Clear,ClearName;Name:數據名稱(num)應用將一個數字數據的值歸零可以用賦值指令替代實例Clearreg1;等同於reg1:=0,2020/5/24,計數指令-Incr,IncrName;Name:數據名稱(num)應用在一個數字數據的值上加1可以用賦值指令替代一般用於產量計數實例Incrreg1;等同於reg1:=reg1+1;,2020/5/24,計數指令-Decr,DecrName;Name:數據名稱(num)應用在一個數字數據的值減1可以用賦值指令替代一般用於產量計數實例Incrreg1;等同於reg1:=reg1-1;,2020/5/24,輸入輸出指令,AliasIOInvertDOIODisableIOEnablePluseDOResetSetSetAOSetDOSetGOWaitDIWaitDO,2020/5/24,輸入輸出指令-AliasIO,AliasIOFromSignal,ToSignal;FromSignal:機器人系統參數內所定義的信號名稱(SignalXXorstring)ToSignal:機器人程序內所使用的信號名稱(SignalXX)應用對機器人系統參數內定義的信號名稱進行化名給機器人程序使用一般使用與LoadedModule或Built-inModule內例如多台機器人使用相同系統參數,2020/5/24,輸入輸出指令-AliasIO,實例VARsignaldoalias_do;CONSTstringconfig_string:=“config_do”;PROCprog_start()AliasIOconfig_do,alias_do;AliasIOconfig_string,alias_do;ENDPROC,Alias_do,在機器人程序內定義,config_do,在系統參數內定義,2020/5/24,輸入輸出指令-AliasIO,限製指令AliasIO必須放置在預置程序START內或程序內使用相應的信號之前指令AliasIO在示教器上無法輸入只能通過離線編輯輸入指令AliasIO需要軟件DevelopsFunctions的支持,2020/5/24,輸入輸出指令-InvertDO,InvertDOSignal;Signal:輸出信號名稱(SignalDO)應用將機器人輸出信號值反轉0為11為0在系統參數內也可定義實例:InvertDOdo15;,2020/5/24,輸入輸出指令-InvertDO,2020/5/24,輸入輸出指令-IODisable,IODisableUnitName,MaxTime;UnitName:輸入輸出板名稱(num)MaxTime:最長等待時間(num)應用通過指令可以使機器人輸入板在程序運行時自動失效系統將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統將進入ErrorHandler處理錯誤代碼為ERR_IODISABLE如果例行程序沒有ErrorHandler機器人將停機報錯。,2020/5/24,實例PROCgo_home()recover_flag:=1;IODisable“cell”,0MoveJhome,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開始失效最長等待時間為0肯定進入ErrorHandler處理,利用機器人移動到home的時間完成輸入輸出板失效,確認輸入輸出板失效,連續5次RETRY後仍無法完成輸入輸出板的失效,2020/5/24,輸入輸出指令-IODisable,ErrorHandingERR_IODISABLE超過最長等待時間系統仍未完成輸入輸出板失效ERR_CALLIO_INTER系統在執行輸入輸出板失效與激活時當前輸入輸出板與再次被失效或激活形成沖突ERR_NAME_INVALID輸入輸出板名稱錯誤或無法進行失效與激活操作,2020/5/24,輸入輸出指令-IOEnable,IOEnableUnitName,MaxTime;UnitName:輸入輸出板名稱(num)MaxTime:最長等待時間(num)應用通過指令可以使機器人輸入板在程序運行時自動激活系統將一塊輸入輸出板失效需要2-5秒如果失效時間超過最長等待時間系統將進入ErrorHandler處理錯誤代碼為ERR_IOENABLE如果例行程序沒有ErrorHandler機器人將停機報錯。,2020/5/24,輸入輸出指令-IOEnable,實例VARnummax_retry:=0;.IOEnable“cell:,0;SetDOcell_sig3,1;ERRORIFERRNO=ERR_IOENABLETHENIFmax_retry3THENTPWrite“.”;ENDIFIFnCounter30THENStop;ENDIFWaitDIdi_Ready,1MaxTime=1Timeflag:=bTimeout;IncrnCounter;ENDWHOLE.ENDPROC,機器等待到位信號如果1秒內仍沒有等到信號di_Ready值為1機器人執行隨後指令但此時TimeFlag值為TRUE機器人等到di_Ready值為1此時TimeFlag值為FALSE,輸入輸出指令-WaitDI,2020/5/24,輸入輸出指令-WaitDO,WaitDOSignal,ValueMaxTimeTimeFlag;Signal:輸出信號名稱(signaldo)Value:輸出信號值(num)MaxTime:最長等待時間s(num)TimeFlag:超時邏輯量(bool)應用等待數字輸出信號滿足相應值達到通信目的因為輸出信號一般情況下受程序控制此指令很少使用。,2020/5/24,實例PROCGrip()Setdo03_Grip;WaitDOdo03_Grip,1;.ENDPROCPROCGrip()Setdo03_Grip;WaitDOdo03_Grip,1MaxTime:=5;.ERRORIFERRNO=ERR_WAIT_MAXTIMETHENTRWrite“.”;RETRY;ELSERAISE;ENDIFENDPROC,機器人等待輸出信號直到信號do03_Grip為1才執行隨後指令,機器人等待相應輸出信號如果5秒內仍沒有等到信號do03_Grip值為1自動進行ErrorHandler處理如果沒有ErrorHandler,機器人停機報錯,輸入輸出指令-WaitDO,2020/5/24,實例PROCGrip()Setdo03_Grip;bTimeout:=TRUE;nCounter:=0;WHILEbTimeoutDOIFnCounter3THENTPWrite“.”;ENDIFIFnCounter30THENStop;ENDIFWaitDIdi_Ready,1MaxTime=1Timeflag:=bTimeout;IncrnCounter;ENDWHOLE.ENDPROC,機器等待到位信號如果1秒內仍沒有等到信號do03_Grip值為1機器人執行隨後指令但此時TimeFlag值為TRUE機器人等到di_Ready值為1此時TimeFlag值為FALSE,輸入輸出指令-WaitDO,2020/5/24,程序運行停止指令,BreakExitStopExitCycle,2020/5/24,程序運行停止指令-Break,Break;應用機器人在當前指令行立刻停止運行程序運行指針停留在下一行指令可以用Start鍵繼續運行機器人。實例.Break;.,2020/5/24,程序運行停止指令-Break,區別MoveLp2,v100,z30,tool0;Break;(Stop)MoveLp3,v100,z30,tool0;,p1,Break,Stop,p3,p2,2020/5/24,程序運行停止指令-EXIT,EXIT;應用機器人在當前指令行停止運行并且程序重置程序運行指針停留在主程序第一行。實例.EXIT;.,2020/5/24,StopNoRegain;NoRegain:路徑恢復參數(num)應用機器人在當前指令停止運行程序運行指針停留在下一行指令可以用Start鍵繼續運行機器人屬於臨時性停止如果機器人停止期間被手動移動後然後直接啟動機器人機器人將警告確認路徑如果此時采用參變量NoRegain機器人將直接運行。,程序運行停止指令-STOP,2020/5/24,區別MoveLp2,v100,z30,tool0;Stop;(Break;)MoveLp3,v100,z30,tool0;,p1,Break,Stop,p3,p2,程序運行停止指令-STOP,2020/5/24,程序運行停止指令-ExitCycle,ExitCycle;應用機器人在當前指令行立刻停止運行并且設定當前循環結束機器人自動從主程序第一行繼續運行下一個循環。,2020/5/24,程序運行停止指令-ExitCycle,實例PROCmain()IFcyclecount=0THENCONNECTerror_intnoWITHerror_trapISignalDIdi_error,1,error_intno;ENDIFcyclecount:=cyclecount+1;!starttodosomethingintelligent.ENDPROCTRAPerror_trapTPWrite“Iwillstatronthenextitem”;ExitCycle;ENDTRAP,2020/5/24,例行程序調用指令,ProcCallCallByVar,2020/5/24,ProcCallProcedureArgumentProcedure:例行程序名稱(Identifier)Argument:例行程序參數(All)應用機器人調用相應例行程序同時給帶有參數的例行程序中相應的參數賦值。實例Weldpipe1;Weldpipe210,lowspeed;Weldpipe310speed:=20;,例行程序調用指令-ProcCall,2020/5/24,例行程序調用指令-ProcCall,限製機器人調用帶參數的例行程序時必須包括所有強製性參數例行程序所有參數位置次序必須與例行程序設置一致例行程序所有參數數據類型必須與例行程序設置一致例行程序所有參數數據性質必須為Input,Variable或Persistent;,2020/5/24,CallByVarName,Number;Name:例行程序名稱第一部分(string)Number:例行程序名稱第二部分(num)應用通過指令中相應數據機器人調用相應例行程序但無法調用帶有參數的例行程序。實例reg1:=Ginput(gi_Type);CallByVar“proc”,reg1;,例行程序調用指令-CallByVar,2020/5/24,例行程序調用指令-CallByVar,限製不能調用帶參數的例行程序所有被調用的例行程序名稱第一部分必須相同例如proc1,proc2,proc3;使用CallByVar指令調用例行程序比直接采用ProcCall調用例行程序需要更長時間ErrorHandling:ERR_REFUNKPRC系統無法找到例行程序名稱第一部分ERR_CALLPROC系統無法找到例行程序名稱第二部分,2020/5/24,實例比較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;,例行程序調用指令-CallByVar,指令CallByVar不能調用帶有參數的例行程序,通過RAPID結構仍可以調用帶有參數的例行程序,2020/5/24,計時指令,ClkResetClkStartClkStop,2020/5/24,ClkResetClock;Clock:時鐘名稱(clock)應用將機器人相應時鐘復位常用於記錄循環時間或機器人跟蹤運輸鏈。實例ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:Num:=nCycleTime,計時指令-ClkReset,2020/5/24,ClkStartClock;Clock:時鐘名稱(clock)應用啟動機器人相應時鐘常用於記錄循環時間或機器人跟蹤運輸鏈機器人時鐘啟動後時鐘不會因為機器人停止運行或關機而停止計時在機器人時鐘運行時指令ClkStop與ClkReset仍起作用。,計時指令-ClkStart,2020/5/24,計時指令-ClkStart,實例ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:Num:=nCycleTime限製機器人時鐘計時超過4,294,967秒即49天17小時2分47秒機器人將出錯ErrorHandler代碼為ERR_OVERFLOW,2020/5/24,ClkStopClock;Clock:時鐘名稱(clock)應用停止機器人相應時鐘常用於記錄循環時間或機器人跟蹤運輸鏈。實例ClkResetclock1;ClkStartclock1;RunCycle;ClkStopclock;nCycleTime:=ClkRead(clock1);TPWrite“Lastcycletime:Num:=nCycleTime,計時指令-ClkStop,2020/5/24,中斷指令,CONNECTIDeleteISignalDIISignalDOISignalAIISignalAOISleepIWatchIDisableIEnableITimer,2020/5/24,中斷指令-CONNECT,CONNECTInterruptWITHTraproutine,Interrupt:中斷數據名稱(intnum)Traproutine:中斷處理程序(Identifier),應用將機器人相應中斷數據連接到相應的中斷處理程序是機器人中斷功能必不可少的組成部分必須同指令ISignalDIISignalDOISignalAIISignalAO或ITmer聯合使用,2020/5/24,中斷指令-CONNECT,實例,VARintnumintInspectProcmain().CONNECTintInpectWITHrAlarm;ISignalDIdi01_Vacuum,0,intInspect;.ENDPROCTRAPrAlarmTPWrite“GripError”;Stop;WaitDIdi01_Vacuum,1;ENDTRAP,2020/5/24,中斷指令-CONNECT,限製中斷數據的數據類型必須為變量(VAR)一個中斷數據不允許同時連接到多個中斷處理程序但多個中斷數據可以共享一個中斷處理程序當一個中斷數據完成連接後這個中斷數據不允許再次連接到任何中斷處理程序(包括已經連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令IDelete將原連接去除。,2020/5/24,中斷指令-CONNECT,ErrorHandler:ERR_ALRDYCNT中斷數據已經被連接到中斷處理程序ERR_CNTNOTVAR中斷數據的數據類型不是變量ERR_INOMAX沒有更多的中斷數據可以使用,2020/5/24,中斷指令-IDelete,IDeleteInterrupt,Interrupt:中斷數據名稱(intnum),應用,將機器人相應中斷數據與相應的中斷處理程序之間的連接去除,實例,.CONNECTIntInspectWITHrAlarm;ISingalDIdi01_Vacuum,0,intInspect;.IDeleteintInspect;,2020/5/24,中斷指令-IDelete,限製,執行指令IDelete後當前中斷數據的連接被完全清除如需再次使用這個中斷數據必須重新使用指令CONNECT連接到相應的中斷處理程序在下列情況下中斷程序將自動去除-重新載入新的運行程序-機器人運行程序被重置程序指針回到主程序的第一行(StartFromBeginning);-機器人程序指針被移到任意一個例行程序的第一行(MovePPtoRoutine);,2020/5/24,中斷指令-ISignalDI,ISingalDISingle,Signal,TriggValue,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)TriggValue:觸發信號值(dionum)Interrupt:中斷數據名稱(intnum),應用使用相應的數字輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2020/5/24,中斷指令-ISignalDI,1,0,0,中斷觸發,1,中斷觸發,實例,.CONNECTint1WITHiroutine1;IsignalDIsingledi01,1,int1;.CONNECTint2WITHiroutine2;ISignalDIdi02,1,int1.,中斷功能在單次觸發後失效,中斷功能持續有效只有在程序重置或運行指令IDelete後才失效,2020/5/24,中斷指令-ISignalDI,限製,當一個中斷數據完成連接後這個中斷數據不允許再次連接到任何中斷處理程序(包括已經連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令IDelete將原連接去除;,PROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,int1;.IDeleteint1;ENDPROC,PROCmain()CONNECTint1WITHr1;ISignalDIdi01,1,int1;WHILETRUEDO.ENDWHILEENDPROC,2020/5/24,中斷指令-ISignalDO,ISingalDOSingle,Signal,TriggValue,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)TriggValue:觸發信號值(dionum)Interrupt:中斷數據名稱(intnum),應用使用相應的數字輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2020/5/24,中斷指令-ISignalDO,1,0,0,中斷觸發,1,中斷觸發,實例,.CONNECTint1WITHiroutine1;IsignalDOsingledi01,1,int1;.CONNECTint2WITHiroutine2;ISignalDOdi02,1,int1.,中斷功能在單次觸發後失效,中斷功能持續有效只有在程序重置或運行指令IDelete後才失效,2020/5/24,中斷指令-ISignalDO,限製,當一個中斷數據完成連接後這個中斷數據不允許再次連接到任何中斷處理程序(包括已經連接的中斷處理程序)如果需要再次連接到任何中斷處理程序必須先使用指令IDelete將原連接去除;,PROCmain()CONNECTint1WITHr1;ISignalDOdO01,1,int1;.IDeleteint1;ENDPROC,PROCmain()CONNECTint1WITHr1;ISignalDOdi01,1,int1;WHILETRUEDO.ENDWHILEENDPROC,2020/5/24,中斷指令-ISignalAI,ISingalAISingle,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)Condition:中斷觸發狀態(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num),2020/5/24,中斷指令-ISignalAI,ISingalAISingle,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,Interrupt,DeltaValue:中斷恢復差值(num)DPos:正值中斷開關(switch)DNeg:負值中斷開關(switch)Interrupt:中斷數據名稱(intnum),2020/5/24,中斷指令-ISignalAI,中斷觸發狀態AIO_ABOVE_HIGH模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH模擬量信號邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN模擬量信號邏輯值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間,2020/5/24,中斷指令-ISignalAI,中斷觸發狀態AIO_OUTSIDE模擬量信號邏輯值大於最大邏輯值(HighValue)或者小於最小邏輯值(LowValue)AIO_ALWAYS總是觸發中斷與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關應用使用相應的模擬量輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2020/5/24,中斷指令-ISignalAI,實例.CONNECTint1WITHiroutine1;ISignalAISingleai1AIO_BETWEEN,2,1,0,int1;.CONNECTint2WITHiroutine2;ISignalAIai2AIO_BETWEEN,1.5,0.5,0,int1;.CONNECTint3WITHiroutine3;ISignalAIai3AIO_BETWEEN,1.5,0.5,0.1,int3;,中斷功能在單次觸發後失效,中斷功能持續有效只有在程序重置或運行IDelete後才失效,2020/5/24,中斷指令-ISignalAI,2020/5/24,中斷指令-ISignalAI,限製,當前最大邏輯值(HighValue)與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值範圍內最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復位差值(DeltaValue)必須為正數或0指令ISignalDI的限製仍然適用,2020/5/24,中斷指令-ISignalAO,ISingalAOSingle,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,Interrupt,single:單次中斷信號開關(switch)Signal:觸發中斷信號(singaldi)Condition:中斷觸發狀態(aiotrigg)HighValue:最大邏輯值(num)LowValue:最小邏輯值(num),2020/5/24,中斷指令-ISignalAO,ISingalAOSingle,Signal,Condition,HighValueLowValeu,DeltaValue,DposDNeg,Interrupt,DeltaValue:中斷恢復差值(num)DPos:正值中斷開關(switch)DNeg:負值中斷開關(switch)Interrupt:中斷數據名稱(intnum),2020/5/24,中斷指令-ISignalAO,中斷觸發狀態AIO_ABOVE_HIGH模擬量信號邏輯值大於最大邏輯值(HighValue)AIO_BELOW_HIGH模擬量信號邏輯值小於最大邏輯值(HighValue)AIO_ABOVE_LOW模擬量信號邏輯值大於最小邏輯值(LowValue)AIO_BELOW_LOW模擬量信號邏輯值小於最小邏輯值(LowValue)AIO_BETWEEN模擬量信號邏輯值處於最小邏輯值(LowValue)和最大邏輯值(HighValue)之間,2020/5/24,中斷指令-ISignalAO,中斷觸發狀態AIO_OUTSIDE模擬量信號邏輯值大於最大邏輯值(HighValue)或者小於最小邏輯值(LowValue)AIO_ALWAYS總是觸發中斷與模擬量信號邏輯值處於最小邏輯值(LowValue)與最大邏輯值(HighValue)無關應用使用相應的模擬量輸入信號觸發相應的中斷功能必須同指令CONNECT聯合使用,2020/5/24,中斷指令-ISignalAO,實例.CONNECTint1WITHiroutine1;ISignalAOSingleao1AIO_BETWEEN,2,1,0,int1;.CONNECTint2WITHiroutine2;ISignalAOao2AIO_BETWEEN,1.5,0.5,0,int1;.CONNECTint3WITHiroutine3;ISignalAOao3AIO_BETWEEN,1.5,0.5,0.1,int3;,中斷功能在單次觸發後失效,中斷功能持續有效只有在程序重置或運行IDelete後才失效,2020/5/24,中斷指令-ISignalAO,2020/5/24,中斷指令-ISignalAO,限製,當前最大邏輯值(HighValue)與最小邏輯值(LowValue)必須是模擬量信號所定義的邏輯值範圍內最大邏輯值(HighValue)必須大於最小邏輯值(LowValue);中斷復位差值(DeltaValue)必須為正數或0指令ISignalDI的限製仍然適用,2020/5/24,中斷指令-ISleep,ISleepInterrupt;,Interrupt:中斷數據名稱(intnum),應用使機器人相應中斷數據暫時失效直到執行指令IWatch後才恢復。,2020/5/24,中斷指令-ISleep,實例.CONNECTintInspectWITHrAlarmISingalDIdi01_Vacuum,0,intInspect;.ISleepintInspect;.IWatchintInspect;.,中斷監控,中斷失效,中斷監控,ErrorHandler:ERR_UNKINO無法找到當前的中斷數據,2020/5/24,中斷指令-IWatch,IWatchInterrupt;,Interrupt:中斷數據名稱(intnum),應用激活機器人已失效的相應中斷數據正常情況下與指令ISleep配合使用。,2020/5/24,中斷指令-IWatch,實例.CONNECTintInspectWITHrAlarmISingalDIdi01_Vacuum,0,intInspect;.ISleepintInspect;.IWatchintInspect;.,中斷監控,中斷失效,中斷監控,ErrorHandler:ERR_UNKINO無法找到當前的中斷數據,2020/5/24,中斷指令-IDisable,IWatchInterrupt;,Interrupt:中斷數據名稱(intnum),應用使機器人相應中斷功能暫時不執行直到執行IEnable後才進入中斷處理程序此指令使用於機器人正在執行不希望被打斷的操作其間例如通過通信口讀寫數據。,2020/5/24,實例.IDisable;FORiFROM1TODOcharacteri:=ReadBin(sensor);ENDFORIEnable;.,中斷指令-IDisable,2020/5/24,中斷指令-IEnable,IEnableInterrupt;,Interrupt:中斷數據名稱(intnum),應用開始執行被機器人暫停的相應中斷功能正常情況下與指令IDisable配合使用此指令用於機器人正在執行不希望被打斷的操作期間例如通過通信口讀寫數據。,2020/5/24,實例.IDisable;FORiFROM1TODOcharacteri:=ReadBin(sensor);ENDFORIEnable;.,中斷指令-IEnable,2020/5/24,中斷指令-ITimer,IWatchSingle,Time,Interrupt;,Single:單次中斷開關(switch)Time:觸發中斷時間s(num)Interrupt:中斷數據名稱(intnum),應用定時處理機器人相應中斷數據此指令常使用於通過通信口讀寫數據等場合。,2020/5/24,中斷指令-ITimer,實例.CONNECTtimeintWITHcheck_serialch;ITimer60,timeint;.Trapcheck_serialchWriteBinch1,buffer,1;IFReadBin(ch1Time:=5)3THENTPWrite“.”;ENDIFIFnCounter30THENStop;ENDIFWaitUntilbOK=TRUEMaxTime:=1TimeFlag:=bTimeOut;IncrnCounter;ENDWHOLE.ENDPROC,機器等待到位信號如果1秒內仍沒有等到信號di_Ready值為1機器人執行隨後指令但此時TimeFlag值為TRUE機器人等到di_Ready值為1此時TimeFlag值為FALSE,程序流程指令-WaitUntil,2020/5/24,程序流程指令-WaitTime,WaitTimeInPos,Time;InPos:程序運行提前量開關(switch)Time:相應等待時間s;(num)應用當前指令只用於機器人等待相應時間後才執行以後指令使用參變量InPos機器人及其外軸必須在完全停止的情況下才進行等待時間計時此指令會延長循環時間,2020/5/24,程序流程指令-WaitTime,實例WaitTime3;WaitTimeInpos,0.5;WaitTimeInPos,0;限製當前指令在使用參變量InPos時遇到程序突然停止運行機器人不能保証停在最終停止點進行等待計時當前指令參變量InPos不能與機器人指令SoftServo同時使用。,2020/5/24,程序流程指令-CompactIF,IFCondition.;Condition:判斷條件(switch)應用當前指令是指令IF的簡化版判斷條件後只允許跟一句指令如果有多句指令需要執行必須采用指令IF實例IFreg15GOTOnextIFcounter1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区组织考试题库及答案
- 森林防火安全知识培训
- 梭状芽胞杆菌课件
- 焊工(技师)理论考试试题及答案
- 2025年文化旅游讲解员高级题库大全
- 2025年高频考点机关安保招聘面试中的法律法规知识应用
- 2025年电商公司运营中心主管面试备考要点及预测题
- 2025年旅游景点导游资格考试备考宝典
- 2025年电子商务运营师能力评估模拟题
- 2025年篮球裁判员比赛水平测试试题及答案
- 公共基础知识试题(附答案)
- 2025年湖北省中考语文真题(含答案)
- 2025年四川三支一扶考试公共基础知识试卷
- 战术基础动作低姿匍匐
- 2025年公文核改竞赛试题及答案
- 2025年秋季学期开学第一次中层班子会上校长精彩讲话:向小处看往实里干朝远处谋
- 下肢开放性损伤课件
- 有机硅行业面试攻略:高级岗位面试题库
- 专利分级管理办法
- TCCEAS001-2022建设项目工程总承包计价规范
- 漆黑的魅影-精灵分布图鉴
评论
0/150
提交评论