Overview

The MTConnect connector provides tag-based read access to any standard MTConnect Agent (https://www.mtconnect.org) over its HTTP REST API, using only HttpClient and System.Xml.Linq - no vendor SDK dependency, since MTConnect is an open, versioned public standard rather than a proprietary interface.

Every poll cycle issues a single /current request to the Agent and looks every registered tag's value up out of that one document, rather than one request per tag - there's no per-tag session or handle to manage, unlike device-level connectors.

MTConnect is read-only by design. The standard's own data flow is Device → Adapter → Agent → Client, and there is no mechanism for a client to write a value back through the Agent's REST API. A tag configured as Out/InOut against an MTConnect address will have its own value updated locally, but nothing is ever sent to the machine.

The connector detects when the Agent becomes unreachable and reconnects automatically without blocking the read cycle - reconnection runs on its own dedicated background thread. Since HTTP polling is inherently stateless, "reconnecting" and "probing" are the same lightweight operation - there's no persistent session to tear down and rebuild.

Parameters

Name Values Description
Type MTCONNECT The connector type identifier.
IP IP address or hostname The IP address or hostname of the MTConnect Agent.
Port integer The Agent's HTTP port. Defaults to 5000 (the common Agent default).
Device device name Optional - scopes requests to a single device's /current endpoint rather than the Agent's full set of devices.
UseHttps true/false Whether to connect over HTTPS instead of HTTP. Defaults to false.
Timeout milliseconds (integer) HTTP request timeout. Defaults to 5000.
UpdateRate milliseconds (integer) How often the connector polls /current. Defaults to 1000.
ReconnectDelay milliseconds (integer) Delay between reconnect attempts while the Agent is unreachable. Defaults to 5000.

Supported Tag Types:

Every MTConnect value is plain text, so there's no DataType disambiguation needed the way there is for a PLC connector - the raw string returned by the Agent is passed straight to each tag's own SetValue, and the tag type itself (BoolTag/IntTag/DecimalTag/StringTag/etc.) handles its own coercion.

Tag Type Address Behaviour
Any standard tag dataItemId, e.g. PartCountAct Read-only. Looked up by dataItemId in the /current response.
Any standard tag device:dataItemId, e.g. OKUMA.Lathe:PartCountAct Same, but scoped to a specific device's stream when an Agent hosts multiple devices and dataItemIds might otherwise collide.

Connector Methods

If a dataItemId exists but the machine hasn't reported a value for it yet, MTConnect reports it as UNAVAILABLE - the connector treats this as normal (leaves the tag at its last known value) rather than as a fault.

Name Arguments Description
Probe - Fetches the Agent's /probe document (device/data-item metadata) and returns the raw XML.
GetDataItem Address Fetches the current value of a single dataItemId on demand, using the same dataItemId or device:dataItemId address format as a tag.

Addressing

The Address field of a tag is a dataItemId, optionally qualified as device:dataItemId to disambiguate when an Agent hosts multiple devices. The same value is also available on demand via RunMethod("GETDATAITEM") rather than through a polled tag, if a one-off read is preferred over continuous polling.