基于机器视觉的智能相机与PLC的通信研究及设计
2021-01-05王康康王亚楠
王康康, 王亚楠
(河南广播电视大学 机电工程学院,河南 郑州 450008)
一、引言
随着工业生产的自动化、智能化程度不断提高,机器视觉的应用也越来越广泛,机器视觉的作用是用机器代替人眼来做测量和判断。机器视觉系统是指将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号,图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。[1]机器视觉的应用场合很多,对于物体形状识别、物体位置识别、物体缺陷识别、物体色彩识别、文字识别等场合都有广泛应用。在工业应用中,机器视觉代替人类眼睛,完成各种识别任务,取得了很好的效果。如果仅仅将机器视觉作为一个终端数据获取设备,那么机器视觉只能应用于做一些简单的判断处理事件,应用范畴和领域比较单一。如果能够将机器视觉系统获取到的数据传送到其他工业控制器,再利用控制器的工业控制功能就可以完成较为复杂的工业生产流程。目前,可编程控制器PLC对于工业自动化的应用来说已经相对成熟和稳定,如果将机器视觉系统经过采集、处理得到的数据结果传送到可编程控制器PLC,那么工业系统就可以完成较为复杂的控制流程。机器视觉和PLC通过通信联合使用,将大大提高工业生产自动化和智能化的程度。本文针对CCD智能相机和可编程控制器PLC之间的数据通信进行研究和开发,利用视觉软件和西门子博图软件设计出了可行的通信方案。
二、硬件系统设计
(一)智能相机
智能相机在机器视觉系统中有举足轻重的作用,它的工作原理是把拍摄到的图像经过智能相机的中央处理器(CPU)的计算和处理,将图像信息转化为数字或模拟电信号,所以智能相机对采集到的工件信息的有效性和准确性有着至关重要的决定性作用。当前,智能相机主要采用CCD或CMOS传感器来对工件对象进行图片信息采集,在本文的研究中,选择CCD智能相机进行图像信息采集,智能相机内集成有数字图像处理(DSP)芯片,在不依靠个人电脑的条件下可以独立进行图形信息的处理,提取需要的各类数据。智能相机如图1所示。
图1 智能相机
本文所选择的相机有两个接口,分别为RJ45网口与DB15串口,连接时,用交叉网线连接相机与电脑,用SW-IO串口线连接相机与电源控制器。图2为串口线图例与串口各针脚的定义图。[2]
智能相机的数字输入的电路连接如图3所示,输入规格如图4所示。
图2 串口线与串口各针脚的定义图
图3 智能相机的数字输入电路
图4 输入电路规格表
智能相机的数字输出电路连接如图5所示,输出规格如图6所示。
图5 智能相机的数字输出电路
图6 输出电路规格表
智能相机支持的通信方式包括以下两种:RS-485、100M以太网。智能相机通过RS-485串口可以与所有支持MODBUS通信协议的RS-485设备通信。智能相机通过100M以太网可以与所有支持MODBUS-TCP通信协议的100M以太网设备通信。[3]
对于机器视觉系统,除了智能相机有着关键的作用外,相机的镜头也很重要。目标工件的图像先经过镜头,然后再传送到CCD传感器上,由CCD传感器对工件进行信息采集,所以镜头对图像的传送质量直接影响图片信息的采集质量,因此镜头的重要性不言而喻。因为在不同工业场合下,机器视觉系统对成像质量有不同的要求,有的工业场合对成像质量要求很高,这时需要选用参数较高的镜头,价格相对较贵;有的工业场合对成像质量要求一般,这时就没必要选用参数高的镜头,选用满足控制要求但是价格低廉的镜头较为合适。这就需要根据不同工业场合和要求,选择合适的工业镜头来保证要求。所以,能够选择合适的保证图片质量的镜头也是保证机器视觉系统平稳运行的重要步骤。镜头对图片质量的影响指标主要有:对比度、分辨率和色差。在对工业镜头进行选择时,可以参照的镜头主要指标有:焦距、接口形式、分辨率、景深等。
目前市场上的镜头有很多类型,根据特定的指标可以将镜头分类如下:
(1)根据有效像场的大小划分:1/3英寸镜头、1/2英寸镜头、2/3英寸镜头、1英寸镜头。[4]
(2)根据焦距划分:分为变焦镜头和定焦镜头。变焦镜头有不同的变焦范围;定焦镜头可分为鱼眼镜头、短焦镜头、标准镜头、长焦镜头、超长焦镜头等多种型号。[4]
(3)根据镜头和摄像机之间的接口分类:智能相机通常用的有C接口、CS接口、F接口、V接口、T2接口、徕卡接口、M42接口、M50接口等。[4]
一般的镜头可以满足常用的工业控制要求,但是在特殊的控制要求中,需要选用特定的工业镜头,比如根据工件成像的需要,在一定场合下要选用微距镜头或者远距镜头,此外还有针对特定场合需要选用的紫外镜头、红外镜头等特定镜头。在本设计中选用低畸变镜头即可满足成像要求,如图7所示。这种镜头目前市场上应用的较为普遍,对于大多数工业环境来说都可以使用,成像能满足基本的控制要求,图像产生的畸变很小。与大多数镜头相比,价格低廉。综上所述,在本设计中选用这种镜头比较合理。
图7 低畸变工业镜头
(二)光源
除了智能相机和工业镜头之外,在机器视觉系统的组成中,另一个重要的元器件是光源,它对机器视觉中所获得的图片数据的精确性有关键影响。
机器视觉的光源根据不同的场合应用分为多种形式:有环形光源、背光源、条形光源、同轴光源、AOI专用光源、球积分光源、线性光源、点光源等。[5]在本研究中,根据实际情况,选择使用背光源,它是用高密度LED阵列面提供高强度背光照明,能突出物体的外形轮廓特征。[6]根据本文搭建的试验台和所使用的研究对象,使用视觉系统的目的是获得目标工件的中心位置和旋转角度,使用背光源能使智能相机更好地捕获到目标工件的这些几何信息,所以本文选用背光源是较为合理的。
(三)光源控制器
在机器视觉系统中,光源控制器有两个作用,一方面可以通过编程自动控制光源的强度,根据不同的工件对象自动变化相应的光源强度,来满足智能相机成像的要求。另一方面,光源控制器可以控制触发相机拍摄,以及将智能相机获取的数据输出到其他工业控制器上。
(四)智能终端
在机器视觉系统中,智能终端用于显示智能相机获取的数据信息,实现信息的可视化。在工业自动化控制项目中,经常用到的智能终端是触摸屏,用于机器视觉系统和操作人员的信息交互。
(五)机器视觉系统硬件搭建
针对本文的研究目的,构建一套机器视觉硬件系统,主要包括:智能相机、镜头、光源、光源控制器各1个,视觉电缆2根,智能终端1个。系统的组成如图8所示。
图8 机器视觉系统硬件组成
在本文研究的机器视觉的硬件系统中,工件放在光源(背光)上方,背光光源对于获取工件的轮廓信息的场合特别适用,在此我们需要获取工件的位置信息和轮廓信息,所以选择背光光源是合理的。工件的轮廓信息通过智能相机的镜头被摄入到智能相机的图像采集器上,然后由智能相机的DSP处理器进行图像信息处理,经过计算得到目标数据,然后经过上位机软件的设置,将获取的数据经过以太网传送给可编程控制器PLC,在PLC内再进行数据的处理,然后按照获取的数据进行相应的外部动作控制。
三、软件系统开发与实现
在机器视觉硬件系统设计的基础上,进行智能相机与PLC之间通信的软件开发与设计,本文选用西门子S7-1200PLC作为控制器,利用西门子博图软件内嵌的通信函数完成智能相机和可编程控制器PLC的通信功能,同时也需要在视觉软件内设置好Modbus通讯地址表,便于PLC程序开发时通信指令的设置,完成智能相机和可编程控制器PLC的通信。
智能相机和可编程控制器PLC的通信流程如图9所示。
图9 通信流程图
在西门子博图软件中进行编程,将智能相机作为服务器,PLC作为客户端,即主站,利用MBCLIENT指令建立PLC与智能相机的通信。具体程序如图10所示。
图10 通信程序开发
在MB_CLIENT指令中,REQ引脚作为通信触发条件。DISCONNECT引脚设置为0,使智能相机和PLC之间进行持续通信。IP_OCTET_1、IP_OCTET_2、IP_OCTET_3、IP_OCTET_4这四个引脚设置为智能相机的IP地址。IP_PORT设置为默认端口号502即可。MB_MODE引脚是通信方式,0表示从服务器读取数据,1表示将数据写入服务器。在此,因为PLC要从智能相机中读取数据,所以将MB_MODE引脚设置为0。MB_DATA_ADDR引脚是访问数据的起始地址,在相机软件的MODBUS配置中,将数据的起始地址从41001开始设置,所以对应的在PLC中编程时候也需要将MB_DATA_ADDR引脚设置为41001。MB_DATA_LEN引脚是读取的数据个数。MB_DATA_PTR引脚是从服务器中读取的数据存放在PLC中的数据块的地址。经过这样的设置后,作为客户端的PLC就可以从作为服务器的智能相机中读取数据。需要说明的是,客户端和服务器是相对而言的,也可以将PLC作为服务器,将智能相机作为客户端,让智能相机主动发送数据到PLC中,但是这样的话就需要到智能相机的控制器中进行编程设置,不如在PLC中进行编程方便。所以,选择智能相机作为服务器,PLC作为客户端,在PLC编程中用MB_CLIENT指令主动从智能相机中读取数据。
在视觉软件中需要对工件进行学习,利用脚本程序得到工件的位置数据和旋转角度数据,然后通过MODBUS协议将数据传送给PLC,这样工件的位置、形态就能唯一确定了,便于后续工序对零件的进一步操作。
视觉软件的开发环境如图11所示。
图11 视觉软件的开发环境
脚本程序如下:
智能相机与PLC通信成功后,在PLC端显示的相机拍得的工件数据如图12所示。
图12 PLC通过通信得到的数据
四、结束语
本文通过研究和设计,选用了合理的智能相机、镜头、光源和PLC等元器件,构成了机器视觉硬件系统,通过软件编程开发实现了智能相机与可编程控制器PLC的通信,实现了PLC主动读取智能相机中对工件采集的位置数据,给出了具体的软件实现方法,对于进一步提高工业自动化、智能化具有一定的参考价值。机器视觉不仅仅应用在位置检测中,在缺陷检测、数量统计等方面也有广泛的应用,若结合与可编程控制器PLC的通信功能,将大大提高生产效率和自动化程度,减少人工识别错误率。本文对于机器视觉应用范畴的推广具有一定的借鉴意义。