邹 杰,徐 攀,胥 军,张家伟,李刚炎
(1.武汉理工大学 机电工程学院,武汉 430070;2.湖北工程学院 机械工程学院,湖北 孝感 432003)
光学透镜是光学系统中的核心部件。随着科技的发展,光学透镜已经广泛应用于医疗、教育、工业、交通、教育、安防等诸多领域,人们对光学透镜的需求也随之剧增。光学透镜的生产需要经过制造和质检两个环节,质检是对光学透镜多项光学参数和尺寸参数的测量以及对不同质量等级产品的分选。面对多品种大批量的生产现状,光学透镜的质检效率和精度面临巨大挑战,质检手段由传统简单仪器手动测量向多功能仪器自动测量转变已成发展趋势。哈尔滨工业大学的科研团队研究并建立了多参数光学透镜检测试验台,实现了对有效焦距、后焦距、曲率半径及中心厚度的精确测量。德国TRIOPTICS公司研制出了OptiSpheric 透镜和光学系统光学参数通用测量系统。使用PC作为测控终端,能自动测量焦距、调制传递函数、截距、曲率半径、法兰焦距。德国OEG GMBH研制的OTS-500光学测试工作站可以在透镜生产过程中对光学透镜的传递函数、焦距、截距、曲率半径参数进行快速、可记录的测量。上述研究虽然有各自的优势,但都未涉及透镜外圆外径检测,且检测过程中需要手动对透镜进行搬运和分选,搬运过程中容易造成透镜表面污染和损伤。为解决上述问题,基于LabVIEW平台开发一套透镜多参数全自动检测系统,包括硬件系统和软件系统的设计,软件系统负责协调硬件系统的执行元件和测量设备完成圆形透镜搬运、分选以及对外径、椭圆度、中心厚度的自动测量、记录和报表输出任务。并通过实测证明检测系统测量精度高,操作界面便捷,数据显示直观。
透镜多参数自动检测系统的总体结构二元图如图1所示。检测系统的硬件系统包括测量设备:气动位移传感器、厚度检测仪和动作控制器件:PLC、电缸控制器、电磁阀、磁性开关、按钮盒。软件系统包括检测系统上位机软件及其运行环境支持软件:中心厚度检测仪软件、NI OPC Severs、Excel、Access数据库。
图1 检测系统总体结构二元图
气动位移传感器用于测量透镜径向尺寸变化量。传感器包括4个气动感触头、4个信号放大模块和1个通信模块。当气动感触头内的单作用气缸推杆动作时,会产生微弱的电压变化。与感触头相连的信号放大模块捕捉到变化的微小电压信号后将其线性放大并转化成位移数字量。PC上位机通过RS232通信协议向通信模块发送访问指令并接收返回的位移数字量。
中心厚度检测仪用于测量透镜上下表面反射光的波长,当光源的光线通过中心厚度检测仪的光学系统照射到透镜上时,透镜的上下两表面会反射两束波长不同的光线,厚度检测仪中的光谱仪检测到反射光之后将其转化为实时的电信号,通过USB数据线传递到PC机。
PLC包括主站和从站,用于动作控制和状态反馈。主站PLC负责控制转运机械手各电磁阀的动作以及检测各气缸上磁性开关和控制盒按钮的状态信号。从站PLC除了负责控制上下料机械手各电磁阀的动作以及检测磁性开关的状态信号外,还通过I/O信号线缆给电缸控制器发送运动指令和检测电缸当前位置。
电缸控制器负责电缸运动控制和电缸位置反馈。电磁阀用于驱动动作执行器件(气缸)的运动。磁性开关用于检测气缸推杆所处的位置,反馈运动是否执行到位。按钮盒包括按钮和指示灯,按钮用于控制检测系统的启停。指示灯用于指示检测系统的运行和复位状态。
厚度检测仪软件用于计算透镜的中心厚度。首先在软件中选择合适的参数,当其接收到由光谱仪的实时光谱数据后,就能自动计算出透镜的中心厚度。
NI OPC Severs用于实现PLC与检测系统上位机软件之间的通信[1]。Excel用于检测系统上位机软件的报表输出。Access数据库用于存放缓存数据、用户信息、检测数据和产品标准参数[8]。
检测系统上位机软件是整个检测系统的核心,负责测量数据处理、质量判断、透镜分选决策、检测结果显示、检测数据存储、报表输出等任务。按照上位机软件的任务设定,将其大致划分成9个功能模块。分别是初始化模块:完成软件运行前的初始化,将通信端口、待检透镜品名、对版透镜外径值等映射到对应的节点;登录模块:实现管理员和普通用户的登录功能,管理员登录后可对用户账号进行增、删、改、查操作;通信设置模块:设置上位机软件与厚度检测仪软件、位移传感器之间的串行通信端口。参数管理模块:实现透镜标准参数在Access数据库中的增、删、改、查操作;校正模块:完成传感器的零点标定和厚度检测仪校正;检测模块:实现透镜检测、质量分选、结果保存等功能;报表输出功能:用于检测报表生成;自定义启动模块:用于设备复位后重新设置吸取透镜的起始位置,跳过默认起始位置;显示模块:用于检测完成后对检测结果和历史检测数据的显示。
光学透镜中心厚度的测量方法有两大类[6],分别是接触测量法和非接触测量法,接触测量法虽然结构简单,但是容易损害透镜表面,且测量探头来回移动易造成磨损,导致测量精度下降。所以本试验台对中心厚度的检测采用非接触测量法,其测量原理是色差共焦原理[3]。中心厚检测装置的检测原理如图2所示,光源及相关检测接收装置位于透镜上方。
图2 非接触式测厚装置工作原理
透镜外圆外径的测量可以参考其他圆形工件的测量方法。圆形件外圆外径的测量方法也分为接触式测量法和非接触式测量法两大类[7]。由于非接触式测量法相比于接触式测量法需要更大的安装空间且成本更高,故本检测系统优先采用紧凑且廉价的接触式测量法,并将4个位移传感器按照如图3所示布置。
图3 传感器布置示意图
首先将检测工位的透镜摆放平台面假想成理想平面,并在此平面上建立一个直角坐标系。检测前,使用外径值已知的模板透镜对4个位移传感器的感测头顶点位置进行零点标定。检测过程中,根据位移传感器在径向上的微小变动量可算出4个感测头顶点的新坐标,再将其中的3个坐标代入方程:
(x1-x0)2+(y1-y0)2=R2
(1)
(x2-x0)2+(y2-y0)2=R2
(2)
(x3-x0)2+(y3-y0)2=R2
(3)
则可计算这3个坐标所在圆的圆心坐标(x0,y0),进而得出这个圆的直径。将4个坐标按照3个一组排列组合后可算出4个不同的外径值,将4个外径值的最大值减去最小值就可得到透镜的椭圆度。
LabVIEW是美国国家仪器公司开发的一种图形化编程语言(G语言),其数据传递常规载体是数据流,数据通过相互连接的节点按先后顺序在SubVI中传递,单一的使用这种数据传递方式会降低系统的动态灵活性和VI的可重用性。为弥补数据流的上述问题,更好地协调较复杂系统中相互并行的SubVI,LabVIEW又发展出了全局变量、局部变量以及同步控制技术。作为并行任务间协调和管理数据传递的手段,虽有助于用户开发更加强大的系统,但是它们在一定程度上会降低程序的可读性。因此LabVIEW平台又提供了生产者/消费者设计模式[5],它是一种比程序更高层的结构框架,通过在VI内部建立一条通信队列,实现了生产者线程到消费者线程之间的数据传递,避免了并行线程之间不同步的制约,保证了线程之间各自的运行不受干扰。但是在大型测控系统中,并行线程往往由多个VI联合完成,每个线程可能需要同时具备收发数据的能力,各并行线程之间的数据流关系也可能随着内部VI的执行进程而发生动态变化,这种情况下生产者/消费者设计模式将难以胜任。
考虑到上位机软件的功能复杂程度和模块化设计思路,可能需要设置多个并行线程,且每个并行线程内的功能模块都要进行数据收发才能保证系统的正常运行,上述的3种数据传递模式都不能达到理想效果。发布者/订阅者通信模型是一种可在并行线程之间发布和订阅信息的通信机制,在生产者/消费者模式的基础上,发布者/订阅者模型[2]提供了VIPC(VI Publication Channel)、VIPM(VI Publication Manager)等基础设施和服务,可使数据流不需要明确而固定的指向和依赖关系,为上位机软件的数据流模型提供了参考思路。
上位机软件的数据传递模型如图5所示,模型左侧的模块为数据的发布者,右侧为数据的订阅者。VIPM是软件中的特定逻辑和算法,VIPC则是数据库、PLC共享变量、全局变量、Excel、测量数据接口等数据通道。发布者模块向VIPC发布数据以及接收者模块从VIPC获取数据都需要满足VIPM的注册或订阅条件。
图4 数据传递模型
图5 检测系统主程序框图
为降低上位机软件程序框图在空间上的耦合性和维护难度,提高程序的灵活性和可扩展能力[4]。检测系统软件采用高度封装的模块化设计思路,结合发布者/订阅者模型,在各功能模块中完成既定任务和数据收发功能。各功能模块设计完成且逐个调试通过后再进人主程序设计环节。
主程序采用5线程结构,其程序框图如图6所示。初始化模块置于所有线程之外,软件启动时立即加载缓存数据到全局变量,并发送数据库产品参数表中的品名到前面板品名库。第1个线程负责检测状态和暂停状态之间的切换。在检测状态下,禁用部分功能按钮,避免因误操作而引起检测出错。进入暂停状态后,启用全部功能按钮都,且启动按钮抬起。第2个线程负责监视检测触发条件。线程中的超时事件每隔50 ms刷新一次,当开始按钮按下且读取数据标志位共享变量处于置位状态时,检测事件源的值改变一次。第3个线程负责产品参数选择和产品质量检测。品名列表双击事件中被双击选中的产品名称会显示在当前品名显示框,与此同时与该品名关联的各项标准参数也会传递到对应的全局变量。检测事件中的数据获取子程序从各数据接口访问测量数据,经外径计算子程序算出外径值后通过质量判断子程序得出透镜的质检结果。最后检测数据通过测量结果保存子程序存储到数据库,与此同时发送分选指令子程序根据质检结果向下位机发送分选信号。第4个线程线程负责前面板的显示,线程中的超时事件每隔200 ms刷新一次,每次刷新前面板的指示灯状态和图表内容都会更新一次。第5个线程用于调用登录、参数管理、通信设置、校正、自定义启动、报表生成等功能模块,这些高度封装的功能模块分别放置在对应的事件分支中,依靠发布者/订阅者模型传递数据,相互之间没有空间上的输入输出节点。
图6 软件界面
上位机软件的主操作界面如图7所示。主界面右侧的3个XY Graph分别用于显示透镜的外圆外径D、中心厚度H和椭圆度E。XY Graph中的横向虚线是透镜质量等级划分临界值,纵向竖线的顶点值是各参数的测量值,竖线顶点与横向虚线的位置关系可以直观的反应透镜质量等级。例如在外圆外径图表中,如果4个顶点都在两横线所夹区域内则表示外圆外径合格,如果至少有一条竖线的顶点在所夹区域之下则表示外圆外径为废品,如果至少有一条竖线的顶点在所夹区域之上且无竖线顶点在所夹区域之下则表示外圆外径为次品。中心厚度图表、椭圆度图表与外圆外径图表类似。检测数据表用于显示检测历史数据,便于操作者对不良品进行及时处理。主界面左侧的功能按钮是功能模块子界面调用菜单。
在验证实验中,使用130枚型号为G-GB121A-A07的凸透镜作为实验样本,对透镜检测系统的测量精度进行验证。首先使用千分尺在样本透镜的外圆上进行多点测量,测得第每一枚样本透镜的外圆外径最大值DSnu和最小值DSnd,作为外径标准值。再使用千分表测量每一枚样本透镜的中心厚度HSn,作为中心厚度标准值。标准值记录完毕后,将样本透镜送到透镜多参数检测系统进行实际检测。检测完毕后,从报表中抽取出外径测量值和中心厚度测量值分别与其标准值进行比较分析,得出外径测量偏差和厚度测量误差。
在分析过程中,分离出每一枚样本透镜的系统实测外径最大值DMnu和最小值DMnd。将系统实测值与标准值按照表1的规则进行比较和计算,得出系统外径测量的上偏差Dnu和下偏差Dnd。
表1 外径测量偏差计算规则
图7(a)是全部样本透镜外径实测值Dnu与Dnd在坐标系中的分布,使用如图7(b)所示的柱状图对全部外径偏差值进行统计。统计结果表明Dnu与Dnd集中分布于-1.17~1.61 μm之间,且在±3 μm内且呈近似正态分布。
图7 实验结果
将系统实测的样本透镜中心厚度检测值Hmn与Hsn的差作为中心厚度测量误差Hen,全部样本透镜的Hen在坐标系中的分布如图8(a)所示。Hen的统计结果如图8(b)所示,统计结果表明中心厚度测量误差的绝对值基本保持在3um以内且成正态分布。
图8 厚度测量误差分析和厚度误差统计
通过对透镜的外径、中心厚度等参数的系统检测结果验证表明,本文基于LabVIEW设计的透镜多参数检测系统具有较高的检测精度,上位机软件界面操作便捷,数据显示直观。上位机软件的程序在发布者/订阅者数据模型的基础上,实现了高度模块化设计,使整个系统具有较强的功能扩展能力,证明了透镜多参数全自动检测的可行性,且为其他测控系统的设计提供了参考。