Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Motor Control and Feedback via LabView 5.1 and PCI-6071E

I am new to this forum and would like to post my first question:
 
I am running a Reliance DC Tachometer Generator via DC2 VS Drive Motor Controller.  Velocity is the control parameter via a feedback from a tachometer.  Position is important as well but that is controlled with a different system consisting of limit switches.  Torque required is around 200 in-lbs and that is met using a Gear Reducer (we are running maxing 30 RPM).  
 
A convoluted LabView code is controlling all of this.
 
NI Parts
Labview 5.1
Traditional DAQ 6.8.1
PCI-6071E
NI 1325 and NI 1124 (output)
NI 1300 and NI 1100 (input)
Windows ME
 
I want to know how to control the output voltage and to verify the feedback is working.  Please discuss the compability of the software and how it relates to overall motor control (I know that this is an outdated system but bare with me).
0 Kudos
Message 1 of 7
(4,161 Views)

Check that..the motor is actually a Reliance 90V DC Perm Magnet Motor (the tachometer generator is actually not hooked up because we have an external tachometer since we want the RPM at the output shaft of the Gear Reducer).

-Scott

0 Kudos
Message 2 of 7
(4,155 Views)
Dear Scott,

It sounds like PID control would work well in your situation. Implementing a PID control loop in LabVIEW would allow you to compare the control parameter with a desired setpoint to calculate an appropriate output based upon the type of system response that you desire. The following tutorial describes using PID control, and using it in LabVIEW using the PID Control Toolkit.

NI Developer Zone Tutorial: PID Control
http://zone.ni.com/devzone/cda/tut/p/id/6440

You can also implement a simple proportional control loop directly in LabVIEW without the toolkit. Implementing a full PID loop from scratch would be a bit of a task though.

If you did implement a form of closed loop control, you could graph the system response in your code to monitor the system setpoint (desired velocity), actual velocity, and the output from your system to verify that it is responding appropriately.

You would acquire the input from the tachometer, compare it to a setpoint, and calculate the error. The error would be used to generate an appropriate output based upon parameters you specify in your controller. This output value is scaled appropriately if necessary, and then output to your Motor Controller.

Here a couple of examples that might also prove helpful:

Simple PID Demo:
http://zone.ni.com/devzone/cda/epd/p/id/2382

PID Control Loop:
http://zone.ni.com/devzone/cda/epd/p/id/1058

I hope the above information provides some insight!

Best Regards,

~Nate


0 Kudos
Message 3 of 7
(4,125 Views)
Nate,
 
I appreciate the help and it sounds like a PID loop is a great idea.  Before I do that, though, I want to make sure the 1124 SCXI module, motor controller, and motor are actually appropriate for my application.  Can you describe things to consider when pairing these three components together?  And, why I would set up some motor control tasks in MAX and other tasks in Labview?
 
Thanks again!
 
-Scott
0 Kudos
Message 4 of 7
(4,059 Views)
Dear Scott,

As long as the motor and drive you are using are compatible, and will give you the performance that you require, the next step is determining how to send and receive signals from the drive. Motor drives differ considerably in terms of their feature set, with some functioning as little more than a power amplifier, while others have their own onboard programmable control loops and features. Your drive manual should specify if you have access to a process variable such as Velocity. This is usually provided in terms of a Voltage that scales proportionally to the specified drive parameter. To implement a control loop with the drive, you also have to have a way to send a control signal to the drive, again usually a voltage value. If your drive provides these two signals, make sure that your SCXI modules are capable of sending and receiving signals over the full scale specified for these signals.

Once you verify the above, I don't see any reason why you couldn't successfully implement a PID control loop with your current setup.

In general, Measurement & Automation Explorer (MAX) is a utility that allows you to configure, diagnose, and test your system. In your case, you can set up your modules, apply scales, and create tasks specific to your application. For most hardware, the functionality of MAX and LabVIEW overlap, so it is your choice how much of the configuration you want to setup in MAX beforehand, and how much you want to specify programmatically in your application. Note though, that you cannot do everything that MAX does in LabVIEW. In your case it wouldn't be bad to specify individual channels from LabVIEW because you will just be using one input and one output channel. When you get into people using dozens of channels for data acquisition, it becomes extremely useful to set everything up beforehand in a task or global channel in MAX, and then just reference that task from LabVIEW.

I hope the above info helps!

Best Regards,

~Nate

0 Kudos
Message 5 of 7
(4,043 Views)

Nate,

That was very insightful.  To explain myself better, I actually do have dozens of channels for data aquisition and digital control.  I am trying to make sense of the Labview code and how it relates to the MAX tasks.

Could you explain in more detail that last paragrapgh:

"You would acquire the input from the tachometer, compare it to a setpoint, and calculate the error. The error would be used to generate an appropriate output based upon parameters you specify in your controller. This output value is scaled appropriately if necessary, and then output to your Motor Controller."

The Motor Controller has a automatic velocity control on it via a voltage process signal coming from 1124.  The Motor and Motor Controller seem to jive except for the fact that the ouput current to the Motor from the controller is too high for the 1/4 horsepower it is rated for (full scale 90V, 2.5 A).  I am confused as to how the voltage changes to control the velocity without affecting the current draw.

Thanks again,

-Scott

 

0 Kudos
Message 6 of 7
(4,030 Views)
Dear Scott,

In the paragraph that you mention, I was trying to explain the workings of a control loop and how it would pertain to your situation. I think you may gain some additional insight here:

PID Theory Explained:
http://zone.ni.com/devzone/cda/tut/p/id/3782

Let me try to expand upon my earlier paragraph:The PID process variable would be speed, measured via your tachometer. In your closed loop control system, you would compare this actual speed to your desired speed, or setpoint, to determine if you need to increase or decrease the speed of you motor by applying more or less current. This comparison is done by computing the difference between your setpoint and your process variable, also known as the error. This error will be used in the control algorithm (PID in this case) to calculate the  appropriate voltage output of the 1124, which in turn would be read by your drive, which would then adjust the current output sent to your motor. So the drive would actually draw more current when speeding up the motor, and less when the motor was spinning slower.

Best Regards,

~Nate
0 Kudos
Message 7 of 7
(3,998 Views)