1. 序言
1.1. 背景
随着工业生产的发展,工业生产线的生产效率越来越高,工厂中对生产的商品进行传统人工检测已经出现影响生产效率的问题,所以在高速环境下使用机器视觉技术是不可避免的,比如可口可乐公司的生产线可以实现每分钟八百瓶,该生产线中有检验环节,该环节就是通过使用机器视觉对贴标和打码环节的检测。
又比如滴灌管生产线,目前滴灌管生产线分为四个部分:上料、加热、打孔、收卷。其中,上料和加热部分在行业内都已经非常成熟了,提升空间很小,收卷需要人工,因此,这三个部分不需要使用机器视觉技术,所以不讨论这三个部分,而打孔属于整条生产线的核心部分,打孔速度决定了整条生产线的生产速度,打孔的好坏决定了生产出来的滴灌管的出水量,因此,这个部分既需要速度,也需要对其打出来的孔进行检测 [1]。目前,滴灌管生产线可以做到每分钟生产三百四十米,也属于高速环境,因此,需要使用机器视觉技术进行滴灌管的检测。
1.2. 现状
目前,北方工厂搭建的滴灌管生产线中打孔系统分为五大部分:光电传感器部分、旋转打孔刀、直流电动机、运动控制器、视觉检测系统 [2]。
通过图1可以看出五部分的连接方式,进而得到打孔系统的运行逻辑:
1) 首先,直流电动机驱动皮带拉拽滴灌管平移运动,使得滴灌管打孔位置经过光电传感器,光电传感器向运动控制器和视觉检测系统分别发送触发信号;
2) 然后,运动控制器接收到触发信号后,安排第几个旋转打孔刀进行打孔,再设置出打孔位置运动到旋转打孔刀的脉冲数;
3) 运动控制器开始记录直流电机的编码器输出的脉冲数,当记录数量达到预设量时,控制旋转打孔刀进行打孔;
4) 视觉检测系统接收到触发信号后,通过定时来保证打孔出到达相机下方被视觉检测系统记录下来,并通过视觉检测系统的显示器进行显示,显示过程中,通过软件算法进行检测打孔是否异常。
. block diagram of the punching system
图1. 打孔系统框图
视觉检测系统属于寄生于打孔系统的独立系统,所以视觉检测系统的组建不会受生产线的结构影响,但是视觉检测系统如何构建,五个核心部分是必不可少的,分别为工业控制计算机、硬件控制系统、工业相机、工业光源和光源控制器。
图2为滴灌管生产线上传统的视觉检测系统连接框图,其运行逻辑为:首先,视觉检测系统接收到光电传感器发送过来的触发信号,然后,工业控制计算机通过触发信号做定时处理,定时完成后,向硬件控制系统发送拍照命令,硬件控制系统得到命令后,控制工业相机拍照,工业相机将拍完的照片通过发送到工业控制计算机,工业控制计算机通过软件算法对图片进行分析,来判断打孔是否合格,是否出现打歪,或者是否出实现没有打上孔的现象。
. block diagram of traditional visual inspection system
图2. 传统视觉检测系统框图
1.3. 问题
由于打孔系统使用的是旋转打孔刀,所以一把打孔刀旋转速度是有运动极限的,因此,该系统中会使用多个打孔刀。目前,常见的是使用四把打孔刀,这样可以将生产速度提升到每分钟三百四十米,甚至能提升到每分钟四百米,然而以这么高的速度使用传统视觉检测系统会出现两个问题。
第一个问题是生产线上有四把刀,而且四把刀是顺序使用,因此,需要使用四个窗口显示四把刀,由于传统视觉检测系统对接收信号要求过于单一,不能有效地判断目前拍照的图片是哪把刀打的孔,所以只能四个窗口顺序摆放,但需要工人自行判断当前窗口的图片是哪把刀,这样在设备调试过程中,不仅没有方便工人,还拔高了生产线工人的门槛。
第二个问题是为了识别旋转打孔刀的运动信号,就需要对所有信号的时序进行分析,防止出现同时产生信号或者产生乱序信号。
2. 方案设计
2.1. 硬件控制系统核心
出现这些问题的根本原因在于视觉检测系统中硬件控制板的功能过于单一,使得硬件控制板在面对多种信号的环境下,不能做到有效的处理,因此,新的硬件控制板需要多个输入输出口。为了保证硬件控制系统可以对输入信号和输出信号做到及时处理,使得这些操作在硬件控制板上完成,因此,硬件控制板中需要具备独立的mcu。
在工业环境下,兼具高性能和多功能的mcu有很多,但还要具备低成本和开发难度低这两方面的mcu不多,其中,stm32系列就是不错的选择。
2.2. 通信选择
由于硬件控制系统选择使用stm32为核心进行搭建,使得硬件控制系统和工业控制计算机之间通讯方式的选择多样。由于是工业环境下使用,从低时延和稳定性的角度讨论的话,有两个不错的通讯接口,分别为rj45接口和rs-232接口。
使用rj45接口,可以使用tcp/ip协议或者udp协议,这两个协议不论是通讯的时延和稳定性都满足要求,可是工业相机使用的gige vision协议也是基于网口的,因此,如果使用了网口通信就得加一个工业交换机,或者使用双网卡的工业控制计算机。
相比较之下,rs-232接口不仅满足了性能要求,而且还不需要添加工业交换机,也不需要必须使用具备多网卡的工业控制计算机。
2.3. 硬件控制系统功能
为了方便硬件控制系统中控制板的设计与绘制,首要工作就是确立好硬件控制板具体具备的功能和执行的任务。
首先,硬件控制系统需要有效的控制相机拍照,因此,保证硬件控制板具备有效且稳定的输出io口;其次,硬件控制系统还要接收过多的输入信号,使得硬件控制板的输入io口足够多,且对速度有一定的要求;然后是工业环境下硬件系统的电源电压一般都是dc24v,使得硬件控制系统中电源部分要进行合理的分配;最后是通信部分,已经确定使用rs-232接口。
3. 硬件控制板的电路设计
3.1. 核心部分设计
3.1.1. 核心芯片
虽然核心芯片选择了stm32,但是stm32所包含的型号种类过多,从目前来看,有三种型号可以选择,分别是stm32f103vct6、stm32f407vet6和stm32f707vgt6。这三款芯片总线上的资源用来做硬件控制板是绰绰有余的,但是三款芯片的主频速度差异太大,三款芯片的主频分别是72 mhz、168 mhz和216 mhz。从芯片的运算速度来看,第一个被淘汰的就是stm32f103vct6,它的主频过低。如果只看速度的话,stm32f707vgt6是最合适作为硬件控制板的主控芯片的,但是如此高的速度再加上其芯片自身的价格,对于目前硬件控制板的功能来说,它是性能过剩且抬高了硬件控制系统的价格。因此,stm32f407vet6不论是主频速度还是自身成本都是最合适的。
3.1.2. 芯片驱动电路
使用stm32f407vet6芯片需要进行其驱动电路的设计,保证其芯片的外部晶振稳定输入和芯片内部电压稳定 [3]。因此,通过芯片的数据手册进行绘制电路图,如图3所示。
. stm32 minimum system circuit
图3. stm32最小系统电路
3.2. 输入部分设计
输入端口电路设计
硬件控制板的所有端口都是面向工业环境,因此,输入电压基本处在十二到二十四伏,而所选择的核心芯片引脚的输入电压不得超过五伏,因此,外部设备的输入信号在进入到芯片之间需要一个具备电压隔离的耦合电路,电压隔离最彻底的耦合方式为变压器耦合与光电耦合 [4]。
输入的信号有光电传感器信号、运动控制器输出信号,甚至还有编码器信号,这些信号对速度和稳定性有着较高的要求,因此,输入部分需要使用光电耦合方式。光电耦合方式的核心部件在于光耦,由于输入部分只对速度和稳定性有过高的要求,不要求其拥有过高的带载能力,因此,使用高速光耦最为合适,如hcpl2630。
为了保证stm32芯片接收到的信号高低电平转换明显,可以在hcpl2630后面添加一个74hc14施密特触发器,这样对hcpl2630输出的信号进行整形(图4为输入部分电路)。由于74hc14供电为五伏,使得74hc14输出的信号为五伏,虽然stm32芯片可以耐受五伏的电压,但是如果信号输入过程有过多的波动,使信号电压过高的情况下输入到芯片,会造成对芯片不可逆的损害,因此,需要将输入到芯片的高电平电压转换为三点三伏。电压转换电路如图5所示。
. input part of hcpl2630 and 74hc14
图4. hcpl2630与74hc14组成的输入部分
. voltage conversion circuit
图5. 电压转换电路
3.3. 输出部分设计
输出端口电路设计
输出部分主要是控制工业相机的供电和拍照控制,虽然工业相机的拍照控制使三点三伏到二十四伏,但是工业相机的供电需要十二伏,因此,为了设计方便都使用十二伏最为合适。由于stm32芯片只能输出三点三伏的电压,因此,需要一个电压转换电路。整个系统对输出信号的速率没有过多的要求,因此,使用普通的el357n光耦就可以应对系统对于输出的要求。工业相机供电与控制电路图如图6所示。
硬件控制板只是控制工业相机显得输出部分过于单调,可以将工业光源也通过硬件控制板控制,这样可以节省到工业光源的光源控制器。由于工业光源的功率很大,使得工业相机的控制电路并不能给其使用,因此,需要设计一个驱动能力强的控制电路。mos管组成的开关电路就具有很不错的驱动能力,因此,使用mos管搭建一个工业光源的控制电路,如图7所示。
. power supply and control circuit of industrial camera
图6. 工业相机供电及控制电路
. control circuit of industrial light source
图7. 工业光源控制电路
3.4. 通信电路
rs-232接口通信电路
rs-232接口通信电路使用stm32芯片的usart1的引脚接上max232ese芯片组成,如图8所示。通过该电路既可以将硬件控制板的串口数据发送到工业控制计算机中 [5],也可将工业控制计算机命令下发给硬件控制板,让硬件控制板控制系统中设备运转。
4. 软件逻辑设计
4.1. 系统主流程
硬件控制板主要任务为接收滴灌管打孔位置经过光电传感器的触发信号,然后通过直流电机输出的编码器或者硬件控制板自身的定时器来保证滴灌管打孔处经过工业相机位置时被拍照记录下来,如图9所示。
滴灌管每个打孔位置的间隔大小是相近的,并且滴灌管打孔处经过光电传感器到相机的距离是远远大于孔间隔的,因此,在每一次执行上述流程的时候光电传感器都会发送来触发信号的。因此,系统的流程不能是简单的一进一出,首先需要通过设置硬件控制板的外部中断口,来保证光电传感器发送来的信号是不会被忽略掉;然后需要在软件上对接收的触发信号进行队列保存,这样可以确保信号不会乱套甚至丢失;将存入队列的信号打上编号,并为其记录相应的外部编码器输入的数值a或者内部计数器累加数
. communication circuit of rs-232 interface
图8. rs-232接口通信电路
. system main flow diagram
图9. 系统主流程图
值b,这样可以让入队的信号是独一无二的,更加保证了打孔位置到达工业相机位置时能被准确拍照;最后在保证光电传感器与工业相机距离x不变的情况下,让程序主流程频繁读取外部编码器输入的数值c或者内部计数器累加的数值d,当读取到数值满足(c ≥ a x)或者(d ≥ b x)时,硬件控制板控制工业相机拍照 [6]。这样硬件控制板就可以完美地接替旧的硬件控制系统。
4.2. 刀号的识别
旋转打孔刀是通过运动控制器控制的,当滴灌管的打孔处经过光电传感器时,运动控制器根据整体打孔刀的运动状态顺序安排一把刀为其打孔,因此,当前经过传感器的打孔处用什么刀打孔只有运动控制器知道,所以理论上运动控制器可以做到在给打孔刀信号的同时,可以让其他端口输出信号,硬件控制板通过读取对应端口的信号就可以知道当前运动的是哪刀了。
由于运动控制器发送的刀信号是在当前打孔位置从光电传感器运动到工业相机之间的任意时间节点,因此,这个刀信号的出现时间具有随机性。为了保证可以有效的处理刀信号,对刀信号和光电传感器信号进行了采集,如图10所示。
. collected knife signal, sensor signal and camera photo signal
图10. 采集的刀信号、传感器信号和相机拍照信号
通过图10可以看出,从第一个传感器信号出现到第一个相机拍照信号的产生期间会出现多个传感器触发信号和多个刀运动信号,因此,这些信号需要进行整理分类,通过图片可以看出,所有输入的信号都是有序的,因此,通过队列将传感器触发信号和刀运动信号规整到一起生成一个独立id号,将这个id号发送给工业计算机,让其赋给相应的图片。
通过图片中的时序可以发现,在系统执行信号输出过程中会出现刀号的进入,如果只是通过扫描的方式检测输入信号会出现丢信号的现象,因此,不管是传感器触发信号还是刀运动信号都需要使用stm32的外部中断端口输入,这样不仅可以保证信号不丢失,还可以快速地对输入的信号做出及时的处理。
此时,stm32通过不同的外部中断触发来识别出判断出即将拍照的孔是经过那把刀打出的,这样硬件控制板就可以通过rs-232接口将滴灌管打孔位置对应的独特id号发送给工业控制计算机,使得工业控制计算机从工业相机获取的图片拥有了独立的信息。
5. 成果
将编写好的程序下载到硬件控制板中,使用新的硬件控制板搭建机器视觉检测系统,将新搭建的机器视觉检测系统安装到滴灌管生产线上进行实际测试。测得实际结果符合理论判断,如图11所示,窗口可以很自然地将四个刀打的孔显示出来。
通过图11可以清晰地看出,打出的孔对应哪把刀,因此,通过算法可以对所打的孔进行评判是否合格,如果不合格,可以直接提示几号刀打孔出现问题。在滴灌管生产线操作人员看到提示后,可以直接
. punching display with knife number
图11. 带刀号打孔显示
让出问题的刀停止工作,然后更换刀头,不需要停止整条生产线来进行检查。这样不仅提高滴灌管生产线的工作效率,还提升了滴灌管生产线应对问题时的灵活性。
6. 总结
初始目的是为了实现打孔系统中视觉检测系统的刀号显示,在新的视觉检测系统硬件控制系统的设计过程中,将传统部分进行优化,使得硬件控制板使用过程中节省了光源控制器的使用,并且做到了通过使用一块硬件控制板完成检测系统的硬件控制,改掉了旧的系统需要工业控制计算机参与硬件控制,让视觉检测系统中的各个部分的功能更加集中。最终新的机器视觉检测系统实现了结构简单、模块化分布、刀号识别等功能。
在视觉检测系统硬件功能丰富的情况下,软件算法可以实现更多的判断,使得视觉检测结果更加精准有用,不仅提升视觉检测设备自身的价值,还通过提升滴灌管生产线的效率,从而提升了滴灌管生产线的价值。