First Program

andrewt

Member
Join Date
Dec 2011
Location
Texas
Posts
18
I need help I took some RSLOGIX training courses back four or five years ago but I am just now getting my first programming opp. Ill cut to the chase. I have five different motors that I am having to control the RPM's for a certain amount of time. Im assuming I need to use PID control and each one has a tach I can use for feedback. What I was going to do was use a ramp function if I can remember how, and then a loop for each motor and let it get the RPM's into an acceptable range. After all 5 motors have done so, I then need them to run at that RPM for a minute. After they have done so for a minute I have to change the RPM's to a new setpoint. Which is an all new rung with the same setup just new setpoints. Am I way off base here? Does the PID do the converting for me? Meaning if I have a motor with a max RPM of 135, and need it to run at 25 for a minute, what setpoint will I have in my PID. I mean its not gonna understand nor know the max rpm of the motor. Do I need to do some math here? As much help as possible please.
 
Which PLC are you using?
What type of VSD's are you using
Do you need the PLC to control the VSD's digitally, analogue or Comms.
What is your budget?

I think this is too deep for your first ever program.
What type of machine is it?
 
I'm assuming I need to use PID control and each one has a tach I can use for feedback.
No, not if you already know what Speed each motor needs to run. A PID can be used to compute a Speed based on both a Process Setpoint and a Process Variable. It seems that you have no process variable, so you do not really need a PID. Just set the speed, then check to see how close the tach is to your speed setting.

First, plese explain WHAT devices are being used to control the motor speed? Variable Frequency Drives are now the most common, but there are other methods too.
 
Last edited:
...Does the PID do the converting for me? Meaning if I have a motor with a max RPM of 135, and need it to run at 25 for a minute, what setpoint will I have in my PID. I mean its not gonna understand nor know the max rpm of the motor. Do I need to do some math here? As much help as possible please...

RSLogix5000 does the math when you set the PID up. You enter your min and max EUs in the PID setup. I don't remember whether the the other RSLs have a similar PID setup or not but its seems to me that we had to use SCP instructions then use those results in our PIDs.

Also, you can MOVe new SPs into the PIDs--you don't have to add additional PID rungs with different SPs and conditional logic.
 
Last edited:
Youre right

YES YOURE RIGHT! Tell that to my boss! I agree this is a very tough program for my first one. THe plan has been changed a little to this. BTW im using a MicroLogix1500 LRP Series B PLC.

Heres what I need to do: Im going to keep it simple, because if I can figure out how to do this one motor I can use the same method for all. I need to control the RPM's of this motor for 7 different "steps" at different RPM's. No feedback necessary, because it is just a purge process and being exact isnt necessary. This motor reaches a full speed of 170 RPM in 60 secs. He wants me to now just use timers to accomplish this. Meaning I dont know the exact calculation, but after I hit the pushbutton it will take say 5 secs to reach the first desired RPM of say 15 RPM's. Again thats not exact. He then said after you reach that RPM, use another timer to start the 60 sec cycle at that RPM. BUT THE MOTOR ISNT GOING TO STAY AT THAT SPEED?? IT WILL CONTINUE TO GET FASTER AND FASTER!! SO HOW DO I KEEP IT IN THAT RANGE?? And last, how do you manualy make a ramp instruction. Since each step or cycle is changing the RPMs from different speeds, I need to do that gradually and as safe and easy on the motor as possible. THanks for any help, and realizing and confirming my thought this is a large task for me, but I want to give it my best.
SO in summary, keep motor in ideal RPM range for 60secs with use of timers, no feedback necessary and RPM's just need to be roundabout.
 
It would really help to get very detailed about the hardware and software. Please feel free to add any other info you can, the more the better. Here are some questions and suggestions. AC or DC? Gearmotors? With the low RPM numbers you posted, it suggests a gearmotor. DC or AC VFD drives? With a tach available for feedback it suggests a DC motor and drive, but not necessarily. Analog input or output available on PLC? Please list any expansion modules and part numbers, if avaialable. Exact software version? I'm guessing you have RSLogix 500 software since you said you were using a MicroLogix 1500.
 
Last edited:
Which PLC are you using?
What type of VSD's are you using
Do you need the PLC to control the VSD's digitally, analogue or Comms.
What is your budget?

THIS IS IMPORTANT PLEASE:handball:
 
Hmmm... will not knowing all detials and hardware and just going off what your boss wants, if you are using a VFD then you could set-up on a 0-10vdc analog signal to the VFD's (if that is what you have.) Use your analog outputs to trigger 2vdc on start-up, after 10 seconds of timing trigger 4vdc, and keep scaling up the system threw your timers. Not how I would approach the system but, sounds like your boss wants it a certian way. Hope this helps or gives you a direction.....remember, keep it simple.
 
I need to control the RPM's of this motor for 7 different "steps" at different RPM's. No feedback necessary, because it is just a purge process and being exact isnt necessary. This motor reaches a full speed of 170 RPM in 60 secs. He wants me to now just use timers to accomplish this. Meaning I dont know the exact calculation, but after I hit the pushbutton it will take say 5 secs to reach the first desired RPM of say 15 RPM's. Again thats not exact. He then said after you reach that RPM, use another timer to start the 60 sec cycle at that RPM. BUT THE MOTOR ISNT GOING TO STAY AT THAT SPEED?? IT WILL CONTINUE TO GET FASTER AND FASTER!! SO HOW DO I KEEP IT IN THAT RANGE?? And last, how do you manualy make a ramp instruction.
BUT THE MOTOR ISNT GOING TO STAY AT THAT SPEED??
1. No, you do NOT want the motors to "stay at that speed". You want the speed to increse by X amount every T seconds. The X and T values depend on your Ramp Begin and End points. I ASSUME you have some Motor Drives that will accept an analog input setpoint signal? If so, you just set up CPT (Compute) or MOVe instructions to move an incremented setpoint to your motor drives every T seconds. You can increment the setpoint by 1 or by some other number over some T time period.

2. SO HOW DO YOU KEEP IT IN THAT RANGE?? You use comparison instructions that compare your tach feedback signal to your ramp setpoint. When Motor Speed = Ramp Setpoint, then stop ramp.

3. And last, you manualy make a ramp instruction as shown below. Ramp Timers are easy to do in RSLogix. See the attached example.

A. Rung 0022 is the rung that starts the first ramp timer, when B3/168 Ramp Enable bit ("CHAMBER RECIPE RAMP") goes ON. Every 8 seconds, this timer produces a Done bit.
B. On Rung 0023, if Ramp is Enabled, and Timer T4:34 = Done, then increment the setpoint by 1.
C. On Rung 0024, if septoint has reached ramp endpoint, then unlatch ramp enable bit B3/168. That is all, very simple, very easy to write the program logic.

Ramp Timer.jpg
 
Last edited:
OK, I'll chime in with everyone else and say "More info please". A firm understanding of what you want to accomplish, and what hardware you are using is fundamental.

However, that being said, it seems that things have gotten over complicated. Here is what I get from the description of what is needed.

Step 1a: Change VFD speed command to setpoint 1.

Step 1b: Wait for motor to reach setpoint 1.

Step 1c: Wait for 60 seconds.

Step 2a: Change VFD speed command to setpoint 2.

Step 2b: Wait for motor to reach setpoint 2.

Step 2c: Wait for 60 seconds.

Continue through step 7.

The motor will stay at whatever speed you command it to until you change the speed setpoint again. The speed command can be done with an analog signal or over a network, it doesn't really matter. You can even use 3 digital outputs to select up to 7 speeds preset in the drive (sounds suspiciously like what your boss requested). That's where knowing what hardware you are using is important. Tell me what drive you are using, and I can get more specific.

I see no need for a PID loop in the PLC to control the speed, you said it doesn't have to be that accurate. If you command the drive to go to a specific speed, it will go to that speed and stay there. You mentioned this is a purge process, are these motors driving fans? or pumps? More info = better answers.

I see no need for ramping the speed in the PLC. If you need the speed to change at a certain rate between the setpoints, take advantage of the ramp rate settings in the drive. For example, a typical Powerflex drive will take 10 seconds to go from 0-60Hz with factory default settings. The only reason I would ramp in the PLC is if the desired ramp rate is very slow, but I have seen no such requirement so far.

Good luck on your project.
 
use a sequencer

Just use a sequencer, we do it all the time in CIP
systems to change the speed of the VFD as we index
through the CIP, take about three rungs to do an many
steps as u need.
 
Lancie1, so what is 1? I mean if I am incrementing up 1, what does 1 represent? And I do want to stay at a certain RPM, for 60 seconds. And I have no feedback. He doesnt want to use it. If I tell the motor to turn on and start speeding up, can I stop it when it gets to a certain RPM and keep in at that for a minute. THanks for everyones time
 
Lancie1, so what is 1? I mean if I am incrementing up 1, what does 1 represent?
Andrew, remember that you are in control of the program logic, so you need to define "1" to be what you need it to be!. In the example that I posted, "1" represented a temperature of 1 degree F. In your case, it should represent 1 RPM of speed change.

Set up your logic to increment your Motor Drive Output by 3 RPM every 1 second. Again, you control the parameters, so set them to be what you need to get to the final RPM in the time allowed.

I think you said that you wanted to go from 0 to 170 RPM in 60 seconds, so I would recommend that you increment your RPM output by 3 RPM every 1 second, which will get you to 170 RPM in 56.66 seconds.

With this method, you only need 1 timer and that will give you one smooth ramp from 0 to 170 RPM. If your boss really wants 7 steps, then you could use 7 timers (or 7 time periods from 1 timer), but why bother? Why create 7 bumps where only 1 smooth ramp is required?

Note that I cannot be more helpful because you still have not said even what device is controlling these motors. Perhaps you do not even know if VFDs, SCRs, DC Drives, or if stepper motors are being used?

What is the PLC output that is sending the RPM output to the motors? Do you have VFD drives with remote speed-reference inputs? Is your beginning RPM always 0, or can the motor be already running at some X RPM? These things do matter to the success or failure of your program ramp function.

...and each one has a tach I can use for feedback.
And I have no feedback. He doesnt want to use it.
Then do not use it. If tachometer feedback is available, I would use it to stop the ramp function when the motor reaches the desired RPM. Without feedback, you have to ASSUME that the motor reached the correct RPM in the given time period. You know what ASSUME makes out of U amd ME.
 
Last edited:
Ok. Now we are getting to the heart of my problem. First yes I dont know all the hardware. But you are helping right now. Is it possible, or how do I stop the motor from ramping AFTER it gets to the correct rpm without feedback?? I was saying it has a max rpm ramp of 60 secs. So for the first motor, I know it will take 19 secs to get to my desired RPM of 39. So when it gets to it, I need to stay at 39 RPM, for 60 seconds! But if I enable another timer after I get to 39 rpm for 60 seconds, it will just keep ramping up and speeding up to max. I want it stop ramping. I hope i dont sound as dumb as i feel. This is literally my first program ever. Kinda stressed right now. haha. And where do I set parameters to make one equal one rpm?
 

Similar Topics

Hi, I am new to ladder logic. I have completed a code in the Xinje PLC XC3-32RT-E for one of the machines I am developing. Currently the program...
Replies
6
Views
101
Hi everyone i have a customer, who wants to show an alarm on the machine, if the I/O forces are enabled and set, on at ControlLogix L81E with...
Replies
3
Views
138
I can't seem to get the Panel View Plus 7 standard edition to downgrade to V_11, when I check the AB downloads and compatibility websites for this...
Replies
1
Views
93
Hello all, I have an ABB PLC (PM573) and it has without MC card. I need to take backup from PLC to PC (in automation builder v2.7 ). My...
Replies
5
Views
163
Anyone have access to Melsec Medoc plus 2.31a that can either open a file (.pcd zipped in link below) and send a PDF/screenshot of the ladder, or...
Replies
11
Views
302
Back
Top Bottom