# Machine types & protocols (/docs/guides/machine-types)



Every machine in Xentr has a **type** — a reusable definition of *which protocol* it speaks and
*how its data reaches us*. A machine record then just binds that type to one machine's connection
details (an IP, a SIM, or an MQTT identity). This keeps onboarding consistent across very different
hardware: a FANUC CNC and an andon light are the same "add a machine" flow with different fields.

## The model [#the-model]

A machine type is made of three layers:

1. **Driver** — the protocol implementation (FOCAS, Modbus, OPC-UA, andon…). Shipped by Xentr.
2. **Profile** — the data model for that machine: which registers/tags to read, units, poll rate.
3. **Instance** — one machine's connection parameters (IP/port, SIM, or MQTT client id).

You pick a type; Xentr renders only the fields that type needs.

## The three connection methods [#the-three-connection-methods]

How telemetry reaches Xentr depends on the machine type:

| Method             | How data arrives                                                                 | You provide                         | Example                        |
| ------------------ | -------------------------------------------------------------------------------- | ----------------------------------- | ------------------------------ |
| **Edge-collected** | a Xentr edge gateway on your shop floor polls the machine and forwards telemetry | the edge + each machine's IP:port   | FANUC FOCAS (`IP:8193`)        |
| **Cloud-polled**   | Xentr polls a vendor cloud on your behalf                                        | a device SIM / vendor registration  | Andon via lightmes.cn          |
| **Direct-MQTT**    | the device publishes straight to your Xentr broker                               | the device's MQTT client id + topic | Andon via a self-hosted broker |

Edge-collected machines need a one-time [edge setup](/docs/guides/edge-setup) (claim, then connect);
cloud-polled and direct-MQTT machines do not.

## Supported protocols [#supported-protocols]

<Callout type="info">
  Availability below reflects what is wired end-to-end today. Protocols marked **Roadmap** are
  planned — the type model is built so adding one is a driver + a type definition, not a change to
  your onboarding flow.
</Callout>

| Protocol                       | Method         | Status                                                            |
| ------------------------------ | -------------- | ----------------------------------------------------------------- |
| **FANUC FOCAS**                | Edge-collected | **Available**                                                     |
| **Andon — lightmes.cn**        | Cloud-polled   | **Available**                                                     |
| **Andon — self-hosted (MQTT)** | Direct-MQTT    | **Available**                                                     |
| Modbus TCP                     | Edge-collected | Roadmap                                                           |
| OPC-UA                         | Edge-collected | Roadmap                                                           |
| MTConnect                      | Edge-collected | Roadmap                                                           |
| Siemens S7                     | Edge-collected | Roadmap                                                           |
| Generic MQTT / REST            | Direct-MQTT    | Available — see [Connect a machine](/docs/guides/connect-machine) |

## More protocols are coming [#more-protocols-are-coming]

The protocol list is **deliberately open-ended**. Because a machine type is a driver plus a profile,
new protocols are added without changing how you onboard machines:

* **A new *model* of a protocol we already support** (e.g. another FANUC series, another Modbus
  device) is a configuration change — no new software.
* **A genuinely new *protocol*** (e.g. EtherNet/IP, SECS/GEM) ships as a new edge driver plus a type
  definition; once released it appears in the machine-type picker like any other.

If you run a protocol you don't see here, [contact us](/docs/guides/connect-machine) — prioritising
the roadmap is driven by what customers actually run.

## Next steps [#next-steps]

* [Connect a machine](/docs/guides/connect-machine) — register a machine and start streaming.
* [Edge setup](/docs/guides/edge-setup) — provision an edge gateway for edge-collected protocols.
* [Andon & quality](/docs/guides/quality-and-andon) — how andon state maps to RUNNING/IDLE/ALARM/OFF.
