Abbreviations used in this Annex

ADETActual Unit Delay Time

ADOTActual Unit Downtime

AOETActual Order Execution Time

APTActual Production Time

AQTActual Queuing Time

ATTActual Transport Time

AUSTActual Unit Setup Time

ERPEnterprise Resource Planning System

GQGood Quantity

KPIKey Performance Indicator

MESManufacturing Execution System

OEEOverall Equipment Effectiveness

PBTPlanned Busy Time

PQProduced Quantity

PRIPlanned Run Time Per Item

RQRework Quantity

SQScrap Quantity

KPI Calculation

KPI’s are important metrics for quantifying and optimizing the manufacturing performance of a company. In the following, selected examples are used to explain how the required KPI’s can be calculated using this specification. The KPI definitions used are taken from the ISO 22400-2 [1] specification.

Produced Quantity (PQ) and Good Quantity (GQ)

The following options are available for determining quantities.

Determination with Job Management (OPC 40001-3)

In 2:JobResponseData there are the fields ProducedQuantity and GoodQuantity.

Determination via PartsProducedInLifetime

The variable MachineOperationMonitoringType/2:OperationCounters/PartsProducedInLifetime can be used to determine PQ (produced quantity). To do this, the OPC UA Client must determine the variable value at the start and end of the production order and then calculate the difference.

Note: GQ cannot be determined via the PartsProducedInLifetime because no corresponding variable is available.

[Deprecated] Determination using job variables

In the case where a job represents a production order to be processed by the machine tool, the current values for PQ and GQ can be read from the ProductionJobType/PartsCompleted and ProductionJobType/PartsGood variables of the associated job data structure. This also applies if the individual parts to be produced are modelled below this data structure.

[Deprecated] Determination by means of events

Alternatively, client-side tracking of PQ and GQ can be achieved by subscribing to the event type ProductionPartTransitionEventType. For transitions that signal the completion of processing of a part (new State is Ended or Aborted), the value of PQ must be increased; depending on the entry for PartQuality, the value of GQ must also be increased, as applicable.

The JobIdentifier and CustomerOrderIdentifier variables can be used to establish a reference to the relevant production order.

[Deprecated] Determination via ProductionStatisticsType

The variable ProductionStatisticsType/PartsProducedInLifetime can be used to determine PQ (produced quantity). To do this, the OPC UA Client must determine the variable value at the start and end of the production order and then calculate the difference.

Note: GQ cannot be determined via the ProductionStatisticsType because no corresponding variable is available.

Scrap Quantity (SQ)

The scrap quantity SQ can be derived from the values of PQ and GQ:

SQ = PQ – GQ

Rework Quantity (RQ)

The machine does not usually provide a count of rework and for this reason rework has not been included in the model. Therefore, the value for RQ cannot be determined via the interface.

Time KPI’s may depend on external parameters that are not available in the machine tool controls. For this reason, in some cases relevant statuses are presented rather than absolute time values. To determine the time KPI’s from the statuses, the status duration must be measured. For complex time KPI’s, the value results from measuring the combined duration of multiple relevant statuses.

OPC 40001-1 Annex C.2 gives an overview about example interpretation for ISO 22400, how the time values of the below state machines are to be used to calculate KPI time elements.

General: Determination with the use of status variables

This specification provides two StateMachines in the MachineOperationMonitoringType:

Both the above data types are defined in OPC 40001-1 (from version 1.02 onwards)[2]. Both objects each contain a CurrentState variable that represents the current state.

General: Determination with Job Management (OPC 40001-3)

In 2:JobResponseData there are the fields ActualUnitBusyTime, ActualUnitSetupTime, ActualUnitDelayTime, and ActualProductionTime. In addition, there is the JobState in the 5:ISA95JobResponseDataType and the 0:CurrentState of the 6:JobOrderControl (5:ISA95JobOrderReceiverObjectType).

[Deprecated] General: Determination by means of Events

Production jobs are modelled as objects of the type ProductionJobType. The objects are stored as a list in the ProductionPlan variable of the type ProductionType.

The current status of the production job is represented in the State variable of the ProductionJobType. State is of the type ProductionJobStateMachineType and sends an event of the type ProductionJobTransitionEventType with every state change. When processing these events, the variable State can be used to determine the current state by evaluating the respective value ToState.

In case of an interruption, an event of the type InterruptionConditionType can be sent. The type of interruption can be classified using the variables ConditionClassId and ConditionClassName.

It might also be necessary to take additional timespans into account, especially if the Higher Level System Condition State is known. For details see Annex C.2 of OPC 40001-1 (v1.03 onwards)[2].

Actual Order Execution Time (AOET)

This value can be determined from the above defined KPI’s as follows:

AOET = APT + AUST + ADET + ADOT

Here, ADOT represents the sum of ATT (actual transport time) and AQT (actual queuing time), which are not defined individually in this specification.

The OEE (Overall Equipment Effectiveness) is the product of Availability, Effectiveness and Quality Rate. These measures are calculated as follows:

Availability = APT / PBT

Effectiveness = PRI x PQ / APT

Quality rate = GQ / PQ

In addition to the indicators APT, PQ and GQ as previously defined, the planned variables PBT (Planned busy time) and PRI (Planned run time per item) are required. This information usually comes from an MES or ERP and not from the machine, so it has not been included in this specification. To calculate the OEE, this information must therefore be determined from the connected MES or ERP.

Bibliography

[1] ISO 22400-2: 2014. Automation systems and integration – Key performance indicators (KPIs) for manufacturing operations management – Part 2: Definitions and Descriptions

https://www.iso.org/obp/ui/#iso:std:iso:22400:-2

[2] OPC 40001-1, OPC UA for Machinery – Part 1: Basic Building Blocks

http://www.opcfoundation.org/UA/Machinery/