How to Get Notified When a Machine Stops Running
- Matt Ulepic
- 2 hours ago
- 8 min read

A machine can “stop” for the right reason and still cost you a surprising amount of capacity—simply because nobody owned the first few minutes. On multi-shift CNC floors, the gap isn’t knowing that downtime exists; it’s the delay between the controller changing state and a human taking action.
Getting notified when a machine stops running is less about buying another dashboard and more about defining what counts as a stop, setting thresholds that match your cycle profiles, and routing alerts so the right person sees it fast—especially when supervision is thin, or the shop is running unattended.
TL;DR — how to get notified when a machine stops running
Define “stop” by type: alarm/fault, idle over a threshold, or program end handoff.
Use different stop definitions for long-cycle vs. short-cycle work to prevent constant pings.
Trigger alerts from machine state/events (not end-of-shift ERP entry) to keep response time tight.
Write rules in plain language: WHEN state persists for X minutes, THEN notify role Y.
Route by shift coverage and machine criticality; add escalation if nobody responds.
Include context in every alert (machine, job/op, last state, duration) so recipients can act.
Pilot on a small cell, tune thresholds for a week, then replicate by machine family.
Key takeaway ERP and manual logs tell you what should have happened; machine-state alerts tell you what is happening right now. The goal is to eliminate hidden time loss by catching the first few minutes of idle, alarms, and handoff delays—shift by shift—without creating alert fatigue that operators ignore.
What “stops running” should mean (so you don’t get noisy alerts)
If you set “notify me when a machine stops” as a single blanket rule, you’ll either miss important events or drown in noise. In CNC terms, “stop” can mean several different machine behaviors, and each has a different urgency.
Practical stop types to consider:
Cycle stop / cycle end: the program reaches an end point and is waiting for the next action.
Feed hold: the machine is paused (often operator-initiated) but not necessarily in fault.
Spindle off: useful on some processes, but can be normal during probing, tool checks, or dwell.
Alarm / fault: usually the highest-priority “stop now” condition.
Program end: a handoff signal—often “someone needs to unload/load, inspect, or restart.”
Idle / blocked: the controller is not executing a cycle; this can be normal or a sign of delay.
One definition fails across all machines and parts because cycle profiles vary. A long-cycle 5-axis job may sit “running” for extended periods with no operator interaction, while a short-cycle lathe cell lives and dies by load/unload rhythm. Probing cycles, warm-up routines, and tool break checks can also look like “stops” if you choose the wrong trigger.
A clean starting point is to choose one operational trigger per outcome:
Alarm = immediate, idle > X minutes = actionable delay, and program end = handoff. Then keep it simple: start with 1–2 stop definitions per machine group (for example, “mills” vs. “turns,” or “short-cycle cell” vs. “long-cycle cell”) so the alerts stay credible.
How shops detect stops in real time (without turning this into an IT project)
Real-time notification requires a real-time trigger source. Manual logs and end-of-shift ERP entry are valuable for accounting and reporting, but they’re too delayed to shrink response time on the floor. If you’re currently relying on clipboards or operator keypad entry, that’s the classic visibility gap—your system reflects what people remembered to enter, not what the controller actually did.
For a quick baseline on the limitations of human-entered production data, see manual operations tracking.
Common signal sources used to detect stops:
Controller state (run/idle/alarm) and cycle start/stop events.
Alarm bits / fault state (often the cleanest “notify now” trigger).
Spindle state or load (helpful, but can be misleading during probing or dwell).
PLC bits (door open, pallet change, robot ready, etc.) when available.
Fallback or secondary signals can help when a controller connection is limited: part-counter “heartbeat” events (if the count doesn’t change when expected), power draw (useful but noisy on some machines), or limited operator input (for planned states). The key is to avoid designing an alert system around the weakest signal; use secondary triggers as a bridge, not as the final standard.
Latency expectations should be realistic: minute-level responsiveness generally depends on event-based capture from the machine state rather than waiting for someone to type a downtime note. Connectivity and data availability vary by brand and age, so prioritize the stop events you can act on today (alarm and idle thresholds) and expand from there. If you want broader context on what to expect from connectivity across mixed fleets, review machine monitoring systems.
Step-by-step: set up a natural-language alert rule for machine stops
The simplest alerting workflow maps to how supervisors already think: “If this machine is in this condition for this long, tell this person.” The goal is an alert that is actionable the moment it arrives, not a message that requires extra digging.
Step 1: Pick the machine group and stop condition
Group machines by similar cycle behavior: short-cycle mills, long-cycle mills, bar-fed lathes, Swiss, etc. Then choose the stop condition you’re targeting first: alarm/fault (immediate) or idle threshold (actionable delay). Don’t start by trying to cover every edge case across the whole shop.
Step 2: Set the threshold/window
Thresholds should reflect staffing and cycle length. A common pattern is: alert on alarm immediately, but alert on idle only after a short window (for example, 2–5 minutes) during staffed hours. That “during staffed hours” clause matters; otherwise you’ll page people for expected pauses.
Step 3: Write the rule in plain language
Use an IF/WHEN/THEN structure you can read out loud:
“WHEN Machine A is in ALARM, THEN notify the on-shift lead immediately.” or
“WHEN any machine in Cell 2 is IDLE for more than 3 minutes between 3:00–11:00, THEN notify the cell operator.”
Natural-language clarity also makes it easier to audit rules later when someone asks, “Why did I get this alert?”
Step 4: Choose channel and recipients based on response speed
If you need action in minutes, the channel should match that reality. Text/app notifications typically beat email for immediate response, while email can be fine for end-of-cycle handoffs or lower-urgency idle alerts. Also decide whether the first alert goes to the operator (fastest hands-on response) or to a lead/supervisor (best coordination), depending on coverage.
Step 5: Add context fields so the alert is actionable
A useful alert answers: what stopped, what it was doing, how long it’s been waiting, and what the last known state was. At minimum, include machine name, current state (alarm/idle), duration in state, timestamp, and the job/operation if available. For broader context on capturing stop events as part of a visibility workflow, see machine downtime tracking.
Worked example (second shift coverage): Second shift has 1 supervisor covering 18 machines. A vertical mill throws an alarm mid-cycle while the operator is busy loading another machine. The mill sits for 22 minutes because nobody realizes it’s down.
A practical rule might read: “WHEN VM-12 enters ALARM, THEN notify the assigned operator immediately; if not acknowledged within 5–10 minutes, notify the shift supervisor; if still unacknowledged, notify the plant manager on-call.”
Context included: “VM-12, alarm active, started at 7:14 PM, last state RUN, current job OP20, time in alarm 8 minutes.” The point is not more alerts—it’s making sure the first alert lands with someone who can stop the bleeding.
Mid-way diagnostic: if your current “notification” is an end-of-shift note or a supervisor walking the floor, you’re effectively accepting hidden idle time as normal. That’s often the moment to consider machine utilization tracking software as a capacity recovery tool—so micro-stops and long waits don’t blend into the shift.
Routing and escalation: make sure the alert reaches someone who can act
Alerts fail most often after they’re successfully generated. A notification that reaches the wrong person—or reaches everyone—creates delay and blame. Treat routing as an ownership decision: who is responsible for the first five minutes on this type of stop, on this shift?
Role-based routing by shift: On first shift, operator-first may work. On second shift with thinner coverage, lead-first or supervisor-first can reduce “nobody saw it.”
Machine criticality: A pacer machine or bottleneck cell should escalate faster than a non-critical operation.
Escalation ladder: Define a simple chain (operator → lead → supervisor) with time-to-escalate rules, so alarms don’t sit silently.
Acknowledgement and handoff: Decide what “seen” means. If someone acknowledges, the system should reduce duplicate responses while still allowing a handoff if the first responder can’t address it.
Quiet hours and lights-out periods usually require different routing: fewer recipients, higher thresholds for idle alerts, and an on-call rotation for true exceptions (alarms, safety-related conditions, or high-cost stoppages). Keep it operational—if no one is expected to touch the machine, don’t treat every idle moment like an emergency.
Tune thresholds to avoid false positives (the difference between action and noise)
Threshold tuning is where alerting either becomes a practical tool or turns into background noise. If your team starts ignoring notifications, you’ve lost the response-time advantage and created a new distraction.
A reliable approach is to start conservative, observe for a week, then tighten. Different machine families usually need different thresholds: long-cycle machines may need a longer “idle” window to avoid pings during normal pauses, while short-cycle work may justify a shorter window because the opportunity cost of waiting is immediate.
Planned downtime controls are non-negotiable if you want signal instead of noise: schedule windows (setup periods, preventive maintenance), a “setup mode” state, or a temporary snooze. Common false-positive causes include program end (expected), pallet change, probing, and tool measurement cycles—so your rules should treat those as normal states when you can identify them.
Worked example (lights-out idle threshold): During an unattended period, a lathe finishes a cycle and goes idle. You want a notification only when idle indicates a load/unload delay during staffed hours—not when a long cycle is still running, and not when the machine is intentionally parked.
A practical rule might read: “WHEN LT-04 is IDLE for more than 3–5 minutes between 6:00 AM–10:00 PM, THEN notify the cell operator; outside those hours, alert only if LT-04 enters ALARM.” This avoids false alerts for long cycles (because you’re not triggering off ‘no part count change’ alone) and avoids paging people during true lights-out unless the machine is in fault.
Optional scenario (planned changeover on a Swiss): If a Swiss machine is in a setup/changeover window, you typically don’t want “idle” alerts firing while tools are being swapped, offsets touched off, or first-article checks run. Use a planned state or snooze window: “WHEN SW-01 is set to SETUP MODE (or scheduled setup window), THEN suppress idle alerts; still notify on ALARM.”
The outcome is a monitoring culture that respects planned work while still catching true exceptions that create utilization leakage.
If you need help interpreting repeated idle patterns or deciding which states should trigger action, a workflow assistant can help supervisors translate raw events into operational decisions. See the AI Production Assistant for how teams turn stop signals into consistent responses without adding reporting overhead.
Test the system on one cell before scaling to the whole shop
For a 10–50 machine shop, the fastest way to build confidence is a small pilot that proves the rules are credible. Choose 3–5 machines with mixed cycle profiles (one long-cycle, one short-cycle, one frequent changeover) and define “success” operationally: fewer unowned minutes after stops, clearer ownership by shift, and fewer nuisance alerts.
Use a simple test checklist:
Force an alarm (or use a controlled test condition) and verify who gets notified.
Simulate idle by letting a program end and confirm the idle-threshold rule triggers only after the window.
Confirm escalation timing: if nobody acknowledges, the next role receives it.
Verify context: machine ID, job/op, last known state, and time-in-state are readable on the alert.
Confirm quiet hours behavior for unattended periods.
Review daily for the first week, then adjust thresholds and recipients based on what actually happened on each shift. After the pilot, scale rules by machine family and shift coverage, and document a simple alert playbook so changes don’t live only in one supervisor’s head.
Implementation cost is usually less about “the alert” and more about how many machines you connect, how you handle mixed legacy equipment, and how much configuration support you want while tuning thresholds and routing. If you need a straightforward way to frame rollout scope (without guessing), you can review pricing as a way to think about packaging and deployment effort rather than line-item feature hunting.
If you want to pressure-test your stop definitions, thresholds, and escalation ladder against your shift coverage (without turning it into a software project), the clean next step is a short working session. You can schedule a demo and walk through one cell’s rules end-to-end: events → thresholds → recipients → escalation → test plan.

.png)








