RSLogix 500 PID Help

naegely

Member
Join Date
May 2008
Location
Florida
Posts
93
I am fairly familiar with RSlogix 500, though not an expert with PID loops. I am revising a program for one of our vessels that uses a steam HX and a chilled water HX to control product temperature (product is heated indirectly via circulation of water through vessel jacket).

The current control scheme uses 2 PID blocks, one for cooling and one for heating. My concern is each has a trigger on the rung, i.e, when B3:11/7 is energized, the heating PID is enabled. When B3:11/9 is energized, the cooling PID is enabled. The heating and cooling bits are energized depending on whether heating or cooling is required, but never both at the same time.

I have read that there should never be a condition on a PID rung, as data is updated only when enabled.

Here are my 2 questions:

1.)With the condition on the rung, when the rung goes false to true, wouldn't the relevant PID data update almost instantaneously (within a few scans)? How big is the danger of operating this way? Please note that I have not been able to observe operation of the system, as it has been out of service due to unrelated issues.

2.)If I want to remove the conditions from the rungs, is it as simple as using the existing bits to switch the PID block status from Auto to Manual. For example, if my control block is N9:0, can I just have a rung that says XIO B3:11/7 OTE N9:0/1 for the heating PID? When in manual, does the output automatically go to zero, or do I have to move that value there?

Thanks very much for any help.
 
Greetings naegely ...



and welcome to the forum ...



unfortunately I don’t have time to go into much detail today - but a related post that I wrote a few years ago might be helpful to you ...



http://www.plctalk.net/qanda/showthread.php?p=105266&postcount=27



you might start with that ... if you still have questions, I’ll try to write more in a day or so ...



I have read that there should never be a condition on a PID rung ...



you’re obviously talking about PIDs in the RSLogix500 system ... even so, there are many cases where PIDs are successfully used in that type of system with conditions in the rung ... the idea is that the conditions aren’t really “triggers” that repeatedly tell the PID “execute now - execute now - execute now” every half second or so ... instead they might be more accurately called “enables” that tell the PID “I want you to control for awhile - or not” ... as such, they might be left ON for several hours - or even days - before being turned OFF ...



as I said, the PID might work OK being turned ON or OFF for these longer periods - but it probably would NOT give good results if the rung condition is constantly being toggled between TRUE and FALSE ...



even so, most experienced RSLogix500 programmers avoid conditioning their PID rungs ... (note that in contrast, with RSLogix5 the rungs often/usually ARE conditioned with toggling “triggers”) ...


now to your questions ...

With the condition on the rung, when the rung goes false to true, wouldn't the relevant PID data update almost instantaneously (within a few scans)?



not if the Integral action is set for a “slow” reaction ... in that case, it might take quite awhile (many minutes) for the PID to “catch back up” to a reasonable output value ... basically, in this RSLogix500 type of system when the PID rung is executed with FALSE logic, the Integral action is reset all the way back to zero ...



How big is the danger of operating this way?



“danger” might be too strong a word in this case ... let’s just say that once your PID rung has just become “enabled” with a TRUE condition, it might take quite awhile for the Integral action to “ramp up” enough to get the system back on target ... the post that I linked above should offer some insight into what might happen ... if the delay in bringing the Integral action back into play is acceptable, then it might be OK to “enable” and then “disable” the PID depending on whether it is needed or not ...


When in manual, does the output automatically go to zero, or do I have to move that value there?



with the RSLogix500 system you have to move the desired output value - whether it’s zero - or something else ... specifically, the PID (in RSLogix500) will not drive/affect/control the output at all while in the Manual mode ...

usually this “driving of the output in manual mode” is done with a MOV (Move) command that takes the operator’s input setting (properly scaled of course) and moves it to the CV location ... or an SCP can be used to move the operator’s input setting and scale it all in one operation ...



I hope this helps - but if I haven’t fully answered your questions, you might consider posting your .RSS program file ... the more detail we have, the more help we can offer ...



(Note to future readers: the PID being discussed here is for an SLC-500 system - using RSLogix500 ... there are MAJOR differences between setting up PID control for this type of system and the PLC-5 and ControlLogix platforms ... one size does NOT fit all) ...
 
Last edited:
This same question as been asked in the last few months

I would use just one PID. I would NEVER switch the inputs like you suggest for the reasons given. You can use the control output of the one PID into two outputs by using a SCP function for the heat and the other for the cools. Set the bias for half way in the range. When the control output is above half way the SCP for the heat will generate an output. When the control output is below half way the cool SCP will generate an output. The SCPs output the minimum value ( OFF ) when they are out of range. The will be a difference in gains between the heat and the cool ranges. This can be handled in one of the SCP blocks.
 
I have several vessels like you describe, I always use two PID loops. One for cooling, and one for heating. In my case heating line is 2", cooling line is 10", same tuning doesn't work for both.

Use the "cooling" and "heating" bits to move the pid output to the valves or move zero.

If cooling called for move cooling PID output to Cooling control vavle output.
If cooling not called for move zero to control valve output.


Ken
 

Similar Topics

Hi, Long time not in the forum, and not in the programming. I´m getting back. I was issued a conversion from RSLogix 500 to RSLogix 5000 (studio...
Replies
0
Views
1,277
I have 3 valves that I need to open for 1 minute every 30 minutes, but not all at the same time. I have one TON timer (Start Blowdowns Timer)...
Replies
15
Views
4,583
Hi good people I have a question regarding a program on a machines heater control, I have 3 x heater contactor controlled via a plc It looks...
Replies
5
Views
1,757
Hello All, This forum has been of great help for me As i mentioned in my earlier posts that I am a learner so pardon me if I ask silly questions...
Replies
9
Views
3,173
I am attempting to use the PID instruction in RSLogix 500, with a Micrologix 1400 PLC. I have I:2.3 (4 - 20 mA) scaled for 0 to 10000, and stored...
Replies
7
Views
6,192
Back
Top Bottom