I do not have any experience with the DSC stuff, so I will not comment on that. I had delayed responding, thinking that someone with more experience along those lines might make some suggestions. Anyway with the cautions out of the way, here goes my opinions.
I like state machine architectures. In particular I have separate, parallel state machines for DAQ, GUI, and data processing. I use queues and functional globals to transfer data and commands among the state machines. In your case I might further subdivide the DAQ into a machine for each of the cards and another for the serial communications.
For example if all the temperature zones (A, B, C, D, E) were monitored and controlled through the PCI 6024, I might have a loop which reads and writes to the device (PCI 6024). Inputs would be commands sent over a queue and would be of the form "Read Temperature
" or "Set Temperature <150>" where the part in <> brackets is a parameter. The output (in separat...