06-12-2013 11:10 AM
Hi Everyone,
I must say in advance that I really like this forum and everyone seems so open-minded and professional. What a positive environment for the issues that we face!
We have been struggling with this issue for over 3 weeks now - it is perplexing - for both my programmer who wrote the .NET program and myself (hw guy).
Basically what we have constructed is a 32 Channel Battery Tester using 64 relays (Qty. 4 ER-16 boxes), 32 load resistors, 4 USB-6008's (DAQ), and 4 USB-6501's (DIO). We eventually expect to be able to simultaneously test 32 of our battery-powered devices in this tester.
Here are the things that are good!
16 channels work exactly as they are intended to -
The problem is that we can only get 16 channels to work at one time. It is either the upper 16 or the lower 16 channels that work but never both at the same time.
The interesting part is that when the NI USB device ID's are swapped (effectively causing the Software to recognize channels 1-16 as channels 17-32) the 16 malfunctioning upper channels work fine and the lower channels are now the problem children.
I wish I could say that the issue centers around either the USB-6008's or the USB-6501's but it seems to affect both.
What I have observed in normal operation is that when a test channel is first initialized (test is started) the USB-6501 turns on the Charge Relay right away and indicates "Initializing" in the User Interface(UI). After about a minute it then reports a "Charging" status in the UI. The charging status remains until the battery fully charges at which point the system will transition to Discharge thus indicating the same in the UI. This is expected & normal operation.
On a malfunctioning channel, what I observe is that for whatever reason, the USB-6501 does not turn on right after the test is started/channel initialized. The UI reports "Initializing" status as it normally would. Then after a minute, the USB-6501 finally turns on the Charge Relay and about a minute after that goes straight into Discharge for no VALID reason as there is no HIGH CHARGE_DONE signal at the repective Digital Input to the USB-6008.
Here is my system configuration:
The PC is a an HP 8200 CMT Elite Desktop:
Intel Core i5-2500 Processor 3.30 GHz ,Intel Graphics Media Accelerator HD,4GB DDR3 1333 Mhz (2x2GB) memory. System is capable of 16GB, 250 GB 7200 RPM SATA hard drive, 16X DVDRW with Lightscribe, Intel 10/100/1000 Ethernet.
Installed NI Software is:
NI IO Trace 3.0.1
NI LabWindows/CVI Run-Time Engine 2010 SP1
NI Measurement & Automation Explorer 5.1.0
NI Measurement Studio Common .NET Assemblies for .NET 2.0
NI Measurement Studio Common .NET Assemblies for .NET 3.5
NI Measurement Studio Common .NET Assemblies for .NET 4.0
NI Measurement Studio Common .NET Language Assemblies for the .NET Framework 1.1
NI Network Browser 5.0.0
NI PXI Platform Services 2.6.2
NI PXI Platform Services 2.6.2 Configuration Support
NI System Configuration Runtime 5.1.0
NI TDM Excel Add-In 3.3
NI Update Service 2.0
NI-1588 Configuration 1.1.2
NI-488.2 3.0.2
NI-DAQmx 9.5.0
NI-DAQmx ADE Support 9.5.0
NI-DAQmx MAX Configuration Support 9.5.0
NI-VISA 5.1.2
NI-VISA Runtime 5.1.2
NI-VISA Server 5.1.0
Attached is the .NET executable by way of the NI MAX Create Report.
Additional notes: We have Qty. 2 of the IO Gear PCI USB 2.0 cards installed in the host PC and they seem to be working fine & dandy. For fault isolation purposes I switched to the PC USB ports. (It has10 built-in USB ports.) This seemed to make no difference - everything worked the same.
The ER-16 relay boxes are externally powered by 2 separate 5VDC 2.4Amp supplies. Each supply is wired directly to a pair of the ER-16's.
I would appreciate any and all comments.
Thanks for taking time to read about our issue.
Wednesday Cheers...
06-13-2013 08:07 PM
Hi MaxdB,
It sounds like you're powering all 8+ USB devices from the same tower. Do they all get properly recognized in MAX? Did you try powering them using a powered USB hub?
06-14-2013 08:29 AM - edited 06-14-2013 08:44 AM
Hi Tarek,
Good questions.
We tried a 7-port powered D-Link USB hub in the beginning and nothing worked correctly after re-booting the PC (Not even the 16 channels worked). All the USB devices would just set there and power cycle continuously. It appeared to be a current-sourcing issue. Looking back, I suppose that if all 7 devices plugged into the hub hit their maximum rated current (500mA) at the same time (3.5 Amps) then it would easily overwhelm the 3 Amp +5VDC hub power supply.
Since that experience, we installed Qty. 2 of the IO Gear PCI USB 2.0 cards into the host PC and we were using them. But for fault isolation purposes, I switched to the USB ports on the PC itself. (It has10 built-in USB ports.) This seemed to make no difference - still, we could only get 16 channels to work at one time.
In order to verify that the device ID's matched up with the actual SW & HW configuration, I used the Test Panels in NI Measurement and Automation Explorer to activate the relays, look at measured voltage, exercise Digital Inputs, and verify that each device and port were mapped correctly. When I swapped the ID's to test the upper 16 channels, I verified everything again by "peeking and poking" with the NI Max Test Panels.
Do you know of any system configurations that have 8 or more USB devices that are running a .NET program and the NI software we have listed above?
That would put my mind more at ease:)
Thanks,
Max
06-21-2013 09:21 AM
Anyone - any further ideas?
Has anyone driven 8 or more NI USB devices with a .NET program?
06-24-2013 02:58 PM
Hi Max,
Are you getting any errors on the channels that are not working? If you merge the errors from all the channels and place a simple error handler you would be able to check for that.
I'm wondering if maybe the order at which the USBs are being initialized might be deciding which ones work and which ones don't. I'm thinking that maybe there's a limitation on the number of USB devices that can be addressed simultaneously, so it would be useful to check if this is the case.
Are the first devices to be initialized in DAQmx working properly while the last four are not, or is it that the first four IDs (device names in MAX) always work while the following four don't? Maybe you can use a sequence structure or error wires to impose the order of execution and verify which scenario it is.
06-25-2013 08:19 AM
The above suggestions are LabVIEW specific, for some reason I forgot that you're using .NET. That being said, the same idea still applies. It would be useful to see if the order of initialization of the devices/tasks affects which ones work.
06-25-2013 08:50 AM
Hi Tarek,
Good thoughts. I think that we are on the right path here..
Whether it is the initialization order or simply device ID numbers (perhaps the Device ID number is the initialization order?) there is DEFINITELY an issue related to one or both.
There are 4 NI-USB devices per each 16 channels of this battery tester system.
When we swap the device ID's between the non-working devices (Dev 5 through 😎 and the working devices (Dev 1 through 4)...
(To be more specific, when we do this:)
Dev 1 Rename to Dev 5
Dev 2 Rename to Dev 6
Dev 3 Rename to Dev 7
Dev 4 Rename to Dev 8
Bascially the 4 non-working devices become the 4 working devices and vice versa. (As a Side Note this was the only way that I could fully test all the hardware both upper and lower channels with the software)
So it sure seems like whatever 4 devices are named Device1, 2, 3, and 4 are the only ones that work correctly.
I believe that we have tried initializing the upper non-working channels first and we still get the same results - Devices 5 through 8 simply do not respond correctly.
When you say intialize a device - do you mean when the device is first turned on like USB cable plugged-in or when the software first grabs (so to speak) it and issues a command to it?
What is the next step to isolate what NI software layer is causing the issue or would this potentially be a driver issue?
Is there a built-in limit to the number of NI-USB devices you can use - for sales purposes perhaps?
Thanks,
Max
06-25-2013 09:08 AM
Another data point to add is that when each device (Devices 1 though 😎 is tested individually using the NI MAX Test panels, there are no problems...
Please tell me if this is wrong but:
I found that you can only test one device at a time due to the NI MAX software limitations.
You must stop and close each test panel before testing the next device. For example, you cannot test Device 1 and Device 2 at the same time.
- so simultaneous operational changes to more than one device at a time are not possible.
I have observed the test panels freeze when attempting to test more than one device at a time (You get the red warning indicator in the software).
Is this normal operation?
Max
06-26-2013 03:41 PM
Hello Max,
Thank you for the clarification. I was refering to the order in which the initialization code is set up, whether it works for the first four devices initialized or for Device1,2,3,4 regardless of he initialization order.
I verified that there's no limit on the number of NI-USB devices you can use on a single machine, the only limitation can be the streaming bandwidth. Can you ensure that you have proper error handling? I would expect the driver to through an error if it can't create the tasks.
To answer your second post: you can run multiple test panels outside of MAX by following the article below. You can tell me if you can run one for more than 4 devices simultaneously.
Launching Multiple Test Panels Without Running Measurement & Automation Explorer (MAX)
06-26-2013 03:57 PM - edited 06-26-2013 03:59 PM
@Tarek wrote:
Launching Multiple Test Panels Without Running Measurement & Automation Explorer (MAX)
On Win7 I have to call out the entire path: C:\Windows\SysWOW64\nidmfpan.exe /devid:Dev11