Mitsubishi CNC Data Acquisition and Mooring at an MES Platform
Mitsubishi CNC data acquisition is often described as a cable and a driver. In practice it is a sampling problem: which register you read, how often, and what the timestamp means. This page covers the control-side mechanics, the mooring layer that pushes data into an MES platform, and the cases where the numbers look fine but are not.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
What Mitsubishi CNC data acquisition actually exposes
A Mitsubishi CNC control keeps two very different classes of information. The first is machine state: run, stop, alarm, program number, spindle and feed override. The second is process data: spindle load, axis position, feedrate, tool number, alarm code, cycle time. Most people ask for both at the same rate. That is the first mistake, because state changes are events and process values are a stream.
State registers are small and change rarely. Polling them every 500 ms is usually enough to build an accurate timeline of what the machine was doing, and a 500 ms poll costs almost nothing on the control bus. Sampling spindle load at the same 500 ms is a different story: a load spike during a 12 mm roughing pass can last under 100 ms, so a slow poll will average it away and the chart will look calm while the tool is not.
Cycle time is the value everyone argues about. On a Mitsubishi control a cycle can end for several reasons: program end, M00 stop, alarm, or an operator pause. If the mooring layer collapses all four into one "cycle complete" event, your OEE denominator drifts and nobody can explain why the morning shift reports 92% and the afternoon shift reports 71% on the same part.
Tool data is the most underused register set. Tool number, offset number and remaining life are already sitting in the control. Pulling them into the MES removes a manual step at the machine and gives you a tool-life curve that matches real cutting hours instead of the operator's memory.
- 1State vs streamPoll state every 500 ms; sample load and feedrate faster than the events you care about.
- 2Cycle end has causesProgram end, M00, alarm and operator pause are not the same event.
- 3Tool life lives in the controlTool and offset numbers are already there; do not retype them.
How the mooring layer sits between control and MES
A mooring layer is not a protocol converter. It is a small service that owns three jobs: read from the control, hold the data when the network drops, and deliver it to the MES platform in a shape the MES already understands. Vendors often sell this as a gateway box. The box matters less than the buffering logic inside it.
Networks in a machine shop drop. Someone unplugs a switch to move a cart, an IP address changes after a controller swap, or the MES server restarts for a patch. If the edge service writes straight through, every drop becomes a gap in the timeline. A local buffer of 30-60 minutes of sampled data covers almost every realistic outage on a shop floor. Past an hour you are usually dealing with a real fault, and the MES should be told, not fed stale numbers.
Timestamps are where most integrations quietly fail. There are at least three clocks involved: the control clock, the edge device clock and the MES server clock. If the edge device stamps a sample when it is sent instead of when it was read, a 20-minute network outage shifts the whole block forward and the MES will show a machine cutting parts during a shift change. Stamp at the point of read, and keep the control clock disciplined.
Data volume is smaller than people expect. A single Mitsubishi machine at a 500 ms state poll and a 100 ms process sample produces on the order of a few hundred kilobytes per shift once you compress and only send changed values. The hard part is not bandwidth. It is agreeing on what each tag means before the first line of code is written.
- 1Buffer 30-60 minutesEnough for normal shop-floor outages without hiding a real fault.
- 2Stamp at read timeNot at send time, or outages shift the whole block.
- 3Share the tag dictionaryAgree on tag names and units before coding starts.
Why MES mooring changes what the numbers mean
Once Mitsubishi CNC data acquisition is moored to an MES platform, a machine stops being a standalone asset. Its state, cycle counts and alarms sit next to work orders, material lots and inspection results. That is the point. The same spindle load curve means something different when it is attached to a specific part number and a specific tool offset.
The engineering payoff is traceability at the process level, not the part level. If a batch of parts fails a dimensional check, the MES can show whether the cycle time on that run was shorter than usual, whether a tool change happened mid-batch, or whether the machine was in a degraded state. Those are process signals that a paper traveler never captures.
There is a boundary worth stating. An MES platform records what the control reports. It does not measure the part. A machine can report a clean cycle while the part is drifting toward the tolerance limit, because the control only knows the commanded position and the following error, not the finished dimension. Keep the metrology loop separate and compare the two later.
The same limit applies to our own shop. We run 127 high-precision CNC machines across three wholly-owned plants, and machine data tells us when a spindle is working hard. It does not tell us whether a bore is at Ø25.000 mm or Ø25.012 mm. That still comes from inspection, which is why every part is measured before shipment.
- 1Process-level traceabilityMachine state next to work order, lot and inspection result.
- 2MES records, it does not measureControl data is not metrology data.
- 3Two loops, compared laterKeep machine monitoring and dimensional inspection separate.
Where Mitsubishi CNC data acquisition stops being useful
Not every machine belongs on the MES. A manual mill, a wire EDM used twice a month, or a machine that only runs one long job has little to gain from a 500 ms feed. The integration cost is real: a gateway, a network drop, a tag map, and someone to maintain it. If the machine does not drive a scheduling or quality decision, skip it.
Older controls are the second boundary. Some Mitsubishi models expose a full register set over Ethernet. Others only give you a serial port, or require an option board that is no longer sold. Before promising a customer a live dashboard, read the control model and firmware version and confirm which interface is actually enabled. This one step prevents most failed projects.
The third boundary is culture, not hardware. If no one on the floor is going to look at downtime reason codes, the MES will fill with "other" and the data will be worthless within a month. Start with two or three reasons that operators can pick in one tap, and let the list grow only when the floor asks for it.
- 1Skip low-value machinesIf it does not drive a decision, do not instrument it.
- 2Check firmware firstConfirm the interface is enabled before promising a dashboard.
- 3Start with two reason codesA short list operators will actually use beats a complete one they ignore.
Step by step: from one machine to a moored MES feed
- 1Inventory the controlsList model, firmware and available ports for each machine. Mark which ones support Ethernet and which need an option board.
- 2Agree the tag dictionaryWrite down every tag, its unit, its source register and its expected range. One page per machine family is enough.
- 3Set the sampling rates500 ms for state, 100-200 ms for load and feedrate, event-driven for alarms and tool changes. Do not sample everything fast.
- 4Deploy one edge serviceInstall on a single pilot machine with a 30-60 minute local buffer. Confirm it survives a network unplug and backfills correctly.
- 5Validate timestampsCompare edge timestamps against the control clock and the MES clock over 24 hours. Fix drift before scaling.
- 6Connect to the MESMap tags to work orders, part numbers and shifts. Test one full shift of real production before adding machine two.
- 7Review after 30 daysCheck whether the reason codes are being used. Cut tags nobody looks at and add the ones the floor asks for.
Polling rate and mooring choice by data type
Pick the row that matches the decision you need to make.
| Data type | Sampling rate | Where to process | Typical use |
|---|---|---|---|
| Machine state (run/stop/alarm) | 500 ms poll | Edge, then MES | OEE, downtime reason codes |
| Cycle start / end events | Event-driven | Edge timestamp, MES stores | Cycle count, shift reporting |
| Spindle load, feedrate | 100-200 ms sample | Edge aggregation | Tool wear, load trending |
| Axis position | On demand or 50 ms | Edge only, rarely MES | Diagnostics, motion studies |
| Alarm code and text | On change | Edge to MES immediately | Maintenance dispatch |
| Tool and offset number | On change | Edge to MES | Tool life tracking |
| Program number and revision | On change | Edge to MES | Part-to-program traceability |
The short version
If you need downtime and OEE reporting, moor state and cycle events at 500 ms and stop there. If you need tool wear or process trending, add 100-200 ms sampling at the edge and send only aggregates to the MES. Do not push raw high-rate data into the MES and do not treat control data as metrology.
Questions engineers ask next
Does mooring Mitsubishi CNC data acquisition to an MES need a specific gateway brand?
No. What matters is that the edge service can read the registers your control actually exposes, buffer locally, and emit timestamps taken at read time. A gateway is just a box that runs that service. Any platform that supports your control interface and a local queue will do the job.
The practical test is a network unplug. Pull the cable for 20 minutes during production and see whether the timeline backfills without shifting. If it does not, the gateway is the wrong part of the problem to blame.
How much network bandwidth does one machine need?
Less than most people budget. A state poll at 500 ms plus a process sample at 100 ms, compressed and sent only when values change, is on the order of a few hundred kilobytes per shift per machine. A standard industrial Ethernet drop handles dozens of machines.
Bandwidth becomes a concern only if you stream raw axis position continuously. Do that at the edge, keep the history there, and send MES only the aggregates it needs.
Can we pull data from a Mitsubishi control that has no Ethernet port?
Sometimes. Some older controls expose data over a serial port or need an option board that may no longer be available. Check the model and firmware before committing to a schedule.
If the interface is not there, the honest answer is to leave that machine off the MES and instrument it later when it is replaced. A retrofit that costs more than the machine's annual value rarely pays back.
Why do two shifts report different OEE on the same part?
Usually because cycle end is being collapsed into one event. Program end, M00, alarm and operator pause all end a cycle, but they mean different things. If the mooring layer treats them the same, the denominator changes between shifts.
The fix is at the tag level: send the cycle-end reason, not just the cycle-end flag. Then the MES can classify the time correctly and the two shifts become comparable.
Does machine data replace dimensional inspection?
No. The control knows commanded position and following error, not the finished dimension. A machine can run a clean cycle while the part drifts toward the tolerance limit.
Keep the two loops separate. Use machine data to spot process drift, then confirm with measurement. In our own shop, every part is inspected before shipment and reports are available on request.
How many tags should we start with?
Fewer than you think. Start with machine state, cycle start and end with reason, alarm code, and tool number. That set covers most OEE and traceability questions.
Add spindle load and feedrate only when someone is actually going to trend them. A tag nobody reads is a maintenance cost with no return.
Sending parts to a shop that already runs this way
If your design needs tight tolerances on machined parts, we quote and return a free DFM analysis within 12 hours.
12-hour quote100% inspection±0.005 mmNo MOQ