03-09-2009 09:37 AM
Hello everyone,
I want to ask which DAQ card would be suitable for controlling three (X,Y,Z stage) stepper motors using continuous and/or finite pulse generation. X and Y stages have to be independent on each other (i.e. diagonal movement), Z one does not but it would be nice. Solution may include buying two cards to ensure the independency of counters.
I have heard that for finite pulse generation two counters are used for one axis (stage). Does it mean I need a card with six counters? Or two cards with four and two counters? In that case, our lab is equipped with the old 6035E card providing two counters (unfortunately not independent in finite pulse generation mode probably due to the statement above), which could handle one of the axes.
I dont want to use DIO for pulse generation because there is no possibility to control the frequency of pulses. Frequency for the stepper motor varies from 1000 to 2000 Hz.
03-10-2009 07:14 AM
Hi Diego,
There is a way to only use one counter to output a finite digital pulse train.
Normally when performing a finite counter output operation, two counters are required. One counter is used to actually output the pulses and another is used to gate the first counter and therefore output a finite number of pulses.
The way to accomplish this same behavior with a single counter is by setting up a continuous pulse output task with a start trigger and a pause trigger. The pause trigger takes the place of the second counter normally used as the gate signal, freeing this counter to be used for other operations.
Finally, an external source must be used to create a pulse of a desired width in order to achieve a finite pulse train that used a single counter on the PCI-6602. In the case below the external signal is passed to Dev3/PFI0, which has been configured to be the pause trigger source terminal.
Pause triggers are only valid for continuous sampling mode with implicit timing. You can find the properties for the proerpty node in the following locations:
Properties » More » Pause » Trigger Type
Properties » More » Pause » Digital Level » Source
Properties » More » Pause » Digital Level » Pause When
For each property, right-click the terminal and select Create » Control or Create » Constant from the shortcut menu.
Keep in mind also that there are stepper motor controllers available from NI like 7332. For more information check the link above:
http://sine.ni.com/np/app/main/p/sn/n21:6/ap/global
May you have further questions dont hesitate to ask!
Best regards,
David Varga
Applications Engeneer
NIH
03-14-2009 03:59 AM
Diego,
using counters of a DAQ board to control stepper motors is a very cumbersome approach. Especially it's quite hard or nearly impossible to generate acceleration ramps while maintaining position control.
In fact it's so much easier to use a motion control device like the PCI-7334 for tasks like that. NI Motion Control boards come with a very simple API. You just need to load move constraints like target position, acceleration and deceleration values and the velocity.
Here is a screenshot of a little vi that performs a linear move on one axis. The loop just monitors the axis' position during the move. For three axes-operations you can define a 3D vector space and load the target positions as XYZ coordinates. Acceleration values and velocities are defined as single values for the vector, making the axis synchronization very easy. So this board should be a very good fit for your applicatio.
Please consider seriously to use a motion control board instead of a DAQ board, as this will save you a lot of time and the quality of the results will be much better.
Regards,
Jochen Klier
National Instruments