为何在LabVIEW的Grab采集中无法更新IMAQ属性,但在MAX中却可以?



硬件: Image Acquisition (IMAQ)

问题:

我注意到如果在Measurement and Automation Explorer中开始一个Grab采集,我可以改变采集参数,然后在Grab的过程中他们就会自动更新。

然而,如果在一个VI中创建一个使用IMAQ属性节点的while循环,并且在Grab采集过程中通过输入控件改变参数值,这些参数并不会得到更新。

为什么会出现这种情况?如何才能在图像采集过程中使参数得到更新呢?



解答:

一旦LabVIEW开始了一个Grab采集,或者换句话说一旦IMAQ Grab Setup被调用,所有的采集参数就被设置好了。因此Grab开始之后就不能修改参数。与之相比,Measurement and Automation Explorer事实上是在后台停止了采集,修改参数,然后重新开始采集。这样看上去就是能在采集过程中修改参数。

因为LabVIEW不会自动这样做,您可以自己再创建一个循环来检查输入控件值的改变。一旦检查到改变,就通过IMAQ Stop停止采集并读取新的参数。然后再次调用IMAQ Grab Setup应用新的参数。

下面是对已发布范例HL Grab做了一些修改,使得用户可以在VI开始运行后仍然可以修改黑白参考电平。

注意: 可以点击下面附件中的HL Grab Update Property.png看到更大的图片。

配置好Grab采集之后,通过IMAQ Grab Acquire在while循环外采集一帧图像。在第一次循环中,通过IMAQ Stop停止采集并且更新黑白参考电平的属性值。接下来,分别调用IMAQ Grab Setup和IMAQ Grab Acquire应用这些参数并采集一帧图像。在接下来的循环次数中,使用一个"不相等"比较函数和移位寄存器检查White and Black Reference控件的值。如果检测到变化就停止采集并且更新相关参数,否则就直接将图像和会话引用直接传递通过Case结构。



相关链接: NI Vision Acquisition Support

附件:
HL Grab Update Property.png




报告日期: 10/15/2008
最近更新: 11/27/2008
文档编号: 4QEH078Q