it is contemplated that the heater control system of the present disclosure can be used in any food service equipment for distribution of power to multiple loads . however , by way of example and completeness of description , the heater control system will be described herein for a food holding cabinet . referring to fig1 - 4 , a food holding cabinet 70 of the present disclosure comprises a base 72 , a first outer side panel 74 , a second outer side panel 76 and an outer top panel 78 . a first inner side panel 80 and a second inner side panel 82 are spaced from first outer side panel 74 and second outer side panel 76 by gaps 88 and 90 , respectively ( shown in fig2 ). outer top panel 78 is spaced from an inner top panel 84 by a gap 86 . a user interface 92 , a time query button 64 and a temperature query button 65 are disposed on a front panel 94 ( shown in fig1 ). referring also to fig5 , a plurality of row assemblies 100 , 102 , 104 , 106 , 108 and 110 are supported by first inner side panel 80 and second inner side panel 82 . each row assembly , e . g ., row assembly 102 , comprises an upper heater assembly 111 and a lower heater assembly 113 ( shown in fig5 ). upper heater assembly 111 and lower heater assembly 113 each comprises an upper heater plate 112 and a lower heater plate 114 , respectively . upper heater plate 112 and lower heater plate 114 are supported by a pair of spacer side rails 116 and 118 ( shown in fig3 and 4 ). spacer side rails 116 and 118 are attached to upper heater plate 112 by any suitable fastener , for example set screws 302 ( shown in fig3 ) and to lower heater plate 114 by similar set screws ( not shown ). spacer side rails 116 and 118 are also attached to first and second inner side panels 80 and 82 by screws ( not shown ) in top and bottom of spacer side rails 116 and 118 . spacer side rails 116 and 118 each include an upper slot 120 and a lower slot 122 that extend from front to back . opposite side edges of upper heating plate 112 fit into upper slots 120 of spacer side rails 116 and 118 ( shown in fig6 ). opposite side edges of lower heating plate 114 fit into lower slots 122 of spacer side rails 116 and 118 ( shown in fig4 ). as shown in fig2 , inner top panel 84 is spaced by a gap 96 from a panel 95 , which is spaced by a gap 98 from top heater in row 100 . upper heater assembly 111 further comprises , e . g ., a vulcanized heater 124 , although other types of heaters may be used . vulcanized heater 124 , for example , may be obtained from watlow company . heater 124 is disposed on the upper surface of heater plate 112 and carries a temperature sensor 126 . temperature sensor 126 may be any suitable temperature sensor and , preferably , may be a resistor temperature device ( rtd ), also available from watlow company . lower heater assembly 113 further comprises a similar vulcanized heater ( not shown ) that is disposed on the lower surface of lower heater plate 114 and that carries a temperature sensor ( not shown ). upper and lower slots 120 and 122 are spaced to provide a gap or cavity 128 to permit the insertion of a food tray . upper and lower heater plates 112 and 114 may be any suitable material that transfers heat from the vulcanized heaters 124 to cavity 128 . for example , upper and lower heater plates 112 and 114 may be formed of a metal , for example , aluminum , stainless steel , or other metals . a thermal insulation layer 130 is wrapped around row assembly 102 and spacer side rails 116 and 118 . insulation layer 130 lowers any heat transfer from upper heater plate 112 of row assembly 102 to row assembly 100 and from lower heater plate 114 of row assembly 102 to row assembly 104 . a similar insulation layer 130 of row assemblies 100 and 104 further limits heat transfer from adjacent row assemblies 100 and 104 to row assembly 102 . row assemblies 106 , 108 and 110 are similarly wrapped with an insulation layer 130 to limit heat transfer to and from adjacent row assemblies . referring to fig1 , 3 , 5 and 6 , a bezel 132 and a bezel 133 are provided for each row assembly . bezel 132 for row assembly 102 covers a front edge of upper heater plate 112 of row assembly 102 and a front edge of lower heater plate 114 of row assembly 100 as shown in fig5 . bezel 132 for row assembly 104 covers a front edge of upper heater plate 112 of row assembly 104 and a front edge of lower heater plate 114 of row assembly 102 and so on for row assemblies 106 , 108 and 110 . bezel 132 for row assembly 100 covers only a front edge of the upper heater assembly 112 of row assembly 100 as row assembly 100 is the topmost row assembly . bezel 133 covers a back edge of upper heater plate 112 of row assembly 102 and , though not shown in the drawing , covers a front edge of lower heater plate 114 of row assembly 100 . bezel 133 is otherwise identical to bezel 132 . a bezel 133 is similarly provided for each of the other row assemblies . bezels 132 and 133 are attached to inner side panels 80 and 82 and to the row assemblies by a suitable fastener ( not shown ). referring to fig5 and 6 , bezel 132 comprises an elongated c - shaped body that has a display face 134 ( shown in fig6 ) and a pair of legs 136 and 138 . legs 136 and 138 have one or more portions or hooks 140 at their respective terminal ends . legs 136 and 138 and hooks 140 are dimensioned so that hooks 140 fit snugly into mating portions or slots 142 of lower heater plate 114 of row assembly 100 and upper heater plate 112 of row assembly 102 with a snap - in action . this provides an interlock that minimizes unsealed interfaces or provides a seal to heater plates 112 and 114 , thereby mitigating oil and / or grease migration . referring to fig3 and 6 , display face 134 comprises displays 144 , 146 and 148 and buttons 150 , 152 and 154 . displays 144 , 146 and 148 display information concerning food items placed in corresponding locations on lower heating plate 114 of a corresponding row assembly . buttons 150 , 152 and 154 are manually operable to activate and deactivate timers that control food hold times . buttons 150 , 152 and 154 also play a role in manual programming . bezel 132 also comprises side legs 164 . each side leg 164 includes an open portion 166 and a notch 168 . bezel 132 also provides a duct 160 for cooling air to flow and cool a component , for example , components disposed on a display control board 162 ( shown in fig5 ) for displays 144 , 146 and 148 . bezels 132 and 133 are formed of a suitable material , for example , plastic or metal . preferably , bezels 132 and 133 are composed of a plastic part and a molded in graphic overlay , which has a thermal conductivity lower than metal , although metallic bezels may be used in some embodiments . buttons 150 , 152 and 154 are attached to bezel 132 or 133 by any suitable fasteners , but are preferably heat staked in plastic bezels 132 and 133 . referring to fig1 and 7 , an electrical cord 71 connects heater controller 202 to an outlet plug 73 that provides alternating current ( ac ) power from an ac source 206 via an on / off switch 75 to a power module ( not shown ) that distributes operating power to various electrically operated components of food holding cabinet 70 that require ac power . the power module includes an ac to dc ( direct current ) converter ( not shown ) to provide dc power to those components that require dc operating power . pending the number of cabinet cavities , it is possible that the plurality of heater demands could exceed the branch circuit limitations to the cabinet ( for example , at morning cabinet start up and other unusually high load times ), thus tripping a circuit breaker , which , for example , is located in ac source 206 . ac source 206 also includes connections to the ac power grid to receive a suitable ac power , for example , 220 volts . ac source 206 is also connected to a circuit reference , shown as circuit ground 208 . referring to fig7 , upper heater controller 202 controls the application of ac power to the upper and lower heaters 124 of row assemblies 100 , 102 and 104 . lower heater controller 204 controls the application of ac power to the upper and lower heaters 124 of row assemblies 106 , 108 and 110 . upper heater controller 202 and lower controller 204 in all other respects are identical so that only upper heater controller 202 will be described in detail . upper heater controller 202 comprises a plurality of switches 210 and a plurality of heater assemblies 212 . heater assemblies 212 includes heaters 124 and temperature sensors 126 of row assemblies 100 , 102 and 104 . in fig7 , the upper heaters of row assemblies 100 , 102 and 104 are denoted by reference characters 124 t 1 , 124 t 2 and 124 t 3 , respectively . the lower heaters of row assemblies 100 , 102 and 104 are denoted by reference characters 124 b 1 , 124 b 2 and 124 b 3 , respectively . in fig7 , upper temperature sensors 126 of row assemblies 100 , 102 and 104 are denoted as 126 t 1 , 126 t 2 and 126 t 3 , respectively . lower temperature sensors 126 of row assemblies 100 , 102 and 104 are denoted as 126 b 1 , 126 b 2 and 126 b 3 , respectively . switches 210 include switches 210 t 1 , 210 b 1 , 210 t 2 , 210 b 2 , 210 t 3 and 210 b 3 that are connected in circuit with heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 , respectively . switches 210 t 1 , 210 b 1 , 210 t 2 , 210 b 2 , 210 t 3 and 210 b 3 may be any suitable switches that can handle the power used by cabinet 70 . preferably , switches 210 are thyristors that include three leads . for example , switch 210 b 3 comprises leads 214 , 216 and 218 . lead 218 is a control lead that when activated by a signal b 3 turns switch 210 b 3 on so that electrical current flows between leads 214 and 216 . that is , with on / off switch 75 in the on position and thyristor 210 b 3 turned on by signal b 3 , ac source 206 is connected in circuit with heater 124 b 3 . similarly , signals t 1 , b 1 , t 2 , b 2 and t 3 turn on switches 210 t 1 , 210 b 1 , 210 t 2 , 210 b 2 and 210 t 3 , respectively , to connect respective heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 and 124 t 3 in circuit with ac source 206 . temperature sensors 126 t 1 , 126 b 1 , 126 t 2 , 126 b 2 , 126 t 3 and 126 b 3 are connected in a circuit that provides currents st 1 , sb 1 , st 2 , sb 2 , st 3 and sb 3 that vary with the temperature of respective heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 . this current flow is derived from the ac power supplied by ac source 206 . for example , the current flow may suitably be dc current derived from an ac to dc converter ( not shown ). the two leads of each temperature sensor 126 t 1 , 126 b 1 , 126 t 2 , 126 b 2 , 126 t 3 and 126 b 3 are also connected as inputs to an analog to digital ( nd ) converter 220 . nd converter 220 provides output signals that are proportional to the current temperatures of the respective heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 based on currents st 1 , sb 1 , st 2 , sb 2 , st 3 and sb 3 ) to a computer 230 . computer 230 uses the current temperatures to determine an error or deviation from a set point temperature of each of the respective heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 . computer 230 , based on the errors , provides signals t 1 , b 1 , t 2 , b 2 , t 3 and b 3 to operate switches 210 to apply power as needed to restore the temperatures of the respective heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 to the set point temperatures . that is , temperature sensors 126 t 1 , 126 b 1 , 126 t 2 , 126 b 2 , 126 t 3 and 126 b 3 , a / d converter 220 , computer 230 and switches 210 t 1 , 210 b 1 , 210 t 2 , 210 b 2 and 210 t 3 are in a feedback loop to bring heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 to the predetermined temperatures and to maintain them there as they drift due to heater off time , loading changes , voltage changes at ac source 206 , and the like . referring to fig8 , computer 230 comprises a processor 232 , an input / output ( i / o ) unit 234 and a memory 236 that are interconnected via a bus 238 . memory 236 comprises a heater time multiplexing program 239 that includes a temperature measurement program 240 , a proportional integrator program 260 and a heat service program 280 . memory 236 also comprises a heater mask 228 that is used as a tool to time multiplex the heater on times . memory 236 further comprises other programs ( not shown ), such as an operating system , utility programs , maintenance programs , and the like . i / o unit 234 interfaces with input and output devices . for example , the outputs of nd converter 220 are inputs to i / o unit 234 and the output signals t 1 , b 1 , t 2 , b 2 , t 3 and b 3 are output signals that issue from i / o unit 234 to switches 210 . processor 232 executes heater time multiplexing program 239 . for example , processor 232 runs temperature measurement program 240 to provide temperature enable pulses at a temperature sampling rate or frequency via bus 238 and i / o unit 234 to a / d converter 220 . a / d converter 220 responds to the temperature enable pulses to provide digital values that correspond to the current temperatures of heaters 124 t 1 , 124 b 1 , 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 . these digital values are received by i / o unit 220 and supplied via bus 238 to processor 232 for use by temperature measurement program 240 . measurement program 240 , when executed by processor 232 processes the digital measurement values to provide corresponding current temperature values for use by proportional integrator program 260 . proportional integrator program 260 calculates requested heater on times for the heaters based on the current digital temperature values . heater service program 280 uses the calculated heater on times and heater mask 228 to time multiplex the ac power to the heaters . due to the multiplicity of loads ( the 12 heaters of food holding cabinet 70 ), the likelihood is high that the power draw from ac source 206 will exceed the rating of a typical 220 volts branch circuit of the power grid and trip a breaker during high peak demands , such as during start up of food holding cabinet 70 . heater controller 200 avoids excessive load during these peak demand times by modulating or time multiplexing the on and off times of the individual heaters to supply ac power to each heater such that maximum power draw from the restaurant branch circuit is limited to rated levels or below at any time . at the time of turning on / off switch 75 on , processor 232 executes a program ( not shown ) that executes typical power up routines . when the power up routines have been completed , processor 232 begins execution of heater service program 240 , temperature measurement program 260 and proportional integrator program 270 . referring to fig9 , temperature measurement program 240 at box 242 causes processor 232 to take a multi - point average of each rtd . that is , each rtd current is sampled at a plurality of time points to obtain a plurality of current values or temperature points during a sample period . the temperature points are averaged to yield an averaged multipoint value for each rtd . at box 244 , the averaged multipoint values are checked for a probe error that may be open or a short , i . e ., a failed probe . if a probe error is found , an error message is posted . at box 246 , the multipoint averaged rtd current values are stored . at box 248 , after a plurality of sample periods ( shown , e . g ., as four ) of the rtd multipoint averages of the sample periods are averaged and converted to temperature values . at box 250 , the temperature values yielded by box 248 are modified based on addition or subtraction of temperature off set values ( due to factory calibration of the rtds ) to calibrate the current temperature values . at box 252 , the calibrated temperature values are stored to memory 236 . referring to fig1 , proportional integrator program 260 at box 262 obtains the temperature values stored in memory 236 ( see box 252 in fig9 ). at box 264 the error for each heater is calculated by algebraically summing the set point temperature and the associated current temperature value . at box 266 if the error of a heater is greater than a reference difference , the requested heater on time is set based on a maximum duty cycle , which is a predetermined duty cycle m that is less than 100 %. at box 268 , if the error is less than the reference difference and all heaters have reached set point , the heater on time is calculated using the calculated error multiplied by a proportional gain term and a historical integrator term of n milliseconds . at box 270 the calculated heater on times are stored to memory 236 . referring to fig1 , heater service program 280 at box 282 obtains the current requested on times and error probes ( see box 270 of fig1 and box 246 of fig9 ). at box 283 heater service program 280 determines the number of heaters with a non - zero requested on time , the number of heaters with a probe error and the number of heaters that have reached set point temperature . at box 284 , heater service program 280 determines whether all heaters ( other than those with an probe error ) have reached their respective set point temperatures . if not , heater service program 280 at box 286 determines if x or more heaters ( other than those with a probe error ) of a maximum or total of y heaters have requested on time . if so , heater service program 280 at box 288 multiplexes the heater on times ( other than those with a probe error ) with heater mask 228 at the duty cycle m , which yields an on time pattern of the heaters in which x of the heaters are not all on at any one time . due to the power rating of ac source 206 , if more than x of the heaters are on at the same time , the breaker is likely to trip . if the determination of box 286 is that less than x heaters have requested on time at box 290 heater service program 280 ignores heater mask 228 and uses full on for each on time request ( other than those with a probe error ). that is , each of the heaters is operated at a 100 % duty cycle with no off time . if the determination of box 284 is that all the heaters ( other than those with a probe error ), have reached set point temperature , heater service program at box 292 enters a tight regulation mode in which all heaters that are requesting on time have an error within the reference difference . the heaters that are not requesting on time are turned off , i ., e ., their respective switch 210 is turned off . the activities represented by boxes 284 , 286 , 288 and 290 constitute a loose regulation or high peak demand mode in which the on times of the heaters are time multiplexed so that only x of the total of y heaters are on at the same time . for the illustrated embodiment , x = 4 and y = 6 for each heater controller 202 and 204 . the duty cycle is two thirds or 66 . 67 %. the period of each duty cycle for this embodiment is 300 milliseconds ( ms ), for which each heater is on for 200 ms and off for 100 ms . temperature samples are taken every 200 microseconds ( μs ). heater mask 228 is a tool that is used by heater service program 280 to limit the heaters serviced by each heater controller 202 and 204 to four out of six heaters being on at any time any one time in either the tight regulation mode or the loose regulation mode , except when the heater mask is ignored as at box 290 ( fig1 ) in the loose regulation mode . heater mask 228 comprises a bit position for each heater that it is used to control . if the bit value is “ 1 ”, the associated heater is on . if the bit value is “ 0 ”, the associated heater is off . the bit values are changed periodically to impart the 66 . 67 % duty cycle for each heater . for the illustrated embodiment , this rate is once every 50 ms . at each change point , two of the bit values change . the table below shows the bit values of heater mask for six 50 ms intervals ( i . e ., one 300 ms period ) for heaters 124 ht 1 , 124 b 1 , 124 ht 2 , hb 2 , 124 ht 3 and 124 b 3 . the bit values of the first row show that heaters 124 ht 1 and 124 hb 1 are off and heaters 124 ht 2 , 124 hb 2 , 124 ht 3 and 124 hb 3 are on for this 50 ms interval . to achieve this , computer 230 uses heat mask 228 to provide signals t 1 and b 1 to maintain switches 210 t 1 and 210 b 1 off so that no ac current is provided to heaters 124 t 1 and 124 b 1 and to provide signals t 2 , b 2 , t 3 and b 3 to maintain switches 210 t 2 , 210 b 2 , 210 t 3 and 210 b 3 on so that ac current flows through heaters 124 t 2 , 124 b 2 , 124 t 3 and 124 b 3 . at the end of this 50 ms interval , processor 232 changes heat mask 228 to the bit pattern shown in the second row of the table , which causes signals t 1 and b 3 to maintain switches 210 t 1 and 210 b 3 off so that no ac current is provided to heaters 124 t 1 and 124 b 3 and to provide signals b 1 , t 2 , b 2 and t 3 to maintain switches 210 b 1 , 210 t 2 , 210 b 2 and 210 t 3 on so that ac current flows through heaters 124 b 1 , 124 t 2 , 124 b 2 and 124 t 3 . the processor continues to change heater mask 228 for each of the remaining rows and then starts another cycle with the first row and so on . in the illustrated embodiment , step 242 of temperature measurement program 240 is repeated at a rate of four times a second with 8 sample points being taken each time for a total of 32 sample points per second . the heater controller of the present disclosure controls power to the heating elements and unique power time multiplexing under peak demand to ensure total power remains well within the branch supply circuit limitations in these restaurants . in a similar fashion , heavy loads ( such as an electric fryer ) can utilize a similar method to reduce peak demand within a store . it is contemplated that the heater controller described above can employ alternate time based methods ( time base changes , sample periods , and so on ). the basic restricting the absolute number of heaters on at the same time to limit power to the overall cabinet is disclosed in this disclosure . other possible embodiments include but are not limited to : 1 . leaving four rows ( 8 heaters ) on full until set point to allow the customer to begin holding food in those positions earlier . the remaining four heaters would get some heating from convection and conduction generated by powered plates to give them a head start . the remaining two rows ( 4 heaters ) would immediately follow without allowing the first eight to fall too far out of set point . 2 . since most of the energy for holding comes from the bottom plate , all six bottom plates in addition to two upper plates could be powered . the remaining four heaters would come on once the first eight reached their set point . 3 . in combination with # 1 , staggering rows to be heated to set point would allow other rows in between to attain some energy from convection and conduction through the cabinet . 4 . wattage could be adjusted on the heater plates to allow more or less heaters to be on at any given time . the present invention having been thus described with particular reference to the preferred forms thereof , it will be obvious that various changes and modifications may be made therein without departing from the spirit and scope of the present invention as defined in the appended claims .