焊接机器人数据采集与管控系统
2022-06-07蔡新奇王学武范晔平徐德进
蔡新奇,王学武,范晔平,徐德进
(1.华东理工大学,能源化工过程智能制造教育部重点实验室,上海 200237;2.上海广为焊接设备有限公司,上海 200241;3.上海腾焊智能科技有限公司,上海 200241)
0 前言
随着科技的迅猛发展,焊接技术作为传统制造加工行业中不可或缺的一个重要领域,同样迎来了智能化发展的新浪潮。传统的人工监督的方式逐渐不能满足当今生产制造的需要,而且根据本人在国内几个中大型焊接制造现场调研可知,目前虽然国内机器人焊接设备占有率不断提升,但是除了车厂等传统大型离散化生产企业,机器人实际使用效率并不高。而且部分中大型企业购置的机器人设备分散在不同车间,且由不同的机器人供应商提供,各自完成相应的焊接工作,不便于统一管理。除此之外,目前对于生产线的监管多数仍局限于车间控制层面,机器人和外界的数据交互并没有完全畅通,但是网络技术的发展正在逐步解决这样的问题[1-3]。
目前,国内外在焊接数据采集与运用方面已有很多成果。美国肯塔基大学的Zhang等人[4]通过传感器等方式采集到焊接的过程数据,结合动态建模和深度学习算法,实现了能够在焊接过程中实时修正焊接参数的自适应焊接制造。澳大利亚联邦科学与工业研究组织的Syrek等人[5]自行设计了闪光对焊监视器,用于采集车轮生产过程中的焊接生产数据,通过后续的数据处理,预测车轮生产的缺陷情况。此外,德国HKS公司研发的焊接物联网综合采集、监控与分析系统,以及日本安川电机有限公司旗下的焊接机器人物联网系统YASKAWA Cockpit,均有很高的知名度。
北京石油化工学院的周灿丰等人[6]将采集到的焊接机器人过程数据和虚拟现实技术相结合,实现对危险环境下遥操作焊接机器人的监视。哈尔滨焊接研究院有限公司的李荣等人[7]针对机器人焊接激光制造,开发了数字化的控制系统,能够完成各种焊接数据采集,并提供数据接口供企业平台使用。中车青岛四方机车车辆股份有限公司的李亚南等人[8]将焊接群控系统运用到高速列车转向架的生产中,能够在线监控转向架的焊接生产状态并优化生产过程。文献[9]和文献[10]介绍了唐山松下产业机器有限公司开发的智能焊接云管理系统——iWeldCloud,并将其运用到高速列车焊接生产车间中,提高了生产过程的智能化水平。
机器人本体的健康状态也是一个十分重要的因素,机器人定期维护可以很大程度上减少机器人故障对生产质量和生产效率的影响。一般地,机器人维护按照时间维度划分可以分为日、周、月和年检查等,不同焊接工艺、不同品牌的机器人需检修的项目各有差别,需要根据实际情况综合确定,统一管理各种机器人维护信息便具有很高的实际价值[11-12]。
综上所述,虽然目前各大机器人厂商基本都有推出支持各自机器人的焊接数据采集系统,但是费用昂贵。且目前对机器人数据采集系统的研究也多局限于单一品牌的机器人设备,难以同时兼容其他品牌,不能满足采用“多机器人厂商、中小生产规模”为焊接生产模式的企业的要求。此时需要一个能够兼容不同厂商机器人的管控系统,迅速接入生产现场已有或新采购的机器人设备。该系统着重研究如何开发一个通信系统基础框架,配合机器人管控系统,能够灵活、高效、快速地接入不同厂商的机器人设备,完成焊接机器人生产状态实时监控和相关管理,一定程度上可以提高焊接机器人使用率和生产效率。
1 焊接机器人数据采集与管控系统架构
焊接机器人数据采集与管控系统由硬件和软件两部分组成,硬件主要包括现场的各个品牌的工业机器人、焊机、PLC、工控机和变位机等焊接系统相关设备,以及支持现场数据通信的各个采集计算机。软件主要包括数据通信系统和机器人管控系统,实现数据通信、设备基本信息录入、历史生产数据回溯、实时状态监控、设备定期维护和通信模块更新等功能。系统结构组成如图1所示。
图1 焊接机器人数据采集与管控系统结构
数据采集与管控系统架构图如图2所示,系统首先通过通信子程序采集到不同车间的各个焊接机器人的过程数据,随后将采集到的数据处理、转发并存储,最后通过系统应用层面开发,将数据组织、处理、加工,并按照需求展示。数据的来源包括但不限于机器人控制柜、PLC、焊接电源或工控机等现场硬件设备。
图2 焊接机器人数据采集与管控系统架构
该系统的数据通信模块从不同品牌的焊接机器人通信接口不同等实际问题出发,针对不同的焊接工艺方式,首先提取出不同焊接工艺所共有的数据,例如焊接电流,并制定一份基础的传输协议。该协议预留相应的数据位,用于存放不同品牌机器人或不同焊接方式特有的数据,例如激光焊接的离焦量。将常用的机器人通信接口,例如OPC UA等,每个接口开发唯一的数据通信子程序,即所有采用OPC UA通信接口的机器人,采用相同的通信子程序。每个机器人都会单独编写一个配置文件,通信子程序通过配置文件完成初始化,按要求完成通信任务,也方便后续通信程序的远程更新。数据通信模块采用C/S架构开发,通过Netty框架搭建NIO服务器,采用TCP/IP协议接收各个现场设备发送过来的实时数据。实时数据主要包括焊接电流、焊接电压、送丝速度、焊接速度、气体流量、状态信息、故障信息和计件信息等。
机器人管控系统的服务器采用B/S架构开发,通过Spring MVC框架搭建机器人管控系统,局域网内的客户机通过浏览器可访问系统,实现对机器人设备基本信息的统一管理、机器人状态实时监控、历史生产数据展示和机器人维修与故障管理等。
除此之外,由于现场设备随着运行时间的增加,产生的数据量会逐渐增大,采用支持分布式存储的列式数据库ClickHouse存储实时数据,该数据库在聚合查询等方面效率非常高,方便后续的集群扩展和实时分析处理。机器人基本信息等数据通过传统的关系型数据库MySQL存储。同时采用物联网领域常用的MQTT协议的消息队列,为机器人实时监控页面提供实时数据,以及传递相关控制指令等。
2 焊接机器人管控系统硬件设计
系统硬件部分由各个不同的焊接机器人系统和便携式PC组成,如图3所示。其中机器人系统主要包含机器人本体、焊接电源、机器人控制柜、工控机和变位机等相关配套设备。每台机器人设备都会额外配备便携式的PC,数据通信子程序运行于该便携式PC上。将数据通信的软件环境和机器人自身运行的软件环境分离,便于调试。该便携式PC具有双网口,其中一个接入机器人内部局域网,完成数据的上传和下载,另一个接入到车间局域网,将每台机器人设备的数据发送到远程服务器,并且接收远程服务器下发的指令。现场采用双屏蔽网线连接各个设备,最大程度保持通信不受现场恶劣的环境干扰。
图3 焊接机器人工作间示意图
除此之外,每个车间可根据需求分配相应数量的管理计算机,管理计算机一方面可供现场管理员查看机器人工作状态,另一方面可以中转接收本车间的各个现场设备的数据,并将数据预处理后统一转发到服务器端进行持久化存储。避免了大量TCP长连接直接连接到采集服务器,减轻了服务器的压力。
整个系统的服务器出于安全性要求,部署在内网,外网无法访问,所有接入内网的终端设备根据各自用户权限登录,实现对现场设备的远程管理与监控。服务器主要负责接收、存储并处理从机器人采集到的数据,响应各个客户机的请求,完成不同功能的数据展示。
3 焊接机器人管控系统软件设计
焊接机器人管控系统软件部分是整个系统的核心,合理规划软件各个模块的功能设计,才能更好地完成系统的开发,系统软件设计主要由以下几个模块组成。
3.1 数据通信模块设计
数据通信模块在该系统中扮演非常重要的角色,是软件与各个机器人之间数据通信的桥梁,主要负责完成软件与各个现场机器人通信。整个通信模块可以分为3层,如图4所示。
图4 数据通信模块架构
第1层包含所有与各个机器人直接通信的子程序,每个机器人的子程序单独部署,运行在图3中便携式PC上。通过该子程序和配置文件,解决不同品牌机器人接口协议和数据存储格式差异的问题,并将统一结构的数据发送到第2层。此外,第1层和第2层之间采用TCP长连接并加入心跳机制,确保连接的稳定性。第2层和第3层均采用Java语言开发的基于Netty框架实现NIO服务器,分开部署,用于非阻塞地接收其上游的通信子程序发送过来的实时数据。其中第2层主要完成数据预处理等工作,可为每个从指定第2层软件中转的数据加上对应的标签,方便后续对数据聚合计算等;第3层将实时数据批量持久化存储到ClickHouse数据库,也负责接收上位机指令,并下发到机器人对应的通信子程序上。除此之外,第3层软件还将实时数据及时发布到MQ,为实时监控页面提供实时数据源。
将通信模块第2层和第3层分开设计便于后续扩展,将维持大量现场设备TCP长连接的任务分配到第2层,而第2层可根据要求,动态地扩展软件数量。通过上述方案能够更高效、更稳定地完成软件与机器之间的通信。
为了统一化通信子程序的开发流程,编写了常用工业通信协议的通信子程序模板,包括但不限于TCP/IP,OPC和OPC UA等。可通过配置文件配置所需采集的数据和格式,采用软件的方式去差异化。与此同时,机器人管控系统集成了通信子程序更新模块,能够远程更新各个机器人通信子程序,方便程序的更新维护。
3.2 机器人管控系统数据库模块设计
该系统主要涉及到2类数据的存储,分别为实时数据和关系型数据,其中实时数据存储在ClickHouse数据库,其余数据的均存储于MySQL数据库。
3.2.1实时数据
实时数据指焊接机器人每秒上传的过程数据,包含焊接电流、焊接电压和工作状态等。随着设备的增加和运行时间的积累,数据量会很大。并且对于故障次数统计等类似功能,需要查询所有历史数据。综合各方面考虑,采用支持在线分析处理查询的ClickHouse列式数据库存储实时数据,该数据库聚合查询效率非常高,能够高效完成查询计划,同时支持分布式扩展。
ClickHouse建表时采用MergeTree引擎,数据按日期分区,并采用时间,设备编号联合字段进行排序,处于开机状态的每台设备每秒会被采集1条数据,随后按照设定时间间隔,统一将实时数据批量写入数据库,完成数据持久化存储。ClickHouse的实时数据表结构设计为列式数据库常用的“大宽表”的形式,即将所有实时数据字段设计在一张表中。表设计之初尽可能地包含了焊接和机器人可能涉及的各种数据,并且提前预留了部分字段,方便后续扩展。实时数据表结构见表1,由于原表中包含的字段数量很多,此处选取了其中部分不同类型的字段展示。
表1 实时数据表
3.2.2关系型数据
关系型数据涉及范围广,主要包括用户登录和用户权限等管理系统的功能信息,以及机器人基本信息、故障信息、检修维修、人员信息等焊接机器人应用的相关功能信息,将上述信息存储在关系型数据库MySQL中。由于涉及的表较多且复杂,文中以机器人基本信息表中部分字段为例,介绍表的设计思路和功能实现,机器人基本信息数据见表2。表中类似于设备状态这类字段存储的int值,通过关联MySQL其他数据表可以查到状态的具体内容。
表2 机器人基本信息数据
除此之外,为了提高查询性能,将机器人划分为焊接、待机、故障、示教和待检修5个状态,并对应地在MySQL中建立5张运行状态表。后台通过定时任务,以30 min为1个周期,将存放在ClickHouse的实时数据,以机器人编号维度进行聚合,将各个机器人不同的状态信息统计并存储到MySQL的上述5个表中。状态表中的字段根据生产数据模块需要展示的内容确定。以焊接状态为例,可统计出表3中的数据,用于初步统计该30 min内的焊接状态的数据。
表3 焊接状态
将机器人实时数据分别统计到指定的状态表中,一方面精简了数据量,即在每一个状态表中,每台设备每30 min只有1条数据;另一方面对于3.3.2节中,一部分历史数据回溯功能的实现可以直接通过查询MySQL中的状态表完成。因为实时数据存放的Click House数据库并发性能不高,需处理各种数据查询。将聚合查询频率较高的相关数据按30 min间隔预先查询,并存储到各个MySQL状态表中。上述方法一定程度可缓解ClickHouse并发性能不足导致的问题,同时将处理后的数据存储到MySQL,与其他关系型数据进行联合查询时能有更高的查询效率。
3.3 机器人管控系统服务器软件设计
机器人管控系统服务器软件对采集到的机器人的数据进行汇总和展示,通过各个功能模块相互协调工作,实现具体的业务功能。机器人管控系统采用B/S架构,使用Java语言根据Spring MVC框架开发,系统的数据层由Mybatis持久层框架构建,基于Tomcat容器运行,前后端数据通过异步JavaScript和XML技术(AJAX)的方式完成交互,数据采用JSON格式进行传输。机器人管控系统主要软件模块的调用关系如图5所示。
图5 管控系统主要模块调用关系
3.3.1机器人基本信息录入模块
机器人基本信息主要包括设备信息和维护信息,其中设备信息主要包括机器人厂商、机器人型号、班组和机器人IP等机器人基本信息,用于记录机器人基本属性,便于统一管理;而维护信息又可以分为2部分,分别为故障信息和检修信息。故障信息包括每个型号机器人故障代码信息和对应故障解决方案等。故障信息在机器人入厂联网的时候可以手动或excel导入,后面通过实时数据中故障代码可以定位到故障原因和解决方案。而检修信息用于机器人定期检修模块,可以为每个型号的机器人设定不同的定期检修时间间隔,可以包括日常、周、月、年等自定义时间粒度,为定期维护模块提供时间基准。
3.3.2机器人生产数据模块
机器人生产数据模块主要包括机器人历史数据回溯模块和机器人实时状态监控模块。其中,机器人历史数据回溯模块用来查询过去某一时段内,各个机器人产生的各种生产数据,以报表的形式展示出来。主要包括机器人的焊接时间、开机时间、焊接效率、焊丝消耗、电能消耗、气体消耗和生产计件等焊接生产数据。除此之外,还能对所有机器人历史时间内出现的故障进行统计,并能够定位到故障发生的具体时间,方便后续排查。
机器人实时状态监控模块用来远程监控所有机器人的实时工作状态,管理人员可以通过生产大屏进行实时监控。可以实现现场所有联网机器人的汇总监控,通过点击其中的某一个机器人可对该设备具体数据进行实时展示,包括实时焊接数据,机器人实时运行数据,故障记录和机器人基本信息等。除此之外,当机器人出现故障或待检修状态时,会在监控页面的设备列表中置顶展示,便于管理者重点排查。
3.3.3机器人维护模块
机器人维护模块可以细分为定期检修和故障维修2个部分。其中,机器人定期检修系统能够实时统计各个厂商的机器人是否到达各自设定的检修时间点,统一管理所有机器人设备的定期检修信息。此模块根据实际录入的检修的相关数据,可以查看每个机器人距离下次检修时间的剩余时长。当机器人工作时间到达设定的强制检修时限时,系统会发送锁定信号。机器人执行完当前任务后会进入待检修状态,该状态会锁定机器人,直至检修人员在现场完成检修,即可重置机器人状态。因此需要将检修人员的数据录入系统,为指定机器人分配检修人员。存在需要检修的机器人时,指定的维修人员登录到系统可以查看当天需要检修的设备,根据对应的设备检修手册对设备进行检修。检修完成之后,在现场每个机器人的便携式PC上输入自己的确认密码,后台对比密码无误后,发送指定命令修改机器人状态,同时记录维修人员相关信息,方便后续追溯。
故障维修模块实现原理和定期检修模块类似,唯一区别在于处于故障维修中的每台机器人是不可预见的。当机器人运行过程中遇到故障,采集系统将机器人状态更新为故障,记录相关故障信息,并将该设备添加到维修人员待维修设备中,可通过电子邮件的方式实现通知。维修人员登录系统能够看到当前需要该维修人员定期检修或故障维修的设备,系统能直观地展示出当前维修人员的任务量。
3.3.4机器人通信程序更新模块
纵观以往通信程序维护的方式,对于每个机器人通信子程序的维护,需要工程师到现场按要求将程序更新到每个机器人的便携式PC上,随着机器人数量和种类的增加该过程会变得异常繁琐。机器人通信程序更新模块可在服务器端,远程更新每台机器人配套使用的便携式PC上的通信子程序,能够很大程度提高工程师更新、维护程序的效率。
更新各个机器人通信子程序主要包括2步骤,第1步先将待更新的程序上传至服务器,服务器通过TCP/IP协议,将最新的数据通信程序发送到图4中所示的所有数据通信软件第2层。收到发送成功的反馈后,将需要更新程序的机器人编号通过MQ指定主题发布,各个处于第2层的数据通信软件会订阅该主题,从而确定与其连接的哪几台机器人需要更新程序;第2步就是处于第2层的各个数据通信软件将最新的程序通过TCP/IP协议,发送到所有需要更新程序的各个机器人便携式PC上,也就是图4所示的第1层。并通过递增序号的方式命名文件,运行在各个现场设备的第1层数据通信程序在下次启动时,会自动寻找最新的程序运行,实现程序更新。如果需更新程序的便携式PC成功接收文件,则会通过MQ发布消息,通知上位机程序更新成功,否则提示更新失败的设备编号。
4 焊接机器人管控系统实现
该系统主要用于对不同厂商的焊接机器人进行统一的远程管控,包含内网服务器1台,机器人若干,现场采集PC若干。主服务器采用Windows Server 2012系统,机器人厂商主要包括KUKA,OTC,AMET和焊研威达等,现场采集PC主要采用Windows 10操作系统,每个PC包含至少2个以太网接口,机器人管控系统主要界面如图6所示。
图6 焊接机器人管控系统界面
5 结论
(1)系统的数据通信模块能够接入不同品牌的焊接机器人,也能够接入PLC等现场设备。通过开发的模块化基础通信框架,可灵活、快速地适配新入厂的设备,高效地、稳定地完成数据的采集。并且能实现通信程序远程更新功能,方便工程师维护管理。
(2)机器人管控系统可对不同品牌、不同通信协议的机器人进行统一管理和实时状态监控。除此之外,系统还具有历史数据的分析展示和机器人定期维护等功能。根据实际使用效果来看,系统能够长时间稳定运行,提高了现场设备管理效率,降低机器人故障发生的次数,一定程度上提高了生产率。