PID Controller

This function block represents a PID controller containing the following elements:

-     proportional term

-     integral term

-     differential term

-     integral wind-up avoidance logic

-     setup of controller output; with auto/manual selection

The controller implements the following continuous transfer function:

Internally, a velocity algorithm is used. The internally generated differential term is added at the last stage; This allows a smooth auto/manual transition and a transient-free parameter setting.

By connecting the D-Term to the X input, the controller will only react to changes in the controlled variable, but not to changes in the setpoint value.

Operating modes in "Manual" mode:

a) The controller works with a manual differential signal input.

b) The manual signal input Yh is interpreted as an absolute value and is channeled directly to the controller output Y as well as to the internal integral sum.


Overall controller implementation:


I-term (trapezoid rule):

When the controller output is being limited, the I-term is switched off until the limit condition is over, this condition is recognized as a sign-reversal in the error signal.



Name I/O Type(s) Function
X I FLOAT Controlled variable (sensor input)
d I FLOAT Control deviation
Kr I FLOAT Proportional gain input
Tn I FLOAT Reset time in [s]
Tv I FLOAT Derivative time in [s]
Yh I FLOAT Manual set input/manual differential input
HA I BYTE Manual mode parameter
Yo I FLOAT Upper limit input
Yu I FLOAT Lower limit input
St O BYTE Status byte
Y O FLOAT Controller output


Tn =0 I-term is off
Tv =0 D-term is off
HA[0] =1 Manual operation
HA[1] =1 Y+ adds the manual input Yh to Yi (manual mode a)
HA[2] =1 Y- subtracts the manual input Yh from Yi (manual mode a)
HA[3] =1 Mode select input: Yh is channeled directly to Y (manual mode b)

Status byte

St [0] =1 Limit Yu reached
St [1] =1 Limit Yo reached


The symbol indicates, whether the controller runs in manual or in automatic mode.