Skip to main content

Auto Production Monitoring (APM)

Overview

This article explains how Auto Production Monitoring (APM) works and how to configure it for your machines. APM is an automated matching algorithm that monitors running programs and matches them to corresponding jobs based on part numbers and program data — eliminating the need for operators to manually select which job is active. It is triggered when a machine's Jobs selected by setting is set to Program.

APM is available for machines with or without MES enabled, but the job lifecycle is handled fundamentally differently in each case. Machines with MES enabled use a different APM engine and workflow than machines without MES. The sections below are organized by MES configuration — read the section that applies to your machines.


Feature Availability

RequirementDetails
Access LevelManager, Executive, and IT Admin users.
PrerequisitesAPM must be enabled per machine by setting "Jobs selected by" to Program on the machine's Production & Operations tab. See Configuring a Machine's Production Settings.

Configuration

These settings are configured on each machine's Production & Operations tab and apply regardless of whether MES is enabled.

SettingWhat It Controls
Data ItemsWhich machine data items are used for program-to-job matching. By default, the system intelligently selects which data items to use.
Ignore 9XXX programsTreats 9000-series programs as non-production and excludes them from matching.
Ignored programsExplicit list of program values to exclude from matching. Supports an explicit list and a regex pattern.
Create run when operation changesWhether to close the current Production Run and start a new one when the detected operation changes. Only visible when MES is off — when MES is on, labor tickets manage the run lifecycle.

For full configuration guidance, see Configuring a Machine's Production Settings.


What APM Matches Against

APM matches at the part operation level — a part plus an operation, for example "Widget One Op 10". A job is a work order operation that references a part operation, so multiple open jobs can share a single part operation. One program can therefore legitimately serve one job and then the next in sequence: when the first job is finished, the same still-running program matches the next open job for that part operation.

This is why a perfect part-number match does not always produce a single obvious answer, and why APM sometimes asks the operator to pick.


Without MES

How It Works

When a program is detected on a non-MES machine, APM searches for a matching job and creates or updates a Production Run — a contiguous period of tracked data assigned to that job. Burden time accrues to the Production Run for as long as the matched program is loaded.

Programs configured as non-production — via the Ignored Programs list or the "Ignore 9XXX programs" setting — do not create Production Runs. Burden attribution forward-fills from the prior state — continuing to accrue to whatever job was last active, or pausing if no job was active. Common candidates for exclusion include warmup routines, probe cycles, and tool changer programs.

The "Create run when operation changes" setting controls whether a new Production Run is automatically started when the detected operation changes, or whether the existing run continues.

How to Use It

  1. Enable APM — on the machine's Production & Operations tab, set "Jobs selected by" to Program. See Configuring a Machine's Production Settings.
  2. Review configuration — check Data Items and Ignored Programs. The defaults work for most machines; consult your SDM before adjusting.
  3. APM runs automatically — as programs change, Production Runs are created and tracked. No operator action is required unless a program needs to be manually excluded.

With MES

How It Works

When APM Runs

APM runs while the machine is in Production mode. It is paused while the machine is in Setup mode — during setup the operator, not the running program, determines what is being worked on, so there is no match to make.

The Matching Cycle

When the detected program changes in Production mode, APM:

  1. Searches for the open jobs matching the new program's part operation, based on part number and program data.
  2. Evaluates match confidence based on how precisely the program maps to a job.
  3. Opens a labor ticket for the run and assigns a match state (Matched, Suggested, or No Match Found).
  4. Presents that state on the job's card in ShopPulse.

Match States

These are the labels operators see on job cards in ShopPulse:

StateWhat It Means
MatchedAPM identified a job with high confidence.
SuggestedAPM found a likely job but confidence is lower — for example, when several open work orders share the same part operation. Tracking is unaffected; the operator is asked to verify the job when they submit.
No Match FoundAPM could not identify a matching job. The run is tracked as an Unknown Job until the operator identifies it.
ConfirmedSomeone has attested that this is the job being worked on.

In Setup also appears on job cards, but it is not an APM match state — it indicates setup work, where APM is not matching at all.

Ticket States, and What "Confirmed" Actually Means

Labor tickets on an APM-matched run move through three states:

StateWhere it existsCan it be edited?Can it be submitted?
DraftMachineMetrics onlyYes — fully, including the jobYes
Confirmed (unsubmitted)MachineMetrics onlyYes — fully, including the jobYes
Closed (submitted)MachineMetrics and your ERPNo — read-only in MachineMetricsAlready submitted

Confirmation is a state, not a button. There is no Confirm action for operators to take. A job becomes Confirmed as a side effect of the operator doing something that asserts it is the right job:

  • Submitting labor against it — submitting confirms the job implicitly.
  • Choosing it as a destination — reassigning a run to it, resolving an Unknown Job to it, or picking it as the destination of a split all confirm it. Picking is confirming.

Confirmation performs no ERP write and locks nothing. An APM-matched ticket reaches your ERP only at submission, and that is the only point at which it becomes read-only. Until then the job on an unsubmitted ticket can be changed freely.

A Suggested match is the one case where the operator is asked anything: starting a submission against a Suggested job opens a Confirm match dialog showing the job and the running program, with the option to pick a different job instead. Suggested does not otherwise change how the job behaves — burden and parts accrue exactly as they do on a Matched job. A Matched job submits without that dialog.

Burden accrues from the moment a program is matched, regardless of whether the ticket is draft or confirmed.

When APM Pauses: Completed Jobs and Stale Programs

When an operator marks a job Complete while its program is still loaded and running, APM checks whether any other open job shares that part operation. If one does, the still-running program picks it up on the next part and nothing pauses — this is the normal lot-to-lot handoff. The completed job is out of the pool and is never reopened.

Only when no open job remains for that part operation does the program become stale. While a program is stale, APM is on hold: continuing part cycles are not attributed to any job, and the job-facing views fall back to Waiting for Work even though the machine is still active. APM resumes when any of three things happens: a different program is loaded, the operator manually selects a job, or the machine stops and then resumes running. At that point it re-attempts the match — and if nothing open matches, the run becomes an Unknown Job.

How to Use It

Configuring APM

  1. Enable APM on each machine — on the machine's Production & Operations tab, set "Jobs selected by" to Program. See Configuring a Machine's Production Settings.
  2. Review per-machine settings — Data Items and Ignored Programs appear once Program is selected. The defaults work for most machines; consult your SDM before adjusting.

Using APM (Operator)

  1. Check the match state — each job in the queue shows its state: Matched, Suggested, No Match Found, or Confirmed.
  2. Work a Matched job normally — no action is needed to accept the match. Burden and parts are already accruing against it.
  3. Verify a Suggested job — when you start a submission against it, a Confirm match dialog shows the job and the running program. Confirm it, or choose a different job. If the job you need is not offered, search for it.
  4. Identify an Unknown Job (No Match Found) — open the run and use Assign job to pick the correct job. Assigning confirms it. If the program is not production work at all, Ignore program discards the run and its ticket.
  5. Correct a mistake at any time before submitting — reassign the job, split the ticket, merge tickets, or change the activity. None of this touches your ERP.
  6. Submit the labor ticket — submitting writes the ticket to the ERP and closes it. Marking the job Complete removes it from the queue.

Tips & Best Practices

  • Make sure accurate part data is present in the machine's program data. APM can only match what it can read. The ideal case is a clearly delineated comment block in a program header — for example, (PART# 12345-ABCDE). If accurate part data isn't surfacing in the machine's output, consult your SDM.
  • Leave Data Items at their defaults initially. The default configuration works for most machines. If you do customize, pick only the data items most likely to contain relevant part information and deselect the others — this reduces ambiguity and improves match quality. For example, if the relevant part info is in a subprogram file name on path 2, select just that item and deselect all others.
  • For non-standard matching needs, use Transform data collectors. If part information needs to be synthesized from machine data in a non-standard way — such as appending a dimensional setting from a macro variable to a base part number — Transform data collectors can create a custom program data item for APM to use. Consult your SDM.
  • Use Ignored Programs to filter noise. Add values that appear on a data item but don't represent production work — exact strings (e.g. WARMUP, PROBE) and regex patterns (e.g. ^O8[0-9]+) can be combined in any combination. By default, O9### programs are already filtered, as are certain system-specific values. If any of these defaults conflict with your setup, uncheck the corresponding box.
  • Enable "Ignore 9XXX programs" if your shop uses 9000-series programs as utilities. This prevents false matches on non-job programs.
  • (MES) Encourage operators to resolve Suggested and Unknown work as it happens. Neither blocks production, and burden keeps accruing either way — but the longer an Unknown Job sits, the harder it is for the operator to remember what actually ran.
  • (MES) Remember that corrections are free before submission. Operators do not need to get the job right on the first try. An APM-matched ticket stays in MachineMetrics until it is submitted, so there is no reason to leave bad data in place.

FAQs & Troubleshooting

  • Why is a program being ignored? The program may match a value in the Ignored Programs list, match the 9XXX pattern with "Ignore 9XXX programs" enabled, or otherwise be treated as non-production. Review the machine's program matching settings on its Production & Operations tab.

  • (MES) Why is the match showing as Suggested instead of Matched? APM found a likely job but confidence didn't meet the high-confidence threshold. This can happen even when the part number matches perfectly — if several open work orders share the same part operation, APM cannot tell which one is being run and asks the operator to verify. Confirm the suggested job, or pick a different one.

  • (MES) What's the difference between draft, confirmed and submitted? Draft and confirmed tickets are both unsubmitted and both fully editable — the difference is simply whether someone has attested to the job. Submitted tickets are closed in your ERP and are read-only in MachineMetrics. Submission is the point at which a ticket locks.

  • (MES) Is there a Confirm button? No. Confirmation happens implicitly when an operator submits labor against a job or picks it as a destination. The only prompt an operator sees is the Confirm match dialog on a Suggested match.

  • (MES) What happens when APM shows No Match Found? The run is tracked as an Unknown Job with its own labor ticket, so the time and parts are not lost. The operator identifies the job with Assign job before that ticket can be submitted, or discards the run with Ignore program if it wasn't production work.

  • (MES) Why am I seeing No Match Found when I know there are matching jobs on the machine? APM returns No Match Found when it cannot identify an open job for the running program's part operation with sufficient confidence — including cases where the running program is genuinely ambiguous. Where APM can narrow the field but not decide, it returns Suggested with candidates instead. Have the operator identify the job manually; if this recurs on the same program, contact your SDM to review matching data quality.

  • (MES) The machine is still running but ShopPulse says "Waiting for Work." The job that program was running was marked Complete, so the program is now stale and APM is on hold. Loading a different program, selecting a job manually, or stopping and restarting the machine will resume matching. See "When APM Pauses" above.

  • What is APM3? APM3 is the underlying matching engine used for machines with MES enabled. It is configured and behaves identically to APM from the user and administrator perspective — no separate setup is required. When MES is enabled on a machine, APM automatically uses APM3.



Need Help?

Contact your Solutions Delivery Manager or email support@machinemetrics.com.