PID Loop Tuning--Bumpless Transfer


Thread Starter

Rob Schmidt

I've been working on a number of PID loops but have been caught up on the bumpless transfer feature of AB PLC-5. When I try to use a proportional-only controller, it offsets the output by changing the bias when changing from manual to automatic.

Firstly, is there a problem with the way the PID loop was programmed? I have seen on the list before some discussion regarding making the Set
Point follow the Process Variable when in manual.

Second, can anyone explain just what bumpless transfer is used for and why the bias isn't removed over time (ie it will never reach set point because it is permanantly offset).

Thanks in advance for your help. I'm sure I'll have more questions in the future :)

Rob Schmidt

Johan Bengtsson

I am not familiar with the exact implementation in AB PLC-5 but I think this is the answer anyway:

The bumples transfer algorithm used seems to be designed for use with PI or PID operation, ie you have to use the I part of the controller. When you have P only (or PD) you normally set the bias to get the normal error to be as small as possible, the I part of the controller is a way to make this automatically. In manual mode the bias (or I part output) is changed in a way
that when switched back to auto the output is unchanged and the I part then start to work to get rid ot the control error.

What you mention is a mode I have seen being called "bal" on some other systems.

Note: It is up to implementation if bias and I part output is the same or two different things, effectively the bias is never needed to be separate from I output since the I part of the controller will override the bias eventually anyway when this part of the controller is turned on.

/Johan Bengtsson

P&L, the Academy of Automation
Box 252, S-281 23 H{ssleholm SWEDEN
Tel: +46 451 49 460, Fax: +46 451 89 833
E-mail: [email protected]
I will try this one. First your explanation is slightly vague so I will assume a couple of things.

First of all bumpless transfer is used so that when you go from either automatic to manual or manual to automatic you do not upset the loop. For
instance if you had a manual value in an Integer file in the plc of 50% open and you were controlling in auto and controlling with the valve 75% open, without the manual setting tracking the actual auto output, when you
switched you would "bump" the process by closing the valve to 50%. For this reason you use the tieback value in AB plc with lines of code, you can have the tieback follow the CV while in auto. Then when in manual enter any value you like, but the initial switchover will be "bumpless".

You can have the setpoint track the PV when in manual so that the same thing occurs when going back to auto, you will switch over with an initial
setpoint that is the same as the current "manual" pv, thus you are "bumpless".

Secondly a P only controller will always have an offset and this is where I am not clear about your use of the word BIAS (I assume bias is the offset bias you can add to a loop. P controllers always have an offset from setpoint which is the reason to add integral to bring this error back to SP. If I misunderstood this part of the question forgive me.

Lastly how is the PID programmed, can you send a copy of the code. I have found that there are a lot of AB PLC PID's programmed incorrectly. I have
roughtly 100-150 controllers running fine in AB, but I will say it took some tweaking to learn the best way to implement them.

Dave Ferguson
Blandin Paper Company
DAVCO Automation
Champion International

Bumpless transfer and bias/offset are different issues. I don't often work with PLCs, so I don't claim to know how AB PLC-5 handles each issue.

Bumpless transfer means there is no controller induced bump to the process when the control mode is changed. Manual-Auto is one kind of mode transfer. There are others such as making or breaking a cascade arrangement or switching controller algorithms (often accomplished with DDC mode) as between PID and some other algorithm like DMC or fuzzy logic. Another kind of transfer occurs with override
controllers, but the problem may be handled a bit differently. Making the SP track PV is one way to avoid a bump when switching from Manual to Auto. However, the SP may be at the wrong value. So you must understand how the process will be ramped to the new value. Just dialing in a new value for the SP could induce the bump you were trying to avoid. Other techniques that can be applied to create a bumpless transfer include output tracking and integral tracking when there is an integral term in the controller.

Offset is a result of P-only control. I could explain it mathematically, but I think it is easier to understand with an example. Imagine an air conditioner running in a house (we don't
often use heaters here in Texas) with P-only control. Say that under normal conditions it is 85 DegF outside and you want it to be 72 DegF
inside. In order to achieve that degree of cooling, the air conditioner is running at 50% (ie the bias and therefore the controller output is 50%). A heat wave comes along and now it is 100 DegF outside. Obviously the air conditioner needs to run more than 50%. The temperature in the house rises and the output increases proportionately (P-only control). But the output is not proportional to the SP or the PV, it is proportional to the difference between them. When the difference is 0, the controller output will be 50% by definition, because that is the bias. Now hopefully you see the problem. The controller responds by increasing its output as the inside temperature rises. This causes the inside temperature (PV) to fall back towards SP. As the PV is brought down towards SP (which is
still at 72), the controller output moves back down towards 50%. The PV can never reach the setpoint at the new load (load being the external temperature in this example) unless the bias is changed.

Integral action (the I in PID) is what eliminates offset in a PID controller. You can apply the same logic to SP changes or a load change in the opposite direction. Reducing the SP when the load doesn't change, is the same as increasing the load. Increasing the SP or reducing the external temperature would result in an offset, but in the other direction.

Hope this helps.


Lou Heavner
Emerson Performance Solutions

There are 2 scenarios to consider.

1) You are in automatic and are about to transfer to manual. What bumpless transfer does is force the manual output to track the output of the automatic controller (can be done by setting bias equal to controller output when controller switched from automatic to manual). If no disturbances occur after the switch to manual, then the PV will not change.

2) You are in manual and want to switch to automatic. If the PV is not equal to the set point , then switching to automatic will result in an immediate "bump" to the controller output due to proportional action. To avoid this the operator can either
i) adjust the set point to the current value of the PV, switch to auto and slowly change the set point.
ii) slowly adjust the controller output until the PV equals the current set point, then switch to automatic.
iii) use set point tracking while in manual. This features forces the current set point to track the PV while in manual such that when the switch to automatic occurs, no proportional bump will occur.

Len Klochek
Seneca College

Campbell, Kevin (IndSys, GEFanuc, TCP)

Bumpless transfer is used to avoid a large overshoot when switching from manual to automatic. This is often implemented is by adjusting the accumulated integral value to compensate for the difference between the current manual output versus the PID calculated output. This way when you switch back to automatic there will not be a large change in the output from
the PID. This offset will be dissipated by the integral term in the equation. With this type of implementation, Bumpless Transfer will not function for proportional-only control.

Kevin Campbell
Dafergus wrote:
> Lastly how is the PID programmed, can you send a copy of the code. I have
> found that there are a lot of AB PLC PID's programmed incorrectly. I have
> roughtly 100-150 controllers running fine in AB, but I will say it took some
> tweaking to learn the best way to implement them.


How about sharing some of these tweaks. It might enlighten more than just me.


Andy [email protected]___

Advanced Control Technology Club, Industrial Systems and Control Ltd.,
50 George Street, Glasgow, G1 1QE Tel: (+44) 0141 553 1111 Fax: (+44) 0141 553 1232

Félix Blanco


In a flow control loop, I forced the output of the controller to track the valve position feedback (%), so the PV could be around SP and the transition to automatic mode could be "soft", since the Operator knows how to adjust the valve in manual. In that case the controller has the ability to override the Integral term (integral and output tracking). It worked fine.

Félix Blanco
When operating the output of the PID in manual, move your desired output value to the PID .SO and .TI locations, and OTL the .SWM bit. When you are finished with manual, OTU the .SWM bit and the PID will then proceed from your manual setting towards its automatic destination.