Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Read Sensor values on NI-DAQ at Encoder intervals

I am moving a DC Servo single axis motor and I would like to track the output of an optical sensor as I move the motor. If at all possible this should happen at each encoder count or close to that speed.
0 Kudos
Message 1 of 3
(3,383 Views)
There is not much information in your posting about the hard- and software that you are using but I assume the following setup:

E-Series DAQ board (e. g. PCI-6040E)
FlexMotion motion controller (e. g. PCI-7344)
LabVIEW application development environment

DAQ Board configuration:
This is the easist part. You need to configure your DAQ board for continuous data acquisition with an external scan clock. There are several shipping examples in LabVIEW you can use for getting started with that.

Motion controller configuration:
The NI FlexMotion controllers provide a breakpoint feature. In this mode the board generates triggers on the breakpoint outputs at the position you defined before. You can use this trigger signal as external scan clock for your DAQ board. With all NI-motion control boards except the 735x series you can reach a breakpoint rate of approximately 1 kHz. The speed is limited by the fact that after every occurrence of a breakpoint you have to reenable the breakpoint in software.

The new 735x motion control generation provides a periodic breakpoint frequency of up to 4 MHz as the reenabling is done automatically in hardware. So if you are using a board like the PCI-7354 you simply would have to configure the board to generate a breakpoint event at every single position.

To learn more about these boards and their features please visit http://www.ni.com/motion/

Alternative options
If you are using a board other than a 735x and your speed requirement exceeds the 1 kHz mentioned above there are still some more options:

1. You simply could connect the A or the B phase of your encoder to the scan clock input of your DAQ board. In this case you would get a sample every 4th position count as you are using only one rising edge of your encoder outputs instead of both rising and falling edges of the A and B signal

2. If you need the full resolution of the encoder you could use a LS7084 chip that generates a trigger signal at each rising or falling edge of both encoder signals. Please read the lower part of this developer zone document for more information about this option:
http://zone.ni.com/devzone/devzoneweb.nsf/Opendoc?openagent&36BD71244BB26FC886256869005E541B

Best regards,

Jochen Klier
NI-Germany
Message 2 of 3
(3,383 Views)
Jochen,

Thanks a lot for you feed back. I definately need to go faster than 1-4Khz. I am going to experiment a little with the idea of using the output signal of one of the encoder channels as a clock. I'm not real familiar with using external clocks to trigger reads on the NI-DAQ 6036E. Also the motion controller is FW-7344 used with MID-7654.

I guess I will try to look at the examples and get some ideas, unless you have an example yourself that you think would be helpful.

Thanks Again

Wes
0 Kudos
Message 3 of 3
(3,383 Views)