Setpoints and Firing Curves

A target is the desired value for a PV which is part of the process database. A setpoint is a reference value used by a loop controller which is exerting control over the process (or some portion of the process) in order to make its monitored feedback PV match the reference. Thus all PVs may have target values; some of the targets will also be used as control loop setpoints.

The collection of target and setpoint values for the entire set of PVs for a given kiln is referred to as a firing curve. Each firing curve is a complete specification of a particular kiln condition, including profiles for temperature, pressure, dilution air, afterburners, etc. Firing curves can be saved and recalled so that the kiln behavior can be easily changed, and pre-defined conditions and procedures can be easily and exactly reproduced.

Firing curves for Continuous kilns specify values for setpoints to be achieved simultaneously at all regions of the kiln; these values will be experienced as a time sequence by ware moving through the kiln. For Periodic Kilns this is achieved by describing the time/temperature evolution as a series of ramp and soak segments with defined endpoints and durations, applied to then entire kiln and its contents.

For a Continuous/Single Profile kiln, when an existing recipe is recalled and made active, the new recipe's targets become the current targets. Those targets which are used as setpoints for loop controllers are automatically sent to their PLCs, becoming the new active setpoints. Thus, for example, all burner zones are simultaneously provided with new temperature setpoints to implement a new firing curve.

The Continuous/Multipro system employs the same recipe architecture as for a single-profile kiln, but the actual setpoints for the kiln are synthesized as an ideal firing curve for the kiln as a whole based on the (differing) recipe requirements of each car within the kiln, and also as a function of the current push rate. This calculation process is repeated once a minute, evolving the firing curve to match the car positions and firing requirements as cars progress through the kiln during each push cycle; updated setpoints are downloaded to the loop controller(s) for all firing zones.

The collection of setpoints and targets for all PVs, defining one recipe or firing curve, is defined identically for all types of continuous kilns (Multipro and single-profile, including roller-hearth kilns). Each recipe consists of setpoint values for each PV at four push rates or throughputs. The user-supplied rates are intended to cover the lowest-to-highest range of anticipated throughputs. Roller-hearth kilns are treated identically to pusher kilns, with the difference that the throughput is specified as a belt speed expressed in feet/minute instead of a push rate expressed in cars/day, and a roller-hearth has no car-related data structures.

The ability to specify different setpoint values at different throughputs allows the firing temperature to be decreased as the kiln is slowed down, or increased as the kiln is speeded up. A single firing curve requires different amounts of heat-treat at different throughputs, and KILTEL's unique recipe formalism both fosters analytic thinking about the variation of desired temperatures with throughput, as well as automatically performs all required setpoint corrections when the throughput is changed. If a setpoint should not vary with throughput, a single constant value can be entered for each of the four fixed throughputs.

Starting from Operations on the Main Menu, select Edit Firing Curve and then select a continuous kiln. The resulting edit dialog (with a firing curve on display) is as follows:

The top pane shows a graphic representation of those PVs associated with the CROWNS profile plot for this kiln; what is plotted is the desired setpoint for each such PV, vs. that PV's position along the kiln. There are 4 such curves, each representing the same firing curve, but at a different throughput. Note that PVs are included in the setpoints list only if they have the "has a target or setpoint" box checked in their setup dialog.

The underlying setpoint values are shown in the table in the lower pane. The PVs are listed in position-order starting from the kiln entrance, and each line shows a PV's label, signal type, position, and then four values corresponding to the desired setpoints at each of the throughputs shown at the top of the values columns, in this example labelled "cars/day". The "cars/day" label is itself a button, and clicking on it will allow the column header values to be edited. Clicking the mouse on any line allows the setpoint values for that PV to be edited,

When the firing curve has been fully specified, it can be saved for later recall. New firing curves can easily be evolved from existing curves by recalling an existing file into the editor, modifying it, and then resaving under a new name.

Note for brick kilns: The KILTEL program provides full support for flashing in conjunction with firing, but each kiln's flash settings are independent of its firing curve, so that flashing may be enabled or disabled in conjunction with any firing curve. See the separate discussion of flashing.

A firing curve for a periodic kiln consists of a sequence of values representing the setpoint (for one or more control loops) as a function of time during the run. The values are specified within the KILTEL program as a set of straight-line segments, each defined by a beginning and an ending setpoint value, as well as a duration. The operating setpoint is continuously calculated at each point in time during the kiln run, by linear interpolation between the (time 1, setpoint 1) and (time 2, setpoint 2) endpoints for the segment being executed. A collection of segments is called a segment table; each segment table may have up to 20 segments.

A segment may have identical starting and ending setpoints, implying no change in setpoint value over the duration of the segment, and such a segment is called a soak; similarly, segments with unequal endpoint setpoints are ramps, and will result in a smooth linear variation from setpoint 1 to setpoint 2 (either increasing or decreasing), with a ramp rate over the course of the segment given by the overall setpoint difference divided by the segment duration (ie, "degrees per hour"). Since segments are executed "end to end", each segment's beginning setpoint value must be the same as the ending setpoint value for the preceding segment, and discontinuous jumps between segments are not allowed.

Each "firing curve" for a single overall run within the KILTEL program can have up to five segment tables. All tables being used in a given firing curve (at least one, or as many as five) follow the same run clock and are implemented in parallel during a run, but the segment tables are completely independent in all other respects, and there need not be any correlation -- of timing, setpoint values, or number of segments -- between different tables. Each segment table may be associated with one or more loop controllers, which are then unique to that segment table (ie, any loop controller's setpoints may be derived from only a single segment table, but one segment table may drive multiple loop controllers, which will all have the same setpoints).

Each overall firing curve always has at least one segment table, typically describing the evolution of temperature, with its setpoint output mapped to one or more temperature zone loop controllers. The use of additional segment tables is optional, but makes it easy to implement complex simultaneous multizone control schemes. As an example, separate segment tables may be defined for "Main Temperature", "Dilution Air", "Afterburner Temperature", "Draft Pressure" and so forth, for a kiln equipped with independent control elements for those features.

The management and evolution of segment table setpoints is driven by the KILTEL program as system supervisor, and all associated loop controllers are provided by KILTEL with updated setpoints on an ongoing basis throughout the run. This means that loop controllers used with the KILTEL system are only called upon to implement PID loop control functions, and need not have any internal stand-alone segment table capability (and if this capability is present, it will be ignored).

Each KILTEL firing curve can also manage multiple output events. An output event is a change in program logic, typically implemented physically by toggling the on/off status of an SSR output relay. Process events (ie, "Start Burner #6" or "Enable Cooling Mode") are PVs of type "Event". In order for an event to have its output programmed during a run, the event must already have been defined, and be associated with the periodic kiln; event PVs are set up from the PV Setup menu.

The firng curve editor is summoned from the main menu Operations submenu:

Once a periodic kiln has been selected from the list of defined data groups, the Editor window then shows the current firing curve for that kiln, if any. Separate panes within the Editor window show a graphical representation of (one of) the segment table(s), a list of defined segment tables, and a list of defined events which are to be included in the run logic.

Firing curve editing is wholly "off-line", separate from any runtime activities, and firing curves may be edited at any time, for any kiln, without interfering with current run activities. Existing firing curves may be accessed via the Read File button, and edited curves may be resaved under the same name, or saved as new files, using the Save button.

The segment table pane (lower left) shows those segment tables which have been defined as part of the firing curve. The summary information for each segment table includes the number of control loops which are fed by that segment table, the number of defined segments and their total elapsed runtime. Clicking on an existing segment table, or on a blank line in that pane, will bring up the segment table editor.

Each segment is defined by a segment time, a listed starting setpoint, and an ending setpoint which is the starting setpoint for the following segment. The KILTEL program computes and presents the cumulated total elapsed run time, and also the rate of change during each segment; segments with 0 rate are soaks. Segments are specified by clicking on the display line. Any two of the three (time, setpoint, rate) quanties may be input, and the third will be inferred, allowing segments to be specified by endpoint, duration or rate.

The right-hand pane shows PVs associated with the kiln. Checking a PV will link the PV to the selected segment table. In order for a loop controller to be linked to the segment table, its setpoint must be separately defined in the list of PVs. By this means it is easy to link multiple loop controllers to a segment table, simply by checking them on the list. Non-setpoint PVs which are checked in the link pane will be included in Profile Plots for the kiln, showing the values vs. time behavior during the course of the run.

The Guarantee Soaks feature may be enabled or disabled via its checkbox. When soaks are guaranteed, the run clock will be suspended during the execution of a run if the actual temperature fails to achieve the commanded value at the start of any soak segment; the hold will be maintained, with all loops continuing their soak-value setpoints, until the measured temperature catches up, at which point the run clock will resume timing as of the beginning of that soak segment. The associated soak tolerance parameter specifies how closely the kiln must match the soak value before going into hold mode.