07-10-2011 02:29 PM
Hi,
I am attempting to interface a Faulhaber motor controller BLD 5018 to an NI-6020E. The motor controller has an input for +/-5volts. My problem is that I do not know how to control the speed of the motor programmatically. Per the company rep, the only way to read the speed of the motor is by reading the pulses from the Hall effect sensors.
I know that motor will be operating at different speeds and that I need to know the speed that the motor is operating at, I am just not sure how to go about doing this. I figured that I would probably have to read out an array to the analog output and read in the Hall effect sensor on an analog input.
Any thoughts?
07-11-2011 10:58 AM - edited 07-11-2011 10:59 AM
Hi Mystery,
I'm not sure which function you're trying to do - set the speed or read the speed of the motor. For the sake of discussion, though, I'll pretend like you're trying to do both and offer some of my thoughts. 🙂
So, if the Hall effect sensors provide a series of digital output pulses, then you could use the digital input of the DAQ6020E to read in this value and then write some type of algorithm to calculate the speed in software. Or if it's analog pulses of a sort, then you could read in the value using an analog input on the 6020E.
As far as setting the speed of the motor, section 6.3.3 of the manual describes how to set the speed using an external voltage source. It appears as if you could output an analog voltage from 0V-5V and connect it to pin 9 on the controller - or "Spd9" as they call it. If I were you though, I'd read over the manual again just be double-check what I'm saying. I don't have the controller in front me, so it's just my idea.
Writing code in LabVIEW that will do analog or digital I/O shouldn't be too difficult, and there's some pre-made examples I can point you towards to help get started. If you open up LabVIEW, click Help » Find Examples... When that window pops up, double-click the Hardware Input and Output folder » DAQmx. From here, you can select which example to use based off the function you need. For example, if you need to do analog voltage output, double-click Analog Generation » Voltage and check out an example such as "Cont Gen Voltage Wfm-Int Clk.vi".
I hope this helps!
PS This was the manual I referenced: http://www.faulhaber.com/uploadpk/EN_BLD5018_im_MIN.pdf