Process Dosing (PDOSE)

This information applies to the CompactLogix 5380P and ControlLogix 5580P controllers.
The Process Dosing (PDOSE) instruction controls an ingredient addition that uses a flow meter or weigh scale to measure the quantity of ingredient added.  The flow meter can provide an analog flow rate, an analog quantity (total), or a pulse count with rollover. If using a pulse generating flowmeter, a counting card must be used to determine the pulse count (or frequency). This instruction is designed to work well with the 1756-HSC (High-Speed Counter) module or the 1756-CFM (Configurable Flowmeter). The weigh scale can be on the receiving vessel, indicating gain in weight, or on the sourcing vessel, indicating loss in weight. The weigh scale can be connected using an analog input, device network, or other connection.
Use the PDOSE instruction to:
  • Provide inputs for rate (flow rate or quantity per time) and quantity (total or pulse count).
  • Use a pulse count as the Quantity process variable (PV), with configurable rollover count.
    IMPORTANT: A pulse counting card must be used with a pulse generating flowmeter.
  • Totalize the flow rate PV to determine the quantity delivered when the flowmeter provides a rate signal but no quantity.
  • Calculate the flow rate given the quantity by differentiating with respect to time when the meter provides a total or pulse count but no rate. If the rate PV is calculated from an input quantity, the PDOSE instruction uses a first-order, lag filter on the calculated rate PV signal to reduce the impact of jitter, scan time, quantization error, or input signal noise.
  • Provide a low rate cutoff function, used to ignore flow rate values near zero to deal with noise or zero calibration error in the rate signal.
  • Use a flowmeter with built-in totalizer. Forwards the totalizer clear command to the flowmeter and checks that the flowmeter's total was reset.
  • Provide outputs to control associated equipment, such as pumps and valves, to start and stop flow.
  • Monitor the status of controlled equipment, such as pumps and valves.
  • Monitor rate or quantity input communication status and provide indication of uncertain or bad rate PV or quantity PV.
  • Provide program or operator entry of a quantity to deliver (setpoint) and calculate the quantity remaining to deliver and percent complete during delivery.
  • Provide program or operator entry of high and low tolerance limits. Lets the program or operator initiate a tolerance check after delivery is complete. Provides a warning if under tolerance and lets the operator bump the flow to make up the shortage. The bump can be set up as a timed bump or as an operator jog-like function. Provides an alarm if over tolerance and inhibits further flow.
  • Automatically switch to a lower dribble flow rate as the quantity delivered approaches setpoint. Provides operator or program entry of the dribble quantity. Provides run, dribble, and stop outputs to controlled equipment.
  • Use a preact value to stop flow to account for material in the pipe, time for equipment to stop, and delays in measurement, scan, communication, and so forth. Provides operator or program entry of the preact value. Provides an optional automatic preact correction based on the error in delivery when tolerance is checked. The auto correction lets the preact learn the correct value over time.
  • Use the standard command source (PCMDSRC) instruction to provide ownership for entry of settings and acceptance of commands.
  • Provide linear scaling of the input weight value from raw, input card units to engineering, display units.
  • Provide a rate of weight change calculation (differentiation with respect to time) to generate an inferred flow rate. The calculated rate is filtered and has a low cutoff, so the rate is reported as zero when the change in weight is only from noise on the input weight signal.
  • Provide outputs to control associated equipment, such as pumps and valves to start and stop flow. The operator or the program can start the ingredient addition, then pause and resume as needed.
  • Monitor the status of controlled equipment, such as pumps and valves. Flow is stopped and an alarm is raised on an equipment fault or if the equipment fails to respond as commanded.
  • Monitor the weight PV input quality and communication status and provides indication of uncertain or bad weight PV. Flow is stopped and an alarm is raised on a bad PV or communication loss.
  • Provide a continuous monitoring function which allow continuous monitoring without SP requirement.
Available Languages
Ladder Diagram
PDOSE_avail_ladder
Function Block Diagram
PDOSE_avail_FBD
Structured Text
PDOSE (PDOSE tag, Inp_QtyPV, Inp_RatePV, BusObj);
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_DOSING
tag
Data structure required for proper operation of instruction.
Inp_QtyPV
REAL
tag
Quantity from weigh scale or flowmeter (EU or pulse count).
Inp_RatePV
REAL
tag
Flow rate from flowmeter (EU/Time, see Cfg_RateTime).
BusObj
BUS_OBJ
tag
Bus component.
P_DOSING 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
FBD Default Visibility
FBD Wiring required
Usage
Description
EnableIn
BOOL
Not Visible
Not Required
Input
Enable Input - System Defined Parameter
Default is true.
Inp_InitializeReq
BOOL
Not Visible
Not Required
Input
1 = Request to initialize the instruction. The instruction is normally initialized in instruction first run. use this request when reinitialization is needed. The instruction clears this operand automatically.
Default is true.
Inp_OwnerCmd
DINT
Not Visible
Not Required
Input
Owner device command. 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_RatePVBad
BOOL
Not Visible
Not Required
Input
1 = Rate PV input quality = Bad (Fail).
Default is false.
Inp_RatePVUncertain
BOOL
Not Visible
Not Required
Input
1 = Rate PV input quality = Uncertain.
Default is false.
Inp_QtyPVBad
BOOL
Not Visible
Not Required
Input
1 = Quantity PV input quality = Bad (Fail).
Default is false.
Inp_QtyPVUncertain
BOOL
Not Visible
Not Required
Input
1 = Quantity PV input quality = Uncertain.
Default is false.
Inp_RunFdbk
BOOL
Visible
Not Required
Input
1 = Controlled equipment is delivering (running).
Default is false.
Inp_DribbleFdbk
BOOL
Not Visible
Not Required
Input
1 = Controlled equipment is delivering at dribble.
Default is false.
Inp_StopFdbk
BOOL
Visible
Not Required
Input
1 = Controlled equipment is confirmed stopped.
Default is false.
Inp_CtrldEqpFault
BOOL
Not Visible
Not Required
Input
Controlled equipment object or I/O status 0 = Ok, 1 = Fail.
Default is false.
Inp_Reset
BOOL
Not Visible
Not Required
Input
1 = Reset shed latches and cleared alarms.
Default is false.
Inp_eRatePVSrcQ
SINT
Not Visible
Not Required
Input
Flow rate signal source and quality (enumerated):
0=Good, live, confirmed good 1=Good, live, assumed good
2=Good, no feedback, assumed good 8=Test, virtualized
9=Test, loopback
10=Test, manually entered 16=Uncertain, live, off-spec 17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good 20=Uncertain, using replacement value 32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration.
Default is 0.
Inp_eRatePVNotify
Rate PV 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_eQtyPVSrcQ
SINT
Not Visible
Not Required
Input
Quantity signal source and quality (enumerated):
0=Good, live, confirmed good
1=Good, live, assumed good
2=Good, no feedback, assumed good
8=Test, virtualized
9=Test, loopback
10=Test, manually entered
16=Uncertain, live, off-spec
17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good
20=Uncertain, using replacement value
32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration.
Default is 0.
Inp_eQtyPVNotify
SINT
Not Visible
Not Required
Input
Quantity PV 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_Hand
BOOL
Not Visible
Not Required
Input
1 = Acquire hand (typically hardwired local), 0 = Release hand.
Default is false.
Inp_Ovrd
BOOL
Not Visible
Not Required
Input
1 = Acquire Override (higher priority Program logic), 0 = Release Override.
Default is false.
Inp_ExtInh
BOOL
Not Visible
Not Required
Input
1 = Inhibit External acquisition, 0 = Allow External acquisition.
Default is false.
Cfg_AllowDisable
BOOL
Not Visible
Not Required
Input
1 = Allow Operator alarm disable, 0 = Disallow Operator alarm disable.
Default is false.
Cfg_AllowShelve
BOOL
Not Visible
Not Required
Input
1 = Allow Operator alarm shelve, 0 = Disallow Operator alarm shelve.
Default is false.
Cfg_HasEqpFdbk
BOOL
Not Visible
Not Required
Input
1 = Controlled equipment provides run (dribble if used) and stop feedback.
Default is false.
Cfg_UseEqpFdbk
BOOL
Not Visible
Not Required
Input
1 = Use run / dribble / stop feedback, 0 = Assume equipment state.
Default is false.
Cfg_HasDribble
BOOL
Not Visible
Not Required
Input
1 = Slow to dribble before complete, 0 = Run full flow until complete.
Default is false.
Cfg_HasRatePVNav
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an analog object (pai, etc.) is used for Inp_RatePV.
Default is false.
Cfg_HasMonitoring
BOOL
Not Visible
Not Required
Input
1 = Allows continuous monitoring without setpoint requirement.
Default is false.
Cfg_HasMoreObj
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an object with more info is available.
Default is false.
Cfg_HasQtyPVNav
BOOL
Not Visible
Not Required
Input
1 = Tells HMI an analog object (pai, etc.) is used for Inp_QtyPV.
Default is false.
Cfg_AutoAdjPreact
BOOL
Not Visible
Not Required
Input
1 = Enable automatic adjustment of preact after each delivery.
Default is false.
Cfg_LossInQty
BOOL
Not Visible
Not Required
Input
1 = Flow reduces quantity (Transfer out), 0 = Flow increases quantity (Transfer in).
Default is false.
Cfg_SetTrack
BOOL
Not Visible
Not Required
Input
1 = When the owner is Program the operator settings track the program settings. When the owner is Operator the program settings track the operator settings; and the virtual inputs match the output values (transitions are bumpless) 0 = No tracking.
Default is true.
Cfg_ShedOnEqpFault
BOOL
Not Visible
Not Required
Input
1 = Stop delivery and alarm on equipment fault; 0 = Alarm only on equipment fault.
Default is true.
Cfg_HasOper
BOOL
Not Visible
Not Required
Input
1 = Operator (unlocked) exists, can be selected.
Default is true.
Cfg_HasOperLocked
BOOL
Not Visible
Not Required
Input
1 = Operator locked exists, can be selected.
Default is true.
Cfg_HasProg
BOOL
Not Visible
Not Required
Input
1 = Program (unlocked) exists, can be selected.
Default is true.
Cfg_HasProgLocked
BOOL
Not Visible
Not Required
Input
1 = Program locked exists, can be selected.
Default is true.
Cfg_HasExt
BOOL
Not Visible
Not Required
Input
1 = External exists, can be selected.
Default is false.
Cfg_HasMaint
BOOL
Not Visible
Not Required
Input
1 = Maintenance exists, can be selected.
Default is true.
Cfg_OvrdOverLock
BOOL
Not Visible
Not Required
Input
1 = Override supersedes Program/Operator Lock, 0 = Don't Override lock.
Default is true.
Cfg_ExtOverLock
BOOL
Not Visible
Not Required
Input
1 = External supersedes Program/Operator Lock, 0 = Don't Override lock.
Default is false.
Cfg_ProgPwrUp
BOOL
Not Visible
Not Required
Input
1 = Power up to Program, 0 = Power up to Operator.
Default is false.
Cfg_ProgNormal
BOOL
Not Visible
Not Required
Input
Normal source: 1 = Program if no requests; 0 = Operator if no requests.
Default is false.
Cfg_PCmdPriority
BOOL
Not Visible
Not Required
Input
Command priority. 1 = Program commands win, 0 = Operator commands win.
Default is false.
Cfg_PCmdProgAsLevel
BOOL
Not Visible
Not Required
Input
1 = PCmd_Prog used as a level.
Default is false.
Cfg_PCmdLockAsLevel
BOOL
Not Visible
Not Required
Input
1 = PCmd_Lock used as a level (1 = Lock, 0 = Unlock).
Default is false.
Cfg_ExtAcqAsLevel
BOOL
Not Visible
Not Required
Input
1 = XCmd_Acq used as level (1 = Acquire, 0 = Release).
Default is false.
Cfg_AutoAdjPercent
REAL
Not Visible
Not Required
Input
Percentage of delivery error to auto-adjust preact. Valid = 0.0 to 100.0 (%)
Default is 10.0.
Cfg_CountsPerEU
REAL
Not Visible
Not Required
Input
Number of counts in Inp_QtyPV which equal 1.0 Engineering Units. Valid = 0.0 to maximum positive float.
Default is 1.0.
Cfg_EUQtyMult
REAL
Not Visible
Not Required
Input
Rate to quantity Engineering Units multiplier (e.g., gal to bbl.). Valid = 0.0 to maximum positive float.
Default is 1.0.
Cfg_BumpTime
REAL
Not Visible
Not Required
Input
Bump (manual top-off) time. Valid = 0.0 to 2147483.0 seconds.
Default is 0.0.
Cfg_ClearPulseTime
REAL
Not Visible
Not Required
Input
Time to pulse Out_ClearTot to clear External totalizer. Valid = 0.0 to 2147483.0 seconds.
Default is 1.0.
Cfg_FaultTime
REAL
Not Visible
Not Required
Input
Time for equipment feedback to follow output before fault. Valid = 0.0 to 2147483.0 seconds.
Default is 10.0.
Cfg_HiFlowRateLim
REAL
Not Visible
Not Required
Input
High flow rate alarm limit. Valid = 0.0 to maximum positive float.
Default is 3.40E+38.
Cfg_LoFlowRateLim
REAL
Not Visible
Not Required
Input
Low flow rate alarm limit. Valid = 0.0 to maximum positive float.
Default is 0.0.
Cfg_LoRateCutoff
REAL
Not Visible
Not Required
Input
Rate below which to report zero flow (Inp_RatePV in engineering unit/time, see Cfg_RateTime). Valid = 0.0 to maximum positive float.
Default is 0.0.
Cfg_MaxQty
REAL
Not Visible
Not Required
Input
Maximum allowed quantity to deliver (setpoint).Valid = 0.0 to maximum positive float.
Default is 1.50E+38.
Cfg_RateFiltTimeConst
REAL
Not Visible
Not Required
Input
Filter time constant (sec) for calculated rate. Valid = 0.0 to 2147483.0 seconds.
Default is 0.1.
Cfg_RateTime
REAL
Not Visible
Not Required
Input
Rate of change time base (seconds), use 1.0 for units/second, 60.0 for units/minute, 3600.0 for units/hour, 86400.0 for units/day. Valid = any float greater than zero.
Default is 1.0
Cfg_Rollover
REAL
Not Visible
Not Required
Input
Quantity rollover (e.g., max count for pulse input). Valid = 0.0 to maximum positive float.
Default is 0.0.
Cfg_SettleTime
REAL
Not Visible
Not Required
Input
Time to allow flow to stop before allowing tolerance check.Valid = 0.0 to 2147483.0 seconds.
Default is 1.0.
Cfg_VirtualRate
REAL
Not Visible
Not Required
Input
Rate at which to deliver when running in virtual (Engineering Units/rate time). Valid = 0.0 to maximum positive float.
Default is 1.0.
Cfg_VirtualDribbleRate
REAL
Not Visible
Not Required
Input
Rate at which to dribble when running in virtual (Engineering Units/rate time). Valid = 0.0 to maximum positive float.
Default is 0.1.
Cfg_eKeepSP
SINT
Not Visible
Not Required
Input
Ownership of Setpoint (enumeration): 0 = follows CmdSrc, 1 = Operator, 2 = Program, 3 = External.
Default is 0.
Cfg_eKeepStart
SINT
Not Visible
Not Required
Input
Ownership of Start commands (enumeration): 0 = follows CmdSrc, 1 = Operator, 2 = Program, 3 = External.
Default is 0.
Cfg_eKeepTol
SINT
Not Visible
Not Required
Input
Ownership of Tolerance commands (enumeration): 0 = follows CmdSrc, 1 = Operator, 3 = External.
Default is 0.
Cfg_eKeepDribblePreact
SINT
Not Visible
Not Required
Input
Ownership of Dribble\Preact (enumeration): 0 = follows CmdSrc, 1 = Operator, 2 = Program, 3 = External.
Default is 0.
Cfg_HasHistTrend
SINT
Not Visible
Not Required
Input
Has Historical Trend. This enables navigation to the Device Historical Trend Faceplate from the HMI. Value of 0 = No External historical trend, 1 = Datalog historical trend, 2 = Historian histrical trend.
Default is 0.
Cfg_QtyDecPlcs
SINT
Not Visible
Not Required
Input
Number of decimal places for quantity display. Valid = 0,1,2,3,4,5,6.
Default is 2.
Cfg_RateDecPlcs
SINT
Not Visible
Not Required
Input
Number of decimal places for rate display. Valid = 0,1,2,3,4,5,6.
Default is 2.
Cfg_CnfrmReqd
SINT
Not Visible
Not Required
Input
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.
PCmd_Bump
BOOL
Not Visible
Not Required
Input
Program command to bump delivery for under tolerance. The instruction clears this operand automatically.
Default is false.
PCmd_ClearTot
BOOL
Not Visible
Not Required
Input
Program command to clear totalizer quantity. The instruction clears this operand automatically.
Default is false.
PCmd_StartTot
BOOL
Not Visible
Not Required
Input
Program command to start totalizer. The instruction clears this operand automatically.
Default is false.
PCmd_StopTot
BOOL
Not Visible
Not Required
Input
Program command to stop totalizer. The instruction clears this operand automatically.
Default is false.
PCmd_StartFlow
BOOL
Not Visible
Not Required
Input
Program command to start delivery. The instruction clears this operand automatically.
Default is false.
PCmd_StopFlow
BOOL
Not Visible
Not Required
Input
Program command to stop/pause delivery. The instruction clears this operand automatically.
Default is false.
PCmd_CheckTol
BOOL
Not Visible
Not Required
Input
Program command to check tolerances. The instruction clears this operand automatically.
Default is false.
PCmd_Lock
BOOL
Not Visible
Not Required
Input
Program command to lock Program (disallow Operator). The instruction clears this operand automatically if Cfg_PCmdLockAsLevel = 0.
Default is false.
PCmd_Normal
BOOL
Not Visible
Not Required
Input
Program command to select normal command source (Operator or Program). The instruction clears this operand automatically.
Default is false.
PCmd_Oper
BOOL
Not Visible
Not Required
Input
Program command to select Operator (Program to Operator). The instruction clears this operand automatically.
Default is false.
PCmd_Prog
BOOL
Not Visible
Not Required
Input
Program command to select Program (Operator to Program). The instruction clears this operand automatically.
Default is false.
PCmd_Unlock
BOOL
Not Visible
Not Required
Input
Program command to unlock Program (allow Operator to acquire). The instruction clears this operand automatically.
Default is false.
PCmd_Reset
BOOL
Not Visible
Not Required
Input
Program command to reset all alarms requiring reset. The instruction clears this operand automatically.
Default is false.
PCmd_Virtual
BOOL
Not Visible
Not Required
Input
Program command to select Virtual (virtualized) operation. The instruction clears this operand automatically.
Default is false.
PCmd_Physical
BOOL
Not Visible
Not Required
Input
Program command to select Physical operation (not virtualized). The instruction clears this operand automatically.
Default is false.
PSet_Owner
DINT
Not Visible
Not Required
Input
Program owner request ID (non-zero) or release (zero).
Default is 0.
PSet_DribbleQty
REAL
Not Visible
Not Required
Input
Program setting of quantity to dribble (Engineering Units). Valid = 0.0 to maximum positive float.
Default is 0.0.
PSet_Preact
REAL
Not Visible
Not Required
Input
Program setting of amount before total to stop flow (Engineering Units). Valid = 0.0 to maximum positive float.
Default is 0.0.
PSet_SP
REAL
Not Visible
Not Required
Input
Program setting of total quantity to deliver in Engineering Units. Valid = 0.0 to maximum positive float.
Default is 0.0.
PSet_TolHi
REAL
Not Visible
Not Required
Input
Program setting of high tolerance limit (ok amount > SP). Valid = 0.0 to maximum positive float.
Default is 0.0.
PSet_TolLo
REAL
Not Visible
Not Required
Input
Program setting of low tolerance limit (ok amount < SP). Valid = 0.0 to maximum positive float.
Default is 0.0.
XCmd_Bump
BOOL
Not Visible
Not Required
Input
External command to bump delivery for under tolerance.The instruction clears this operand automatically.
Default is false.
XCmd_ClearTot
BOOL
Not Visible
Not Required
Input
External command to clear totalizer Quantity. The instruction clears this operand automatically.
Default is false.
XCmd_StartTot
BOOL
Not Visible
Not Required
Input
External command to start totalizer.The instruction clears this operand automatically.
Default is false.
XCmd_StopTot
BOOL
Not Visible
Not Required
Input
External command to stop totalizer.The instruction clears this operand automatically.
Default is false.
XCmd_StartFlow
BOOL
Not Visible
Not Required
Input
External command to start deliver.The instruction clears this operand automatically.
Default is false.
XCmd_StopFlow
BOOL
Not Visible
Not Required
Input
External command to stop/pause delivery.The instruction clears this operand automatically.
Default is false.
XCmd_CheckTol
BOOL
Not Visible
Not Required
Input
External command to check tolerances.The instruction clears this operand automatically.
Default is false.
XCmd_Reset
BOOL
Not Visible
Not Required
Input
External command to clear shed latches and cleared alarms.
Default is false.
XCmd_Acq
BOOL
Not Visible
Not Required
Input
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
Not Visible
Not Required
Input
External command to release ownership if Cfg_ExtAcqAsLevel = 0 (External to Operator/Program/Override/Maintenance). The instruction clears this operand automatically.
Default is false.
XCmd_ResetAckAll
BOOL
Not Visible
Not Required
Input
External command to acknowledge and reset all alarms and latched shed conditions. The instruction clears this operand automatically.
Default is false.
XSet_DribbleQty
REAL
Not Visible
Not Required
Input
External setting of quantity to dribble (Engineering Units).
Default is 0.0.
XSet_Preact
REAL
Not Visible
Not Required
Input
External setting of amount before total to stop flow (Engineering Units).
Default is 0.0.
XSet_SP
REAL
Not Visible
Not Required
Input
External setting of total quantity to deliver (Engineering Units).
Default is 0.0.
XSet_TolHi
REAL
Not Visible
Not Required
Input
External setting of high tolerance limit (ok amount > SP).
Default is 0.0.
XSet_TolLo
REAL
Not Visible
Not Required
Input
External setting of low tolerance limit (ok amount < SP).
Default is 0.0.
Public Output Members
Data Type
FBD Default Visibility
FBD Wiring required
Usage
Description
EnableOut
BOOL
Not Visible
Not Required
Output
Enable Output - System Defined Parameter
Out_ClearTot
BOOL
Visible
Not Required
Output
1 = Reset external totalizer (e.g. onboard flowmeter).
Out_RunTot
BOOL
Visible
Not Required
Output
1 = Run External totalizer (e.g. onboard flowmeter).
Out_RunFlow
BOOL
Visible
Not Required
Output
1 = Deliver at full (fast) flow.
Out_StopFlow
BOOL
Visible
Not Required
Output
1 = Stop delivery equipment.
Out_DribbleFlow
BOOL
Visible
Not Required
Output
1 = Deliver at dribble (slow) flow.
Out_Reset
BOOL
Not Visible
Not Required
Output
1 = Reset command has been received and accepted.
Out_OwnerSts
DINT
Not Visible
Not Required
Output
Status of command source, owner command handshake and ready status.
0 = None,
.10 = Operator lock,
.11 = Operator unlock,
.12 = Program lock,
.13 = Program unlock,
.14 = Acquire Maintenance,
.15 = Release Maintenance,
.16 = Acquire External,
.17 = Release External,
.18 = Has Maintenance,
.19 = External Override lock,
.20 = Has External,
.21 = Has Operator,
.22 = Has Program,
.30 = Not ready.
Sts_Initialized
BOOL
Not Visible
Not Required
Output
1 = Instruction is initialized. use Inp_InitializeReq to reinitialize.
Sts_CalcQty
BOOL
Not Visible
Not Required
Output
1 = Integrate Inp_RatePV to get quantity, 0 = Use Inp_QtyPV.
Sts_CalcRate
BOOL
Not Visible
Not Required
Output
1 = Differentiate Inp_QtyPV to get rate, 0 = Use Inp_RatePV.
Sts_Cleared
BOOL
Visible
Not Required
Output
1 = Totalizer clear completed.
Sts_TotRunning
BOOL
Visible
Not Required
Output
1 = Totalizer running, 0 = Totalizer stopped.
Sts_FlowStarting
BOOL
Not Visible
Not Required
Output
1 = Flow is starting (Out_Run is on, feedback not showing run).
Sts_FlowRunning
BOOL
Visible
Not Required
Output
1 = Flow is running (Out_Run is on, feedback shows running).
Sts_FlowStopping
BOOL
Not Visible
Not Required
Output
1 = Flow is stopping (Out_Stop is on, feedback not showing stopped).
Sts_FlowStopped
BOOL
Visible
Not Required
Output
1 = Flow is stopped (Out_Stop is on, feedback shows stopped).
Sts_DribbleStarting
BOOL
Not Visible
Not Required
Output
1 = Dribble starting (Out_Dribble is on, feedback not showing dribble).
Sts_FlowDribble
BOOL
Visible
Not Required
Output
1 = Flow is dribbling (Out_Dribble is on, feedback shows dribble).
Sts_Bumping
BOOL
Not Visible
Not Required
Output
1 = Bump flow is active.
Sts_InTol
BOOL
Not Visible
Not Required
Output
1 = Total delivered is within tolerances.
Sts_Complete
BOOL
Visible
Not Required
Output
1 = Total delivered > (setpoint - preact).
Sts_Virtual
BOOL
Not Visible
Not Required
Output
1 = The instruction continues to generate outputs to control equipment, but the flow quantity and rate inputs are ignored, and a simulated flow rate is used. 0 = The instruction operates normally.
Sts_bSrc
INT
Not Visible
Not Required
Output
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_eCmd
SINT
Not Visible
Not Required
Output
Dosing command
0 = None,
1 = Clear Totalizer,
2 = Start Totalizer,
3 = Start Flow,
4 = Start Dribble,
5 = Bump,
6 = Stop Flow,
7 = Stop Totalizer.
Sts_eFdbk
SINT
Not Visible
Not Required
Output
Equipment feedback
0 = None/transition,
1 = Flow stopped,
2 = Flow running,
3 = Flow dribbling,
4 = Virtualized.
Sts_eFault
SINT
Not Visible
Not Required
Output
Object fault status 0 = None, 1 = Error: bad configuration, 15 = Equipment fault.
Sts_eNotifyAll
SINT
Not Visible
Not Required
Output
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_eNotify
SINT
Not Visible
Not Required
Output
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_eNotifyEqpFault
SINT
Not Visible
Not Required
Output
Equipment Fault 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_eNotifyHiFlowRate
SINT
Not Visible
Not Required
Output
Hi Flow Rate 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_eNotifyLoFlowRate
SINT
Not Visible
Not Required
Output
Lo Flow Rate 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_eNotifyOverTol
SINT
Not Visible
Not Required
Output
Over Tolerance 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_eNotifyUnderTol
SINT
Not Visible
Not Required
Output
Under Tolerance 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_eNotifyZeroFault
SINT
Not Visible
Not Required
Output
Zero Fault 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_eSrc
INT
Not Visible
Not Required
Output
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_eSts
SINT
Not Visible
Not Required
Output
Dosing status:
0 = Powerup/reset/unknown,
1 = Stopped,
2 = Totalizer running,
3 = Flow running,
4 = Dribble running,
5 = Bump flow,
6 = Flow starting,
7 = Dribble starting,
8 = Flow stopping,
15 = Out of service.
Sts_UnackAlmCount
SINT
Not Visible
Not Required
Output
Count of unacknowledged alarms.
Sts_Available
BOOL
Not Visible
Not Required
Output
1 = Dosing available for control by automation (Program).
Sts_MaintByp
BOOL
Not Visible
Not Required
Output
1 = A Maintenance bypass is active, display icon.
Sts_NotRdy
BOOL
Not Visible
Not Required
Output
1 = Object not ready, see detail bits for reason.
Sts_NrdyCfgErr
BOOL
Not Visible
Not Required
Output
1 = Object not ready: configuration error.
Sts_NrdyEqpFault
BOOL
Not Visible
Not Required
Output
1 = Object not ready: External equipment fault (fault or shed requires reset).
Sts_NrdyOoS
BOOL
Not Visible
Not Required
Output
1 = Object not ready: out of service.
Sts_NrdyPVBad
BOOL
Not Visible
Not Required
Output
1 = Object not ready: PV bad quality or comm failure.
Sts_Err
BOOL
Not Visible
Not Required
Output
1 = Error in configuration: See detail bits (Sts_Errxxx) for reason.
Sts_ErrAlm
BOOL
Not Visible
Not Required
Output
1 = Error in config: alarm minimum on time, shelf time, severity.
Sts_ErrBumpTime
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_BumpTime invalid.
Sts_ErrClearPulseTime
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_ClearPulseTime invalid.
Sts_ErrCountsPerEU
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_CountsPerEU invalid.
Sts_ErrCutoff
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_Cutoff invalid.
Sts_ErrEUQtyMult
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_EUQtyMult invalid.
Sts_ErrFaultTime
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_FaultTime invalid.
Sts_ErrRateTime
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_RateTime invalid.
Sts_ErrLim
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_MaxQty invalid.
Sts_ErrRollover
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_Rollover invalid.
Sts_ErrRateFiltTimeConst
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_RateFiltTimeConst invalid.
Sts_ErrSettleTime
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_SettleTime invalid.
Sts_ErrVirtual
BOOL
Not Visible
Not Required
Output
1 = Error: Cfg_VirtualDribbleRate or Cfg_VirtualRate invalid.
Sts_Hand
BOOL
Not Visible
Not Required
Output
1 = Hand is selected (supersedes Out of Service, Maintenance, Override, External, Program, Operator).
Sts_OoS
BOOL
Not Visible
Not Required
Output
1 = Out of service is selected (supersedes Maintenance, Override, External, Program, Operator).
Sts_Maint
BOOL
Not Visible
Not Required
Output
1 = Maintenance is selected (supersedes Override, External, Program, Operator).
Sts_Ovrd
BOOL
Not Visible
Not Required
Output
1 = Override is selected (supersedes External, Program, Operator).
Sts_Ext
BOOL
Not Visible
Not Required
Output
1 = External is selected (supersedes Program and Operator).
Sts_Prog
BOOL
Not Visible
Not Required
Output
1 = Program is selected.
Sts_ProgLocked
BOOL
Not Visible
Not Required
Output
1 = Program is selected and locked.
Sts_Oper
BOOL
Not Visible
Not Required
Output
1 = Operator is selected.
Sts_OperLocked
BOOL
Not Visible
Not Required
Output
1 = Operator is selected and locked.
Sts_ProgOperSel
BOOL
Not Visible
Not Required
Output
Program/Operator selection (latch) state: 1 = Program, 0 = Operator.
Sts_ProgOperLock
BOOL
Not Visible
Not Required
Output
Program/Operator lock (latch) state, 1 = Locked, 0 = Unlocked.
Sts_Normal
BOOL
Not Visible
Not Required
Output
1 = Selection equals the normal (Program or Operator).
Sts_ExtReqInh
BOOL
Not Visible
Not Required
Output
1 = External request inhibited, cannot get to External from current state.
Sts_ProgReqInh
BOOL
Not Visible
Not Required
Output
1 = Program request inhibited, cannot get to Program from current state.
Sts_MAcqRcvd
BOOL
Not Visible
Not Required
Output
1 = Maintenance acquire command received this scan.
Sts_Alm
BOOL
Visible
Not Required
Output
1 = An alarm is active.
Sts_AlmInh
BOOL
Not Visible
Not Required
Output
1 = One or more alarms shelved, disabled or suppressed.
Sts_EqpFault
BOOL
Not Visible
Not Required
Output
1 = Equipment fault detected.
Sts_HiFlowRate
BOOL
Not Visible
Not Required
Output
1 = Hi flow rate alarm.
Sts_LoFlowRate
BOOL
Not Visible
Not Required
Output
1 = Lo flow rate alarm.
Sts_LoRateCutoff
BOOL
Not Visible
Not Required
Output
1 = Rate PV below low rate cutoff, flow assumed to be zero.
Sts_OverTol
BOOL
Not Visible
Not Required
Output
1 = Delivery out of tolerance high.
Sts_UnderTol
BOOL
Not Visible
Not Required
Output
1 = Delivery out of tolerance low.
Sts_ZeroFault
BOOL
Not Visible
Not Required
Output
1 = Totalizer did not clear or unexpected flow.
Sts_QtyBad
BOOL
Not Visible
Not Required
Output
1 = Quantity value is Bad (PV Fail).
Sts_QtyUncertain
BOOL
Not Visible
Not Required
Output
1 = Quantity value is Uncertain.
Sts_RateBad
BOOL
Not Visible
Not Required
Output
1 = Rate value is Bad (PV Fail).
Sts_RateUncertain
BOOL
Not Visible
Not Required
Output
1 = Rate value is Uncertain.
Sts_RdyAck
BOOL
Not Visible
Not Required
Output
1 = An alarm is ready to be acknowledged.
Sts_RdyReset
BOOL
Not Visible
Not Required
Output
1 = A latched alarm or shed condition is ready to be reset.
Val_SP
REAL
Visible
Not Required
Output
Amount to be delivered (setpoint) (Engineering Units). Valid = 0.0 to maximum positive float.
Val_Remain
REAL
Visible
Not Required
Output
Amount yet to deliver to reach setpoint (Engineering Units). Valid = 0.0 to maximum positive float.
Val_PercentComplete
REAL
Visible
Not Required
Output
Percent complete (for progress bar on HMI) Valid = 0.0 to 100.0.
Val_QtyPV
REAL
Not Visible
Not Required
Output
Quantity from weigh scale or flowmeter (Engineering Units or pulse count). Valid = 0.0 to maximum positive float.
Val_Qty
REAL
Visible
Not Required
Output
Quantity actually delivered (totalizer output) (Engineering Units). Valid = 0.0 to maximum positive float.
Val_RatePV
REAL
Not Visible
Not Required
Output
Flow rate from flowmeter (Engineering Units/time, see Cfg_RateTime). Valid = 0.0 to maximum positive float.
Val_Rate
REAL
Visible
Not Required
Output
Current delivery rate (Engineering Units/time) (see Cfg_RateTime). Valid = 0.0 to maximum positive float.
Val_DribbleQty
REAL
Visible
Not Required
Output
Amount to be delivered at slow rate (Engineering Units). Valid = 0.0 to maximum positive float.
Val_Preact
REAL
Visible
Not Required
Output
Amount before setpoit at which flow will be stopped (Engineering Units). Valid = 0.0 to maximum positive float.
Val_TolHi
REAL
Visible
Not Required
Output
Allowed amount > Setpoint (Engineering Units). Valid = 0.0 to maximum positive float.
Val_TolLo
REAL
Visible
Not Required
Output
Allowed amount < Setpoint (Engineering Units). Valid = 0.0 to maximum positive float.
Val_Owner
DINT
Not Visible
Not Required
Output
Current object owner ID (0 = Not owned).
SrcQ
SINT
Not Visible
Not Required
Output
Source and quality of primary value or status (enumerated):
0=Good, live, confirmed good
1=Good, live, assumed good
2=Good, no feedback, assumed good
8=Test, virtualized
9=Test, loopback
10=Test, manually entered
16=Uncertain, live, off-spec
17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good
20=Uncertain, using replacement value
32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration
SrcQ_IO
SINT
Not Visible
Not Required
Output
Source and quality of primary input or output (enumerated):
0=Good, live, confirmed good
1=Good, live, assumed good
2=Good, no feedback, assumed good
8=Test, virtualized
9=Test, loopback
10=Test, manually entered
16=Uncertain, live, off-spec
17=Uncertain, substituted at device or bus
18=Uncertain, substituted at instruction
19=Uncertain, using last known good
20=Uncertain, using replacement value
32=Bad, signal failure
33=Bad, channel fault
34=Bad, module or communication fault
35=Bad, invalid configuration
XRdy_Acq
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Acq, enable HMI button.
XRdy_Rel
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Rel, enable HMI button.
XRdy_Reset
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_Reset, enable HMI button.
XRdy_ResetAckAll
BOOL
Not Visible
Not Required
Output
1 = Ready for XCmd_ResetAckAll, enable HMI button.
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_Physical
BOOL
Maintenance command to select Physical operation (not virtualized)
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.
MCmd_Virtual
BOOL
Maintenance command to select Virtual (virtualized) operation
Default is false.
OCmd_Bump
BOOL
Operator command to bump delivery for under tolerance. The instruction clears this operand automatically.
Default is false.
OCmd_CheckTol
BOOL
Operator command to check tolerances. The instruction clears this operand automatically.
Default is false.
OCmd_ClearTot
BOOL
Operator command to clear totalizer quantity. The instruction clears this operand automatically.
Default is false.
OCmd_Lock
BOOL
Operator command to lock Operator (disallow Program). The instruction clears this operand automatically.
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_Reset
BOOL
Operator command to reset all alarms requiring reset. The instruction clears this operand automatically.
Default is false.
OCmd_ResetAckAll
BOOL
Operator command to reset all alarms and latched shed conditions. The instruction clears this operand automatically.
Default is false.
OCmd_StartFlow
BOOL
Operator command to start deliver. The instruction clears this operand automatically.
Default is false.
OCmd_StartTot
BOOL
Operator command to start totalizer. The instruction clears this operand automatically.
Default is false.
OCmd_StopFlow
BOOL
Operator command to stop/pause delivery. The instruction clears this operand automatically.
Default is false.
OCmd_StopTot
BOOL
Operator command to stop totalizer. The instruction clears this operand automatically.
Default is false.
OCmd_Unlock
BOOL
Operator command to unlock / release (allow Program to acquire) ownership. The instruction clears this operand automatically.
Default is false.
OSet_DribbleQty
REAL
Operator setting of quantity to dribble (Engineering Units). Valid = 0.0 to maximum positive float.
Default is 0.0.
OSet_Preact
REAL
Operator setting of amount before total to stop flow (Engineering Units). Valid = 0.0 to maximum positive float.
Default is 0.0.
OSet_SP
REAL
Operator setting of total quantity to deliver (Engineering Units). Valid = 0.0 to maximum positive float.
Default is 0.0.
OSet_TolHi
REAL
Operator setting of high tolerance limit (ok amount > SP). Valid = 0.0 to maximum positive float.
Default is 0.0.
OSet_TolLo
REAL
Operator setting of low tolerance limit (ok amount < SP). Valid = 0.0 to maximum positive float.
Default is 0.0.
Private Output Members
Data Type
Description
HMI_BusObjIndex
DINT
HMI bus object index
Default is 0.
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_Physical
BOOL
1 = Ready for MCmd_Physical, enable HMI button.
MRdy_Rel
BOOL
1 = Ready for MCmd_Rel, enable HMI button.
MRdy_Virtual
BOOL
1 = Ready for MCmd_Virtual, enable HMI button.
ORdy_Bump
BOOL
1 = Ready for OCmd_Bump (enables HMI button).
ORdy_CheckTol
BOOL
1 = Ready for OCmd_CheckTol (enables HMI button).
ORdy_ClearTot
BOOL
1 = Ready for OCmd_ClearTot (enables HMI button).
ORdy_DribblePreact
BOOL
1 = Ready for OSet_DribblePreact (enables HMI entry field).
ORdy_Lock
BOOL
1 = Ready for OCmd_Lock, enable HMI button.
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_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 OSet_SP (enables HMI entry field).
ORdy_StartFlow
BOOL
1 = Ready for OCmd_StartFlow (enables HMI button).
ORdy_StartTot
BOOL
1 = Ready for OCmd_StartTot (enables HMI button).
ORdy_StopFlow
BOOL
1 = Ready for OCmd_StopFlow (enables HMI button).
ORdy_StopTot
BOOL
1 = Ready for OCmd_StopTot (enables HMI button).
ORdy_Tol
BOOL
1 = Ready for OSet_Tol (enables HMI entry field).
ORdy_Unlock
BOOL
1 = Ready for OCmd_Unlock, enable HMI button.
Sts_ErrInpSrc
BOOL
1 = Error: Input Source invalid. No Rate or Quantity PV connected
Public InOut Members
Data Type
FBD Default Visibility
FBD Wiring required
Usage
Description
Inp_QtyPV
REAL
Visible
Required
InOut
Quantity from weigh scale or flowmeter (Engineering Units or pulse count). Valid = 0.0 to maximum positive float.
Inp_RatePV
REAL
Visible
Required
InOut
Flow rate from flowmeter (Engineering Units/time, see Cfg_RateTime). Valid = 0.0 to 2147483.0 seconds.
BusObj
BUS_OBJ
Visible
Required
InOut
Bus component
BUS_OBJ Structure
Use InOut parameters to link the Instruction to external tags that contain necessary data for the instruction to operate. These external tags must be of the data type shown, or NULL. All public InOut parameters for this instruction may be NULL.
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
Alarms
Discrete tag-based alarms are defined for these members.
Member
Alarm Name
Description
Sts_EqpFault
Alm_EqpFault
Equipment fault. Raised when the Inp_CtrldEqpFault input is true, or when equipment feedback signals fail to track the commanded state of the equipment within the configured time. If an equipment fault is configured as a shed fault, the flow is stopped and a reset is required to resume flow.
Sts_HiFlowRate
Alm_HiFlowRate
Above high limit. Raised when the flow rate exceeds the High Flow Rate limit, for a configured period of time.
Sts_LoFlowRate
Alm_LoFlowRate
Below low limit. Raised when the flow rate falls short of the Low Flow Rate limit, for a configured period of time.
Sts_OverTol
Alm_OverTol
Above over tolerance limit. Raised when the tolerance check is performed and the quantity delivered exceeds the setpoint by more than the High Tolerance threshold.
Sts_UnderTol
Alm_UnderTol
Below under tolerance limit. Raised when the tolerance check is performed and the quantity delivered falls short of the setpoint by more than the Low Tolerance threshold.
Sts_ZeroFault
Alm_ZeroFault
Zero fault. Raised if the dosing fails to clear, or if the dosing is cleared but then registers flow before flow is commanded to start.
Mark the alarm as used or unused and set standard configuration members of the discrete tag-based alarm. Access alarm elements using this format:
Tag.@Alarms.AlarmName.AlarmElement
PDOSETag.@Alarms.AlarmName.AlarmElement
The PDOSE instruction handles alarm conditions described by these use cases and conditions:
  • Equipment fault - raised when the Inp_CtrldEqpFault input is true, or when equipment feedback signals fail to track the commanded state of the equipment within the configured time. If an equipment fault is configured as a shed fault, the flow is stopped and a reset is required to resume flow.
  • Above high limit - raised when the flow rate exceeds the High Flow Rate limit, for a configured period of time.
  • Below low limit - raised when the flow rate falls short of the Low Flow Rate limit, for a configured period of time.
  • Above over tolerance limit - raised when the tolerance check is performed and the quantity delivered exceeds the setpoint by more than the High Tolerance threshold.
  • Below under tolerance limit - raised when the tolerance check is performed and the quantity delivered falls short of the setpoint by more than the Low Tolerance threshold.
  • Zero fault - raised if the dosing fails to clear, or if the dosing is cleared but then registers flow before flow is commanded to start.
There are Program, Operator, and External commands that enable the Reset and Reset & Acknowledge of all alarms of the instruction (Alarm Set) at the same time. This diagram shows how the commands interact with the PDOSE instruction.
PDOSE_alarminteraction
Operation
This diagram illustrates the functionality of the PDOSE instruction:
PDOSE_operation_v35
Operator command request confirmation
The PDOSE instruction enables these operator command requests:
  • OCmd _Bump
  • OCmd_CheckTol
  • OCmd_ClearTot
  • OCmd_StartFlow
  • OCmd_StartTot
  • OCmd_StopFlow
  • OCmd_StopTot
  • OSet_DribbleQty
  • OSet_Preact
  • OSet_SP
  • OSet_TolHi
  • OSetTolLo
Enforced security might require the request to be confirmed or canceled before the selected command executes. The instruction checks the security rules inspecting Cfg_CnfrmReqd. If Cfg_CnfrmReqd=0 no confirmation is required and the request executes immediately. If Cfg_CnfrmReqd=1 the instruction waits for confirmation OCmd_CmdCnfrm=1 and/or cancellation For Cfg_CnfrmReqd=2 or 3 eSignature is needed before the confirmation and cancellation is enabled.
Virtualization
Use virtualization for instruction testing and operator training. Use PCmd_Virtual or MCmd_Virtual to enable virtualization. After finishing virtualization, use PCmd_Physical or MCmd_Physical to return to normal (physical device) operation.
When Virtualization is active, the instruction continues to generate outputs to control equipment, but the flow quantity and rate inputs are ignored, and a simulated flow rate is used. The instruction can emulate a rate at which to dribble and a rate at which to deliver when running in virtual.
WARNING: To avoid starting equipment during virtualization, the downstream equipment instructions must be put in virtual so that their outputs are held in the safe state. Failure to do this can result in personal injury or equipment damage.
Initialization
The instruction is normally initialized in the instruction first run. Request re-initialization by setting Inp_InitializeReq = 1. For proper initialization, when adding the instruction while performing an online edit of the code, make sure that Inp_InitializeReq = 1, the default value.
Configuration of Strings for HMI
Configure strings for HMI faceplates (
FactoryTalk View
) and for
Logix Designer
configuration dialog. 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
  • Input Quantity PV
  • Input Rate PV
  • Quantity PV Units
  • Rate PV Units
  • Alarm Equipment Fault Text
  • Alarm Hi Flow Rate Text
  • Alarm Lo Flow Rate Text
  • Alarm Over Tolerance Text
  • Alarm Under Tolerance Text
  • Alarm Zero Fault Text
Command Source
The instruction uses these command sources. The command sources are prioritized in order from highest to lowest in this table.
Command Source
Description
Hand
Hardwired logic or other logic outside the instruction controls the device. The instruction tracks the state of the device for bumpless transfer back to one of the other command sources.
This is the highest priority command source.
Out-of-Service
The instruction is disabled and has no owner.
Maintenance
Maintenance controls the device and supersedes Operator, Program, External and Override control. Operator commands and settings from the HMI are accepted.
Override
Priority logic controls the device and supersedes Operator, Program and External control. Override Input (Inp_Ovrd) is accepted.
External
External logic (e.g. field pilot control or upstream SCADA) controls the device. External commands (XCmd_) are accepted.
Program locked
Program logic controls the device. Program commands (PCmd_) are accepted. Operator cannot take control from the Program. Override cannot take control from theProgram unless Cfg_OvrdOverLock = 1.
Program
Program logic controls the device. Program commands (PCmd_) are accepted.
Operator locked
The Operator controls the device. Operator commands (OCmd_) from the HMI are accepted. Program cannot take control from Operator. Override cannot take control from Operator unless Cfg_OvrdOverLock = 1.
Operator
The Operator controls the device. Operator commands (OCmd_) from the HMI are accepted.
This is the lowest priority command source.
The instruction enables or disables these operations:
  • Maintenance Out-of-Service exists
  • Maintenance exists
  • External exists
  • Program (unlocked) exists
  • Program locked exists
  • Operator (unlocked) exists
  • Operator locked exists
  • PCmd_Lock used as a Level (1 = Lock, 0 = Unlock)
The instruction checks for invalid configurations of control and forces the nearest valid configuration.
The core control model arbitrates the source of the commands and parameters that the receiving function accepts. The core control model determines if the source is:
  • A programmatic entity which resides entirely within the processing environment, or
  • An external interface entity which issues commands and parameters external and asynchronously to the processing environment.
Locking a control source prevents the other control source from acquiring privilege.
Core Command Source Model
The core control model consists of these control sources:
  • Oper
  • OperLocked
  • Prog
  • ProgLocked
The control model defaults to this configuration. Other control sources may be present in the model but act as overriding control sources, acting independent of the base Operator/Program state machine.
Enabling control sources as Configuration
The individual control sources may be enabled or disabled by the user. The default configuration uses the entire base model; upon power-up of the processing environment the control source will be the designated default. Some combinations of enabled control sources are disallowed as they are either unnecessary or could create unintended changes.
Prog Power Up
Configuration allows the user to specify whether Operator or Program is the power-up default.
Prog Priority
Configuration allows the user to specify whether Operator or Program commands take priority when simultaneously asserted.
Automatic reset of commands
All commands are treated as one-shot-latched. This means that all commands are automatically cleared when the instruction executes and processes them.
Changing Destination States
Under certain configurations the destination command source for some commands may change. This is in keeping with the intent of the command. For example, if the Prog is disabled, the destination of the OCmd_Prog command is directed to the ProgLocked state instead of the Prog state. This maintains the intent of the OCmd_Prog command: the operator entity wishes to place the function in control of the program. If the command was eliminated there would be no way to accomplish this. This is only done in configurations where it would cause no conflict or race condition, but serves to preserve as much user functionality as is practical.
Higher Priority Command Sources
These Higher priority command sources operate independently within the model:
  • External
  • Override
  • Maintenance
  • Out-of-Service
  • In-Service
  • Hand
Monitor the PDOSE 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.
Any commands that are received before first scan are
discarded.
Instruction first run
Any commands received before first scan are discarded.
Rung-condition-in is false
Any commands that are received are discarded. All
alarms are cleared. The command source is reported as
Program Out of Service. The displayed rate is zeroed.
Outputs to controlled equipment are de-energized.
Other output parameters (values and status) hold their
last value.
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.
Any commands that are received before first scan are
discarded.
Instruction first run
Any commands received before first scan are discarded.
Instruction first scan
See Instruction first run in the Function Block Diagram table.
EnableIn is false
EnableOut is cleared to false.
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
This example shows an input from a flowmeter (I_PDT_2) connected to a P_AInAdv block for the conversion of differential pressure to flow. The PV representing flow (Val from P_AInAdv) is the input for the PDOSE instruction (Inp_RatePV). The Sts_PVBad for the flow value is also used by the PDOSE instruction (Inp_RatePVBad). The outputs of the PDOSE instruction (Out_RunFlow and Out_DribbleFLow) are used as inputs to a two-speed motor (P_Motor2Spd). RunFlow and DribbleFlow are connected to PCmd_RunFast and PCmd_RunSlow, respectively. The status outputs of the motor for stopped (Sts_Stopped), running slow (Sts_RunningSlow), and running fast (Sts_RunningFast) are connected back to the PDOSE block as inputs Inp_StopFdbk, Inp_DribbleFdbk, and Inp_RunFdbk.
Ladder Diagram
PDOSE_exampleladder1
PDOSE_exampleladder2
Function Block Diagram
PDOSE_exampleFBD1
PDOSE_exampleFBD2
Structured Text
FI_01.Inp_PVData:=I_PDT_2;
PAI(FI_01,0);
FQIC_01.Inp_RatePVBad:=FI_01.Sts_PVBad;
PDOSE(FQIC_01, 0, FI_01.Val, 0);
PMTR_01.PCmd_Start1:=FQIC_01.Out_DribbleFlow;
PMTR_01.PCmd_Start2:=FQIC_01.Out_RunFlow;
PMTR_01.PCmd_Stop:=FQIC_01.Out_StopFlow;
PMTR(PMTR_01, 0, 0, 0, 0, 0);
FQIC_01.Inp_DribbleFdbk:=PMTR_01.Sts_Running1;
FQIC_01.Inp_RunFdbk:=PMTR_01.Sts_Running2;
FQIC_01.Inp_StopFdbk:=PMTR_01.Sts_Stopped;
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.