Actual position of the first linear axis, in millimetres. Indexed rather than lettered because axis naming is not portable: what one controller calls X another calls axis 1, and a lathe's first axis is not a mill's. The letter form is preserved alongside as axes.x_position_actual where the source provides it.
axes.0.position_actualEach of these is a real tag as the device or controller emits it, taken from the Forge mapping corpus. This is the table that does not exist anywhere else — the reason cross-vendor telemetry is hard is visible in a single column.
| OEM / profile | Raw tag as the device emits it | Confidence |
|---|---|---|
| Fanuc | Abs Xxabs_mXabs(m)Abs X_inabs_x_inabs_x_mm+22 more spellings | 1.00 |
| Siemens | XIst_mXIst(in)XIst(mm)X Ist [m]XIst [mm]X Ist [in]+14 more spellings | 1.00 |
| Haas | X WORK_mXWORK_inXpos (m)XPOS (mm)XWORK [m]X Mach Pos+11 more spellings | 1.00 |
Every row above is an exact match — a deterministic pack entry or a confirmed corpus mapping — so all of them carry confidence 1.00. That is not a rounding: these are the two exact-match layers, and a tag that resolves here never reaches the embedding or LLM layers. Mappings resolved by the LLM layer do carry sub-1.0 confidence, but those are per-tenant and are not published here.
The canonical field is not just a name. It is a contract about units, sign convention and plausible range, enforced on the way in and re-checked at read time.
| SI / canonical unit | mm |
| Accepted input units | cm ft in m mil mm um |
| Converted on ingest | cm ft in m mil um → mm |
| Physics bounds | -100000.0 to 100000.0 mm |
| Measurement type | instantaneous |
| Distinct source tags in the corpus | 232 |
No mapping table to maintain, and no per-vendor branch in your code. The same request shape works for every OEM in the table above.
Transports this field is carried on in the corpus.
—Read alongside this one.
axes.0.temperature_c axes.0.load_percent spindle_speed_rpm spindle_load_pct program_name