百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

ABB机器人编程实用技巧,多项案例

yund56 2025-02-25 01:17 13 浏览

今日分享ABB机器人Pdisp 轨迹偏移使用、单工位多次预约程序、在robotstudio创建两台机器人的socket连接、双工位预约程序、与相机通讯的Socket收发数据处理与提取、如何创建数组等编程技巧感兴趣的小伙伴尽快收藏!



01

PART

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;




02

PART

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等待



03

PART

在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机器人收到的讯息如下:



04

PART

双工位预约程序

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位等待。


9)


05

PART

与相机通讯的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) 成功后可以写屏测试,如下图



06

PART

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、修改点位,点击上图上某一行,修改位置,即把数组里的某一个元素位置修改了。



相关推荐

《暗黑1》被移植成网页游戏 可在浏览器上玩了

《暗黑1》,这款1996年发售的“鼠标杀手”砍杀游戏,现在可以在浏览器上玩了。国外专注暴雪游戏的Rivsoft分享了一个《暗黑1》的共享版本,该版本只包含地下城的头2个地区和三个角色职业中的一个。不...

网页代码过滤 轻松获取专辑目录

通过过滤网页代码,可以将网页上显示不全的长文件名列表完整地提取出来。我有一个含有75个视频文件的《中医诊断学》课件,文件名是以01.RMVB、02.RMVB……75.RMVB这种格式命名的。我希望能找...

IDEA 2021首个大版本发布,Java开发者感动哭了(附新亮点演示)

工欲善其事,必先利其器!就在不久之前,Java领域的开发神器IntelliJIDEA终于迎来2021年的一个重要的大版本更新:IntelliJIDEA2021.1。现如今大量的Java开发者深度...

View Source:在 iOS 上轻松查看网页源代码

在移动互联网时代,移动端的应用和web体验都尤为重要,在PC上有很多web前端工具可以选择,而在移动端貌似就少之又少了,在NEXT出现的ViewSource能帮你在iOS上查看...

当我们《寻找房祖名》,我们能找到什么?

游戏葡萄原创专稿,未经允许请勿转载柯震东,因为在九把刀电影《那些年我们追过的女孩》中饰演男主角柯景腾而走红的台湾影星,在昨天被爆出了和著名演员成龙之子房祖名吸毒被抓的丑闻,一时间相关讨论席卷社交网络。...

多用途游戏娱乐新闻网站HTML5模板

Retnews是一个响应式的HTML新闻,博客,杂志网站模板,可以使用这套前端模板简约很多设计的工作。模板有许多特性适合流行的主题商业、时尚,游戏,娱乐,生活方式、体育、科技、政治、旅行、天气、视频等...

简约好看的个人引导页HTML源码下载

源码介绍一款非常简约好看的个人引导页HTML源码,非常适合个人主页以及个人导航使用,纯HTML不需要数据库,上传服务器即可使用!...

教你如何在微信公共平台上插入小游戏(图文教程)

很多玩微信公共平台的朋友都想在公共平台上面插入几个小游戏,用来跟用户之间互动,这里花生来分享一下如何在微信公共平台上插入游戏,以及如何制作html5微信小游戏。首先是找游戏,总共有三个方法,本人比较倾...

html5重力感应剖析附源码

下面是测试html5重力感应的demohttp://bbs.qietu.com/html/zhongli/http://www.qietu.com/html/f2/qqqianbao/demo2是切图...

Skill 版本的“俄罗斯方块”游戏源码

蓝字关注我们看到论坛里的一个比较早的帖子,论坛网友xuhongwei上传了一个自己用Skill编写的俄罗斯方块游戏源码,觉得比较有意思,现在分享给大家。链接:http://bbs.eetop.cn...

20行JS代码实现一个H5小游戏

JS真是个神奇的语言,仅仅用约20代码,就能实现一个可玩性不错的H5小游戏。游戏效果如下:UI看着很简约,类似马里奥过关,该有的基本功能都有:玩家可以跳跃,以跳过河道、路面突刺,可以趴下以躲避上方的障...

使用canvas实现简单的贪吃蛇游戏,html+css+js

一.话不多,先瞅效果:又在别的地方嫖到了这个效果研究了亿下下,制作过程如下(超详细):二.实现过程(源码在最后):1.定义canvas标签:<canvasid="canvas"...

豆包给我输出的html在线象棋源码(有点简单)

也许是我关键词没有写对,不过豆包后面也说了,以下是一个简单的HTML在线象棋示例源码,此示例借助HTML、CSS和JavaScript实现基本的棋盘显示和棋子移动模拟,不过它未涵盖完整的象...

小狐狸ChatGPT付费创作系统V2.4.7全开源版 (vue全开源端)

测试环境:Nginx1.20+PHP7.4+MySQL5.7本版本为官方的最新开源包对应V2.4.7版本,包含了前后端所有开源包,是目前最新全开源版本,需要二开的这部分朋友也有选择了,如果不需要二...

2018至2023我的开源项目分享

本文主要针对博主2018毕业至2023参与软件开发4年多以来自建的三个开源项目进行介绍与分享,希望对看到本文的新入行的初中级开发者或者未毕业想入行的学生们能够起到帮助。下面是项目介绍一、newbee-...