【技术分享】VM实现状态机
机器视觉软件的一般应用主要实现对产品的检测、识别、定位等静态功能,比如上位机给到触发命令后,视觉软件完成产品检测并反馈对应结果。这其实是将视觉系统定位为执行单元的角色,功能单一、应用局限。遇到需要结合工艺流程管理、人工耦合密切的项目,就很难推动项目的实施落地。基于以上的现状,避免二次开发带来的门槛,来探索海康VisionMater视觉软件的极限应用,故分享一个实战方案,是基于VM算法平台搭建状态机,实现“外部指令→PLC反馈→状态机流转→UI同步”的全链路控制。

一 项目背景:

        汽车顶棚在人工装配工序后需要进一步成品件防错检测,为解决错漏装导致的品质问题,通过扫码及视觉检测的方案来防止问题件流出工厂。

二 工艺流程:

        扫描总成零件号→(扫描线束码→扫描左后顶灯码→扫描天线后馈码→扫描右后顶灯码)→检测顶棚B面错漏装→检测顶棚A面错漏装→完成自动复位

三 流程分析:

        每一个执行动作都有OK\NG两种结果:结果需要显示在UI界面上;结果决定流程步骤(OK跳转下一动作,NG继续当前动作);顺序执行每一动作都OK后检测流程才能正常结束。
        这里存在复杂的if-else的逻辑判断,如果单纯用分支模块,就会使得程序非常庞大,也不好维护。那么接下去就以状态机的模式彻底解决这个问题。

四 方案搭建: 

        >>方案分5个流程,每个流程处理单独的业务逻辑


        >>定义全局状态变量,作为状态切换的核心判断标志。(定义0,1,2,3,4,100,101来分别对应执行步骤)

        1 扫码流程实现:


            使用分支模块,根据全局状态变量的值执行对应分支来实现状态管理。


            再次通过分支模块来决定是否切换状态,而每次的分支流程都会刷新UI界面将判断结果和状态结果都体现在界面上。



            本方案通过读取ini文件来实现配方管理,简单明了,当扫描总成零件号(例如 TP27192026)成功匹配之后,脚本输出线束、阅读灯等对应码信息到全局变量,状态1-4即判断对应码信息是否匹配即可防错。

        2 B面检测流程实现:

            当扫码完成后,需要人工按下按钮触发视觉检测,同样以状态来判断是否执行流程,如果流程检测OK,那么切换状态为101,以及刷新界面。

        3 A面检测流程:


            当B面合格后,员工手工翻转顶棚,再次按下按钮,启动A面视觉检测,检测OK切换到状态0,刷新界面以及复位。

复位及刷新界面流程通过流程调用,实现数据及UI的实时响应

        以上全流程完成了状态机整体框架,具体视觉检测部分未细化,可扩展部分如实现日志记录,方便后续的数据追溯等可通过脚本自由实现。


五 核心收获:

  1、状态管理让复杂业务变简单,结构清晰,逻辑严谨

  2、UI与状态机完美同步,人机交互更友好

  3、VisionMaster软件的应用拓展,拓宽了视觉应用工程师的实战思路


六 视频和案例分享:

        见附件


最后,如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!

附件:
版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

【3D轮廓仪】关于圆环检测的技术细节

下一篇
已经是最后一篇啦~
评论请先登录 登录
全部评论 0
Lv.0
0
关注
0
粉丝
0
创作
0
获赞
相关阅读
  • 智能日志分析助手上线了!
    2026-03-19 浏览 0
  • 移动机器人工程师培训与认证安排-26年4月
    2026-03-16 浏览 0
  • 海康25mm/F2.8线扫镜头外景实拍@富士GFX100S
    2026-03-30 浏览 0
  • 诚邀参会|2026年4C智能工业视觉检测专项挑战赛(本科+高职)线上启动会,邀您共启新程!
    2026-03-20 浏览 0
  • RAD(Retrieval-basedAnomalyDetection,基于检索的异常检测)
    2026-04-01 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器