Mixed machine fleet: Siemens and HEIDENHAIN, old and new, in one view
Hardly any plant has only one type of CNC control. We show how our system brings SINUMERIK and HEIDENHAIN together through a common data contract, and what is possible on older machines without OPC UA.
In a typical contract manufacturer (job shop) you will find, side by side, a new machining centre with SINUMERIK ONE, two older ones with SINUMERIK 840D sl, a milling machine with a HEIDENHAIN TNC 640 and one with an iTNC 530. Each CNC control speaks differently, and each manufacturer offers its own data acquisition software. Anyone who wants to introduce condition monitoring across a mixed machine fleet quickly faces the question: do I need a separate system for each brand? In our system the answer is no. This article shows how we bring Siemens and HEIDENHAIN, old and new controls, into a single view, and where the limits lie.
The problem with manufacturer-specific silos
Control manufacturers and machine builders offer their own solutions for data acquisition and condition monitoring. Each may be good in its own right. In a mixed machine fleet, however, they create silos:
- Several user interfaces: the maintenance engineer has to look in one system for the Siemens machines and in another for the HEIDENHAIN machines.
- Values that cannot be compared: each system has its own features, its own levels and its own terms. “Yellow” in one does not mean the same as “Warning” in another.
- Several contracts and access points: each silo needs its own licences, its own users and its own approval by IT.
- Gaps on older machines: for controls without a modern interface there is often no offering at all.
For spindle monitoring there is also a fundamental problem: the standard interfaces of CNC controls deliver values well below 1 kHz, but bearing damage shows up in the kilohertz range. The actual diagnosis therefore comes from the vibration sensor on the spindle housing anyway, not from the control. The control supplies the context: speed, load, program, alarms. That is good news for a mixed machine fleet, because the sensor is the same for every brand.
One data contract for all CNC controls
At the core of our solution is a uniform data contract between the edge box at the machine and our platform. It defines which messages the box may send and how they are structured, regardless of which control is connected to the box. There are four kinds of record:
| Record | Content |
|---|---|
| Control values | Snapshot of values read, under our own manufacturer-neutral keys, for example spindle.speed, spindle.load, program.name |
| Features | Vibration features of a measurement window, computed on the box, with measuring point, speed, feature set version and, where applicable, the finding in the envelope spectrum |
| Events | Alarms from the control, connection changes, buffer losses, updates |
| Device status | Software version of the box, connection to the control, number of buffered records, age of the oldest unsent record, remaining validity of the device certificate |
The contract is strict. Unknown fields are rejected, as are invalid numerical values. Every record carries a sequence number from the box's buffer. The platform stores each number exactly once and confirms receipt. Only then does the box delete the data. This means there are neither gaps nor duplicates after a network interruption. More on the transport route in the article OPC UA or MQTT for production data.
The decision to use manufacturer-neutral keys has a simple reason: box and platform are developed independently of each other, and new data sources should be able to join without the contract changing. The platform cannot see whether the speed comes from a SINUMERIK or a TNC. It sees spindle.speed. Evaluation, levels and alerts are therefore the same for all machines. An “Alarm” on the HEIDENHAIN machine means exactly the same as on the Siemens machine.
Where the values come from: manufacturer paths from the configuration
Siemens and HEIDENHAIN store their values in OPC UA differently. SINUMERIK uses the paths of the NC variables, HEIDENHAIN its own information model. Which node on a particular machine contains the spindle speed also depends on software version, options and machine builder.
We do not guess such paths and we do not hard-code them in the software. The mapping “this node is spindle.speed” is held in the box configuration, per machine. During the on-site appointment, a tool on the box reads the control's address space, read-only and through the same barrier as in operation. The entries are created from this table. Each path is checked on the real control before it goes into operation.
The connection itself is secured in the same way for all controls: the box reads via OPC UA, normally once per second and never more often than every 0.1 seconds. Writes, method calls, adding and deleting are technically blocked before a request leaves the box. Details in the articles Read-only: write protection on the CNC control and Connecting SINUMERIK and HEIDENHAIN via OPC UA.
umati and OPC 40501: browse paths instead of fixed NodeIds
With umati, technically OPC UA for Machine Tools (OPC 40501-1), there is a cross-manufacturer standard for machine tools. It describes operating mode, channel state, overrides, active program, tools and messages in a uniform structure. That is valuable context for a measurement: is a program currently running in automatic mode? Is a test run active?
What umati does not provide
In its current version, OPC 40501-1 contains no continuous process values: no spindle speed, no spindle load, no axis data. For the spindle there is only whether it is rotating, the override and whether it is being used as an axis. umati alone is therefore not enough for diagnostics. Speed and load come from the manufacturer models.
Anyone reading umati should do so via browse paths, not fixed NodeIds. The reasons are practical:
- Namespace indices differ from server to server. The box has to resolve them via the namespace URI when connecting.
- Channels and spindles have manufacturer-specific names in the namespace of the particular machine. You find them by browsing the
Monitoringnode and filtering by type, not via a fixed path. - Machines are found via the
Machinesfolder from OPC 40001-1 and recognised by the typeMachineToolType. - The NodeId is not a machine identity. The property
ProductInstanceUrifrom the machine's identification serves as the unique key.
An honest assessment belongs here: a umati model cannot be taken for granted on the two major controls. On SINUMERIK, a machine is only umati-capable if the machine builder or an integrator has set up a corresponding model. The HEIDENHAIN OPC UA NC Server uses its own model, not umati. Automatic detection via umati has therefore not yet been implemented in our box software. Today we work with the verified manufacturer paths from the configuration; umati will follow as an addition.
What each CNC control provides
The following overview summarises what is possible today for each control. The vibration sensor on the spindle housing is needed in all cases, because only it delivers the signals for bearing diagnostics.
| CNC control | Connection | What is available |
|---|---|---|
| SINUMERIK 840D sl, 828D, ONE | OPC UA, read-only, option on the control required, plus vibration sensor | Vibration features and bearing diagnostics, plus speed, spindle load, program and alarms from the NC variables. Shortest polling interval of the control 100 ms. |
| HEIDENHAIN TNC 640, TNC 620, TNC7 | OPC UA NC Server, read-only, option on the control required, plus vibration sensor | Vibration features and bearing diagnostics, plus operating mode, overrides, program and error messages. Spindle and axis data only in newer TNC7 software versions; on older versions we check the speed source on site. Spindle load not in the standard model. |
| HEIDENHAIN iTNC 530, TNC 320 | No OPC UA NC Server, sensors only | Vibration features and bearing diagnostics. Speed, load, program and alarms from the control are not available. |
| FANUC | Planned | Not yet offered. Connection via the FANUC FOCAS interface is planned. |
Which values a specific machine delivers depends on the software version, enabled options and the machine builder. That is why we check this on your equipment before committing to anything. With HEIDENHAIN there is an additional point: every application that connects to the OPC UA NC Server needs its own option. If you already use an MES via OPC UA there, a further option may be required.
Older machines without OPC UA: sensors only
The iTNC 530 is still in use in many plants, as is the TNC 320. Neither has an OPC UA NC Server. On these machines we work with the sensors only. In concrete terms:
- What works: the vibration sensor measures on the spindle housing, the box computes the features and looks for bearing frequencies in the envelope spectrum. Evaluation against the learned baseline, levels and alerts work as on any other machine.
- What is missing: speed, load, program name and alarms from the control. Without the program name, a measurement cannot be assigned to a machining program.
- What matters: bearing frequencies are proportional to speed, and the learned baseline is learned per speed range. How the speed is determined on such a machine is something we clarify for the specific machine during the on-site appointment.
For the maintenance engineer nothing changes in the view. The iTNC machine appears in the same overview as the SINUMERIK ONE, with the same levels and alerts. How the box is built and what it computes on site is described in the article How the edge box is built.
FANUC: later, via a dedicated connection
For FANUC controls, an OPC UA server in the control itself is not reliably available. The usual route is the FANUC FOCAS interface over Ethernet. We are developing a dedicated connection for this that writes to the same data format as the OPC UA connection. Once it is finished, FANUC machines will appear in the same view. Until then, FANUC is not offered. The sensors alone could also be used there. Whether that makes sense on your machine is something we discuss in the introductory call.
An overview of all services for milling centres is on the page Spindle monitoring. What you need to provide for the connection is listed under Process and requirements.
Frequently asked questions
Can I monitor Siemens and HEIDENHAIN machines in one system?
Yes. Box and platform translate the values from both controls into a common data contract with manufacturer-neutral keys. Evaluation, levels and alerts are the same for all machines and appear in one shared view.
Is umati enough for spindle condition monitoring?
No. OPC 40501-1 provides states, overrides, program and messages, but no spindle speed, no load and no vibration. Bearing diagnostics needs a vibration sensor; speed and load come from the control's manufacturer models.
Can an iTNC 530 be monitored without OPC UA?
Yes, with sensors. The vibration sensor on the spindle housing provides the data for bearing diagnostics. Values from the control such as speed, load, program and alarms are then not available. We clarify on site how the speed is determined.
Which option does the CNC control need for OPC UA?
SINUMERIK and HEIDENHAIN each need an enabled OPC UA option. With HEIDENHAIN, each connected application occupies its own option. We check which options are present on your machine before committing.
When will FANUC be supported?
FANUC is planned, with the connection via FOCAS. We will only name a date once the connection has been tested on real controls.