MTConnect (CNC Machine Tools)
MTConnect — An open standard for CNC machine tools (HTTP + XML, default port 5000). An MTConnect agent placed in front of the equipment provides the current status as XML via /current, and the gateway periodically fetches and stores it.
| Scenario | Which card to use |
|---|---|
| Machine tools with an MTConnect agent (Mazak · Okuma · Haas · DMG MORI, etc.) | MTConnect (this page) |
| Connecting directly to a FANUC CNC | FOCAS |
| Connecting via the machine's built-in PLC | MELSEC · S7 |
If an agent already exists, MTConnect is easier — values come in with standard names, and even if machine types are mixed, the tag names are the same. Conversely, if there is no agent or if you need FANUC-specific values (tool compensation, alarm details), use FOCAS.
Registration Form Inputs
| Input Field | What to Enter | Example |
|---|---|---|
| IP Address | Agent address (not the machine) | 10.20.30.50 |
| Port | Default 5000 | 5000 |
| Collection Interval | Interval for reading from the cache (ms) | 1000 |
Options
| Option | Default | What it is |
|---|---|---|
path | /current | Agent endpoint |
device | (None) | When one agent handles multiple machines — separated by /<device>/current |
poll-interval | 1000 | Interval for actually calling the agent (ms) |
tls | Off | Connected via https |
poll-interval is the interval for calling the agent, and the collection interval is for reading the cache. To reduce the load on the agent, increase the poll-interval side — merely increasing the collection interval still results in the agent being called every second.
Tag PLC Address Notation — dataItemId or name
The tag's PLC address = the DataItem's dataItemId or name. Both are accepted.
| Address | What it is |
|---|---|
Xact | X-axis actual position |
path_feedrate | Feed rate |
execution | Execution status (ACTIVE · READY · STOPPED …) |
avail | Whether the agent is communicating with the machine (Availability) |
For the Condition element, the element names (Normal · Warning · Fault) come in as values.
Open http://<에이전트>:5000/current in a browser and the XML is shown as-is. The dataItemId and name attributes there are directly usable addresses. /probe is the complete list of DataItems that machine provides.
It's not polling — it's «hold and retrieve»
백그라운드 ─▶ GET /current ─▶ XML 파싱 ─▶ dataItemId · name 별 캐시
(poll-interval) │
수집 주기마다 태그가 캐시를 읽는다
Even if you create 100 tags, the agent call is still just one — because all values come from that single fetched XML.
When it doesn't work
| Symptom | What to check first |
|---|---|
| All values are empty | Whether /current opens in a browser, and whether path is correct |
avail is UNAVAILABLE | The agent is alive but disconnected from the machine — check the machine side |
| Only one machine's values come through | The agent is handling multiple machines — set the device option |
| Values don't change | Whether poll-interval is too long, and whether that DataItem is actually a changing value. |