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
Function Block Diagram
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:
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.
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
Function Block Diagram
Structured Text
PDBC01.Inp_PV := TI1_P50.Out;
PDBC(PDBC_01, 0);
Provide Feedback