工博士机器人技术有限公司作为智能工厂服务商,从智能制造解决方案的提供,到工业电气产品的一站式采购,从智能制造培训到专业维护保养,围绕设备的智能升级改造、生产加工、设备保障、技能培训等多个方面,实现生产的智能、高效、环保和安全。
主营ABB、库卡KUKA、安川YASKAWA、发那科FANUC、欧地希OTC、川崎Kawasaki、遨博AUBO、现代HYUNDAI、电装DENSO、欧姆龙OMRON、爱普生EPSON等进口机器人项目集成、机器人代理、机器人配件、机器人售后维保、机器人培训一站式服务。
地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012号
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
1、码垛知识储备
1.1 轴配置监控指令
ConfL :
其指定机器人在线性运动及圆弧运动过程中是否严格遵循程序中已设定的轴配置参数。默认情况下轴配置监控是打开的,当关闭轴配置监控后,机器人在运动过程中采取*接近当前轴配置数据的配置到达指定目标点。
例如:目标点p10中,数据[1,0,1,0]就是此目标点的轴配置数据;
CONST robtarget p10 :=[[*,*,*],[*,*,*,*],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
ConfL \Off;
MoveL p10, v1000, fine, tool0;
机器人自动匹配一组*接近当前各关节轴姿态的轴配置数据移动至目标点p10,到达p10点时,轴配置数据不一定为程序中指定的[1,0,1,0]
在某些应用场合,如离线编程创建目标点或手动示教相邻两目标点间轴配置数据相差较大时,在机器人运动过程中容易出现报警“轴配置错误”而造成停机,此种情况下,若对轴配置要求较高,则一般通过添加中间过渡点,若对轴配置要求不高,则可通过指令ConfL\Off关闭轴监控,使机器人自动匹配可行的轴配置来到达指定目标点。
注:ConfJ用法与ConfL相同,只不过
前者为关节线性运动过程中的轴监控开关,影响的是MoveJ;而后者为线性运动过程中的轴监控开关,影响的是MoveL。
1.2 计时指令
在机器人运动过程中,我们经常需要利用计时功能来计算当前机器人运行节拍,并通过写屏指令显示相关信息。
这里我们以一个完整的计时案例来学习一下关于计时并显示计时信息的综合运用:
VAR clock clock1;
!定义时钟数据clock1
VAR num CycleTime;
!定义数字型数据CycleTime,用于存储时间数值
ClkReset clock1;
!时钟复位
ClkStart clock1;
!开始计时
…
!机器人运动指令等
ClkStop clock1;
!停止计时
CycleTime :=ClkRead(clock1);
!读取时钟当前数值,并赋值给CycleTime
TPErase;
!清屏
TPWrite “The Last CycleTime is ”\Num:= CycleTime ;
!写屏,在示教器屏幕上显示节拍信息,假设当前数值CycleTime为10,则示教器屏幕上*终显示信息为:
“The Last CycleTime is 10”
1.3 动作触发指令
TriggL:在线性运动过程中,在指定位置准确的触发事件(如置位输出信号、激活中断等)。我们可以定义多种类型的触发事件,如TriggIO(触发信号), TriggEquip(触发装置动作),TriggInt(触发中断)等。
这里以触发装置动作类型为例,(在准确的位置触发机器人夹具的动作通常采用此种类型的触发事件):
VAR triggdata GripOpen;
!定义触发数据GripOpen
TriggEquip GripOpen, 10, 0.1 \DOp:=doGripOn, 1;①
!定义触发事件GripOpen,在距离指定目标点前10mm处,并提前0.1s (用于抵消设备动作延迟时间)触发指定事件:将数字输出信号doGripOn置为1。
TriggL p1, v500, GripOpen, z50, tGripper;
!执行TriggL,调用触发事件GripOpen,即机器人TCP在朝向P1点运动过程中,在距离P1点前10mm处,并且再提起0.1秒则将doGripOn置为1。
例如,为提高节拍时间,在控制吸盘夹具动作过程中,在吸取产品时我们需要提前打开真空,在放置产品时我们需要提前释放真空,为了能够准确的触发吸盘夹具的动作,我们通常采用Trigg指令来对其进行控制。
注:如果在触发距离后面添加可选参
变量\Start,则触发距离的参考点不再是终点,而是起点。
例如:
TriggEquip GripOpen, 10\Start, 0.1 \DOp:=doGripOn, 1;
TriggL p1, v500, GripOpen, z50, tGripper;
则当机器人TCP朝向p1点运动过程中,离开起点后10mm处,并且提前0.1s触发GripOpen事件。
1.4 数组的应用
在定义程序数据时,我们可以将同种类型、同种用途的数值存放在同一个数据中,当我们调用该数据时需要写明索引号来指定我们调用的是该数据中的哪个数值,这就是我们所谓的数组。在RAPID中可以定义一维数组、二维数组以及三维数组。
例如,一维数组:
VAR num num1{3}:=[5, 7, 9];
!定义一维数组num1
num2:=num1{2};
!num2被赋值为
例如,二维数组:
VAR num num1{3,4}:=[[1,2,3,4]
[5,6,7,8]
[9,10,11,12]];
!定义二维数组num1;
num2:=num1{3,2};
!num2被赋值为10
在程序编写过程中,当需要调用大量的同种类型、同种用处的数据时,我们在创建数据时可以利用数组来存放该些数据,这样便于在编程过程中对其进行灵活调用;
甚至在大量IO信号调用过程中,我们也可以先将IO进行别名的操作,即将IO信号与信号数据关联起来,之后将这些信号数据定义为数组类型,在程序编写中便于对同类型、同用处的信号进行调用。
1.5 中断程序①
在程序执行过程中,如果发生需要紧急处理的情况,这就要中断当前程序的执行,马上跳转到专门的程序中对紧急情况进行相应处理,处理结束后返回至中断的地方继续往下执行程序。专门用来处理紧急情况的专门程序称作中断程序(TRAP)
更多资讯:ABB机器人