通过VISA别名得到开关模块产品的DAQmx资源名



主要软件:
主要软件版本: 3.8
主要软件修正版本: N/A
次要软件: Utility Software>>Measurement & Automation Explorer
硬件: Switches>>Multiplexer/Matrix>>PXI-2532

问题:

我正在使用NI-SWITCH的Topology.vi,为我的PXI-2532板卡启动一个驱动会话。我的板卡位于机箱1第五槽,我使用"PXI1::5"这个字符串来启动会话,但是每次我使用该字符串的时候,都得到了-1074118644的错误。如果使用NI-DAQmx设备名,即"Dev1"时,会话启动正常。


我看到有KB(KB 4MJEIND4)说,像"PXI1::5"这样的VISA别名只能支持用传统NI-DAQ编程的开关模块产品。我的开关模块设备不支持传统NI-DAQ编程,所以才会产生这样的错误。但是,我正在为我的客户编写程序,需要使用机箱号和槽号来识别开关模块设备。

 

有没有办法使得NI-SWITCH函数可以接受诸如"PXI1::5"这样的字符串呢?



解答:

如果您使用DAQmx资源名对您的开关模块硬件寻址的话,NI-SWITCH驱动是没有办法接收地址字符串的。但是,如果您不需要使用DAQmx资源名的话,您可以通过编程,使用机箱号、槽号以及ModInst驱动函数来寻找DAQmx资源名,具体参见附件的Labview 8.5 版本的范例VI

NI-ModInst可以使用户取得系统中安装的NI的模块化仪器的信息。NI-ModInst提供了编程的方法,用于设定您系统中安装的设备的设备号、设备名、设备型号以及其他一些参数。您可以在LabVIEW, LabWindows™/CVI™, Measurement Studio以及标准C开发的应用程序中,使用NI-ModIns提供的API

一般来说,您需要为NI-ModInst提供NI仪器驱动的名称。这些仪器驱动包括:NI-SWITCHNI-SCOPENI-FGENNI-DMMNI-ModInst会自动在系统中寻找那些可以被驱动支持的设备。您可以通过NI-ModInst查询到系统安装的设备数量、设备名、产品型号、序列号、机箱号、槽号、总线号和插座号。您可以在LabVIEW后面板的NI-ModInstVI面板下找到一系列的ModInst函数: Functions»仪器I/O»仪器驱动»NI-ModInst

 

您可以通过以下的步骤来为您的开关模块设备决定DAQmx资源名:首先,您需要在前面板上创建一个字符串输入控件,用户可以在该控件中输入"PXIa::b::INSTR"或者"PXIa::b"这样的地址。然后,通过对字符串的解析来获取机箱号和槽号。接着,通过使用ModInst函数编程,将这个机箱号和槽号与系统中的每一个开关模块设备进行比较。当找到匹配的设备时,就可以通过使用ModInst Get Attribute函数将该设备的索引值输出,同时返回DAQmx设备名。该设备名是在MAX中设置的,诸如Devx或者PXIxSlotx这样的逻辑名称,最后将这个别名连接到NI-SWITCH初始化函数的资源名输入端,具体参见附件的Labview 8.5 版本的范例VI

如果系统中有不止一个开关模块设备的槽号和机箱号与用户输入的地址匹配,那么100将作为设备索引值传送到ModInst函数,同时用户将得到一个错误,指示用户选择的索引值太大。另外,您的系统不会出现有第101个设备。


相关链接: Knowledge Base 4MJEIND4: Why Do I Get Error -1074118644 Using an NI Switch?

Knowledge Base 3KK599LE: Using NI-ModInst to Query Device Specific Information such as Device Name and Model Number



附件:





报告日期: 11/07/2008
最近更新: 05/27/2009
文档编号: 4R6ES99G