I would like some assistance with figuring out how to connect an encoder output from a servo driver to the USB 6001. The servo driver says that the encoder outputs are labeled as A, /A, B, /B, and Z, /Z. From my understanding, these are differential digital outputs that need to be connected in pairs (so that for example, A and /A must be connected to an IO pin of their own). I'm also assuming that the Z and /Z isn't necessary, based on what I've read about how it's mainly used for precision.
Will the USB 6001 be able to accommodate this setup? The goal is to take the signal from the encoder output and process the data in LabVIEW to determine the angle/position of the motor.
Attached is the servo driver that we plan on using. It has a built in encoder capability. The outputs of the encoder are in the X1 port.
Here's a good resource on using encoders.
Encoder Measurement: How To Guide : http://www.ni.com/tutorial/7109/en/
I'd say the difficulties you'd run into using the USB 6001 is the limitation of counters. The 6001 only has one counter on-board. Whereas other devices have more on-board. If you look at the USB 6001 datasheet counter section, you can see the listed number of counters. You can see on other devices that they'll list more counters, and also specify the position measurements that they can do.
The USB 6001 datasheet: http://www.ni.com/pdf/manuals/374369a.pdf
For comparison, the USB 6210 datasheet: http://www.ni.com/pdf/manuals/375194c.pdf
So for each encoder output, I will need a separate counter? I may have misunderstood stuff when looking into encoders.
Thank you for providing another USB model for comparison. Do you know if similar USB devices that are on the lower-end of the pricing? I have searched through NI's website, but the next step up is a bit expensive. We need a USB model that can accommodate the encoder inputs, in addition to several digital IO pins.
How many other tasks are we going to be trying to do simultaneously? (How many inputs, will there be outputs as well?)
When getting input using hardware timing, you'll need to utilize a clock on-board that isn't already being used for other tasks, so if you'e multiple inputs that you'd like to acquire at the same time, but at different rates, you'd need additional clocks onboard. If a very accurate rate isn't necessary, we can utilize software timing for the additional inputs.
Thank you for your response.
I planned on doing the following with our USB-6001:
Consulting with the servo driver vendor, they say that the motor can be controlled through the servo driver using two pins (PUL and DIR using a clocked signal), OR the 7 DIO pins.
I'd give the NI line a call for purchasing and quoting. NI has teams that can bring on an individual that can assist when evaluating hardware to meet system requirements. You can give the number listed under "Purchase and Quote" on this page http://www.ni.com/contact-us/en-us to discuss product recommendations and quote products.
From what I can tell, you can control it using the two pins, but we'll want hardware timing to generate consistent pulses. Additionally, you'll need a counter to read an encoder. The analog output, depending on how consistently you need it to read, you may be able to get away with software timing.
I do agree with the encoder requiring a counter, which is why I was comfortable with the one counter.I do apologize for my lack of knowledge; I'm still learning the LabVIEW and NI DAQ environment.
I spoke with a few people (no more than three) from NI while checking out available devices. I was originally planning on using a myRIO, but the applications/sales engineers recommended the USB-6001 even after explaining to them exactly what pins I'm using and sharing the same datasheets for my servo driver.
Of course, it also wouldn't hurt to ask for recommendations from other users based on their experience.
Technically, you'd be able to use the 6001, but it could only count edges of the encoder pulses, not do position measurements, so you'd have to try and do your own logic. And, as I mentioned, we'd probably want hardware timing on our pulse for the driver, so a single counter probably wouldn't suffice.
If you look on the Multifunction I/O shop page, the only devices that can do position measurements for encoders have 2+ counters and are a bit more costly. You may have to spend a bit more money to have an easier programming experience and better control.