How Can I Maintain an Output Voltage After a Task has Stopped on a Dynamic Signal Generator?

Updated Jan 20, 2023

Reported In

Hardware

  • PXIe-4463

Software

  • LabVIEW

Issue Details


When I am outputting a signal on my PXI-4461, PXIe-4463, USB-4431 or NI 9260, I notice that the channel resets to zero volts after the DAQmx task is done. Is it possible to maintain the last value that was output on the channel instead?

Solution

By default, the analog output channels in Sound and Vibration hardware reset the output voltage to zero after the task is complete. This can be easily changed by setting the AO.IdleOutputBehavior property with a DAQmx Channel Property Node (Analog Output » General Properties » Output Configuration » Idle Output Behavior). 

Note: If this property is not listed, please refer to Why Can't I See All of the Properties in the DAQmx Property Node? .
Create a constant from the AO.IdleOutputBehavior property by right clicking on it and selecting Create » Constant. You will notice that it is set to Zero Volts by default. You can change this to High Impedanceor Maintain Existing Value. Selecting Maintain Existing Value will continue generating the last value even after the task has stopped.




To set the AO Idle Output Behavior property in C, make the following function call:
int32 __CFUNC DAQmxSetAOIdleOutputBehavior(TaskHandle taskHandle, const char channel[], int32 data); 

Using the following value:


 

Additional Information

Using this property only works with a single task at a time. If you wish to use this functionality on 2 channels, then you will have to use channel expansion to include both channels in a single task. If you call one task using this property on one channel, then call another task using this property on the other channel, then the first task will be destroyed, and its output will return to 0 volts.