MTConnect Integration Guide
Use MaestroHub's MTConnect connector to collect real-time data from CNC machines, manufacturing equipment, and industrial devices that support the MTConnect standard. This guide explains how to configure connections, query device data, and integrate equipment monitoring into your pipelines.
Overview
The MTConnect connector provides:
- Read-only access to MTConnect agents for device discovery, current values, and historical data
- Four query types – Probe (device structure), Current (latest values), Sample (time-series), and Assets (tools, fixtures)
- XML and JSON support for flexible response handling
- No authentication required – MTConnect is designed for trusted network environments
MTConnect is an open, royalty-free standard for exchanging data from manufacturing equipment. An MTConnect Agent collects data from machines via Adapters and serves it over HTTP. MaestroHub acts as a client, querying the agent for device information and process data.
Connection Configuration
Creating an MTConnect Connection
Navigate to Connections → New Connection → MTConnect and configure the following settings:
MTConnect Connection Creation Fields
1. Profile Information
| Field | Default | Description |
|---|---|---|
| Profile Name | - | A descriptive name for this connection profile (required, max 100 characters) |
| Description | - | Optional description for this MTConnect connection |
2. Agent Configuration
| Field | Default | Description |
|---|---|---|
| Agent URL | - | MTConnect agent endpoint (e.g., http://cnc-agent.local:5000) – required, must be http:// or https:// |
| Response Format | xml | Expected response format from the agent (xml or json) |
| Request Timeout (ms) | 30000 | Maximum time to wait for agent response (1000-300000 ms) |
Agent URL Examples
http://192.168.1.100:5000– Direct IP addresshttp://cnc-agent.factory.local:5000– DNS hostnamehttps://mtconnect.example.com– Secure endpoint
3. TLS Settings
| Field | Default | Description |
|---|---|---|
| Skip TLS Verification | false | Skip SSL certificate verification (not recommended for production) |
The MTConnect standard does not require authentication – the specification states "no logon or logoff sequence is required." Security relies on network segmentation. Deploy agents on isolated OT networks and control access at the firewall level. Some MTConnect 2.0 agents support optional TLS certificates, but this is implementation-specific.
4. Health Check Settings
| Field | Default | Description |
|---|---|---|
| Enable Health Check | false | Periodically verify agent connectivity |
| Health Check Endpoint | /probe | Path used for health checks |
| Health Check Interval (s) | 60 | Interval between health checks (10-3600 seconds) |
5. Connection Labels
| Field | Default | Description |
|---|---|---|
| Labels | - | Key-value pairs to categorize this connection (max 10 labels) |
Example Labels
environment: production– Deployment environmentcell: machining-01– Manufacturing cellequipment-type: cnc– Equipment categorylocation: building-a– Physical location
Function Builder
Creating MTConnect Functions
After the connection is configured:
- Go to Functions → New Function
- Choose the function type: Probe, Current, Sample, or Assets
- Select your MTConnect connection profile
- Configure device filters and query parameters
Probe Function
Purpose: Discover device structure and capabilities. Use this to understand what data items are available from a machine before querying values.
Configuration Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Device | String | No | - | Filter by device name (e.g., Mill-001). Leave empty for all devices. |
| Path | String | No | - | XPath filter to narrow results (e.g., //DataItem[@type='POSITION']) |
| Timeout (ms) | Number | No | - | Override connection timeout for this request |
Response Structure
Returns device metadata including:
- Device identifiers (id, name, uuid)
- Component hierarchy (axes, controllers, systems)
- Available data items with types and units
Use Cases: Initial setup, discovering available tags, documenting machine capabilities
Current Function
Purpose: Get the latest value for each data item. This returns a snapshot of current machine state without historical context.
Configuration Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Device | String | No | - | Filter by device name |
| Path | String | No | - | XPath filter for specific data items (e.g., //Position) |
| At | Number | No | - | Get values at a specific sequence number |
| Timeout (ms) | Number | No | - | Override connection timeout for this request |
Response Structure
Returns current values including:
- Data item values with timestamps
- Sequence numbers for change tracking
- Component and device context
Use Cases: Real-time dashboards, current state monitoring, snapshot collection
Sample Function
Purpose: Retrieve historical time-series data. Use this for trend analysis, data logging, or catching up on missed values.
Configuration Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Device | String | No | - | Filter by device name |
| Path | String | No | - | XPath filter for specific data items |
| From | Number | No | - | Starting sequence number (for incremental collection) |
| Count | Number | No | 100 | Maximum number of samples to return (1-10000) |
| Timeout (ms) | Number | No | - | Override connection timeout for this request |
Response Structure
Returns time-series data including:
- Ordered sequence of data item values
- Timestamps for each sample
- Sequence numbers for pagination
Use Cases: Historical analysis, data backfill, incremental data collection, trend monitoring
Store the last sequence number from each response. On the next request, use it as the From parameter to collect only new data without duplicates.
Assets Function
Purpose: Retrieve asset information such as cutting tools, fixtures, workpieces, and programs stored in the agent.
Configuration Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Asset Type | String | No | - | Filter by asset type (e.g., CuttingTool, Fixture) |
| Count | Number | No | 100 | Maximum number of assets to return (1-1000) |
| Timeout (ms) | Number | No | - | Override connection timeout for this request |
Response Structure
Returns asset details including:
- Asset identifiers and types
- Tool life and measurement data
- Custom asset properties
Use Cases: Tool management, fixture tracking, program versioning
Understanding MTConnect Data
Data Item Categories
MTConnect organizes data into three categories:
| Category | Description | Examples |
|---|---|---|
| Samples | Continuously variable numeric values | Position, temperature, spindle speed, load |
| Events | Discrete state changes | Execution state, program name, operator mode |
| Conditions | Alarm and warning states | Faults, warnings, normal status |
Common Data Item Types
| Type | Category | Description |
|---|---|---|
POSITION | Sample | Axis position in configured units |
SPINDLE_SPEED | Sample | Spindle rotational speed (RPM) |
LOAD | Sample | Component load percentage |
EXECUTION | Event | Program execution state (ACTIVE, STOPPED, etc.) |
PROGRAM | Event | Currently loaded program name |
AVAILABILITY | Event | Device availability (AVAILABLE, UNAVAILABLE) |
SYSTEM | Condition | System-level fault conditions |
XPath Filtering
Use the Path parameter to filter results:
| Pattern | Description |
|---|---|
//DataItem[@type='POSITION'] | All position data items |
//Linear[@name='X']/DataItems | Data items from X axis |
//Controller//DataItem | All controller data items |
//DataItem[@category='CONDITION'] | All condition data items |
Pipeline Integration
Use MTConnect functions in the Pipeline Designer to build automated data collection workflows. Drag the MTConnect node onto the canvas, select your connection and function, and bind parameters to upstream outputs or constants.
Example Pipeline Patterns
- Periodic Polling: Schedule pipeline to run every minute, collect current values, store in database
- Incremental Collection: Track sequence numbers, collect only new samples since last run
- Event-Driven: Trigger on external event, probe device state, route based on conditions
If you're designing larger orchestrations, the Connector Nodes page shows how MTConnect nodes fit alongside other industrial protocols.
Common Use Cases
Machine Monitoring Dashboard
Collect current values from multiple CNC machines and display real-time status on operator dashboards showing spindle speed, axis positions, and execution state.
OEE Data Collection
Use Sample functions to collect historical data for calculating Overall Equipment Effectiveness – availability, performance, and quality metrics over time.
Tool Life Tracking
Query Assets functions to monitor cutting tool usage and remaining life, triggering alerts when tools approach replacement thresholds.
Predictive Maintenance
Collect load, vibration, and temperature samples over time. Feed this data to analytics systems to detect anomalies before equipment failures occur.
Production Reporting
Combine execution state events with part count data to generate shift reports, tracking cycle times, downtime reasons, and production quantities.
Troubleshooting
Connection Issues
| Symptom | Possible Cause | Solution |
|---|---|---|
| Connection timeout | Agent not reachable | Verify network connectivity and firewall rules |
| Invalid URL error | Malformed agent URL | Ensure URL includes protocol (http:// or https://) |
| TLS certificate error | Self-signed certificate | Enable "Skip TLS Verification" for testing only |
Data Issues
| Symptom | Possible Cause | Solution |
|---|---|---|
| Empty response | No matching devices | Remove device filter or verify device name |
| Missing data items | XPath filter too restrictive | Simplify Path parameter or use Probe to discover structure |
| Stale data | Agent buffer overflow | Increase polling frequency or use smaller time windows |
Use the Test button in the Function Builder to validate your configuration before using it in pipelines. This helps identify issues with device names, paths, or parameter values.