NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Issues with DAQmx

I am attempting to make a TestStand sequence that will run my VI's in the order I want them to execute, however I am getting issues with error code -200088. All of my VI's are using the DAQmx command as I am using the CDAQ for my project, but for some reason TestStand will not execute these VI's and I have tried running them on LabVIEW (works fine). Do you have any idea or an example program I can reference to create such a sequence with subVI's that use DAQmx. I keep getting -200088 as an error code, which doesn't make sense to me.

0 Kudos
Message 1 of 7
(3,874 Views)

DAQmx error -200088 will be thrown by a DAQmx VI or property node if an incoming task is invalid or doesn't exist.  Do you explicitly create your tasks/virtual channels in the LabVIEW VIs, or are you using tasks created in MAX?  I'm wondering if you have MAX tasks that end up missing when you try to run in TestStand vs when you run in LabVIEW.

 

You can always run debugging on the LabVIEW Code modules while using TestStand as well to see which VI the error is coming out of, as that might help narrow down the problem by locating the specific VI or node that is throwing the error.  Have you tried this?

Highest Regards,

Paul
0 Kudos
Message 2 of 7
(3,831 Views)

Here's a little example I threw together to show how to do DAQmx in TestStand.

 

Hope it helps,

jigg
CTA, CLA
testeract.com
~Will work for kudos and/or BBQ~
0 Kudos
Message 3 of 7
(3,826 Views)

The error occurs in LabVIEW as I am trying to use a PFIO channel on the same port as a Digital Out. But I stop it before I turn on the PFIO and then afterwards I turn the Digital Out on again to avoid the task resource error.

0 Kudos
Message 4 of 7
(3,805 Views)

If you're seeing the error when using your code module in TestStand, but aren't seeing it purely in LabVIEW development, we'll need to know how TestStand is interacting with the code module.  Are you passing any data in/out of your LabVIEW code modules in TestStand (i.e. using parameters)?  In particular, are you passing DAQmx Task information around in a way that it could get muddled or lost?

 

To reiterate, the error code you were receiving states that you are trying to use a task that is either invalid or doesn't exist, so it's likely that one of the wires carrying your DAQmx task information has a value you're not expecting at some point in the LabVIEW code.  Debugging while running in TestStand (probing, breakpoints, etc.) would likely be the easiest way to find out which wire is carrying an invalid task (or no task at all).

Highest Regards,

Paul
0 Kudos
Message 5 of 7
(3,801 Views)

jiggawax

The example is clear, but how do you handle the VI library path on a target machine?

 

0 Kudos
Message 6 of 7
(3,433 Views)

You have several options for deployment.

 

You can consider that LabVIEW and some drivers (DAQmx here) will be installed (no need to be activated) on target machine. This is not my prefered option, but in that cas, you know the target version and the VI library path.  You also can rely on SearchDir, if you include the vi.lib path. This way, your sequence do not need absolute paths, but is dependant of SearchDir configuration.

 

An other approach is to include those VI in an installer you will use to distribute your TestStand bench (sequences, VIs, and so on). I'm not sure of how are handled vi.lib dependencies in that case, but the goal is to only install LabVIEW Run-Time plus DAQmx on target machine.

 

I think that DAQmx Step we developped at MESULOG can also be interesting (I don't know if it can cover all of your needs, check online help). Based on the use of Global Channels, the configuration is described in MAX (configuration can be exported/imported), the "behavior" in the sequences. Basically, all you can do from MAX with a Global Channels can be done with these Steps.

 

Best regards,

0 Kudos
Message 7 of 7
(3,423 Views)