资讯详情

基于ABB涂装自动编程的主梁喷涂程序开发

涂装市场采购网 2024-06-18
阅读:203

基于ABB涂装自动编程的主梁喷涂程序开发

李静宇 邵旺盛 吕宁 付晓辰

河南卫华重型机械股份有限公司

河南 长垣 453400

摘要:为了提高公司生产效率,节约人工成本及减少喷漆时对周围环境的污染,公司开发人员利用QT以及VS软件,使用C++语言自主研发了基于ABB机器人的涂装线参数化自动编程系统,完成了对起重机主梁的自动化喷涂。主梁喷涂镜像程序便是基于涂装线参数化自动编程系统的二次开发,其目的便是解决起重机主梁在喷涂时的单方位固定放置问题。

Abstract: In order to improve the company's production efficiency, save labor costs and reduce the pollution of the surrounding environment when painting, the company's developers use QT and VS software, using C++ language independently developed ABB robot coating line parameterized automatic programming system, completed the automatic spraying of crane girder. The main beam spraying mirror program is based on the painting line parametric automatic programming system for secondary development, its purpose is to solve the unilateral fixed placement problem of crane girder when spraying.

ABB机器人; 自动化; C++; 起重机主梁

Keywords: ABB robot; Automation; C++; Crane girder


0 前言

随着机器人、人工智能的升温,工业自动化趋势愈演愈烈,未来发展前景日趋明朗。推动工业自动化发展,不仅有助于促进传统行业进行改革,还将提升我国工业信息化程度,发展潜力巨大。起重机与国家的桥梁、楼房以及军工产业有着密不可分的联系,而为了防止起重机的腐蚀、增加使用寿命,起重机的喷涂便成为了至关重要的一个环节。由于我国工业自动化水平相对较低,喷涂起重机大多采用人工,而长时间喷涂油漆会对人体产生伤害,因此开发一款完善的涂装线参数化自动编程系统既能增加公司效益,又能降低成本,解决油漆对人体产生伤害的问题。

涂装线参数化自动编程系统是针对起重机主梁喷涂所开发的一款应用软件,其主要作用是利用QT编写的图形界面读取配置文件中各类主梁的参数,根据参数以及编写的C++程序生成ABB机器人的控制命令文件,实现ABB机器人的自动化化喷涂。涂装系统已能够对跨度<=32米、宽度<=1.5米、高度<=1.6米QD类型的起重机主梁进行自动化喷涂,但主梁在喷涂时的摆放位置受到限制,仅能单方位固定放置——下盖板在左侧、上盖板在右侧,有些跨度较大的主梁因其摆放位置与原系统所能涂装的主梁方向相反,而翻转主梁存在较大的危险性,造成符合喷涂要求的主梁无法正常进入涂装线喷涂,影响公司生产效率。

针对上述问题对原系统进行优化编程,本文设计的主梁喷涂镜像程序是基于ABB机器人的涂装线参数化自动编程系统的二次开发优化。在原系统的基础上编写主梁放于反向位置的ABB喷涂机器人的自动化涂装代码,使涂装产线输送链上可双向放置主梁,进行机器人自动化喷涂。

1 涂装线自动编程系统简介

1.1 涂装产线硬件设施

经过前期的调研准备,公司决定采用ABB机器人完成起重机主梁自动化喷涂,采用ABB机器人的优势如下:

(1)ABB生产有专门用来进行喷涂的工业机器人,公司可直接进行采购并使用,无需耗费时间自行研发。

(2)ABB机器人具有示教编程的功能,公司的工作人员可以先进行实际操作,熟悉机器人的移动方式,并进一步发现参数化自动编程时所需注意的关键点。

(3)ABB机器人的核心优势在于运动控制,不仅运动控制解决方案全面,使用的技术文档也相当专业具体,而使用机器人进行自动化喷涂最重要的一点就是运动的多方向性和控制精准度。

(4)ABB公司为了方便用户的使用,专门为机器人开发配备了ABB ShopFloorEditor软件,该软件可根据控制命令生成虚拟化的涂装轨迹,方便用户查看机器人喷头的位置和方向,及时发现错误。

选取涂装产线的合适位置安装ABB机器人,设置机器人X、Y、Z三轴的方向,标定坐标原点。喷涂时主梁放置在产线的支撑物上,支撑物的底部连接有输送链,当ABB机器人喷涂一段主梁后,输送链将会向前运送一段距离,到达新的喷涂起始点后,输送链停止。车间的喷涂产线如图1-1所示。

图1-1 智能化涂装产线

1.2 系统软件功能

涂装线自动编程系统是一个根据QT中INI配置文件中的主梁数据参数,生成相应的喷涂控制命令文件的应用软件,该文件可运行在ABB机器人上,机器人根据文件内的命令对主梁进行喷涂。系统的功能分别为读写INI文件数据、选择INI文件、生成控制命令MOD文件等3个功能模块。

(1)读写INI文件数据

INI文件格式是某些平台或软件上配置文件的非正式标准,以键和值构成。通过QT生成的UI界面,用户可以直接读取相应的参数值,并对参数进行修改,生成新的INI配置文件,用户可根据界面中显示的数据更加直观的调节主梁的参数,使ABB机器人能够喷涂各种类型的主梁。

(2)选择INI文件

由于涂装线自动编程系统需要完成对多种起重机主梁的喷涂,因此需根据不同的主梁型号及数据生成相应的INI配置文件,当用户需要喷涂某种型号的主梁时,可从配置文件的文件夹中选取相应的文件,并将文件中的数据显示到UI界面中。

(3)生成控制命令MOD文件

控制命令MOD文件是控制ABB机器人运行并喷涂的文件,在文件中是ABB机器人的定时、等待输送链、切换喷涂刷子、移动喷枪到达目标位置、变换姿态等命令。通过VS中编写的C++代码以及INI文件内的参数,生成控制命令,并将命令写入MOD文件中。原系统中可以生成不带走台与带走台这两种形式的起重机主梁类型的自动化涂装程序。

1.3 MOD文件解析

图1-2 MOD文件控制命令生成

图1-2所示程序代码为MOD文件中控制ABB机器人运行的命令生成方式,将UI界面内的参数赋值给内存中的变量,使用四元函数ToQuaternion计算出喷枪的姿态,line变量.arg括号中前三个分别代表喷枪在空间中XYZ方向的坐标参数,后面的参数为喷枪的姿态和喷枪移动的速度。将String类型的变量line输入给变量out,相当于输入到out所代表的MOD类型的文件内。利用相似的涂装代码,将根据主梁长宽高计算出的其他坐标点形成涂装命令,输入到MOD文件内,经由ABB机器人识别并执行,完成整根起重机主梁的自动化喷涂。

2 系统优化

2.1 系统结构组成

涂装车间左右两侧各有一台ABB机器人,分别对主梁的左右两侧进行喷涂,因此在系统中可生成6个机器人可识别的涂装控制命令MOD文件,分别由不带走台主梁左右两侧(genLeft/ genRight)、带走台主梁左右两侧(ztgenLeft/ztgenRight)以及带走台主梁翻转后左右两侧(ztrevergenLeft/ztrevergenRight)这6个函数生成,其中带走台主梁翻转后左右两侧函数是本文系统优化的目标。用户的UI界面中分为5个表格,分别为左右侧通用参数、左侧机器人常规参数、左侧机器人姿态参数、右侧机器人常规参数、右侧机器人姿态参数,根据参数中的数据可计算出ABB机器人在喷涂过程中每个点的位置及姿态,通过程序将生成的控制命令写入相应的MOD文件,将文件导入机器人,ABB机器人将按照文件中的命令行执行相应的轨迹操作。

2.2 系统优化实现

2.2.1 系统程序逻辑分析

本文是基于涂装线自动编程系统的二次开发优化,程序流程如图2-1所示。

图2-1 涂装系统流程图

代码的逻辑如下:

(1)初始化主窗口,使用Qsettings类读取sprayline.ini文件中key为name的键值。在readWorkParams函数中找到data文件夹下相应的配置文件,根据代码中定义的数组值及配置文件中的前缀名获得相应的键值,初始化机器人参数。

(2)在界面中定义四个按钮,当点击相应按钮时,通过click信号连接执行相应的槽函数,进行配置文件的读写,改变界面中显示的参数,在genCode中执行机器人喷涂轨迹的编写。

(3)机器人喷涂顺序为下面->侧面->上面->走台->走台->上面->侧面->下面。如下面的代码所示,根据switch中status的值执行相应的语句,在完成在喷涂中间段时绕过主梁的支撑结构,因此程序将主梁划分成五段,确定机器人的坐标系XYZ三轴的方向,计算出机器人在各方向的开始与结束位置,使喷枪按照预定轨迹间距运行。计算主梁支撑点位置,通过IF条件判断某段喷涂过程是否经过支撑点,并进行避障。在完成一段喷涂后,将statusFinish赋值给status,程序跳出switch以及while循环,进行下一段喷涂,直至完成对整根主梁的自动化喷涂。

enum STATUS {

  statusDown, statusSide, statusUp, statusFinish, zoutaiSide

};

while (status != statusFinish) {

 switch (status) {

 case statusDown: ....;

 case statusSide: ....;

 case statusUp: ....;

 case zoutaiSide: ....;

 case statusFinish: break;

 }

}

2.2.2 系统优化攻克难题

在对系统进行优化的过程中遇到的难题进行如下总结:

(1)了解ABB机器人、输送链以及外部抬升装置的控制原理。当机器人喷涂走台面时,需通过外部抬升装置将ABB机器人抬高,否则机器人手臂无法达到相应的高度,超出运动极限。程序将主梁划分为数段,每段大致0.8m,在完成该段所有面的喷涂后,输送链向前移动,传送0.8m后到达新的起点。

(2)整合分析主梁反向放置后喷涂主梁各面时代码的逻辑连接关系。反向放置时,相较于正向放置,左侧机器人还需多喷涂端面与上面,而右侧机器人则放弃了端面与上面的喷涂。

(3)反向喷涂时选取UI界面内合适的参数进行调取和计算。如左在左侧机器人喷涂主梁走台面时则需调用侧面的姿态参数,以此来控制机器人喷枪枪头的喷涂方向。

2.2.3 系统程序优化

编写两段新函数,分别为ztrevergenLeft与ztrevergenRight,其中第一个函数为左侧喷涂机器人的控制代码,根据INI配置文件中的机器人姿态与主梁的尺寸大小等参数,喷涂反向放置主梁的上盖板与两侧腹板中靠近左侧机器人的部分;同理第二个函数为右侧喷涂机器人的控制代码,用以喷涂下盖板与两侧腹板中靠近右侧机器人的部分。

主梁放置在输送链的两个支撑上,因此在函数中将整个主梁分为五个部分,分别为主梁头部至前支撑、前支撑、前后两支撑之间、后支撑、后支撑至主梁尾部这五部分。函数中的代码根据UI中的参数,计算出每段的喷涂间距以及相应的喷涂轨迹。用户可根据主梁在产线中放置的位置选择相应的ABB机器人喷涂轨迹文件,无需因主梁的放置题进行吊运翻转,解决了起重机主梁在喷涂时的单方位固定放置问题。系统代码内的主要功能函数如图2-2所示,函数的功能介绍如表2-1所示。

图2-2 涂装系统主要功能函数

表2-1 函数功能介绍表

2.3 系统优化效果

(1)加载应用程序后,点击“选择工件”,选择相应的起重机主梁型号,将相关参数读入程序。根据选择的工件名称,UI界面上端的名称显示会产生相应的变化,如图2-3所示,UI界面内分为五个页面,左右两侧的机器人可调用左右侧通用参数和常规参数计算出机器人手臂在XYZ轴空间内移动的目标位置,喷涂各面时调用相应的姿态参数,运用四元函数计算出喷枪枪头的方向。

图2-3 系统界面

(2)点击“生成程序”,在文件夹中生成相应的MOD文件。如图2-4所示,下图六个文件中,qdxx10225m-left.mod与qdxx10225m-right.mod分别为左右侧机器人喷涂光梁时的轨迹;ztqdxx10225m-left.mod与ztqdxx10225m-right.mod分别为原涂装系统版本左右侧机器人喷涂带走台主梁的轨迹控制文件;ztreverqdxx10225m-left.mod与ztreverqdxx10225m-right.mod分别为涂装系统优化后生成的主梁反向放置后左右侧机器人喷涂带走台主梁的轨迹控制文件。

图2-4 机器人ABB轨迹控制命令文件

(3)将ztreverqdxx10225m-left.mod文件在ABB ShopFloorEditor中打开。点击“工具”->“转换robargets到*”进行转化,点击菜单栏的“图形窗口”,查看软件虚拟化生成ABB机器人的喷涂轨迹。点击“上载工具”,选择喷枪SprayGun.wrl,通过该工具可直观的看到机器人喷涂各点时枪头与主梁的位置关系,如图2-5所示。

图2-5 主梁反向放置左侧机器人喷涂轨迹

(4)按照步骤3中所说,将ztqdxx10225m-right.mod文件在ABB ShopFloorEditor中打开并进行转化,生成ABB机器人的喷涂轨迹。如图2-6所示,经过对比发现主梁反向放置左侧机器人喷涂轨迹与主梁正向放置右侧机器人喷涂轨迹相似,且无轨迹异常。将ztqdxx10225m-right.mod与ztreverqdxx10225m-left.mod生成的轨迹进行对比,同样相似无异常。用户可根据主梁在喷涂线输送链支撑物上的摆放位置选择相应的MOD文件,使ABB机器人按命令执行,实现主梁喷涂的自动化执行。

图2-6 主梁正向放置右侧机器人喷涂轨迹

3 结论

近年来,随着工业的不断发展,我国的工业产品逐渐进入国际市场,而企业的发展与创新能力极大程度上取决于本身的科技储备,在与国内外相关产品的竞争中,工业自动化占据着重要地位。在起重机制造行业中喷漆是一项重要工作,可以有效延长起重机的使用寿命,为了提高公司的综合实力和生产效率,公司的开发人员基于ABB机器人开发出了一款涂装线参数化自动编程系统。本文根据涂装线参数化自动编程系统在自动产线内的实际应用情况,找到系统的功能不足之处,进行优化,使涂装生产线可双向放置主梁并进行自动化喷涂。

参考文献

[1]吴建华.现阶段我国工业自动化发展试分析[J].电子技术与软件工程,2013(19):201-201.

[2]唐攻坚.浅谈工业自动化控制的现状及趋势[J].中国新技术新产品.2012.06.

[3]戚玉富.自动化在工业系统中的应用优势及发展趋势[J].山东工业技术,2015,0(17):6-6.

[4]佟德元,郭洪涛.工业自动化控制的探讨[J].黑龙江科技信息,2014(8):63-63.

[5]E. A. Croft, R. G. Fenton, and B. Benhabib.Optimal rendezvouspoint selection for robotic interception of moving objects," IEEE Trans Sys. Man Cybern. Part B,1998:192-204.

[6]Yocam Regev.The evolution of off-line programming[M].Industrial Robot,1995,22(3):3.

[7]Yang, C. D. and Yang, C. C.A unified approach to proportional navigation, IEEE Trans. Aerospace Electronic Systems[C].1997,33(2):557-567.

[8]Piccardo, H. R. and Hondered, G.A new approach to on-line path planning and generation for robots in non-static environment[J]. Robotics Autonom. Systems (1991),187-201.

[9]Su, J. and Xi, Y.Path planning for robotic hand/eye system to intercept moving objects[A].IEEE Conf.on Decision and Control, Phoenix, AZ,1999:2963-2968

[10]鄢妮.工业自动化控制现状与发展趋势探讨[J].科技与企业.2016.0(3):81-81.

[11]姜蓓.机器人等离子切割离线编程技术[D].上海:上海交通大学,2008.

免责声明:
凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。
投稿电话:400-0087-010 转 0
投稿邮箱:press@ibicn.com