top of page
  • kentra52

PackML and OEE

Updated: Jan 21, 2023


This post describes a possible implementation the Point 85 Overall Equipment Effectiveness (OEE) solution for manufacturers having a PackML machine interface. PackML (Packaging Machine Language) is a standard defined by the Organization for Machine Automation and Control (OMAC) and by the International Society of Automation's Technical Report 88 (ISA-TR88.00.02-2015). Point85 is an open source OEE solution available by download from GitHub here. For more information about this solution, please see the Point 85 OEE User Guide in the docs folder.

OEE Tag Data

OEE is the product of equipment availability, performance rate and quality rate each expressed as a percentage. The time-loss model (see Introduction page) is used to accumulate time in loss categories (or “no loss” if the equipment is running normally in the PackML Execute state). For availability and performance in a different machine state, a PackML tag (for example StopReason.ID and StopReason.Value) can be mapped to an OEE reason. The tag data would need to be available in a protocol supported by Point 85, e.g. classic OPC DA or OPC UA.

The OEE reason is associated with one of the following time "buckets":

  • Not Scheduled (Calendar): this is non-working time. Non-working periods (e.g. holidays) typically are planned in the work schedule that is assigned to a machine

  • Unscheduled (Calendar): working time when the machine is not scheduled for normal production (e.g. an R&D or pilot test run) and might be defined by the machine’s work schedule.

  • Planned Downtime (Availability): working time when the machine is not scheduled for normal production but the activity is intended to support production (e.g. planned preventive maintenance).

  • Unplanned Downtime (Availability): working time when the machine is not available due to an unexpected fault (e.g. drive failure or jam).

  • Setup (Availability): working time when the machine is being changed over in order to run new material.

  • Stoppages (Performance): minor or short periods of time when the machine is not producing as expected (such as a blocked or starved condition). PackML tags EquipmentInterlock.Blocked and EquipmentInterlock.Starved could be used.

  • Reduced Speed (Performance): the machine is producing, but not at its nominal speed or may be starting up.

For quality or yield, the PackML ProdProcessedCount and ProdDefectiveCount tags could provide a production count in the good, reject/rework or startup & yield categories in the defined units of measure for the material being produced (where good production is the difference between the total and defective counts). This count has an equivalent time loss calculation by using the machine’s ideal or nominal speed.

The material being produced (and possibly the associated production order identifier) might be available as a process parameter tag.

OEE Reasons

Time loss reasons are hierarchically organized in a manner that fits the machine’s characteristics and can be analyzed by personnel responsible for operating the machine. For example, the machine modes (e.g. Production, Maintenance and Set Up) could be the top-level categories followed by the relevant possible wait states (e.g. Idle, Held, Suspended, Complete, Aborted and Stopped). Finally, specific reasons would be assigned to each state (e.g. Blocked and Starved under Suspended or E-Stop under Aborted). The machine’s current mode and state together with other tag values would resolve to an OEE reason and hence to a time loss category.

33 views0 comments

Recent Posts

See All

Use ChatGPT to Create the Quartz Job Expression

Creating the Quartz job scheduler expression can be confusing considering the number of arguments involved. ChatGPT can help! Here is the prompt for an example schedule: "Write a Java Quartz express


bottom of page