PLC based digital PID controller

faycal86

Member
Join Date
Jan 2009
Location
Algeries
Posts
4
Hello everybody;

I have a project entitled "design and implementation of a programmable logic controller based digital proportional-integral-derivative controller".

A lot of PLC's already include PID module, but I need to make one from scratch. I don't know from where to start , so anyone who can help me with documentation,ladder programs, papers or anything useful will be great.

Thanks in advance.
 
Ron Beaufort is the man for man you. If you search for his name and then click the link to his website he has 3 great articles on PID. Instead of using the complicated PID formulas, it is possible to calculate the pid values using layman math. What you have is an awesome project to work on, so much so that I am going to try it myself too. I tink with 3 blocks of code, 1 for each of the P, I, D, possibly using timers for your I and D caculations. The error is easily calculated and obviously the PV and SV values are readibly available. Good luck.
 
Things to consider or confuse the issue :)

There are many forms of PID. What form of PID are you going to implement.
Are the integrator terms going to be gains or time constants?
Is the PID going to incremental ( velocity ) or full value ( position ) format. I don't like the term velocity and position because it has nothing to do with whether the PID can be used for either type of control.
What is the PID going to control? It makes a difference.
Are you going to implement anti windup?
Are you going to implement a low pass filter on the derivative gain?
 
This may be too much help

ftp://ftp.deltacompsys.com/public/PID/Mathcad - TempPID.pdf
The PIDs are just one line. That is it. Simple. The PIDs use the incremental form and one is a PID and the other is a I-PD. Both PIDs have a anti windup feature. The tuning does not take into account dead time.

I can see the pdf file is old. I should update it.

If the class isn't a PLC class I would write the PID in Scilab to get the PID working and then convert that code to a PLC PID.

You should also look at the downloads directory. There is a file called hotrod.zip where I write a PID in ladder but it is done on a SLC505. There is a pdf file for those that don't have RS500.

Finally, PLC PIDs have time constants in minutes. This is not adequate for motion projects where the time constants are in milliseconds.
 
Faycal86

Exactly what is the purpose of this exercise?
As you've already said many PLCs have in-built PID functions so the objective presumably isn't to control something.
Is this intended to be a test of your design and programming capability?

If you examine many of the existing PID implementations in control equipment (PLCs and beyond) you'll find an immense range of capabilities and options. I think you rapidly need to begin to establish what will be your goal here, and what will signify success or not. Will you settle for the simplest possible version with the fewest parameters needed, or will you incorporate options at every stage, and alarm generation, and auto-tuning, and ...

If you have been set the task of designing and writing software to do something you don't understand I'd say you need to clarify the User's Requirements (i.e. those of your tutor/instructor). Once you are clear on what he wants from you, you can begin to construct a Design Specification (how you will go about achieving his requirements). Along the way you may need to do some basic research in to what PID control is - in which case some of the suggestions earlier in this thread should prove useful. Finally you will have to translate your design in to software. What level of programming experience, and in what languages, do you have with Siemens PLCs?

I suspect we may be hearing more from you over the next few weeks!:)

Regards

Ken
 

Similar Topics

I am trying to use tag based alarms in Studio 5000. It seems really great at making alarms automatic. I have a few alarms that require...
Replies
0
Views
1,059
I got a problem concerning the change of coins from a vending machine plc based, i use the rs logic starter lite with Rs emulate 500 along with...
Replies
5
Views
2,077
Dear Members, I am new to S5 series PLC, In one of my application, I need to communicate S5 6ES5942-7UA12/ or S5 6ES5941-7UA12 PLC with HMI(PC...
Replies
6
Views
2,181
How can I get a rough estimate of how much memory I will need for a controller if the code is not written yet, but I know how much I/O it will be...
Replies
10
Views
3,364
Greeting, I am doing some investigations on which driver(s) support tag based addressing (eg. Pump001_Running) rather than DB or Modbus based...
Replies
4
Views
3,743
Back
Top Bottom