Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaneous multi-channel "1 line 1 point" DAQmx digital output error

Solved!
Go to solution

I am attempting to bring two lines high on my PCIe-6363 to un-blank two amplifiers. The first line (P0.1) needs to go high for 1 second on the rising edge of a counter channel (PFI12 in the attached examples), and the second line (P0.2) needs to go high for 2 seconds on the falling edge of the same counter after a 100 millisecond delay.

 

The individual DAQmx tasks in the attached VIs work; however, when attempting to separate the tasks and run them simultaneously, error 89134 is thrown, in which I believe that the "Dev1/do/StartTrigger" being reserved is the culprit, based on the output of the error line.

 

Is there a way to achieve what I have described?

0 Kudos
Message 1 of 7
(355 Views)

 I would combine both lines into a single task, and use a sample clock of 10 Hz (0.1 s), then write 0d10, 0d11, 0d11 ....

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 7
(337 Views)

I had explored something like that, but I need the timing to be controlled by the high time of PFI12. The 0.1s delay after the falling edge is to trim off some of the ring-down of an antenna connected to the amplifier, but I need the time between the amplifier on P0.1 and the one on P0.2 un-blanking to be consistent across multiple runs. Presumably this could be accomplished by constructing a digital waveform with some fine dt, but if it is possible to trigger and write the samples as described in the post I'd like to explore that first before resorting to something else.

0 Kudos
Message 3 of 7
(325 Views)
Solution
Accepted by topic author atalla

The problem is probably a consequence of your device having only 1 timing engine available for DO, preventing you from having 2 simultaneous hardware-timed tasks.  I'm a little surprised that the error showed up as being related to the start trigger, but nevertheless I think you're up against a real device constraint.

 

Here's the good news: you should be able to accomplish your app just fine with 2 of your counters instead of with 2 DO outputs.  Those will be allowed to perform hardware timing independently of one another.  Check the examples for single triggered pulses.  Note that the way to set up a delay-from-trigger with a counter is a little different -- you wire in the "Initial Delay" parameter when creating the task rather than using a DAQmx Trigger property node like you tried for DO.

 

 

-Kevin P

CAUTION! New LabVIEW adopters -- it's too late for me, but you *can* save yourself. The new subscription policy for LabVIEW puts NI's hand in your wallet for the rest of your working life. Are you sure you're *that* dedicated to LabVIEW? (Summary of my reasons in this post, part of a voluminous thread of mostly complaints starting here).
Message 4 of 7
(279 Views)

Thanks, Kevin. It does indeed appear that the problem is a device constraint related to reservation of the DO start trigger.

 

Unfortunately, all of the counters are already in use, but I have managed a work-around by writing digital waveforms out to multiple DO channels within the same task clocked to the `OnboardClock` to achieve the precision I need.

0 Kudos
Message 5 of 7
(248 Views)

In the original problem description, you needed one output to be timed relative to a rising edge and the other output to be timed relative to a falling edge.  With a single triggered task, you can only react to one edge polarity, so how did you manage this?   Is it based on an assumed or known time between these edges where you calculate when to assert the 2nd output?  How well assured are you that you can predict that delta time?

 

 

-Kevin P

CAUTION! New LabVIEW adopters -- it's too late for me, but you *can* save yourself. The new subscription policy for LabVIEW puts NI's hand in your wallet for the rest of your working life. Are you sure you're *that* dedicated to LabVIEW? (Summary of my reasons in this post, part of a voluminous thread of mostly complaints starting here).
0 Kudos
Message 6 of 7
(228 Views)

Yes, the time between the two edges is a known variable of the experiments I am running. So, I have written out some number of `T` samples with a sample clock rate of 10 kHz for the duration of the counter high time, and pre/appended a similarly calculated number of `F` samples during the "off" times.

0 Kudos
Message 7 of 7
(223 Views)