NI-DAQmx Simulated Device Limitations

Updated Dec 3, 2018

Reported In


  • NI-DAQmx

Issue Details

I created a NI-DAQmx simulated device.
What are the limitations of these devices with respect to NI-DAQmx physical devices?


The purpose of simulated devices is to offer the possibility to start programming without hardware, check the syntax of the program and verify that written data meets specifications of the board. However, NI-DAQmx simulated and physical devices have some differences:
  • In DAQmx 8.1 and before, simulated devices do not reflect proper timing rates. More information can be found in Why Does my Acquisition Complete Instantly on an NI-DAQmx Simulated Device? KnowledgeBase.
  • As of DAQmx 8.3 and later, simulated devices will reflect proper timing types for analog and digital tasks. For example, 1000 samples acquired at 1 kS/s will now take 1 second to return on a simulate device.
  • Simulated devices will not detect error -200078, which is caused by an analog input task attempting to use a counter at the beginning of its acquisition when the counter is already in use. This is due to the fact that this error is generated by hardware, not the DAQmx Task State Model.
  • Simulated devices do not support triggering. All data will be returned immediately. 
  • NI-DAQmx simulated devices support software events. However, events that rely on the hardware, such as a sample clock event, are not supported. 
  • Watchdog timers do not expire.
  • NI-DAQmx simulated devices cannot be included in the same task with physical devices.
  • Counter data is always returned as 0. 
  • Timing is not simulated for counter tasks.
  • When reading data, all analog signals will be returned as a full-scale sine wave with three percent of full-scale noise. Digital data is returned as if each 8-bit port were counting up. 
  • It is not possible to read back the data you write to the output lines, as that data is not kept anywhere in memory (data returned will be as described above). There is no way to get feedback about the signals you write to the output lines, besides an error if the value is not within limits. 


Not Helpful