Product BMS
Product BMS
Product BMS
PID_CTR
PID controller. CONTROL PID controller
Function
The PID_CTR (FB114) block is a universal PID controller (P, PI, PD, or PID), with external tracking. It supplies a modulating manipulated variable.
Block PID_CTR also helps create the sequence controller and the sequence cascade controller.
Sequence controller: One PID-CTR per sequence controller element; possibly one SEQLINK block.
Sequence cascade controller: One PID-CTR per sequence controller element; additional CAS_CTR and possibly one SEQLINK block.
The control response of the sequence controller either differs for each sequence controller element or is the same for all sequence controller
elements.
The universal PID controller controls the manipulated variable in the following operating principle (If the block is used as a sequence controller
element in a sequence controller, it controls the control sequence in the same way).
Step Process
1 The controller must be enabled [EnFnct] = Yes and [OoServ] = Off. PID controller operating modes
2 The manipulated variable [Yctl] is calculated by the control difference [Xctl]-[Sp] in accordance with the control behavior
[GainFac], [Gain], [Tn], [Tv], [Nz], [Actg], [Inv] and the limitations such as [Ti0to100], [YctrMin].
--- If [EnTrack] = Yes, then the pending, effective positioning signal at input [Track] is processed in lieu of [Yctr]. External tracking
Typical controllers with special settings are: Two-point controller, P/PD controller. The default setting is a PI controller.
If... then...
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 2 of 18
Direct acting: If the actual value [Xctr] increases, the controller output value [Yctr] increases, e.g. cooling, dehumidifying.
Indirect acting: If the actual value [Xctr] increases, the controller output value [Yctr] decreases, e.g. heating, humidifying.
[DmdMod] = 2-position For calculated controller demand of 0%, [CtrDmd] = 0%, otherwise 100%.
For fault [ErSta] = Yes or override [OoServ] = On, [CtrDmd] is set to 0%.
If the controller has 2-point response [Gain] = 0, demand is calculated for stand-alone PID controller as follows:
Actg Sp - Xctr CtrDmd
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 3 of 18
Reverse <= 0 0%
Direct >= 0 0%
Virutal demand is corrects if the PID controllers is integrated in a sequence controller. A demand message should be coordinated with the other
sequence elements. The following corrections are made:
The controller acts indirectly ([Actg] = Reverse), a lower sequence element has the control release and controls actively: [CtrDmd] = 100%.
The controller acts directly ([Actg] = Direct), a higher sequence element has the control release and controls actively: [CtrDmd] = 100%.
The controller acts indirectly ([Actg] = Reverse), a higher indirectly acting sequence element has the control release and controls actively:
[CtrDmd] = 0%.
The controller acts directly ([Actg] = Direct), a lower directly acting sequence element has the control release and controls actively:
[CtrDmd] = 0%.
Inversion [Inv]
[Inv] inverts the controller output signal [Yctr] according to the following formula: [Yctr]Inv = 100% - [Yctr]Old. Illustration
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 4 of 18
P/PD controllers
If [Tn] = 0, the controller exhibits P or PD control behavior.
Controller output offset [YctrOfs].
[YctrOfs] is added to the controller output [Yctr]. This moves the P-range of the P/PD controller so that the controller output [Yctr] = [YctrOfs] at
setpoint [Sp]. Thus, a constant load is controlled at the operating point. Illustration
--- In each process cycle, the individual sequence controller elements independently determine the sequence controller element that carries
out control (independent of the operating mode of the sequence controller).
If a sequence controller element satisfies the following conditions, the controller token adopts [TknSta] = CntrTkn.
The sequence controller element must be enabled [EnFnct] = Yes and not commanded [OoServ] = Off.
The sequence controller element controls the requested demand, for example, the heating demand: [Actg] = Reverse and [Xctr]
< [Sp].
The sequence controller element controls the responsible aggregate in the operating sequence, for example, the previous
aggregates have been removed from control or cannot be controlled.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 5 of 18
2 The sequence controller element featuring the controller token controls the plant [Yctr]. All other sequence controller elements are
constant.
[TknSta] = CntrTkn
[CtrSta] = CntrOn
Exception: Enabling/disabling/commanding individual sequence controller elements
3 If the control range of the controlling sequence controller element is exhausted, [Yctr] > [YctrMax] or [Yctr] < [YctrMin], the controller
token is passed on to the following sequence controller element (according to the operating sequence).
[TknSta] = NoTkn
[CtrSta] = CntrMin or CntrMax
Exception: Sequence controller elements with [EnFnct] = No or [OoServ] = On are not switched.
--- If all controller outputs of the enabled sequence elements are set to their limit values [CtlSta] = CntrMin or [CtlSta] = CntrMax, the
sequence controller element does not have a controller token. This may occur in different parameter settings of the sequence controller
elements, e.g. within the energy-free zone due to different setpoints.
No Off The sequence controller element immediately sets the The sequence controller skips the sequence controller
controller output [Yctr] = 0. element in the operating sequence.
If the controlling sequence controller element is disabled,
the subsequent sequence controller element starts
controlling.
Yes Off The sequence controller element checks if it was skipped The sequence controller adds the sequence controller
by the sequence controller in the operating sequence. element to the operating sequence.
If the sequence controller element was skipped, its
controller output [Yctr] increases to [Yctr] = YctrMax at
speed Ti0to100.
If the sequence controller element was not skipped, [Yctr]
decreases to [Yctr] = YctrMin at speed Ti100to0.
No or Yes On. The sequence controller element immediately sets the The sequence controller skips the sequence controller
controller output [Yctr] = DefVal. element in the operating sequence.
If the controlling sequence controller element is newly
commanded, the subsequent sequence controller element
starts controlling.
[EnAlm] =
Yes
AND.
[EnFnct] =
Yes.
[CtlDvnLm] > 0 [Xctr] > [Sp]+ If control variable [Xctr] exceeds the upper limit [Sp]+[CtlDvnLm], an
[CtlDvnLm] OFFNORMAL alarm is triggered after time [TiMonDvn].
Event message: Transition to Offnormal
[EvtSta] = High limit.
[StaFlg] = In alarm.
[Xctr] < [Sp]– If control variable [Xctr] exceeds the lower limit [Sp]+[CtlDvnLm], an
[CtlDvnLm] OFFNORMAL alarm is triggered after time [TiMonDvn].
Event message: Transition to Offnormal
[EvtSta] = Low limit.
[StaFlg] = In alarm.
[CtlDvnLm] < 0 [Xctr] > [Sp]+ If control variable [Xctr] exceeds the upper limit [Sp]+[CtlDvnLm], an
AND [CtlDvnLm] OFFNORMAL alarm is triggered after time [TiMonDvn].
[Actg] = Direct Event message: Transition to Offnormal
[EvtSta] = Low limit.
[StaFlg] = In alarm.
[Xctr] < [Sp]– Deviation of the control variable [Xctr] below the setpoint [Sp] are not
[CtlDvnLm] monitored.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 6 of 18
This configuration is suitable, for example, for room temperature control with
chilled ceilings, where only those room temperatures are monitored that are too
high.
[CtlDvnLm] < 0 [Xctr] > [Sp]+ Deviation of the control variable [Xctr] above the setpoint [Sp] are not
AND [CtlDvnLm] monitored.
[Actg] = Reverse This configuration is suitable, for example, for room temperature control with
radiators, where only those room temperatures are monitored that are too low.
[Xctr] < [Sp]– If control variable [Xctr] exceeds the lower limit [Sp]+[CtlDvnLm], an
[CtlDvnLm] OFFNORMAL alarm is triggered after time [TiMonDvn].
Event message: Transition to Offnormal
[EvtSta] = Low limit.
[StaFlg] = In alarm.
If there is an OFFNORMAL alarm and if "alarm enable" is disabled afterwards [EnAlm] = No, the OFFNORMAL alarm is removed
immediately. Any time delays are fully taken into consideration when alarm supervision is reenabled.
If "Event enable" is set to [EnEvt] = Yes, a corresponding alarm message appears ("Transition to offnormal" or "Transition to normal").
On. Controller output [Yctr] and initialization value for I-portion are set to [DefVal].
The outputs [Yctrp], [Yctri], and [Yctrd] are set to 0.
Reliability is reset: [Rlb] = No error detected.
Sp pa RW Setpoint.
Setpoint of the controlled variable.
Gain pa RW Gain.
Gain of the control difference.
Functioning: Gain [Gain] and gain factor [GainFac].
Engineering: Gain [Gain], [GainFac]
... Setting/correction:
Control behavior unstable: Decrease gain.
Control behavior excessively stable: Increase gain.
0.0 The controller has a two-point response (two-point controller). Functioning: Neutral zone [Nz]
Nz pa RW Neutral zone.
Width of the neutral zone around the setpoint. Functioning: Neutral zone [Nz]
In a two-point controller, [Nz] works as a switching difference.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 7 of 18
... If the operating point is reached, the controller output [Yctr] is .....
Inv pa — Inverse.
No: No inversion.
Track pa — Tracking.
Input for the effective positioning value or the positioning feedback message. Application: Tracking.
The Parameter Editor does not check the value.
0 Default value.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 8 of 18
Fault
Simple Simple alarm without acknowledgement for incoming and outgoing faults.
Notification Simple notification (no alarm). State transitions similar to Simple alarm i.e. without
acknowledgement for incoming and outgoing faults. Engineer notification
NotifCl px RW Reference number to local, global, or dynamically generation Notification Class Object.
NotifTyp px RW The alarm response (e.g. without acknowledgement, acknowledge incoming faults, acknowledge and reset faults) is
set for the "Standard BACnet alarm concept" on the referenced Notification Class Object via the setting on [AckReq].
Event Handling as event, e.g. to report a state or change of value (corresponds to [AlmFnct] =
message).
NotifSel px R Explanation: [AlmFnct] and [AlmCl] are not standard BACnet properties. In other words, if a PXC.. is connected in a
multivendor project to a BACnet 3rd Party management station, the parameters to define alarm response is NOT
displayed and cannot be operated.
Block pins [NotifCl], [NotifTyp] and [NotifSel] are available to meet the specification in the BACnet standard. They are
then available as properties of the BACnet object on BACnet clients.
[NotifSel] sets whether the PX alarm concept (predefined) or the standard BACnet alarm concept (customized) is to be
used.
The alarm function is no longer relevant when selecting "Customized".
The alarm class continues to be required to evaluate the common alarm block CMN_ALM.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 9 of 18
Hel_CSeq The sequence controller element features an incorrect direction of control action, e.g., heating
sequence in the cooling sequence.
Cel_HSeq The sequence controller element features an incorrect direction of control action, e.g., cooling
sequence in the heating sequence.
Rlb f R Reliability.
The recognized state of reliability is available.
[Rlb] can be changed at [OoServ] = Yes via BACnet.
Dstb f — Fault
Fault exists, i.e. [EvtSta]<>NORMAL or alarm state not yet reset (reset).
SupActv a R Event_Supression_Active
SupActv indicates whether an event suppression for this function block is enabled.
SupActv a status variable derived from AS_STA and CMN_ALM.
ImportantWhen deleting FBs AS_STA and CMN_ALM from the application (e.g. delta download), the value of FB
SupActv must be re-determined.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 10 of 18
True X X X True
Pin data
PIN Description Data type Value Unit Min. Max. Pin
type
EvtSta Event state. Multistate. Normal BACnet event state Normal Low limit In
AlmFnct Alarm function. Multistate. Basic Alarm function (LS) Simple Notification In
AlmCl Alarm class Multistate. Alarm with Alarm class Urgent alarm Offline trend In
medium
priority
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 11 of 18
NotifTyp Notification type Multistate. Alarm BACnet notify type Alarm Event In
NotifSel Notification function Boolean Predefined Notification function Predefined Custom colors. In
selection selector
CtrSta Controller state. Multistate. CtrOff. Controller state CtrOff. CtrMax. Out
StaFlg State flag. BitString 16#0000 BACnet state flags In alarm. Out of service. Out
Gain X X X X Gain = 0
Tn Tn = 0 X Tn = 0 X ---
Tv Tv = 0 Tv = 0 X X ---
Nz X X X X X (Spec.)
YctrOfs X O X O ---
Actg X X X X X
Inv X X X X X
X = Relevant for control response. O = Has influence on initialization. --- = Has no influence
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 12 of 18
Typical setting values for gain [Gain] and integral action time [Tn].
Ventilation / air conditioning
Controlled path Controlled variable Gain Tn
Actuating location to measuring location. [%/x] [s]
Heating
Controlled path Controlled variable Gain Tn
Actuating location to measuring location. [%/x] [s]
Fast domestic hot water path Domestic hot water temperature. 75 00:00:30
Control valve to measuring sensor (mixer or heat T [°C]
exchanger).
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 13 of 18
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 14 of 18
This type of interconnection is used if the PID_CTR blocks are located on the same chart.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 15 of 18
The individual PID_CTR blocks are interconnected via the SEQLINK block.
Interconnection occurs between the pins for block PID_CTR and a place on the SEQLINK block. The sequence of PID_CTR must match the order of
the places. However, free places are possible on the SEQLINK. Several SEQLINKs can be interconnected in series. Illustration
This type of interconnection is used if the PID_CTR blocks are located on different charts or if the individual sequence controller elements or
aggregates may not be interconnected (CAS library).
Important: The sequence controller elements must be parameterized in accordance with the interconnection.
The pins [ToLower] and [FmHigher], [FmLower] and [ToHigher] are interconnected only on a sequence controller. In this case, the following
information is transported:
PIN Description
_Crdn Coordination
Coordination signal of the sequence controller.
Low The sequence controller is off [Yctr] = [YctrMin]. Enabling signal for next lower sequence.
High The sequence controller is off [Yctr] = [YctrMax]. Enabling signal for next higher sequence.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 16 of 18
The first or lowest sequence controller elements have reverse direction for control action [Actg] = Reverse.
The first or highest sequence controller elements have direct direction of control action [Actg] = Direct.
A sequence controller element with changing direction of control action (e.g. energy recovery) can only be in between.
Deviations generate an error signal [ErSta] = Yes. Troubleshooting
The energy-free zone is defined by the setpoints on changeover of the direction of control action (e.g. heating setpoint, cooling setpoint).
Illustration
Application
Notes on applying the individual functions of the PID_CTR block:
PID controller, PID sequence controller
Neutral zone [Nz]
Gain factor [GainFac]
Positioning time of the plant
Tracking [Track]
Inverting the controller output [Inv]
Controller output offset [YctrOfs].
Reset PID controller, PID sequence controller
PID controller.
The PID controller with tracking input represents a universal controller for use in ventilating, heating, and air conditioning plants. It is used to control
any controlled variable, e.g., for the following applications:
Control with special limitations.
Control of actuating devices with significant dynamic, e.g., actuating motors with position feedback signal.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 17 of 18
The controller output for offset allows for setting the operating point at a constant load for P and PD controllers. With PI and PID controllers, the
integrator value is initialized with the offset value during startup (transition of operating mode 'Off' > operating mode 'On').
Tracking
Tracking is used to improve the control quality (e.g. anti-windup), for example, in the following cases:
If a limitation controller acts directly on the actuating device (e.g., minim or maximum selection), the positioning signal of the controller no
longer influences the control path. Returning the effective positioning signal to the tracking input keeps the controller on the present values
and guarantees continued, modulating control when the limitation controller no longer intervenes.
If an actuator has a position feedback signal, the signal can be sent directly to the controller on the tracking input.
Within the sequence, external tracking must not be used for limitation applications (e.g. use of limitation controllers). As an alternative to
external tracking, the limit values [YctrMin] and [YctrMax] can be influenced directly in the case of limitation applications.
Process response
During controller initialization, the controller output is set to value YctrMin. After initialization is complete, the function is stopped for about 3 cycles.
This neutralizes an unfavorable processing order. Afterwards, the function is executed by utilizing the values at the inputs.
In the sequence controller, each individual sequence control element is initialized individually so that the controller token arrives at the correct
sequence controller element only after a few cycles and the control is available.
Troubleshooting
The direction of control action is parameterized incorrectly
Within a sequence, the control action 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] = Yes.
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021
PID_CTR Page 18 of 18
Troubleshooting
The pins [Yctrp], [Yctri], and [Yctrd] help monitor the control response. Inactive sequence controller elements have [Yctrp] = [Yctri] = [Yctrd] = 0.
P-portion [Yctrp]
[Yctrp] is the P-portion of [Yctr] and is calculated from [Gain] x [GainFac].
If the controller gain is high, [Yctrp] changes faster on small control error changes.
[Yctrp] is not influenced by [Inv], [Ti0to100], [Ti100to0], [YctrMin], [YctrMax], and [YctrOfs].
I-portion [Yctri]
[Yctri] is the I-portion of [Yctr] and is calculated from the integral action time [Tn].
Initialization for integrating controllers: Operating mode 'Off' > operating mode 'On' [Yctri] = YctrOfs
D-portion [Yctrd]
[Yctrd] is the D-portion of [Yctr] and is calculated from the derivative action time [Tn].
[Yctrd] is not influenced by [Inv], [Ti0to100], [Ti100to0], [YctrMin], and [YctrMax].
Important: This behavior is valid only for PX firmware V5.10 SP and later. In earlier versions (including V5.10) the resolution is always linked to
[YCtr].
View all
mk:@MSITStore:D:\Siemens\References\XWP\CM111002en_03.chm::/PID_CTR.htm 6/11/2021