标题VisionPro 是康耐视公司推出的一款功能强大的机器视觉软件,它通过脚本功能允许用户实现定制化的视觉处理逻辑。
目录
脚本简介
脚本类与方法
脚本使用案例
脚本进阶
脚本调试与优化
- 脚本简介
在 VisionPro 的 QuickBuild 开发环境中,Job 是工程的基本组成单位。每个 Job 中可以包含多个工具和工具块(ToolBlock),而脚本功能允许用户在这些组件的基础上实现更高级的逻辑控制。
1.1 VisionPro 项目组成
Job:工程的基本组成单位,可以看作是一个独立的任务。
ToolGroup 和 ToolBlock:工具的“容器”,用于封装具有特定功能的一组工具。
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.1 Job脚本:自动调节曝光时间
在图像采集过程中,根据图像的亮度自动调节曝光时间是一个常见的需求。以下是使用 Job 脚本来实现这一功能的示例:
1public override void PreAcquisition()
2{
3 ICogAcqExposure IExposure = job.AcqFifo.OwnedExposureParams;
4 IExposure.Exposure = exposure;
5}
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.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 高级功能的脚本实现技巧。
希望本专栏能够帮助你在机器视觉领域更进一步。如果你有任何问题或建议,欢迎在评论区留言。
注意:本教程基于康耐视官方文档和网络资源编写,建议读者结合实际软件操作进行学习。同时,对于软件的深入理解和应用,官方文档和社区支持是不可或缺的资源。