摘要:在喷涂生产线中,采用FX5U、3D质量检测和Python编程,可以快速调节喷枪工作频率、喷涂浓度和范围、喷枪到工件表面直线距离,使得产品复杂表面涂层的厚度均匀美观,成功打造智能制造的成功范例。
关键词:全智能喷涂;3D检测;Python编程
Abstract: In the spraying production line, FX5U, 3D quality inspection and Python programming can be used to quickly adjust the working frequency of spray gun, spraying concentration and range, and the straight line distance between the spray gun and the workpiece surface,making the thickness of the complex surface coating of the product uniform and beautiful. It successfully creates a successful example of intelligent manufacturing.
Key words: Full intelligent spraying; 3D inspection; Python programming
1 前言
在各类机动车机械结构中,如果通过减轻重量来提高燃料效率,就会增加对诸如铁、铝和树脂部件等不同材料之间进行接合的需求,同时所使用的结构粘合剂的数量也会增加。为确保产品质量,需要对喷涂过程中进行粘合和密封的涂层剂的质量进行控制。在传统手工操作中,操作员通过手持喷枪对成型物体进行喷涂,喷枪到物体表面的距离变化幅度大、喷枪旋转轨迹变化大等因素,导致表面涂层不均匀,容易发生漏喷现象,并导致次品率居高不下、喷涂效率低、严重影响生产能力。本设计将采用FX5U PLC、3D质量检测技术等全自动化控制系统对喷涂线进行智能升级。
2 全智能喷涂线的整体设计
喷涂生产线如图1所示,包括喷枪控制和喷涂质量检测两个控制部件。
(1)喷枪控制
喷枪控制包括喷枪角度调整、喷枪间歇时间控制和供涂料回路。喷枪角度调整是由在放置在喷枪横杆头部的机械调整装置来完成,它可以根据需要调整喷枪工作角度和喷枪对工件的相对位置,以达到最佳效果,如图2所示。
(2)喷涂质量检测
喷涂质量检测示意如图3所示,能够使用图像传感器对喷涂工件上进行三维测量(即3D检测),与主流的二维图像检查系统相比,3D检测可以在三个维度上检查涂层剂的宽度、高度、横截面积和位置,在生产线上立即分析捕获的图像,并检测缺陷、过剩和不足之处,并同时反馈给喷枪控制。
(3)控制系统架构
全智能喷涂线的控制系统如图4所示,以交换机为中心采用FX5U PLC、3D检测相机、Python PC端来实现通讯控制。其中FX5U PLC主要控制涂料、喷枪和3D质量检测装置。在喷枪控制上,需要在喷枪与空气压缩机之间接入压力调整阀来调整供给喷枪的空气压力,使之被控制在喷枪的许可压力范围内,防止喷枪损坏;同时根据现场生产需要采用间歇工作制喷涂方式,即通过传感器检测产品在生产线上的位置,控制气动元件来实现喷涂工艺。
3 全智能喷涂线的软件设计
(1)PLC逻辑控制
为了保证待喷涂产品能够合理地通过喷枪喷雾扇面,对喷枪的开启时间有着严格的要求,为此设定了喷枪延时启动功能,喷枪控制流程图如图5所示。在等待喷涂工件通过检测区时,控制气源回路接有电磁换向阀,并配合传感器检测信号的程序实现对喷枪开闭的控制。
(2)3D质量检测
由于技术原理的限制,2D相机无法提供被拍喷涂工件的深度信息,不能提供z轴方向的引导。此处的3D相机采用移相法结构光技术,可快速获取被测物体的表面特征和深度信息,输出点云数据,且无需移动,安装或涂胶完成后可实现原位检测,极大改善了2D相机和线激光在该类应用的不足。
(3)上位机控制
上位机采用Python编程,基于三菱FX5U所支持的SMTP协议,可利用Python的Socket库按照三菱PLC的协议格式进行通信,其中上位机作为客户端,而PLC作为服务器。以下是循环tcp重连的源程序。
import socket
import time
import xlwt,xlrd,struct
from xlutils.copy import copy
import sys
import re,os,sys
data="ok"
class TcpThread(QThread): trigger = pyqtSignal(str) trigger1=pyqtSignal(str) def __int__(self): super(TcpThread, self).__init__() # 分离出一个函数用于循环tcp 重连 def doConnect(self): with open('IP_Address.txt', 'r')as fn: s1 = fn.read() host = ''.join(re.findall(r'IP:(.*)', s1)) # 服务器IP地址取出来,并转成字符串
port = int(''.join(re.findall(r'PORT:(.*)', s1)))# 从文本中提取端口号转成整数 BUFFSIZE = int(''.join(re.findall(r'BUFFSIZE:(.*)',s1))) # 从文本中提取字符长度转整数 ADDRESS = (''.join(re.findall(r'ADDRESS:(.*)',s1))) # 从文本中提取字符长度转整数 LENGTH = (''.join(re.findall(r'LENGTH:(.*)',s1))) # 从文本中提取字符长度转整数 print(host,port,ADDRESS,LENGTH) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.connect((host, port)) print("connect is ok") except: print('fail to setup socket connection') return sock, BUFFSIZE,ADDRESS,LENGTH
4 结束语
在喷涂生产线中,采用FX5U、3D质量检测和Python编程,可以快速调节喷枪工作频率、喷涂浓度和范围、喷枪到工件表面直线距离,使得产品复杂表面涂层的厚度均匀美观。
参考文献:
[1] 李方园. 智能工厂设备配置研究[M]. 北京:电子工业出版社,2018.
作者简介:
李方园(1973-),男,浙江舟山人,副教授,高级工程师,硕士,毕业于浙江工业大学信息学院控制工程专业,现就职于浙江工商职业技术学院,长期从事智能制造新技术应用与研究工作。
摘自《自动化博览》2020年1月刊