Temperature Control using Ladder Logic


Thread Starter

Hellen Anderson

Hi all,
I ask your advice for best methods for temperature control using Hitachi H250 series PLC with thermocouple Input module. I need about +/- one degree C accuracy (range 200 C. Simple On/Off logic will not be good enough. I am thinking of a system where I take the difference between a setpoint temp and the actual temperature and using that value to control a timer in such a way as to give best accuracy and response times - any idea's will be most appreciated. I would like to use a new PID temperature control module but cannot get one for this PLC?
thanks - contact me at [email protected]
On Fri, Sep 28, 2001 at 10:44:40AM -0400, Hellen Anderson <[email protected]> wrote:
> ... I am thinking of a system where I take the difference between a
> setpoint temp and the actual temperature and using that value to control a
> timer in such a way as to give best accuracy and response times - any

I don't have any ladder code to offer, but a few ;) thoughts on implementing simple controllers in general. If the PLC language supports basic arithmetic operations, this should be applicable to most any PLC or other automation controller.

If you arrange a calculation to produce an output effect proportional to the error (as you describe), then you'll have implemented the P part of PID. Take the difference between input and setpoint, and divide or multiply by a constant
(the gain) for tuning the system. Note that when the error is zero this P term will be zero; depending on what sort of output device your're driving, it may be useful to add a fixed
bias value to set the zero-error output. So,

output = (input - setpoint) * gain + bias

is a basic P controller.

Each of the above terms has units of output, and the gain has units of output/input: if input is temperature and output is, say, time in seconds, then the gain (as shown) will have units of seconds/degrees.

I don't think you said what the actual ouput actuator is; Ill assume it's an electric heating element which can be turned on/off rapidly and often. In this case, the proportional output signal could be mapped to a timer (as you describe) to operate the output heater for an amount of time proportional to the error. This timer can then be reset to run every so often, i.e., by another timebase timer. Your process and the nature of the output devices would determine what timebase to use. The output timer max (useful) time would be equal to the timebase.

For example, if the output timebase is 100 seconds, then the output timer can vary from 0 to 100 seconds for 0 to 100% of heating effect.

> idea's will be most appreciated. I would like to use a new PID temperature
> control module but cannot get one for this PLC?

Beyond basic P control, integral (I) can be useful to drive the error to zero over a period of time. One way to do this is to arrange another P calculation which also factors in time
to nudge the bias value up/down in response to the error, e.g.,

bias = bias + ((input - setpoint) * gain * scantime / itime)

where scantime and itime (the integral gain) are in units of time, and scantime reflects how often the calculation is run.

If you do this, however, it is important to limit the bias to avoid windup, i.e., having the value grow very large or small.

The D term is frequently more difficult to apply well, and might be best ignored. However, it may be useful if the process duty cycle timebase is very large, if there's a significant amount of
inertia in the process, etc. A simple way to apply derivative effect is to pre-process the input process value to apply an offset proportional to the rate of change of the input (or of the error; see some of the recent discussions on this point). This "bogus" input value can then be used in lieu of the real
value for the P term. The effect is to fool the controller into thinking the input is already higher/lower than it really is, due to it's heading (rapidly) in that direction. To do this
(beware, though, of a number of snags):

doffset = (lastinput - input) * dtime / scantime

then add doffset to the actual input value in the P calculation. Again, this is a pretty simplistic derivative calculation, and more attention to detail may well be called for.

These things are best tackled in order: 1) get the simple P controller working and stable; 2) set/adjust the bias to give a workable error offset; 3) implement I to automate driving
the error to zero; 4) don't forget some antiwindup measure; 5) try applying D if you feel adventurous.

Sorry for the length of this, but this is my basic seat of the pants take on PID. The important aspects to me are to see the real meaning of the various tuning parameters, the gain, itime and dtime, so that these can be applied and understood rationally in light of the process characteristics.

FWIW, I prefer to use the inverse of gain, and call it upb, for "unit proportional band". This reflects the common industry usage of proportional band to refer to the entire available
span of the output, whereas in this case there's no such intrinsic span, so a unit of output is used instead. In the above example case, the upb would be in units of seconds/degree.

Oh, one more detail is that the sign of the gain determines whether the controller is "direct" or "reverse" acting.


Ken Irving <[email protected]>

John Paley--Graphic Pkg Corp

Good Luck---

We implemented a PLC based version of temp control on an extrusion laminator. 6 Barrel zones, 8 feedpipe zones, and 5 die zones. We used the PLC 5/20 for this project and utilized the standard ladder PID instruction. It was (is) a nightmare. The trouble with extruders is that there is so much stored heat--not to mention the process generated heat in the barrel zones from the grinding and mixing of the resin. We had a horrible time with the barrel zones and finally introduced feed-forward control in conjunction with the PID's. Feed forward anticipates or senses an event (starting the screw) and plugs a given value into the PID output, that allows the very sluggishly tuned PID loop to stay somewhat in control. Extruders are just a hard nut to crack when it comes to temperature control. Eurotherm has been doing a good job of it for years, and now allen bradley has a "Temperature Control Module" that goes in the 1771 chassis.

We installed that equipment on our second laminator a few years after the first. (we took eurotherm off of the second machine because of support issues). The TCM's worked great--no muss,no fuss. They are designed for extruder barrels and even have a selection for inner or outer barrel zone and an autotune feature. We had anticipated trouble before the job and charted the "cold start" of the six barrels with the eurotherm equipment. Then we charted them again after the job and the a-b stuff had less heatup overshoot than the eurotherms. And there are no line startup surges or bumps. It's just good stuff. I think there's a SLC version of the module too, but I have not used it.

I hope this helps, as I know it's not what you plan to do. I just wanted to relate our experience to you so you won't be suprised--I don't know how much you have played with extruder temp control--I hope your's won't be as finnickey as ours were. I would be interested to know how the project turns out. Good Luck.

j paley
[email protected]

If the Hitachi has a simple PID block performing the time porportioning output for an extruder output is relatively simple I can send you the ladder from a slc controller to see how its done. I do extruder control all the time, the cool output can be done as well although I make no recommendations as to the quiality of the PID loop in the Hitachi


[email protected]
Above suggestions are approach to regulate temperature. None refer to ± 1°C.
The combined errors (linearisation, T/C, line ...) account for more than ± 1°C.
You must state the operating temperature and loop components (type T/C,...)


Johan Bengtsson

Ken Irving's explanation is a good one, I just want to point out that if you implement the full PID controller as it is described below you will get a "serial" PID controller. There is nothing wrong with that but a lot of the modern tuning methods are targeting the "ideal" or "parallel"
controller, and if those are used you will not get the expected result if you don't recalculate the parameters before entering them.

In an "ideal" controller the doffset as it is calculated below multiplied with the gain should be added directly to the output. (ie the I part should act on error * gain instead of the modified error). As I said, both versions work, but with different parameters. If you don't implement the D part you can forget about this.

/Johan Bengtsson

P&L, Innovation in training
Box 252, S-281 23 H{ssleholm SWEDEN
Tel: +46 451 49 460, Fax: +46 451 89 833
E-mail: [email protected]
Internet: http://www.pol.se/