Dc Motor Control Help

suaj002

Member
Join Date
Dec 2011
Location
California
Posts
17
Hi you guys doing,

Hopefully I could get some help. I've been trying to write a program that will control the rpm settings on a at-1200hp powder feeder. The easy part was sending the signal out, but the scaling porporsion is where am confuse. Am using a s7-200 siemens plc cpu type 224xp with the em232 analog module. The signal that controls the powder feeder motor is 0-10v. But every time I enter what I believe to be the right scaling format the rpm will show correct rpm numbers with some but not all. Am not sure if its my scaling numbers are wrong or if the plc will need the dc encoder to get the right values. The max rpm would be 32.

Hope to hear from someone soon,... Thanks
 
I have not programmed the s7-200
But
are getting 0-10V output correctly
that is min value then maximum value
IF so the internal scaling factors are wrong.
If not the drive paramaters are wrong.

What input device are you using with the PLC?
please give a litle more detail
is 32 rpm = to 1200 HP?
 
Min rpm is 0, max rpm is 32.
Min analog output is 0, max analog autput is 32000

Simple scaling is to multiply the required rpm by 1000 and convert to Integer.

These values sound far too convenient, are you sure this isn't a homework question.
 
Yes am sure its not homework. This min max rpm and the values is what i tried and would work with high numbers say if i wanted a 16rpms it would work +-00.03 rpm. How ever if i tried lower rpm number it would be off by 2 or 3 rpm. I could the manufacture and the way they remote control the powder feeder is by using the built in encoder to adjust the values so it would correspond with the input.
Am using and analog out module and at-1200hp is the model of the powder feeder not sure how much hp it has.
Thanks for the replies tho..
 
Just to confirm how this system is set up:

Your PLC is providing a 0-10V motor speed reference to (I assume) some form of DC drive. the DC drive is then controlling the speed of the DC motor based on your setpoint.

Questions:

Where are you seeing the speed discrepancy? On the display of the drive or measured with a tacho? if it's the drive display, make sure you know what you're looking at - there's a difference between commanded speed and actual motor speed. I don't do much with DC drives, but all the AC ones I work with allow you to view actual parameters like remote speed reference, which is what you want to check to ensure your output is working correctly. Once you're sure it's not an issue on the PLC side, you can start looking at the drive.

Are you sure there is encoder feedback to the drive? If so, is the drive configured to use it?

Ideally the drive would handle any adjustment in speed based on feedback from the encoder, and all your PLC needs to do is say "go this fast".

Maybe you need to take even one more step back and simply test that voltage output with a multimeter or scope. at 0 rpm do you get zero volts, and at 32 RPM do you get 10V?
 
I could the manufacture and the way they remote control the powder feeder is by using the built in encoder to adjust the values so it would correspond with the input.
The only way to accurately control feed / speed is with this encoder.
you need to get this information back to the PLC.
then you use this to display the actual speed.
The analogue scale needs to be only 0~100%
the actual RPM / feed / HP / KW is what ever you display in the remote location.
 
From what I can see on the brochure of the powder feeder unit, the encoder is connected to the drive directly. You don't need this to go back to the PLC, all you need to do is give this powder feeder unit a speed reference and it should (if it's built properly!) take care of itself.

Measure your PLC's voltage output at 0 and 32RPM commanded speed and get back to us with values.

Steve
 
I've tested the voltage out put on the plc and it provides the correct 0-10v. Plus I also max out the out put on the plc just to make sure that it is providing the 10v. Am thinking that it may be cause by the motor rpm is not at a set point. Since when i out put 10v on the plc the motor ramped up to 60 rpm. I get the reading of the motor from the screen on the motor which displays the rpm at the time.
Yes the encoder is directly feed back to the drive controller. Since it allows to have the rpm set in manually from a display screen on the powder feeder. Which has the encoder feed back to adjust the speed in case of load and anything that can effect set speed from actual speed.
ndzied01 yes that is the type of powder feeder that am using.
 
I am not sure if its my scaling numbers are wrong, or if the plc will need the dc encoder to get the right values.
I think the last part is relevant. If you want what the encoder is sending to the drive to match your scaling numbers, then your scaling numbers have to be based on the encoder values. Otherwise they will never exactly agree. However you can probably add some fudge factors to get them closer.
 
Hang on, I thought it was only a 0-32RPM machine? So 10V can't be equal to 32RPM then if the machine ran at 60RPM when you drove the output to 10V.

Your scaling is not going to be correct in the PLC (0-32RPM as originally stated) if that's the case.
 
Hang on, I thought it was only a 0-32RPM machine? So 10V can't be equal to 32RPM then if the machine ran at 60RPM when you drove the output to 10V.

Your scaling is not going to be correct in the PLC (0-32RPM as originally stated) if that's the case.
Hi mate,
you missread my post "#2"
I was asking the OP for those details
he has not realy replied to it.
 
Sorry for the late reply. Its rated to run normally at 32rpm and max out 43. Even tho it is rated at these rpm am able to max it out at 60 rpm when the output is at 10v.
Since I saw this I tried scaling it with the range being 60 rpm and still no luck would have the same effect. As in not all the set point numbers will match to actual rpm number.
Am thinking that I may have to have the feedback for the rpm to self adjust to set point.
 
As the maximum is 60 RPM you still need to understand that @ 100% the scale output will be 10 V - or 60 RPM
what you need to do is scale so that 60 RPM is 10V
then set up a conditional equation in your program that prevents the setpoint being greater than 32

EDIT
Where X can be between 0 and 60
If X > 32 then set X = 32

NOT THE SCALED MAX VALUE
 
Last edited:
As Iant hints, you must split this problem into two pieces. One piece is the 0-10V signal and everything in front of it. The other piece is the DC drive/motor/gear system.

You must first take whatever steps are necessary to get the 0-10V sweep to represent 0-60rpm if 60 is your absolute maximum speed.

Once you have a command signal that represents what you want in speed range, then you must configure the drive to provide the motor speed range necessary to produce the gearbox output speed range that matches your signal speeds.

The encoder goes back to the drive to close up the speed loop. Better if the encoder is on the motor shaft than on the gearbox output shaft but either can work. Remember, there are P, I, and D gains to set in the closed speed loop.

Is this clear up to this point?
 

Similar Topics

Hello I am building a machine and i would like to get some suggestions about the right plc to choose for my application. My application: I need...
Replies
13
Views
6,638
Hello everybody Ok I can't get this . I want to know if I can use same input for either direction for./rev. And can...
Replies
63
Views
11,486
good da everyone, i'm new to PLC programming and would like to ask if anyone can assist me with this problem.i want to write a project with SFC...
Replies
3
Views
1,477
Hi everyone, I'm a beginner and trying to come up with a simple motor control system. I'm hoping anyone can advice me on what hardware and/or...
Replies
15
Views
6,599
Kindly, has anyone tried to control Lenze servomotors with Siemens S120 drives ? Any special hints ? Have some concerns for the resolver and servo...
Replies
5
Views
229
Back
Top Bottom