基于PLC和机器视觉的工件自动分拣系统设计
2022-02-21谢永超
杨 利,谢永超
(湖南铁道职业技术学院,湖南 株洲 412000)
0 引言
工件的自动分拣是自动化生产线的主要功能之一。大多数自动分拣系统以工业机器人或专门的分拣装置为分拣执行机构[1-3],如文献[1]以工业机器人安装气动吸盘来完成芯片的分拣;文献[2]以机械手臂来完成AMOLED产品的分拣;文献[3]设计了吹气嘴和踢料口组成的下料装置完成汽车橡胶工件的分拣;文献[4]设计了几种分拣机完成异形烟的分拣。而实际生产中很多工件不存在易碎、体积大、重量大等问题,无需用机器人或分拣装置来分拣,利用简单的传送带和产品盒即可完成分拣,该文针对这类工件设计一套简单、高效且低成本的自动分拣系统。
1 自动分拣系统设计
如图1所示,工件自动分拣系统由机器视觉模块、控制模块、传输模块和人机交互模块组成。系统的工作流程如下:
图1 系统设计框图
(1)传送带自左向右运动,将待测工件传输至工业相机下方的拍照点;
(2)相机自动拍照,并识别工件;
(3)相机将识别结果发送给PLC;
(4)当识别结果为TRUE时,PLC控制传送带正转,直至工件掉入右侧的产品盒;
(5)当识别结果为FALSE时,PLC控制传送带反转,直至工件掉入左侧的产品盒。
2 硬件设计
2.1 硬件选型
2.1.1 机器视觉模块
基于成本因素,视觉模块选择性价比高的海康威视MV-CA050-10GC工业相机,该相机为彩色500万像素千兆以太网工业相机,配置定焦镜头适用于固定工作距离与手动对焦的应用场景。光源采用使用方便的圆形光源,红白蓝绿四色可调。为了增加系统的柔性,采用可调节支架固定相机。用户可在行程范围内自由调节相机的位置,适用于不同产品测量。
2.1.2 控制模块
控制模块以西门子S7-200 Smart PLC为控制核心,基于成本考虑,选择低端的ST20 CPU模块,包含12个输入端口与8个输出端口。该PLC支持以太网网络通信和串口通信方式,方便与工业相机、PC机等构成工业网络。该设计中S7-200 SMART需通过TCP协议与工业相机通信,要求固件版本升级至V2.4,可先将固件下载至SD卡中,再将SD卡插入S7-200 SMART卡槽中进行固件升级。系统还配置了触摸屏与PLC相连,可设计人机交互界面,实现系统的按键操作界面和视觉识别界面,增加系统的交互友好性。
2.2 步进电机驱动器
传输模块配置步进电机及控制器,驱动传送带正反运动实现物料传输。传送带左右有2个产品盒,方便进行物料的分拣。
步进电机驱动器为DM542,这是一款细分型的两相步进电机驱动器,适合驱动电压18~50 V,电流小于4.0 A的步进电机。其连接线路图如图2。DM542有3个接线插口,其中电源插口连接24 V直流稳压电源。电机插口的B-,B+,A-,A+连接至步进电机,为电机提供驱动信号。驱动器与PLC采用高电平有效连接方式,驱动插口的PUL+,ENA+,DIR+分别连接至PLC的Q0.1,Q0.2,Q0.3;PUL-,ENA-,DIR-至地。R为串联限压电阻,阻值为2.7 kΩ。
图2 硬件连接图
3 软件设计
3.1 视觉检测设计
视觉检测模块能够识别出待测工件的颜色、大小、形状等特征,输出工件数量、位置、合格与否等识别信息。该文以图3所示的不同颜色工件识别为例(左图为红色工件,右图为蓝色工件),讲解视觉处理处理流程。
图3 实时工件图像
视觉处理算法基于大华MVP视觉处理软件开发,用户可以拖拽不同算子来实现功能。如图4所示。
图4 视觉处理算法图
首先“相机”算子采集到工业相机实时拍摄的图像,其中曝光时间为5000,增益为1,伽马为1,对比度为50;
然后“颜色提取”算子对图像颜色进行识别,在识别之前需利用该算子对图像颜色进行训练。训练的区域可以选择“全局”图像或“局部”图像,经过实验对比,发现该实验中选择“全局”图像进行训练识别结果更高,而且工件的位置和角度偏移并不会影响识别结果。“颜色提取”算子识别出红色工件时,输出参数OutFirstName为“rgb_0”,反之当蓝色工件时,输出参数OutFirstName为“rgb_1”。实验中发现,即便传送带上无工件,相机识别结果也会为蓝色工件,因为蓝色工件和绿色传送带颜色更相近。如要区分无工件情况,可将MVP软件中“颜色提取”算子的输出“相似度”作为阈值。当相似度高于50%时,认为此时是蓝色工件;当相似度低于50%时,认为此时是无工件。
随后利用“网络配置”算子与PLC建立TCP连接,其中“协议”选择TCP客户端、“IP”与“端口”与PLC一致;“连接模式”为TCP长连接,即建立连接后一直可以进行数据通信直至连接关闭。
最后利用“报文发送”算子将“颜色提取”算子的识别参数OutFirstName发送出去。
3.2 相机与PLC通信
MVP视觉软件将相机识别结果通过TCP协议发送给PLC,PLC作为TCP连接的服务器端,需先建立TCP连接再接收数据并解析。
S7-200 Smart PLC支持的TCP类型由Open User Communication、TCP modbus、TCP RTU。该文选择第一种连接方式,这种方式不需要视觉软件和PLC在同一局域网段。PLC通过TCP_CONNECT指令建立TCP连接,等待客户端(即视觉软件)的连接请求;通过TCP_RECV将客户端发送数据存储在VB2000打头的地址空间,代码如图5(a)所示。
图5 PLC关键代码
由于MVP发送数据为“rgb_0”代表红色工件,“rgb_1”代表红色工件。这串字符串存储在VB2000打头的地址空间,因此只需判断VB2004地址空间的内容,当内容为“0”(即十进制48)时,工件为红色,此时置位线圈M15.0,反之复位M15.0。
3.3 步进电机驱动
STEP 7-MicroWIN SMART提供了完整的运动控制向导功能,可以生成伺服电机、步进电机的驱动控制函数。
运动控制向导配置时要注意以下几点:
(1)“电机一次旋转所需的脉冲数”应根据DM542上方的拨码开关SW5-SW8状态确定,如SW5-SW8状态分别为OFF/ON/OFF/OFF时对应的脉冲数为10000;
(2)“测量基本单位”为“度”,“电机一次旋转所产生多少‘度’的运动”为“360”;
(3)“点动速度”可根据实际情况修改;
(4)“存储器分配地址”起始地址尽量设大,避免和程序使用内存空间冲突;
利用运动控制向导功能生成了运动控制指令。其中AXIS0_CTRL指令是建立步进电机驱动连接,需要一直使能;AXIS0_MAN指令是手动控制指令,可实现电机的手动控制、点动正转、点动反转功能。为了实现工件的自动分拣,需要根据相机识别结果控制电机正反转运动。如前所述,当识别结果不同时M15.0的状态不同,因此将M15.0作为手动控制的方向开关,即可实现电机的正反转运动,最终实现传送带的正反转运动。代码如图5(b)所示。此外将PLC的I0.4(CPU_输入5)连接旋钮开关,作为系统的手动开关;I0.7(CPU_输入7)和I1.0(CPU_输入8)连接按钮开关,作为系统的点动正转和反转开关。
4 实验结果及分析
将红色工件和蓝色工件放置与传送带上方,在保证工件出现在相机视野的情况下,随机改变工件的位置和角度。记录工件的识别率和误判率,得到表1所示的测试数据。表中红色工件的误判率为0.0%,蓝色工件的误判率为0.4%。实验结果表明,系统能够正确识别不同颜色工件,并完成工件的自动分拣动作,误判率低于0.5%,达到工业生产需求,为工业生产提供了切实可行的参考依据。系统高识别率的前提条件是:在视觉模块的光源亮度、镜头焦距和亮度等调好后再进行图像颜色的训练,以保证训练环境和识别环境的一致性。
表1 测试数据
5 结束语
该文基于PLC和机器视觉技术,搭建了一套工件自动分拣系统。基于成本因素,选择性价比高的国产海康威视工业相机和西门子S7-200 Smart PLC为主要硬件。系统工作时首先利用工业相机对传送带上工件的特征进行识别,然后将识别结果通过TCP协议发送给PLC,PLC再控制传送带动作实现不同工件的传输。以识别不同颜色的工件为例,该文阐述了相机识别算法、TCP通信流程、PLC数据解析及步进电机驱动核心代码,实验结果表面,该系统能够实现工件的自动分拣,且分拣误判率低于工业生产要求的0.5%。