The PID loop is almost certainly performing exactly as it was designed and programmed to do. PLCs care not a whit what you
want them to do or
think they
should do, but they will mercilessly and inexorably do
exactly what you
tell them to do.
TL;DR
Here is how PID functions:
https://literature.rockwellautomation.com/idc/groups/literature/documents/wp/logix-wp008_-en-p.pdf
In a PLC, which is a digital device, that algorithm is applied every PID update.
Look at the "velocity" form of the PID equation.
When the temperature is rising but is still below setpoint, the error term is decreasing but still positive. On
each PID update
- The decreasing error will produce a negative Proportional (P) contribution to the change per update that is proportional to the slope of the error i.e. temperature vs. time, so this contribution per update is probably fairly steady, though decreasing, over time, i.e. with the error.
- The positive error will produce a positive Integral (I) contribution to the change per update that is proportional to the magnitude of the error, so this contribution per update is decreasing over time.
When the furnace is started it is very cold, the error is large and positive, and so the integral terms accumulate and drive the valve to 100%, which is what you see.
The implemented PID algorithm probably has "anti-windup reset" (or "anti-reset windup"), which simply means that on each PID update, after it calculates CV
n from CV
n-1 and the other parameters, if that calculated CV
n is greater than 100%, it is adjusted (reset) to 100%, which becomes the CV
n-1 (starting point) for the next update.
Since CV
n-1 is 100% at the start of each update, as long as the
per-update I term is more positive than the
per-update P term is negative, CV
n will be calculated greater than, and subsequently reset to, 100% on each PID update.
So the behavior you are seeing, where CV
n does not go below 100% until 978°C, means that at that temperature is the first time that the
per-update P term is more negative than the
per-update I term is positive, which speaks to the relationship (i.e. ratio) between the rate of change of error at that point and the PID update time, which ratio could be probably be calculated from the PID tuning parameters (PB%, I(repeats per minute?), and update time).