LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PXI Card addressing

Hello,

i'm running a PXI System with a PXI-1042 chassis, using a PXI-8184 Real Time controller, a PXI-8422 RS-232 card and a PXI-7811R FPGA.

 

Now, when i bring up MAX, the resource names (under Devices & Interfaces) of those PXI cards are named the following:

 

PXI1::14::INSTR (NI-7811R)

PXI1::15::INSTR (NI PXI-8422/4 (RS-232))

 

However, if i replace the PXI-8184 (RT controller) by another controller, i.e. PXI-8196, the resource names come up as:

 

PXI16::14::INSTR (NI-7811R)

PXI16::15::INSTR (NI PXI-8422/4 (RS-232))

 

I'm trying to figure out where this difference comes from.  Any idea?

Thanks.

 

erls

 

 

0 Kudos
Message 1 of 4
(2,664 Views)
The first number in the VISA Resource Name is the PCIBusNumber.  This number is a function of the controller in the slot and this number changing with a different controller is expected behavior.  More details can be found on KnowledgeBase 2IJ896LS.  This KB also documents how to prevent problems resulting from the VISA Resource Name changing.
Ben

National Instruments
Certified LabVIEW Associate Developer
Certified TestStand Developer
0 Kudos
Message 2 of 4
(2,629 Views)

I understand that the first number is the BusSegment number, i.e. for a PXI-1045 chassis, there are 3 segments so PXI devices appear with BusSegment numbers from 1-3.  However, the PXI-1042 chassis seems to have only 1 BusSegment.  I would normally expect to have all my PXI devices mapped with BusSegment number 1 on that chassis.

 

Here is an example of the PXISYS.INI file for the PXI-8184 controller in a PXI-1045 chassis (3 segments), where each slot has an associated PCIBusNumber that matches a number in the PCIBusSegmentList:

 

[Chassis1]
Model = "PXI-1045"
Vendor = "National Instruments"
PCIBusSegmentList = "1,2,3"
SlotList = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18"
TriggerBusList = "1,2,3"
StarTriggerList = "1"

 

[Chassis1Slot2]
PCISlotPath = "78,F0"
PCIBusNumber = 1
PCIDeviceNumber = 15
LocalBusLeft = "StarTrigger1"
LocalBusRight = "Slot3"
ExternalBackplaneInterface = "None"

 

[Chassis1Slot7]
PCISlotPath = "78,60,F0"
PCIBusNumber = 2
PCIDeviceNumber = 15
LocalBusLeft = "Slot6"
LocalBusRight = "Slot8"
ExternalBackplaneInterface = "None"

 

[Chassis1Slot13]
PCISlotPath = "78,60,60,F0"
PCIBusNumber = 3
PCIDeviceNumber = 15
LocalBusLeft = "Slot12"
LocalBusRight = "Slot14"
ExternalBackplaneInterface = "None"

 

Here is an example of the same file, for PXI-8196 controller in a PXI-1042 chassis (1 segment), where each slot has an associated PCIBusNumber that does NOT match the number specified by PCIBusSegmentList:

 

[Chassis1]
Model = "PXI-1042"
Vendor = "National Instruments"
PCIBusSegmentList = "1"
SlotList = "1,2,3,4,5,6,7,8"
TriggerBusList = "1"
StarTriggerList = "1"

 

[Chassis1Slot2]
PCISlotPath = "78,F0"
PCIBusNumber = 16
PCIDeviceNumber = 15
LocalBusLeft = "StarTrigger1"
LocalBusRight = "Slot3"
ExternalBackplaneInterface = "None"

 

You can see that the bus number "16" does not match the number "1" specified by PCIBusSegmentList.  Now here are two questions:

 

1. Since these are original files, isn't the "16" number supposed to be "1"?  It sure looks inconsistent.

 

2. Would it be safe to change that number "16" to match the number "1" of the PCIBusSegmentList? 

0 Kudos
Message 3 of 4
(2,623 Views)

This may be inconsistent, but it should not pose a problem.  You should not rename the PCIBusNumber.  Please use VISA Aliases or the VISA Find Resources function to program without ever referencing the VISA Resource Name.

Ben

National Instruments
Certified LabVIEW Associate Developer
Certified TestStand Developer
0 Kudos
Message 4 of 4
(2,604 Views)