|
An output (
OP
) is the final resulting value produced by a regulatory
(primary) control function block (FB) that can be sent to a
secondary function block through a control connection described
by this AdapterType. A primary's
OP
can be sent to an analog output (AO) FB for the purpose of
modulating a control valve or it can be sent to an initializable
input of a secondary's regulatory control FB (e.g. a setpoint,
switch input, override selector input, etc.).
|
|
- When the secondary's initializable input (e.g. SP,
switch or override selector input) cannot accept an
OP
from its primary, the secondary sends a New Initialization
Request (NewInitReq) to its primary with an
Initialization Request (InitReq) value of TRUE
. A secondary may send an initialization request to its primary
because the secondary is not in a mode that allows it to accept
the primary's OP (e.g. secondary is not in CAS) or
because the secondary itself has been initialized by one of its
downstream blocks.
- When a primary receives a
NewInitReq event
from its secondary with InitReq=TRUE , then the
primary's OP is indisposable and the primary FB
must take appropriate actions, e.g., propagate the InitReq
to its primary, suspend control algorithm processing,etc.
|
|
- When a primary receives a
NewInitReq event
with InitReq=FALSE , then the primary's OP
is no longer indisposable and the primary can initialize its
control algorithm and begin forward control algorithm
processing.
- A secondary function block should not turn off its
primary's
InitReq variable until it has received
confirmation from its primary that it has received the
secondary's Back Calculation
value and successfully initialized its OP .
|
|
Bcalc is the value that a secondary
provides to a primary just prior to the primary's first forward
control algorithm pass to ensure bumpless transfer (although
the Bcalc could be sent from secondary to primary
every processing cycle that the cascade connection is open).
- Typically, a secondary sends a
Bcalc to
its primary when the secondary goes into CAS or is itself taken
out of an initialized state by its secondary (i.e. it received
InitReq=FALSE from its secondary).
- A
Bcalc value (normally equal to the
current value of the secondary's initializable input - e.g. SP
(Set Point)) is sent from the secondary to the primary with a
Back Calculation Request event ( BcalcReq ).
- Upon receiving a
BcalcReq , a primary
should store the Bcalc value into its output and
send a Back Calculation Confirmation back to the secondary (
BcalcCnf ).
- Upon receipt of the
BcalcCnf , the
secondary is assured that the primary has initialized its OP
to the Secondary's initializable input thereby preventing a
bump. At this point the secondary can turn off its primary's
InitReq , initialize its own control algorithm,
and begin to accept the primary's OP .
- The primary in a cascade will calculate and send its
OP
to the secondary in engineering units of the
secondary. The primary will also need to display its OP
in percent for the operator HMI (so the operator understands
how far away the OP is from saturation). To
accomplish this, each time a back calculation is sent to a
primary, the secondary must also provide to the primary its
engineering units in the adaptor parameters EuHi
and EuLo .
|
|
- If a primary PID controller is writing to an
initializable input of a secondary override selector, the
primary controller will need to know whether its output
(OP)
has been selected.
- When
Selected=TRUE , the primary should
continue with normal control processing.
- When
Selected=FALSE , the primary can
initialize its Output (OP) value to the Back
Calculation Bcalc value provided by the override
selector, typically biased by the primary's current (gain *
error) to prevent the override selector from flip-flopping on
incremental selector input changes.
- Upon each execution of its algorithm, an override
selector should use a
NewSelection event to set
its primary's Selected variable to either TRUE
or FALSE to indicate whether or not the specific
input has been selected.
- If a primary's
Selected variable is set
to FALSE , then the override FB must also
set the Bcalc variable in the adapter to the
override's selected output, since the primary will need this
value for its own initialization purposes.
- If the secondary is not an override selector, then it
should permanently set
Selected=TRUE in its
adapter interface.
|
|
WindUp status is passed from secondary to
primary in a cascade to inform the upstream block if the
downstream block is constrained in a high, low or both
directions. This information is important for a PID algorithm
so as to not wind up its OP via integral action
should the secondary become constrained.
- The possible windup status values are represented as
shown in the following table.
WindUp Value |
16#0 |
16#1 |
16#2 |
16#3 |
Windup Status |
None |
High |
Low |
Both |
- Depending on the value of the
WindUp
status, a primary in a cascade would stop PID integration in
the direction of the constraint, e.g. prevent positive integral
contributions to the OP if WindUp = 16#1
(High).
|