Frank,
Depending on the DAQ hardware you have you may have issues with simultaneously acquiring data even on your analog channels. Our MIO (Multifunction Input/Output) DAQ cards have one analog to digital converter (ADC) and a multiplexor is used to scan all of the input channels. There will be a slight interchannel delay and you will not have truely simultaneously acquired data (loss of phase will occur). In order to perform true simultaneous acquisition you will need one of our SIO (Simultaneous Input/Output) cards.
Furthermore, our DAQ driver, NI-DAQ, is not multithreaded. Meaning, you have to pay close attention to what calls you make into the DLL, or to what VIs you are using, if LabVIEW is your development environment. For instance, AI_Read is
a blocking call, meaning if you ask for 10 bytes of data it will block all other calls until 10 bytes have been acquired. So even if you write a multithreaded application to perform analog and then digital acquisition you will have to not ask for so much that you will be blocking for great periods of time.
I agree with Ben's comment that one solution would be to pass your digital inputs to an analog input and use a SIO card to simultaneously acquire data. However, depending on what these DIO inputs will be used for this may not be a suitable option for you.
Regards,
Justin Britten
Applications Engineer
National Instruments