From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

Multichassis SCXI system with DAQmx on Linux

My system needs two SCXI-1001 chassis (with all SCXI-1520 cards). So I use an SCXI-1346 multichassis adaptor and make the connections.

Chassis-1 (SC1) contains two SCXI-1520 module and chassis-2 (SC2) contains one module.

Chassis addresses are set using the DIP switches on the front - address 0 for chassis-1 & address 1 for chassis-2.

I have attached the daqmx config I use for a test system. Dev2 is the ADC device (PCI-6225) I use to communicate with the chassis.

I am programming in C++ using DAQmx library.

The program runs fine (as in no function calls fail), but the values read from the module in the second chassis seem to be wrong.

I first read the excitation voltage readings from the sense lines - for example  channels SC1Mod1/_pPos0 & SC1Mod1/_pNeg0 for chassis-1, module-1, channel-0 and so on.

When configured for 5V excitation, I usually get close to +2.5V on the P line and -2.5V on N line, as expected. This works for all modules in chassis-1.

But for the module in the second chassis, both values are coming to around -2.5V.

The actual channel value (i.e. SC2Mod1/ai0) is also wrong and apperars to be saturated.

What am I doing wrong? Is there anything left to configure other than setting the chassis address via DIP switches and mentioning that address in the DAQmx config file for the SCXIChassis.Address setting in [DAQmxSCXIChassis SCx] section.

On Windows NI explorer, when I configure the chassis, there seems to be a 'daisy-chain index' setting, apart from the chassis address. But there seems to be no such setting in the DAQmx configuration documentation for Linux.

Can somebody please help me with this..

0 Kudos
Message 1 of 8
(6,286 Views)

I don't see the attached DAQmx config file -- would you try attaching it again?

When you looked at the configuration on Windows, did you also test the voltage readings? Perhaps the second chassis or module is damaged.

In the mean time, in case you don't have these bookmarked, here are guides for configuring DAQmx devices on Linux:

Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 2 of 8
(4,588 Views)

Thanks for the reply. I am attaching the file again with this message.

It's unlikely that the module/chassis is damaged. I created a DAQmx task in NI MAX Explorer on Windows and the values read were correct.

And I had already gone through the resources you linked, using which the configuration file was created. So far, I'm not able to spot any errors.

Only points I can think of are:

1. I have not set the SCXIChassis.ProductNum setting as its not mentioned in the examples.

2. For the first module in the second chassis (to which the SCXI-1346 module from chassis-1 is wired), I set the same DAQ device (Dev2) as the SCXIModule.CabledDev. But removing that line also does not seem to have any effect. When exporting config from nidaqmxconfig, it just comes back.

We have a lot riding on the correct working of mutltichassis configuration and I can't think of anything I'm doing wrong.

To have some more info on the platform:

RHEL 6.5 (32-bit, non-PAE kernel)

DAQmx 8.0.2

NI-KAL 2.5

When reading excitation from _pPos0 & _pNeg0 lines, for modules in chassis-1 I get +2.5V and -2.5V respectively (for 5V excitation). Whereas for the chassis-2 module, I get around +7V for both lines!

0 Kudos
Message 3 of 8
(4,588 Views)

I used Windows and created two simulated SCXI chasses in MAX and exported an ini configuration file (attached).

I believe you should add

SCXIModule.DaisyChainIndex = 1

to your SC2Mod1 entry.

Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 4 of 8
(4,588 Views)

I saw that MAX on Windows asks for a daisy chain index. But there was no mention of such a setting on Linux DAQmx documentation.

Anyway, I'll try adding this setting and post the results here. Thanks a lot for the help.

0 Kudos
Message 5 of 8
(4,588 Views)

I have bad news to report. The setting is apparently not supported by DAQmx 8.0 on Linux. This is the output of nidaqmxconfig when trying to import the configuration file with SCXIModule.DaisyChainIndex entry:

$ nidaqmxconfig --import ni-2scxi-test.conf --eraseconfig

Error -201086

Attribute name specified is invalid.

Validate the attribute name using your ADE. The attribute may have been exported from a later version of NI-DAQmx and is not supported by the version of NI-DAQmx installed on your system. Check the version specified in the file against the installed version of NI-DAQmx. You can upgrade the version of NI-DAQmx installed on your system, or remove the attribute from the file.

Line Number: 46

Property: SCXIModule.DaisyChainIndex

Value: 1

Status Code: -201086

Perhaps this setting is not implemented on Linux and that's why data reading from the second chassis is not working as expected.

Can you please confirm from the Linux implementation code and if that's the case, will it be possible to get a patch to fix this?

0 Kudos
Message 6 of 8
(4,588 Views)

SyamCR wrote:

Perhaps this setting is not implemented on Linux and that's why data reading from the second chassis is not working as expected.

Can you please confirm from the Linux implementation code and if that's the case, will it be possible to get a patch to fix this?

I was able to confirm that the components in DAQmx 8.0.2 for Linux do not have the SCXIModule.DaisyChainIndex = 1. It appears to have been added in 8.9 release for Windows. I know that more than two SCXI chasses were supported on Windows before then, but I could not determine how that would have been configured. (If you're reading between the lines, you can tell SCXI isn't my product group.)

There might be more hardware configuration to do. See the SCXI Quick Start Guide, page 9, titled Multichassis System. On the next page, the document says, "To connect the multichassis system, you must use one SCXI-1346 multichassis adapter for every chassis in the chain except the chassis furthest from the DAQ communicating device. The last chassis uses the SCXI-1349 cable adapter." In particular, it appears you need to use the SCXI-1349 adapter on the second chassis.

Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 7 of 8
(4,588 Views)

JoeFriedchicken wrote:

There might be more hardware configuration to do. See the SCXI Quick Start Guide, page 9, titled Multichassis System. On the next page, the document says, "To connect the multichassis system, you must use one SCXI-1346 multichassis adapter for every chassis in the chain except the chassis furthest from the DAQ communicating device. The last chassis uses the SCXI-1349 cable adapter." In particular, it appears you need to use the SCXI-1349 adapter on the second chassis.

The hardware configuration is already correct and is done as you explained. The first chassis has an SCXI-1346 module that has two connectors - one to the DAQ device and one to the second chassis. The second chassis has an SCXI-1349 module.

I have connected the hardware as described in the NI manuals. And besides, it is working on Windows.

0 Kudos
Message 8 of 8
(4,588 Views)