
ABB机器人标准指令详解.ppt
238页机机 器器 人人 标标 准准 指指 令令2024/8/18赋值指令赋值指令运动控制指令运动控制指令外轴激活指令外轴激活指令计数指令计数指令输入输出指令输入输出指令程序运行停止指令程序运行停止指令例行程序调用指令例行程序调用指令计时指令计时指令中断指令中断指令通信指令通信指令运动指令运动指令中断运动指令中断运动指令程序流程指令程序流程指令故障处理指令故障处理指令座标转换指令座标转换指令运动触发指令运动触发指令2024/8/18运动控制指令运动控制指令AccSetVelSet ConfJConfLSingAreaPathResolSoftActSoftDeact2024/8/18运动控制指令-运动控制指令-AccSetAccSet Acc, Ramp;Acc:机器人加速度百分率机器人加速度百分率 num ) Ramp:机器人加速度坡度机器人加速度坡度 num )应用:应用:当机器人运行速度改变时,对所产生的相应当机器人运行速度改变时,对所产生的相应加速度进行限制,使机器人高速运行时更平加速度进行限制,使机器人高速运行时更平缓,但会延长循环时间,系统默认值为缓,但会延长循环时间,系统默认值为 AccSet 100, 100; 。
2024/8/18运动控制指令-运动控制指令-AccSet实例:实例:限制:限制:l机器人加速度百分率值最小为机器人加速度百分率值最小为 20,小于,小于 20以以 20 计,机器人加速度坡度值最小为计,机器人加速度坡度值最小为 10,,小于小于 10 以以 10 计计l机器人冷启动,新程序载入与程序重置后,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值系统自动设置为默认值2024/8/18运动控制指令-运动控制指令-VelSetVelSet Override, Max;Override:机器人运行速率机器人运行速率 % num ) Max:最大运行速度最大运行速度 mm/s num )应用:应用:对机器人运行速度进行限制,对机器人运行速度进行限制,机器人运动指机器人运动指令中均带有运行速度,在执行运动速度控制令中均带有运行速度,在执行运动速度控制指令指令 VelSet 后,实际运行速度为运动指令规后,实际运行速度为运动指令规定的运行速度乘以机器人运行速率定的运行速度乘以机器人运行速率,,并且不并且不超过机器人最大运行速度,超过机器人最大运行速度,系统默认值为系统默认值为 VelSet 100, 5000; 。
2024/8/18运动控制指令-运动控制指令-VelSet500 mm/s800 mm/s10 s800 mm/s1000 mm/s1000 mm/s6.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 p3,v1000\V:=2000,z10,tool1;MoveL p4,v1000\T:=5,z10,tool1;2024/8/18运动控制指令-运动控制指令-VelSet限制:限制:l机器人冷启动,新程序载入与程序重置后,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值系统自动设置为默认值l机器人运动使用参变量机器人运动使用参变量 [\T] 时,最大运行速时,最大运行速度将不起作用度将不起作用lOverride 对速度数据对速度数据 (speeddata) 内所有项内所有项都起作用,例如:都起作用,例如:TCP、、方位及外轴。
但对方位及外轴但对焊接参数焊接参数 welddata 与与 seamdata 内机器人运内机器人运动速度不起作用动速度不起作用lMax 只对速度数据只对速度数据 (speeddata) 内内 TCP 这项这项起作用2024/8/18运动控制指令-运动控制指令-ConfJConfJ [\On]|[\Off];[\On]:启用轴配置数据启用轴配置数据 switch ) 关节运动时,机器人移动至绝对关节运动时,机器人移动至绝对 ModPos 点,如果无法到达,程序将停止运行点,如果无法到达,程序将停止运行[\Off]:默认轴配置数据默认轴配置数据 ( switch ) 关节运动时,机器人移动至关节运动时,机器人移动至 ModPos 点,点,轴配置数据默认为当前最接近值轴配置数据默认为当前最接近值2024/8/18运动控制指令-运动控制指令-ConfJ应用:应用:对机器人运行姿态进行限制与调整对机器人运行姿态进行限制与调整,,程序运程序运行时,使机器人运行姿态得到控制系统默行时,使机器人运行姿态得到控制系统默认值为认值为 ConfJ\On; 限制:限制:l机器人冷启动,新程序载入与程序重置后,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值。
系统自动设置为默认值实例:实例:ConfJ\On;…ConfJ\Off;2024/8/18运动控制指令-运动控制指令-ConfLConfL [\On]|[\Off];[\On]:启用轴配置数据启用轴配置数据 switch ) 直线运动时,机器人移动至绝对直线运动时,机器人移动至绝对 ModPos 点,如果无法到达,程序将停止运行点,如果无法到达,程序将停止运行[\Off]:默认轴配置数据默认轴配置数据 ( switch ) 直线运动时,机器人移动至直线运动时,机器人移动至 ModPos 点,点,轴配置数据默认为当前最接近值轴配置数据默认为当前最接近值2024/8/18运动控制指令-运动控制指令-ConfL应用:应用:对机器人运行姿态进行限制与调整对机器人运行姿态进行限制与调整,,程序运程序运行时,使机器人运行姿态得到控制系统默行时,使机器人运行姿态得到控制系统默认值为认值为 ConfL\On; 限制:限制:l机器人冷启动,新程序载入与程序重置后,机器人冷启动,新程序载入与程序重置后,系统自动设置为默认值系统自动设置为默认值实例:实例:ConfL\On;…ConfL\Off;2024/8/18运动控制指令-运动控制指令-SingAreaSingArea [\Wrist]|[\Off];[\Wrist]: 启用位置方位调整。
启用位置方位调整 switch ) 机器人运动时,为了避免死机,位置点允机器人运动时,为了避免死机,位置点允许其方位值有些许改变,例如:在五轴零许其方位值有些许改变,例如:在五轴零度时,机器人四六轴平行度时,机器人四六轴平行[\Off]:关闭位置方位调整关闭位置方位调整 ( switch ) 机器人运动时,不允许位置点方位改变,机器人运动时,不允许位置点方位改变,是机器人的默认状态是机器人的默认状态2024/8/18运动控制指令-运动控制指令-SingArea应用:应用:当前指令通过对机器人位置点姿态进行些许当前指令通过对机器人位置点姿态进行些许改变改变,,可以绝对避免机器人运行时死机,但可以绝对避免机器人运行时死机,但是,机器人运行路径会受影响,姿态得不到是,机器人运行路径会受影响,姿态得不到控制,通常使用于通过复杂姿态点,绝对不控制,通常使用于通过复杂姿态点,绝对不能作为工作点使用能作为工作点使用实例:实例:SingArea\Wrist;…SingArea\Off;2024/8/18运动控制指令-运动控制指令-SingArea限制:限制:l以下情况机器人将自动恢复默认值以下情况机器人将自动恢复默认值 SingArea\Off。
–机器人冷启动机器人冷启动–系统载入新的程序系统载入新的程序–程序重置程序重置 ( Start From Beginning ) 2024/8/18运动控制指令-运动控制指令-PathResolPathResol PathSampleTime;PathSampleTime:路径控制路径控制 % num )应用:应用:当前指令用于更改机器人主机系统参数,调当前指令用于更改机器人主机系统参数,调整机器人路径采样时间,从而达到控制机器整机器人路径采样时间,从而达到控制机器人运行路径的效果,通过此指令可以提高机人运行路径的效果,通过此指令可以提高机器人运动精度或缩短循环时间,路径控制默器人运动精度或缩短循环时间,路径控制默认值为认值为 100%,调整范围为,调整范围为25%--400%,路,路径控制百分比越小,运动精度越高,占用径控制百分比越小,运动精度越高,占用 CPU 资源也越多资源也越多2024/8/18运动控制指令-运动控制指令-PathResol实例:实例:MoveJ p1,v1000,fine,tool1;PathResol 150;机器人在临界运动状态机器人在临界运动状态 ( 重载、高速、路重载、高速、路径变化复杂情况下接近最大工作区域径变化复杂情况下接近最大工作区域 ),,增加路径控制值,可以避免频繁死机。
增加路径控制值,可以避免频繁死机外轴以很低的速度与机器人联动,增加路外轴以很低的速度与机器人联动,增加路径控制值,可以避免频繁死机径控制值,可以避免频繁死机机器人进行高频率摆动弧焊时,需要很高机器人进行高频率摆动弧焊时,需要很高的路径采样时间,需要减小路径控制值的路径采样时间,需要减小路径控制值机器人进行小圆周或小范围复杂运动时,机器人进行小圆周或小范围复杂运动时,需要很高精度,需要减小路径控制值需要很高精度,需要减小路径控制值2024/8/18运动控制指令-运动控制指令-PathResol限制:限制:l机器人必须在完全停止后才能更改路径控制机器人必须在完全停止后才能更改路径控制值,否则,机器人将默认一个停止点,并且值,否则,机器人将默认一个停止点,并且显示错误信息显示错误信息 50146l机器人正在更改路径控制值时,机器人被强机器人正在更改路径控制值时,机器人被强制停止运行,机器人将不能立刻恢复正常运制停止运行,机器人将不能立刻恢复正常运行行 ( Restart )l以下情况机器人将自动恢复默认值以下情况机器人将自动恢复默认值 100%–机器人冷启动机器人冷启动–系统载入新的程序系统载入新的程序。
–程序重置程序重置 ( Start From Beginning ) 2024/8/18运动控制指令-运动控制指令-SoftActSoftAct [\MechUnit,] Axis, Softness [\Ramp];应用:应用:当前指令用于软化机器人主机或外轴伺服系当前指令用于软化机器人主机或外轴伺服系统,软化值范围统,软化值范围 0%--100%,软化坡度范,软化坡度范围围>=100%,此指令必须与指令,此指令必须与指令 SoftDeact 同时使用,通常不使用于工作位置同时使用,通常不使用于工作位置[\MechUnit]:软化外轴名称软化外轴名称 mecunit ) Axis:软化转轴号码软化转轴号码 num ) Softness:软化值软化值 % num ) [\Ramp]:软化坡度软化坡度 % num )2024/8/18运动控制指令-运动控制指令-SoftAct实例:实例:SoftAct 3,20;SoftAct 1,90\Ramp:=150;SoftAct \MechUnit:=orbit1,1,40\Ramp:=120;限制:限制:l机器人被强制停止运行后,软伺服设置将自机器人被强制停止运行后,软伺服设置将自动失效。
动失效l同一转轴软化伺服不允许被连续设置两次同一转轴软化伺服不允许被连续设置两次…SoftAct 3,20;SoftAct 3,30;……SoftAct 3,20;MoveJ *,v100,fine,tool1;SoftAct 3,30;…2024/8/18运动控制指令-运动控制指令-SoftDeactSoftDeact [\Ramp];[\Ramp]: 软化坡度,软化坡度,>=100% num )应用:应用:当前指令用于使软化机器人主机或外轴伺服当前指令用于使软化机器人主机或外轴伺服系统指令系统指令 SoftAct 失效实例:实例:SoftAct 3,20;SoftDeact;SoftAct 1,90;SoftDeact\Ramp:=150;2024/8/18外轴激活指令外轴激活指令ActUnitDeactUnit2024/8/18外轴激活指令-外轴激活指令-ActUnitActUnit MecUnit;MecUnit:外轴名 mecunit )应用:应用:将机器人一个外轴激活,例如:当多个外轴将机器人一个外轴激活,例如:当多个外轴公用一个驱动板时,通过外轴激活指令公用一个驱动板时,通过外轴激活指令 ActUnit 选择当前所使用的外轴。
选择当前所使用的外轴2024/8/18外轴激活指令-外轴激活指令-ActUnitp10,外轴不动外轴不动p20,外轴联动外轴联动track_motionp30,外轴联动外轴联动 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;限制:限制:l不能在指令不能在指令 StorePath …RestoPath 内使用l不能在预置程序不能在预置程序 RESTART 内使用l不能在机器人转轴处于独立状态时使用不能在机器人转轴处于独立状态时使用2024/8/18外轴激活指令-外轴激活指令-DeactUnitDeactUnit MecUnit;MecUnit:外轴名 mecunit )应用:应用:使机器人一个外轴失效,例如:当多个外轴使机器人一个外轴失效,例如:当多个外轴公用一个驱动板时,通过外轴激活指令公用一个驱动板时,通过外轴激活指令 DeactUnit 使当前所使用的外轴失效。
使当前所使用的外轴失效2024/8/18外轴激活指令-外轴激活指令-DeactUnitp10,外轴不动外轴不动p20,外轴联动外轴联动track_motionp30,外轴联动外轴联动 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;限制:限制:l不能在指令不能在指令 StorePath …RestoPath 内使用l不能在预置程序不能在预置程序 RESTART 内使用2024/8/18计数指令计数指令AddClearIncrDecr2024/8/18计数指令-计数指令-AddAdd Name, AddValue;Name:数据名称数据名称 num ) AddValue:增加的值增加的值 num )应用:应用:在一个数字数据值上增加相应的值,可以用在一个数字数据值上增加相应的值,可以用赋值指令替代赋值指令替代 实例:实例:Add reg1,3; 等同于等同于reg1:=reg1+3;Add reg1,-reg2; 等同于等同于reg1:=reg1-reg2;2024/8/18计数指令-计数指令-ClearClear Name;Name:数据名称。
数据名称 num )应用:应用:将一个数字数据的值归零,可以用赋值指令将一个数字数据的值归零,可以用赋值指令替代 实例:实例:Clear reg1;等同于等同于reg1:=0;2024/8/18计数指令-计数指令-IncrIncr Name;Name:数据名称数据名称 num )应用:应用:在一个数字数据值上增加在一个数字数据值上增加 1,可以用赋值指,可以用赋值指令替代,一般用于产量计数令替代,一般用于产量计数实例:实例:Incr reg1;等同于等同于reg1:=reg1+1;2024/8/18计数指令-计数指令-DecrDecr Name;Name:数据名称数据名称 num )应用:应用:在一个数字数据值上增加在一个数字数据值上增加 1,可以用赋值指,可以用赋值指令替代,一般用于产量计数令替代,一般用于产量计数实例:实例:Decr reg1;等同于等同于reg1:=reg1-1;2024/8/18输入输出指令输入输出指令AliasIOInvertDOIODisableIOEnablePluseDOResetSetSetAOSetDOSetGOWaitDIWaitDO2024/8/18输入输出指令-输入输出指令-AliasIOAliasIO FromSignal, ToSignal;FromSignal:机器人系统参数内所定义的机器人系统参数内所定义的信号名称。
信号名称 signalxx or string ) ToSignal:机器人程序内所使用的信号机器人程序内所使用的信号名称名称 signalxx )应用:应用:对机器人系统参数内定义的信号名称进行化对机器人系统参数内定义的信号名称进行化名,给机器人程序使用,一般使用与名,给机器人程序使用,一般使用与 Loaded Modules 或或 Built-in Modules 内例如:多内例如:多台机器人使用相同系统参数台机器人使用相同系统参数2024/8/18输入输出指令-输入输出指令-AliasIOAlias_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;ENDPROC2024/8/18输入输出指令-输入输出指令-AliasIO限制:限制:l指令指令 AliasIO 必须放置在预置程序必须放置在预置程序 START内内或程序内使用相应信号之前。
或程序内使用相应信号之前l指令指令 AliasIO 在示教器上无法输入,只能通在示教器上无法输入,只能通过离线编程输入过离线编程输入l指令指令 AliasIO 需要软件需要软件 Developer’s Functions 支持2024/8/18输入输出指令-输入输出指令-InvertDOInvertDO Signal;Signal:输出信号名称输出信号名称 signaldo )应用:应用:将机器人输出信号值反转,将机器人输出信号值反转,0 为为 1,,1 为为 0,,在系统参数内也可定义在系统参数内也可定义实例:实例:InvertDO do15;2024/8/18输入输出指令-输入输出指令-InvertDO机器人程序内指令机器人程序内指令 InvertDO 被执行2024/8/18输入输出指令-输入输出指令-IODisableIODisable UnitName, MaxTime;UnitName:输入输出板名称输入输出板名称 num ) MaxTime:最长等待时间最长等待时间 ( num )应用:应用:通过指令可以使机器人输入输出板在程序运通过指令可以使机器人输入输出板在程序运行时自动失效,系统将一块输入输出板失效行时自动失效,系统将一块输入输出板失效需要需要 2--5 秒。
如果失效时间超过最长等待秒如果失效时间超过最长等待时间,系统将进入时间,系统将进入 Error Handler 处理,错处理,错误代码为误代码为 ERR_IODISABLE,,如果例行程如果例行程序没有序没有 Error Handler 机器人将停机报错机器人将停机报错2024/8/18输入输出指令-输入输出指令-IODisable输入输出板输入输出板 cell1 开始失效,开始失效,最长等待时间为最长等待时间为 0,肯定进入,肯定进入 Error Handler 处理利用机器人移动至利用机器人移动至 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=2 THEN RETRY; ENDIF ELSEIF ERRNO=ERR_EXCRTYMAX THEN ErrWrite “IODisable error”,“Restart the program”; Stop; ENDIFENDPROC2024/8/18输入输出指令-输入输出指令-IODisableError Handling::lERR_IODISABLE超过最长等待时间,系统仍未完成输入输出超过最长等待时间,系统仍未完成输入输出板失效。
板失效lERR_CALLIO_INTER系统在执行输入输出板失效与激活时,当前系统在执行输入输出板失效与激活时,当前输入输出板再次被失效或激活,形成冲突输入输出板再次被失效或激活,形成冲突lERR_NAME_INVALID输入输出板名称错误或无法进行失效与激活输入输出板名称错误或无法进行失效与激活操作2024/8/18输入输出指令-输入输出指令-IOEnableIOEnable UnitName, MaxTime;UnitName:输入输出板名称输入输出板名称 num ) MaxTime:最长等待时间最长等待时间 ( num )应用:应用:通过这指令可以使机器人输入输出板在程序通过这指令可以使机器人输入输出板在程序运行时自动激活,系统将一块输入输出板激运行时自动激活,系统将一块输入输出板激活需要活需要 2--5 秒如果激活时间超过最长等秒如果激活时间超过最长等待时间,系统将进入待时间,系统将进入 Error Handler 处理,处理,错误代码为错误代码为 ERR_IOENABLE,,如果例行程如果例行程序没有序没有 Error Handler 机器人将停机报错机器人将停机报错2024/8/18输入输出指令-输入输出指令-PulseDOPulseDO [\High][\PLength] Signal;[\High]:输出脉冲时,输出信号可以输出脉冲时,输出信号可以处在高电平。
处在高电平 switch ) [\Plength]:脉冲长度,脉冲长度,0.1s--32s,,默认默认值为值为 0.2s num ) Signal:输出信号名称输出信号名称 signaldo )应用:应用:机器人输出数字脉冲信号,一般作为运输链机器人输出数字脉冲信号,一般作为运输链完成信号或计数信号完成信号或计数信号2024/8/18输入输出指令-输入输出指令-PulseDO实例:实例:PulseDO PulseDO\High 脉冲长度脉冲长度脉冲长度脉冲长度PulseDO\High\Plength:=x PulseDO\High\Plength:=y 2024/8/18输入输出指令-输入输出指令-PulseDO限制:限制:l机器人脉冲输出长度小于机器人脉冲输出长度小于 0.01 秒,系统将报秒,系统将报错,不得不重新热启动错,不得不重新热启动例如:例如:WHILE TRUE DO PulseDO do5;;ENDWHILE2024/8/18输入输出指令-输入输出指令-IOEnable输入输出板输入输出板 cell1 开始激活开始激活,,最长等待时间为最长等待时间为 0,肯定进,肯定进入入 Error Handler 处理。
处理通过每次通过每次 1 秒进行计数,连续秒进行计数,连续5 次仍无法激活输入输出板,次仍无法激活输入输出板,执行指令执行指令 RAISE实例:实例:VAR num max_retry:=0;...IOEnable “cell1”,0;SetDO cell1_sig3,1;ERRORIF ERRNO=ERR_IOENABLE THEN IF max_retry<5 THEN WaitTime 1; max_retry:=max_retry+1; RETRY; ELSE RAISE; ENDIFENDIF2024/8/18输入输出指令-输入输出指令-IOEnableError Handling::lERR_IOENABLE超过最长等待时间,系统仍未完成输入输出超过最长等待时间,系统仍未完成输入输出板激活lERR_CALLIO_INTER系统在执行输入输出板失效与激活时,当前系统在执行输入输出板失效与激活时,当前输入输出板再次被失效或激活,形成冲突输入输出板再次被失效或激活,形成冲突lERR_NAME_INVALID输入输出板名称错误或无法进行失效与激活输入输出板名称错误或无法进行失效与激活操作。
操作2024/8/18输入输出指令-输入输出指令-ResetReset Signal;Signal:机器人输出信号名称机器人输出信号名称 signaldo )应用:应用:将机器人相应数字输出信号值置为将机器人相应数字输出信号值置为 0,与指,与指令令 Set 对应,是自动化重要组成部分对应,是自动化重要组成部分实例:实例:Reset do12;2024/8/18输入输出指令-输入输出指令-SetSet Signal;Signal:机器人输出信号名称机器人输出信号名称 signaldo )应用:应用:将机器人相应数字输出信号值置为将机器人相应数字输出信号值置为 1,与指,与指令令 Reset 对应,是自动化重要组成部分对应,是自动化重要组成部分实例:实例:Set do12;2024/8/18输入输出指令-输入输出指令-SetAOSetAO Signal, Value;Signal:模拟量输出信号名称模拟量输出信号名称 signalao ) Value:模拟量输出信号值模拟量输出信号值 num )应用:应用:机器人当前模拟量输出信号输出相应的值,机器人当前模拟量输出信号输出相应的值,例如:机器人焊接时,通过模拟量输出控制例如:机器人焊接时,通过模拟量输出控制焊接电压与送丝速度。
焊接电压与送丝速度2024/8/18输入输出指令-输入输出指令-SetAO实例:实例:SetAO ao2,5.5;SetAO weldcurr,curr_outp;2024/8/18输入输出指令-输入输出指令-SetDOSetDO [\SDelay] Signal, Value;[\SDelay]:延时输出时间延时输出时间 s num ) Signal:输出信号名称输出信号名称 signaldo ) Value:输出信号值输出信号值 dionum )应用:应用:设置机器人相应数字输出信号的值,与指令设置机器人相应数字输出信号的值,与指令 Set 与与 Reset 雷同,并且可以设置延时雷同,并且可以设置延时,,延延时范围为时范围为 0.1s--32s,,默认状态为没有延时默认状态为没有延时实例:实例:SetDO\SDelay:=0.2,weld,high;2024/8/18输入输出指令-输入输出指令-SetGOSetGO [\SDelay] Signal, Value;[\SDelay]:延时输出时间延时输出时间 s num ) Signal:输出信号名称输出信号名称 signaldo ) Value:输出信号值。
输出信号值 dionum )应用:应用:设置机器人相应组合输出信号的值设置机器人相应组合输出信号的值 ( 采用采用 8421 码码 ),可以设置延时输出,可以设置延时输出,,延时范围为延时范围为 0.1s--32s,,默认状态为没有延时默认状态为没有延时实例:实例:SetGO\SDelay:=0.2,go_Type,10;2024/8/18输入输出指令-输入输出指令-WaitDIWaitDI Signal, Value [\MaxTime][\TimeFlag];Signal:输入信号名称输入信号名称 signaldi ) Value:输入信号值输入信号值 dionum ) [\MaxTime]:最长等待时间最长等待时间 s num ) [\TimeFlag]:超时逻辑量超时逻辑量 bool )应用:应用:等待数字输入信号满足相应值,达到通信目等待数字输入信号满足相应值,达到通信目的,是自动化生产重要组成部分,例如:机的,是自动化生产重要组成部分,例如:机器人等待工件到位信号器人等待工件到位信号2024/8/18输入输出指令-输入输出指令-WaitDI实例:实例:PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1; …ENDPROCPROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitDI di_Ready,1\MaxTime:=5; …ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TPWrite “……”; RETRY; ELSE RAISE; ENDIFENDPROC机器人等待输机器人等待输入信号,直到入信号,直到信号信号 di_Ready 值为值为 1,才执行,才执行随后指令。
随后指令机器人等待相应输入机器人等待相应输入信号,如果信号,如果 5 秒内仍秒内仍没有等到信号没有等到信号 di_Ready 值为值为 1,自,自动进行动进行 Error Handler 处理,如果没有处理,如果没有 Error Handler,,机器机器人停机报错人停机报错 2024/8/18输入输出指令-输入输出指令-WaitDI实例:实例:PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,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;;机器人等到信号机器人等到信号 di_Ready 值为值为 1,此时,,此时,TimeFlag 值为值为 FALSE。
2024/8/18输入输出指令-输入输出指令-WaitDOWaitDO Signal, Value [\MaxTime][\TimeFlag];Signal:输入信号名称输入信号名称 signaldi ) Value:输入信号值输入信号值 dionum ) [\MaxTime]:最长等待时间最长等待时间 s num ) [\TimeFlag]:超时逻辑量超时逻辑量 bool )应用:应用:等待数字输出信号满足相应值,达到通信目等待数字输出信号满足相应值,达到通信目的,因为输出信号一般情况下受程序控制,的,因为输出信号一般情况下受程序控制,此指令很少使用此指令很少使用2024/8/18输入输出指令-输入输出指令-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_WAIT_MAXTIME THEN TPWrite “……”; RETRY; ELSE RAISE; ENDIFENDPROC2024/8/18输入输出指令-输入输出指令-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:=bTimeout; Incr nCounter; ENDWHILE …ENDPROC机器人等待到位信号,如果机器人等待到位信号,如果 1 秒内仍没有等到信号秒内仍没有等到信号 do03_Grip 值为值为 1,机器人自动执行随后指,机器人自动执行随后指令,但此时令,但此时 TimeFlag 值为值为 TRUE;;机器人等到信号机器人等到信号 do03_Grip 值为值为 1,此时,,此时,TimeFlag 值为值为 FALSE。
2024/8/18程序运行停止指令程序运行停止指令BreakExitStopExitCycle2024/8/18程序运行停止指令-程序运行停止指令-BreakBreak;应用:应用:机器人在当前指令行立刻停止运行,程序运机器人在当前指令行立刻停止运行,程序运行指针停留在下一行指令,可以用行指针停留在下一行指令,可以用 Start 键键继续运行机器人继续运行机器人实例:实例:…Break;…2024/8/18程序运行停止指令-程序运行停止指令-BreakP1P2P3区别:区别:MoveL p2,v100,z30,tool0; Break; ( Stop; )MoveL p3,v100,fine,tool0;StopBreak2024/8/18程序运行停止指令-程序运行停止指令-ExitExit;应用:应用:机器人在当前指令行停止运行,并且程序重机器人在当前指令行停止运行,并且程序重置,程序运行指针停留在主程序第一行置,程序运行指针停留在主程序第一行实例:实例:…Exit;…2024/8/18程序运行停止指令-程序运行停止指令-StopStop [\NoRegain];应用:应用:机器人在当前指令行停止运行,程序运行指机器人在当前指令行停止运行,程序运行指针停留在下一行指令,可以用针停留在下一行指令,可以用 Start 键继续键继续运行机器人,属于临时性停止。
如果机器人运行机器人,属于临时性停止如果机器人停止期间被手动移动后,然后直接启动机器停止期间被手动移动后,然后直接启动机器人,机器人将警告确认路径,如果此时采用人,机器人将警告确认路径,如果此时采用参变量参变量 [\NoRegain],,机器人将直接运行机器人将直接运行[\NoRegain]:路径恢复参数路径恢复参数 switch )2024/8/18程序运行停止指令-程序运行停止指令-StopP1P2P3区别:区别:MoveL p2,v100,z30,tool0; Stop; ( Break; )MoveL p3,v100,fine,tool0;StopBreak实例:实例:…Stop;…2024/8/18程序运行停止指令-程序运行停止指令-ExitCycleExitCycle;应用:应用:机器人在当前指令行停止运行,并且设定当机器人在当前指令行停止运行,并且设定当前循环结束,机器人自动从主程序第一行继前循环结束,机器人自动从主程序第一行继续运行下一个循环续运行下一个循环2024/8/18程序运行停止指令-程序运行停止指令-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 something intelligent ....ENDPROCTRAP error_trap TPWrite “I will start on the next item”; ExitCycle;ENDTRAP2024/8/18例行程序调用指令例行程序调用指令ProcCallCallByVar2024/8/18例行程序调用指令-例行程序调用指令-ProcCallProcedure {Argument};应用:应用:机器人调用相应例行程序,同时给带有参数机器人调用相应例行程序,同时给带有参数的例行程序中相应参数赋值。
的例行程序中相应参数赋值Procedure:例行程序名称例行程序名称 Identifier ) Argument:例行程序参数例行程序参数 All )实例:实例:Weldpipe1;Weldpipe2 10,lowspeed;Weldpipe3 10\speed:=20;2024/8/18程序运行停止指令-程序运行停止指令-ProcCall限制:限制:l机器人调用带参数的例行程序时,必须包括机器人调用带参数的例行程序时,必须包括所有强制性参数所有强制性参数l例行程序所有参数位置次序必须与例行程序例行程序所有参数位置次序必须与例行程序设置一致设置一致l例行程序所有参数数据类型必须与例行程序例行程序所有参数数据类型必须与例行程序设置一致设置一致l例行程序所有参数数据性质必须为例行程序所有参数数据性质必须为 Input,,Variable 或或 Persistent2024/8/18例行程序调用指令-例行程序调用指令-CallByVarCallByVar Name, Number;应用:应用:通过指令中相应数据,通过指令中相应数据,机器人调用相应例行机器人调用相应例行程序,但无法调用带有参数的例行程序。
程序,但无法调用带有参数的例行程序Name:例行程序名称第一部分例行程序名称第一部分 string ) Number: 例行程序名称第二部分例行程序名称第二部分 num )实例:实例:reg1:=Ginput(gi_Type);CallByVar “Proc”,reg1;2024/8/18程序运行停止指令-程序运行停止指令-CallByVar限制:限制:l不能调用带参数的例行程序不能调用带参数的例行程序l所有被调用的例行程序名称第一部分必须相所有被调用的例行程序名称第一部分必须相同,例如:同,例如:proc1、、proc2、、proc3l使用使用 CallByVar 指令调用例行程序比直接采指令调用例行程序比直接采用用 ProcCall 调用例行程序需要更长时间调用例行程序需要更长时间Error Handling::lERR_REFUNKPRC系统无法找到例行程序名称第一部分系统无法找到例行程序名称第一部分lERR_CALLPROC系统无法找到例行程序名称第二部分系统无法找到例行程序名称第二部分2024/8/18程序运行停止指令-程序运行停止指令-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;CallByVar “proc”,reg1;指令指令 CallByVar 不能调用带有参不能调用带有参数的例行程序。
数的例行程序通过通过 RAPID 结构结构仍可以调用带有参仍可以调用带有参数的例行程序数的例行程序2024/8/18计时指令计时指令ClkResetClkStartClkStop2024/8/18计时指令-计时指令-ClkResetClkReset Clock;应用:应用:将机器人相应时钟复位,常用于记录循环时将机器人相应时钟复位,常用于记录循环时间或机器人跟踪运输链间或机器人跟踪运输链Clock:时钟名称时钟名称 clock )实例:实例:ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock1;nCycleTime:=ClkRead(clock1);TPWrite “Last Cycle Time: ”\Num:=nCycleTime;2024/8/18计时指令-计时指令-ClkStartClkStart Clock;应用:应用:启动机器人相应时钟,常用于记录循环时间启动机器人相应时钟,常用于记录循环时间或机器人跟踪运输链机器人时钟启动后,或机器人跟踪运输链机器人时钟启动后,时钟不会因为机器人停止运行或关机而停止时钟不会因为机器人停止运行或关机而停止计时。
在机器人时钟运行时,指令计时在机器人时钟运行时,指令 ClkStop 与与 ClkReset 仍起作用仍起作用Clock:时钟名称时钟名称 clock )2024/8/18计时指令-计时指令-ClkStart限制:限制:l机器人时钟计时超过机器人时钟计时超过 4,294,967 秒,即秒,即 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/8/18计时指令-计时指令-ClkStopClkStop Clock;应用:应用:停止机器人相应时钟,常用于记录循环时间停止机器人相应时钟,常用于记录循环时间或机器人跟踪运输链或机器人跟踪运输链Clock:时钟名称时钟名称 clock )实例:实例:ClkReset clock1;ClkStart clock1;RunCycle;ClkStop clock1;nCycleTime:=ClkRead(clock1);TPWrite “Last Cycle Time: ”\Num:=nCycleTime;2024/8/18中断指令中断指令CONNECTIDeleteISignalDI ISignalDOISignalAI ISignalAOISleepIWatchIDisableIEnableITimer2024/8/18中断指令-中断指令-IDeleteIDelete Interrupt;应用:应用:将机器人将机器人相应中断数据与相应的中断处理程相应中断数据与相应的中断处理程序之间的连接去除。
序之间的连接去除Interrupt:中断数据名称中断数据名称 intnum )实例:实例:…CONNECT intInspect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;…IDelete intInspect;2024/8/18中断指令-中断指令-IDelete限制:限制:l执行指令执行指令 IDelete 后,当前中断数据的连接后,当前中断数据的连接被完全清除,如需再次使用这个中断数据必被完全清除,如需再次使用这个中断数据必须重新用指令须重新用指令 CONNECT 连接至相应的中连接至相应的中断处理程序断处理程序l在下列情况下,中断将被自动去除:在下列情况下,中断将被自动去除:–重新载入新的运行程序重新载入新的运行程序–机器人运行程序被重置,程序指针回到主机器人运行程序被重置,程序指针回到主程序第一行程序第一行 ( Start From Beginning )–机器人程序指针被移至任意一个例行程序机器人程序指针被移至任意一个例行程序第一行第一行 ( Move pp to Routine )2024/8/18中断指令-中断指令-ISignalDIISignalDI [\Single], Signal, TriggValue, Interrupt;应用:应用:使用相应的数字输入信号触发相应的中断功使用相应的数字输入信号触发相应的中断功能,能,必须同指令必须同指令 CONNECT 联合使用。
联合使用[\Single]:单次中断开关单次中断开关 switch ) Signal:触发中断信号触发中断信号 signaldi ) TriggValue:触发信号值触发信号值 dionum ) Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-ISignalDI 0 1 0 1 中断触发中断触发 中断触发中断触发实例:实例: …CONNECT int1 WITH iroutine1;ISignalDI\Signal di01,1,int1;…CONNECT int2 WITH iroutine2;ISignalDI di02,1,int1;…中断功能在单次触中断功能在单次触发触发后失效发触发后失效中断功能持续有效,只中断功能持续有效,只有在程序重置或运行指有在程序重置或运行指令令 IDelete 后才失效后才失效2024/8/18中断指令-中断指令-ISignalDI限制:限制:l当一个中断数据完成连接后,这个中断数据当一个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序不允许再次连接到任何中断处理程序 ( 包括包括已经连接的中断处理程序已经连接的中断处理程序 )。
如果需要再次如果需要再次连接至任何中断处理程序,必须先使用指令连接至任何中断处理程序,必须先使用指令 IDelete 将原连接去除将原连接去除PROC main() CONNECT int1 WITH r1; ISignalDI di01,1,int1; WHILE TRUE DO … ENDWHILEENDPROCPROC main() CONNECT int1 WITH r1; ISignalDI di01,1,int1; … IDelete int1;ENDPROC2024/8/18中断指令-中断指令-ISignalDOISignalDO [\Single], Signal, TriggValue, Interrupt;应用:应用:使用相应的数字输出信号触发相应的中断功使用相应的数字输出信号触发相应的中断功能,能,必须同指令必须同指令 CONNECT 联合使用联合使用[\Single]:单次中断开关单次中断开关 switch ) Signal:触发中断信号触发中断信号 signaldo ) TriggValue:触发信号值触发信号值 dionum ) Interrupt:中断数据名称中断数据名称。
intnum )2024/8/18中断指令-中断指令-ISignalDO实例:实例: …CONNECT int1 WITH iroutine1;ISignalDO\Signal do01,1,int1;…CONNECT int2 WITH iroutine2;ISignalDO do02,1,int1;… 0 1 0 1 中断触发中断触发 中断触发中断触发中断功能在单次触中断功能在单次触发触发后失效发触发后失效中断功能持续有效,只中断功能持续有效,只有在程序重置或运行指有在程序重置或运行指令令 IDelete 后才失效后才失效2024/8/18中断指令-中断指令-ISignalDO限制:限制:l当一个中断数据完成连接后,这个中断数据当一个中断数据完成连接后,这个中断数据不允许再次连接到任何中断处理程序不允许再次连接到任何中断处理程序 ( 包括包括已经连接的中断处理程序已经连接的中断处理程序 )如果需要再次如果需要再次连接至任何中断处理程序,必须先使用指令连接至任何中断处理程序,必须先使用指令 IDelete 将原连接去除将原连接去除PROC main() CONNECT int1 WITH r1; ISignalDO do01,1,int1; WHILE TRUE DO … ENDWHILEENDPROCPROC main() CONNECT int1 WITH r1; ISignalDO do01,1,int1; … IDelete int1;ENDPROC2024/8/18中断指令-中断指令-ISignalAIISignalAI [\Single], Signal, Condition, HighValue, LowValue, DeltaValue, [\DPos]|[\DNeg] Interrupt;[\Single]:单次中断开关。
单次中断开关 switch ) Signal:触发中断信号触发中断信号 signalai ) Condition:中断触发状态中断触发状态 aiotrigg ) HighValue:最大逻辑值最大逻辑值 num ) LowValue:最小逻辑值最小逻辑值 num )2024/8/18中断指令-中断指令-ISignalAIDeltaValue:中断复位差值中断复位差值 num ) [\DPos]:正值中断开关正值中断开关 switch ) [\DNeg]:负值中断开关负值中断开关 switch ) Interrupt:中断数据名称中断数据名称 intnum )ISignalAI [\Single], Signal, Condition, HighValue, LowValue, DeltaValue, [\DPos]|[\DNeg] Interrupt;2024/8/18中断指令-中断指令-ISignalAI中断触发状态:中断触发状态:lAIO_ABOVE_HIGH 模拟量信号逻辑值大于最大逻辑值模拟量信号逻辑值大于最大逻辑值 ( HighValue )lAIO_BELOW_HIGH 模拟量信号逻辑值小于最大逻辑值模拟量信号逻辑值小于最大逻辑值 ( HighValue )。
lAIO_ABOVE_LOW模拟量信号逻辑值大于最小逻辑值模拟量信号逻辑值大于最小逻辑值 ( LowValue )lAIO_BELOW_LOW模拟量信号逻辑值小于最小逻辑值模拟量信号逻辑值小于最小逻辑值 ( LowValue )lAIO_BETWEEN模拟量信号逻辑值处于最小逻辑值模拟量信号逻辑值处于最小逻辑值 ( LowValue ) 与与最大逻辑值最大逻辑值 ( HighValue )之间2024/8/18中断指令-中断指令-ISignalAI中断触发状态:中断触发状态:lAIO_OUTSIDE模拟量信号逻辑值大于最大逻辑值模拟量信号逻辑值大于最大逻辑值 ( HighValue ) 或或小于最小逻辑值小于最小逻辑值 ( LowValue ) lAIO_ALWAYS总是触发中断,与模拟量信号逻辑值处于最小逻辑总是触发中断,与模拟量信号逻辑值处于最小逻辑值值 ( LowValue ) 与最大逻辑值与最大逻辑值 ( HighValue )无关应用:应用:使用相应的模拟量输入信号触发相应的中断使用相应的模拟量输入信号触发相应的中断功能,功能,必须同指令必须同指令 CONNECT 联合使用。
联合使用2024/8/18中断指令-中断指令-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;ISignalAI ai3,AIO_BETWEEN,1.5,0.5,0.1,int3;…中断功能在单次触中断功能在单次触发触发后失效发触发后失效中断功能持续有效,只中断功能持续有效,只有在程序重置或运行指有在程序重置或运行指令令 IDelete 后才失效后才失效2024/8/18中断指令-中断指令-ISignalAI判断中断条件判断中断条件 ( Condition, HighValue, LowValue )TRUE如果没有参变量如果没有参变量 [\DPos] 与与 [\Dneg]ABS(CurrentValue - RefValue) > DeltaValueRefValue := CurrentValueFALSE如果使用参变量如果使用参变量 [\DPos](CurrentValue - RefValue) > DeltaValueFALSE如果使用参变量如果使用参变量 [\DNeg](RefValue - CurrentValue) > DeltaValueFALSEABS(CurrentValue - RefValue) > DeltaValueFALSERefValue := CurrentValue执行中断处理执行中断处理TRUETRUETRUERefValue := CurrentValueFALSETRUE2024/8/18中断指令-中断指令-ISignalAI限制:限制:l当前最大逻辑值当前最大逻辑值 ( HighValue ) 与最小逻辑与最小逻辑值值 ( LowValue ) 必须在模拟量信号所定义必须在模拟量信号所定义的逻辑值范围内。
的逻辑值范围内l最大逻辑值最大逻辑值 ( HighValue ) 必须大于最小逻必须大于最小逻辑值辑值 ( LowValue )l中断复位差值中断复位差值 ( DeltaValue ) 必须为正数或必须为正数或 0l指令指令 ISignalDI 的限制,仍适用的限制,仍适用 2024/8/18中断指令-中断指令-ISignalAOISignalAO [\Single], Signal, Condition, HighValue, LowValue, DeltaValue, [\DPos]|[\DNeg] Interrupt;[\Single]:单次中断开关单次中断开关 switch ) Signal:触发中断信号触发中断信号 signalao ) Condition:中断触发状态中断触发状态 aiotrigg ) HighValue:最大逻辑值最大逻辑值 num ) LowValue:最小逻辑值最小逻辑值 num )2024/8/18中断指令-中断指令-ISignalAODeltaValue:中断复位差值中断复位差值 num ) [\DPos]:正值中断开关正值中断开关 switch ) [\DNeg]:负值中断开关。
负值中断开关 switch ) Interrupt:中断数据名称中断数据名称 intnum )ISignalAO [\Single], Signal, Condition, HighValue, LowValue, DeltaValue, [\DPos]|[\DNeg] Interrupt;2024/8/18中断指令-中断指令-ISignalAO中断触发状态:中断触发状态:lAIO_ABOVE_HIGH 模拟量信号逻辑值大于最大逻辑值模拟量信号逻辑值大于最大逻辑值 ( HighValue )lAIO_BELOW_HIGH 模拟量信号逻辑值小于最大逻辑值模拟量信号逻辑值小于最大逻辑值 ( HighValue )lAIO_ABOVE_LOW模拟量信号逻辑值大于最小逻辑值模拟量信号逻辑值大于最小逻辑值 ( LowValue )lAIO_BELOW_LOW模拟量信号逻辑值小于最小逻辑值模拟量信号逻辑值小于最小逻辑值 ( LowValue )lAIO_BETWEEN模拟量信号逻辑值处于最小逻辑值模拟量信号逻辑值处于最小逻辑值 ( LowValue ) 与与最大逻辑值最大逻辑值 ( HighValue )之间。
之间2024/8/18中断指令-中断指令-ISignalAO中断触发状态:中断触发状态:lAIO_OUTSIDE模拟量信号逻辑值大于最大逻辑值模拟量信号逻辑值大于最大逻辑值 ( HighValue ) 或或小于最小逻辑值小于最小逻辑值 ( LowValue ) lAIO_ALWAYS总是触发中断,与模拟量信号逻辑值处于最小逻辑总是触发中断,与模拟量信号逻辑值处于最小逻辑值值 ( LowValue ) 与最大逻辑值与最大逻辑值 ( HighValue )无关应用:应用:使用相应的模拟量输出信号触发相应的中断使用相应的模拟量输出信号触发相应的中断功能,功能,必须同指令必须同指令 CONNECT 联合使用联合使用2024/8/18中断指令-中断指令-ISignalAO实例:实例: …CONNECT int1 WITH iroutine1;ISignalAO\Single ao1,AIO_BETWEEN,2,1,0,int1;…CONNECT int2 WITH iroutine2;ISignalAO ao2,AIO_BETWEEN,1.5,0.5,0,int2;…CONNECT int3 WITH iroutine3;ISignalAO ao3,AIO_BETWEEN,1.5,0.5,0.1,int3;…中断功能在单次触中断功能在单次触发触发后失效。
发触发后失效中断功能持续有效,只中断功能持续有效,只有在程序重置或运行指有在程序重置或运行指令令 IDelete 后才失效后才失效2024/8/18中断指令-中断指令-ISignalAO判断中断条件判断中断条件 ( Condition, HighValue, LowValue )TRUE如果没有参变量如果没有参变量 [\DPos] 与与 [\Dneg]ABS(CurrentValue - RefValue) > DeltaValueRefValue := CurrentValueFALSE如果使用参变量如果使用参变量 [\DPos](CurrentValue - RefValue) > DeltaValueFALSE如果使用参变量如果使用参变量 [\DNeg](RefValue - CurrentValue) > DeltaValueFALSEABS(CurrentValue - RefValue) > DeltaValueFALSERefValue := CurrentValue执行中断处理执行中断处理TRUETRUETRUERefValue := CurrentValueFALSETRUE2024/8/18中断指令-中断指令-ISignalAO限制:限制:l当前最大逻辑值当前最大逻辑值 ( HighValue ) 与最小逻辑与最小逻辑值值 ( LowValue ) 必须在模拟量信号所定义必须在模拟量信号所定义的逻辑值范围内。
的逻辑值范围内l最大逻辑值最大逻辑值 ( HighValue ) 必须大于最小逻必须大于最小逻辑值辑值 ( LowValue )l中断复位差值中断复位差值 ( DeltaValue ) 必须为正数或必须为正数或 0l指令指令 ISignalDO 的限制,仍适用的限制,仍适用 2024/8/18中断指令-中断指令-ISleepISleep Interrupt;应用:应用:使机器人使机器人相应中断数据暂时失效,直到执行相应中断数据暂时失效,直到执行指令指令 IWatch 后才恢复后才恢复Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-ISleepError Handler::lERR_UNKINO无法找到当前的中断数据无法找到当前的中断数据实例:实例:…CONNECT intInspect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;……ISleep intInspect;…IWatch intInspect;…中断监控中断监控中断失效中断失效中断监控中断监控2024/8/18中断指令-中断指令-IWatchIWatch Interrupt;应用:应用:激活机器人已失效的激活机器人已失效的相应中断数据,正常情相应中断数据,正常情况下,与指令况下,与指令 ISleep 配合使用。
配合使用Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-IWatchError Handler::lERR_UNKINO无法找到当前的中断数据无法找到当前的中断数据实例:实例:…CONNECT intInspect WITH rAlarm;ISignalDI di01_Vacuum,0,intInspect;……ISleep intInspect;…IWatch intInspect;…中断失效中断失效中断监控中断监控中断监控中断监控2024/8/18中断指令-中断指令-IDisableIDisable Interrupt;应用:应用:使机器人使机器人相应中断功能暂时不执行,直到执相应中断功能暂时不执行,直到执行指令行指令 IEnable 后,才进入中断处理程序,后,才进入中断处理程序,此指令使用于机器人正在执行不希望被打断此指令使用于机器人正在执行不希望被打断的操作期间,例如:通过通信口读写数据的操作期间,例如:通过通信口读写数据Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-IDisable实例:实例:…IDisable;FOR i FROM 1 TO 100 DO character[i]:=ReadBin(sensor);ENDFORIEnable;…2024/8/18中断指令-中断指令-IEnableIEnable Interrupt;应用:应用:开始执行被机器人开始执行被机器人暂停的相应中断功能,正暂停的相应中断功能,正常情况下,与指令常情况下,与指令 IDisable 配合使用,此指配合使用,此指令使用于机器人正在执行不希望被打断的操令使用于机器人正在执行不希望被打断的操作期间,例如:通过通信口读写数据。
作期间,例如:通过通信口读写数据Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-IEnable实例:实例:…IDisable;FOR i FROM 1 TO 100 DO character[i]:=ReadBin(sensor);ENDFORIEnable;…2024/8/18中断指令-中断指令-ITimerITimer [\Single], Time, Interrupt;应用:应用:定时处理机器人定时处理机器人相应中断数据,此指令常使相应中断数据,此指令常使用于通过通信口读写数据等场合用于通过通信口读写数据等场合[\Single]:单次中断开关单次中断开关 switch ) Time:触发中断时间触发中断时间 s num ) Interrupt:中断数据名称中断数据名称 intnum )2024/8/18中断指令-中断指令-ITimer实例:实例: … CONNECT timeint WITH check_serialch; ITimer 60,timeint; …TRAP check_serialch WriteBin ch1,buffer,1; IF ReadBin(ch1\Time:=5)<0 THEN TPWrite “Communication is broken”; EXIT; ENDIFENDTRAP2024/8/18通信指令通信指令 ( 人机对话人机对话 )TPEraseTPWriteTPReadFKTPReadNumErrWriteTPShow2024/8/18通信指令-通信指令-TPEraseTPErase;应用:应用:清屏指令,清屏指令,将机器人示教器屏幕上所有显示将机器人示教器屏幕上所有显示清除,是机器人屏幕显示重要组成部分。
清除,是机器人屏幕显示重要组成部分实例:实例:TPErase;TPWrite “ ABB Robotics ”;TPWrite “______________________”;2024/8/18通信指令-通信指令-TPWriteTPWrite String [\Num]|[\Bool]| [\Pos]|[\Orient];应用:应用:在示教器屏幕上显示相应字符串,字符串最在示教器屏幕上显示相应字符串,字符串最长长 80 个字节,屏幕每行可显示个字节,屏幕每行可显示 40 个字节在字符串后可显示相应参变量在字符串后可显示相应参变量String:屏幕显示的字符串屏幕显示的字符串 string ) [\Num]: 屏幕显示数字数据值屏幕显示数字数据值 num ) [\Bool]:屏幕显示逻辑量数据屏幕显示逻辑量数据 bool ) [\Pos]:显示位置值显示位置值 X Y Z pos ) [\Orient]:显示方位显示方位 q1 q2 q3 q4 orient )2024/8/18通信指令-通信指令-TPWrite实例:实例:TPWrite string1;TPWrite “Cycle Time = ”\Num:=nTime;限制:限制:l每个每个 TPWrite 指令只允许单独使用参变量,指令只允许单独使用参变量,不允许同时使用。
不允许同时使用l参变量值参变量值 < 0.000005 或或 > 0.999995 将圆整Argument Value Text string\Num 23 "23"\Num 1.141367 "1.14137"\Bool TRUE "TRUE"\Pos [1817.3,905.17,879.11] "[1817.3,905.17,879.11]"\Orient [0.96593,0,0.25882,0] "[0.96593,0,0.25882,0]"2024/8/18通信指令-通信指令-TPReadFKTPReadFK Answer, Text, FK1, FK2, FK3, FK4, FK5 [\MaxTime] [\DIBreak][\BreakFlag];Answer:数字赋值数字赋值 1--5 num ) Text:屏幕字符串屏幕字符串 string ) FKx:功能键字符串功能键字符串 string ) [\MaxTime]:最长等待时间最长等待时间 s num ) [\DIBreak]:输入信号控制输入信号控制 signaldi ) [\BreakFlag]:指令状态控制。
指令状态控制 errnum )2024/8/18通信指令-通信指令-TPReadFK应用:应用:在示教器屏幕上显示相应字符串在示教器屏幕上显示相应字符串 ( Text ),,字符串最长字符串最长 80 个字节,屏幕每行可显示个字节,屏幕每行可显示 40 个字节,同时在个字节,同时在 5 个功能键上显示相应字符个功能键上显示相应字符串串 ( FKx ),,字符串最长字符串最长 7 个字节,通过选个字节,通过选择按相应功能键,给数字变量择按相应功能键,给数字变量 ( Answer ) 赋赋值值 1--5,通过这种功能,当前指令可以进,通过这种功能,当前指令可以进行数据选择,但必须有人参与行数据选择,但必须有人参与,,无法达到自无法达到自动化,已被输入输出信号替代另外,在执动化,已被输入输出信号替代另外,在执行当前指令时,必须等到功能键输入,才执行当前指令时,必须等到功能键输入,才执行以后指令,除非选择相应参变量通过这行以后指令,除非选择相应参变量通过这种功能,当前指令常用于错误处理等场合种功能,当前指令常用于错误处理等场合2024/8/18通信指令-通信指令-TPReadFK实例:实例:TPReadFK reg1,“More?”,stEmpty,stEmpty,stEmpty,“Yes”,“No”;2024/8/18通信指令-通信指令-TPReadFK参变量参变量::l[\MaxTime]机器人执行当前指令等待时间超过最长等待机器人执行当前指令等待时间超过最长等待时间,机器人将停机报错,如果同时采用参时间,机器人将停机报错,如果同时采用参变量变量 [ BreakFlag ],,机器人将继续执行以后机器人将继续执行以后指令,并且给出相应错误数据。
指令,并且给出相应错误数据l[\DIBreak]机器人通过输入信号来继续执行以后指令,机器人通过输入信号来继续执行以后指令,并且给出相应错误数据并且给出相应错误数据l[\BreakFlag]–ERR_TP_MAXTIME–ERR_TP_ DIBREAK2024/8/18通信指令-通信指令-TPReadNumTPReadNum Answer, String, [\MaxTime][\DIBreak][\BreakFlag];Answer:数字赋值数字赋值 num ) String:屏幕字符串屏幕字符串 string ) [\MaxTime]:最长等待时间最长等待时间 s num ) [\DIBreak]:输入信号控制输入信号控制 signaldi ) [\BreakFlag]:指令状态控制指令状态控制 errnum )2024/8/18通信指令-通信指令-TPReadNum应用:应用:在示教器屏幕上显示相应字符串在示教器屏幕上显示相应字符串 ( String ),,字符串最长字符串最长 80 个字节,屏幕每行可显示个字节,屏幕每行可显示 40 个字节,同时在个字节,同时在 功能键上显示功能键上显示 OK,,通过数通过数字键输入相应数值,给数字变量字键输入相应数值,给数字变量 ( Answer ) 赋值,通过这种功能,当前指令可以进行数赋值,通过这种功能,当前指令可以进行数字数据赋值,但必须有人参与字数据赋值,但必须有人参与,,无法达到自无法达到自动化,已被输入输出信号替代。
动化,已被输入输出信号替代实例:实例:TPReadNum reg1,“How many units ?”; FOR i FROM 1 TO reg1 DO produce_part;ENDFOR2024/8/18通信指令-通信指令-TPReadNum参变量参变量::l[\MaxTime]机器人执行当前指令等待时间超过最长等待机器人执行当前指令等待时间超过最长等待时间,机器人将停机报错,如果同时采用参时间,机器人将停机报错,如果同时采用参变量变量 [ BreakFlag ],,机器人将继续执行以后机器人将继续执行以后指令,并且给出相应错误数据指令,并且给出相应错误数据l[\DIBreak]机器人通过输入信号来继续执行以后指令,机器人通过输入信号来继续执行以后指令,并且给出相应错误数据并且给出相应错误数据l[\BreakFlag]–ERR_TP_MAXTIME–ERR_TP_ DIBREAK2024/8/18通信指令-通信指令-ErrWriteErrWrite [\W], Header, Reason [\RL2][\RL3][\RL4];[\W]:事件记录开关事件记录开关 switch ) Header: 错误信息标题。
错误信息标题 string ) Reason: 错误信息原因错误信息原因 string ) [\RL2]:附加错误信息原因附加错误信息原因 string ) [\RL3]:附加错误信息原因附加错误信息原因 string ) [\RL4]:附加错误信息原因附加错误信息原因 string )2024/8/18通信指令-通信指令-ErrWrite应用:应用:在示教器屏幕上显示标准出错界面,错误代在示教器屏幕上显示标准出错界面,错误代码为码为 80001,标题最长,标题最长 24 个字符,原因最长个字符,原因最长 40 个字符,如果由多种错误原因,可使用参个字符,如果由多种错误原因,可使用参变量变量 [\RL2] [\RL3] [\RL4],,每种原因最长每种原因最长 40 个字符,使用参变量个字符,使用参变量 [\W],,错误代码为错误代码为 80002,并且只在事件清单中记录,不在示,并且只在事件清单中记录,不在示教器屏幕上显示当前指令只显示或记录出教器屏幕上显示当前指令只显示或记录出错信息,不影响机器人正常运行,在示教器错信息,不影响机器人正常运行,在示教器屏幕上显示的信息,需要按功能键屏幕上显示的信息,需要按功能键 OK 确认确认并清除,如需影响机器人运行,使用指令并清除,如需影响机器人运行,使用指令 Stop、、EXIT、、TPReadFK 等。
等2024/8/18通信指令-通信指令-ErrWrite实例:实例:……ErrWrite\W,“Search error”,“No hit for the first search”;ErrWrite “PLC error”,“Fatal error in PLC”\RL2:=”Call service”;Stop;…限制:限制:l每个每个 ErrWrite 指令最多能显示指令最多能显示 145 个字节 ( Header + Reason + \RL2 + \RL3 + \RL4 )2024/8/18通信指令-通信指令-TPShowTPShow Window;Window: 显示相应示教器窗口显示相应示教器窗口 tpnum )lTP_PROGRAM 自动模式下,显示生产窗口自动模式下,显示生产窗口 手动模式下,显示测试窗口手动模式下,显示测试窗口lTP_LATEST 显示当前窗口的前一个窗口显示当前窗口的前一个窗口lTP_SCREENVIEWER 显示显示 Screen Viewer 窗口,需要相应软件窗口,需要相应软件2024/8/18通信指令-通信指令-TPShow实例:实例:…TPShow TP_PROGRAM;TPShow TP_LATEST;…应用:应用:机器人在示教器屏幕上显示相应界面,通常机器人在示教器屏幕上显示相应界面,通常情况下与机器人附加软件情况下与机器人附加软件 Screen Viewer 配配合使用。
合使用2024/8/18运动指令运动指令MoveJMoveL MoveCMoveJDO MoveLDO MoveCDO MoveJSyncMoveLSync MoveCSyncMoveAbsJ2024/8/18运动指令-运动指令-MoveJMoveJ [\Conc,] ToPoint, Speed [\V]| [\T], Zone [\Z][\Inpos], Tool [\WObj];[\Conc]: 协作运动开关协作运动开关 switch ) ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\V]:特殊运行速度特殊运行速度 mm/s num ) [\T]:运行时间控制运行时间控制 s num )2024/8/18运动指令-运动指令-MoveJZone:运行转角数据运行转角数据 zonedata ) [\Z]:特殊运行转角特殊运行转角 mm num )[\Inpos]: 运行停止点数据运行停止点数据 stoppointdata )Tool:工具中心点工具中心点 ( TCP )。
tooldata )[\Wobj]: 工件座标系工件座标系 wobjdata )MoveJ [\Conc,] ToPoint, Speed [\V]| [\T], Zone [\Z][\Inpos], Tool [\WObj];2024/8/18运动指令-运动指令-MoveJ应用:应用:机器人以最快捷的方式运动至目标点,机器机器人以最快捷的方式运动至目标点,机器人运动状态不完全可控,但运动路径保持唯人运动状态不完全可控,但运动路径保持唯一,常用于机器人在空间大范围移动一,常用于机器人在空间大范围移动实例:实例:MoveJ p1,v2000,fine,grip1;MoveJ\Conc,p1,v2000,fine,grip1;MoveJ p1,v2000\V:=2200,z40\Z:=45,grip1;MoveJ p1,v2000,z40,grip1\WObj:=wobjTable;MoveJ p1,v2000,fine\Inpos:=inpos50,grip1;2024/8/18运动指令-运动指令-MoveJ2024/8/18运动指令-运动指令-MoveLMoveL [\Conc,] ToPoint, Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj][\Corr];[\Conc]: 协作运动开关协作运动开关。
switch ) ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\V]:特殊运行速度特殊运行速度 mm/s num ) [\T]:运行时间控制运行时间控制 s num )2024/8/18运动指令-运动指令-MoveLZone:运行转角数据运行转角数据 zonedata ) [\Z]:特殊运行转角特殊运行转角 mm num )[\Inpos]: 运行停止点数据运行停止点数据 stoppointdata )Tool:工具中心点工具中心点 ( TCP ) tooldata )[\Wobj]: 工件座标系工件座标系 wobjdata )[\Corr]: 修正目标点开关修正目标点开关 switch )MoveL [\Conc,] ToPoint, Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj][\Corr];2024/8/18运动指令-运动指令-MoveL应用:应用:机器人以线性移动方式运动至目标点,当前机器人以线性移动方式运动至目标点,当前点与目标点两点决定一条直线,机器人运动点与目标点两点决定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现死状态可控,运动路径保持唯一,可能出现死点,常用于机器人在工作状态移动。
点,常用于机器人在工作状态移动实例:实例:MoveL p1,v2000,fine,grip1;MoveL\Conc,p1,v2000,fine,grip1;MoveL p1,v2000\V:=2200,z40\Z:=45,grip1;MoveL p1,v2000,z40,grip1\WObj:=wobjTable;MoveL p1,v2000,fine\Inpos:=inpos50,grip1; MoveL p1,v2000,fine,grip1\Corr;2024/8/18运动指令-运动指令-MoveL2024/8/18运动指令-运动指令-MoveCMoveC [\Conc,] CirPoint, ToPoint, Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj][\Corr];[\Conc]: 协作运动开关协作运动开关 switch ) CirPoint:中间点,默认为中间点,默认为 * * robotarget ) ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据。
speeddata ) [\V]:特殊运行速度特殊运行速度 mm/s num ) [\T]:运行时间控制运行时间控制 s num )2024/8/18运动指令-运动指令-MoveCZone:运行转角数据运行转角数据 zonedata ) [\Z]:特殊运行转角特殊运行转角 mm num )[\Inpos]: 运行停止点数据运行停止点数据 stoppointdata )Tool:工具中心点工具中心点 ( TCP ) tooldata )[\Wobj]: 工件座标系工件座标系 wobjdata )[\Corr]: 修正目标点开关修正目标点开关 switch )MoveC [\Conc,] CirPoint, ToPoint, Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj][\Corr];2024/8/18运动指令-运动指令-MoveC应用:应用:机器人通过中间点以圆弧移动方式运动至目机器人通过中间点以圆弧移动方式运动至目标点,当前点、中间点与目标点三点决定一标点,当前点、中间点与目标点三点决定一段圆弧,机器人运动状态可控,运动路径保段圆弧,机器人运动状态可控,运动路径保持唯一,常用于机器人在工作状态移动。
持唯一,常用于机器人在工作状态移动2024/8/18运动指令-运动指令-MoveC限制:限制:l不可能通过一个不可能通过一个 MoveC 指令完成一个圆指令完成一个圆MoveL p1,v500,fine,tool1;MoveC p2,p3,v500,z20,tool1;MoveC p4,p1,v500,fine,tool1;实例:实例:MoveC p1,p2,v2000,fine,grip1;MoveC\Conc,p1,p2,v200\V:=500,z1\Z:=5,grip1;MoveC p1,p2,v2000,z40,grip1\WObj:=wobjTable;MoveC p1,p2,v2000,fine\Inpos:=inpos50,grip1; MoveC p1,p2,v2000,fine,grip1\Corr;2024/8/18运动指令-运动指令-MoveJDOMoveJDO ToPoint, Speed [\T], Zone, Tool [\WObj], Signal, Value;ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据。
运行速度数据 speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata ) Tool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Signal:数字输出信号名称数字输出信号名称 signaldo ) Value:数字输出信号值数字输出信号值 dionum )2024/8/18运动指令-运动指令-MoveJDO应用:应用:机器人以最快捷的方式运动至目标点,并且机器人以最快捷的方式运动至目标点,并且在目标点将相应输出信号设置为相应值,在在目标点将相应输出信号设置为相应值,在指令指令 MoveJ 基础上增加信号输出功能基础上增加信号输出功能2024/8/18运动指令-运动指令-MoveLDOMoveLDO ToPoint, Speed [\T], Zone, Tool [\WObj], Signal, Value;ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据。
speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata ) Tool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Signal:数字输出信号名称数字输出信号名称 signaldo ) Value:数字输出信号值数字输出信号值 dionum )2024/8/18运动指令-运动指令-MoveLDO应用:应用:机器人以线性运动的方式运动至目标点,并机器人以线性运动的方式运动至目标点,并且在目标点将相应输出信号设置为相应值,且在目标点将相应输出信号设置为相应值,在指令在指令 MoveL 基础上增加信号输出功能基础上增加信号输出功能2024/8/18运动指令-运动指令-MoveCDOMoveCDO CirPoint, ToPoint, Speed [\T], Zone, Tool [\WObj], Signal, Value;CirPoint:中间点,默认为中间点,默认为 * * robotarget ) ToPoint: 目标点,默认为目标点,默认为 * *。
robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata )2024/8/18运动指令-运动指令-MoveCDOTool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Signal:数字输出信号名称数字输出信号名称 signaldo ) Value:数字输出信号值数字输出信号值 dionum )MoveCDO CirPoint, ToPoint, Speed [\T], Zone, Tool [\WObj], Signal, Value;2024/8/18运动指令-运动指令-MoveCDO应用:应用:机器人通过中间点以圆弧移动方式运动至目机器人通过中间点以圆弧移动方式运动至目标点,并且在目标点将相应输出信号设置为标点,并且在目标点将相应输出信号设置为相应值,在指令相应值,在指令 MoveC 基础上增加信号输基础上增加信号输出功能2024/8/18运动指令-运动指令-MoveJSyncMoveJSync ToPoint, Speed [\T], Zone, Tool [\WObj], Proc;ToPoint: 目标点,默认为目标点,默认为 * *。
robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata ) Tool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Proc:例行程序名称例行程序名称 string )2024/8/18运动指令-运动指令-MoveJSync应用:应用:机器人以最快捷的方式运动至目标点,并且机器人以最快捷的方式运动至目标点,并且在目标点调用相应例行程序,在指令在目标点调用相应例行程序,在指令 MoveJ 基础上增加例行程序调用功能基础上增加例行程序调用功能2024/8/18运动指令-运动指令-MoveJSync限制:限制:l用指令用指令 Stop 停止当前指令运行,会出现一个停止当前指令运行,会出现一个错误信息,如需避免,采用指令错误信息,如需避免,采用指令 StopInstrl不能使用指令不能使用指令 MoveJSync 来调用中断处理程来调用中断处理程序序 TRAPl不能单步执行指令不能单步执行指令 MoveJSync 所调用的例行所调用的例行程序程序 PROC。
2024/8/18运动指令-运动指令-MoveLSyncMoveLSync ToPoint, Speed [\T], Zone, Tool [\WObj], Proc;ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata ) Tool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Proc:例行程序名称例行程序名称 string )2024/8/18运动指令-运动指令-MoveLSync应用:应用:机器人以线性运动的方式运动至目标点,机器人以线性运动的方式运动至目标点,并且在目标点调用相应例行程序,在指令并且在目标点调用相应例行程序,在指令 MoveL 基础上增加例行程序调用功能基础上增加例行程序调用功能2024/8/18运动指令-运动指令-MoveLSync限制:限制:l用指令用指令 Stop 停止当前指令运行,会出现一个停止当前指令运行,会出现一个错误信息,如需避免,采用指令错误信息,如需避免,采用指令 StopInstr。
l不能使用指令不能使用指令 MoveLSync 来调用中断处理来调用中断处理程序程序 TRAPl不能单步执行指令不能单步执行指令 MoveLSync 所调用的例所调用的例行程序行程序 PROC2024/8/18运动指令-运动指令-MoveCSyncMoveCSync CirPoint, ToPoint, Speed [\T], Zone, Tool [\WObj], Proc;CirPoint:中间点,默认为中间点,默认为 * * robotarget ) ToPoint: 目标点,默认为目标点,默认为 * * robotarget ) Speed:运行速度数据运行速度数据 speeddata ) [\T]:运行时间控制运行时间控制 s num ) Zone:运行转角数据运行转角数据 zonedata ) Tool:工具中心点工具中心点 ( TCP ) tooldata ) [\Wobj]: 工件座标系工件座标系 wobjdata ) Proc:例行程序名称例行程序名称 string )2024/8/18运动指令-运动指令-MoveCSync应用:应用:机器人通过中间点以圆弧移动方式运动至目机器人通过中间点以圆弧移动方式运动至目标点,并且在目标点调用相应例行程序,在标点,并且在目标点调用相应例行程序,在指令指令 MoveC 基础上增加例行程序调用功能。
基础上增加例行程序调用功能2024/8/18运动指令-运动指令-MoveCSync限制:限制:l用指令用指令 Stop 停止当前指令运行,会出现一个停止当前指令运行,会出现一个错误信息,如需避免,采用指令错误信息,如需避免,采用指令 StopInstrl不能使用指令不能使用指令 MoveCSync 来调用中断处理来调用中断处理程序程序 TRAPl不能单步执行指令不能单步执行指令 MoveCSync 所调用的例所调用的例行程序行程序 PROC2024/8/18运动指令-运动指令-MoveAbsJMoveAbsJ [\Conc,] ToJointPos [\NoEOffs], Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj];[\Conc]:协作运动开关协作运动开关 switch ) ToJoingPos:目标点 jointtarget ) [\NoEOffs]:外轴偏差开关外轴偏差开关 switch ) Speed:运行速度数据运行速度数据 speeddata ) [\V]:特殊运行速度特殊运行速度 num ) [\T]:运行时间控制运行时间控制 。
num )2024/8/18运动指令-运动指令-MoveAbsJZone:运行转角数据运行转角数据 zonedata ) [\Z]:特殊运行转角特殊运行转角 mm num )[\Inpos]: 运行停止点数据运行停止点数据 stoppointdata )Tool:工具中心点工具中心点 ( TCP ) tooldata )[\Wobj]: 工件座标系工件座标系 wobjdata )MoveAbsJ [\Conc,] ToJointPos [\NoEOffs], Speed [\V]|[\T], Zone [\Z][\Inpos], Tool [\WObj];2024/8/18运动指令-运动指令-MoveAbsJ应用:应用:机器人以单轴运行的方式运动至目标点,绝机器人以单轴运行的方式运动至目标点,绝对不存在死点,运动状态完全不可控,避免对不存在死点,运动状态完全不可控,避免在正常生产中使用此指令,常用于检查机器在正常生产中使用此指令,常用于检查机器人零点位置,指令中人零点位置,指令中 TCP 与与 Wobj 只与运行只与运行速度有关,与运动位置无关速度有关,与运动位置无关实例:实例:MoveAbsJ p1,v2000,fine,grip1;MoveAbsJ\Conc,p1\NoEOffs,v2000,fine,grip1;MoveAbsJ p1,v2000\V:=2200,z40\Z:=45,grip1;MoveAbsJ p1,v2000,z40,grip1\WObj:=wobj1;MoveAbsJ p1,v2000,fine\Inpos:=inpos50,grip1;2024/8/18中断运动指令中断运动指令StopMoveStartMoveStorePathRestoPath2024/8/18运动指令-运动指令-StopMoveStopMove;应用:应用:当前指令使机器人运动临时停止,直到运行当前指令使机器人运动临时停止,直到运行指令指令 StartMove 后,才继续恢复被临时停止后,才继续恢复被临时停止的运动。
此指令通常被用于处理牵涉到机器的运动此指令通常被用于处理牵涉到机器人运动的中断程序人运动的中断程序实例:实例:StopMove;WaitDI ready_input,1;StartMove;2024/8/18运动指令-运动指令-StopMove实例:实例: … CONNECT intno1 WITH go_to_home_pos; ISignalDI di1,1,intno1; …TRAP go_to_home_pos StopMove; StorePath; p10:=CRobT(); MoveL Home,v500,fine,tool1; WaitDI di1,0; Move L p10,v500,fine,tool1; RestoPath; StartMove;ENDTRAP 机器人临时停止运机器人临时停止运动,并记录运动路动,并记录运动路径,在径,在 Home 位置位置等待等待 di1 为为 0 后,后,继续原运动状态继续原运动状态机器人完成当前运动指机器人完成当前运动指令后停止运动,并记录令后停止运动,并记录运动路径,在运动路径,在 Home 位位置等待置等待 di1 为为 0 后,继后,继续原运动状态续原运动状态。
2024/8/18运动指令-运动指令-StartMoveStartMove;应用:应用:当前指令必须与指令当前指令必须与指令 StopMove 联合使用,联合使用,使机器人临时停止的运动恢复此指令通常使机器人临时停止的运动恢复此指令通常被用于处理牵涉到机器人运动的中断程序被用于处理牵涉到机器人运动的中断程序实例:实例:StopMove;WaitDI ready_input,1;StartMove;Error Handling::lERR_PATHDIST偏离原路径偏离原路径 ( 大于大于 10mm 或或 20 度度 )2024/8/18运动指令-运动指令-StorePathStorePath;应用:应用:当前指令用来记录机器人当前运动状态,通当前指令用来记录机器人当前运动状态,通常与指令常与指令 RestoPath 联合使用此指令通常联合使用此指令通常被用于机器人故障处理与处理牵涉到机器人被用于机器人故障处理与处理牵涉到机器人运动的中断程序运动的中断程序限制:限制:l当前指令只能用来记录机器人运动路径当前指令只能用来记录机器人运动路径l机器人临时停止后,需要执行新的运动,必机器人临时停止后,需要执行新的运动,必须记录当前运动路径。
须记录当前运动路径l机器人系统只能记录一个运动路径机器人系统只能记录一个运动路径2024/8/18运动指令-运动指令-StorePath实例:实例:TRAP go_to_home_pos StopMove; StorePath; p10:=CRobT(); MoveL Home,v500,fine,tool1; WaitDI di1,0; MoveL p10,v500,fine,tool1; RestoPath; StartMove;ENDTRAP机器人临时停止运动,并机器人临时停止运动,并记录运动路径,在记录运动路径,在 Home 位置等待位置等待 di1 为为 0 后,继后,继续原运动状态续原运动状态2024/8/18运动指令-运动指令-RestoPathRestoPath;应用:应用:当前指令用来恢复已经被记录的机器人运动当前指令用来恢复已经被记录的机器人运动状态,必须与指令状态,必须与指令 StorePath 联合使用此联合使用此指令通常被用于机器人错误处理与处理牵涉指令通常被用于机器人错误处理与处理牵涉到机器人运动的中断程序到机器人运动的中断程序限制:限制:l当前指令只能用来恢复机器人运动路径。
当前指令只能用来恢复机器人运动路径l机器人临时停止后,需要执行新的运动,必机器人临时停止后,需要执行新的运动,必须记录当前运动路径须记录当前运动路径l机器人系统只能记录一个运动路径机器人系统只能记录一个运动路径2024/8/18运动指令-运动指令-RestoPath实例:实例: ArcL p100,v100,seam1,weld5,weave1,z10,gun1;ERROR IF ERRNO=AW_WELD_ERR THEN gun_cleaning; RETRY; ENDIFPROC gun_cleaning() StorePath; p1:=CRobT(); MoveL pclean,v100,fine,gun1; … MoveL p1,v100,fine,gun1; RestoPath;ENDPROC2024/8/18运动指令运动指令IF TEST GOTOlabel WHILEFOR WaitUntil WaitTime Compact IF2024/8/18程序流程指令-程序流程指令-IFIF Condition THEN ...{ELSEIF Condition THEN ...}[ELSE ...]ENDIFCondition:判断条件。
判断条件 bool )应用:应用:当前指令通过判断相应条件,控制需要执行当前指令通过判断相应条件,控制需要执行的相应指令,是机器人程序流程基本指令的相应指令,是机器人程序流程基本指令2024/8/18程序流程指令-程序流程指令-IF实例:实例:IF reg1>5 THEN Set do1; Set do2;ENDIFIF reg2=1 THEN routine1;ELSEIF reg2=2 THEN routine2;ELSEIF reg2=3 THEN routine3;ELSEIF reg2=4 THEN routine4;ELSE Error;ENDIFIF reg1>5 THEN Set do1; Set do2;ELSE Reset do1; Reset do2ENDIF2024/8/18程序流程指令-程序流程指令-TESTTEST Test data {CASE Test value {,Test value}: ...}[DEFAULT: ...] ENDTESTTest data:判断数据变量判断数据变量 All ) Test value:判断数据值。
判断数据值 Same as )应用:应用:当前指令通过判断相应数据变量与其所对应当前指令通过判断相应数据变量与其所对应的值,控制需要执行的相应指令的值,控制需要执行的相应指令2024/8/18程序流程指令-程序流程指令-TEST实例:实例:TEST reg2CASE 1: routine1;CASE 2: routine2; CASE 3: routine3;CASE 4,5: routine9;DEFAULT: Error;ENDTESTIF reg2=1 THEN routine1;ELSEIF reg2=2 THEN routine2;ELSEIF reg2=3 THEN routine3;ELSEIF reg2=4 OR reg2=5 THEN routine4;ELSE Error;ENDIF2024/8/18程序流程指令-程序流程指令-GOTOGOTO Label;Label:程序执行位置标签程序执行位置标签 Identifier )应用:应用:当前指令必须与指令当前指令必须与指令 label 同时使用,执同时使用,执行当前指令后,机器人将从相应标签位置行当前指令后,机器人将从相应标签位置 Label 处继续运行程序指令。
处继续运行程序指令2024/8/18程序流程指令-程序流程指令-GOTO实例:实例:IF reg1>100 GOTO highvalue;lowvalue:…GOTO ready;highvalue:…ready:…reg1:=1;next:reg1:=reg1+1;IF reg1<=5 GOTO next;2024/8/18程序流程指令-程序流程指令-GOTO限制限制::l只能使用当前指令跳跃至同一例行程序内相只能使用当前指令跳跃至同一例行程序内相应的位置标签应的位置标签 Labell如果相应位置标签如果相应位置标签 label 处于指令处于指令 TEST 或或 IF 内,相应指令内,相应指令 GOTO 必须同处于相同的必须同处于相同的判断指令内或其分支内判断指令内或其分支内l如果相应位置标签如果相应位置标签 Label 处于指令处于指令 WHILE 或或 FOR 内,相应指令内,相应指令 GOTO 必须同处于相必须同处于相同的循环指令内同的循环指令内2024/8/18程序流程指令-程序流程指令-labelLabel:Label:程序执行位置标签程序执行位置标签 Identifier )应用:应用:当前指令必须与指令当前指令必须与指令 GOTO 同时使用,执同时使用,执行指令行指令 GOTO 后,机器人将从相应标签位后,机器人将从相应标签位置置 Label 处继续运行程序指令,当前指令使处继续运行程序指令,当前指令使用后,程序内不会显示用后,程序内不会显示 Label 字样,直接显字样,直接显示相应标签。
示相应标签2024/8/18程序流程指令-程序流程指令-label实例:实例:IF reg1>100 GOTO highvalue;lowvalue:…GOTO ready;highvalue:…ready:…限制限制::l在同一例行程序内,程序位置标签在同一例行程序内,程序位置标签 Label 的的名称必须唯一名称必须唯一2024/8/18程序流程指令-程序流程指令-WHILEWHILE Condition DO ... ENDWHILECondition:判断条件判断条件 bool )应用:应用:当前指令通过判断相应条件,如果符合判断当前指令通过判断相应条件,如果符合判断条件执行循环内指令,直至判断条件不满足条件执行循环内指令,直至判断条件不满足才跳出循环,继续执行循环以后指令需要才跳出循环,继续执行循环以后指令需要注意,当前指令存在死循环注意,当前指令存在死循环2024/8/18程序流程指令-程序流程指令-WHILE实例:实例:WHILE reg1 循环计数标识 Identifier ) Start value:标识初始值标识初始值 num ) End value :标识最终值标识最终值 num ) [Step value]:计数更改值计数更改值 num )2024/8/18程序流程指令-程序流程指令-FOR应用:应用:当前指令通过循环判断标识从初始值逐渐更当前指令通过循环判断标识从初始值逐渐更改至最终值,从而控制程序相应循环次数,改至最终值,从而控制程序相应循环次数,如果不使用参变量如果不使用参变量 [STEP],,循环标识每次循环标识每次更改值为更改值为 1,如果使用参变量,如果使用参变量 [STEP],,循循环标识每次更改值为参变量相应设置,通常环标识每次更改值为参变量相应设置,通常情况下,初始值、最终值与更改值为整数,情况下,初始值、最终值与更改值为整数,循环判断标识使用循环判断标识使用 i k j 等小写字母,是标等小写字母,是标准的机器人循环指令,常在通讯口读写,数准的机器人循环指令,常在通讯口读写,数组数据赋值等数据处理时使用组数据赋值等数据处理时使用2024/8/18程序流程指令-程序流程指令-FOR实例:实例:FOR i FROM 1 TO 10 DO routine1;ENDFORFOR i FROM 10 TO 2 STEP -1 DO a{i}:=a{i-1};ENDFORPROC ResetCount() FOR i FROM 1 TO 20 DO FOR j FROM 1 TO 2 DO nCount{i,j}:=0; ENDFOR ENDFORENDPROC2024/8/18程序流程指令-程序流程指令-FOR限制:限制:l循环标识只能自动更改,不允许赋值。 循环标识只能自动更改,不允许赋值l在程序循环内,循环标识可以作为数字数据在程序循环内,循环标识可以作为数字数据 ( num ) 使用,但只能读取相应值,不允许使用,但只能读取相应值,不允许赋值l如果循环标识、初始值、最终值与更改值使如果循环标识、初始值、最终值与更改值使用小数形式,必须为精确值用小数形式,必须为精确值2024/8/18程序流程指令-程序流程指令-WaitUntilWaitUntil [\InPos,] Cond [\MaxTime][\TimeFlag];[\InPos] :提前量开关提前量开关 switch ) Cond:判断条件判断条件 bool ) [\MaxTime]:最长等待时间最长等待时间 s num ) [\TimeFlag]:超时逻辑量超时逻辑量 bool )2024/8/18程序流程指令-程序流程指令-WaitUntil应用:应用:当前指令用于等待满足相应判断条件后,才当前指令用于等待满足相应判断条件后,才执行以后指令,使用参变量执行以后指令,使用参变量 [\InPos],,机器机器人及其外轴必须在完全停止的情况下,才进人及其外轴必须在完全停止的情况下,才进行条件判断,此指令比可以指令行条件判断,此指令比可以指令 WaitDI 的的功能更广,可以替代其所有功能。 功能更广,可以替代其所有功能限制:限制:l当前指令在使用参变量当前指令在使用参变量 [\InPos] 时,遇到程时,遇到程序突然停止运行,机器人不能其保证停在最序突然停止运行,机器人不能其保证停在最终停止点进行条件判断终停止点进行条件判断2024/8/18程序流程指令-程序流程指令-WaitUntil实例:实例:PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitUntil di_Ready=1; (WaitDI di_Ready,1;) …ENDPROCPROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; WaitUntil nCounter=4\MaxTime:=5; …ERROR IF ERRNO=ERR_WAIT_MAXTIME THEN TPWrite “……”; RETRY; ENDIFENDPROC机器人等待输机器人等待输入信号,直到入信号,直到信号信号 di_Ready 值为值为 1,才执行,才执行随后指令随后指令机器人等待相应数据机器人等待相应数据输入,如果输入,如果 5 秒内仍秒内仍没有得到相应数据值没有得到相应数据值 4,自动进行,自动进行 Error Handler 处理,如果处理,如果没有没有 Error Handler,,机器人停机报错机器人停机报错 。 2024/8/18程序流程指令-程序流程指令-WaitUntil实例:实例:PROC PickPart() MoveJ pPrePick,vFastEmpty,zBig,tool1; bTimeout:=TRUE; nCounter:=0; WHILE bTimeout DO IF nCounter>3 THEN TPWrite “……”; ENDIF IF nCounter>30 THEN Stop; ENDIF WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeout; Incr nCounter; ENDWHILE …ENDPROC机器人等待相应逻辑值机器人等待相应逻辑值,,如果如果 1 秒内仍没有得到相应值,机器秒内仍没有得到相应值,机器人自动执行随后指令,但此时人自动执行随后指令,但此时 TimeFlag 值为值为 TRUE;;机器人机器人得到相应逻辑值,得到相应逻辑值,TimeFlag 值值为为 FALSE2024/8/18程序流程指令-程序流程指令-WaitTimeWaitTime [\InPos,] Time;[\InPos]: 程序运行提前量开关。 程序运行提前量开关 switch ) Time:相应等待时间相应等待时间 s num )应用:应用:当前指令只用于机器人等待相应时间后,才当前指令只用于机器人等待相应时间后,才执行以后指令,使用参变量执行以后指令,使用参变量 [\InPos],,机器机器人及其外轴必须在完全停止的情况下,才进人及其外轴必须在完全停止的情况下,才进行等待时间计时,此指令会延长循环时间行等待时间计时,此指令会延长循环时间2024/8/18程序流程指令-程序流程指令-WaitTime实例:实例:WaitTime 3;WaitTime\InPos,0.5; WaitTime\InPos,0;限制:限制:l当前指令在使用参变量当前指令在使用参变量 [\InPos] 时,遇到程时,遇到程序突然停止运行,机器人不能其保证停在最序突然停止运行,机器人不能其保证停在最终停止点进行等待计时终停止点进行等待计时l当前指令参变量当前指令参变量 [\InPos] 不能与机器人指令不能与机器人指令SoftServo 同时使用同时使用2024/8/18程序流程指令-程序流程指令-Compact IFIF Condition …Condition:判断条件。 判断条件 bool )应用:应用:当前指令是指令当前指令是指令 IF 的简单化,判断条件后的简单化,判断条件后只允许跟一句指令,如果有多句指令需要执只允许跟一句指令,如果有多句指令需要执行,必须采用指令行,必须采用指令 IF实例:实例:IF reg1>5 GOTO next;IF counter>10 Set do1;2024/8/18故障处理指令故障处理指令RETRYTRYNEXTRAISERETURN2024/8/18故障处理指令-故障处理指令-RETRYRETRY;应用:应用:当前指令只用于机器人故障处理程序当前指令只用于机器人故障处理程序 Error Handler 内,经过故障处理后,再次对发生内,经过故障处理后,再次对发生故障的指令进行再次运行故障的指令进行再次运行限制:限制:l通过当前指令对所发生故障的指令进行再次通过当前指令对所发生故障的指令进行再次运行,连续运行,连续 4 次尝试后,故障仍无法解决,次尝试后,故障仍无法解决,机器人将停止运行,示教器显示错误信息机器人将停止运行,示教器显示错误信息 ERR_EXCRTYMAX2024/8/18故障处理指令-故障处理指令-RETRY---check;----WaitDI di4,1\MaxTime:=15;----RETURN;errorhandler--RETRY;-TRYNEXT;-RETURN;check超时超时2024/8/18故障处理指令-故障处理指令-RAISERAISE [Error no.];应用:应用:当前指令如果不使用参变量,只用于机器人当前指令如果不使用参变量,只用于机器人故障处理程序故障处理程序 Error Handler 内,经过故障内,经过故障处理后,跳至上一层例行程序故障处理程序处理后,跳至上一层例行程序故障处理程序内,继续进行故障处理;如果使用参变量,内,继续进行故障处理;如果使用参变量,只用于例行程序内,直接进入当前例行程序只用于例行程序内,直接进入当前例行程序故障处理程序进行处理。 故障处理程序进行处理[Error no.]:错误信息编号错误信息编号 errnum )2024/8/18故障处理指令-故障处理指令-RAISE---check;----calc;----RETURNerrorhandler--RETRY;--RAISE;ENDPROCmaincheck--IF...THENRAISE MY_ERR;---errorhandler-RAISE;calcerrorhandlerIF ERRNO=MY_ERR THEN--EXIT;2024/8/18故障处理指令-故障处理指令-RAISE限制:限制:l参变量错误代码范围为参变量错误代码范围为 1--90,超出范围,,超出范围,示教器显示错误信息示教器显示错误信息 ERR_ILLRAISEl如果需要更多的错误代码,超出如果需要更多的错误代码,超出 1--90,必,必须使用机器人指令须使用机器人指令 BookErrNo2024/8/18故障处理指令-故障处理指令-RETURNRETURN [Return value];应用:应用:当前指令如果使用参变量,只用于机器人函当前指令如果使用参变量,只用于机器人函数例行程序内,经过运行返回相应的值;通数例行程序内,经过运行返回相应的值;通常情况下,在不使用参变量时,机器人运行常情况下,在不使用参变量时,机器人运行至此指令时,无论是主程序至此指令时,无论是主程序 main、、标准例标准例行程序行程序 PROC、、中断例行程序中断例行程序 TRAP、、故障故障处理程序处理程序 Error handler 都代表当前例行程都代表当前例行程序结束。 序结束[Return value]:返回时间值返回时间值 all )2024/8/18故障处理指令-故障处理指令-RETURN---check;----WaitDI di4,1\MaxTime:=15;----RETURN;errorhandler--RETRY;-TRYNEXT;-RETURN;check超时超时2024/8/18故障处理指令-故障处理指令-RETURN实例:实例:PROC rPick() … RETURN; …ENDPROCFUNC num abs_value(num value) IF value<0 THEN RETURN -value; ELSE RETURN value; ENDIFENDFUNC永远不可能被运行永远不可能被运行2024/8/18座标转换指令座标转换指令PDispOnPDispOffPDispSetEOffsOnEOffsOffEOffsSet2024/8/18座标转换指令-座标转换指令-PDispOnPDispOn [\Rot][\ExeP ,] ProgPoint, Tool [\WObj];[\Rot]:座标旋转开关。 座标旋转开关 switch ) [\ExeP]:运行起始点运行起始点 robtarget ) ProgPoint:座标原始点座标原始点 robtarget ) Tool:工具座标系工具座标系 tooldata ) [\Wobj]:工件座标系工件座标系 wobjdata ) 应用:应用:当前指令可以使机器人座标通过编程进行即当前指令可以使机器人座标通过编程进行即时转换时转换,,通常用于水切割等运行轨迹保持不通常用于水切割等运行轨迹保持不变的场合,可以快捷的完成工作位置修正变的场合,可以快捷的完成工作位置修正2024/8/18座标转换指令-座标转换指令-PDispOnMoveL p10,v500,z10,tool1;PDispOn\ExeP:=p10,p20,tool1;MoveL p10,v500,fine\Inpos:=inpos50,tool1;PDispOn\Rot\ExeP:=p10,p20,tool1;p10p10p20p20原始座标原始座标原始座标原始座标转换后座标转换后座标转换后座标转换后座标2024/8/18座标转换指令-座标转换指令-PDispOnPROC draw_square() PDispOn *,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; MoveL *,v500,z10,tool1; PDispOff;ENDPROCMoveL p10,v500,fine\Inpos:=inpos50,tool1;draw_square;MoveL p20,v500,fine\Inpos:=inpos50,tool1;draw_square;MoveL p30,v500,fine\Inpos:=inpos50,tool1;draw_square;p10p20p30不使用参变量不使用参变量[\ExeP],,机器人默认为当前点。 机器人默认为当前点2024/8/18座标转换指令-座标转换指令-PDispOn限制:限制:l当前指令在使用后,机器人座标将被转换,当前指令在使用后,机器人座标将被转换,直到使用指令直到使用指令 PDispOff 后才失效后才失效l在下列情况下,机器人座标转换功能将自动在下列情况下,机器人座标转换功能将自动失效:失效:–机器人系统冷启动机器人系统冷启动–载入新机器人程序载入新机器人程序–程序重置程序重置 ( Start From Beginning )实例:实例:SearchL sen1,psearch,p10,v100,tool1;PDispOn\ExeP:=psearch,*,tool1;2024/8/18座标转换指令-座标转换指令-PDispOffPDispOff;应用:应用:当前指令用于使机器人通过编程达到的座当前指令用于使机器人通过编程达到的座标转换功能失效标转换功能失效,,必须与指令必须与指令 PDispOn 或或指令指令 PDispSet 同时使用同时使用实例:实例:MoveL p10,v500,z10,tool1;PDispOn\ExeP:=p10,p11,tool1;MoveL p20,v500,z10,tool1;MoveL p30,v500,z10,tool1;PDispOff;MoveL p40,v500,z10,tool1;座标转换生效。 座标转换生效座标转换失效座标转换失效座标转换失效座标转换失效2024/8/18座标转换指令-座标转换指令-PDispSetPDispSet DispFrame;DispFrame:座标偏差量座标偏差量 pose )应用:应用:当前指令通过输入座标偏差量,使机器人座当前指令通过输入座标偏差量,使机器人座标通过编程进行即时转换标通过编程进行即时转换,,通常用于水切割通常用于水切割等运行轨迹保持不变的场合,可以快捷的完等运行轨迹保持不变的场合,可以快捷的完成工作位置修正成工作位置修正2024/8/18座标转换指令-座标转换指令-PDispSet实例:实例:VAR pose xp100:=[[100,0,0],[1,0,0,0]];MoveL p10,v500,z10,tool1;PDispSet xp100;MoveL p20,v500,z10,tool1;PDispOff;MoveL p30,v500,z10,tool1;座标转换生效座标转换生效座标转换失效座标转换失效座标转换失效座标转换失效100YXY’原始座标原始座标转换后座标转换后座标2024/8/18座标转换指令-座标转换指令-PDispSet限制:限制:l当前指令在使用后,机器人座标将被转换,当前指令在使用后,机器人座标将被转换,直到使用指令直到使用指令 PDispOff 后才失效。 后才失效l在下列情况下,机器人座标转换功能将自动在下列情况下,机器人座标转换功能将自动失效:失效:–机器人系统冷启动机器人系统冷启动–载入新机器人程序载入新机器人程序–程序重置程序重置 ( Start From Beginning )2024/8/18座标转换指令-座标转换指令-EOffsOnEOffsOn [\ExeP] ProgPoint;[\ExeP]:运行起始点运行起始点 robtarget ) ProgPoint:座标原始点座标原始点 robtarget )应用:应用:当前指令用于使机器人外轴位置通过编程进当前指令用于使机器人外轴位置通过编程进行即时更改行即时更改,,通常用于带导轨的机器人通常用于带导轨的机器人实例:实例:SearchL sen1,psearch,p10,v100,tool1;PDispOn\ExeP:=psearch,*,tool1;EOffsOn\ExeP:=psearch,*;2024/8/18座标转换指令-座标转换指令-EOffsOn限制:限制:l当前指令在使用后,机器人外轴位置将被更当前指令在使用后,机器人外轴位置将被更改,直到使用指令改,直到使用指令 EOffsOff 后才失效。 后才失效l在下列情况下,机器人外轴位置转换功能将在下列情况下,机器人外轴位置转换功能将自动失效:自动失效:–机器人系统冷启动机器人系统冷启动–载入新机器人程序载入新机器人程序–程序重置程序重置 ( Start From Beginning )2024/8/18座标转换指令-座标转换指令-EOffsOffEOffsOff;应用:应用:当前指令用于使机器人通过编程达到的外轴当前指令用于使机器人通过编程达到的外轴位置更改功能失效位置更改功能失效,,必须与指令必须与指令 EOffsOn 或指令或指令 EOffsSet 同时使用同时使用实例:实例:MoveL p10,v500,z10,tool1;EOffsOn\ExeP:=p10,p11;MoveL p20,v500,z10,tool1;MoveL p30,v500,z10,tool1;EOffsOff;MoveL p40,v500,z10,tool1;外轴位置更改失效外轴位置更改失效外轴位置更改失效外轴位置更改失效外轴位置更改生效外轴位置更改生效2024/8/18座标转换指令-座标转换指令-EOffsSetEOffsSet EAxOffs;EAxOffs:外轴位置偏差量。 外轴位置偏差量 extjoint )应用:应用:当前指令通过输入外轴位置偏差量,使机器当前指令通过输入外轴位置偏差量,使机器人外轴位置通过编程进行即时更改人外轴位置通过编程进行即时更改,,对于导对于导轨类外轴,偏差值单位为轨类外轴,偏差值单位为 mm,,对于转轴类对于转轴类外轴,偏差值单位为角度外轴,偏差值单位为角度2024/8/18座标转换指令-座标转换指令-EOffsSet实例:实例:VAR extjoint eax_a_p100 :=[100,0,0,0,0,0];MoveL p10,v500,z10,tool1;EOffsSet eax_a_p100;MoveL p20,v500,z10,tool1;EOffsOff;MoveL p30,v500,z10,tool1;外轴位置更改失效外轴位置更改失效0X原始外轴位置原始外轴位置转换后外轴位置转换后外轴位置外轴位置更改失效外轴位置更改失效外轴位置更改生效外轴位置更改生效X01002024/8/18座标转换指令-座标转换指令-EOffsSet限制:限制:l当前指令在被使用后,机器人外轴位置将被当前指令在被使用后,机器人外轴位置将被更改,直到使用指令更改,直到使用指令 EOffsOff 后才失效。 后才失效l在下列情况下,机器人座标转换功能将自动在下列情况下,机器人座标转换功能将自动失效:失效:–机器人系统冷启动机器人系统冷启动–载入新机器人程序载入新机器人程序–程序重置程序重置 ( Start From Beginning )2024/8/18运动触发指令运动触发指令TriggIOTriggIntTriggEquipTriggJTriggLTriggC2024/8/18运动触发指令-运动触发指令-TriggIOTriggIO TriggData, Distance [\Start]|[\Time][\DOp]|[\GOp]| [\AOp]|[\ProcID], SetValue [\DODelay];[TriggData]:触发变量名称触发变量名称 triggdata ) Distance:触发距离触发距离 mm num ) [\Start]:触发起始开关触发起始开关 switch ) [\Time]:时间触发开关时间触发开关 switch ) [\DOp]:触发数字输出触发数字输出 signaldo )2024/8/18运动触发指令-运动触发指令-TriggIOTriggIO TriggData, Distance [\Start]|[\Time][\DOp]|[\GOp]| [\AOp]|[\ProcID], SetValue [\DODelay];[\GOp]:触发组合输出。 触发组合输出 signalgo ) [\AOp]:触发模拟输出触发模拟输出 signalao ) [\ProcID]:过程处理触发过程处理触发 num ) SetValue:相应信号值相应信号值 num ) [\DODelay]:数字输出延迟数字输出延迟 num )2024/8/18运动触发指令-运动触发指令-TriggIO应用:应用:机器人可以在运动时通过触发指令精确的输机器人可以在运动时通过触发指令精确的输出相应信号,当前指令用于定义触发性质,出相应信号,当前指令用于定义触发性质,此指令必须与其他触发指令此指令必须与其他触发指令 TriggJ、、TriggL 或或 TriggC 同时使用才有意义,同机器人指令同时使用才有意义,同机器人指令 TriggEquip 比较,多了时间控制功能,少了比较,多了时间控制功能,少了外部设备触发延迟功能,通常用于喷涂、涂外部设备触发延迟功能,通常用于喷涂、涂胶等行业使用参变量胶等行业使用参变量 [\Start],,表示以运动表示以运动起始点触发基准点,默认为运动终止点;使起始点触发基准点,默认为运动终止点;使用参变量用参变量 [\Time],,以时间来控制触发,允许以时间来控制触发,允许最大时间为最大时间为 0.5s,,详见限制;参变量详见限制;参变量 [\ProcID],,正常情况下用户无法自行使用,正常情况下用户无法自行使用,此参变量用于此参变量用于 IPM 过程处理。 过程处理2024/8/18运动触发指令-运动触发指令-TriggIO实例:实例:VAR triggdata gunon;TriggIO gunon,10\DOp:=gun,1;TriggL p1,v500,gunon,z50,gun1;2024/8/18运动触发指令-运动触发指令-TriggIO实例:实例:VAR triggdata gunon;TriggIO gunon,0\Start\DOp:=gunon;MoveJ p1,v500,z50,gun1;TriggL p2,v500,gunon,fine,gun1;2024/8/18运动触发指令-运动触发指令-TriggIO限制:限制:l当前指令使用参变量当前指令使用参变量 [\Time] 可以提高信号输可以提高信号输出精度,此参变量以目标点为基准,使用固出精度,此参变量以目标点为基准,使用固定的目标点定的目标点 fine 比转角比转角 zone 精度高,一般精度高,一般情况下,此参变量采用固定目标点情况下,此参变量采用固定目标点l参变量参变量 [\Time] 设置的时间应小于机器人开始设置的时间应小于机器人开始减速时间减速时间 ( 最大最大 0.5s ),,例如:运行速度例如:运行速度500mm/s,,IRB2400 为为 150ms,,IRB6400 为为250ms,,机器人在设置时间超过减速时间的机器人在设置时间超过减速时间的情况下,实际控制时间会缩短,但不会对正情况下,实际控制时间会缩短,但不会对正常运行造成影响。 常运行造成影响2024/8/18运动触发指令-运动触发指令-TriggIntTriggInt TriggData, Distance [\Start]|[\Time], Interrupt;[TriggData]:触发变量名称触发变量名称 triggdata ) Distance:触发距离触发距离 mm num ) [\Start]:触发起始开关触发起始开关 switch ) [\Time]:时间触发开关时间触发开关 switch ) Interrupt:触发中断名称触发中断名称 intnum )2024/8/18运动触发指令-运动触发指令-TriggInt应用:应用:机器人可以在运动时通过触发指令精确的进机器人可以在运动时通过触发指令精确的进入中断处理入中断处理,,当前指令用于定义触发性质,当前指令用于定义触发性质,此指令必须与其他触发指令此指令必须与其他触发指令 TriggJ、、TriggL 或或 TriggC 同时使用才有意义,通常用于喷同时使用才有意义,通常用于喷涂、涂胶等行业使用参变量涂、涂胶等行业使用参变量 [\Start],,表示表示以运动起始点触发基准点,默认为以运动终以运动起始点触发基准点,默认为以运动终止点;使用参变量止点;使用参变量 [\Time],,以时间来控制触以时间来控制触发,允许最大时间为发,允许最大时间为 0.5s,,详见限制。 详见限制限制:限制:l正常情况下,当前指令从触发中断到得到响正常情况下,当前指令从触发中断到得到响应,有应,有 5--120ms 延迟,用指令延迟,用指令 TriggIO 或或TriggEquit 控制信号输出效果更佳控制信号输出效果更佳2024/8/18运动触发指令-运动触发指令-TriggInt限制:限制:l当前指令使用参变量当前指令使用参变量 [\Time] 可以提高中断触可以提高中断触发精度,此参变量以目标点为基准,使用固发精度,此参变量以目标点为基准,使用固定的目标点定的目标点 fine 比转角比转角 zone 精度高,一般精度高,一般情况下,此参变量采用固定目标点情况下,此参变量采用固定目标点l参变量参变量 [\Time] 设置的时间应小于机器人开始设置的时间应小于机器人开始减速时间减速时间 ( 最大最大 0.5s ),,例如:运行速度例如:运行速度500mm/s,,IRB2400 为为 150ms,,IRB6400 为为250ms,,机器人在设置时间超过减速时间的机器人在设置时间超过减速时间的情况下,实际控制时间会缩短,但不会对正情况下,实际控制时间会缩短,但不会对正常运行造成影响。 常运行造成影响2024/8/18运动触发指令-运动触发指令-TriggInt实例:实例:VAR intnum intno1;VAR triggdata trigg1;CONNECT intno1 WITH trap1;TriggInt trigg1,5,intno1;TriggL p1,v500,trigg1,z50,gun1;TriggL p2,v500,trigg1,z50,gun1;IDelete intno1;2024/8/18运动触发指令-运动触发指令-TriggEquipTriggEquip TriggData, Distance [\Start], EquipLag [\DOp]|[\GOp]|[\AOp]|[\ProcID], SetValue [\Inhib];[TriggData]:触发变量名称触发变量名称 triggdata ) Distance:触发距离触发距离 mm num ) [\Start]:触发起始开关触发起始开关 switch ) EquipLag:触发延触发延迟补偿迟补偿 s num ) [\DOp]:触发数字输出触发数字输出 signaldo )2024/8/18运动触发指令-运动触发指令-TriggEquip[\GOp]:触发组合输出。 触发组合输出 signalgo ) [\AOp]:触发模拟输出触发模拟输出 signalao ) [\ProcID]:过程处理触发过程处理触发 num ) SetValue:相应信号值相应信号值 num ) [\Inhib]:信号抑止数据信号抑止数据 bool )TriggEquip TriggData, Distance [\Start], EquipLag [\DOp]|[\GOp]|[\AOp]|[\ProcID], SetValue [\Inhib];2024/8/18运动触发指令-运动触发指令-TriggEquip应用:应用:机器人可以在运动时通过触发指令精确的输机器人可以在运动时通过触发指令精确的输出相应信号,当前指令用于定义触发性质,出相应信号,当前指令用于定义触发性质,此指令必须与其他触发指令此指令必须与其他触发指令 TriggJ、、TriggL 或或 TriggC 同时使用才有意义,同机器人指同时使用才有意义,同机器人指令令 TriggIO 比较,多了外部设备触发延迟功比较,多了外部设备触发延迟功能,少了时间控制功能,此指令通常用于喷能,少了时间控制功能,此指令通常用于喷涂、涂胶等行业。 涂、涂胶等行业2024/8/18运动触发指令-运动触发指令-TriggEquip应用:应用:使用参变量使用参变量 [\Start],,表示以运动起始点触发表示以运动起始点触发基准点,默认为以运动终止点;参变量基准点,默认为以运动终止点;参变量 [\ProcID],,正常情况下用户无法自行使用,正常情况下用户无法自行使用,此参变量用于此参变量用于 IPM 过程处理当参变量过程处理当参变量 [\Inhib] 值为值为 TRUE,,在触发点所有输出信号在触发点所有输出信号 ( AO、、GO、、DO) 将被置为将被置为 02024/8/18运动触发指令-运动触发指令-TriggEquip实例:实例:VAR triggdata gunon;TriggEquip gunon,10,0.1\DOp:=gun,1;TriggL p1,v500,gunon,z50,gun1;2024/8/18运动触发指令-运动触发指令-TriggEquip限制:限制:l当前指令通过触发延迟可以提高信号输出精当前指令通过触发延迟可以提高信号输出精度,设置的时间应小于机器人开始减速时间度,设置的时间应小于机器人开始减速时间 ( 最大最大 0.5s ),,例如:运行速度例如:运行速度 500mm/s,,IRB2400 为为 150ms,,IRB6400 为为 250ms,,在在设置时间超过减速时间的情况下,实际时间设置时间超过减速时间的情况下,实际时间会缩短,但不会对正常运行造成影响。 会缩短,但不会对正常运行造成影响l触发延迟触发延迟 EquipLag 值应小于系统参数内值应小于系统参数内Event Preset Time 配置值,默认为配置值,默认为 60msl如果触发延迟如果触发延迟 EquipLag 值大于系统参数内值大于系统参数内Event Preset Time 配置值,需要使用指令配置值,需要使用指令SingArea\Wrist2024/8/18运动触发指令-运动触发指令-TriggJWaitTime [\InPos,] Time;[\InPos]: 程序运行提前量开关程序运行提前量开关 switch ) Time:相应等待时间相应等待时间 s num )应用:应用:当前指令只用于机器人等待相应时间后,才当前指令只用于机器人等待相应时间后,才执行以后指令,使用参变量执行以后指令,使用参变量 [\InPos],,机器机器人及其外轴必须在完全停止的情况下,才进人及其外轴必须在完全停止的情况下,才进行等待时间计时,此指令会延长循环时间行等待时间计时,此指令会延长循环时间2024/8/18程序流程指令-程序流程指令-WaitTime实例:实例:WaitTime 3;WaitTime\InPos,0.5; WaitTime\InPos,0;限制:限制:l当前指令在使用参变量当前指令在使用参变量 [\InPos] 时,遇到程时,遇到程序突然停止运行,机器人不能其保证停在最序突然停止运行,机器人不能其保证停在最终停止点进行等待计时。 终停止点进行等待计时l当前指令参变量当前指令参变量 [\InPos] 不能与机器人指令不能与机器人指令SoftServo 同时使用同时使用2024/8/18运动触发指令-运动触发指令-TriggLWaitTime [\InPos,] Time;[\InPos]: 程序运行提前量开关程序运行提前量开关 switch ) Time:相应等待时间相应等待时间 s num )应用:应用:当前指令只用于机器人等待相应时间后,才当前指令只用于机器人等待相应时间后,才执行以后指令,使用参变量执行以后指令,使用参变量 [\InPos],,机器机器人及其外轴必须在完全停止的情况下,才进人及其外轴必须在完全停止的情况下,才进行等待时间计时,此指令会延长循环时间行等待时间计时,此指令会延长循环时间2024/8/18程序流程指令-程序流程指令-WaitTime实例:实例:WaitTime 3;WaitTime\InPos,0.5; WaitTime\InPos,0;限制:限制:l当前指令在使用参变量当前指令在使用参变量 [\InPos] 时,遇到程时,遇到程序突然停止运行,机器人不能其保证停在最序突然停止运行,机器人不能其保证停在最终停止点进行等待计时。 终停止点进行等待计时l当前指令参变量当前指令参变量 [\InPos] 不能与机器人指令不能与机器人指令SoftServo 同时使用同时使用2024/8/18运动触发指令-运动触发指令-TriggCWaitTime [\InPos,] Time;[\InPos]: 程序运行提前量开关程序运行提前量开关 switch ) Time:相应等待时间相应等待时间 s num )应用:应用:当前指令只用于机器人等待相应时间后,才当前指令只用于机器人等待相应时间后,才执行以后指令,使用参变量执行以后指令,使用参变量 [\InPos],,机器机器人及其外轴必须在完全停止的情况下,才进人及其外轴必须在完全停止的情况下,才进行等待时间计时,此指令会延长循环时间行等待时间计时,此指令会延长循环时间2024/8/18程序流程指令-程序流程指令-WaitTime实例:实例:WaitTime 3;WaitTime\InPos,0.5; WaitTime\InPos,0;限制:限制:l当前指令在使用参变量当前指令在使用参变量 [\InPos] 时,遇到程时,遇到程序突然停止运行,机器人不能其保证停在最序突然停止运行,机器人不能其保证停在最终停止点进行等待计时。 终停止点进行等待计时l当前指令参变量当前指令参变量 [\InPos] 不能与机器人指令不能与机器人指令SoftServo 同时使用同时使用2024/8/18赋值指令赋值指令Data := Value;Data:被赋值的数据被赋值的数据 All ) Value:数据被赋予的值数据被赋予的值 Same as Data )应用:应用:对系统内所有变量或可变量数据进行赋值,对系统内所有变量或可变量数据进行赋值,在数据赋值时,可以进行相应计算程序通在数据赋值时,可以进行相应计算程序通过赋值指令可以自动改变数据值,从而控制过赋值指令可以自动改变数据值,从而控制使程序运行逻辑使程序运行逻辑2024/8/18赋值指令赋值指令实例:实例:ABB:=reg1+reg3;( num )ABB:=“ WELCOME ”; ( string )pHome:=p1; ( robotarget )tool1.tframe.trans.x:= tool1.tframe.trans.x+20; ( num )限制:限制:l常量数据不允许进行赋值常量数据不允许进行赋值l必须在相同的数据类型之间进行赋值必须在相同的数据类型之间进行赋值。 2024/8/18。
