首页 上一页 1 2 3 下一页 尾页

ABB机器人码垛储备知识 点击:4305 | 回复:60



nebq

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:16帖 | 139回
  • 年度积分:119
  • 历史总积分:5452
  • 注册:2014年8月03日
发表于:2018-08-05 10:49:00
楼主

前言:ABB有出过一份关于码垛的教程,其中就有讲到码垛中常常用到的一些指令,今天刚好有空,整理一份出来跟大家一起学习学习。


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 ;

!写屏,在示教器屏幕上显示节拍信息,假设当前数值CycleTime10,则示教器屏幕上最终显示信息为:

“The Last CycleTime is 10”

 

 

 

1.3  动作触发指令

 

TriggL在线性运动过程中,在指定位置准确的触发事件(如置位输出信号、激活中断等)。我们可以定义多种类型的触发事件,如TriggIO(触发信号), TriggEquip(触发装置动作),TriggInt(触发中断)等。

这里以触发装置动作类型为例,(在准确的位置触发机器人夹具的动作通常采用此种类型的触发事件):

 TriggL.png

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

    例如:

VAR intnum intno1;

!定义中断数据intno1

IDelete intno1;

!取消当前中断符intno1的连接,预防误触发。

CONNECT intno1 WITH tTrap;

!将中断符与中断程序tTrap连接。

ISignalDI di1,1, intno1;

!定义触发条件,即当数字输入信号di11时,触发该

中断程序。

 

TRAP  tTrap

     reg1:=reg1+1;

 ENDTRAP

 

我们不需要在程序中对该中断程序进行调用,定义触发条件的语句一般放在初始化程序中,当程序启动运行完该定义触发条件的指令一次后,则进入中断监控,当数字输入信号di1变为1时,则机器人立即执行tTrap中的程序,运行完成之后,指针返回至触发该中断的程序位置继续往下执行。

 

 

 

1.6  复杂程序数据赋值

 

多数类型的程序数据均是组合型数据,即里面包含了多项数值或字符串。我们可以对其中的任何一项参数进行赋值。

 

例如我们常见的目标点数据:

PERS  robtarget  p10 :=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

PERS  robtarget  p20 :=[[100,0,0],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

目标点数据里面包含了四组数据,从前往后依次为TCP位置数据[0,0,0]trans)、TCP姿态数据[1,0,0,0]rot)、轴配置数据[1,0,1,0](robconf)、外部轴数据(extax);

我们可以分别对该数据的各项数值进行操作,如:

p10.trans.x:=p20.trans.x+50;

p10.trans.y:=p20.trans.y-50;

p10.trans.z:=p20.trans.z+100;

p10.rot:=p20.rot;

p10.robconf:=p20.robconf;

赋值后则p10为:

PERS  robtarget  p10 :=[[150,-50,100],[0,0,1,0],[1,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];


正在下载,请等待……
下载附件需1积分!

1分不嫌少!


楼主最近还看过



nebq

  • 精华:0帖
  • 求助:3帖
  • 帖子:16帖 | 139回
  • 年度积分:119
  • 历史总积分:5452
  • 注册:2014年8月03日
发表于:2018-08-05 10:50:55
1楼

自己先做沙发,有做法码垛的来讨论讨论还有那些码垛常用的指令,在整理出来跟大家学习。

域外来风

  • 精华:0帖
  • 求助:3帖
  • 帖子:14帖 | 1748回
  • 年度积分:72
  • 历史总积分:3405
  • 注册:2016年11月22日
发表于:2018-08-06 08:48:18
2楼

感谢楼主分享

域外来风

  • 精华:0帖
  • 求助:3帖
  • 帖子:14帖 | 1748回
  • 年度积分:72
  • 历史总积分:3405
  • 注册:2016年11月22日
发表于:2018-08-06 08:48:31
3楼

值得学习!

域外来风

  • 精华:0帖
  • 求助:3帖
  • 帖子:14帖 | 1748回
  • 年度积分:72
  • 历史总积分:3405
  • 注册:2016年11月22日
发表于:2018-08-06 08:48:42
4楼

很有帮助!

18620176512

  • 精华:0帖
  • 求助:3帖
  • 帖子:6帖 | 24回
  • 年度积分:0
  • 历史总积分:520
  • 注册:2013年3月27日
发表于:2018-08-06 13:21:59
5楼

资料非常实用,对了解数据类型很有帮助

技术员小赵

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2017年10月23日
发表于:2018-08-08 09:24:52
6楼

非常干些分享,大大的赞啊

Caiken

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 27回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2017年6月23日
发表于:2018-08-09 13:30:19
7楼

感谢楼主分享。。。。

六弦琴

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年12月19日
发表于:2018-08-11 13:18:24
8楼

机器人太高大上了,看不懂。

凤舞未来

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 53回
  • 年度积分:0
  • 历史总积分:82
  • 注册:2018年4月13日
发表于:2018-08-13 00:33:34
9楼

正在找这方面的资料 谢楼主分享

maoluocheng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 33回
  • 年度积分:0
  • 历史总积分:185
  • 注册:2018年8月16日
发表于:2018-08-16 10:16:17
10楼

感谢楼主分享


暴走蜗牛

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2018年9月03日
发表于:2018-09-03 09:13:51
11楼

这个可以有,下载来学习一下

暴走蜗牛

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2018年9月03日
发表于:2018-09-03 09:19:03
12楼

我有101分,这个下载只需要1积分,为什么我的不可以下载呢


spy14414

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 56回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2018年10月11日
发表于:2018-10-17 15:31:37
13楼

支持一下,这个能帮很多人的,尤其我们这些初学者

CK89

  • 精华:0帖
  • 求助:1帖
  • 帖子:6帖 | 536回
  • 年度积分:21
  • 历史总积分:534
  • 注册:2016年4月17日
发表于:2018-10-23 08:33:11
14楼
自己先做沙发,有做法码垛的来讨论讨论还有那些码垛常用的指令,在整理出来跟大家学习。                    



Rabat工控小白

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 19回
  • 年度积分:0
  • 历史总积分:85
  • 注册:2018年8月01日
发表于:2018-10-26 15:50:38
15楼

各位大佬好,有没有STL语言编程的资料啊

Ryan_1102

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 18回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2017年12月17日
发表于:2018-10-26 16:18:34
16楼

资料非常实用,对了解数据类型很有帮助


飞天大圣

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2018年10月30日
发表于:2018-10-30 16:54:39
17楼

资料非常实用,对了解数据类型很有帮助

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 40回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2008年2月21日
发表于:2018-11-01 09:37:41
18楼

好资料,谢谢

TuzkiW

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 323回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2013年11月19日
发表于:2018-11-17 22:17:17
19楼

这个很好,值得学习

yalaoji

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 28回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2017年8月08日
发表于:2018-11-20 09:11:10
20楼

感谢楼主,瞄一下啥资料


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页