Hi Trevor,
To answer your question about dataflow, a common way to get data out of a subVI is the method that you used with the terminals. From a brief look at your code, the use of local variables seems extraneous but everything seems to be functional. The section titled
Using Local and Global Variables Carefully in the LabVIEW in the LabVIEW help gives good advice on the use of local variables. I noticed that there is also a stacked sequence structure with 20 frames in it. Is this particular frame being reached? I would recommend using other tools such as highlight execution and probes to see how the data is being transferred within your program.
I assume that you are trying to write a port of digital data with the DAQ Assistant in your code. Currently, you have a 1-D array of boolean wired into it, one boolean for each line which will update whenever the loop is ready to run. I was wondering if you needed any specific timing between the pulses. The pulses being generated may be too fast to be detected since the current VI will run as fast as the processor allows. To add timing in software, you can add a Wait function inside the loop with the pulse control subVI. The NI-9401 is a correlated DIO module which means that it will support hardware timed generation. To accomplish this, an array of boolean data or a digital waveform will have to be written to each line. For more information on how to do this, see the hardware timed digital generation section starting at the bottom of page 35 in the
NI-cDAQ 9172 User Guide.
Regards,
Kent
Applications Engineer