Process Deadband Controller (PDBC)

This information applies to the CompactLogix 5380P and ControlLogix 5580P controllers.
The Process Deadband Controller (PDBC) instruction provides:
  • A Raise output, which is activated when the PV is less than the entered Raise threshold, and a Lower output, which is activated when the PV is greater than the entered Lower threshold.
  • Q and Q-Not outputs. Q is set when the PV falls below the Raise threshold and cleared when the PV rises above the Lower threshold; Q-Not is the inverse of Q.
  • High and Low Deviation alarms with configurable thresholds and deadbands. These alarms can provide notification that the PV is approaching an out-of-control condition.
  • Alarms for High PV Rate of Change Increasing and High PV Rate of Change Decreasing. These alarms can provide notification that the PV is changing faster than expected.
    NOTE: To correctly report the instantaneous rate of change, the application code should update the analog PV input at least as often as the PDBC instruction is scanned. For example, if the PV input is increasing 1 unit per second and updates every 1.00 seconds, but the PDBC instruction is being scanned every 500 ms, the instruction reports a rate of change of 0.0 for the scan when the input doesn’t change, and a rate of change of 2.0 (double) for the scan when the input is updated.
  • Operation in Manual and Automatic Loop Modes. In Automatic Loop Mode, the outputs are triggered by the control algorithm to keep the PV within limits. In Manual Loop Mode, the operator directly manipulates the Raise and Lower outputs from the HMI.
  • Operation in Operator, Program, Override, and Maintenance command sources.
Available Languages
Ladder Diagram
pdbc_avail_ld
Function Block Diagram
PDBC_avail_FBD
Structured Text
PDBC(PDBCTag, 0);
Operands
IMPORTANT:
Unexpected operation may occur if:
  • Output tag operands are overwritten.
  • Members of a structure operand are overwritten.
  • Except when specified, structure operands are shared by multiple instructions.
There are data conversion rules for mixing numeric data types within an instruction. See Data conversions.
Configuration Operands
Operand
Type
Format
Description
PlantPAx Control
P_DEADBAND
tag
PDBC structure
BusObj
BUS_OBJ
tag
Bus component
P_ DEADBAND Structure
Public members are standard, visible tag members that are programmatically accessible. Private, hidden members are used in HMI faceplates and are not programmatically accessible. Private members are listed in separate tables after public members.
Public Input Members
Data Type
Description
EnableIn
BOOL
Enable input. Ladder Diagram: Corresponds to the rung condition.
Default is true.
Inp_InitializeReq
BOOL
Use this request when reinitializing.
Default is true.
Inp_PV
REAL
Process variable being controlled (engineering units). Valid = Any float.
Default is 0.0.
Inp_PVSrcQ
SINT
Input source and quality from channel object, if available (enumerator). Valid = 0 to 32.
Default is 0.
Inp_PVNotify
SINT
Related process variable object alarm priority and acknowledgement status.
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Default is 0.
Inp_PVBad
BOOL
1 = Process variable or input/output communications status bad, 0 = Process variable and input/output communications healthy.
Default is false.
Inp_OvrdCmd
SINT
Override command: 0 = No command, 1 = Raise, 2 = Lower, 3 = None, 4 = Manual, 5 = Auto.
Default is 0.
Inp_OvrdRaiseSP
REAL
Override mode raise setpoint (engineering units). Valid = Any float from Cfg_SPLoLim to Cfg_SPHiLim.
Default is 0.0.
Inp_OvrdLowerSP
REAL
Override mode lower setpoint (engineering units). Valid = Any float from Cfg_SPLoLim to Cfg_SPHiLim.
Default is 0.0.
Inp_HiDevGate
BOOL
The gate input used for high deviation status detection. 1 = The corresponding analog input threshold monitoring is enabled. 0 = detection is disabled and the corresponding status output is forced off.
Default is false.
Inp_LoDevGate
BOOL
The gate input used for low deviation status detection. 1 = The corresponding analog input threshold monitoring is enabled. 0 = detection is disabled and the corresponding status output is forced off.
Default is false.
Inp_HiRoCIncrGate
BOOL
The gate input used for high rate of change (increasing) status detection. 1 = The corresponding analog input threshold monitoring is enabled. 0 = detection is disabled and the corresponding status output is forced off.
Default is false.
Inp_HiRoCDecrGate
BOOL
The gate input used for high rate of change (decreasing) status detection. 1 = The corresponding analog input threshold monitoring is enabled. 0 = detection is disabled and the corresponding status output is forced off.
Default is false.
Inp_OwnerCmd
DINT
Owner device command:
Inp_OwnerCmd.0 = None,
Inp_OwnerCmd.10 = Operator lock,
Inp_OwnerCmd.11 = Operator unlock,
Inp_OwnerCmd.12 = Program lock,
Inp_OwnerCmd.13 = Program unlock,
Inp_OwnerCmd.14 = Acquire maintenance,
Inp_OwnerCmd.15 = Release maintenance,
Inp_OwnerCmd.16 = Acquire external,
Inp_OwnerCmd.17 = Release external.
Default is 0.
Inp_ExtInh
BOOL
1 = Inhibit external acquisition, 0 = Allow external acquisition.
Default is false.
Inp_Hand
BOOL
1 = Acquire hand (typically hardwired local), 0 = Release hand.
Default is false.
Inp_Ovrd
BOOL
1 = Acquire override (higher priority program logic), 0 = Release override.
Default is false.
Cfg_PVDecPlcs
SINT
Number of decimal places for process variable display. Valid = 0 to 6.
Default is 2.
Cfg_SetTrack
BOOL
1 = PSets track OSets in operator, OSets track PSets in program, 0 = no tracking.
Default is false.
Cfg_HasMoreObj
BOOL
1 = Tells HMI an object with more info is available.
Default is false.
Cfg_HasPVNav
BOOL
1 = Tells HMI to enable navigation to a connected process variable object.
Default is false.
Cfg_HasOutNav
BOOL
1 = Tells HMI to enable navigation to a connected output object, 0 = No connected output object.
Default is false.
Cfg_PVEUMin
REAL
Input process variable range minimum (engineering units). Valid = Any float.
Default is 0.0.
Cfg_PVEUMax
REAL
Input process variable range maximum (engineering units). Valid = Any float.
Default is 100.0.
Cfg_SPHiLim
REAL
Setpoint high limit clamp (engineering units). Valid = 0.0 to maximum positive float.
Default is 100.0.
Cfg_SPLoLim
REAL
Setpoint low limit clamp (engineering units). Valid = 0.0 to maximum positive float.
Default is 0.0.
Cfg_RaiseDB
REAL
Deadband for the raise output (above raise limit). Valid = 0.0 to (Cfg_SPHiLim - Cfg_SPLoLim).
Default is 1.0.
Cfg_LowerDB
REAL
Deadband for the lower output (below lower limit). Valid = 0.0 to (Cfg_SPHiLim - Cfg_SPLoLim).
Default is 1.0.
Cfg_RateTime
REAL
Process variable rate of change time base (seconds), 1.0 = /second, 60.0 = /minute, 3600.0 = /hour. Valid = 0.0 to maximum positive float.
Default is 1.0.
Cfg_HiDevLim
REAL
High deviation status threshold (engineering units). Valid = 0.0 to maximum positive float.
Default is 100.0.
Cfg_HiDevDB
REAL
High deviation status deadband (engineering units). Valid = 0.0 to high deviation threshold.
Default is 1.0.
Cfg_LoDevLim
REAL
Low deviation status threshold (engineering units). Valid = minimum negative float to 0.0.
Default is -99.0.
Cfg_LoDevDB
REAL
Low deviation status deadband (engineering units). Valid = 0.0 to -(low deviation threshold).
Default is 1.0.
Cfg_HiDevGateDly
REAL
High deviation status gate delay (seconds). Time .Inp_HiDev must be 1 before high deviation condition is checked. Valid = 0.0 to 2147483.0 seconds.
Default is 0.0.
Cfg_LoDevGateDly
REAL
Low deviation status gate delay (seconds). Time .Inp_LoDev must be 1 before low deviation condition is checked. Valid = 0.0 to 2147483.0 seconds.
Default is 0.0.
Cfg_HiRoCIncrLim
REAL
Program - entered high rate of change (increasing) status threshold (engineering units / rate time). Valid = 0.0 to maximum positive float.
Default is 100.0.
Cfg_HiRoCIncrDB
REAL
High rate of change (increasing) status deadband (engineering units / rate time). Valid = 0.0 to Cfg_HiRoCIncrLim.
Default is 1.0.
Cfg_HiRoCIncrGateDly
REAL
High rate of change (increasing) status gate delay (seconds). Valid = 0.0 to 2147483.0.
Default is 0.0.
Cfg_HiRoCDecrLim
REAL
Program - entered high rate of change (decreasing) status threshold (engineering units / rate time). Valid = 0.0 to maximum positive float.
Default is 100.0.
Cfg_HiRoCDecrDB
REAL
High rate of change (decreasing) status deadband (engineering units / rate time). Valid = 0.0 to Cfg_HiRoCDecrLim.
Default is 1.0.
Cfg_HiRoCDecrGateDly
REAL
High rate of change (decreasing) status gate delay (seconds). Valid = 0.0 to 2147483.0.
Default is 0.0.
Cfg_ExtAcqAsLevel
BOOL
1 = XCmd_Acq used as level (1 = Acquire, 0 = Release).
Default is false.
Cfg_ExtOverLock
BOOL
1 = External supersedes program / Operator Lock, 0 = Don't override Lock.
Default is false.
Cfg_HasExt
BOOL
1 = External exists, can be selected.
Default is false.
Cfg_HasMaint
BOOL
1 = Maintenance exists, can be selected.
Default is true.
Cfg_HasMaintOoS
BOOL
1 = Maintenance out of service exists, can be selected.
Default is true.
Cfg_HasOper
BOOL
1 = Operator (unlocked) exists, can be selected.
Default is true.
Cfg_HasOperLocked
BOOL
1 = Operator locked exists, can be selected.
Default is true.
Cfg_HasProg
BOOL
1 = Program (unlocked) exists, can be selected.
Default is true.
Cfg_HasProgLocked
BOOL
1 = Program locked exists, can be selected.
Default is true.
Cfg_OvrdOverLock
BOOL
1 = Override supersedes program / operator lock, 0 = Don't override lock.
Default is true.
Cfg_PCmdLockAsLevel
BOOL
1 = .PCmd_Lock used as a Level (1 = Lock, 0 = Unlock).
Default is false.
Cfg_AllowDisable
BOOL
1 = Allow maintenance to disable alarms.
Default is true.
Cfg_AllowShelve
BOOL
1 = Allow operator to shelve alarms.
Default is true.
Cfg_PCmdPriority
BOOL
1 = Program commands take priority, 0 = Operator commands take priority.
Default is false.
Cfg_PCmdProgAsLevel
BOOL
1 = PCmd_Prog used as a level.
Default is false.
Cfg_ProgNormal
BOOL
Normal source: 1 = Program if no requests, 0 = Operator if no requests.
Default is false.
Cfg_ProgPwrUp
BOOL
1 = Power up to program mode, 0 = Power up to operator mode.
Default is false.
Cfg_CnfrmReqd
SINT
Operator Command Confirmation Required. Represents the type of command confirmation required.
0 = None,
1 = Command confirmation required,
2 = Performer e-signature required,
3 = Performer and approver e-signature required.
Default is 0.
PSet_LowerSP
REAL
Program setting for raise setpoint (engineering units). Valid = Any float from Cfg_SPLoLim to Cfg_SPHiLim.
Default is 30.0.
PSet_RaiseSP
REAL
Program setting for raise setpoint (engineering units). Valid = Any float.
Default is 20.0.
PSet_Owner
DINT
Program owner request ID (non-zero) or release (zero). Valid = Any integer greater or equal to 0.
Default is 0.
XSet_LowerSP
REAL
External setting for lower setpoint (engineering units). Valid = Any float from Cfg_SPLoLim to Cfg_SPHiLim.
Default is 30.0.
XSet_RaiseSP
REAL
External setting for raise setpoint (engineering units). Valid = Any float from Cfg_SPLoLim to Cfg_SPHiLim.
Default is 20.0.
PCmd_Raise
BOOL
Program command to set output to raise, when in program manual. 1 = Raise. The instruction clears this operand automatically.
Default is false.
PCmd_Lower
BOOL
Program command to set output to lower, when in program manual. 1 = Lower. The instruction clears this operand automatically.
Default is false.
PCmd_None
BOOL
Program command to clear raise, lower outputs, when in program manual. 1 = Clear .PCmd_Raise and PCmd_Lower. The instruction clears this operand automatically.
Default is false.
PCmd_Auto
BOOL
Program command to select automatic loop mode. 1 = Select automatic loop mode. The instruction clears this operand automatically.
Default is false.
PCmd_Man
BOOL
Program command to select manual loop mode. 1 = Select manual loop mode. The instruction clears this operand automatically.
Default is false.
PCmd_Reset
BOOL
Program Command to reset shed latches and cleared alarms. 1 = Reset shed latches and cleared alarms. The instruction clears this operand automatically.
Default is false.
PCmd_Lock
BOOL
Program command to lock program (disallow operator). The instruction clears this operand automatically if Cfg_PCmdLockAsLevel = 0.
Default is false.
PCmd_Normal
BOOL
Program command to select normal command source (operator or program). The instruction clears this operand automatically.
Default is false.
PCmd_Oper
BOOL
Program command to select operator (program to operator). The instruction clears this operand automatically.
Default is false.
PCmd_Prog
BOOL
Program command to select program (operator to program). The instruction clears this operand automatically.
Default is false.
PCmd_Unlock
BOOL
Program command to unlock Program (allow Operator to acquire). The instruction clears this operand automatically.
Default is false.
XCmd_Raise
BOOL
External command to set output to raise, when in external manual. 1 = Lower. The instruction clears this operand automatically.
Default is false.
XCmd_Lower
BOOL
External command to set output to lower, when in external manual. 1 = Lower. The instruction clears this operand automatically.
Default is false.
XCmd_None
BOOL
External command to clear raise, lower outputs, when in external manual. 1 = Clear XCmd_Raise and XCmd_Lower. The instruction clears this operand automatically.
Default is false.
XCmd_Auto
BOOL
External command to select automatic loop mode. 1 = select automatic loop mode. The instruction clears this operand automatically.
Default is false.
XCmd_Man
BOOL
External command to select manual loop mode. 1 = Select manual loop mode. The instruction clears this operand automatically.
Default is false.
XCmd_Reset
BOOL
External command to reset shed latches and cleared alarms. 1 = Reset shed latches and cleared alarms. The instruction clears this operand automatically.
Default is false.
XCmd_ResetAckAll
BOOL
External command to acknowledge and reset all alarms and latched shed conditions. The instruction clears this operand automatically.
Default is false.
XCmd_Acq
BOOL
External command to acquire ownership (operator/program/override/maintenance to external). The instruction clears this operand automatically if Cfg_ExtAcqAsLevel = 0.
Default is false.
XCmd_Rel
BOOL
External command to release ownership, if Cfg_ExtAcqAsLevel = 0 (external to operator/program/override/maintenance). The instruction clears this operand automatically.
Default is false.
Public Output Members
Data Type
Description
EnableOut
BOOL
Enable Output - This output state always reflects EnableIn input state.
Out_Raise
BOOL
Output to drive process variable to raise.
Out_Lower
BOOL
Output to drive process variable to lower.
Out_Q
BOOL
1 = Setpoint raised, 0 = Setpoint lowered.
Out_QNot
BOOL
1 = Setpoint lowered, 0 = Setpoint raised.
Out_OwnerSts
DINT
Status of command source, owner command handshake and ready status:
Out_OwnerSts.0 = None,
Out_OwnerSts.10 = Operator lock,
Out_OwnerSts.11 = Operator unlock,
Out_OwnerSts.12 = Program lock,
Out_OwnerSts.13 = Program unlock,
Out_OwnerSts.14 = Acquire maintenance,
Out_OwnerSts.15 = Release maintenance ,
Out_OwnerSts.16 = Acquire external,
Out_OwnerSts.17 = Release external,
Out_OwnerSts.18 = Has maintenance,
Out_OwnerSts.19 = External override lock,
Out_OwnerSts.20 = Has External,
Out_OwnerSts.21 = Has operator,
Out_OwnerSts.22 = Has program,
Out_OwnerSts.30 = Not ready.
Val_PV
REAL
Process variable value (engineering units). (scaled range between minimum and maximum).
Val_RoC
REAL
Process variable rate of change value (engineering units / rate time).
Val_LowerSP
REAL
Accepted value for lower setpoint (engineering units).
Val_RaiseSP
REAL
Accepted value for raise setpoint (engineering units).
Val_PVEUMin
REAL
Minimum of scaled range, minimum between Cfg_PVEUMin and Cfg_PVEUMax.
Val_PVEUMax
REAL
Maximum of scaled range, maximum between Cfg_PVEUMin and Cfg_PVEUMax.
Val_Owner
DINT
Current object owner ID, 0 = Not owned.
SrcQ_IO
DINT
Source and quality of primary input / output (enumeration).
SrcQ
DINT
Source and quality of primary value / status (enumeration).
Sts_Initialized
BOOL
1 = Instruction is initialized. Use Inp_InitializeReq to reinitialize.
Sts_Raise
BOOL
1 = Process variable below raise setpoint, Out_Raise = 1.
Sts_Lower
BOOL
1 = Process variable above lower setpoint, Out_Lower = 1.
Sts_Auto
BOOL
1 = Current loop mode is automatic.
Sts_Man
BOOL
1 = Current loop mode is manual.
Sts_Q
BOOL
1 = Out_Q = 1, Out_QNot = 0.
Sts_Available
BOOL
1 = Loop available for manipulation in program mode.
Sts_NotRdy
BOOL
1 = Device not ready, see detail bits for reason.
Sts_NrdyCfgErr
BOOL
1 = Device not ready: Configuration error.
Sts_NrdyOoS
BOOL
1 = Device is not ready: Device disabled by maintenance.
Sts_AlmInh
BOOL
1 = An alarm is inhibited, disabled or suppressed (Display icon on HMI).
Sts_Err
BOOL
1 = Error in configuration: See detail bits (Sts_ErrXXX) for reason.
Sts_ErrEU
BOOL
1 = Error in configuration: Scaled engineering units Cfg_PVEUMin = Cfg_PVEUMax.
Sts_ErrRateTime
BOOL
1 = Error in configuration: Process variable rate of change time base.
Sts_ErrAlm
BOOL
1 = Error in configuration: Alarm minimum on time or severity.
Sts_OoS
BOOL
1 = Out of service is selected (supersedes maintenance, override, external, program, operator).
Sts_Prog
BOOL
1 = Program mode is selected.
Sts_RdyReset
BOOL
1 = A latched alarm or shed condition is ready to be reset.
Sts_RdyAck
BOOL
1 = An alarm is ready to be acknowledged.
Sts_HiDevCmp
BOOL
Process variable high deviation comparison result = 1.
Sts_HiDevGate
BOOL
Process variable high deviation gate delay status, 1 = Done.
Sts_HiDev
BOOL
1 = Analog input deviation is above high limit. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Access alarm elements in this format: PDBCTag.@Alarms.Alm_HiDev.AlarmElement.
Sts_LoDevCmp
BOOL
Process variable low deviation comparison result = 1.
Sts_LoDevGate
BOOL
Process variable low deviation gate delay status, 1 = Done.
Sts_LoDev
BOOL
1 = Analog input deviation is below low limit. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Access alarm elements in this format: PDBCTag.@Alarms.Alm_HiRoCIncr.AlarmElement.
Sts_HiRoCIncrCmp
BOOL
Process variable high rate of change (increasing) comparison result = 1.
Sts_HiRoCIncrGate
BOOL
Process variable high rate of change (increasing) gate delay status, 1 = Done.
Sts_HiRoCIncr
BOOL
1 = Analog input PV rate of change (increasing) is above high limit. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Access alarm elements in this format: PDBCTag.@Alarms.Alm_HiRocIncr.AlarmElement.
Sts_HiRoCDecrCmp
BOOL
Process variable high rate of change (decreasing) comparison result = 1.
Sts_HiRoCDecrGate
BOOL
Process variable high rate of change (decreasing) gate delay status, 1 = Done.
Sts_HiRoCDecr
BOOL
1 = Analog input PV rate of change (decreasing) is above high limit. There is a predefined default discrete Logix tag-based alarm for the status. Set standard configuration members of the discrete Logix tag-based alarm. Access alarm elements in this format: PDBCTag.@Alarms.Alm_HiRocDecr.AlarmElement.
Sts_eNotify
SINT
All alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyAll
SINT
All alarm status enumerated values including related objects:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyHiDev
SINT
High Deviation Gate alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyHiRoCDecr
SINT
High Rate of Change (Decreasing) alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyHiRoCIncr
SINT
High Rate of Change (Increasing) alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_eNotifyLoDev
SINT
Low Deviation alarm status enumerated values:
0 = Not in alarm, acknowledged,
1 = Not in alarm, unacknowledged or reset required,
2 = Low severity alarm, acknowledged,
3 = Low severity alarm, unacknowledged,
4 = Medium severity alarm, acknowledged,
5 = Medium severity alarm, unacknowledged,
6 = High severity alarm, acknowledged,
7 = High severity alarm, unacknowledged,
8 = Urgent severity alarm, acknowledged,
9 = Urgent severity alarm, unacknowledged.
Sts_UnackAlmCount
DINT
Count of unacknowledged alarms.
Sts_Alm
BOOL
1 = An alarm is active.
Sts_ErrHiDevGateDly
BOOL
1 = Error in configuration: Cfg_HiDevGateDly value is invalid.
Sts_ErrLoDevGateDly
BOOL
1 = Error in configuration: Cfg_LoDevGateDly value is invalid.
Sts_ErrHiRoCIncrGateDly
BOOL
1 = Error in configuration: Cfg_HiRoCIncrGateDly value is invalid.
Sts_ErrHiRoCDecrGateDly
BOOL
1 = Error in configuration: Cfg_HiRoCDecrGateDly value is invalid.
Sts_Oper
BOOL
1 = Operator mode is selected.
Sts_Maint
BOOL
1 = Maintenance is selected (supersedes override, external, program, operator).
Sts_Ext
BOOL
1 = External is selected (supersedes program and operator).
Sts_Ovrd
BOOL
1 = Override is selected (supersedes external, program, operator).
Sts_eFault
INT
Device Fault Status:
0 = None,
1 = Low deviation,
2 = High deviation,
3 = High rate of change (decreasing),
4 = High rate of change (increasing),
5 = Input source bad,
6 = Configuration error.
Sts_eSts
INT
Device status:
0 = Deadband, Q is off,
1 = Deadband Q is on,
2 = Above lower SP,
3 = Below lower SP,
4-7 = same, in manual,
8 = Out of service
Sts_bSrc
INT
Active selection bitmap (for HMI totem pole with command source request selection):
Sts_bSrc.0 = Hand,
Sts_bSrc.1 = Programmed out of service (rung false), Sts_bSrc.2 = Maintenance out of service,
Sts_bSrc.3 = Maintenance,
Sts_bSrc.4 = Override,
Sts_bSrc.5 = External,
Sts_bSrc.6 = Program locked,
Sts_bSrc.7 = Program,
Sts_bSrc.8 = Operator locked,
Sts_bSrc.9 = Operator.
Sts_eSrc
INT
The current command source enumerated values:
0 = Logic not in use,
4 = Hand,
8 = Maintenance,
16 = Override,
32 = Program,
33 = Program locked,
34 = Program by default (Normal),
64 = Operator,
65 = Operator locked,
66 = Operator by default (Normal),
128 = Maintenance Out of Service,
129 = Programmed Out of Service (rung false),
256 = External.
Sts_ExtReqInh
BOOL
1 = External request inhibited, cannot get to external from current state.
Sts_Hand
BOOL
1 = Hand is selected (supersedes out of service, maintenance, override, external, program, operator).
Sts_MAcqRcvd
BOOL
1 = Maintenance acquire command received this scan (Read only).
Sts_Normal
BOOL
1 = Selection equals the normal (program or operator).
Sts_OperLocked
BOOL
1 = Operator is selected and locked.
Sts_ProgLocked
BOOL
1 = Program is selected and locked.
Sts_ProgOperLock
BOOL
Program/operator lock (latch) state,
1 = Locked,
0 = Unlocked.
Sts_ProgOperSel
BOOL
Program/operator selection (latch) state:
1 = Program,
0 = Operator.
Sts_ProgReqInh
BOOL
1 = Program request inhibited, cannot get to program from current state.
XRdy_Acq
BOOL
1 = Ready for XCmd_Acq, enable HMI button.
XRdy_Rel
BOOL
1 = Ready for XCmd_Rel, enable HMI button (Read Only).
XRdy_Reset
BOOL
1 = Ready for XCmd_Reset, enable HMI button.
Rdy_ResetAckAll
BOOL
1 = Ready for XCmd_ResetAckAll, enable HMI button.
XRdy_Auto
BOOL
1 = Ready for XCmd_Auto.
XRdy_Lower
BOOL
1 = Ready for XCmd_Lower.
XRdy_Man
BOOL
1 = Ready for XCmd_Man.
XRdy_None
BOOL
1 = Ready for XCmd_None.
XRdy_Raise
BOOL
1 = Ready for XCmd_Raise.
Private Input Members
Data Type
Description
HMI_BusObjIndex
DINT
HMI bus object index
Default is 0.
MCmd_Acq
BOOL
Maintenance command to acquire ownership (operator / program / external / override to maintenance). The instruction clears this operand automatically.
Default is false.
MCmd_IS
BOOL
Maintenance command to select in service. The instruction clears this operand automatically.
Default is false.
MCmd_OoS
BOOL
Maintenance command to select out of service. The instruction clears this operand automatically.
Default is false.
MCmd_Rel
BOOL
Maintenance command to release ownership (maintenance to operator / program / external / override). The instruction clears this operand automatically.
Default is false.
OCmd_Auto
BOOL
Operator command to select automatic loop mode.
Default is false.
OCmd_Lock
BOOL
Operator command to lock operator (disallow program). The instruction clears this operand automatically.
Default is false.
OCmd_Lower
BOOL
Operator command to set output to lower (in manual).
Default is false.
OCmd_Man
BOOL
Operator command to select manual loop mode.
Default is false.
OCmd_None
BOOL
Operator command to clear raise, lower outputs (in manual).
Default is false.
OCmd_Normal
BOOL
Operator command to select normal (operator or program). The instruction clears this operand automatically.
Default is false.
OCmd_Oper
BOOL
Operator command to select operator (program to operator). The instruction clears this operand automatically.
Default is false.
OCmd_Prog
BOOL
Operator command to select program (operator to program). The instruction clears this operand automatically.
Default is false.
OCmd_Raise
BOOL
Operator command to set output to raise (in manual).
Default is false.
OCmd_Reset
BOOL
Operator command to reset shed latches and cleared alarms.
Default is false.
OCmd_ResetAckAll
BOOL
Operator command to reset shed latches and cleared alarms, plus acknowledge alarms.
Default is false.
OCmd_Unlock
BOOL
Operator command to unlock or release ownership and allow program to acquire ownership. The instruction clears this operand automatically.
Default is false.
OSet_LowerSP
REAL
Operator setting for lower setpoint (engineering units).
Default is 30.0.
OSet_RaiseSP
REAL
Operator setting for raise setpoint (engineering units).
Default is 20.0.
Private Input Members
Data Type
Description
CmdSrc
P_COMMAND_SOURCE
Control / Command Source Selection
MCmd_Acq
BOOL
Maintenance command to acquire ownership (operator / program / external / override to maintenance). The instruction clears this operand automatically.
Default is false.
MCmd_IS
BOOL
Maintenance command to select in service. The instruction clears this operand automatically.
Default is false.
MCmd_OoS
BOOL
Maintenance command to select out of service. The instruction clears this operand automatically.
Default is false.
MCmd_Rel
BOOL
Maintenance command to release ownership (maintenance to operator / program / external / override). The instruction clears this operand automatically.
Default is false.
OCmd_Auto
BOOL
Operator command to select automatic loop mode.
Default is false.
OCmd_Lock
BOOL
Operator command to lock operator (disallow program). The instruction clears this operand automatically.
Default is false.
OCmd_Lower
BOOL
Operator command to set output to lower (in manual).
Default is false.
OCmd_Man
BOOL
Operator command to select manual loop mode.
Default is false.
OCmd_None
BOOL
Operator command to clear raise, lower outputs (in manual).
Default is false.
OCmd_Normal
BOOL
Operator command to select normal (operator or program). The instruction clears this operand automatically.
Default is false.
OCmd_Oper
BOOL
Operator command to select operator (program to operator). The instruction clears this operand automatically.
Default is false.
OCmd_Prog
BOOL
Operator command to select program (operator to program). The instruction clears this operand automatically.
Default is false.
OCmd_Raise
BOOL
Operator command to set output to raise (in manual).
Default is false.
OCmd_Reset
BOOL
Operator command to reset shed latches and cleared alarms.
Default is false.
OCmd_ResetAckAll
BOOL
Operator command to reset shed latches and cleared alarms, plus acknowledge alarms.
Default is false.
OCmd_Unlock
BOOL
Operator command to unlock or release ownership and allow program to acquire ownership. The instruction clears this operand automatically.
Default is false.
OSet_LowerSP
REAL
Operator setting for lower setpoint (engineering units).
Default is 30.0.
OSet_RaiseSP
REAL
Operator setting for raise setpoint (engineering units).
Default is 20.0.
Private Output Members
Data Type
Description
HMI_BusObjIndex
DINT
HMI bus object index.
MRdy_Acq
BOOL
1 = Ready for MCmd_Acq, enable HMI button.
MRdy_IS
BOOL
1 = Ready for MCmd_IS, enable HMI button.
MRdy_OoS
BOOL
1 = Ready for MCmd_OoS, enable HMI button.
MRdy_Rel
BOOL
1 = Ready for MCmd_Rel, enable HMI button.
ORdy_Auto
BOOL
1 = Ready for OCmd_Auto.
ORdy_Lock
BOOL
1 = Ready for OCmd_Lock, enable HMI button.
ORdy_Lower
BOOL
1 = Ready for OCmd_Lower.
ORdy_Man
BOOL
1 = Ready for OCmd_Man.
ORdy_None
BOOL
1 = Ready for OCmd_None.
ORdy_Normal
BOOL
1 = Ready for OCmd_Normal, enable HMI button.
ORdy_Oper
BOOL
1 = Ready for OCmd_Oper, enable HMI button.
ORdy_Prog
BOOL
1 = Ready for OCmd_Prog, enable HMI button.
ORdy_Raise
BOOL
1 = Ready for OCmd_Raise.
ORdy_Reset
BOOL
1 = Ready for OCmd_Reset (enables HMI button).
ORdy_ResetAckAll
BOOL
1 = Ready for OCmd_ResetAckAll (enables HMI button).
ORdy_SP
BOOL
1 = Ready for Setpoint OSets (enables data entry fields).
ORdy_Unlock
BOOL
1 = Ready for OCmd_Unlock, enable HMI button.
Public InOut Members
Data Type
Description
BusObj
BUS_OBJ
Bus component
BUS_OBJ Structure
Members
Data Type
Description
Inp_Cmd
DINT
Input to assert commands
Out_Cmd
DINT
Resultant commands
Inp_CmdLLH
DINT
Input for level normally high commands
Out_CmdLLH
DINT
Resultant line level high commands
Inp_Sts
DINT
Input to assert status
Out_Sts
DINT
Resultant status
Inp_CmdAck
DINT
Input to assert a command acknowledgement
Out_CmdAck
DINT
Resultant command acknowledgements
Inp_SeverityMax
DINT
Input: maximum alarm severity
Out_SeverityMax
DINT
Resultant of maximum alarm severity
Cfg_CmdMask
DINT
Propagation mask for commands
Cfg_CmdLLHMask
DINT
Propagation mask for line level high commands
Cfg_StsMask
DINT
Propagation mask for status
Ref_Index
DINT
Bus array index
Operation
This diagram illustrates the functionality of the PDBC instruction:
PDBC_operation
Configuration of Strings for HMI
Configure strings for HMI faceplates (FT View) and for the
Logix Designer
configuration dialog box. The strings are set to extended properties of tag items. Configure the strings in
Logix Designer
only.
  • Description
  • Label for graphic symbol
  • Display Library for HMI Faceplate call-up
  • Instruction name
  • Area name
  • URL link
  • More Information
  • Number of decimal places
  • Output Units
  • Input Units
  • Allow Navigation Object Tag Name Output
  • Allow Navigation Object Tag Name Input
Implementation
This illustration shows normal implementation with the input condition mapped to Inp_PV on a separate branch. This approach controls an analog process variable (PV), such as temperature, level or pressure, between upper and lower control limits by triggering one or two discrete outputs.
PDBC_implementation
Monitor the PDBC Instruction
Use the operator faceplate from the PlantPAx library of Process objects for monitoring.
Affects Math Status Flags
No.
Major/Minor Faults
None specific to this instruction. See Index Through Arrays for array-indexing faults.
Execution
Ladder Diagram
Condition/State
Action Taken
Prescan
Rung-condition-out is cleared to false.
Sts_eSrc is set to 0. Sts_bSrc is set to 0.
Instruction first run
All commands that are automatically cleared each execution are cleared and ignored.
Inp_OvrdCmd is set to 0 (no command).
The Program/Operator selection is set based on the configuration (Cfg_ProgPwrUp).
The Program or Operator lock selection is set to unlocked.
The Maintenance acquired/released state is not modified and persists through a controller powerup or PROG-to-RUN transition.
PSet_Owner and Out_OwnerSts are set to 0.
Rung-condition-in is false
Rung-condition-out is cleared to false.
The instruction is put Out of Service if Inp_Hand=0. The output is set to Interlock CV and all alarm conditions are cleared.
Latched alarms are reset.
Command source selection processing proceeds except that Program and Operators commands are ignored and cleared and all ownership status bits (Sts_Maint, Sts_Ovrd, Sts_Ext, Sts_Prog and Sts_Oper) are cleared to 0. When rung-condition-in becomes true, the Program/Operator selection is set based on the configuration (Cfg_ProgPwrUp).
Rung-condition-in is true
Set rung-condition-out to rung-condition-in.
The instruction executes.
Postscan
Rung-condition-out is cleared to false.
Function Block Diagram
Condition/State
Action Taken
Prescan
EnableOut is cleared to false.
Sts_eSrc is set to 0. Sts_bSrc is set to 0.
Instruction first run
All commands that are automatically cleared on each execution are cleared and ignored.
Inp_OvrdCmd is set to 0 (no command).
The Program/Operator selection is set based on the configuration (Cfg_ProgPwrUp).
The Program or Operator lock selection is set to unlocked.
The Maintenance acquired/released state is not modified and persists through a controller powerup or PROG-to-RUN transition.
PSet_Owner and Val_Owner are set to 0.
Instruction first scan
See Instruction first run in the Function Block Diagram table.
EnableIn is false
EnableOut is cleared to false.
The instruction is put Out of Service if Inp_Hand=0. The output is set to Interlock CV and all alarm conditions are cleared.
Latched alarms are reset.
Command source selection processing proceeds except that Program and Operators commands are ignored and cleared and all ownership status bits (Sts_Maint, Sts_Ovrd, Sts_Ext, Sts_Prog and Sts_Oper) are cleared to 0. When rung-condition-in becomes true, the Program/Operator selection is set based on the configuration (Cfg_ProgPwrUp).
EnableIn is true
EnableOut is set to true.
The instruction executes.
Postscan
EnableIn and EnableOut bits are cleared to false.
Structured Text
In Structured Text, EnableIn is always true during normal scan. The instruction executes when it is in the control path activated by the logic.
Condition/State
Action Taken
Prescan
See Prescan in the Function Block Diagram table.
Instruction first run
See Instruction first run in the Function Block Diagram table.
EnableIn is true
See EnableIn is true in the Function Block Diagram table.
Postscan
See Postscan in the Function Block Diagram table.
Example
In this example, tag TI1_P50 is the temperature value monitored by the PDBC instruction. This tag provides a real indication of analog PV value.
Inp_PV is connected to the analog values tag (TI1_P50.Val) that comes from the Value output of the PAI instruction instance.
Ladder Diagram
PDBC_example_LD
Function Block Diagram
PDBC_example_FBD
Structured Text
PDBC01.Inp_PV := TI1_P50.Out;
PDBC(PDBC_01, 0);
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.