[CTR] Controller

Function block CTR is a universal PID controller (P, PI, PD, or PID), with optional external tracking. It supplies a modulating manipulated variable.

CTR is a universal PID controller (P, PI, PD, or PID), with optional external tracking. It supplies a modulating manipulated variable.

CTR also helps create the sequence controller and the sequence cascade controller.

In a sequence, the control response of the controller is different for each controller element or is uniform throughout all sequence controller elements.

CTR can be used as:

Functioning

The following functions are integrated:

  • Gain, integral action time and derivative action time; can be configured separately
  • Range of the manipulated variable is adjustable through the use of parameters for min. and max. controller output values
  • Invertible manipulated variable
  • Linkable control gain factor
  • Adjustable, neutral zone for control errors
  • Configurable bias (for P and PD controllers)
  • Adjustable rise and fall time for the manipulated variable (0-100 %, 100- 0 %)
  • Configurable control action type (direct inverted)
  • Configurable P, PI, PD, PID, 2-position control or staged control

CtrMod

CtrTyp

PID

Staged

Continuous

PID control (default)

Applied control parameters:
GainFac, Gain, Tn, Tv, Ti0to100, Ti100to0, Nz, YctrOfs

Irrelevant control parameters:
NumSts, HysSwiOn, HysSwiOff, SwiDly

Stage control

Applied control parameters:

NumSts, HysSwiOn, HysSwiOff, SwiDly

Irrelevant control parameters:
GainFac, Gain, Tn, Tv, Ti0to100, Ti100to0, Nz, YctrOfs

2-position

Forced 2-position control

Applied control parameters:
HysSwiOn, HysSwiOff, SwiDly

Irrelevant control parameters:
NumSts, GainFac, Gain, Tn, Tv, Ti0to100, Ti100to0, Nz, YctrOfs

info

Configurations for TV, Ti0to100, Ti100to0, Nz, YCtrOfs, HysSwiOn, HysSwiOff, SwiDly, and CtrTyp are available on the BACnet object. The configuration for GainFac is available on the function block input. Configurations for Gain, Tn, NumSts, YtctrMax and YCtrMin are available as both function block inputs as well as BACnet properties. The input value is used for these parameters if the input is connected, otherwise, the property value is used.

PID controller – autonomous

CTR acts as a P(I)(D) controller if control type [CtrTyp] is set to PID, control mode is set to 0 and gain [Gain] > 0.

The PID controller has three main parameters to configure the control response:

  • Gain [Gain]
  • Integral action time [Tn]
  • Derivative action time [Tv]

As an option, control gain can be corrected using a linkable gain factor [GainFac]. This correction or gain scheduling may be helpful for controlling mixed air dampers in air handling units since control gain is based on measured temperatures.

Other control parameters for the PID controller and their effect are described in the following sections.

Controller output range [YctrMin], [YctrMax]

The range for the controller output [Yctr] is indicated by [YctrMin] and [YctrMax].

These limits are not considered if the controller is set to out of service [OoServ] = 1.

info

If [YctrMin] is greater than [YctrMax], the controller output range is set to the value from [YctrMax], i.e. [Yctr] = min{[YctrMin], [YctrMax]}. A limitation controller acting on [YctrMax] can force the controller output lower than [YctrMin]. Conversely, a limitation controller acting on [YctrMin] can only increase the controller output on [YctrMax].

Controller direction of control action [Actg]

The controller direction of control action [Actg] determines the relationship of the manipulated variable [Yctr] and control variable [Xctr].

Direct: If the actual value [Xctr] increases, the controller output value [Yctr] increases, e.g., cooling, dehumidifying.

Indirect: If the actual value [Xctr] increases, the controller output value [Yctr] decreases, e.g., heating, humidifying.

info

The controller output [Yctr] can also be inverted using parameter [Inv]. This may be required for sequence control.

Neutral zone [Nz]

The neutral zone [Nz] is an insensitive range around the setpoint. The controller output [Yctr] is frozen if the difference between the setpoint [Sp] and the control variable [Xctr] is less than ¼ of the neutral zone for 7 control cycles. The control action resumes if the difference between the setpoint [Sp] and control variable [Xctr] is greater than ½ of the neutral zone.

Controller output offset [YctrOfs].

If a controller is configured as a P or PD controller, a bias or offset [YctrOfs] can be configured. The controller output is set to the value for [YctrOfs] if the controller is switched on and there is no control error. The controller offset [YctrOfs] is also used as the integrator start value if the controller is configured as a PI or PID controller. As soon as the controller is switched on and starts controlling, the integrator value is set with the value from [YctrOfs].

Controller output rise time [Ti0to100] or fall time [Ti100to0]

Ouputs [Ti0to100], [Ti100to0] limit the maximum signal increase or signal decrease of the manipulated variable [Yctr].

Inversion [Inv]

The inversion of the controller output [Yctr] is calculated based on:

[Yctr]Inv = 100 % – [Yctr]NotInv

The controller output limits [YctrMin] and [YctrMax] as well as the controller output rise time [Ti0to100] and fall time [Ti100to0] relate to the inverted controller output ([Inv] = 1). If the controller is switched off ([EnFnct] = 0 and [OoServ] = 0), the controller output [Yctr] is also set to 0% for the inverted controller.

Control variable tracking [EnTrack]/[Track]

Returning the effective manipulated variable to the input [Track] improves the control quality of the PI or PID controller (e.g., anti-windup). It is referred to as external control variables tracking.

For [EnTrack] = 0, tracking is disabled and [Track] is not processed as the tracking signal.
For [EnTrack] = 1, tracking is enabled and [Track] is processed as the tracking signal.

info

If a limiting logic acts directly on the actuating device (e.g., minimum or maximum selection), the positioning signal of the controller no longer influences the actuating device. Returning the effective positioning signal to the tracking input keeps the controller on the present value and guarantees continued control when the limiting logic no longer intervenes.

info

If external tracking is set for the controller element of a sequence, it must be ensured that the set limit values [YctrMin] and [YctrMax] can be reached. Else, the sequence controller can switch to the next sequence controller element only in the event of a high control error. As an alternative to external tracking, the limit values [YctrMin] and [YctrMax] can be influenced directly in the case of limitation applications.

Control algorithm

Block diagram of the PID control algorithm without external tracking:

info

On P or PD controllers, the controller output offset uOfs is used for the integrator value.

Block diagram of the PID control algorithm with external tracking:

Stage control – Autonomous

When setting the control type [CtrTyp] to staged control and control mode [CtrMod] to modulating, CTR acts as a staged controller with [NumSts] stages. Setting [CtrMod] to 2-position control forces CTR to 2-position control regardless of the setting at [CtrTyp].

2-position control

The CTR acts as a 2-position controller when setting the control mode [CtrMod] to 2-position control. As an alternative, a 2-position response can be achieved by setting [Gain] to zero (this applies independent of the setting at [CtrTyp], i.e. for PID and for staged control). The switching points are configured by the hysteresis [HysSwiOn] and [HysSwiOff] and control action [Actg], see diagram below for direct acting 2-position control.

In order for the controller to switch, the control variable must exceed the corresponding switching point and the last switching action occurred at least a switch delay time [SwiDly] earlier.

Stage control

If the absolute control error |[Sp]-[Xctr]| is greater than the switching hysteresis, the controller increments or decrements the output, unless the last switching stage is newer than the switch delay [SwiDly]. No staged switching is performed as long as the last switching action is newer than the switch delay.

There is no minimum time duration criterion for the absolute control error to perform staged switching.

For staged control the controller output [Yctr] is set in stages to the variable 100%/[NumSts] (Type Integer has not staged output).

For example, if [YctrMin] = 0% and [YctrMax] = 100% and [NumSts] = 4, the control output [Yctr] is 0%, 25% 50% 75%, or 100%.

The configurations for [YctrMin] and [YctrMax] limit the minimum and maximum stage. The function is rounded up to the next stage if the supplied values do not exactly match the stage value as a percentage.

For example, if [NumSts] = 4 and [YctrMin] = 20%, [YctrMin] is rounded up to 25% and the minimum stage is 1.

The controller offset [YctrOfs] is not used to initialize the stage controller. The staged controller also does not process tracking input [Track].

Change control operating mode

Change from integrative to non-integrative control

If a PI(D) controller is changed to a non-integrative controller by setting [Tn] to zero, the integrator value of the controller is set to zero.

If a non-integrative controller (P, PD, stage or 2-position controller) is changed to a PI(D) controller, the existing integrator value of the controller is taken over and limited to the range [YctrMin, YctrMax].

Change between PID and stage control

If a PI(D) controller changes to a staged controller, the actual control output [Yctr] is immediately rounded to the next stage for the output. For example, if [NumSts] = 4, the value [Yctr] = 69.3% is rounded up to [Yctr] = 75%. After that the staged control algorithm continues.

For a 2-position or staged controller with integral action time [Tn] > 0, the internal values are based on the internal tracking of the control output is based on the integrator value. The tracked integrator value is used if a 2-position or staged controller is changed on a PI(D) controller.

This process is typically beneficial if a smooth transition is required, e.g., for the transition between 2-position control for boost heating in the morning (optimum start control) and PI(D) control for Comfort.

Change between disabled and enabled controller

If a controller is disabled ([EnFnct] = 0, [OoServ] = 0), the controller output [Yctr] is set to 0% independent of [Inv] and other controller settings.

If a PI(D) controller is enabled, the integrator value starts the integration as of [YctrOfs]. The controller output [Yctr] starts at 0% or [YctrMin] (if [YctrMin] > 0%) or [YctrMax] (if [YctrMax < 0%) per the rise time and fall time [Ti0to100] and [Ti100to0].

If a stage controller is enabled, the control output [Yctr] starts from 0%, if 0% is within the range [YctrMin, YctrMax]. Otherwise, [Yctr] starts the edge value of the interval. For example: If [YctrMin] = 15%, [YctrMax] = 70%, [NumSts] = 4, the control output [Yctr] starts at 25% ([YctrMin] rounded up).

Change between out of service and PID or stage control

If a controller is set to out of service, the controller output [Yctr] is set to the value of the present property at the BACnet object.

If a PI(D) controller changes from "out of service" to "operational", the integrator value starts the integration with the value of the present property.

If a stage controller changes from 'out of service' to 'operational', the control output [Yctr] is immediately rounded up to the next stage output. For example, if [NumSts] = 4, the value [Yctr] = 69.3% is rounded up to [Yctr] = 75%. After that the staged control algorithm continues.

PID and stage controllers – Sequence control

Sequence control is used if multiple components are used to control a controlled variable in accordance with the predefined control sequence. The sequence controller switches the individual sequence controller elements according to the control sequences and coordinates control for the individual controller elements in an interrelated control response across all sequence controller elements.

Sequence controllers are primarily used in air conditioning systems to control temperature and humidity. There is no reason why a sequence controller should not be used for control topics in other applications.

Set up sequence controller

A sequence controller consists of multiple sequence elements, where all sequence elements are instances of the function block CTR. The interconnection of the sequence elements can be direct or via SEQLINK.

 

Communication signals between sequence elements

The sequence elements communicate with one another via connections between pins: [ToLower] > [FmHigher] and [ToHigher] > [FmLower].

Control action of the sequence control elements

In general, a sequence controller consists of an individual CTR. Each CTR acts as a sequence control element for a component. The interconnection sequence of the CTR function blocks (from low to high) corresponds to the order of the control sequences (1..n) of the sequence controller. Accordingly, the connection of the CTR elements must take account of the intended operating range (e.g., for heating) and the order of switching.

Example for sequence control with four elements:

1 = Heating coil (lowest element), 2 = Preheater, 3 = Air dampers, 4 = Cooler (highest element).

For rising heat demand, heating is supplied in the following sequence: 3 > 2 > 1.

For rising cooling demand, cooling is supplied by element 4 (> 5 … if available).

The lowest sequence control element corresponds to control sequence 1, the highest to control sequence n. The lowest sequence control element controls a component using reversed control action (if available). The highest sequence controller element controls a component using direct control action (if available).

The control action [Actg] of a sequence controller element is determined by the operation of the controlled component (e.g., heating, cooling). If the control action of a component changes during operation, the control action of the corresponding control element must be changed accordingly. In the figure below, control action of element 3 is changed. If the controlled component requests an inverse signal, then inversion [Inv] of the controller output can be used.

Within a control sequence, the control action [Actg] from the lowest to the highest sequence controller element can be changed only once and only from reverse to direct acting. If this requirement is not met, i.e. if the control action is parameterized incorrectly, faulty control sequences are deactivated and the next valid control sequence is released. The incorrectly parameterized sequence controller elements set [ErSta] = 1.

Faulty control sequence elements provide information on the fault via the Token state from [TknSta]. Elements with direct control action provide [TknSta] = Hel_CSeq (heating element in cooling sequence), reverse elements provide [TknSta] = Cel_HSeq (cooling element in heating sequence).

Setpoints for sequence control elements

In the sequence controller, the setpoints [Sp] of the sequence controller elements (1...n) must increase monotonously:

[Sp]1 ≤ [Sp]2 ≤ [Sp]3 ≤ ... ≤ [Sp]n

Modulating control on transition from one control sequence to another is ensured if the control sequences with the same direction of control action have the same setpoint.

The energy-free zone is defined by the setpoints upon changeover of the direction of control action (e.g., heating setpoint/cooling setpoint).

Sequence control algorithm

The sequence control algorithm in CTR matches the control standard. The following topics are covered:

  • Coordination mechanism of the sequence control elements
  • Control token passing and receiving for different controller types
  • Examples and description of special cases, special mixing sequence, or special control parameter settings.

Control outputs

Manipulated variable [Yctr] and its parts [Yctrp], [Yctri], [Yctrd]

[Yctr] represents the main control output that typically specifies the position of the actuator. On a PID controller, the parts of the manipulated variable [Yctr] are displayed for diagnostics:

  • Proportional part [Yctrp]
  • Integral portion [Yctri]
  • Derivative portion [Yctrd]

For controller types that do not have all parts of the manipulated variable, the corresponding outputs are set to zero. On controllers that do not have the control task (disabled, out of service, or non-controlling sequence elements), the control parts are set to zero.

Controller demand [CtrDmd]

[CtrDmd] provides the control demand to the controller. It is a normalized signal in percent ranging from 0% (no demand) to 100% (maximum demand). [CtrDmd] is set to zero if the controller is disabled, out of service ([OoServ] = 1), erroneous ([ErSta] = 1) or if [YctrMin] ≥ [YctrMax].

Otherwise, the controller calculates the demand based on [EnFnct].

Controller demand calculation, if [EnFnct] = 1

The controller calculates demand based on its effective controller output [Yctr] relative to the control output limits [YctrMin] and [YctrMax]:

Controller demand calculation, if [EnFnct] = 0

In this case, the controller calculates a virtual demand based on control error and settings. For standalone P(I)(D) controllers, the virtual demand corresponds to the normalized P-portion of the control output:

Virtual demand is defined as follows if a controller has stand-alone 2-position control or staged control response:

If the controller is part of a sequence controller, the virtual demand is corrected since the virtual demand output must be compatible with the entire sequence controller. The following corrections are made:

  • The controller acts indirect ([Actg] = reverse), a low sequence control element has the control task and actively controls: CtrDmd = 100%.
  • The controller acts direct ([Actg] = direct), a high sequence control element has the control task and actively controls: CtrDmd = 100%.
  • The controller acts indirect ([Actg] = reverse), a high sequence control element has the control task and actively controls: CtrDmd = 0%.
  • The controller acts direct ([Actg] = direct), a low sequence control element has the control task and actively controls: CtrDmd = 0%.

Displayed controller demand [CtrDmd]

If the control demand calculation criteria are met, the controller calculates the demand as described above. The control demand can be displayed based on the input [DmdMod] as follows:

  • [DmdMod] = Off: Demand calculation switched off, [CtrDmd] = 0% regardless of the calculated demand CtrDmd.
  • [DmdMod] = 2-position: [CtrDmd] = 0% if calculated CtrDmd = 0% or [CtrDmd] = 100% if calculated CtrDmd > 0%.
  • [DmdMod] = Modulating: [CtrDmd] = CtrDmd (calculated).

Background sequence control

Sequence control requirements

Requirements based on experience with sequence control solutions:

  • Setpoints must be configurable for each sequence element.
  • The sequence element that starts control must be able to be specified.
  • Each sequence element must be enabled or set to out of service.
  • Each sequence element incudes an individual controller.
  • The offset of the control output must be individually adjustable.
  • Each sequence element has an individual, neutral zone.

Other requirements

  • The sequence controller must be able to handle sections with direct and reverse control action consisting of one or more sequence control elements.
  • Both (partial) sequences can consist of any number of sequence control elements.
  • Setpoints can only be the same or increased from a lower to a high sequence control element.
  • A control response can be configured as needed for each sequence control element: P, PI, PID, PD controller or staged controller including 2-position controller.
  • Each PID sequence control element includes a controller.
  • Each sequence control element must be able to be individually set to out of service.
  • Only one sequence control element actively controls. All other elements are either disabled, out of service, faulty, or at the minimum or maximum output.
  • Control parameters are configured individually per sequence control element.
  • If all control parameters for a PID sequence controller have the same values (Sp, Gain, Tn, Tv), the sequence control response must be identical to the response from an individual controller.
  • The control action for each sequence control element must be able to be configured and changed during runtime.
  • The control output for each sequence control element must be able to be inverted.
  • Each sequence control element must display the effective control state with the following states:
    • CtrOff: The controller is switched off.
    • CtrCmd: The controller is out of service or [YctrMax] ≤ [YctrMin].
    • CtrOn: The controller is switched on and its control output [Yctr] is greater than [YctrMin] and less than [YctrMax].
    • CtrMin: The controller is switched on and its controller output [Yctr] ist equal to [YctrMin].
    • CtrMax: The controller is switched on and its controller output [Yctr] ist equal to [YctrMax].
  • If the control output for the sequence control element reaches its minimum or maximum value, the control task is forwarded to the next (lower or higher) sequence element that is ready for control (enabled and no error or out of service).

Sequence control principles

Sequence controller principles:

  • Only one sequence control element is actively controlled or has a control task.
  • The control outputs for non-controlling sequence control elements are constant. Exception: When an element returns to operation or from enabled from disabled, the control output switches from minimum to maximum.
  • Unavailable sequence control elements (disabled, out of service, faulty) forward communications to their neighboring elements.

The diagram displays a simplified principle of operation:

Object-internal alarms

If the object-internal alarms are enabled for the corresponding BACnet object, the function block can access relevant properties to permit a reaction in case of an event.

Output [OffNrml] is set to 1 if property 'Event state' displays an uncommon event. The output is set to 0, if the event state displays normal and all transitions are acknowledged (property 'Acknowledged transitions' are read to receive the transition state). The output is set to 0 if unable to access the BACnet object or an error is reported.

The output [Dstb] is set to 1 if a fault state or an Offnormal state is recognized, and reset to 0 is the state if the BACnet object is displayed as normal and the transition to normal is confirmed. If the BACnet object cannot be accessed, [Dstb] is set to 1.

The output [Flty] is set to 1 if a fault state is recognized is recognized and set to 0 if the state is the BACnet object is displayed as normal and the transition to normal is confirmed. If the BACnet object cannot be accessed, [Flty] is set to 1.

The output [HiLmRd] is set to 1 if a Offnormal state is recognized due to reaching the high limit and set to 0 if the state is the BACnet object is displayed as normal and the transition to normal is confirmed. [HiLmRd] is set to 0 if unable to access the BACnet object or a fault state is recognized.

The output [LoLmRd] is set to 1 if a Offnormal state is recognized due to reaching the low limit and set to 0 if the state is the BACnet object is displayed as normal and the transition to normal is confirmed. If the BACnet object cannot be accessed, [LoLmRd] is set to 1.

Output [Rlb] supplies the value of property 'Reliability' on the BACnet object.

Inputs [SupEvtDet] and [SupEvtNtf] can suppress the event detection or notification. Values from the inputs are written to the corresponding properties: 'Suppress event detection' and 'Suppress event message'.

If the inputs are connected, the value from the cabling is newly written on the property, if another source writes another value. If multiple function blocks are linked to the same BACnet object, only one can be connected to the suppression input.

Update interval

CTR periodically updates the property 'Update interval'. The value of this property indicates the averaged time interval at which CTR updates the property 'Present value'.

Pins
info

The default configurations (values in technical units) for the CTR function block are set for temperature control. The engineering units and default values must be modified accordingly if the function block is used for other control purposes, e.g. lighting or humidity.

Input

Description

Data type

Default value
Value range

EnFnct

Enable function

Enables the function.

Boolean

1

0 - The function is disabled.
1 - The function is enabled.

Sp

Setpoint

Real

20.0 [°C]
68.0 [°F]

Xctr

Controller input

Real

20.0 [°C]
68.0 [°F]

GainFac

Gain factor

Real

1.0

Gain

Gain

Real

10.0 [%/K]
5.5 [%/°F]

Tn

Integral action time Tn

Time

2m

0ms: The cascade controller has a P control response.
…: The cascade controller has a PI control response.

YctrMax

Controller output maximum

Maximum controller output.
Maximum limitation from [Yctr].

Real

100 [%]
0…100 [%]

YctrMin

Controller output minimum

Minimum controller output.
Minimum limitation from [Yctr].

Real

0 [%]
0…100 [%]

Actg

Control action

Determines the relationship between manipulated and control variable.

Boolean

1

0 - Direct effect, such as cooling or dehumidification.
1 - Indirect effect, such as heating or humidification.

CtrMod

Controller mode

Boolean

0

0 - Continuous
1 - 2-position

DmdMod

Demand mode

Integer

2: 2-position

1: Off
2: 2-position
3: Continuous

Inv

Inverse

Boolean

0

0 - Inversion of the controller output signal [Yctr].
1 - No inversion.

EnTrack

Tracking enable

Boolean

0

0 - External tracking disabled.
1 - External tracking enabled and [Track] is processed on the function block.

Track

Tracking

Input for the effective control output value.

Real

0.0 [%]

0.0…100.0

NumSts

Number of stages

Integer

1

0…4

FmHigher

From higher neighbor element

Structure

-

FmHigher
> CtlMod

Control mode

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Active - CTR is active.
3: Off - CTR is switched off.
4: On - CTR is switched on.

FmHigher
> Crdn

Sequence coordination

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

FmHigher
> Ctkn

Control token

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

FmHigher
> IsInt

Is integrator

Boolean

0

0 - Sequence element has a non-integrative behavior (default).
1 - Sequence element has an integrative behavior.

FmHigher
> DeltaE

Covered error

Error covered by the proportional part of the controller.

Real

0.0

FmLower

From lower neighbor element

Structure

-

FmLower
> CtlMod

Control mode

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Active - CTR is active.
3: Off - CTR is switched off.
4: On - CTR is switched on.

FmLower
> Crdn

Sequence coordination

CTR coordination signal.

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

FmLower
> Ctkn

Control token

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

FmLower
> IsInt

Is integrator.

Boolean

0

0 - Sequence element has a non-integrative behavior (default).
1 - Sequence element has an integrative behavior.

FmLower
> DeltaE

Covered error

Error covered by the proportional part of the controller.

Real

0.0

TshVal

Threshold value

Configured value to control function block write attempts. An attempt is permissible only if the change of value is greater than or equal to [TshVal].

Note
Cannot be set to 0.0.

Real

0.1

SupEvtDet

Suppress event detection

Boolean

0

SupEvtNtf

Suppress event notification

Boolean

0

BaObjRef

BA-Object reference
Link between function block and BACnet object.

Structure

---

BaObjRef
> DeviceID

Device identifier
[DeviceID] includes object type and object instance in one ID.
Identifies the device object: local or remote. A local device object can also be identified by value 16#3FFFFF.

Double Word

16#3FFFFF

BaObjRef
> ObjectID

Object identifier
[ObjectID] includes object type and object instance in one ID.
Identifies the object on a device.

Double Word

16#3FFFFF

BaObjRef
> ItemID

Item identifier
[ItemID] represents an index in a view node object that references the BACnet object.
[ObjectID] and [ItemID] together define an indirect reference to the BACnet object.
Value -1 indicates a direct interface.

Integer

-1

 

Output

Description

Data type

Default value
Value range

ErSta

Error state

Boolean

0

CtrSta

Controller state

Integer

1: CtrOff

1: CtrOff - Controller switched off.
2: CtrCmd - Controller switched off or [YctrMin] ≥ [YctrMax].
3: CtrOn - Controller switched on.
4: CtrMin - Controller output [Yctr] = [YctrMin].
5: CtrMax - Controller output [Yctr] = [YctrMax].

TknSta

Token state

Integer

1: NoTkn

NoTknRTFault

1: NoTkn - No token.
2: CtrTkn - Controller token active.
3: IntgTkn - Integrator token active.
4: BothTkns - Both tokens active.
5: Hel_CSeq - Configuration error: Heating element in the cooling sequence.
6: Cel_HSeq - Configuration error: Cooling element in the heating sequence.
7: RTFault - Error: Sequence element.

Yctr

Controller output

Real

0.0 [%]

Valid

Valid

Boolean

0

0 - No input value provided, [Out] = [Init].
1 - Normal function.

CtrDmd

Controller demand

Unit.

0.0 [%]

ToHigher

To higher neighbor element

Structure

-

ToHigher
> CtlMod

Control mode

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Active - CTR is active.
3: Off - CTR is switched off.
4: On - CTR is switched on.

ToHigher
> Crdn

Sequence coordination

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

ToHigher
> Ctkn

Control token

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

ToHigher
> IsInt

Is integrator

Boolean

0

0 - Sequence element has a non-integrative behavior (default).
1 - Sequence element has an integrative behavior.

ToHigher
> DeltaE

Covered error

Error covered by the proportional part of the controller.

Real

0.0

ToLower

To higher neighbor element

Structure

-

ToLower
> CtlMod

Control mode

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Active - CTR is active.
3: Off - CTR is switched off.
4: On - CTR is switched on.

ToLower
> Crdn

Sequence coordination

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

ToLower
> Ctkn

Control token

Integer

1: Nil

1: Nil - Not connected (Default value).
2: Link - Connected in a sequence.
3: Low - Low controller output.
4: ErrLow - Error in sequence coordination.
5: Act - Controller active.
6: High - High controller output.
7: ErrHigh - Error high (reserved).

ToLower
> IsInt

Is integrator

Boolean

0

0 - Sequence element has a non-integrative behavior (default).
1 - Sequence element has an integrative behavior.

ToLower
> DeltaE

Covered error

Error covered by the proportional part of the controller.

Real

0.0

Yctrp

Controller output proportional part

Real

0.0 [%]

Yctri

Controller output integral part

Real

0.0 [%]

Yctrd

Controller output derivative part

Real

0.0 [%]

OoServOut

Out of service, output

Boolean

0

0 - No
1 - Yes

GainOut

Gain, output

Real

10.0 [%/K]

TnOut

Integral action time Tn, output

Time

2m

TvOut

Derivative action-time Tv, output

Time

0 ms

NzOut

Neutral zone, output

Real

0.5 [K]

0.0…40.0

Ti0to100

Rise time from 0 to 100%

Time

1m

Ti100to0

Fall time from 100 to 0%

Time

1m

YctrMaxOut

Controller output maximum, output

Real

100.0 [%]

0.0 [%]…100.0 [%]

YctrMinOut

Controller output minimum, output

Real

0.0 [%]

0.0 [%]…100.0 [%]

YctrOfsOut

Controller output for offset, output

Real

0.0 [%]

0.0 [%]...100.0 [%]

CtrTypOut

Controller type, output

Integer

1: PID controller

1: PID controller
2: Stage controller

HysSwiOnOut

Hysteresis switch-on, output

Real

0.5 [K]

-100.0 [K]…100.0 [K]

HysSwiOffOut

Hysteresis switch-off, output

Real

0.5 [K]

-100.0 [K]…100.0 [K]

SwiDlyOut

Switch-on/off delay, output

Time

5m

NumStsOut

Number of stages, output

Integer

1

1…10

Dstb

Disturbed

[Dstb] indicates whether the referenced BACnet object is in fault or in state OffNormal. When the BACnet object returns to state Normal, [Dstb] retains its value until the transition to normal is acknowledged.
[Dstb] = 1, if:
BACnet object = Access error
OR
'Status flag' = Fault
OR
'Event state' <> Normal

[Dstb] = 0, if the above condition is not fulfilled AND 'Acknowledged transitions' = x, x, 1.

Note
Properties 'Event state' and 'Acknowledged transitions' are not considered if the BA-Object has an alarm extension set to disabled.
Output [Dstb] does not retain the value after a restart following a power outage if the state of the BACnet object is normal.
Properties 'Event state' and 'Acknowledged transitions' are not considered on BACnet third-party objects.

Boolean

0

Flty

Faulty

[Flty] indicates whether the last event on the referenced BACnet object was in fault. If the BACnet object returns to the normal state, [Flty] retains its value until the transition to normal is acknowledged.
[Flty] = 1, if:
BACnet object = Error during access
OR
'Status flag' = Fault

[Flty] = 0, if the above condition is not fulfilled AND one of the following possibilities is valid:

  • 'Event state' = Upper limit
  • OR
  • 'Event state' = Lower limit
  • OR
  • 'Event state' = Normal AND 'Acknowledged transitions' = x, x, 1

Note
Properties 'Event state' and 'Acknowledged transitions' are not considered if the BA-Object has an alarm extension set to disabled.
Output [Flty] does not retain the value upon restart after a power outage if the state of the BACnet object is normal.
Properties 'Event state' and 'Acknowledged transitions are not considered for BACnet third-party objects.

Boolean

0

HiLmRd

High limit reached

Indicates if the last event on the referenced BACnet object has state Offnormal based on reaching the upper limit. When the BACnet object returns to state Normal, [HiLmRd] retains its value until the transition to normal is acknowledged.
[HiLmRd] = 1, if:
BACnet object = Access successful
AND
'Status flag' = No fault
AND
'Event state' = Upper limit

[HiLmRd] = 0, if the above condition is not fulfilled OR one of the following possibilities is valid:

  • 'Event state' = Lower limit
  • 'Event state' = Normal AND 'Acknowledged transitions' = x, x, 1

Note
Properties 'Event state' and 'Acknowledged transitions' are not considered if the BA-Object has an alarm extension set to disabled.
Output [HiLmRd] does not retain the value upon restart after a power outage if the state of the BACnet object is normal.
The function is not available for BACnet third-party objects.

Boolean

0

LoLmRd

Low limit reached

Indicates if the last event on the referenced BACnet object has state Offnormal based on reaching the lower limit. If the BACnet object returns to state Normal, [LoLmRd] retains its value until the transition to normal is acknowledged.
[LoLmRd] = 1, if:
BACnet object = Access successful
AND
'Status flag' = No fault
AND
'Event state' = Lower limit

[LoLmRd] = 0, if the above condition is not fulfilled OR one of the following possibilities is valid:

  • 'Event state' = Upper limit
  • 'Event state' = Normal AND Acknowledged transitions = x, x, 1.

Note
Properties 'Event state' and 'Acknowledged transitions' are not considered if the BA-Object has an alarm extension set to disabled.
Output[LoLmRd] does not retain the value upon restart after a power outage if the state of the BACnet object is normal.
The function is not available for BACnet third-party objects.

Boolean

0

Rlb

Reliability
Indicates the value of property 'Reliability', if the property is available.

Integer

0: No fault detected

ErrCode

Error code indication

Integer

0: No error

= 0 - No error
> 0 - Error codes

Application

Control structures

CTR is a universal control element that can be used on a wide range of control problems. The element can be used in different control structures, including:

  • Autonomous P(I)(D) controller
  • Autonomous 2-position or stage control
  • Limitation control: The output of the main control element is limited by a limitation controller that acts on the inputs of the main control elements [YctrMin] or [YctrMax].
  • Cascade control: A main control variable is controlled by an out control loop controller that provides a setpoint for a supplementary control variable controller by the inner control loop.
  • Sequence control: A control variable is controlled by multiple actuators (component) in a specific sequence
Process response

The function blocks are initialized in the first control cycle after switch-on. After the initialization cycle, the function waits 3 cycles to neutralize an unfavorable processing sequence. It is then assumed that values to the communication inputs [FmLower] and [FmHigher] are valid and the function is performed as per these values.

Application example

The following diagram shows an application example for a function block CTR: Cascade control of an air handling unit. Sequence control controls an internal control loop; it acts on the three components heating coil, cooling coil, and energy recovery unit. The external control circuit controls the room temperature through the sequence control. The outer control circuit provides the supply air temperature setpoints as well as the modulating ventilation signal.

The inner control loop includes two limiting controllers acting on the ventilation controller of the outer control loop. This prevents ventilation control from increasing the fan speed if the supply air temperature setpoint cannot be achieved by maximum heating or cooling.