RobotStudio软件:ABB机器人喷涂虚拟仿真

news/2024/10/18 0:22:11/

目录

概述

喷涂机器人工作站创建

Smart组件添加

喷涂机器人示教编程

工作站获取虚拟控制器变量数据配置

Smart组件属性与信号连接

喷涂工作站I/O信号逻辑设定

喷涂机器人仿真运行


本文已经首发在个人微信公众号:工业机器人仿真与编程(微信号:IndRobSim),欢迎关注!

概述

ABB机器人喷涂加工在生产中应用非常广泛,RobotStudio软件针对机器人的喷涂工艺,专门开发了用于喷涂工艺应用的Smart组件,用户使用这些组件能够轻松地实现机器人的喷涂虚拟仿真。通过喷涂Smart组件的功能,机器人喷涂枪上能够生成油漆的雾化模型,在喷涂过程中还能在指定的工件上实时显示出指定颜色的漆面效果。

喷涂机器人工作站创建

在RobotStudio软件的虚拟仿真环境中,添加一台喷涂机器人,并设置喷涂机器人的属性参数。

从软件模型库中导入一把喷涂枪,将其安装到机器人上。然后,利用软件的建模功能,创建一个矩形体作为喷涂工件。合理布局机器人与喷涂工件的位置,效果如下图所示。

“从布局”生成机器人系统,设置系统选项参数,如简体中文系统语言、DeviceNet通信等。

Smart组件添加

软件“建模”菜单栏下,点击“Smart组件”命令按钮,为工作站添加一个空的Smart组件。

在空Smart组件中分别添加1个“PaintApplicator”子对象组件、1个“ColorTable”子对象组件和1个“RapidVariable”子对象组件。

PaintApplicator是喷涂应用Smart组件,使用此组件能够在喷涂枪上生成喷涂雾化模型,并在指定工件上生成规定的喷涂漆面效果。PaintApplicator各参数含义如下。

Part选择要喷涂的工件。

Color喷涂颜色设置,一般由ColorTable组件进行属性传递。

ShowPreviewCone激活后,将按设定的尺寸显示喷涂雾化模型。

Strength设置油漆的流量,即单位时间内喷涂枪喷出的油漆体积,此参数决定漆面颜色浓淡程度。

Range设定喷涂雾化模型长度,即油漆从喷涂枪喷出后的有效长度。

Width设定喷涂雾化模型最大宽度,即油漆从喷涂枪喷出后到有效长度时的宽度值。

Height设定喷涂雾化模型最大高度,即油漆从喷涂枪喷出后到有效长度时的高度值。

Enabled喷涂应用Smart组件启动与停止控制I/O信号,当信号置位时,组件启动;反之,组件停止。

Clear喷涂效果清除控制I/O信号,信号接通后,工件上的喷涂效果立即清除。

喷涂应用Smart组件参数设置完成后,点击“应用”按钮,软件工作区出现喷涂雾化模型。左侧浏览树中,将PaintApplicator拖拽到喷涂枪ROBOBEL926_T_TD_03上,在弹出的选择工具框架对话框中选择喷涂枪的第一个TCP坐标系,即ROBOBEL926_T_TD_0,点击“确定”按钮。

在弹出的更新位置提示框中,点击“是”按钮。此时,RobotStudio软件工作区喷涂枪喷嘴处出现圆锥体的雾化模型。

ColorTable是喷涂应用颜色列表Smart组件,在此组件中可以按照索引号定义喷涂颜色的数量以及每个索引号对应的油漆颜色。ColorTable各参数含义如下。

NumColors定义颜色数量。

SelectedColorIndex颜色索引号设定,即通过设定颜色对应的索引号来选择相应的颜色,索引编号从0开始。

SelectedColor显示当前设定的索引号(SelectedColorIndex)对应的颜色。

Color(0,1,2,3,…)定义每个索引号对应的颜色,索引编号从0开始,依次递增。

喷涂机器人示教编程

在示教编程前,先要为机器人定义一个控制喷涂启动与停止的数字量输出信号,本例将此信号名称设置为“do1”。

然后,声明一个全局型整数变量,作为喷涂颜色索引号设定变量,本例中定义此变量的名称为“ColorIndex”。

为机器人编写运动程序,示教喷涂路径工艺点时,喷涂雾化模型一定要接触到工件表面,否则不能正常显示油漆颜色效果。运动程序编写完成后,软件工作区会出现闭合的机器人运动路径轨迹线,如下图所示。

最后,在喷涂工艺点程序的前后分别添加喷涂启动与停止信号控制指令,以及喷涂颜色索引号设定指令。

喷涂机器人完整程序代码如下所示。

MODULE Module1CONST robtarget Target_10:=[[1820.373813677,0,1314.600407022],[0.258819045,0,0.965925826,0],[-1,-3,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_30:=[[1997.999988521,750.210302152,790.000171024],[0.000000092,-0.000000101,1,0.000000226],[0,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_20:=[[1998.000010383,750.210063185,632.000200486],[0.000000108,-0.000000221,1,-0.000000075],[0,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_40:=[[1001.999898594,750.210522192,632.000059246],[0.000000006,-0.000000456,1,0.000000125],[0,-4,4,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_50:=[[1001.999877231,750.210624682,790.000055413],[-0.000000014,-0.000000366,1,0.000000316],[0,-4,4,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_60:=[[1002.000232402,-0.001652421,790.000317134],[0.000000312,0.000001534,1,-0.000000039],[0,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_70:=[[1002.000193884,0.00167586,632.000376808],[0.000000292,-0.000001504,1,0.000000095],[-1,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_80:=[[1997.999480587,-0.001437037,631.999974098],[-0.000000125,0.000001632,1,0.000000065],[0,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_90:=[[1997.999727685,-0.001018164,790.00003762],[-0.000000042,0.000001172,1,0.000000065],[0,-4,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_100:=[[1998.000153839,-750.210467904,790.000207227],[0.000000132,0.000000169,1,-0.000000263],[-1,-3,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_110:=[[1997.999991642,-750.210189201,632.000184525],[0.000000091,0.000000111,1,-0.000000131],[-1,-3,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_120:=[[1001.999470729,-750.210419971,631.999627514],[-0.000000338,0.000000144,1,-0.000000279],[-1,-3,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];CONST robtarget Target_130:=[[1002.000051083,-750.210549948,790.000204503],[0.00000014,0.000000344,1,-0.000000269],[-1,-3,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];PERS num ColorIndex:=0;PROC Path_10()MoveJ Target_10,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveJ Target_30,v500,z20,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveL Target_20,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;ColorIndex:=0;Set do1;MoveL Target_40,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;Reset do1;MoveL Target_50,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveJ Target_60,v500,z20,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveL Target_70,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;ColorIndex:=1;Set do1;MoveL Target_80,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;Reset do1;MoveL Target_90,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveJ Target_100,v500,z20,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveL Target_110,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;ColorIndex:=2;Set do1;MoveL Target_120,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;Reset do1;MoveL Target_130,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;MoveJ Target_10,v500,fine,ROBOBEL926_T_TD_150\WObj:=wobj0;ENDPROC
ENDMODULE

工作站获取虚拟控制器变量数据配置

RapidVariable是设置或获取机器人虚拟控制器中RAPID变量值的Smart组件,在本例中使用此组件来获取喷涂颜色索引编号。RapidVariable各参数含义如下。

DataType设定RAPID变量类型。

Controller选择RAPID变量所在的虚拟控制器。

Task设置RAPID变量所在的机器人任务。

Module设置RAPID变量所在的机器人程序模块。

Variable设置要获取的RAPID变量名称。

Value要设置的RAPID变量值。

Set当信号被置位时,将设定值(Variable)发送给机器人控制器中对应的RAPID变量。

Get当信号被置位时,获取机器人控制中的RAPID变量数据。

Smart组件属性与信号连接

在Smart组件编辑窗口中,点击“设计”标签,在此界面里可以设置Smart组件中各子对象组件相互之间的属性传递关系以及相互之间信号控制的逻辑关系。

先在Smart组件“输入”端,创建一个组件启动与停止的数字量输入信号,本例中信号名称设置为“diPainting”。

将diPainting信号分别与RapidVariable子对象组件的“Get”信号端、PaintApplicator子对象组件的“Enabled”信号端连接起来,用来控制喷涂颜色获取以及喷涂启动与停止。

RapidVariable子对象组件的“Value”属性端与ColorTable子对象组件的“SelectedColorIndex”属性端连接起来,ColorTable子对象组件的“SelectedColor”属性端与PaintApplicator子对象组件的“Color”属性端连接起来,用来设定喷涂颜色。

喷涂工作站I/O信号逻辑设定

在“工作站逻辑”设定窗口中,选择“设计”选项卡,然后将机器人虚拟控制器中的“do1”信号与Smart组件中的“diPainting”信号连接起来,这样机器人就能够通过do1信号来控制Smart组件的启动与停止。

喷涂机器人仿真运行

在仿真运行之前,先在“仿真设定”窗口中把机器人任务的进入点设置为创建好的喷涂程序,本例为“Path_10”。

对机器人仿真运行,运行效果如下方动态图所示,可以看到机器人按照编写的喷涂程序对工件进行喷涂,同时在工件上实时显示油漆的颜色效果。

The End


上一篇:ABB机器人二次开发:基于Screen Maker功能的I/O信号监控画面设计


http://www.ppmy.cn/news/394844.html

相关文章

深度学习AI克隆人声模型

在过去的几年中,人工智能(AI)在音乐产业中的应用已经变得越来越普遍。在这篇博客中,我们将探索如何使用AI生成模型来复制人声,并使用这些复制的人声来唱歌。我会以尽可能详细的方式展示这个过程大纲,并提供相关代码。 1. 概述 我…

【哈佛积极心理学笔记】第20课 幸福与幽默

第20课 幸福与幽默 The vanguard of the positive psychology revolution: Our brain is basically a single processor, capable of consciouly choosing to devote resources either to the pain and suffering on one side, or viewing the world that lens of something l…

如何修改鼠标的颜色、大小、形状、其他

第一种方法: 打开笔记本设置(左下角win) 2.选择设备 3.选择鼠标 4.修改颜色、大小(最右边) 5.修改 第二种方法: 1.直接搜索 2.其他同上 若文章有错,欢迎私信告诉,有问题亦可私信提…

调整鼠标大小

windows 10 一、点击电脑左下角窗口形状的图标 二、点击”设置“ 三、点击”轻松使用“ 四、点击“鼠标指针” 五、在“更改指针大小和颜色”模块进行更改

计算机的配置鼠标,鼠标设置,教您鼠标设置在电脑的什么位置

鼠标是我们在使用电脑的时候不可缺少的设备,而为了让鼠标更好的操作,我们就需要通过鼠标设置来进行更改,但是很多用户并不知道鼠标设置在哪,又该怎么设置鼠标呢?下面,小编给大家介绍鼠标设置在电脑的什么位…

鼠标组件——可移动和可改变大小组件

示例代码下载:http://download.csdn.net/source/950979 本示例演示如何实现用鼠标移动控件位置,如何用鼠标改变控件的大小,这两种功能分别由两个组件实现,ResizableComponent和MovableComponent 本示例演示效果如下,在…

规定时间移动鼠标

因为一些软件,在听一些东西的时候会要求规定时间内鼠标必须运动,否则会自动暂停。 所以就用空闲时间写了一个python代码,让鼠标在一定时间内随即运动。 首先需要安装一些第三方库: pymouse,pypiwin32,PyQ…

以金融证券、游戏、电商等案例详解SQL强化

SQL强化 SQL执行顺序 --举例: select a.sex,b.city,count(1) as cnt,sum(salary) as sum1 from table1 a join table2 b on a.idb.id where a.nameb.name group by a.sex,b.city having cnt>2 order by a.sex,b.city limit 10--或者是 select distincta.sex,b.ci…