ABB机器人标准指令详解



《ABB机器人标准指令详解》由会员分享,可在线阅读,更多相关《ABB机器人标准指令详解(238页珍藏版)》请在装配图网上搜索。
1、,,,,,,,,,,,,,,,,,,,,,,,,,,,Click to edit Master title style,,Click to edit Master text styles,,Second level,,Third level,,Fourth level,,Fifth level,,*,,*,机 器 人 标 准 指 令,*,赋值指令,,运动控制指令,,,外轴激活指令,,计数指令,,输入输出指令,,程序运行停止指令,,例行程序调用指令,,计时指令,,中断指令,,通信指令,,运动指令,,中断运动指令,,程序流程指令,,故障处理指令,,座标转换指令,,运动触发指令,*,运动控制指令,,
2、AccSet,,VelSet,,,,,ConfJ,,ConfL,,,,SingArea,,PathResol,,,,SoftAct,,SoftDeact,,2024/11/28,运动控制指令-,AccSet,AccSet,Acc,,,Ramp,;,,Acc:,机器人加速度百分率,。,,(,num ),Ramp:,机器人加速度坡度,。,,(,num ),应用:,,当机器人运行速度改变时,对所产生的相应加速度进行限制,使机器人高速运行时更平缓,但会延长循环时间,系统默认值为,AccSet 100, 100; 。,2024/11/28,运动控制指令-,AccSet,实例:,限制:,,机器人加速度百分
3、率值最小为 20,小于 20以 20 计,机器人加速度坡度值最小为 10,小于 10 以 10 计,。,,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。,2024/11/28,运动控制指令-,VelSet,VelSet,Override,,,Max,;,,Override:,机器人运行速率 %。,,(,num ),Max:,最大运行速度,mm/s。,(,num ),应用:,,对机器人运行速度进行限制,,机器人运动指令中均带有运行速度,在执行运动速度控制指令,VelSet,,后,实际运行速度为运动指令规定的运行速度乘以机器人运行速率,,,并且不超过机器人最大运行速度,,系统默认值为
4、,VelSet 100, 5000; 。,2024/11/28,运动控制指令-,VelSet,500 mm/s,800 mm/s,10 s,800 mm/s,1000 mm/s,1000 mm/s,6.25 s,实例:,,,VelSet 50,800;,,MoveL p1,v1000,z10,tool1;,,MoveL p2,v1000\V:=2000,z10,tool1;,,MoveL p3,v1000\T:=5,z10,tool1;,,VelSet 80,1000;,,MoveL p1,v1000,z10,tool1;,,MoveL p2,v5000,z10,tool1;,,MoveL p
5、3,v1000\V:=2000,z10,tool1;,,MoveL p4,v1000\T:=5,z10,tool1;,2024/11/28,运动控制指令-,VelSet,限制:,,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。,,机器人运动使用参变量 [\,T],时,最大运行速度将不起作用。,,Override,对速度数据 (,speeddata),内所有项都起作用,例如:,TCP、,方位及外轴。但对焊接参数,welddata,与,seamdata,内机器人运动速度不起作用。,,Max,只对速度数据 (,speeddata),内,TCP,这项起作用。,2024/11/28,运动控
6、制指令-,ConfJ,ConfJ,[\On],|,[\Off],;,,[\On]:,启用轴配置数据。,,(,switch ),关节运动时,机器人移动至绝对,ModPos,,点,如果无法到达,程序将停止运行。,,,[\,Off]:,默认轴配置数据。,,(,switch ),,关节运动时,机器人移动至,ModPos,,点,轴配置数据默认为当前最接近值。,2024/11/28,运动控制指令-,ConfJ,应用:,,对机器人运行姿态进行限制与调整,,,程序运行时,使机器人运行姿态得到控制。系统默认值为,ConfJ\On; 。,限制:,,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。,实例
7、:,,,ConfJ\On;,,…,,ConfJ\Off;,2024/11/28,运动控制指令-,ConfL,ConfL,[\On],|,[\Off],;,,[\On]:,启用轴配置数据。,,(,switch ),直线运动时,机器人移动至绝对,ModPos,,点,如果无法到达,程序将停止运行。,,,[\,Off]:,默认轴配置数据。,,(,switch ),,直线运动时,机器人移动至,ModPos,,点,轴配置数据默认为当前最接近值。,2024/11/28,运动控制指令-,ConfL,应用:,,对机器人运行姿态进行限制与调整,,,程序运行时,使机器人运行姿态得到控制。系统默认值为,ConfL\O
8、n; 。,限制:,,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。,实例:,,,ConfL\On;,,…,,ConfL\Off;,2024/11/28,运动控制指令-,SingArea,SingArea,[\Wrist],|,[\Off],;,,[\Wrist]:,启用位置方位调整。,,(,switch ),机器人运动时,为了避免死机,位置点允许其方位值有些许改变,例如:在五轴零度时,机器人四六轴平行。,,,[\,Off]:,关闭位置方位调整,。,,(,switch ),,机器人运动时,不允许位置点方位改变,是机器人的默认状态。,2024/11/28,运动控制指令-,SingAr
9、ea,应用:,,当前指令通过对机器人位置点姿态进行些许改变,,,可以绝对避免机器人运行时死机,但是,机器人运行路径会受影响,姿态得不到控制,通常使用于通过复杂姿态点,绝对不能作为工作点使用。,实例:,,,SingArea\Wrist;,,…,,SingArea\Off;,2024/11/28,运动控制指令-,SingArea,限制:,,以下情况机器人将自动恢复默认值,SingArea\Off。,,机器人冷启动。,,系统载入新的程序。,,程序重置 (,Start From Beginning )。,2024/11/28,运动控制指令-,PathResol,,PathResol,PathSampl
10、eTime,;,,PathSampleTime:,路径控制 %。,(,num ),应用:,,当前指令用于更改机器人主机系统参数,调整机器人路径采样时间,从而达到控制机器人运行路径的效果,通过此指令可以提高机器人运动精度或缩短循环时间,路径控制默认值为 100%,调整范围为25%-400%,路径控制百分比越小,运动精度越高,占用,CPU,资源也越多。,2024/11/28,运动控制指令-,PathResol,实例:,,,MoveJ p1,v1000,fine,tool1;,,PathResol 150;,机器人在临界运动状态 ( 重载、高速、路径变化复杂情况下接近最大工作区域 ),增加路径控制值
11、,可以避免频繁死机。,外轴以很低的速度与机器人联动,增加路径控制值,可以避免频繁死机。,机器人进行高频率摆动弧焊时,需要很高的路径采样时间,需要减小路径控制值。,机器人进行小圆周或小范围复杂运动时,需要很高精度,需要减小路径控制值。,2024/11/28,运动控制指令-,PathResol,限制:,,机器人必须在完全停止后才能更改路径控制值,否则,机器人将默认一个停止点,并且显示错误信息 50146。,,机器人正在更改路径控制值时,机器人被强制停止运行,机器人将不能立刻恢复正常运行 (,Restart )。,,以下情况机器人将自动恢复默认值 100%。,,机器人冷启动。,,系统载入新的程序。,
12、,程序重置 (,Start From Beginning )。,2024/11/28,运动控制指令-,SoftAct,SoftAct,[\MechUnit,],,Axis,,,Softness,,[\Ramp],;,应用:,,当前指令用于软化机器人主机或外轴伺服系统,软化值范围 0%-100%,软化坡度范围>=100%,此指令必须与指令,SoftDeact,同时使用,通常不使用于工作位置。,,[\MechUnit]:,软化外轴名称。,(,mecunit ),Axis:,软化转轴号码。,( num ),Softness:,软化值,%。,( num ),[\Ramp]:,软化坡度 %,。,( nu
13、m ),2024/11/28,运动控制指令-,SoftAct,实例:,,,SoftAct 3,20;,,SoftAct 1,90\Ramp:=150;,,SoftAct \MechUnit:=orbit1,1,40\Ramp:=120;,限制:,,机器人被强制停止运行后,软伺服设置将自动失效。,,同一转轴软化伺服不允许被连续设置两次。,…,,SoftAct 3,20;,,SoftAct 3,30;,,…,…,,SoftAct 3,20;,,MoveJ *,v100,fine,tool1;,,SoftAct 3,30;,,…,2024/11/28,运动控制指令-,SoftDeact,,SoftD
14、eact,[\Ramp],;,,[\Ramp]:,软化坡度,>=100%,。,( num ),应用:,,当前指令用于使软化机器人主机或外轴伺服系统指令,SoftAct,失效。,实例:,,,SoftAct 3,20;,,SoftDeact;,,SoftAct 1,90;,,SoftDeact\Ramp:=150;,2024/11/28,外轴激活指令,,,ActUnit,,DeactUnit,2024/11/28,外轴激活指令-,ActUnit,ActUnit,MecUnit,;,,MecUnit:,外轴名。,,(,mecunit ),应用:,,,将机器人一个外轴激活,例如:当多个外轴公用一个驱动
15、板时,通过外轴激活指令,ActUnit,,选择当前所使用的外轴。,2024/11/28,外轴激活指令-,ActUnit,p10,,外轴不动。,p20,,外轴联动,track_motion,。,p30,,外轴联动,orbit_a。,实例:,,,MoveL p10,v100,fine,tool1;,,ActUnit track_motion;,,MoveL p20,v100,z10,tool1;,,DeactUnit track_motion;,,ActUnit orbit_a;,,MoveL p30,v100,z10,tool1;,限制:,,不能在指令,StorePath …RestoPath,
16、内使用。,,不能在预置程序,RESTART,内使用。,,不能在机器人转轴处于独立状态时使用。,2024/11/28,外轴激活指令-,DeactUnit,DeactUnit,MecUnit,;,,MecUnit:,外轴名。,,(,mecunit ),应用:,,,使机器人一个外轴失效,例如:当多个外轴公用一个驱动板时,通过外轴激活指令,DeactUnit,,使当前所使用的外轴失效。,2024/11/28,外轴激活指令-,DeactUnit,p10,,外轴不动。,p20,,外轴联动,track_motion,。,p30,,外轴联动,orbit_a。,实例:,,,MoveL p10,v100,fine
17、,tool1;,,ActUnit track_motion;,,MoveL p20,v100,z10,tool1;,,DeactUnit track_motion;,,ActUnit orbit_a;,,MoveL p30,v100,z10,tool1;,限制:,,不能在指令,StorePath …RestoPath,内使用。,,不能在预置程序,RESTART,内使用。,2024/11/28,计数指令,,,Add,,Clear,,,,Incr,,Decr,,2024/11/28,计数指令-,Add,Add,Name,,,AddValue,;,,Name:,数据名称。,(,num ),AddVa
18、lue:,增加的值。,,(,num ),应用:,,,在一个数字数据值上增加相应的值,可以用赋值指令替代。,实例:,,,Add reg1,3;,,等同于,,reg1:=reg1+3;,,,Add reg1,-reg2;,,,等同于,,reg1:=reg1-reg2;,2024/11/28,计数指令-,Clear,Clear,Name,;,,Name:,数据名称。,(,num ),应用:,,,将一个数字数据的值归零,可以用赋值指令替代。,实例:,,,Clear reg1;,,等同于,,reg1:=0;,2024/11/28,计数指令-,Incr,Incr,Name,;,,Name:,数据名称。,(
19、,num ),应用:,,,在一个数字数据值上增加,1,,可以用赋值指令替代,一般用于产量计数。,实例:,,,Incr reg1;,,等同于,,reg1:=reg1+1;,2024/11/28,计数指令-,Decr,Decr,Name,;,,Name:,数据名称。,(,num ),应用:,,,在一个数字数据值上增加,1,,可以用赋值指令替代,一般用于产量计数。,实例:,,,Decr reg1;,等同于,,reg1:=reg1-1;,2024/11/28,输入输出指令,,AliasIO,,InvertDO,,,IODisable,,IOEnable,,,PluseDO,,Reset,,,Set,,
20、SetAO,,,SetDO,,SetGO,,,WaitDI,,WaitDO,2024/11/28,输入输出指令-,AliasIO,AliasIO,FromSignal,,,ToSignal,;,,FromSignal:,机器人系统参数内所定义的 信号名称。,,(,signalxx or string ),ToSignal:,机器人程序内所使用的信号 名称,。,,(,signalxx ),应用:,,对机器人系统参数内定义的信号名称进行化名,给机器人程序使用,一般使用与,Loaded Modules,或,Built-in Modules,内。例如:多台机器人使用相同系统参数。,2024/1
21、1/28,输入输出指令-,AliasIO,Alias_do,,在机器人程序内定义。,config_do,,在系统参数内定义。,实例:,,,VAR signaldo alias_do;,,CONST string config_string:="config_do";,,PROC prog_start(),,AliasIO config_do,alias_do;,,AliasIO config_string,alias_do;,,ENDPROC,2024/11/28,输入输出指令-,AliasIO,限制:,,指令,AliasIO,必须放置在预置程序,START,内或程序内使用相应信号之前。,,指
22、令,AliasIO,在示教器上无法输入,只能通过离线编程输入。,,指令,AliasIO,需要软件,Developer’s Functions,,支持。,2024/11/28,输入输出指令-,InvertDO,InvertDO,Signal,;,,Signal:,,输出信号名称,。,,(,signaldo ),应用:,,将机器人输出信号值反转,0 为 1,1 为 0,在系统参数内也可定义。,实例:,,,InvertDO do15;,2024/11/28,输入输出指令-,InvertDO,机器人程序内指令,InvertDO,被执行。,2024/11/28,输入输出指令-,IODisable,IOD
23、isable,UnitName,,,MaxTime,;,,UnitName:,输入输出板名称。,(,num ),MaxTime:,最长等待时间。,(,num ),应用:,,通过指令可以使机器人输入输出板在程序运行时自动失效,系统将一块输入输出板失效需要 2-5 秒。如果失效时间超过最长等待时间,系统将进入,Error Handler,处理,错误代码为,ERR_IODISABLE,,如果例行程序没有,Error Handler,机器人将停机报错。,2024/11/28,输入输出指令-,IODisable,输入输出板,cell1,开始失效,最长等待时间为 0,肯定进入,Error Handler,
24、处理。,利用机器人移动至,home,的时间完成输入输出板失效。,确认输入输出板,cell1,失效。,连续 5 次,RETRY,,仍无法完成输入输出板失效。,实例:,,,PROC go_home(),,recover_flag:=1;,,IODisable “cell1”,0;,,MoveJ home,v1000,fine,tool1;,,recover_flag:=2;,,IODisable “cell1”,5;,,ERROR,,IF ERRNO=ERR_IODISABLE THEN,,IF recover_flag=1 THEN,,TRYNEXT;,,ELSEIF recover_flag=
25、2 THEN,,RETRY;,,ENDIF,,ELSEIF ERRNO=ERR_EXCRTYMAX THEN,,ErrWrite “IODisable error”,“Restart the program”;,,Stop;,,ENDIF,,ENDPROC,2024/11/28,输入输出指令-,IODisable,Error Handling:,,ERR_IODISABLE,,超过最长等待时间,系统仍未完成输入输出板失效。,,ERR_CALLIO_INTER,,系统在执行输入输出板失效与激活时,当前输入输出板再次被失效或激活,形成冲突。,,ERR_NAME_INVALID,,输入输出板名称错误
26、或无法进行失效与激活操作。,2024/11/28,输入输出指令-,IOEnable,IOEnable,UnitName,,,MaxTime,;,,UnitName:,输入输出板名称。,(,num ),MaxTime:,最长等待时间。,(,num ),应用:,,通过这指令可以使机器人输入输出板在程序运行时自动激活,系统将一块输入输出板激活需要 2-5 秒。如果激活时间超过最长等待时间,系统将进入,Error Handler,处理,错误代码为,ERR_IOENABLE,,如果例行程序没有,Error Handler,机器人将停机报错。,2024/11/28,输入输出指令-,PulseDO,Puls
27、eDO,[\High][\PLength],,Signal,;,,[\High]:,输出脉冲时,输出信号可以 处在高电平。,(,switch ),[\,Plength]:,脉冲长度,,0.1,s-32s,,,默认 值为,0.2,s,。,( num ),Signal:,输出信号名称。,(,signaldo ),应用:,,机器人输出数字脉冲信号,一般作为运输链完成信号或计数信号,。,2024/11/28,输入输出指令-,PulseDO,实例:,PulseDO,PulseDO\High,脉冲长度,脉冲长度,PulseDO\High\Plength:=x,,PulseDO\High\Pleng
28、th:=y,2024/11/28,输入输出指令-,PulseDO,限制:,,机器人脉冲输出长度小于 0.01 秒,系统将报错,不得不重新热启动。,例如:,,,WHILE TRUE DO,,PulseDO do5;,,ENDWHILE,2024/11/28,输入输出指令-,IOEnable,输入输出板,cell1,开始激活,,,最长等待时间为 0,肯定进入,Error Handler,处理。,通过每次 1 秒进行计数,连续5 次仍无法激活输入输出板,执行指令,RAISE。,实例:,,,VAR num max_retry:=0;,,...,,IOEnable “cell1”,0;,,SetDO c
29、ell1_sig3,1;,,ERROR,,IF ERRNO=ERR_IOENABLE THEN,,IF max_retry<5 THEN,,WaitTime 1;,,max_retry:=max_retry+1;,,RETRY;,,ELSE,,RAISE;,,ENDIF,,ENDIF,2024/11/28,输入输出指令-,IOEnable,Error Handling:,,ERR_IOENABLE,,超过最长等待时间,系统仍未完成输入输出板激活。,,ERR_CALLIO_INTER,,系统在执行输入输出板失效与激活时,当前输入输出板再次被失效或激活,形成冲突。,,ERR_NAME_INVALI
30、D,,输入输出板名称错误或无法进行失效与激活操作。,2024/11/28,输入输出指令-,Reset,Reset,Signal,;,,Signal:,机器人输出信号名称。,,(,signaldo ),应用:,,将机器人相应数字输出信号值置为 0,与指令,Set,对应,是自动化重要组成部分。,实例:,,,Reset do12;,2024/11/28,输入输出指令-,Set,Set,Signal,;,,Signal:,机器人输出信号名称。,,(,signaldo ),应用:,,将机器人相应数字输出信号值置为 1,与指令,Reset,对应,是自动化重要组成部分。,实例:,,,Set do12;,20
31、24/11/28,输入输出指令-,SetAO,SetAO,Signal,,,Value,;,,Signal:,模拟量输出信号名称。,,(,signalao ),Value:,模拟量输出信号值。,(,num ),应用:,,机器人当前模拟量输出信号输出相应的值,例如:机器人焊接时,通过模拟量输出控制焊接电压与送丝速度。,2024/11/28,输入输出指令-,SetAO,实例:,,,SetAO ao2,5.5;,,SetAO weldcurr,curr_outp;,2024/11/28,输入输出指令-,SetDO,SetDO,[\SDelay],,Signal,,,Value,;,[\SDelay]
32、:,延时输出时间,s。,( num ),Signal:,输出信号名称,。,,(,signaldo ),Value:,,输出信号值。,(,dionum ),应用:,,,设置机器人相应数字输出信号的值,与指令,Set,与,Reset,雷同,并且可以设置延时,,,延时范围为 0.1,s-32s,,默认状态为没有延时。,实例:,,,SetDO\SDelay:=0.2,weld,high;,2024/11/28,输入输出指令-,SetGO,SetGO,[\SDelay],,Signal,,,Value,;,[\SDelay]:,延时输出时间,s。,( num ),Signal:,输出信号名称,。,,(,
33、signaldo ),Value:,,输出信号值。,(,dionum ),应用:,,设置机器人相应组合输出信号的值 ( 采用 8421 码 ),可以设置延时输出,,,延时范围为 0.1,s-32s,,默认状态为没有延时。,实例:,,,SetGO\SDelay:=0.2,go_Type,10;,2024/11/28,输入输出指令-,WaitDI,WaitDI,Signal,,,Value,,[\MaxTime][\TimeFlag],;,,Signal:,输入信号名称。,(,signaldi ),Value:,输入信号值。,(,dionum ),[\MaxTime]:,最长等待时间,,s,。,(
34、 num ),,[\TimeFlag]:,超时逻辑量。,(,bool ),应用:,,等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:机器人等待工件到位信号。,2024/11/28,输入输出指令-,WaitDI,实例:,,,PROC PickPart(),,MoveJ pPrePick,vFastEmpty,zBig,tool1;,,WaitDI di_Ready,1;,,…,,ENDPROC,,PROC PickPart(),,MoveJ pPrePick,vFastEmpty,zBig,tool1;,,WaitDI di_Ready,1\MaxTime:=5;,,…
35、,,ERROR,,IF ERRNO=ERR_WAIT_MAXTIME THEN,,TPWrite “……”;,,RETRY;,,ELSE,,RAISE;,,ENDIF,,ENDPROC,机器人等待输入信号,直到信号,di_Ready,值为 1,才执行随后指令。,机器人等待相应输入信号,如果 5 秒内仍没有等到信号,di_Ready,值为 1,自动进行,Error Handler,处理,如果没有,Error Handler,,机器人停机报错 。,2024/11/28,输入输出指令-,WaitDI,实例:,,,PROC PickPart(),,MoveJ pPrePick,vFastEmpty,z
36、Big,tool1;,,bTimeout:=TRUE;,,nCounter:=0;,,WHILE bTimeout DO,,IF nCounter>3 THEN,,TPWrite “……”;,,ENDIF,,IF nCounter>30 THEN,,Stop;,,ENDIF,,WaitDI di_Ready,1\MaxTime:=1\TimeFlag:=bTimeout;,,Incr nCounter;,,ENDWHILE,,…,,ENDPROC,机器人等待到位信号,如果 1 秒内仍没有等到信号,di_Ready,值为 1,机器人自动执行随后指令,但此时,TimeFlag,值为,TRUE;,机
37、器人等到信号,di_Ready,值为 1,此时,,TimeFlag,值为,FALSE。,2024/11/28,输入输出指令-,WaitDO,WaitDO,Signal,,,Value,,[\MaxTime][\TimeFlag],;,,Signal:,输入信号名称。,(,signaldi ),Value:,输入信号值。,(,dionum ),[\MaxTime]:,最长等待时间,,s,。,( num ),,[\TimeFlag]:,超时逻辑量。,(,bool ),应用:,,等待数字输出信号满足相应值,达到通信目的,因为输出信号一般情况下受程序控制,此指令很少使用。,2024/11/28,输入输
38、出指令-,WaitDO,实例:,,,PROC Grip(),,Set do03_Grip;,,WaitDO do03_Grip,1;,,…,,ENDPROC,机器人等待输出信号,直到信号,do03_Grip,值为 1,才执行随后相应指令。,机器人等待相应输出信号,如果 5 秒内仍没有等到信号,do03_Grip,值为 1,自动进行,Error Handler,处理,如果没有,Error Handler,,机器人停机报错 。,PROC Grip(),,Set do03_Grip;,,WaitDO do03_Grip,1\MaxTime:=5;,,…,,ERROR,,IF ERRNO=ERR_WA
39、IT_MAXTIME THEN,,TPWrite “……”;,,RETRY;,,ELSE,,RAISE;,,ENDIF,,ENDPROC,2024/11/28,输入输出指令-,WaitDO,实例:,,,PROC Grip(),,Set do03_Grip;,,bTimeout:=TRUE;,,nCounter:=0;,,WHILE bTimeout DO,,IF nCounter>3 THEN,,TPWrite “……”;,,ENDIF,,IF nCounter>30 THEN,,Stop;,,ENDIF,,WaitDO do03_Grip,1\MaxTime:=1\TimeFlag:=bTi
40、meout;,,Incr nCounter;,,ENDWHILE,,…,,ENDPROC,机器人等待到位信号,如果 1 秒内仍没有等到信号,do03_Grip,值为 1,机器人自动执行随后指令,但此时,TimeFlag,值为,TRUE;,机器人等到信号,do03_Grip,值为 1,此时,,TimeFlag,值为,FALSE。,2024/11/28,程序运行停止指令,,,Break,,Exit,,,,Stop,,ExitCycle,2024/11/28,程序运行停止指令-,Break,Break;,应用:,,,机器人在当前指令行立刻停止运行,程序运行指针停留在下一行指令,可以用,Start,,
41、键继续运行机器人。,实例:,,,…,,Break;,,…,2024/11/28,程序运行停止指令-,Break,,P1,,,P2,P3,区别:,,,MoveL p2,v100,z30,tool0;,,Break; ( Stop; ),,MoveL p3,v100,fine,tool0;,Stop,,Break,2024/11/28,程序运行停止指令-,Exit,Exit;,应用:,,,机器人在当前指令行停止运行,并且程序重置,程序运行指针停留在主程序第一行。,实例:,,…,,Exit;,,…,2024/11/28,程序运行停止指令-,Stop,Stop,[\NoRegain],;,应用:,,,
42、机器人在当前指令行停止运行,程序运行指针停留在下一行指令,可以用,Start,,键继续运行机器人,属于临时性停止。如果机器人停止期间被手动移动后,然后直接启动机器人,机器人将警告确认路径,如果此时采用参变量,[\,NoRegain],,机器人将直接运行。,,[\NoRegain]:,路径恢复参数。,(,switch ),2024/11/28,程序运行停止指令-,Stop,,P1,,,P2,P3,区别:,,,MoveL p2,v100,z30,tool0;,,Stop; ( Break; ),,MoveL p3,v100,fine,tool0;,Stop,,Break,实例:,,,…,,Stop
43、;,,…,2024/11/28,程序运行停止指令-,ExitCycle,ExitCycle;,应用:,,,机器人在当前指令行停止运行,并且设定当前循环结束,机器人自动从主程序第一行继续运行下一个循环。,2024/11/28,程序运行停止指令-,ExitCycle,实例:,,PROC main(),,IF cyclecount=0 THEN,,CONNECT error_intno WITH error_trap;,,ISignalDI di_error,1,error_intno;,,ENDIF,,cyclecount:=cyclecount+1;,,! start to do somethi
44、ng intelligent,,....,,ENDPROC,,,TRAP error_trap,,TPWrite “I will start on the next item”;,,ExitCycle;,,ENDTRAP,2024/11/28,例行程序调用指令,,,ProcCall,,CallByVar,2024/11/28,例行程序调用指令-,ProcCall,Procedure,{Argument},;,应用:,,,机器人调用相应例行程序,同时给带有参数的例行程序中相应参数赋值。,,Procedure:,例行程序名称。,(,Identifier ),Argument:,例行程序参数。,(,
45、All ),实例:,,,Weldpipe1;,,Weldpipe2 10,lowspeed;,,Weldpipe3 10\speed:=20;,2024/11/28,程序运行停止指令-,ProcCall,限制:,,机器人调用带参数的例行程序时,必须包括所有强制性参数。,,例行程序所有参数位置次序必须与例行程序设置一致。,,例行程序所有参数数据类型必须与例行程序设置一致。,,例行程序所有参数数据性质必须为,Input,Variable,或,Persistent。,2024/11/28,例行程序调用指令-,CallByVar,CallByVar,Name,,,Number,;,应用:,,通过指令中
46、相应数据,,机器人调用相应例行程序,但无法调用带有参数的例行程序。,,Name:,例行程序名称第一部分。,(,string ),Number:,例行程序名称第二部分。,(,num ),实例:,,,reg1:=Ginput(gi_Type);,,CallByVar “Proc”,reg1;,2024/11/28,程序运行停止指令-,CallByVar,限制:,,不能调用带参数的例行程序。,,所有被调用的例行程序名称第一部分必须相同,例如:,proc1、proc2、proc3。,,使用,CallByVar,指令调用例行程序比直接采用,ProcCall,调用例行程序需要更长时间。,Error Han
47、dling:,,ERR_REFUNKPRC,,系统无法找到例行程序名称第一部分。,,ERR_CALLPROC,,系统无法找到例行程序名称第二部分。,2024/11/28,程序运行停止指令-,CallByVar,实例比较,:,,,TEST reg1,,CASE 1:,,lf_door door_loc;,,CASE 2:,,rf_door door_loc;,,CASE 3:,,lr_door door_loc;,,CASE 4:,,rr_door door_loc;,,DEFAULT:,,EXIT;,,ENDTEST,%”proc”+NumToStr(reg1,0)% door_loc;,Ca
48、llByVar “proc”,reg1;,指令,CallByVar,不能调用带有参数的例行程序。,通过,RAPID,结构仍可以调用带有参数的例行程序。,2024/11/28,计时指令,,,ClkReset,,ClkStart,,,,ClkStop,2024/11/28,计时指令-,ClkReset,ClkReset,Clock,;,应用:,,,将机器人相应时钟复位,常用于记录循环时间或机器人跟踪运输链。,,Clock:,时钟名称。,(,clock ),实例:,,,ClkReset clock1;,,ClkStart clock1;,,RunCycle;,,ClkStop clock1;,,nC
49、ycleTime:=ClkRead(clock1);,,TPWrite “Last Cycle Time: ”\Num:=nCycleTime;,2024/11/28,计时指令-,ClkStart,ClkStart,Clock,;,应用:,,,启动机器人相应时钟,常用于记录循环时间或机器人跟踪运输链。机器人时钟启动后,时钟不会因为机器人停止运行或关机而停止计时。在机器人时钟运行时,指令,ClkStop,与,,ClkReset,仍起作用。,,Clock:,时钟名称。,(,clock ),2024/11/28,计时指令-,ClkStart,限制:,,机器人时钟计时超过 4,294,967 秒,即
50、49 天17 小时 2 分 47 秒,机器人将出错。,Error Handler,代码为,ERR_OVERFLOW。,实例:,,,ClkReset clock1;,,ClkStart clock1;,,RunCycle;,,ClkStop clock1;,,nCycleTime:=ClkRead(clock1);,,TPWrite “Last Cycle Time: ”\Num:=nCycleTime;,2024/11/28,计时指令-,ClkStop,ClkStop,Clock,;,应用:,,,停止机器人相应时钟,常用于记录循环时间或机器人跟踪运输链。,,Clock:,时钟名称。,(,clo
51、ck ),实例:,,,ClkReset clock1;,,ClkStart clock1;,,RunCycle;,,ClkStop clock1;,,nCycleTime:=ClkRead(clock1);,,TPWrite “Last Cycle Time: ”\Num:=nCycleTime;,2024/11/28,中断指令,,CONNECT,,IDelete,,,ISignalDI,,ISignalDO,,,ISignalAI,,ISignalAO,,,ISleep,,IWatch,,,IDisable,,IEnable,,,ITimer,2024/11/28,中断指令-,IDelete
52、,IDelete,Interrupt,;,应用:,,,将机器人,相应中断数据与相应的中断处理程序之间的连接去除。,,Interrupt:,中断数据名称。,(,intnum ),实例:,,,…,,CONNECT intInspect WITH rAlarm;,,ISignalDI di01_Vacuum,0,intInspect;,,…,,IDelete intInspect;,2024/11/28,中断指令-,IDelete,限制:,,执行指令,IDelete,后,当前中断数据的连接被完全清除,如需再次使用这个中断数据必须重新用指令,CONNECT,连接至相应的中断处理程序。,,在下列情况下,
53、中断将被自动去除:,,重新载入新的运行程序。,,机器人运行程序被重置,程序指针回到主程序第一行 (,Start From Beginning )。,,机器人程序指针被移至任意一个例行程序第一行 (,Move pp to Routine )。,2024/11/28,中断指令-,ISignalDI,ISignalDI,[\Single],,,Signal,,,TriggValue,,,Interrupt,;,应用:,,,使用相应的数字输入信号触发相应的中断功能,,必须同指令,CONNECT,联合使用。,,[\Single]:,单次中断开关。,(,switch ),Signal:,触发中断信号。,(
54、,signaldi ),TriggValue:,触发信号值。,(,dionum ),Interrupt:,中断数据名称,。,( intnum ),2024/11/28,中断指令-,ISignalDI,,0,,1,,0,,1,中断触发,中断触发,实例:,,,…,,CONNECT int1 WITH iroutine1;,,ISignalDI\Signal di01,1,int1;,,…,,CONNECT int2 WITH iroutine2;,,ISignalDI di02,1,int1;,,…,中断功能在单次触发触发后失效。,中断功能持续有效,只有在程序重置或运行指令,IDelete,后才失
55、效。,2024/11/28,中断指令-,ISignalDI,限制:,,当一个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序 ( 包括已经连接的中断处理程序,)。,如果需要再次连接至任何中断处理程序,必须先使用指令,IDelete,将原连接去除。,,PROC main(),,CONNECT int1 WITH r1;,,ISignalDI di01,1,int1;,,WHILE TRUE DO,,…,,ENDWHILE,,ENDPROC,,PROC main(),,CONNECT int1 WITH r1;,,ISignalDI di01,1,int1;,,…,,IDelete
56、 int1;,,ENDPROC,2024/11/28,中断指令-,ISignalDO,ISignalDO,[\Single],,,Signal,,,TriggValue,,,Interrupt,;,应用:,,,使用相应的数字输出信号触发相应的中断功能,,必须同指令,CONNECT,联合使用。,,[\Single]:,单次中断开关。,(,switch ),Signal:,触发中断信号。,(,signaldo ),TriggValue:,触发信号值。,(,dionum ),Interrupt:,中断数据名称,。,( intnum ),2024/11/28,中断指令-,ISignalDO,实例:,,
57、,…,,CONNECT int1 WITH iroutine1;,,ISignalDO\Signal do01,1,int1;,,…,,CONNECT int2 WITH iroutine2;,,ISignalDO do02,1,int1;,,…,,0,,1,,0,,1,中断触发,中断触发,中断功能在单次触发触发后失效。,中断功能持续有效,只有在程序重置或运行指令,IDelete,后才失效。,2024/11/28,中断指令-,ISignalDO,限制:,,当一个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序 ( 包括已经连接的中断处理程序,)。,如果需要再次连接至任何中断处理
58、程序,必须先使用指令,IDelete,将原连接去除。,,PROC main(),,CONNECT int1 WITH r1;,,ISignalDO do01,1,int1;,,WHILE TRUE DO,,…,,ENDWHILE,,ENDPROC,,PROC main(),,CONNECT int1 WITH r1;,,ISignalDO do01,1,int1;,,…,,IDelete int1;,,ENDPROC,2024/11/28,中断指令-,ISignalAI,,ISignalAI,[\Single],,,Signal,,,Condition,,,HighValue,,,LowVal
59、ue,,,DeltaValue,,,[\DPos],|,[\DNeg],,Interrupt,;,,[\Single]:,单次中断开关。,(,switch ),Signal:,触发中断信号。,(,signalai ),Condition:,中断触发状态。,(,aiotrigg ),HighValue:,最大逻辑值。,(,num ),LowValue:,最小逻辑值。,(,num ),2024/11/28,中断指令-,ISignalAI,,DeltaValue:,中断复位差值,。,( num ),[\DPos]:,正值中断开关。,(,switch ),[\DNeg]:,负值中断开关。,(,swit
60、ch ),Interrupt:,中断数据名称,。,( intnum ),,ISignalAI,[\Single],,,Signal,,,Condition,,,HighValue,,,LowValue,,,DeltaValue,,,[\DPos],|,[\DNeg],,Interrupt,;,2024/11/28,中断指令-,ISignalAI,中断触发状态:,,AIO_ABOVE_HIGH,,,模拟量信号逻辑值大于最大逻辑值 (,HighValue )。,,AIO_BELOW_HIGH,,,模拟量信号逻辑值小于最大逻辑值 (,HighValue )。,,AIO_ABOVE_LOW,,,模拟量
61、信号逻辑值大于最小逻辑值 (,LowValue )。,,AIO_BELOW_LOW,,模拟量信号逻辑值小于最小逻辑值 (,LowValue )。,,AIO_BETWEEN,,,模拟量信号逻辑值处于最小逻辑值 (,LowValue ),与最大逻辑值 (,HighValue ),之间。,2024/11/28,中断指令-,ISignalAI,中断触发状态:,,AIO_OUTSIDE,,,模拟量信号逻辑值大于最大逻辑值 (,HighValue ),或小于最小逻辑值 (,LowValue )。,,AIO_ALWAYS,,,总是触发中断,与模拟量信号逻辑值处于最小逻辑值 (,LowValue ),与最大逻
62、辑值 (,HighValue ),无关。,应用:,,,使用相应的模拟量输入信号触发相应的中断功能,,必须同指令,CONNECT,联合使用。,2024/11/28,中断指令-,ISignalAI,实例:,,,…,,CONNECT int1 WITH iroutine1;,,ISignalAI\Signal ai1,AIO_BETWEEN,2,1,0,int1; …,,CONNECT int2 WITH iroutine2;,,ISignalAI ai2,AIO_BETWEEN,1.5,0.5,0,int1;,,…,,CONNECT int3 WITH iroutine3;,,ISig
63、nalAI ai3,AIO_BETWEEN,1.5,0.5,0.1,int3;,,…,中断功能在单次触发触发后失效。,中断功能持续有效,只有在程序重置或运行指令,IDelete,后才失效。,2024/11/28,中断指令-,ISignalAI,判断中断条件。,,(,Condition, HighValue, LowValue ),TRUE,如果没有参变量 [\,DPos],与 [\,Dneg],,ABS(CurrentValue - RefValue) > DeltaValue,RefValue := CurrentValue,FALSE,如果使用参变量 [\,DPos],,(CurrentV
64、alue - RefValue) > DeltaValue,FALSE,如果使用参变量 [\,DNeg],,(RefValue - CurrentValue) > DeltaValue,FALSE,ABS(CurrentValue - RefValue) > DeltaValue,FALSE,RefValue := CurrentValue,执行中断处理,TRUE,TRUE,TRUE,RefValue := CurrentValue,FALSE,TRUE,2024/11/28,中断指令-,ISignalAI,限制:,,当前最大逻辑值 (,HighValue ),与最小逻辑值 (,LowValu
65、e ),必须在模拟量信号所定义的逻辑值范围内。,,最大逻辑值 (,HighValue ),必须大于最小逻辑值 (,LowValue )。,,中断复位差值 (,DeltaValue ),必须为正数或 0。,,指令,ISignalDI,的限制,仍适用。,2024/11/28,中断指令-,ISignalAO,,ISignalAO,[\Single],,,Signal,,,Condition,,,HighValue,,,LowValue,,,DeltaValue,,,[\DPos],|,[\DNeg],,Interrupt,;,,[\Single]:,单次中断开关。,(,switch ),Signal
66、:,触发中断信号。,(,signalao ),Condition:,中断触发状态。,(,aiotrigg ),HighValue:,最大逻辑值。,(,num ),LowValue:,最小逻辑值。,(,num ),2024/11/28,中断指令-,ISignalAO,,DeltaValue:,中断复位差值,。,( num ),[\DPos]:,正值中断开关。,(,switch ),[\DNeg]:,负值中断开关。,(,switch ),Interrupt:,中断数据名称,。,( intnum ),,ISignalAO,[\Single],,,Signal,,,Condition,,,HighValue,,,LowValue,,,DeltaValue,,,[\DPos],|,[\DNeg],,Interrupt,;,2024/11/28,中断指令-,ISignalAO,中断触发状态:,,AIO_ABOVE_HIGH,,,模拟量信号逻辑值大于最大逻辑值 (,HighValue )。,,AIO_BELOW_HIGH,,,模拟量信号逻辑值小于最大逻辑值 (,HighValue )。,,AIO_A
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。