基于VM算法平台程序开发典型示例教程说明书
基于VM算法平台程序开发典型示例教程


目录

一、常用典型程序方案示例

1解析TCP数据流程方案

2全局通讯控制多分支流程执行示例程序方案

3单流程多指令控制不同分支执行示例程序方案

4通信触发特有模块触发分支控制和单模块执行控制示例程序方案

5 接收外部通讯数据并传值到全局变量

 

二、典型视觉项目程序解析

1、连线飞拍上料机项目程序详解

2AB双线标准贴膜机项目程序简介

 

三、软件部分限制条件和使用技巧

1、运行界面控制和渲染编辑介绍

2、主程序中的部分算子模块限制条件和避免方法简介。

 

 

 

 

 

 

 

一、常用典型程序方案示例

 

1、解析TCP数据流程方案

实现将服务器接收的数据进行解析。

①建立TCP服务器通过端口号和IP地址号和外界信号进行连接。

 

②使用脚本工具,编写对应代码对数据进行拆分和取值。

③通过字符比较订阅脚本解析出来的触发指令字符串,并配合分支模块使用,从而完成流程执行控制功能。

 

2、全局通讯控制多分支流程执行示例程序方案

使用全局通讯模块配合分支模块控制多分支流程执行

①选择全局通讯脚本,点击全局脚本的示例代码,导入全局通讯.CS文件;

 

②通过编写C#代码,获取到服务器发过来的数据流,并全部转换铖字符串,通过判断字符的指令,去分流程控制流程1或流程2的执行。

 

③程序执行成功后,历史结果有纪录。

 

3单流程多指令控制不同分支执行示例程序方案

①在当整个项目程序段中,只有一个分支主程序时,我们可以采用下图所示的3个模块结合使用,进行单流程,多分支的控制执行。

 

②通过外界的服务器给程序发送不同的指令数据,T1,T2,T3进入字符比较模块,输出索引值,给到下一模块。

 

4通信触发特有模块触发分支控制和单模块执行控制示例程序方案

①通过通讯触发模块的特有触发模式,可以指定触发某一个分支流程,甚至任何一个算子模块的执行。此功能可以配合标准软件实现自动标定。

 

② 利用单独的通讯触发,可以不使用全局通讯和字符触发的方式,实现对分支流程的执行控制。避免了接收数据模块在多分支程序中只能使用一次。

5 接收外部通讯数据并传值到全局变量

在需要读取外部寄存器数据时,需要将外部发送过来的数据解析到VM算法平台软件内部的程序段中使用。由于使用接收数据模块只能拥有一个的原因,所有我们可以使用全局通讯模块,将外部数据通过特定函数转到全局变量中,方便我们后续对这些数据在多分支的程序中,调取使用。

①示例程序中定义了str的字符串接收外界服务器的数据体。

②使用全局变量赋值函数进行对定义好的全局变量赋值。

 

③ 使用脚本工具,编写c#代码,可以给任何取到的数据进行多种形式的数据转换操作。

 

 

 

二、典型视觉项目程序解析

1、连线飞拍上料机项目程序简介

① 连线飞拍上料机下相机硬触发获取产品相关图像数据VM流程。

 

②连线飞拍上料机上相机硬触发获取载盘相关图像数据VM流程。

 

③由于上相机不能做十二点标定,下相机可以做十二点标定,需要将上相机的图像数据映射到下相机进行融合计算,得到对应的偏移量OffsetX,Y,Q坐标信息。

 

 

④标定流程,为以上三步骤的主程序服务。主要得到需要的十二点标定文件,通过导入到主程序中的标定转换使用,目的是将相机获取的图像坐标系参数与物理坐标系的参数进行对应关系和转换。

 

⑤通过使用图像算子模块抓取图像的对应特征点,建立起下相机和上相机的映射关系。从而解决了因为机构限制下上相机无法做十二点标定的问题。

 

2AB双线标准贴膜机项目程序简介

本项目程序应用场景为,上相机拍摄下膜和下相机拍摄上膜,通过视觉对位检测实现四个贴膜位的贴合。

①检测主程序中主要通过模块间的组合,实现触发数据和返回数据与PLC的通讯协议交互。四个贴膜位的程序基本一致,所以此处以单膜贴合进行解析。

 

②程序执行逻辑为:通讯配置读取PLC的触发信号地址号,全局变量中获取一次该触发信号后,立即对对应分支流程进行触发,触发完成后,主程序中写入一个0,即对该寄存器清零,避免重复触发流程。

 

③不同分支流程通过不同指令控制实现。本项目方案,主要需要按不同指令分别触发四个主流程的执行。两个模板流程只需要在调试首次执行一遍建立模板即可。

 

④对位实现的逻辑主要为:通过算法模块获取当前的图像特征数据,找到当前产品的X,Y,A的像素坐标,通过映射转换,转换到与模板图像特征的同一像素坐标系下,并通过十二点标定功能,将像素坐标转换为机械实际的物理坐标,再通过旋转公式进行计算实时来料要转换到标准模板位置所需要旋转的角度和偏移的位移。

 

 

 

三、软件部分限制条件和使用技巧

1、运行界面控制和渲染编辑介绍

 

①使用图像控件,可以订阅相机图像去显示实时图像,并且也可以选择性地展示算法处理后特征查找的渲染图像,通过在图形源中选择显示和不显示实现。

 

 

②运行控制可以实现对不同流程的执行控制。通过订阅对应流程,可以在运行界面上操作,实现手动对流程的单次和持续的流程触发。此功能一般配合调试使用,正常的项目程序推荐使用指令触发分支流程运行。

 

 

③ 此模块可以展示主流程中某个模块执行的OK/NG状态,一般用来监视某种检测功能实现的与否。通过订阅模块状态实现。

 

 

④通过按钮控件,可以通过订阅主程序中的任意一个模块的参数配置,实现在运行界面上配置和操纵某些关键参数配置,比如说模板匹配的重新框选等,方便终端用户进行“傻瓜式”的一些常用配置操作,从而避免用户操作复杂的主程序界面。

 

⑤通过参数设置控件可以对主程序的部分关键参数数据进行配置。比如实现高精度特征匹配的匹配分数更改设置,全局变量的参数修改和清零等功能。

 

在运行界面上可以对全局变量的数据进行配置和清零。

 

 

2、主程序中的部分算子模块限制条件和避免方法简介。

Ⅰ、直线查找模块临界角度正负号的不规律变化,可能会导致在对位应用中,出线偏移角度由于正负号带来的计算不准确现象。所以在对位应用中的找特征线的时候,尽量避免寻找0度的直线。

 

Ⅱ、当主程序使用模块超过256个的限制会出现新建模块受限制。在部分应用场景中,会出现使用完软件的初步限制的所有模块还无法完成项目程序的问题。此时,可以修改安装目录下的配置文件,将模块使用限制进行拓展。但这需要性能更好的工控机配置,否则会出现执行卡顿现象。一般建议通过梳理主程序的逻辑,尽量精简模块使用个数。

 

具体操作方法如下:

①关闭VM所有服务和进程。

 

②分别更改VisionMastar.cfgServer服务中的ServerConfiguration的最大模块个数限制。

 

 

③更改最大模块数限制,软件最高支持1024个模块,默认128个模块,可以拓展到256个模块,512个模块。

 

 

 

 


版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇
已经是第一篇啦~
下一篇
已经是最后一篇啦~
评论请先登录 登录
全部评论 0
Lv.0
2
关注
14
粉丝
3
创作
26
获赞
相关阅读
  • 探寻机器视觉新星|第二届“启智杯”机器视觉设计大赛获奖名单公布
    2024-04-08 浏览 0
  • VM4.4更新亮点
    2024-04-12 浏览 0
  • 第二届启智杯—光伏电池片质检视觉方案设计
    2024-04-15 浏览 0
  • 每日分享|3D视觉成像之双目立体视觉原理
    2024-03-21 浏览 0
  • 海康AMR应用场景中蜂鸣器的使用
    2024-04-03 浏览 0

请升级浏览器版本

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

推荐使用以下浏览器