to pop up its description (if any).

ALGORITHM REQ IN ST : ERROR:=PV-SP; IF AUTO THEN IF WASAUTO AND NOT WASLIMITED THEN ITERM:=ITERM+ERROR*DT/TR; DTERM:=(3*(PV-X3)+X1-X2)*TD/DT/10; ELSE ITERM:=-KP*ERROR-XOUT; DTERM:=0; END_IF; XOUT:=-KP*ERROR-ITERM-DTERM; ELSE XOUT:=X0; END_IF X3:=X2; X2:=X1; X1:=PV; WASLIMITED := FALSE; IF XOUT<0 THEN XOUT:=0; WASLIMITED := TRUE; ELSIF XOUT>100 THEN XOUT:=100; WASLIMITED := TRUE; END_IF; WASAUTO:=AUTO; END_ALGORITHM
Upon the occurrence of an event at the REQ
input, an
instance of this function block type performs the REQ
algorithm shown above, followed by an event at the CNF
output.
The REQ
algorithm implements the reverse-acting PID
(Proportional+Integral+Derivative) control law
The manipulated variable XOUT,
the process variable PV
and the proportionality constant KP
are of type REAL
, as are the internal terms ERROR
, ITERM
and ETERM
. The reset time TR
and
derivative time TD
are of type TIME
. The
set point SP
and initial output value X0
are of type UINT
since they are considered to be
manually set, e.g., from an instance of the FACEPLATE
type.
The inputs PV,SP
and X0
are assumed to be
limited to the range 0 to 100 per cent of full scale, and the output
XOUT
is limited to the same range.
Provision is made for anti-reset windup and bumpless transer from MANUAL
to AUTO
mode through appropriate initialization of the
internal ITERM
and ETERM
variables.
See the TANK_MVCL
system
configuration for an example of the usage of an instance of this
type.