石鑫华视觉 手机微信QQ:13450001061 / 18038383457

图像编程

NI Vision Assistant视觉助手教程 第五章 图像处理-Image图像 第十五节 Run LabVIEW VI运行LabVIEW函数

文章来源:石鑫华视觉网时间:2022-09-08 12:23:15 点击:785

NI Vision Assistant视觉助手教程

第五章 图像处理-Image图像

第十五节 Run LabVIEW VI运行LabVIEW函数

Run LabVIEW VI,函数作用为运行一个用户自定义的LabVIEW VI。此函数是视觉助手处理功能Image中的最后一个,在面板中的位置如下图所示:

image.png

图1 Run LabVIEW VI运行LabVIEW函数

image.png

图2 运行LabVIEW函数界面

image.png

图3 运行LabVIEW函数设置

图2为点击函数后的界面,默认是不会对图像进行操作的。图3是函数进入后配置界面。有两个选项卡,一个是Main选项卡,步骤名不多解释。VI Path则是需要运行的LabVIEW VI函数的路径。直接输入路径或使用文件浏览器查找用户定义的VI即可。

这里我们加载一个LabVIEW 2012生成的一个简单的乘法VI,如下图所示:

image.png

图4 加载LabVIEW生成的VI

image.png

图5 加载VI错误提示

图4加载了LabVIEW 2012生成的VI后,弹出一个图5所示的LabVIEW版本错误提示信息,告诉用户运行LabVIEW函数VI仅支持LabVIEW 2011生成的VI函数。如果使用LabVIEW2012保存为前期版本,再加载,同样会出错,只是这时的提示信息是编译错误:

image.png

图6 LabVIEW保存为早期版本的VI后视觉助手调用出现编译错误

点击确定后,仍然是不能加载的。VBAI中也有同样的运行VI的功能,但是其功能明显要比视觉助手中的强,他如果调用有编译错误的VI时,是可以自动修正成正确编译的VI的。

image.png

图7 VBAI运行VI时可以修正编译错误

那么是不是可以加载LabVIEW 2010更早期版本的VI呢?下面再运行保存为2010版本的VI试试:

image.png

图8 视觉助手运行早期版本的VI

从图8的LabVIEW VI版本错误提示信息中了解到,2012版视觉助手的运行LabVIEW VI的函数,仅支持2011版的LabVIEW生成的保存的VI,更早期的2010版也同样不支持。

下面我们加载一个由LabVIEW 2011版生成的加法VI。

image.png

图9 Vision Assistant 2012运行LabVIEW2011生成的VI

加载了2011生成的VI后,可以正常调用,不会再提示错误了,下面来看一下其VI Controls选项卡。

image.png

图10 运行LabVIEW VI设置VI Controls选项卡

从VI Controls选项卡中看到,相对来讲比较简单。上面一栏为VI Controls是函数的输入控件部分;下面一栏VI Indicator是函数的显示控件部分。另外还有两个按钮,一个是Configure配置按钮,用于配置输入控件的值的,另一个是Test按钮,用于测试当前的结果。点击Configure按钮进入Select VI Value窗口:

image.png

图11 选择VI值窗口

从Select VI Value窗口中可以看到,其分为左右两栏,左边是当前运行的VI可供使用的输入控件(这个就是VI接线端上的控件,或者是子VI的接线端)。右边一栏是控件可以使用的值。分为三类,一类为Use Current Value使用当前值,即VI中获得的值;第二类为Use Constant使用数字常量;第三类为Use Measurement使用测量值,下面有测量得到的值的列表,可以在其中选择想要的测量值(并不是前面所有步骤的所有测量值都可以在这里被列举出来,需要看具体的函数以及提供的参数)。当然要使用这类值,首先得有相应的测量值才可以。

image.png

图12 改变VI Controls的值

image.png

图13 测试结果

图12、图13演示了将值更改为常量后,再进行测试的过程。测试正确后,点击OK即可完成Run LabVIEW VI的设置。

image.png

图14 Run LabVIEW VI

因为视觉助手本身不像VBAI一样的有变量系统,因此要想实现一些计算,如不通过标定直接将像素单位通过乘以转换当量转换为世界单位,可以考虑使用调用VI的方法进行。另外一些测量,如测量“两条直线间的距离”,如果两条直线是非常平行的,那么只需要知道一条直线上的一点到另一条直线的垂直距离即可,但是一般来讲,视觉中测量得到的两条理论上平行的直线并不一定是平行的,这里就可以考虑使用多个点到直线的距离再求平均值的办法来综合考虑两线之间的距离(这种方法比卡尺测量等要准,可以有效的避免噪声、杂点等的干扰)。

下面来看一个简单的例子。

image.png

图15 使用卡尺函数测量尺寸

image.png

图16 运行LabVIEW VI计算结果

其中调用的VI的框图如下图所示:

image.png

图17 调用的VI程序框图

image.png

图18 调用VI控件配置

调用的VI是一个非常简单的VI,只是一个乘法,然后一个字符显示罢了输入控件X设置成测量Clam(Rake)中的Distance距离,Y设置成常量0.01(相当于转换当量)。

调用的VI本理论上来讲,也是可以使用视觉部分的,但是需要注意的是,不同版本的NI视觉软件(VDM)其中的函数也不一样或者无法使用。如果是用2011版开发的包含视觉的函数,再在2012版的视觉助手中来应用,有可能无法找到相应的图像函数。

精品石鑫华NI Vision Assistant视觉助手图像处理实用教程视频版-淘宝网

https://item.taobao.com/item.htm?id=538756535591

首页
84162741QQ
联系