Dear all,
Thank you for reading my e-mail, i would be greatfull if you also help me find the solution.
I am a new PLC programmer, now my customer asking me to create a PLC program to control their dc motor via the dc drive.
the Siemens s7-317 dp would be connecting "hard wired"ly to the DC drive("i forgot the brand").All i have to do is create a program that could output 0-10 Volts on PLC analog output.
The motor should change (increase/decrease) it's speed linearly as the operator press "speed up" and "speed down" button.
i have read several manuals and website talking about motor speed controlling, and some of them mentioned about PID control.
the problem is i dont have any knowledge on control system,this would be my first "advance" PLC program. All the literatures i read is really confusing me.
is there any suggestion how do i create the program? should i really use the PID control system and no other way to control it?
can i control the motor without knowing the motor actual speed?(the system only had a tachometer output wired to the drive encoder card).
i really greatfull and look forward hearing a solution, suggestion or information from you.
thank you and my best regards,
Robert Powel
robertpowel.lord@gmail.com
Thank you for reading my e-mail, i would be greatfull if you also help me find the solution.
I am a new PLC programmer, now my customer asking me to create a PLC program to control their dc motor via the dc drive.
the Siemens s7-317 dp would be connecting "hard wired"ly to the DC drive("i forgot the brand").All i have to do is create a program that could output 0-10 Volts on PLC analog output.
The motor should change (increase/decrease) it's speed linearly as the operator press "speed up" and "speed down" button.
i have read several manuals and website talking about motor speed controlling, and some of them mentioned about PID control.
the problem is i dont have any knowledge on control system,this would be my first "advance" PLC program. All the literatures i read is really confusing me.
is there any suggestion how do i create the program? should i really use the PID control system and no other way to control it?
can i control the motor without knowing the motor actual speed?(the system only had a tachometer output wired to the drive encoder card).
i really greatfull and look forward hearing a solution, suggestion or information from you.
thank you and my best regards,
Robert Powel
robertpowel.lord@gmail.com
Robert,
A +/- 10volt input to the drive amplifier should control the drive speed as you say. A simple 10 volt supply can be made with a 9 volt battery (or from a 10 volt supply in the control). Apply the voltage across a 10K potentiometer. The pot. slider and either + or- voltage are then connected to a double pole double throw switch outside poles. The center poles are then connector to the drive amplifier input. Thus you can control the voltage and polarity to the drive input. You do not need any fancy software for this.
The subject of P (proportional), derivative (D), and integral (I), are used to compensate servos. With today's technology, PID is designed with digital filters, but PID could be done with analog lead/lag type circuits of yesteryear with a DC drive. For DC drives, PI analog compensation was used for years. If interested, contact me with your email address and I will email some basic documents to you on PID.
Regards,
George Younkin, P.E., MSEE
Life FELLOW IEEE
A +/- 10volt input to the drive amplifier should control the drive speed as you say. A simple 10 volt supply can be made with a 9 volt battery (or from a 10 volt supply in the control). Apply the voltage across a 10K potentiometer. The pot. slider and either + or- voltage are then connected to a double pole double throw switch outside poles. The center poles are then connector to the drive amplifier input. Thus you can control the voltage and polarity to the drive input. You do not need any fancy software for this.
The subject of P (proportional), derivative (D), and integral (I), are used to compensate servos. With today's technology, PID is designed with digital filters, but PID could be done with analog lead/lag type circuits of yesteryear with a DC drive. For DC drives, PI analog compensation was used for years. If interested, contact me with your email address and I will email some basic documents to you on PID.
Regards,
George Younkin, P.E., MSEE
Life FELLOW IEEE
Robert,
In my previous message I forgot to give you my email address, which is gwyounkin @ charter. net.
Thank you!
In my previous message I forgot to give you my email address, which is gwyounkin @ charter. net.
Thank you!
Usually the output would go to a drive control unit rather than directly from the PLC to the drive, which is how I interpret your post.
The PID block you mention could be used to implement speed control, I am not terribly familiar with the PLC you mention. But generally it would just require a standard PID block, stick the setpoint in and then the output from this (AO therefore 4-20mA) would be passed to a suitably set up variable speed drive (VSD) unit. This in turn would control the speed of the DC motor to the desired set point as initially inputted into the PID block in the PLC.
Obviously you would also need some form of speed feedback for this.
Alternatively you could use a manual loader to apply the analog set point to the vsd and rely on the VSD to control the speed at the set limit.
Applied voltage should be proportional to achieved motor speed (obviously depending on loading, etc., etc.), so depending on just how tight you want to control the speed you can get away with just using this for setting the speed.
Hope this helps, there are a lot of factors to consider though.
The PID block you mention could be used to implement speed control, I am not terribly familiar with the PLC you mention. But generally it would just require a standard PID block, stick the setpoint in and then the output from this (AO therefore 4-20mA) would be passed to a suitably set up variable speed drive (VSD) unit. This in turn would control the speed of the DC motor to the desired set point as initially inputted into the PID block in the PLC.
Obviously you would also need some form of speed feedback for this.
Alternatively you could use a manual loader to apply the analog set point to the vsd and rely on the VSD to control the speed at the set limit.
Applied voltage should be proportional to achieved motor speed (obviously depending on loading, etc., etc.), so depending on just how tight you want to control the speed you can get away with just using this for setting the speed.
Hope this helps, there are a lot of factors to consider though.
Hello,
You probably won't find it in your PLC manual how to control velocity with the analog output card, so I suggest this approach:
If the drive/motor is closed loop (encoder, resolver, or tachometer), you need to put your drive into speed control. This takes the 0-10V input and converts it to a proportional speed. You also may have to tune the motor depending on the drive manufacturer and model (some drives are preset or autotuning). Bottom line you will have to refer to the drive manual for this. You will probably have to set it up so the input to output scaling matches up.. i.e. 10V = 3000RPM or something like that. Once this is done you should be able to test the speed control capability with an analog source (0-10V Potentiometer, power supply, etc) and an oscilloscope clipped to the tach output.
Now, finally you can hook it up to your PLC and start writing code to control the 0-10V signal.
Have fun.
You probably won't find it in your PLC manual how to control velocity with the analog output card, so I suggest this approach:
If the drive/motor is closed loop (encoder, resolver, or tachometer), you need to put your drive into speed control. This takes the 0-10V input and converts it to a proportional speed. You also may have to tune the motor depending on the drive manufacturer and model (some drives are preset or autotuning). Bottom line you will have to refer to the drive manual for this. You will probably have to set it up so the input to output scaling matches up.. i.e. 10V = 3000RPM or something like that. Once this is done you should be able to test the speed control capability with an analog source (0-10V Potentiometer, power supply, etc) and an oscilloscope clipped to the tach output.
Now, finally you can hook it up to your PLC and start writing code to control the 0-10V signal.
Have fun.
I don't understand this:
>can i control the motor without knowing
>the motor actual speed?(the system only
>had a tachometer output wired to the
>drive encoder card). <
If there is a tachometer that you can read, then you do know the actual speed of the motor.
A PID algorithm is a feedback algorithm based on measurement of the actual speed that you want to control. If you don't have access to that measurement, then you can't use a PID algorithm.
Depending on the motor loading, you may be able to get away with open-loop control. A motor running with very little load will run at speed that is proportional to the applied voltage. So you set a certain voltage and you get a certain speed. But if you need to compensate for the reduction in speed that happens when the loading increases, then you will need to get that tachometer measurement into your PLC program.
Robert Scott
Real-Time Specialties
>can i control the motor without knowing
>the motor actual speed?(the system only
>had a tachometer output wired to the
>drive encoder card). <
If there is a tachometer that you can read, then you do know the actual speed of the motor.
A PID algorithm is a feedback algorithm based on measurement of the actual speed that you want to control. If you don't have access to that measurement, then you can't use a PID algorithm.
Depending on the motor loading, you may be able to get away with open-loop control. A motor running with very little load will run at speed that is proportional to the applied voltage. So you set a certain voltage and you get a certain speed. But if you need to compensate for the reduction in speed that happens when the loading increases, then you will need to get that tachometer measurement into your PLC program.
Robert Scott
Real-Time Specialties
From the replies, I think that they missed the point.
In this business you have to read very carefully and some times between the lines. From your post it seems that you have two inputs from momentary push buttons. One for "speed up" and one for "speed down". You have an analog output connected to a drive. That's it.
There is no feedback for PID control, so a PID is not called for.
The operator is the feedback and he uses the buttons to control the speed.
The 0-10 Volts on PLC analog output should cause the motor speed to vary proportionally. Variations in the load may affect the speed. If this is a problem then a speed input would be required and a PID would be called for.
To the PLC the output is a number - zero to a maximum value depending on the output hardware and configuration.
Your program needs to add to the output value while the "speed up" button is pressed and subtract from the output value while the "speed down " button is pressed.
You can use timers to control the rate at which the speed changes. The "speed up" input from the button enables a timer. When the timer finishes timing it adds an amount to the output value and resets itself. Same for the "speed down" input.
You should also add logic to prevent the value from going out of range.
If you have any questions please contact me at lewy @ hal-pc. org.
In this business you have to read very carefully and some times between the lines. From your post it seems that you have two inputs from momentary push buttons. One for "speed up" and one for "speed down". You have an analog output connected to a drive. That's it.
There is no feedback for PID control, so a PID is not called for.
The operator is the feedback and he uses the buttons to control the speed.
The 0-10 Volts on PLC analog output should cause the motor speed to vary proportionally. Variations in the load may affect the speed. If this is a problem then a speed input would be required and a PID would be called for.
To the PLC the output is a number - zero to a maximum value depending on the output hardware and configuration.
Your program needs to add to the output value while the "speed up" button is pressed and subtract from the output value while the "speed down " button is pressed.
You can use timers to control the rate at which the speed changes. The "speed up" input from the button enables a timer. When the timer finishes timing it adds an amount to the output value and resets itself. Same for the "speed down" input.
You should also add logic to prevent the value from going out of range.
If you have any questions please contact me at lewy @ hal-pc. org.
Robert,
Don't use PID unless you are looking to control some process variable, e.g. flow. For straight speed control all you need to do is create some means of driving the analog output up and down.
From your post it seems you have pushbuttons hardwired into the PLC. You could use the buttons to ramp Up/ramp Down a register mapped to the analog output.
The drive's response should be linear with relation to the voltage. If you look at the manual somewhere it will probably show the option of speed control using a potentiometer. This is what you are replacing with your PLC Voltage output. I suggest you also look at the option of controlling with a 4-20 mA signal, that's more usual.
We need more information on what the drive is doing, what Siemens PLC module and the drive's Make/Model. Is the drive to respond only to the buttons?
Although you may not need PID for this application I suggest you play with it anyway, sooner or later you will be using it!
Good Luck,
Roy
Don't use PID unless you are looking to control some process variable, e.g. flow. For straight speed control all you need to do is create some means of driving the analog output up and down.
From your post it seems you have pushbuttons hardwired into the PLC. You could use the buttons to ramp Up/ramp Down a register mapped to the analog output.
The drive's response should be linear with relation to the voltage. If you look at the manual somewhere it will probably show the option of speed control using a potentiometer. This is what you are replacing with your PLC Voltage output. I suggest you also look at the option of controlling with a 4-20 mA signal, that's more usual.
We need more information on what the drive is doing, what Siemens PLC module and the drive's Make/Model. Is the drive to respond only to the buttons?
Although you may not need PID for this application I suggest you play with it anyway, sooner or later you will be using it!
Good Luck,
Roy
A lot of simple DC drives have an adjustment to compensate for load. What you do is load the motor up, measure the speed (e.g. with a hand-held optical tach), and then adjust the load compensation control (usually a pot) to get the speed correct. I have seen quite accurate speed control using this method, provided that the load is predictable.
It is also worth pointing out that if you need PID, then more sophisticated DC drives (servo drives effectively) can close the loop directly in the drive itself. The PLC analogue output is really just a speed command. You need to calibrate that command, but you don't use it for PID. With a lot of motor applications, the PLC would be too slow to be useful.
It is also worth pointing out that if you need PID, then more sophisticated DC drives (servo drives effectively) can close the loop directly in the drive itself. The PLC analogue output is really just a speed command. You need to calibrate that command, but you don't use it for PID. With a lot of motor applications, the PLC would be too slow to be useful.
Simplest way to control DC motor speed is using PLC Analog Output for internal servo amp in velocity mode - see such amp from Elmo or AMC. You need one digital Output for Enable of servo amp also.
A VFD is your best bet. It will do everything you're asking including control the speed and most have a display that will show the exact speed at the rotor.
The control in the the PLC that you will be doing is the control of the speed in reference to the drive. The drive will do the rest. The PLC will send a setpoint to the drive and the drive will run. That setpoint, depending how that analogue input is scaled, etc., will regulate the speed accordingly from feedback from a tacho or encoder. The PLC control will be open loop, there is no real need for the speed feedback to be fed back to the PLC, but this can be done if you want to ramp the drive speed up from the PLC. It actually depends on the application. The drive, if it's a new type, will be much faster in terms of control than the PLC, drives generally have higher scan rates.
Ashley,
Finally, someone who knows what a DC drive is. Hopefully Robert will give us a bit more feedback.
Regards,
Roy
Finally, someone who knows what a DC drive is. Hopefully Robert will give us a bit more feedback.
Regards,
Roy
Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2010 Nerds in Control, LLC. All rights reserved.
Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.
Fortune
This is an unauthorized cybernetic announcement.







