PIDE Presentation Part 1 PDF
PIDE Presentation Part 1 PDF
PIDE Presentation Part 1 PDF
The PIDE function block provides advanced capabilities over the standard PID ladder
language instruction. In addition, it uses the velocity form of the PID algorithm. The
gain terms are applied to the change in the value of the error or PV, not the value of error
or PV.
When looking at this instruction, we see that it has a large number of different inputs and
outputs. It is important that we select and apply the correct inputs to make the function
block function in the mode that is desired. The intent of this document is to break these
down into different sections to make the choice easier for all of us.
Operational States
PROGRAM CONTROL
OPERATOR CONTROL
Figure 2 PIDE Function Block with Operator Control State Inputs and Outputs.
X
X
Request Program Mode
X
X
X
X
0
0
0
0
0
1
1
1
Operator Mode
X
X
Program Mode
X
X
X
ProgOper Output
ProgProgReq Input
X
X
ProgOperReq Input
OperProgReq Input
OperOperReq Input
Request Operator Mode
X
X
X
X
X
X
X
X
AUTO
MANUAL
OVERRIDE
HAND
The instruction computes the change in the CV. The instruction regulates the
CV to maintain the PV at either the SPCascade value for Cascade control or
the SPCascade value multiplied by the Ratio value.
The instruction computes the change in the CV. Instruction regulates the CV
to maintain the PV at the SP
Instruction does not compute the change in the CV. CV = CVProg or CVOper
depending upon the operational condition.
In this mode, the instruction does not compute the change in SP. This mode is
typically used to set a safe state CV value for the loop. CV = CVOverride
regardless of the control mode.
Instruction does not compute the change in CV. CV = HandFB, regardless of
the control mode. Typically used when an external Hand/Auto station takes
control of the loop.
control. Note that the Override and Hand modes have mode request boolean inputs
which are only controlled by the users program. These inputs operate in both Program
and Operator control.
In looking at the function block icon we see that inputs are shown on the left hand side of
the block icon and outputs are shown on the right side. The boolean inputs are used to
control the state of the PIDE function block while the boolean outputs are used as status
or feedback indicators. The programmer, using the setup box inside the function block
icon can select which inputs and outputs he wants to display in his program. For
purposes of this discussion, analog variables are shown as all caps and boolean variables
are shown in lower case letters and have a dot inside their connection boxes.
While the different illustrations and the Figure 7 chart show boolean inputs whose tags
start with the word Prog, there are another duplicate set of inputs that start with the
word Oper that are used when the function block is in the Operator state. These inputs
are shown with an asterisk in front of their name.
Figure 5. PIDE with Auto, Manual, Hand and Override Control Functions for the
Program Control State Input and Outputs shown.
Figure 6. Additional Inputs and Outputs for Cascade and Ratio Control.
While the illustrations and the Table 7 chart show boolean inputs whose tags start with
the word Prog, there are another duplicate set of inputs that start with the word Oper
that are used when the function block is in the Operator state. These inputs are shown
with an asterisk in front of their name.
X
X
X
X
X
X
X
X
X
X
X
X
X
CasRat
X
X
X
X
X
Hand
Override
Manual
Auto
UseRatio
AllowCasRat
* ProgCasRatReq
ProgOverrideReq
* ProgAutoReq
* ProgManualReg
ProgHandReq
The chart in Table 7 shows how the different control modes for the PIDE function block
are achieved with different input combinations.. Status indicator states are shown in the
right hand columns.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Status 2 provides information on the timing status of the instruction. It uses bits 27
through 31 to indicate invalid timing states. Table 9 gives the information on the
meaning of the individual bits for this status word.
Status
Parameter
Word
Bit
Address
Explanation
1.00
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
InstructFault
PVFaulted
CVFaulted
HandFBFaulted
PVSpanInv
SPProgInv
SPOperInv
SPCascadeInv
SPLimitsInv
1.09
1.10
1.11
1.12
RatioProgInv
RatioOperInv
RatioLimitsInv
CVProgInv
1.13
CVOperInv
1.14
1.15
CVOverrideInv
CVPreviousInv
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
1.24
1.25
1.26
1.27
CVEUSpanInv
CVLimitsInv
CVROCLimitInv
FFInv
FFPreviousInv
HandFBInv
PgainInv
IGainInv
DGainInv
ZCDeadbandInv
PVDeadbandInv
PVROCLimitsInv
1.28
DevLLimitsInv
1.29
DevDeadbandInv
Notes
18
18
19
1
1
1
2
3
3
4
4
4
5
6
7
8
9
10
11
12
13
14
15
16
17
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Status
Word
Bit
Address
27
28
29
30
31
Parameter
Explanation
TimingModeInv
RTSMissed
RTSTimeInv
RTSTimeStampInv
DeltaTInv
Indicators
The PIDE function block has a number of boolean outputs which are used for status or
alarm indicators. These may be selected or deselected by checking or unchecking the
appropriate box in the function blocks for the desired indicator. Some of these indicators
have been reviewed earlier in this presentation. When unselected, they will not show up
on the function block pictoral.
These indicators and their triggers are explained below in Table 10.
Description
CVInitializing
CVHAlarm
CVLAlarm
CVROCAlarm
SPHAlarm
SPLAlarm
WindupHOut
Explanation
Initialization mode indicator. CVInitializing is set when CVInitReq is set, during
instruction first scan, and on a set to cleared transition of CVHealth (bad to good).
CVInitializing is cleared after the instruction has been initialized and CVInitReq is
cleared.
CV high alarm indicator.. Set when calculated value of CV > 100 or CVHLimit.
CV low alarm indicator.. Set when calculated value of CV < 0 or CVLLimit.
CV rate of change alarm indicator. Set when the rate of change for the CV exceeds
the CVROCLimit.
Set point high alarm indicator. Set when SP > SPHLimit.
Set point low alarm indicator. Set when SP < SPLLimit.
Windup high indicator. Set when either a SP high, CV high, or CV low
WindupLOut
RatioHAlarm
RatioLAlarm
ZCDeadbandOn
PVHAlarm
PVLAlarm
PVROCPosAlarm
PVROCNegAlarm
DevHHAlarm
DevHAlarm
DevLAlarm
DevLLAlarm
limit(depending on the control action) has been reached. This signal is typically used
by the WindupHIn input of the primary loop contoller to prevent its output from
winding up.
Windup low indicator. Set when either a SP high, CV high, or CV low
limit(depending on the control action) has been reached. This signal is typically used
by the WindupLIn input of the primary loop contoller to prevent its output from
winding up.
Ratio high alarm indicator. Set when Ratio > RatioHLimit.
Ratio low alarm indicator. Set when Ratio < RatioLLimit.
Zero crossing deadband indicator. When set, the value of CV does not change. If
ZCOff is set, then ZCDeadbandOn is set when the ERROR is within the ZCDeadband
range. If ZCOff is cleared, then ZCDeadbandOn is set when ERROR crosses zero
and remains within the ZCDeadband range. ZCDeadbandOn is cleared when ERROR
exceeds the deadband range or when ZCDeadband = 0.
PV high alarm indicator. Set when PV => PVHLimit. Cleared when PV <
(PVHLimit PVDeadband).
PV low alarm indicator. Set when PV =< PVLLimit. Cleared when PV > (PVLLimit
+ PVDeadband).
PV positive rate-of-change alarm indicator. Set when calculated PV rate-of-change
=> PVROCPosLimit.
PV negative rate-of-change alarm indicator. Set when calculated PV rate-of-change
=< (PVROCNegLimit x 1).
Deviation high-high alarm indicator. Set when PV => (SP+DevHHLimit). Cleared
when PV > (SP+DevHHLimit DevDeadband.
Deviation high alarm indicator. Set when PV => (SP+DevHLimit). Cleared when
PV > (SP+DevHLimit DevDeadband.
Deviation low alarm indicator. Set when PV =< (SP-DevLLimit). Cleared when PV
> (SP-DevHLimit + DevDeadband).
Deviation low-low alarm indicator. Set when PV =< (SP-DevLLLimit). Cleared
when PV > (SP-DevHLimit + DevDeadband).