回答一个关于 IVI 仪器驱动程序的问题

    今天在我的 blog 上看到了一个关于 IVI 的问题,在这里回答一下。

问题
    “阮先生,你好,我看过你写的关于IVI的文章,写得很详细,有个问题想请教一下,我现在是用LabVIEW的,CVI没有用过,我应该也可以用LabVIEW来开发自己的IVI仪器驱动吧?目前我已经安装了IVI Compliance Package (ICP) 2.5,但是如果要使用自己开发的IVI驱动能出现在MAX上面,是否还需要一些Toolset?比如IVI Installer Creator and the IVI Specific Driver Test Suite之类的?还是我可以用其他什么方法做到.好像那些Toolset不是免费的,我有没有方法可以尽量不用购买什么工具包就可以使用自己的IVI仪器驱动呢?谢谢!
    阮先生你好,我是问你IVI问题的那个人,我想到一个方法不知道能不能行得通,如果说我只是使用IVI驱动里某一类驱动程序(比如信号源)很简单的通用属性(比如只是使用到信号源的二个通用属性:频率和功率,全部信号源都支持这二个属性的设置),那我可不可以在NI的网站上下载某一型号信号源的IVI驱动(我手上有另外一种不同型号的信号源,但没有发现我手头上这个信号源的IVI驱动程序),然后安装这个IVI驱动,把其他特有的属性去掉,只留下共用的属性,然后用这个下载的IVI驱动来驱动我手头上这个信号源(假设二种信号源在设置频率和功率时所使用到的命令都是完全相同的,尽管它们的型号是不一样的)?不知道有没有把问题说清楚,还请多多指教.另外,不知道在这里问问题合不合适.谢谢”

回答:
    目前不能用 LabVIEW 编写 IVI 仪器驱动程序,只能用 C 语言编写 IVI。LabVIEW IVI 驱动程序是在已有的 C IVI 驱动程序基础上包装一下得来的,不能在没有 C IVI 的时候直接去开发 LabVIEW IVI。
    现存的直接使用 LabVIEW 编写仪器驱动程序大多是符合 VXIpnp 标准的仪器驱动程序。如果你用不到互换性,VXIpnp 仪器驱动程序就可以满足要求了。目前,IVI 的可互换性的应用也不是很多,也许你可以考虑直接编写 LabVIEW VXIpnp 仪器驱动程序。

    如果要开发 IVI 驱动程序,最好要有最新版的 CVI 和 IVI Compliance Package (ICP)。其它工具包都可以不用。

    IVI Spacific Driver 是针对某一型号的仪器专用的 IVI 驱动程序。它是不能被用到其它型号的一起上的,就算是只用到通用属性也不行。原因有两个,一个是每个仪器的命令可能是不同的,另一个是驱动程序在初始化的时候就会检查仪器是不是自己所支持的。如果两个型号的仪器所用的命令完全相同,你也好要改一下 Init 函数的源代码才能把驱动用到另一台仪器上。

相关文章:
   
可互换虚拟仪器驱动程序的开发
    一个 IVI 驱动程序的开发过程

编辑

回答一个关于 IVI 仪器驱动程序的问题”的一个响应

  1. 请教阮老师,我是电子科大在校学生,请问有没有相关仪器互换的资料呢?我现在的方向是做仪器互换,根据IVI标准,应该就是做仪器类驱动,完全不知道如何下手,不知道您是否能提点一二?或者发点相关资料给我也行,我的邮箱jacksignal@sina.com,谢谢阮老师

    1. 我有些年没有做这方面的工作了,我了解的信息也许过时了:IVI方面的资料非常少,因为做的人不多。我的bolg上可以搜到一些很陈旧的内容。估计最权威的还是参考 IVI Foundation 网站上提供的文档。他们的文档还是比较详细的。足够了解IVI开发的全过程了。

  2. 你可以首先询问这家仪器公司,问他们是否提供相应的驱动程序。然后再查看一下网页 http://www.ni.com/idnet 。如果都没有,大概就是没有现成的驱动程序了。如果是在LabVIEW下使用,可以就用LabVIEW开发驱动程序。基本上调用VISA相关的函数就可以编写出驱动程序了,可以参考一下其它的驱动程序来编写。

  3. 请教阮先生: 如何通过Lan来实现Labview控制网络分析仪N5230A?有没有现成的驱动可供下载?从哪里可以下载?找了很多地方都下不到.如果没有现成的如何自己编写?用什么语言编写? 谢谢您!!

  4. 阮先生,谢谢您的回答,感觉稍微有点思路了。谢谢。
    BTW,这个网站好难打开…

留下评论