六大编程技巧带你玩转ABB机器人!

技术干货|六大编程技巧玩转ABB机器人

ABB机器人Pdisp轨迹偏移使用、单工位多次预约程序、在robotstudio创建两台机器人的socket连接、双工位预约程序、与相机通讯的Socket收发数据处理与提取、如何创建数组等编程技巧,满满的实用干货!
1
ABB机器人Pdisp 轨迹偏移使用

1.如果有下图两个产品,已经完成了右边产品轨迹,左边产品估计一样,如何快速生成左边轨迹(左边产品可能有平移和旋转)。

2.完成右边轨迹示教Path_30,如上图。起点为Target_20。

3. 完成左边起点的示教,为Target_ref_start,如下图。

注:如果左边产品轨迹有旋转,示教的Target_ref_start相对于左边产品的姿态要和Target_20相对于右边产品的姿态一致(此处左边产品旋转了30°,示教的角度z方向也旋转了30°)

4.插入指令如下:

MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;//移动到Home位置

Path_30;//运行右边产品轨迹;

MoveJpHome,v1000,z100,tWeldGunWObj:=wobj0;//回到Home;

MoveJTarget_ref_start,v1000,fine,tWeldGunWObj:=wobj0;//走到左边产品起点;

ConfJOff;//因为使用偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报错 ConfLOff; //因为使用偏移,关闭轴配置监控,否则有可能使用原配置参数导致位置走不到而报错;

PDispOnRot,Target_20,tWeldGun;//设定当前位置和Target_20的偏差关系(包括平移和旋转),因为此时机器人停在Target_ref_start起点,即设定左边轨迹和右边轨迹的整体偏移关系。使用 ot表示平移和旋转均计算。如果不使用 ot,则只使用平移,旋转不计算;

Path_30;//运行原有轨迹,此时轨迹参考坐标移动关系,机器人实际走左边产品轨迹;

PDispOff;//轨迹完成,关闭平移关系;

MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;

2
ABB机器人单工位多次预约程序

1.机器人有程序如下:

2.工艺过程如下:

机器人在home等待。有人按过di信号,机器人开始执行。人工可以一次性多次预约,即如果人工一次性按过3次,机器人执行三次。

3.我们通过中断来实现。

4.中断的意义为,机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动。

5.新建一个例行程序,取名tr_1,注意:类型选中断(trap)

6.进入中断程序,插入指令如下,即当机器人执行中断程序时,给reg1记录次数加1。

7.进入主程序,设置中断及对应的io信号。

37行的意思是,任何时候di_1信号0变1,就会触发执行tr_1中断程序,即置flag1为true;

35-37行程序只要运行过一遍即可,类似于设置开关,不需要反复运行;

8. 主要程序如下。即如果reg1=0,机器人在home等待

3
在robotstudio创建两台机器人的socket连接

1.什么是socket通讯?

就是TCP/IP通讯,无协议,在微软环境下称为socket。

2.socket通讯能干什么?

可以收发制定的数据,包括sting字符串,byte数组等。

3.创建socket机器人需要什么选项?

机器人需要616-1 PC-INTERFACE选项。

4.socket通讯网线插哪个网口?

Service口(IP固定:192.168.125.1)或者Wan口都可以(可以自己设置)。

5.创建client端的实例

通常机器人和相机通讯,机器人作为client端。

a、新建一个机器人系统,注意建立系统时加入pc-interface选项。

b、为了避免之前的连接没有关闭,先插入socketclose指令,后面的socket1为自己新建的socketdev类型的变量。

c、之后插入创建连接socketCreate。

d、插入建立连接SocketConnect,后面需要制定Server的ip和端口,如果是在电脑和另一台虚拟控制器连接,ip设为“127.0.0.1”,端口自定义,建议不要用默认的1025。

这一步作用为机器人会和server建立连接,如果没有建立成功会一直等待,如果成功则往下执行。

e、此处做测试,在建立成功后,插入TPWrite指令,可以在示教器看到socketclinent connect successful。

f、接下去可以收发数据,此处示例为client先发送数据给server,再接受server发送回来的数据。

g、SocketSend后面可以发送string或者byte数组,具体可以选择不同可选变量。

h、发送完毕后client接受到server发回的数据并写屏。

6.以下为server端示例

a、重新创建一个工作站,创建时不要忘记添加pcinterface选项。

b、作为server,机器人需要创建2个socketdev变量。

c、为了避免之前的连接没有关闭,同样建议先socketclose。

d、

e、接着创建socketCreatetemp_socket 服务器端socketdev。

f、SocketBind为绑定socket要监控的ip和端口,如果是虚拟仿真,ip为127.0.0.1,端口自定义(和client端设置一致)。

g、SocketListen为机器人server监听是否有client连接。

h、socketAccept为接受client的连接。

i、建立连接后,机器人就可以执行死循环,即一直处于收发状态。

j、 之前client程序为client先发后收,故这里server先收后发。

7.client和server都写完后,可以运行,注意先运行server端,即server机器人处于监听状态

8.server机器人收到的讯息如下:

9. client机器人收到的讯息如下:

4
双工位预约程序

1.有如下双工位生产

2.工艺过程如下:

人工完成1#工位上料后按按钮di_1(按钮不带保持,即人手松开信号为0))机器人焊接1#工位。

此过程中人工对2#工位上下料,完成后按di_2完成预约(即不需要等机器人完成1#工作)。

机器人完成1#工作后,由于收到过di_2预约信号,机器人自动去完成2#工位

3.我们通过中断来实现。

4.中断的意义为,机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动

5.新建一个例行程序,取名tr_1,注意:类型选中断(trap)

6.进入中断程序,插入指令如下,即当机器人执行中断程序时,给bool量置true

同理设置第二个中断程序

7.进入主程序,设置中断及对应的io信号

37行的意思是,任何时候di_1信号0变1,就会触发执行tr_1中断程序,即置flag1为true

35-40行程序只要运行过一遍即可,类似于设置开关,不需要反复运行

8.主要程序如下。即如果没有人给di信号,机器人就在home位等待。

5
与相机通讯的Socket收发数据处理与提取

1.相机通常发送字符串给机器人,比如”1.23,4.56,7.89D”,即x为1.23,y为4.56,z的角度为7.89,用D作为结束符,数据之间用“,”隔开。

2.如果机器人收到上述字符串,如何把字符串提取出来并付给变量deltaX,deltaY,和thetaZ?

3.建立若干num变量,用以存储过程数据,比如StartBit1,表示x的数据从第几位开始,Endbit1表示x的数据结束是第几位,Lenbit1表示x数据的长度,s1表示提取的x的值的字符串

4.

5.先假设x的第一位是1,给Startbit1赋值为1

6.插入函数strfind,查找第一个“,”在第几位,得到EndBit1值

7.

8.EndBit1减去StartBit1就是x的数据长度

9.同理得到y和theta的信息

10.通过StrPart函数,提取从StartBit1开始到LenBit1结束的字符串,即x的值的字符串

11.

12.同理得到y和z的字符串

13.通过StrToVal函数,把s1转为num型,付给delta_x, StrToVal函数的反馈值为bool量,即转换成功为true不成功为false

14.同理得到delta_y和delta_theta

15.成功后可以写屏测试,如下图:

6
ABB机器人如何创建数组

1.什么是数组?

将相同数据类型的元素按一定顺序排列的集合

2.有什么用?

比如创建一个robtarget类型的数组p_array,p_array里有10个点位,走完10个位置就可以用如下代码,方便简洁

FOR i FROM 1 TO 10 DO

MoveL p_array{i},v500,z1,tool0;

ENDFOR

3.哪些数据类型能创建数组?

所有数据类型都可以创建数组

4.数组最大几维?

ABB机器人'>ABB机器人数组最大三维!

5.数组起始序号是0还是1?

是1

6.如何创建?

a.程序数据

b.选中类型,比如Robtarget

c.新建,设置名称,维数(这里举例1维),每个维度的元素数量(举例为10)

d.创建完,就有了一个10个数据的p_array,

e.修改点位,点击上图上某一行,修改位置,即把数组里的某一个元素位置修改了。

(0)

相关推荐

  • 干货 | ABB机器人数组的认识及应用

    数组的定义 在定义程序数据时,可以将同种类型,同种用途的数值存放在同一个数据中,当调用该数据时需要写明索引号来指定调用的是该数据中的哪个数值,这就是所谓的数组.在RAPID中,可以定义一维数组,二维数 ...

  • ABB机器人与视觉通信发送数据

    导读:在工作中,通常会使用机器人去实现物料的抓取,而物料的颜色.形状.大小.角度等参数,机器人无法去实现,而视觉相机有可以实现这一功能.但是双方交换数据时,需要编程人员去规约或者提取.今天就和大家聊聊 ...

  • ABB机器人一键回HOME

    PLC电气自动化 PLC实用干货.编程技巧,一触即达! 公众号 99%工控人会关注的公众号▲ 一键回HOME 前言:今天给大家分享的是ABB机器人一键回 HOME 方法,为什么要一键回HOME,当机器 ...

  • 浅谈ABB涂胶机器人的功能及应用

    闫肃(中国第一汽车集团股分有限公司,长春130000)0引言随着我国汽车工业的飞速发展,伴随着材料.机械加工.电子.控制.传感器等相关技术的不断进步,机器人已经被广泛地应用于各大汽车生产厂.特别是随着 ...

  • ABB机器人中如何实现程序计时???

    我想测试一方形轨迹程序所需多少时间. 是拿个秒表来检测吗? 我的天呐,怎么可能拿个秒表来检测 其实ABB机器人指令中有相应的计时指令 , 我们只需把其添加到程序中即可 那么该指令如何编写 1.建立一个 ...

  • ABB机器人如何快速通过PLC输入数字编号来调用对应不同轨迹例行程序

    ABB机器人CallByVar指令就可以通过PLC输入数字编号来调用对应不同轨迹例行程序. 指令CallByVar(Call By Variable)是通过不同的变量调用不同的例行程序,指令格式如下: ...

  • 拥有这些编程技巧,轻松玩转ABB机器人

    关于启程 启程自动化成立于2012年,培训项目主打西门子PLC编程系统集成.工业机器人编程.EPLAN电气设计.视觉等培训与技术服务的机构.官网:www.qichengplc.com ABB机器人Pd ...

  • 技术干货|用这六大编程技巧玩转ABB机器人

    ABB机器人Pdisp 轨迹偏移使用.单工位多次预约程序.在robotstudio创建两台机器人的socket连接.双工位预约程序.与相机通讯的Socket收发数据处理与提取.如何创建数组等编程技巧, ...

  • 这些创意摄影小技巧带你玩转摄影

    当你已经熟悉你的相机,对基本摄影技能了然于心,却始终无法找到突破口.面对那些平平无奇的片子倍感沮丧之时,就是你应该转换角度,开发摄影创意之时了.下面这些技巧或许能够助你打破瓶颈,找到新的出路哦. 技巧 ...

  • 9个神技巧带你玩转PPT

    为什么别人做PPT做的非常棒,而你只会用现成模板+复制粘贴,甚至没有逻辑.辣眼睛?从策划.设计,到文字.逻辑,告诉你PPT该怎么做! 1.文字不是用来读的 PPT的本质在于可视化,可视化的3个好处:便 ...

  • 五个神技巧带你玩转Excel最强利器数据透视表

    无论是数据汇总.统计,还是数据分析,数据透视表无疑都是做表一族的必备神器,如果你还没听说过数据透视表,自行反省3秒钟吧! 虽然很多人知道数据透视表,但却用不好,尤其是在工作中遇到实际问题时就不知道该怎 ...

  • 搭上AI的春风枯木也能秒变机器人!这不是玩笑日本东京大学带你玩转枯木机器人

    导读 枯树枝能走路,除了科幻电影或是动画片里面,很少有人敢这么想吧?但是在机器人的世界搭上深度学习这把利刃,一切就是这么神奇. 作者:溪岚 编辑:小木 一个人在野外,想玩机器人(虽然小编也不知道为什么 ...

  • 零基础入门ABB机器人,仅需掌握6大编程技巧~

    工业机器人的发展以及机器人智能化水平的提高,机器人的应用范围还在不断地扩大.那么机器人能干啥?自动识别.在线生成包含工艺参数的轨迹.自动作业. 只有你想不到没有他们做不到!今天小编就带大家见识下,AB ...

  • 相见恨晚的50个CAD技巧,带你玩转CAD!

    青松设计网提供:UG软件下载,UG视频,UG产品设计,UG模具设计,UG编程,UG设计资料,UG模型,创意思路,学习平台,我们是知识搬运工,我们是知识传播者 CAD画图已经成为化工人的必备技能.什么, ...

  • 【干货】ABB机器人编程技巧8:ABB机器人数据存储类型区别

    CONST VAR PERS 区别 1)ABB机器人任何数据都有存储类型,分为常量CONST,变量VAR和可变量PERS 2)常量CONST,即程序内不能赋值 3)变量和可变量程序都能赋值,区别如下 ...