08-24-2010 12:08 PM
Hello,
We found a strange bug on a software that is still using Traditionnal NI-DAQ (and no way to go to DAQmx, too much work) : after a defined sequence, AOUpdateChannel updates a wrong channel !!
Hardware: Device 1 = PCI-6713 - Device 2 = PCI-MIO-16-XE-50
Software: NI-DAQ Traditionnal 6.8.1 / 6.9.3 / 7.4.1 WinNT SP4 / Win NT SP6a / Win XP CVI v5.0.1/v8.0.1 (We tried many updates and had the problem in all configurations, from WinNT SP4 + NI-DAQ 6.8.1 + CVI 5.0.1 to Win XP + NI-DAQ v7.4.1 + CVI 8.0.1)
Here is the sequence (all calls in the same function, in the main thread):
AOUpdateChannel (1, "0", 0);
AOUpdateChannel (1, "4", 7);
AOUpdateChannel (2, "0", 0);
AOUpdateChannel (1, "0", 0);
AOUpdateChannel (1, "4", 9);
Problem: After the last call, 9V is applied to the channel 0 of device 1 and not to the channel 4. The channel 4 remains at 7V (previous value) !
Can anyone explain this behavior and help us to solve this issue ??
For information, the problem disappears if we remove anyone of these calls, and also if we change the place of the call to device 2 (but perhaps it appears later, and anyway, we need to use exactly this sequence). This behavior is just incomprehensible.
Thank you.
08-27-2010 01:47 AM
Hello,
And if you redo then AOUpdateChannel (1, "4", 9);
What do you see?
Regards,
Nacer M. | Certified LabVIEW Architecte
08-27-2010 01:08 PM
Hello Nacer, thanks for answering.
I've done many tests, here is the sequence (all commands executed with a pause - GetKey() - between them), and the results:
AOUpdateChannel (1, "0", 0); // ok, normal behavior
AOUpdateChannel (1, "4", 7); // ok
AOUpdateChannel (2, "0", 0); // ok
AOUpdateChannel (1, "0", 0); // ok
AOUpdateChannel (1, "4", 9); // Here, Chan 0 of Board 1 is set to 9V, Chan 4 remains at 7V !!!
AOUpdateChannel (1, "4", 8); // Here, Chan 0 of Board 1 is set to 8V, Chan 4 remains at 7V !!!
AOUpdateChannel (1, "4", 6); // Here, Chan 0 of Board 1 is set to 6V, Chan 4 remains at 7V !!!
AOUpdateChannel (1, "0", 0); // There, Chan 0 of Board 1 is set to 0V (finally, back to a normal behavior !), Chan 4 remains at 7V
AOUpdateChannel (1, "4", 9); // Here, normal behavior (Chan 4 of Board 1 is set to 9V, Chan 0 remains at 0V)
AOUpdateChannel (1, "4", 8); // still ok, normal behavior
AOUpdateChannel (1, "0", 0); // ok
AOUpdateChannel (1, "4", 9); // ok
AOUpdateChannel (2, "0", 0); // ok
AOUpdateChannel (1, "4", 8); // ok
AOUpdateChannel (2, "0", 0); // ok
AOUpdateChannel (1, "0", 0); // ok
AOUpdateChannel (1, "4", 9); // Here, Chan 0 of Board 1 is set to 9V, Chan 4 remains at 8V !!!
So, it seems that changing the board with the same channel nb is the cause of the problem. But I don't understand why, and moreover, why I have this issue with all DAQ drivers from 6.8.1 to 7.4.1, and on WinNT as well as on WinXP, with 2 different computers and 2 different CVI versions !!
Could it be that a memory pb or incompatible registers between PCI-MIO-16-XE-50 and PCI-6713 survived till now ???
Thanks for support.
Stephan