当前位置: 首页 > news >正文

VisionPro —— 上料检测模拟

摘要:

  • 该作业实现了一个基于Cognex VisionPro的自动化料盘物料检测系统。
  • 通过四个PMAlign工具分别匹配不同规格物料,利用区域分割和模板匹配技术检测料盘上物料的正确性。
  • 系统支持自定义输入参数(如行列数、间距等),无需修改脚本即可调整检测布局。
  • 检测结果以bool数组形式输出,标记每个物料位的OK/NG状态,供PLC或机械手决策取料。
  • 脚本采用动态图形绘制技术,通过颜色区分合格(绿色)与不合格(红色)物料,并叠加序号标签实现可视化。
  • 核心逻辑包括:区域坐标动态计算、PMAlign工具独立运行、结果集合并与输出参数绑定,最终在运行记录中生成直观的检测图形和文本反馈。

工具配置

借助CogToolBlock工具,可轻松自定义输入输出参数。

采用四个区域分割工具与四个模板匹配工具的组合方案,可实现对同一料盘中不同规格物料的同步检测。

无需打开脚本即可直接修改常用参数,编辑完成后点击运行按钮可立即查看调整效果。

输出参数:返回一个布尔数组,存储各目标的检测结果(OK/NG),用于指导PLC或机械手执行取料决策。

脚本解析

新建一个PMA工具,将原有PMA工具的参数复制到新工具中,使外部PMA工具与脚本内的工具彼此独立。

创建矩形对象并将其赋予复制生成的PMA工具。

初始化数据并与输入参数建立关联。

使用 for 循环自动执行工具,将结果存入集合后进行展示。

添加计数器可以防止子结果出现顺序错乱的情况。

在确保已添加类型正确的输出参数后,可省略此 if 语句。

显示图案和文本

脚本源码

#region namespace imports
using System;
using System.Collections;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Cognex.VisionPro;
using Cognex.VisionPro.ToolBlock;
using Cognex.VisionPro3D;
using Cognex.VisionPro.PMAlign;
using System.Collections.Generic;
#endregion
public class CogToolBlockAdvancedScript : CogToolBlockAdvancedScriptBase
{#region Private Member Variablesprivate Cognex.VisionPro.ToolBlock.CogToolBlock mToolBlock;// 搜索区域集合private Cognex.VisionPro.CogRectangle[] searchregions;// 使用泛型列表, 可以动态储存对象// ICogGraphic: 所有图形对象实现的接口, 可以储存所有类型图形private List<Cognex.VisionPro.ICogGraphic> graphic = new List<Cognex.VisionPro.ICogGraphic>();#endregion/// <summary>/// Called when the parent tool is run./// Add code here to customize or replace the normal run behavior./// </summary>public override bool GroupRun(ref string message, ref CogToolResultConstants result){// To let the execution stop in this script when a debugger is attached, uncomment the following lines.// #if DEBUG// if (Sys
http://www.xdnf.cn/news/698221.html

相关文章:

  • AVL树
  • Kotlin扩展函数与属性实战指南:从入门到企业级应用
  • 【c++】【数据结构】红黑树
  • 【位运算】常见位运算总结
  • 云原生架构,各行业数字化转型法宝
  • 回归任务损失函数对比曲线
  • vue3+Pinia+element-plus 后台管理系统项目实战记录
  • 2..3...4.... Wonderful! Wonderful!_cf1930E分析与解答
  • SpringBoot 验证码练习
  • GRASS GIS 生成斜坡单元
  • Opengl纹理采样
  • 【C语言练习】069. 使用goto语句实现复杂的跳转
  • XCTF-web-mfw
  • socket编程预备
  • 基于DFT码本的波束方向图生成MATLAB实现
  • 【AUTOSAR OS 】保护功能解析:从原理到应用与源代码解析(上篇)
  • MySQL复杂查询与Union操作
  • SQLite数据库取证分析
  • 用 Python 构建跨平台前端界面:深入解读 Flet 库
  • windows本地虚拟机上运行docker-compose案例
  • QT开发技术 【元对象系统反射机制 】三
  • 中阳视角:如何通过波动率识别市场节奏变化
  • Android Zygote通信协议深度解析
  • c++lambda表达式
  • Linux文件传输——curl命令详介
  • SAR ADC 比较器的offset 校正
  • 西门子SCL语言编写两台电机正反转控制程序,并涵盖从选型、安装到调试全过程的详细步骤指南(上)
  • vs中添加三方库的流程
  • 根据基因名称自动获取染色体上的位置
  • STM32 ADC工作原理与配置详解