Every CNC / machine tool vendor names the same measurement differently. Forge maps 21 of them into one canonical field set so your agent reads one shape.
One real example per vendor — the clearest illustration of why a per-vendor parser does not scale.
| Raw tag in | Canonical field out | Source | |
|---|---|---|---|
| SpindleActualSpeed: 8000 | → | spindle_speed_rpm: 8000 | DMG Mori |
| Spindle_Speed: 2200 | → | spindle_speed_rpm: 2200 | Fanuc |
| Q600_1: 3400 | → | spindle_speed_rpm: 3400 | Haas |
| S_actual: 9000 | → | spindle_speed_rpm: 9000 | Heidenhain |
| S1speed: 12000 | → | spindle_speed_rpm: 12000 | Mazak |
| SpindleRPM: 4500 | → | spindle_speed_rpm: 4500 | Okuma |
MTConnect (20) OPC UA (15) Modbus TCP (6) HTTP / REST (2) PROFINET / S7 (1) EtherNet/IP (1) MQTT Sparkplug B (1)
alarm_codeaxes.0.load_percentaxes.0.position_actualaxes.0.temperature_ccnc.path.feedrateenergy.cumulative_kwhfeed_rateidentity.controller_modelmachining_statepart_countpower.instantaneous_kwprogram_name
Full schema: FoundryNet/canonical-schema (MIT, 366 fields).