机器视觉运动控制一体机应用例程|瓶盖密封完整性检测(十三)
对于许多可饮用的瓶装产品而言,其密封的完整性可向消费者保证此产品未经任何改动,消费者可放心饮用。
如果产品的瓶盖缺失或翘起会导致无谓的产品加工原料的浪费和代价高昂的返工费,从而造成利润损失。同时瓶盖没密封好也会让消费者对厂商生产过程中对产品质量的管控能力产生怀疑,导致产品退货和返工,从而造成企业利润损失。
我司的瓶盖密封完整性检测系统能快速识别瓶盖缺失,检验每个产品上瓶盖是否密封完整,从而保证每个瓶装产品上瓶盖的密封完整性,解决生产的实际问题。
上期课程,我们讲述了机器视觉方案中产品全局外观检测的应用例程,本期课程我们将和大家一起分享如何实现瓶盖密封完整性检测的功能。
15:50
(一)检测需求
检测瓶装产品在灌装完成后瓶盖是否处于密封状态。
(二)软件算法
使用两个直线测量器分别检测瓶盖底部的直线和瓶盖顶部的直线,然后计算两条直线之间的尺寸值以及两条直线之间的角度值,如果瓶盖未盖紧或翘起,尺寸值将大于标准的尺寸值,角度值也会有变化。
(一)软件实现
1.打开ZDevelop软件:新建名称为“瓶盖检测.zpj”项目→新建“HMI”文件→新建“main.bas”文件,用于编写界面响应函数→新建“global_variable.bas”文件用于存放全局变量并开启HMI自动运行任务→新建“InitLocator.bas”文件用于初始化测量参数→新建“draw.bas”文件用于更新绘制ROI数据→新建“camera.bas”文件用于实现相机采集功能→文件添加到项目。
2.设计HMI界面。
3.关联HMI主界面控件变量。
4.点击[元件]→[新建窗口],新建参数设置窗口,设计窗口布局以及关联参数设置窗口控件变量。
5.本期课程使用两个直线测量器分别去检测瓶盖底部和瓶盖顶部的直线,然后计算两条直线的距离以及夹角。此次课程完整代码和示例图片可通过下方链接获取。
直线测量指令:
ZV_MRGENLINE(直线测量器,旋转矩形中心x坐标,旋转矩形中心y坐标,旋转矩形宽度,旋转矩形高度,旋转矩形角度,插值算法,子区域数量,表示的是旋转矩形被划分成的子区域个数,子区域宽度,单位像素,表示的是每个子区域的宽度)
检测直线夹角指令:
ZV_ANGLELL(直线1的第一点的x坐标,直线1的第一点的Y坐标,直线1的第二点的x坐标,直线1的第二点的Y坐标,直线2的第一点的x坐标,直线2的第一点的Y坐标,直线2的第二点的x坐标,直线2的第二点的Y坐标)
计算点线之间的距离指令:
ZV_DISTPL(点的x坐标,点的Y坐标,直线第一点的x坐标,直线第一点的y坐标,直线第二点的x坐标,直线第二点的y坐标)
(一)操作步骤
查看运行效果:将项目下载到仿真器中→使用本地图片→单次采集→瓶盖设置→设置框选瓶盖顶部ROI,检测直线区域→设置框选瓶盖底部ROI,检测直线区域→点击测试,查看检测效果→点击返回主界面,再点击运行,查看连续运行效果→结束。
01:33
本次,正运动技术机器视觉运动控制一体机应用例程丨瓶盖密封完整性检测,就分享到这里。