Jump to content

Recommended Posts

  • 4 weeks later...

The process I want to do is as follows:

1. User inputs a set RPM to the V530 PLC via the virtual keypad for the motor mentioned above and press enter.

2. The output is a PWM DC signal to rotate motor at specified RPM.

How do I do the first part?

Any help would be appreciated.

1) Make a screen which has a variable. Allow the user to enter an integer in the variable of 0-100%

2)Use the variable above as an input to the PWM function to alter the pulses per cycle.

You may need to normalize or scale the variable if you want to enter the value in RPMs or M/sec or some units. Then give this scaled value to the PWM function.

This is for open loop speed setting.

For closed loop speed control, do the same thing, but add in some speed feedback from the actual device or motor.

Again some scaling will be required.

Enter 250 RPM on the screen.

Scale the 250 to equal 0-100% of the motor speed.

Use this as your "setpoint" for speed.

Bring in the speed feedback signal. Scale this signal so that it is normalized to 0-100% of full speed.

I also use a ramp to start most things, so I would begin incrementing my speed control up.

So every X seconds,

IF the actual speed is less than the setpoint,

then add Y to the speed reference going to the PWM.

IF the actual speed is greater than the setpoint,

then subtract Y from the speed reference going to the PWM.

(Yes you need a window there, yes the times are tricky, no the built in PID in version 7 or 8 would NOT do this. The built in PID back then would only go one way for temperature control like a HVAC system where you only have heat or cool active at one time. Maybe this has been changed, if the new PID is bidirectional, then just use the speed setpoint as the input to a PID fucntion.)

(This can become a sort of cheap PID if you are careful and tune it. You can have several stages of more or less aggressive acceleration depending on how far from the setpoint you are (P) and each section can be updated more or less frequently (I) and you can have a separate function to limit the amount of change per time period to a maximum value (D) . It is not simple, but not too difficult if you break it down into small steps. If you approach the setpoint slowly and do not have a large change in load, you may not have enough oscillation to require a PID.)

When the actual speed from the speed feedback, is equal to the "setpoint" or inside an acceptable band, then stop the increment.

If the motor slows down, this will also pick it back up. If the motor speeds up, this will slow it back down.

If you want to change the speed, just change the setpoint.

Now if you connect some external signal that sets your speed based on some changing process condition it would be even more fun.

Link to comment
Share on other sites

  • 4 weeks later...

Thank you so much and I am really sorry for replying late. Been going through the PLC, HMI, Ladder Logic manual the whole month! I finally settled for open loop speed control because the motor control board (though very basic) has a manual torque tuner. And it won't be working at variable speed or heavier loads. Just a smooth set speed of 60 rpm.


Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...