Multifunction DAQ

Showing results for 
Search instead for 
Did you mean: 

DAQ X-Series Finite Pulse Train Generation

Go to solution



I'm using a PCIe-6351 DAQ card for driving a stepper motor and an encoder. What I need is the Finite Pulse Train Generation as described in X-Series User Manual. Next to the stepper motor I have also a quadrature encoder which uses the sample clock from a counter from the DAQ card.

For this implementation I need 3 counters (one counter for quadrature encoder, one counter for sample clock for encoder and one counter for stepper driver (finite pulse train).


Now I read in X-Series user manual, that in legacy Mode, the finite pulse train generation needs 2 counters:

X-Series User Manual (Chapter 7-29)




When not in legacy Mode, only one counter is used with an internal embedded counter. I found an article on about NI-STC3 technology (only german version: It describes, that with this technology only one counter is used, where former 2 counters are used.

My question now is, what is this Legacy Mode? I didn't find anything about the legacy mode or if my used card has this STC3 technology.


Does this anyone knows?


Thanks for any help.

0 Kudos
Message 1 of 5



Some thoughts to help you along:


I've used NI DAQ products for a long time, and honestly each "series" of DAQ gets more and more complex.  I've never heard of this legacy mode.  However, you can try this:  after you install NI-DAQmx with LabVIEW, there should be shipping examples in the Example Finder.  If your goal is to produce a finite pulse train, try running the VI called "Counter - Finite" (see pic for location.)  This example is compatible with your hardware PCIe-6351, so I'm confident it should work.


Counter example.png



Front Panel.png


From the front panel you can set your pulse frequency and the number of pulses that you want.  However, I would like to point out that for motor control and reading encoders, a motion controller is much easier to use than a general-purpose DAQ card.  With a motion controller, you can define velocity and acceleration of your movement, and you won't have to worry about these weird counter synchronization stuff.  


Let us know if the example works for you.  In the meanwhile, you can check out this for a LabVIEW-compatible motion controller:

0 Kudos
Message 2 of 5
Accepted by DANEPH

I'm not aware of this "legacy mode" or how to configure it.  But I *can* tell you that the normal behavior for the 63xx family of X-series multifunction boards (which all use the DAQ-STC3 timing chip) is to use only 1 counter to generate finite pulse trains.   Prior generations of timing chip (DAQ-STC2, NI-TIO, DAQ-STC) used to require 2 counters as described in the verbage about "legacy mode."


I'm quite sure that unless you go out of your way to force the device into "legacy mode" (and again, I don't know how to do it or why one would want to), your 6351 will only need to use 3 of its counters to accomplish the 3 functions you described.



-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 3 of 5



Thank you for your reply.

I have already used this example to implement it in my code and it worked well. I was just wondering, what this legacy mode is and if  my used card really has this STC3 timing chip.


A motion controller is not suitable for me, because the used stepper motor is not controlled with encoder. My encoder has another function on another motor-axis. And the stepper motor is an open loop application, I don't need accuracy and it doesn't matter if I loose some micro-steps.

0 Kudos
Message 4 of 5

Very nice, glad the example code worked for you.

0 Kudos
Message 5 of 5