Sequence-Controller
Introduction – sequence controller
In heating, ventilation and air conditioning systems, it is often the case that several actuators, working in a so-called controller sequence, are used in order to achieve a control variable. In the air conditioning system shown below, four actuators are involved in the regulation of the supply air temperature. A dedicated sequence controller is instanced for each of these actuators in the HVAC library. During active control only one of these sequence controllers is active. The other, non-active controllers fix their control signal so that it is energetically optimal for the tempering of the supply air temperature. Depending on the control direction of the individual controller, this means either the maximum or the minimum for the control value rY.
If the effect of the active actuator (controller) is not sufficient when reaching an end position, the active controller switches to the adjacent controller to the left or right in the controller sequence. This then takes over control. The previously active controller remains at the end position of rYmax or rYmin, depending on the control direction.
This is repeated with the remaining actuators until the setpoint or the left or right end of the sequence is reached.
In the sequence of the illustrated air conditioning system, all actuators that influence the control variable are shown
from left to right. At the far left is the actuator that enables the greatest possible reduction of the control variable; at the far right is the actuator that effects the greatest possible increase of the control variable.
Actuators that should drive in parallel or in opposite directions, e.g. outside air and circulating air dampers (HS2) are implemented once only. The individual actuators can have a positive control direction (more actuation results in a larger control variable, e.g. a heater) or a negative control direction (more actuation results in a smaller control variable, e.g. a cooler). Some actuators, e.g. a circulating air damper (HS1 & HS2), change their control direction during operation.

Example: Supply air temperature regulation in an air conditioning system with an air cooler, a heat recovery unit, a mixed air chamber and an air heater, as shown in the diagram above.
iMyNumberInSequence
1. KS1 cooler 1 |
Each sequence controller is given the total number of controllers in the sequence.
Four in this case. The PLC variable is called iNumberOfSequences in the function blocks. In addition each function block is given its own number. In the sequence iMyNumberInSequence. The controllers are numbered from left to right in ascending order. Hence each controller knows which position it occupies within the sequence. The outer sequence controllers know that switching to a further sequence controller should not take place in the event of a residual control deviation.
In the example, the controller FB_HVACPIDEnergyRecovery would start control with the heat recovery unit in the event of the control variable being too small. All other actuators are closed. If the maximum or minimum position of the heat recovery unit has been reached, the controller switches to the damper controller FB_HVACPIDMixedAir. The parameter eHVACSequenceCtrlMode is thus raised to 3. If the control effect has still not been achieved and the mixed air damper has reached its limit (e.g. minimum outside air rate), the mixed air controller raises the value of eHVACSequenceCtrlMode to 4. As a result the pre-heater or the sequence controller FB_HVACPIDPreHeating respectively is activated. If the control variable is too high, the sequence is reversed until the cooler is activated by means of FB_HVACPIDCooling being enabled.
If the control value is at the lower or upper limit of a controller, the actual value of the controlled system oscillates around the setpoint with a small amplitude, frequent switching back and forth between two sequence controllers can be damped by an additional parameter for the switchover. To this end, the difference between the actual and setpoints of the controlled system is integrated after the sequence controller has reached its lower or upper limit. Switching to the next sequence only takes place if the sum of this integration is greater than the value of rDeadRange.
Table of operation modes
A further special feature of the sequence controller is its control by the Enum E_HVACSequenceCtrlMode
Not only is the controller enabled by the Enum E_HVACSequenceCtrlMode, it also transmits the operation mode of the air conditioning system to the controller blocks in the sequence. Depending on the operation modes, each sequence controller hence reacts specially to the Enum E_HVACSequenceCtrlMode as illustrated in the table.
Value of: E_HVACSequenceCtrlMode | 0 (Stop) | 1 (On) | 2 (night cooling) | 3 (support operation) | 4 (overheating protection) | 5 (night cooling and overheating protection) |
---|---|---|---|---|---|---|
FB_HVACMasterSequenceCtrl | disabled 0 % | Enable | disabled 0 % | Enable rY=Supply air max. temp. | Enable rY=Supply air min. temp. | Enable rY=Supply air min. temp. |
FB_HVACPIDPreHeating | disabled 0 % | Enable | disabled 0 % | Enable 0 % - 100 % | disabled 0 % | disabled 0 % |
FB_HVACPIDReHeating | disabled 0 % | Enable | disabled 0 % | disabled 0 % | disabled 0 % | disabled 0 % |
FB_HVACPIDCooling | disabled 0 % | Enable | disabled 0 % | disabled 0 % | Enable 0 % - 100 % | Enable 0 % - 100 % |
FB_HVACPIDEnergyRecovery | disabled 0 % | Enable | disabled 0 % | disabled 0 % | disabled 0 % | disabled 0 % |
FB_HVACPIDMixedAir | disabled 0 % | Enable | max. outside air rate 100 % | 0 % air circulation only | 0 % air circulation only | max. outside air rate 100 % |