前面的文章有介绍过,LabVIEW可以看做是一种编程语言,同时NI也在LabVIEW里提供了非常多的可快速构建专业应用的工具包模块,这些模块有的是用于专业数据采集的,有的是用于图像处理的,还有的可能是工业控制的。个人觉得这种方式是几乎所有编程语言都存在的,特别是在Python里,被运用的炉火纯青,Python中的模块生态则是远远要丰富多彩,而且Python模块的安装和管理还是很便捷的。相比之下,个人觉得LabVIEW的付费价格、LabVIEW和模块之间的版本兼容上则做的要更差一些。
一 遇到的一个实例
我之前为了使用电脑自带的USB摄像头获取图像并做一些分析处理,在LabVIEW下需要安装几个工具包。使用的LabVIEW版本为2011的。但安装之后其中视觉与运动函数面板中的IMAXdx没有看到,无法正常编程使用USB摄像头:
二 寻找问题解决办法
因为这个问题,我查找了网站和论坛的许多资料,一般是认为摄像头驱动没安装好,或工具包没有安装完全,或者是版本不符合。解决方法一般是检查下自己的工具包是否安装完全,我在MAX中发现该安装的都有了,然后在MAX中的设备与接口下也能看到连接的USB摄像头,所以安装这块应当是没问题的:
而且在MAX中还能使用该USB摄像头snap和grab操作。另外在安装的Vision Assistant和Vision Builder AI中都能正常使用USB摄像头,但是打开LabVIEW就是找不到IMAQdx函数。
因为我使用的编程环境是LabVIEW2011,安装的Vision Assistant和Vision Builder AI模块都是2012的版本,但是Vision Acquisition Software是用的2009的,后面换了2010的也还是不行。开始打算下载2011版本的Vision Acquisition Software的,但是NI网站无法下载。之后在NI developer Zone里看到一个帖子,说是没有激活造成的,需要激活然后再重新安装一遍才可,可是我这样做了问题还是没有解决。
后来想起之前安装DAQmx模块时也是有版本问题,安装低版本时不支持LabVIEW2011,最后是安装了DAQmx9.6才能正常使用的。于是我又下载了一个Vision Acquisition Software 2012,重新安装之后问题终于解决,如下图终于看到IMAQ相关的函数了:
三 回顾总结
可见LabVIEW中一些较高版本的工具包一般是支持低版本的开发环境的,而一般低版本的工具包很可能不能在高版本的开发环境中使用,大家在使用工具包时需要注意这个问题。
最后这里对前面提到的LabVIEW中与视觉有关的几个工具包及其之间的关系进行简单介绍,供有需要的朋友选用。
3.1 Vision Development Module(视觉开发模块)
该模块可作为LabVIEW或者是文本编辑环境 .NET 以及LabWindows CVI 的插件使用。该工具提供在LabVIEW编程环境下使用多种图像处理以及识别的函数及功能。附带的工具包 Vision Assistant 同VBAI十分相似,但是使用它设计的视觉识别程序可以方便的转换为LabVIEW的代码。可以运行远程的目标如CVS (Compact Vision System),但是除了LabVIEW之外还需要使用LabVIEW RealTime。
3.2 Vision Builder for Automated Inspection(用于自动检测的视觉生成器)
通常被称之为VBAI,该程序是一个可以独立运行的程序。编程和操作界面同Vision Assistant相似,但是不可以把程序转换为LabVIEW,只能在其环境下。VBAI 程序可以在远程目标设备如CVS上运行。
3.3 Vision Acquisition Software(视觉获取软件)
用于捕获图像的一系列驱动程序。举例来说,该软件在Windows平台下的8.2.3版本包含了NI-IMAQ 3.7.1 和 NI-IMAQdx 3.0.1 (包括了对IEEE 1394 相机的支持),以及NI-IMAQ I/O 2.0.2 驱动程序。包含了在LabVIEW中所使用到的基本视觉获取VIs。基本的视觉图像获取以及文件存储之外的功能需要安装VDM。Vision Acquisition Software 是包含在Vision Development Module,Vision Builder for Automated Inspection 以及所有的NI图像获取的软件中的。