石鑫华视觉 发表于 2023-2-2 17:14:35

VBAI2020 Inspection Rate检测速率为0的问题解决

VBAI2020 Inspection Rate检测速率为0的问题解决
最近在VBAI2020中测试调用VI功能,初始化放到首次调用内,来进行效率测试,想看看具体的运行速度。记得在VBAI的系统变量里是有个检查效果的变量:Inspection Rate(parts per sec.):
那么我们可以使用Overlay覆盖功能将检测速度输出到图像上,以方便查看实时测试效果。但是在VBAI2020中,这个检查速度变量输出的值一直是0,无论是配置界面,还是运行界面,都是0,怀疑VBAI2020内部没有对此系统变量进行赋值:

Overlay检查速度系统变量

配置时速度为0,这个是正常的,因为还没有运行起来
同时为了方便查看,另外再覆盖了一个当前时间的系统变量,以方便查看实时运行情况


当前时间可以直接输出

运行时间1

运行时间2

时间有输出且是变化的,但是速度没有变化,一直是0

检查界面运行时间1

检查界面运行时间2

检查界面运行时间3
切换到检查界面,检查速度仍然是0,没有变化。
开始以为这个问题是软件Bug,后面查看“Set Inspection status设置检测状态”函数的常见问题回答中有以下的问题和回答:

问题:When are the # Pass, # Fail, and # Parts Inspected built-in system variables updated?

回答:The # Pass, # Fail, and # Parts Inspected built-in system variables are updated when the Inspection Status system variable is set and Update Number of Parts Inspected is TRUE. If there is no Set Inspection Status step in your inspection, the # Pass, # Fail, and # Parts Inspected is not updated.

大概意思是:通过数量、失败数量以及检查的零件数量等内置系统变量什么时候更新?
当设置了“Inspection Status检查状态”系统变量并且“Update Number of Parts Inspected更新已检查零件数”为TRUE真时,会更新“通过”、“失败”和“已检测零件”内置系统变量。如果检测中没有“Set Inspection Status设置检测状态”步骤,则不会更新“#通过”、“#未通过”和“#已检查零件”。而检测速率就是单位时间内检测的零件数量,所以需要得到# Parts Inspected这个数据才可以。而从上面的配置图中看到,并没有使用“Set Inspection Status设置检测状态”步骤。所以,VBAI没有更新数量相关的系统变量,也就无从得到检测速率。而如果添加一个设置检测状态的函数,则会更新检测速率的问题:

设置检测状态并更新检测的零件数量

覆盖检测速度

检测界面显示检查速度
页: [1]
查看完整版本: VBAI2020 Inspection Rate检测速率为0的问题解决

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23