VisionPro项目记录1 —— 上料检测模拟

摘要:

  • 该作业实现了一个基于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 Variables
  private 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值