SLC Master Controller PID

plcnovel

Member
Join Date
Feb 2006
Location
LHR
Posts
215
Greetings to All:
I am in a problem here. The hardware plateform is SLC 5/04. The thing is, i have to go to the site and fix a problem in ladder logic that is not written by me. I understood the logic and trying to figure it out the problem. I dont have the logic with me otherwise i would have posted it but Here is the working history first:

WORKING: There is a Master Controller PID in the program, who has two inputs: Input 1 is the output of inlet pressure pid(Control variable in percentage) and Input 2 is the output of the outlet pressure pid (Control variable in percentage). There are 2 outputs of the Master controller, output 1 is the percentage output for the recyling valve, and the output 2 is the percentage output for the speed of the engine. The way Master controller works is, it takes a low select(the low input, out of 2 inputs) and it uses a split range method on its two outputs. Hence it first reacts on the speed and then on the recyling valve. Actually it keeps a cross eye on both inlet pressure and outlet pressure pid outputs (which are the inputs of master controller). Outlet pressure pid loop is reverse acting and inlet pid loop is direct acting. Dpending upon what the master controller selects it operates its output in the following order:

1) Speed
2)Recycling valve

For example if the outlet pressure is higher than its setpoint, the master controller will lower down the speed of teh engine so that to keep track of outlet pressure,it will lower down the speed till the minimum speed reaches. At this point if the outlet pressure is still out of setpoint range, it start openning up the recyling valve.

PROBLEM: Now the problem is, everything working just fine the way it works, but there are few problems that makes this program unstable:

1) First the outlet pressure does not keep track of the setpoint, for example, if the SP for the outlet pressureis set at 3000, then the PV for the outlet pressure will go to 4000, and keeps on increasing, but after a long delay the master outputs come into play, it lowers down the speed and then the recyling valve but there is a huge delay in while doing it. So the whole system shuts down.

The Pid tunning paameters for the inlet and outlet pressure loops are as follows:

Inlet:

P = 8
I = 2
D = 0

Outlet:

P = 8
I = 2
D = 0

For both the pids the internal RG bit is not set and hence the resolution is 0.1.


The solution that i came up with are, there might be tunning issues with teh outlet pressure pid loop, But even if the loop is badly tunned, it should work, why the pressure keeps on increasing to 4000........
I also came to know that the speed output from the master controller goes into engine system which again acts as a setpoint for the engine system pid, that might be a problem, may be the engine system pid is badly tunned and takes a long time to react.......Thats all i came up with.....

But guys i need a lot of your suggestions and ideas before i go to field which is most likely tomm or day after...... so any ideas will be appreciated...thanks in advance
 
the first question is this:



how are the PID rungs set up? ... specifically are there ANY conditions (XIC, XIO, etc.) on the rung with the PID? ... survival tip: there should NOT be any such conditions for an SLC application ... reason: if the rung is ever executed with the “condition” in its false status, then the PID’s Integral contribution will be cancelled out to a zero value ...



next ...



going by your previous thread, it looks like the PIDs are set up to use the “TIMED” mode ... no problem there ... but ... are the PID rungs located in an STI file? ... they should NOT be if you’re using the “TIMED” mode ...



do you still have the “deadband = 3” setting as shown in your previous thread? ... if so, did you read and understand the link that I gave about the deadband? ... and if so, why is this setting still left at “3”? ... in simple terms, using a deadband will only make it harder to tune the system ... we usually only use a deadband AFTER the system has already been tuned ... usually its purpose is to “relax” the amount of control to “rest” the valve (etc.) from constantly moving back and forth ...



next ... what range of values are each of your PIDs seeing for their PV (input) signals? ... for an SLC system, these should ALWAYS range from “0 to 16383” ... if the PV signal is NOT set up for this range (for example: an analog input module supplies a range from “3277 to 16384”) then you should have something like an SCP to scale the input signal before it is presented to the PID’s PV address ...



next ... the PIDs in an SLC system will always send out values which range from “0 to 16383” as their CV (output) signals ... if the field device is NOT set up to accept this range (for example: an analog output module might require a range from “6242 to 31208”) then you should have something like an SCP to scale the CV signal before it is presented to the output module’s address ...



in your earlier post you mentioned that you have the PID’s “Limit output CV” set for “Yes” ... have you been able to nail down the “limit” values? ... and are you certain that those limits are required? ... in many cases, (but certainly not all) limiting the CV can cause problems ... particularly if the limits are very restrictive ... basic idea: the PID wants to stomp on the gas pedal and rev the engine on the school bus ... but the governor keeps the bus from going any faster than 45 mph ... now if your system NEEDS the limits then by all means use them ... just be aware that if the PID output (CV) seems to “run into a brick wall” and stay steady when it needs to go either higher or lower, then the limits might be restricting its ability to control the system ...



general basic truth: in many (most?) cases where a PID cannot be adequately tuned (by adjusting the Kc, Ti, and Td settings), the root of the problem lies in the setup of the PID and not in the tuning values themselves ... the biggest culprits are “timing” issues and “scaling” issues ...



finally ... once you get to the job site, is there a chance that you can post that .RSS file? ... unless we can take a look at that, a lot of our advice is going to be along the lines of “well-it-could-be-this-or-it-could-be-that” ... we’ll try to help as much as we can, but the more we know, the more we can help ...



good luck with your project ...
 
Ron Beaufort said:
the first question is this:



how are the PID rungs set up? ... specifically are there ANY conditions (XIC, XIO, etc.) on the rung with the PID? ... survival tip: there should NOT be any such conditions for an SLC application ... reason: if the rung is ever executed with the “condition” in its false status, then the PID’s Integral contribution will be cancelled out to a zero value ...

The PIDs rungs are setup without any conditions before the PID instruction, mean to say Only a pid instruction on the rung.

next ...



going by your previous thread, it looks like the PIDs are set up to use the “TIMED” mode ... no problem there ... but ... are the PID rungs located in an STI file? ... they should NOT be if you’re using the “TIMED” mode ...

yes they are setup to use in TIMED mode.....and all the pid isntructions are located in ladder file 16 created by the programmer. I am not sure if i answer it correctly. But pretty confident they are not in STI file.

do you still have the “deadband = 3” setting as shown in your previous thread? ... if so, did you read and understand the link that I gave about the deadband? ... and if so, why is this setting still left at “3”? ... in simple terms, using a deadband will only make it harder to tune the system ... we usually only use a deadband AFTER the system has already been tuned ... usually its purpose is to “relax” the amount of control to “rest” the valve (etc.) from constantly moving back and forth ...

No, as per your advise, i instructed our service man to remove the deadband, so now the dead band is 0.

next ... what range of values are each of your PIDs seeing for their PV (input) signals? ... for an SLC system, these should ALWAYS range from “0 to 16383” ... if the PV signal is NOT set up for this range (for example: an analog input module supplies a range from “3277 to 16384”) then you should have something like an SCP to scale the input signal before it is presented to the PID’s PV address ...

Yes, i agree it could be critical, here is the detail of what they are set for(1746-NI16I class 3 module is being used):

Inlet Pressure PID Loop: The PV for this loop is connected with I:10.2 which is bing scaled and gets stored into N7 element(scaling parameters are: InputMin= 3277, InputMax=16383, ScaleMin=0, ScaledMax=16383)

Outlet Pressure PID Loop: The PV for this loop is connected with I:10.7 which is bing scaled and gets stored into N7 element(scaling parameters are: InputMin= 3277, InputMax=16383, ScaleMin=0, ScaledMax=16383).

next ... the PIDs in an SLC system will always send out values which range from “0 to 16383” as their CV (output) signals ... if the field device is NOT set up to accept this range (for example: an analog output module might require a range from “6242 to 31208”) then you should have something like an SCP to scale the CV signal before it is presented to the output module’s address ...


1746-NO8I card is being used for analog outputs. For the CV of the PIDs, as i mentioned already, the CVs for these two loops (inlet and outlet) goes into Master Controller, which selected the lowes one out of them. After slecting the lowest select, it operates on its two outputs: Speed first and Recyle valve second. Now the outputs from the Master controller goes through some scalling before acting upon the physical outputs, here are the details for them:

Speed: speed gets scaled twice before operating physically on the output. First Scaling is as follows: output from the Master Controller gets stored into another N7 element after scaling(input Min = 0, InputMax=100, ScaleMin=MinLoadPercent, ScaleMax=MaxLoadPercent) where as MinLoadPercent and MaxLoadPercent used a "CPT" insturction to calculate the follwoing:

MinLoadPercent = (Minimum RPM-700)|5.02 and
MaxLoadPercent = (Maximum RPM-700)|5.02

The stored results of the above scaling gets scaled again with the following parameters before gets on to physical output. The scaling parameters for second scaling is (input Min = 0, InputMax=100, ScaledMin = 0, ScaedMax = 16383)

Recyle Valve: Recyling valve output gets scaled once before sent out to the physical output. Here is the parameters (InputMin = 0, inputMax = 100, ScaledMin = 0, ScaledMax=16383)


in your earlier post you mentioned that you have the PID’s “Limit output CV” set for “Yes” ... have you been able to nail down the “limit” values? ... and are you certain that those limits are required? ... in many cases, (but certainly not all) limiting the CV can cause problems ... particularly if the limits are very restrictive ... basic idea: the PID wants to stomp on the gas pedal and rev the engine on the school bus ... but the governor keeps the bus from going any faster than 45 mph ... now if your system NEEDS the limits then by all means use them ... just be aware that if the PID output (CV) seems to “run into a brick wall” and stay steady when it needs to go either higher or lower, then the limits might be restricting its ability to control the system ...


Limit Output CV is set to "YES", i am not certain why it is set to yes, and the limit values i guess would be between 0 to 100% if i am not wrong. If you suggest, i can set it to "NO".

general basic truth: in many (most?) cases where a PID cannot be adequately tuned (by adjusting the Kc, Ti, and Td settings), the root of the problem lies in the setup of the PID and not in the tuning values themselves ... the biggest culprits are “timing” issues and “scaling” issues ...

The loop update time for both inlet and outlet pressure loops is set to 0.02.

finally ... once you get to the job site, is there a chance that you can post that .RSS file? ... unless we can take a look at that, a lot of our advice is going to be along the lines of “well-it-could-be-this-or-it-could-be-that” ... we’ll try to help as much as we can, but the more we know, the more we can help ...


Ron, i would try my best to do that once i get to the site. but i am not sure how would it be possible, because the site is very remote and there is no access to the internet, there might be some dial up but no high speed, so i will see what i can about it........Finally ijust got a confirmation i am flying tommorrow there so please i hope, if my luck is good, you will read my comments and might be able to suggest me where to start from.

good luck with your project ...

Thanks a lot
 
There is a Master Controller PID in the program, who has two inputs: Input 1....

novel,

To make sure after the above comment, there may indeed be a "Master Controller" with two inputs and two outputs, but you can bet your last dollar that it is NOT a single PID in a SLC 5/04. The question is, WHAT is this master controller? Is it some program logic that directs the two pressure inputs into two different PID blocks, depending on variable conditions? Your problem could be that this Master Controller is not implemented correctly.

The few times I have worked with shifting control from one PID to another in mid-stream, it was very dicey, complicated, and not easy to get right.
 
sorry guys, i thought i made this point clear, but anyway, master controller is a program logic that takes outputs of two pid loops and operates with two outputs i-e speed and recycle valve. It is not like a pid loop, it doesn't have any tunning parameters at all. It just takes two inputs , do the low select using split range and operates two outputs. Hope it clears........

Ron still waiting for your comments further to my comments....
 
Greetings plcnovel,

I'm not sure whether your last post was written before or after your phone call last night ... I've watched my e-mails today for your program file but nothing has come through ... as I said, I'm teaching all this week - and for the next two weeks in a row - so I have almost zero time to help with your project ... hopefully you'll be able to post your file on the forum so that someone else can give you a hand ... it's pretty much impossible to go further without a copy of the program to review ... also, were you able to set up a trend? ... it would help if we had some type of graphic information to analyze your tuning problem ... this post might help with the setup if your version of RSLogix500 has the built in trend feature ...

I wish you the best of luck with your project ... sorry that I couldn't be more helpful ...
 
Hi Ron
Well thank you very much for your wonderful help you have given me. With that i was able to successfully tuned my pids and the process was working like a charm when i left the field.However i did find a problem, which is ofcoourse not the control or programming problem but the instrumentation problem. i have closely monitored the 4 to 20 mA signal that is being sent to the recylce valve, the signal was there but it just the valve didn't want to bleed off some pressure. (in other words, the valve doesn't open as soon as the signal is there, it opens after some delay lets say after 30 seconds from when the signal is sent).

In the mean while, another question, can i use my output card channel twice in my logic? Lets say the recycle valve is attached to channel 2 of the card, and is being controlled by an address N7:x, can i make the same output channel controlled with some different set of conditions and element? Thanks in advance
 
How to Program Temeprature control using PID?

e have a TMT system for our steel plant.
TMT stands for thermomechanical treatment system. It is a water cooling system for cooling the steel rods. The steel rods will pass through the TMT in milliseconds. I have to control the outlet temperature of steel rods coming out of TMT using water cooling.
Inputs available:
1. Input temperature(4-20mA) of steel rod before TMT (Pyromter input)
2. outlet temperature(4-20mA) of steel rod before TMT (pyrometer input)
3. Flow rate (4-20mA) from magnetic flowmeter
4. Pressure sensor input
Analog Output
1. Flow rate control using 4-20mA input to flow meter

I have to program TMT in such way that outlet of TMT should be maintanied at 250 degree C by controlling the flow.
Please provide some tips to program the TMT.
Can I use PID control for this purpose?
How can i implement PID control in s7 300?
I have no hardware PID controller. I have to create a software PID controller.
Please provide some tips to program the PLC
 

Similar Topics

A quick question: How many slaves can be supported by SLC 5/05 modbus master configuration? I am using CH0 RS-232 port.
Replies
11
Views
2,819
Hi everyone I received a lot of help the last time I was on and hopefully someone can help me out here. I am working with a SLC 500, 1747-L524 on...
Replies
7
Views
3,146
:) I have a 8 digit number that will work as a password in any slc-500 I also think it will let you get into the plc5. What would this number be...
Replies
7
Views
3,188
I'm trying to read/write to an SLC5 with a ControlLogix L71 V35 plc that fails. The exact same code works on an L82S with V32. Is there a known...
Replies
9
Views
73
I'm ashamed to admit this but I've never had to replace a battery in a SLC. Some how been able to skip that task in all my years. So yesterday...
Replies
8
Views
209
Back
Top Bottom