PIDE Presentation Part 1.pdf

7

Click here to load reader

Transcript of PIDE Presentation Part 1.pdf

Page 1: PIDE Presentation Part 1.pdf

1

PIDE - ENHANCED PID FUNCTION BLOCK

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 The users application program controls all modes.

OPERATOR CONTROL The users HMI system controls the normal operation of the PIDE function.

Table 1. Operational States

A boolean output labeled “ProgOper” is provided to indicate the operational condition of

the PIDE function block. It provides data on the control state of the function block for

both modes. If it is set to a logical “1”, the PIDE block is in the Program control state

and if set to a logical “0”, it is in the Operator control state.

Figure 2 – PIDE Function Block with Operator Control State Inputs and Outputs.

Page 2: PIDE Presentation Part 1.pdf

2

“Op

erO

per

Req

” In

pu

t

“Op

erP

rog

Req

” In

pu

t

“Pro

gO

per

Req

” In

pu

t

“Pro

gP

rog

Req

” In

pu

t

“Pro

gO

per

” O

utp

ut

Pro

gra

m M

od

e

Op

erat

or

Mod

e

Request “Operator” Mode X 0 X

X X X 0 X

X X 0 X

X X 0 X

X X 0 X

Request “Program” Mode X 1 X

X 1 X

X X 1 X

Table 3 – Operator/Program Mode Selection.

Table 3 shows the logical state of the various inputs required to place the PIDE function

block into either the Operator or Program mode state.

Operator Mode Faceplate

Included on the RSLogix50000 install CD are a number of faceplates that can be used

with different function blocks. A faceplate is provided for the PIDE function block. This

faceplate makes it very easy to use the PIDE with a HMI control package like RSView.

This faceplate is described on pages C-17 through C-19 of the Process Control and

Drives Instruction Manual, 1756-RM006A-EN-P.

Modes of Operation

CASCADE/RATIO 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.

AUTO The instruction computes the change in the CV. Instruction regulates the CV

to maintain the PV at the SP

MANUAL Instruction does not compute the change in the CV. CV = CVProg or CVOper

depending upon the operational condition.

OVERRIDE 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.

HAND 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.

Table 4. Modes of Operation

The Cascade/Ratio, Auto, and Manual modes can be controlled by the user’s program

when in Program control or by an operator faceplate or other interface when in Operator

Page 3: PIDE Presentation Part 1.pdf

3

control. Note that the Override and Hand modes have mode request boolean inputs

which are only controlled by the user’s 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.

Page 4: PIDE Presentation Part 1.pdf

4

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.

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.

Pro

gH

and

Req

* P

rog

Man

ual

Reg

* P

rog

Au

toR

eq

Pro

gO

ver

rid

eReq

* P

rog

Cas

Rat

Req

All

ow

Cas

Rat

Use

Rat

io

Au

to

Man

ual

Ov

erri

de

Han

d

Cas

Rat

Enable “Hand” mode X X

Enable “Override” mode X X

Enable “Manual” mode X X

Enable “Auto” mode X X

“Manual” from “Auto” X X X

“Auto” from “Manual” X X

Enable “Cascade” mode X X X

Enable “Ratio” mode X X X X

Back to “Auto” mode X X

“Hand” from “Manual” X X X

“Hand” from “Auto” X X X

“Hand” from “Override” mode X X X

“Override” mode X X X

“Hand” mode X X X X

Table 7. Control Modes Selection and Feedback Indicators.

Status Words 1 and 2

Two status words are included in the PIDE control structure. They are named “Status 1”

and “Status 2”. Both of these status words are DINT’s and in normal operation, should

have a value of zero. Each bit in the status word has a different meaning and provides

lots of help in trouble shooting problems in the instruction setup. The error data is

expressed in HEX in the PIDE control structure. Tables 8 and 9

Status 1 provides information on the status of the instruction. Everything is fine when it

has a a value of 0. It uses bits 00 through 29. Each bit has a different meaning with bit

00 indicating that a fault has been detected when its value equals 1. A breakdown of

what each error individual bit means and information regarding what happens to the

value impacted is shown in Table 8.

Page 5: PIDE Presentation Part 1.pdf

5

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

Word

Bit

Address

Parameter Explanation Notes

1.00 InstructFault An instruction fault has been detected.

1.01 PVFaulted Process variable (PV) bad 18

1.02 CVFaulted Control variable (CV) bad 18

1.03 HandFBFaulted Hand FB value bad 19

1.04 PVSpanInv PVEUMax <= PVEUMin

1.05 SPProgInv SPProg < SPLLimit or SPProg > SPHLimit 1

1.06 SPOperInv SPOper < SPLLimit or SPOper > SPHLimit 1

1.07 SPCascadeInv SPCascade < SPLLimit or SPCascade > SPHLimit 1

1.08 SPLimitsInv SPLLimit < PVEUMin, SPHLimit > PVEUMax, or SPHLimit

< SPLLimit.

2

1.09 RatioProgInv RatioProg < RatioLLimit or RatioProg > RatioHLimit 3

1.10 RatioOperInv RatioOper < RatioLLimit or RatioOper > RatioHLimit 3

1.11 RatioLimitsInv Low limit < 0 or High limit < low limit.

1.12 CVProgInv CVProg < 0 or CVProg > 100, or CVProg < CVLLimit or

CVProg > CVHLimit when CVManLimiting is set.

4

1.13 CVOperInv CVOper < 0 or CVOper > 100, or CVOper < CVLLimit or

CVOper > CVHLimit when CVManLimiting is set

4

1.14 CVOverrideInv CVOverride < 0 or CVOverride > 100. 4

1.15 CVPreviousInv CVPrevious < 0 or CVPrevious > 100 or > CVHLimit when in

Auto or Cascade/Ratio mode.

5

1.16 CVEUSpanInv Invalid CVEU span. 6

1.17 CVLimitsInv CVLLimit < 0, CVHLimit > 100, or CVHLimit < CVLLimit. 7

1.18 CVROCLimitInv CVROCLimit < 0. 8

1.19 FFInv FF < -100 or FF > 100. 9

1.20 FFPreviousInv FFPrevious < -100 or FFPrevious > 100. 10

1.21 HandFBInv HandFB < 0 or HandFB > 100. 11

1.22 PgainInv Pgain < 0. 12

1.23 IGainInv Igain < 0. 13

1.24 DGainInv Dgain < 0. 14

1.25 ZCDeadbandInv ZCDeadband < 0 15

1.26 PVDeadbandInv PVDeadband < 0

1.27 PVROCLimitsInv PVROCPostLimit < 0, PVROCNegLimit < 0, or

PVROCPeriod < 0.

1.28 DevLLimitsInv Low low limit < 0, Low limit < 0, High limit < 0 or High high

limit < 0.

16

1.29 DevDeadbandInv Deviation deadband < 0. 17

Table 8. Status 1 – Instruction Faults

Many of the faults are derived from limit settings for the different variables that the PIDE

uses. It is very important to make sure that when limits are used, they are set properly. Notes:

1. The instruction uses the limited value for SP.

2. The instruction limits the value using SPLLimit.

3. The instruction limits the value for Ratio.

4. The instruction limits the value for CV.

Page 6: PIDE Presentation Part 1.pdf

6

5. The instruction uses the limited value for CVn-1.

6. The instruction uses a value of CVEUMax = CVEUMin.

7. If CVHLimit < CVLLimit, the instruction limits CV using CVLLimit.

8. The instruction disables ROC limiting.

9. The instruction uses the limited value for FF.

10. The instruction uses the limited value for FFn-1.

11. The instruction uses the limited value for CV.

12. The instruction uses a value of Pgain = 0.

13. The instruction uses a value of Igain = 0.

14. The instruction uses a value of Dgain = 0.

15. The instruction disables zero crossing deadband.

16. The instruction uses 0 for the invalid limit.

17. The instruction uses a value of DevDeadband = 0.

18. Fault bit is set by the fault indicator of the analog input or output module.

19. Fault bit is set by the fault indicator of the analog input module which reads the HAND signal

from an External Auto-Manual station.

Status

Word

Bit

Address

Parameter Explanation

27 TimingModeInv Invalid TimingMode value

28 RTSMissed Only used in real time sampling mode. Set when ABS[

DeltaT – RTSTime}> 1 (.oo1 second).

29 RTSTimeInv Invalid RTSTime value.

30 RTSTimeStampInv Invalid RTSTimeStamp value

31 DeltaTInv Invalid DeltaT value

Table 9. Status 2 - Timing Status Errors

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 Explanation

CVInitializing 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.

CVHAlarm CV high alarm indicator.. Set when calculated value of CV > 100 or CVHLimit.

CVLAlarm CV low alarm indicator.. Set when calculated value of CV < 0 or CVLLimit.

CVROCAlarm CV rate of change alarm indicator. Set when the rate of change for the CV exceeds

the CVROCLimit.

SPHAlarm Set point high alarm indicator. Set when SP > SPHLimit.

SPLAlarm Set point low alarm indicator. Set when SP < SPLLimit.

WindupHOut Windup high indicator. Set when either a SP high, CV high, or CV low

Page 7: PIDE Presentation Part 1.pdf

7

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.

WindupLOut 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.

RatioHAlarm Ratio high alarm indicator. Set when Ratio > RatioHLimit.

RatioLAlarm Ratio low alarm indicator. Set when Ratio < RatioLLimit.

ZCDeadbandOn 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.

PVHAlarm PV high alarm indicator. Set when PV => PVHLimit. Cleared when PV <

(PVHLimit – PVDeadband).

PVLAlarm PV low alarm indicator. Set when PV =< PVLLimit. Cleared when PV > (PVLLimit

+ PVDeadband).

PVROCPosAlarm PV positive rate-of-change alarm indicator. Set when calculated PV rate-of-change

=> PVROCPosLimit.

PVROCNegAlarm PV negative rate-of-change alarm indicator. Set when calculated PV rate-of-change

=< (PVROCNegLimit x –1).

DevHHAlarm Deviation high-high alarm indicator. Set when PV => (SP+DevHHLimit). Cleared

when PV > (SP+DevHHLimit – DevDeadband.

DevHAlarm Deviation high alarm indicator. Set when PV => (SP+DevHLimit). Cleared when

PV > (SP+DevHLimit – DevDeadband.

DevLAlarm Deviation low alarm indicator. Set when PV =< (SP-DevLLimit). Cleared when PV

> (SP-DevHLimit + DevDeadband).

DevLLAlarm Deviation low-low alarm indicator. Set when PV =< (SP-DevLLLimit). Cleared

when PV > (SP-DevHLimit + DevDeadband).

Table 10 – Alarm Indicators