GracoPd2kInt API
#################

Add-On Instructions (AOIs)
**************************

.. _PumpCtrl:

PumpCtrl
========
Provides several inputs for controlling the PD2K proportioner (e.g. system mode, setpoints).

The enable input must be on for any other inputs to take effect. The boolean command inputs each function like execute inputs, meaning the command will automatically reset these once set to true.

The current control mode setting (pressure or flow) determines which of the setpoint inputs are written to the PD2K system. This switches automatically when the control mode is changed.

**clearAlarm** (INPUT BOOL)
  Clear alarm 
**completeJob** (INPUT BOOL)
  Complete job 
**ctrlMode** (INPUT BOOL)
  Ctrl mode SP
  (0=flow, 1=pressure) 
**enable** (INPUT BOOL)
  Enable command 
**mix** (INPUT BOOL)
  Goto mix 
**mixFill** (INPUT BOOL)
  Goto mix fill 
**powerOff** (INPUT BOOL)
  Power off 
**powerOn** (INPUT BOOL)
  Power on 
**quickStop** (INPUT BOOL)
  Goto quick stop 
**recipePurge** (INPUT BOOL)
  Goto recipe purge 
**standby** (INPUT BOOL)
  Goto standby 
**flowCtrlSP** (INPUT DINT)
  Flow control setpoint
  (cc/min) 
**presCtrlSP** (INPUT DINT)
  Pressure control setpoint
  (psi) 

**busy** (OUTPUT BOOL)
  Command busy flag 
**valid** (OUTPUT BOOL)
  Command valid flag 
**aborted** (OUTPUT BOOL)
  Command aborted flag 
**error** (OUTPUT BOOL)
  Command error flag 
**state** (OUTPUT DINT)
  State code 

**moduleStatus** (INOUT DINT[46])
  Data from module to PLC 
**moduleCmds** (INOUT DINT[18])
  Data from PLC to module 

State Codes
+++++++++++
* 16#0000 - Idle
* 16#3XXX - Valid
* 16#9000 - Error, control mode could not be updated

.. _ReadAlarmInfo:

ReadAlarmInfo
=============
Reads data from an alarm record.

**indexNum** (INPUT DINT)
  the chronological alarm index number to look up, where 0 is the most recent, and 199 is the 200th most recent.
**execute** (INPUT BOOL)
  executes the command.

**code** (INOUT :ref:`STRING4`)
  the code for the alarm.
**dateTime** (INOUT :ref:`TypeDateTime`)
  The date and time the alarm occurred.
**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadEventInfo:

ReadEventInfo
=============
Reads data from an event record.

**indexNum** (INPUT DINT)
  the chronological event index number to look up, where 0 is the most recent, and 199 is the 200th most recent.
**execute** (INPUT BOOL)
  executes the command.

**code** (INOUT :ref:`STRING4`)
  the code for the event.
**dateTime** (INOUT :ref:`TypeDateTime`)
  The date and time the event occurred.
**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadFluidControlMode:

ReadFluidControlMode
====================
Returns the current fluid control mode for the system.

**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**mode** (OUTPUT BOOL)
  The current fluid control mode value (false=flow control, true=pressure control).
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadGrandTotals:

ReadGrandTotals
===============
Returns the material grand total volume data.

**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**materialA** (OUTPUT DINT)
  the grand total volume of material A used, in gallons.
**materialB** (OUTPUT DINT)
  the grand total volume of material B used, in gallons.
**materialC** (OUTPUT DINT)
  the grand total volume of material C used, in gallons.
**materialD** (OUTPUT DINT)
  the grand total volume of material D used, in gallons.
**materialABCD** (OUTPUT DINT)
  the summed grand total of materials A, B, C, and D, in gallons.
**solvent** (OUTPUT DINT)
  the grand total volume of solvent used, in gallons.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadGunContents:

ReadGunContents
===============
Returns the recipe number of mixed material that is currently loaded in the specified gun number.

**gunNum** (INPUT DINT)
  The gun number to look up. The acceptable range is 1-3. If not in range, an error will be raised.
**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[41])
  The module input data.
**moduleCmds** (INOUT DINT[22])
  The module output data.

**recipeNum** (OUTPUT DINT)
  The current recipe number. If the recipe is unknown (e.g. on startup), a value of 61 will be returned.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadGunPotLifeTime:

ReadGunPotLifeTime
=====================
Returns the remaining pot life time for a selected gun number if it is currently loaded and mixed. 

This command is particularly useful if multiple guns are enabled.

**gunNum** (INPUT DINT)
  The gun number to look up. The acceptable range is 1-3.
**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**remTimeStage1** (OUTPUT DINT)
  The remaining pot life time for stage 1 in seconds.
**remTimeStage2** (OUTPUT DINT)
  The remaining pot life time for stage 2 in seconds.
**remTimeStage3** (OUTPUT DINT)
  The remaining pot life time for stage 3 in seconds.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadJobInfo:

ReadJobInfo
===========
Reads data from a job record.

**indexNum** (INPUT DINT)
  the chronological job index number to look up, where 0 is the most recent, and 199 is the 200th most recent.
**execute** (INPUT BOOL)
  executes the command.

**userID** (INOUT :ref:`STRING9`)
  the user ID used for the job.
**dateTime** (INOUT :ref:`TypeDateTime`)
  the completion date and time of the job record.
**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**jobNum** (OUTPUT DINT)
  The actual job number of the record.
**recipeNum** (OUTPUT DINT)
  The recipe number used for the job.
**sprayedVol** (OUTPUT DINT)
  The sum of materials (A+B+C+D) used for the job in cc.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadPumpMaterial:

ReadPumpMaterial
================
Returns the material number currently loaded in the specified pump number.

**pumpNum** (INPUT DINT)
  The pump number to look up. The acceptable range is 1-4. If not in range, an error will be raised.
**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**materialNum** (OUTPUT DINT)
  The current material number. If the material is unknown (e.g. on startup), a value of 61 will be returned.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadRecipe:

ReadRecipe
==========
Returns the current configuration values for a recipe number.

**recipeNum** (INPUT DINT)
  the recipe number to read. The acceptable range is 0-60.
**execute** (INPUT BOOL)
  Executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**materialA** (OUTPUT DINT)
  the current value for the first material number.
**materialB** (OUTPUT DINT)
  the current value for the second material number.
**materialC** (OUTPUT DINT)
  the current value for the third material number.
**materialD** (OUTPUT DINT)
  the current value for the fourth material number.
**gunNum** (OUTPUT DINT)
  the current value for the assigned gun number.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _ReadUserID:

ReadUserID
==========
Returns the current user ID for the system.

The returned value is a string of up to 9 characters, not including a null terminator.

**execute** (INPUT BOOL)
  Executes the command
**mixUnitNum** (INPUT DINT)
  mix unit number (1-2)

**userID** (INOUT :ref:`STRING9`)
  The returned user ID
**moduleStatus** (INOUT DINT[46])
  The module input data
**moduleCmds** (INOUT DINT[18])
  The module output data

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _RecipeChange:

RecipeChange
============
Performs a recipe change operation.

**execute** (INPUT BOOL)
  executes the command.
**recipeNum** (INPUT DINT)
  The next recipe number to use.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, system must be powered on
* 16#8001 - Error, another recipe change is already in progress
* 16#8002 - Error, system alarm is active
* 16#8003 - Error, another operation is active
* 16#8004 - Error, alarm occurred
* 16#8005 - Error, unexpected system mode
* 16#8006 - Error, recipe change did not finish
* 16#8007 - Error, timeout waiting for system registers to become available

.. _SendDCS:

SendDCS
=======
Sends a dynamic command structure (DCS) message to the PD2K system.

For more information about DCS commands, see the system operation manual.

**execute** (INPUT BOOL)
  executes the command.
**cmdID** (INPUT DINT)
  the command number to send.
**arg0** (INPUT DINT)
  argument 0.
**arg1** (INPUT DINT)
  argument 1.
**arg2** (INPUT DINT)
  argument 2.
**arg3** (INPUT DINT)
  argument 3.
**arg4** (INPUT DINT)
  argument 4.
**arg5** (INPUT DINT)
  argument 5.
**arg6** (INPUT DINT)
  argument 6.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**return0** (OUTPUT DINT)
  Return value 0 from the PD2K.
**return1** (OUTPUT DINT)
  Return value 1 from the PD2K.
**return2** (OUTPUT DINT)
  Return value 2 from the PD2K.
**return3** (OUTPUT DINT)
  Return value 3 from the PD2K.
**return4** (OUTPUT DINT)
  Return value 4 from the PD2K.
**return5** (OUTPUT DINT)
  Return value 5 from the PD2K.
**return6** (OUTPUT DINT)
  Return value 6 from the PD2K.
**return7** (OUTPUT DINT)
  Return value 7 from the PD2K.
**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _StatusToUDT:

StatusToUDT
===========
Reads a PD2K module array into a structured UDT.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**statusUDT** (INOUT :ref:`TypePd3kStatus`)
  The structured data from the device.

.. _WriteFluidControlMode:

WriteFluidControlMode
=====================
Sets the fluid control mode for the system.

**mode** (INPUT BOOL)
  the fluid control mode to set (false=flow control, true=pressure control).
**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _WriteMaterialReadyFlag:

WriteMaterialReadyFlag
======================
Sets the flag used to signal that the upstream material management is loaded correctly prior to a recipe change.

This flag is only used when multiple materials for a pump are fed to the PD2K via a single valve at the inlet valve stack (i.e. a piggable system).

**materialReadyFlag** (INPUT BOOL)
  the new flag value (false=not ready, true=ready).
**execute** (INPUT BOOL)
  executes the command.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _WriteRecipe:

WriteRecipe
===========
Configures the values for a recipe number.

**execute** (INPUT BOOL)
  Executes the command.
**recipeNum** (INPUT DINT)
  the recipe number to configure. The acceptable range is 0-60.
**materialA** (INPUT DINT)
  the first material number to set.
**materialB** (INPUT DINT)
  the second material number to set.
**materialC** (INPUT DINT)
  the third material number to set.
**materialD** (INPUT DINT)
  the fourth material number to set.

**moduleStatus** (INOUT DINT[46])
  The module input data.
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

.. _WriteUserID:

WriteUserID
===========
Sets the current user ID for the system.

The user ID can be up to 9 characters in length. The value sent to the PD2K will include a null terminator for a total of 10 characters. Only ASCII characters are supported.

**execute** (INPUT BOOL)
  Executes the command

**userID** (INOUT :ref:`STRING9`)
  The new user ID
**moduleStatus** (INOUT DINT[46])
  The module input data
**moduleCmds** (INOUT DINT[18])
  The module output data.

**busy** (OUTPUT BOOL)
  The busy command flag
**done** (OUTPUT BOOL)
  The done command flag
**aborted** (OUTPUT BOOL)
  The aborted command flag
**error** (OUTPUT BOOL)
  The error command flag
**state** (OUTPUT DINT)
  State data for the command

State Codes
+++++++++++
* 16#1xxx - Busy
* 16#2000 - Done
* 16#4000 - Aborted, command overwritten by another process
* 16#8000 - Error, invalid command ID
* 16#8001 - Error, timeout waiting for DCS registers to become available
* 16#8002 - Error, command unsuccessful
* 16#8003 - Error, timeout waiting for acknowledge from PD2K

User-Defined Types (UDTs)
*************************

.. _TypePd3kPumpStatusFlags:

TypePd3kPumpStatusFlags
=======================
Status flags for a PD3K pump.

**off** (BOOL)
  pump is off.
**standby** (BOOL)
  pump is in standby.
**busy** (BOOL)
  pump is busy.
**flushing** (BOOL)
  pump is flushing.
**priming** (BOOL)
  pump is priming.

.. _TypePd3kStatus:

TypePd3kStatus
==================
Status data read from a PD3K system.

**standby** (BOOL)
  in standby
**eventFlag** (BOOL)
  event flag
**gun1TriggerStatus** (BOOL)
  gun 1 trigger status (1 = on)
**gun2TriggerStatus** (BOOL)
  gun 2 trigger status(1 = on)
**gun3TriggerStatus** (BOOL)
  gun 3 trigger status(1 = on)
**safetyInterlockStatus** (BOOL)
  safety interlock status
**systemMode** (DINT)
  system mode
**systemModeFlags**	(TypePd3kSystemModeFlags_)
  system mode flags
**actualMixFlowPressure** (DINT)
  actual mix flow/pressure (cc/min in flow mode, psi in pressure mode)
**actualMixRatioA** (DINT)
  actual mix ratio A
**actualMixRatioB** (DINT)
  actual mix ratio B
**actualMixRatioC** (DINT)
  actual mix ratio C
**actualMixRatioD** (DINT)
  actual mix ratio D
**actualMixPotLifeRemStage1** (DINT)
  actual pot life remaining stage 1
**actualMixPotLifeRemStage2** (DINT)
  actual pot life remaining stage 2
**actualMixPotLifeRemStage3** (DINT)
  actual pot life remaining stage 3
**activeGunNum** (DINT)
  active gun number
**jobNum** (DINT)
  job number
**jobTotalSprayedVol** (DINT)
  job total sprayed volume (cc)
**jobSolventVol** (DINT)
  job solvent volume (cc)
**activeRecipeNum**	(DINT)
  active recipe number
**activeMaterialA**	(DINT)
  active material A
**activeMaterialB**	(DINT)
  active material B
**activeMaterialC**	(DINT)
  active material C
**activeMaterialD**	(DINT)
  active material D
**activeRecipeRatioA** (DINT)
  active recipe ratio A
**activeRecipeRatioB** (DINT)
  active recipe ratio B
**activeRecipeRatioC** (DINT)
  active recipe ratio C
**activeRecipeRatioD** (DINT)
  active recipe ratio D
**pump1Status** (DINT)
  pump 1 status
**pump1StatusFlags** (`TypePd3kPumpStatusFlags`_)
  pump 1 status flags
**pump2Status** (DINT)
  pump 2 status
**pump2StatusFlags** (`TypePd3kPumpStatusFlags`_)
  pump 2 status flags
**pump3Status** (DINT)
  pump 3 status
**pump3StatusFlags** (`TypePd3kPumpStatusFlags`_)
  pump 3 status flags
**pump4Status** (DINT)
  pump 4 status
**pump4StatusFlags** (`TypePd3kPumpStatusFlags`_)
  pump 4 status flags
**actualPump1Flow** (DINT)
  actual pump 1 flow rate (cc/min)
**actualPump2Flow** (DINT)
  actual pump 2 flow rate (cc/min)
**actualPump3Flow** (DINT)
  actual pump 3 flow rate (cc/min)
**actualPump4Flow** (DINT)
  actual pump 4 flow rate (cc/min)  
**actualPump1Pressure** (DINT)
  actual pump 1 pressure (psi)
**actualPump2Pressure** (DINT)
  actual pump 2 pressure (psi)
**actualPump3Pressure** (DINT)
  actual pump 3 pressure (psi)
**actualPump4Pressure** (DINT)
  actual pump 4 pressure (psi)
**dcsReturn0** (DINT)
  DCS return 0
**dcsReturn1** (DINT)
  DCS return 1
**dcsReturn2** (DINT)
  DCS return 2
**dcsReturn3** (DINT)
  DCS return 3
**dcsReturn4** (DINT)
  DCS return 4
**dcsReturn5** (DINT)
  DCS return 5
**dcsReturn6** (DINT)
  DCS return 6
**dcsReturn7** (DINT)
  DCS return 7
**dcsAck** (DINT)
  DCS acknowledge

.. _TypePd3kSystemModeFlags:

TypePd3kSystemModeFlags
=======================
Flags for the PD3K system mode.

**pumpOff** (BOOL)
  pump off
**colorChange** (BOOL)
  color change enabled
**colorChangePurgeA** (BOOL)
  color change purging component A
**colorChangePurgeB** (BOOL)
  color change purging component B
**colorChangePurgeC** (BOOL)
  color change purging component C
**colorChangePurgeD** (BOOL)
  color change purging component D
**colorChangeFilling** (BOOL)
  color change filling
**mixFillStage1** (BOOL)
  mix fill stage 1
**mixFillStage2** (BOOL)
  mix fill stage 2
**mixFillStage3** (BOOL)
  mix fill stage 3
**mix** (BOOL)
  mixing
**mixIdle** (BOOL)
  mix idle
**purgeA** (BOOL)
  purging component A
**purgeB** (BOOL)
  purging component B
**purgeC** (BOOL)
  purging component C
**purgeD** (BOOL)
  purging component D
**standbyMixReady** (BOOL)
  standby mix ready
**standbyFillReady** (BOOL)
  standby fill ready
**standbyMixNotReady** (BOOL)
  standby mix not ready
**standbyAlarm** (BOOL)
  standby alarm
**lineFillingFlushing** (BOOL)
  line is filling or flushing
**pumpPrimeFlush** (BOOL)
  pump is priming or flushing
**maintCalibration** (BOOL)
  maintenance/calibration
**mixSolventPush** (BOOL)
  mix solvent push