MATLAB: Is the performance worse than expected when using the NI PCI-6703 or PCI-6704 boards in xPC Target 4.3 (R2010a)

Simulink Real-Time

I am using xPC Target and the loop time that I am observing is too large, the output signal from D-A converter dwells quite a lot. I already tried to disable the USB and advance power management options in the BIOS Of the target PC.
If I increase the model sample time, the analog out updates at a slower time. If I decrease the model sample time and the analog output decreases up to the point of about 1kHz frequency but cannot go any faster. It appears that the analog output is not obeying the model sample time.

Best Answer

The NI PCI-6703 and PCI-6704 DA boards are 'static' output boards that have its own loop in its firmware that runs through all the outputs at its own rate that is not correlated to the sample time of the model. The board actually only has a single DA converter and a sample and hold amplifier for each channel, which is what makes it a low cost board.
Our driver can only write to a board register and we can not force an immediate update of the output. The timing of when the analog output actually changes is not in our control.
The documentation for these boards state:
You will notice a variable delay in the voltage output from the board after your target application writes the register on the board. This is because the PCI-6703/PCI-6704 has a single D/A converter that is time-share multiplexed through all the outputs. It can take up to 0.9 milliseconds to scan through all channels.
If performance is critical for the application, it would be a good idea to upgrade to a different output board.