VisionPro 脚本教程专栏:深入理解与实践

VisionPro 脚本教程专栏:深入理解与实践。

VisionPro 是康耐视公司推出的一款功能强大的机器视觉软件,它通过脚本功能允许用户实现定制化的视觉处理逻辑。

目录

  1. 脚本简介
  2. 脚本类与方法
  3. 脚本使用案例
  4. 脚本进阶
  5. 脚本调试与优化

1. 脚本简介

VisionPro 的 QuickBuild 开发环境中,Job 是工程的基本组成单位。每个 Job 中可以包含多个工具和工具块(ToolBlock),而脚本功能允许用户在这些组件的基础上实现更高级的逻辑控制。

1.1 VisionPro 项目组成

  • Job:工程的基本组成单位,可以看作是一个独立的任务。
  • ToolGroupToolBlock:工具的“容器”,用于封装具有特定功能的一组工具。
    在这里插入图片描述

1.2 脚本的作用

脚本在 VisionPro 中的作用类似于编程语言中的函数,它允许用户根据特定需求编写自定义的逻辑代码,实现工具的自动化控制和数据处理。

2. 脚本类与方法

VisionPro 通过多态技术实现脚本功能,每个 Job、ToolGroup、ToolBlock 对象都含有一个接口对象,用户可以通过重写接口方法来实现自定义功能。

2.1 ToolGroup 脚本类

以 ToolGroup 脚本为例,它继承自 CogToolGroupBaseScript,实现了 ICogToolGroupScript 接口。该接口定义了以下方法:

  • Initialize()
  • GroupRun()
  • ModifyCurrentRunRecord()
  • ModifyLastRunRecord()
    在这里插入图片描述

2.2 ToolBlock 脚本类

ToolBlock 脚本与 ToolGroup 类似,但提供了更高级的控制,如动态定义输入输出终端等。

2.3 Job 脚本类

Job 脚本用于控制与图像获取相关的设备属性与参数,基类为 CogJobBaseScript,实现 ICogJobScript 接口。
在这里插入图片描述

3. 脚本使用案例

3.1 Job脚本:自动调节曝光时间

在图像采集过程中,根据图像的亮度自动调节曝光时间是一个常见的需求。以下是使用 Job 脚本来实现这一功能的示例:

public override void PreAcquisition()
{
    ICogAcqExposure IExposure = job.AcqFifo.OwnedExposureParams;
    IExposure.Exposure = exposure;
}

3.2 ToolBlock脚本:显示Blob区域的中心坐标

ToolBlock 脚本可以用于控制工具的运行逻辑,修改生成的 Record,拓展数据逻辑等。以下是在 Blob 区域显示其中心坐标的示例:

public override bool GroupRun(ref string message, ref CogToolResultConstants result)
{
    mLabels.Clear();
    mToolBlock.RunTool(mBlob, ref message, ref result);
    CogBlobResultCollection blobs = mBlob.Results.GetBlobs();
    foreach(CogBlobResult blob in blobs)
    {
        CogGraphicLabel tempLabel = new CogGraphicLabel();
        tempLabel.Alignment = CogGraphicLabelAlignmentConstants.BaselineCenter;
        tempLabel.SetXYText(blob.CenterOfMassX, blob.CenterOfMassY, $"{blob.CenterOfMassX},{blob.CenterOfMassY}");
        tempLabel.Color = CogColorConstants.Red;
        mLabels.Add(tempLabel);
    }
    return false;
}

4. 脚本进阶

脚本不仅是“填空题”,更是实现复杂逻辑的强有力工具。用户可以通过脚本实现事件响应、异常处理、数据逻辑处理等高级功能。

4.1 脚本作为“插件”程序集

脚本类会被编译为程序集加载到内存中,并且每次编辑后都会重新编译。这意味着脚本的性能和稳定性直接影响到整个 VisionPro 程序的运行。

4.2 事件与委托

在脚本中实现事件响应函数时,需要增加异常处理机制(Try…Catch),以避免程序运行出现异常。

5. 脚本调试与优化

调试脚本是确保其正确运行的重要步骤。以下是一些调试技巧:

5.1 使用Visual Studio进行调试

可以通过 Visual Studio 附加到 VisionPro 进程进行调试,这样可以在脚本出错时快速定位问题。
步骤如下:

  • 打开Visual Studio软件,继续但无需代码
    在这里插入图片描述
  • 选择附加进程(前提是vision pro在运行着)在这里插入图片描述
  • vision pro点击运行即可在这里插入图片描述

5.2 语法错误与逻辑错误

语法错误会在编译时提示,而逻辑错误则需要在运行时通过调试来发现。
例如:下面工具查找到多个结果,在脚本中引用时直接用结果[ ].来调用,而不是item
在这里插入图片描述
在这里插入图片描述

5.3 调试技巧

  • 使用断点进行单步调试。
  • 检查变量值和程序流程是否符合预期。
  • 使用日志记录关键信息,便于问题追踪。
    在这里插入图片描述

结语

VisionPro 脚本是实现定制化视觉处理逻辑的关键,通过本专栏的深入学习,你应该能够掌握脚本的编写、使用和调试。在后续的文章中,我将分享更多关于 VisionPro 高级功能的脚本实现技巧。


希望本专栏能够帮助你在机器视觉领域更进一步。如果你有任何问题或建议,欢迎在评论区留言。


注意:本教程基于康耐视官方文档和网络资源编写,建议读者结合实际软件操作进行学习。同时,对于软件的深入理解和应用,官方文档和社区支持是不可或缺的资源。

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值