At best, that's gonna be a pain in the neck with that board. If you need very precise timing for freqs, duty cycles and offsets, it gets worse. If they need to change on-the-fly, it'll be near-impossible.
1. You can only operate 1 hw-timed digital output task at a time. So all 6 signals must be part of that 1 task.
2. Thus, you need to define an output buffer representing the states of those 6 bits throughout your entire generation.
3. There's a bunch of greatest common factor and least common multiple stuff needed to figure out the right output rate and buffer size, assuming you'll want to regenerate repetitively. You first need the gcf of all the transition times to come up with the right output rate since all the transitions need to occur on some integer multiple of the output period. You'll then need the lcm of the 6 signals' periods, combined with the output rate, to size up a buffer that can be regenerated.
4. Forming the output data array may be quite complex. Personally, I always do my stuff with raw arrays and I know that interleaving all those signals can be quite tricky, especially if there may be an occasional simultaneous transition. However, I suppose there's a chance that some of the digital waveform functions *might* make this step a bit simpler. I just haven't played around with that format much.
Editorial opinion: Buy a 6602. You can trigger 6 counters to start with different initial phasing, and will be able to change freq & duty cycle on-the-fly for each one independently.
Editorial opinion #2: For higher channel count apps, I'd also recommend checking out the DIO-64 board put out by Viewpoint Systems, an NI Alliance partner. It gives you much smarter hardware-timed DIO. With the NI board, there can be huge amounts of redundant info in the DO buffer. If you find that your GCF is 10 microsec, but the time between consecutive transitions is 10 millisec, you'll have to stuff 1000 identical values into your output buffer. With Viewpoint's board, your data acq buffer *only* contains data at the transition times. Timing is controlled by delivering a separate array defining the timestamps that correspond to those transitions.
-Kevin P.
ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.