SkillAgentSearch skills...

MTConnect.NET

Fully featured .NET library in C# to build MTConnect Agent, Adapter, and Client Applications. Pre-built Agents with Windows Installers. Support for Windows and Linux. Supports MTConnect Versions up to 2.5. Supports .NET Framework 4.6.1 up to .NET 9

Install / Use

/learn @TrakHound/MTConnect.NET
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MTConnect.NET Logo

MTConnect.NET

Download

<table> <thead> <tr> <th style="text-align: left;min-width: 100px;">Name</th> <th style="text-align: left;min-width: 100px;"></th> <th style="text-align: left;"></th> <th style="text-align: left;">Link</th> </tr> </thead> <tbody> <tr> <td>Agent</td> <td>Installer</td> <td><img src="https://img.shields.io/github/downloads/TrakHound/MTConnect.NET/total?style=for-the-badge&logo=github&label=%20&color=%23333"/></td> <td><a href="https://github.com/TrakHound/MTConnect.NET/releases/latest">https://github.com/TrakHound/MTConnect.NET/releases/latest</a></td> </tr> <tr> <td>Agent</td> <td>Docker</td> <td><img src="https://img.shields.io/docker/pulls/trakhound/mtconnect.net-agent?style=for-the-badge&logo=docker&label=%20&color=%23333"/></td> <td><a href="https://hub.docker.com/r/trakhound/mtconnect.net-agent">https://hub.docker.com/r/trakhound/mtconnect.net-agent</a></td> </tr> <tr> <td>Client</td> <td>Nuget</td> <td><img src="https://img.shields.io/nuget/dt/MTConnect.NET?style=for-the-badge&logo=nuget&label=%20&color=%23333"/></td> <td><a href="https://www.nuget.org/packages/MTConnect.NET">https://www.nuget.org/packages/MTConnect.NET</a></td> </tr> </tbody> </table>

Overview

MTConnect.NET is a fully featured and fully Open Source .NET library for MTConnect to develop Agents, Adapters, and Clients. Supports MTConnect Versions up to 2.5. A pre-compiled Agent application is available to download as well as an Adapter application that can be easily customized.

  • .NET Native MTConnect Agent
  • Adapter framework used to send data to an MTConnect Agent
  • Libraries to easily implement MTConnect Agent, Adapters, or Clients into custom applications

Features

  • Module based Agent & Adapter architecture
    • Supports running as Windows Service with easy to use command line arguments
    • Presistent Agent Buffers that are backed up on the File System. Retains state after Agent is restarted
  • Fully compatible up to the latest MTConnect v2.5
    • Kept up to date by utilizing the MTConnect SysML Model to generate source files
    • Supports multiple MTConnect Version output. Automatically removes data that is not compatible with the requested version
  • Full client support for requesting data from any MTConnect Agent (Probe, Current, Sample Stream, Assets, etc.).
    • Supports HTTP, MQTT, and SHDR
    • Supports compression (polling & streaming)
    • Supports XML & JSON
    • Supports HTTPS & TLS for secure communication
  • Python Input Processors to transform data before loading into Agent
  • Full data validation
    • Validation on Input
    • XML Schema Validation on output
    • Configurable Validation Levels
  • Fully documented objects using text from the MTConnect Standard. This enables Intellisense in applications such as Visual Studio.
  • Fully supports Unit conversion. Default Units and UnitConversion is done automatically when sending Streams and when reading Streams.

Integrate

  • Easily integrate with cloud services such as AWS and Azure
  • Use client libraries to export MTConnect data to a Database (ex. SQL, Redis, MongoDB, etc.)
  • Create custom dashboards and data collection applications to utilize equipment data
  • Embed an MTConnect Agent into your adapter (remove need for separate SHDR Adapter)

MTConnect Version Compatibility

MTConnect.NET is designed to be fully compatible for all versions of the MTConnect standard. This is done through processing by the MTConnectAgent class before data is output. This allows the version to be a parameter when requesting data from the Agent. More information can be found in the Devices README.

Data Validation

Validation is performed on a Device, Component, Composition, or DataItem level through the classes in Devices. This allows for validation without the need to use XML schemas (although XML Validation against XSD schemas is supported).

Clients

Client Interfaces

  • IMTConnectClient : Interface used to read MTConnect response documents (Probe, Current, Sample, and Assets)
  • IMTConnectEntityClient : Interface used to read MTConnect entities (Device, Observation, Asset)

Client Classes

  • MTConnectHttpClient : Reads from MTConnect Agents using the MTConnect HTTP REST Api. Supports both polling and streaming. Supports compression. Supports XML & JSON.
  • MTConnectMqttClient : Reads MTConnect data from an MQTT Broker. Supports the latest MTConnect MQTT Protocol.

Agents

Embedded Agent Application

An MTConnect Agent can be embedded into an application where the DataSource(s) can be read and the MTConnect Agent can be combined into the same application. This eliminates the need to transfer data from an Adapter to an Agent (typically using the SHDR protocol).

Option #1 : DotNet Template
dotnet new mtconnect.net-agent
Option #2 : Nuget Package
dotnet add package MTConnect.NET-Applications-Agents

Standalone Agent Application

A standalone preconfigured Application ready to download is available and supports:

  • Modular architecture
    • HTTP Server Module
    • SHDR Adapter Module
    • MQTT Broker Module
    • MQTT Relay Module
    • etc.
  • Easy Windows Installer
  • Linux Compatible
  • Run as a Windows Service
  • Transform input data using Python scripts
  • Extensible configuration file and monitors for changes

Agent Classes

  • MTConnectAgent : Handles MTConnect Entities (Device, Observation, Asset), Unit Conversion, Filtering, etc.
  • MTConnectAgentBroker : Handles MTConnect Requests to respond with Response Documents (Probe, Current, Sample, Assets) specified in the MTConnect Standard, Buffers, etc.

Adapters

Standalone Modular Adapter Application

A preconfigured Application & Library to build an Adapter is available and supports:

  • Modular architecture
    • SHDR Module (export data to an MTConnect Agent using the SHDR protocol)
    • MQTT Module (export data to an MQTT Broker to be read by an MTConnect Agent)
  • Run as a Windows Service
  • Extensible configuration file and monitors for changes
  • Customizable Data Source engine (to read from a PLC)
  • Updated through a Nuget package (no source code copy & paste required when updating to new versions)

SHDR Adapter Classes

  • ShdrAdapter : Sends the most recent values On-Demand using the SendCurrent() method. This is used when full control of the communication is needed.
  • ShdrIntervalAdapter : Sends the most recent values at the specified Interval. This is used when a set interval is adequate and the most recent value is all that is needed
  • ShdrQueueAdapter : Queues all values that are sent from the PLC and sends them all on demand using the SendBuffer() method. This is used when all values are needed and full control of the communication is needed.
  • ShdrIntervalQueueAdapter : Queues all values that are sent from the PLC and sends any queued values at the specified Interval. This is used when all values are needed but an interval is adequate.

Nuget Packages

The Nuget packages for the libraries in this repo are listed below:

<table> <thead> <tr> <th style="text-align: left;min-width: 100px;">Name</th> <th style="text-align: center;min-width: 90px;">Downloads</th> <th style="text-align: left;">Link</th> </tr> </thead> <tbody> <tr> <td>MTConnect.NET</td> <td style="text-align: center;"><img src="https://img.shields.io/nuget/dt/MTConnect.NET?style=for-the-badge&logo=nuget&label=%20&color=%23333"/></td> <td><a href="https://www.nuget.org/packages/MTConnect.NET">https://www.nuget

Related Skills

View on GitHub
GitHub Stars124
CategoryCustomer
Updated6d ago
Forks47

Languages

C#

Security Score

100/100

Audited on Mar 28, 2026

No findings