Beginner's Guide to OMAC PackML

Beginner's Guide to OMAC PackML

PackML, or Packaging Machine Language is a programming standard defined by the Organization for Machine Automation and Control (OMAC) and by the International Society of Automation's Technical Report 88.

It is meant to be a convenient project template that can be used in the discrete manufacturing of many products, from bottled drinks to wrapped candy. I thought it would be helpful to assemble this guide of PackML basics for anyone who is getting started with this standard.

PackML has three main aspects of its implementation:

  • Standard Set of Terminology
  • State Model
  • Set of Tags


Common terminology defines how the machine is broken down. Here are a few definitions that can help you navigate a PackML program:

  • Unit - An entire machine
    • A Filler, capper, wrapper, etc.
  • Equipment module - a station or section of a unit
    • For a filler, bottle infeed, filling, outfeed
  • Control module - an actuator or piece of equipment
    • A servo, VFD, or motor
  • State - currently active machine condition
    • Idle, Starting, Execute
  • State command - an action that triggers a state change
    • Operator presses a button, machine responds to an alarm
  • Mode - set of states and state commands that carry out a process
    • Production, Manual, Clean in place

State Model

The State Model defines the top level control of the machine. It coordinates the operation of the machine's components to execute different actions and react to whatever is happening.

PackML State Model

For example, when a PackML machine is starved due to an external process condition, the model send s the machine into a suspending state. In the suspending state, all of the machine's actuators execute their actions to pause production. Then, when the machine has product again, the model sends the machine into an unsuspending state to resume production.


The Tags define how the program communicates with other machines in the packaging line and with higher level control systems. Tags are broken down into three types: Command, Status, and Admin Tags.

Command Tags are used by the machine to make a change, while Status Tags are written to by the machine to be used elsewhere. Admin Tags have data to be used for analysis, or operator information, such as stoppage time, stop reason, and units produced.

Why Use PackML?

Hierarchy Comparison by Dbstruk - Wikipedia.When building a new machine, or bringing one into a facility, it is important to take a look at how it will be programmed.

Consider implementing a project using a template instead of writing a new program from scratch or accepting another OEM's style.

A good project template can be useful to generate the backbone of your project and set up a framework to program within. This can speed up development by removing the need to write and debug those central elements of the program. It also helps to standardize your machines so they're not as dependent on the exact function of the machine and who programmed it. This allows the controls engineers to collaborate more easily, as well as share useful code from similar parts of disparate machines.

Where to get PackML

More information on PackML is available for free from OMAC.

The full ISA TR 88 is available online as well from the ISA.

If you're starting a project from scratch, Siemens has a template project ready for you to start working from, in both Step7 V5.5 and TIA Portal V13 Sp1.

Rockwell Automation also offers a base project using its Power Programming v4.

Learn more about our Manufacturing Automation & Intelligence services or Contact Us to get started on a project.


There are currently no comments, be the first to post one.

Post a comment

Name (required)

Email (required)

Enter the code shown above:

Related Blog Posts