MTConnect.NET 6.5.0

dotnet add package MTConnect.NET --version 6.5.0                
NuGet\Install-Package MTConnect.NET -Version 6.5.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MTConnect.NET" Version="6.5.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MTConnect.NET --version 6.5.0                
#r "nuget: MTConnect.NET, 6.5.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MTConnect.NET as a Cake Addin
#addin nuget:?package=MTConnect.NET&version=6.5.0

// Install MTConnect.NET as a Cake Tool
#tool nuget:?package=MTConnect.NET&version=6.5.0                

MTConnect.NET Logo

MTConnect.NET

MTConnect.NET

New Release 10/21/2024 : Version 6.5 Released with support for MTConnect v2.4

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.4. 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.4
    • 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.

Supported Frameworks

  • .NET 8.0
  • .NET 7.0
  • .NET 6.0
  • .NET 5.0
  • .NET Core 3.1
  • .NET Standard 2.0
  • .NET Framework 4.8
  • .NET Framework 4.7.2
  • .NET Framework 4.7.1
  • .NET Framework 4.7
  • .NET Framework 4.6.2
  • .NET Framework 4.6.1

Developer Notes

This repo along with the libraries and applications are free to use and distribute and hopefully will help those that are looking at either getting started using MTConnect or those that are looking to use MTConnect for both basic and more advanced use cases.

Feel free to comment, or create pull-requests for anything that could be coded, formatted, or worded better. Attention to detail and continuous improvement are important in manufacturing so they should be just as important for manufacturing software.

Thanks for your interest in using these libraries and applications and feel free to contribute or give feedback.

- Patrick

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 is compatible.  net462 is compatible.  net463 was computed.  net47 is compatible.  net471 is compatible.  net472 is compatible.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on MTConnect.NET:

Repository Stars
IOT-CS/IOTCS
工业智能网关,基于.net core3.1的跨平台物联网网关。支持不同设备驱动(PLC、CNC、数据库、串口设备、上位机、OPC UA、MQTT)具备二次开发驱动的能力实现与Thingsboard进行数据通讯。同时支持多资源配置化管理,MQTT、MYSQL、WEBHOOK等多种类型,实现数据的快速推送,提供简单的驱动开发接口。
Version Downloads Last updated
6.5.0 284 10/21/2024
6.4.7 649 8/21/2024
6.4.6 331 8/7/2024
6.4.5 72 8/2/2024
6.4.4 281 7/16/2024
6.4.3 244 6/14/2024
6.4.2 104 6/12/2024
6.4.1 306 5/17/2024
6.4.0 108 5/14/2024
6.3.2-beta 92 5/2/2024
6.3.1-beta 104 4/24/2024
6.3.0-beta 104 4/17/2024
6.2.2-beta 111 4/5/2024
6.2.1-beta 114 4/3/2024
6.2.0-beta 120 3/27/2024
6.1.3-beta 132 3/15/2024
6.1.2-beta 133 3/15/2024
6.0.11-beta 342 2/2/2024
6.0.10-beta 272 1/26/2024
6.0.9-beta 370 12/28/2023
6.0.8-beta 350 12/27/2023
6.0.7-beta 375 12/19/2023
6.0.5-beta 412 12/14/2023
6.0.3-beta 383 12/12/2023
6.0.1-beta 427 12/7/2023
5.4.4 3,384 6/6/2023
5.4.3 2,344 5/20/2023
5.4.1 1,152 3/28/2023
5.4.0 1,230 3/20/2023
5.3.0 865 3/14/2023
5.2.0 983 3/5/2023
5.1.0 1,032 3/3/2023
5.0.0 3,188 2/3/2023
4.6.0 1,167 11/28/2022
4.5.0 1,378 10/18/2022
4.4.0 1,335 10/5/2022
4.3.0 1,360 9/20/2022
4.2.0 1,209 9/13/2022
4.1.0 1,257 8/30/2022
4.0.0 1,229 8/26/2022
3.4.2 1,791 6/20/2022
3.4.1 1,101 6/17/2022
3.4.0 962 6/16/2022
3.3.1 1,416 4/27/2022
3.3.0 1,026 4/13/2022
3.2.0 1,136 3/29/2022
3.0.1 1,084 2/1/2022
3.0.0 1,365 1/31/2022
2.9.1.28314 3,428 1/29/2020
2.8.1.29291 2,347 4/23/2018
2.7.0.28439 1,794 10/19/2017
2.6.1.25011 2,131 8/8/2017
2.6.0.2197 1,799 4/1/2017
2.5.0.22963 2,377 3/15/2017
2.4.1.8078 1,640 3/2/2017
2.4.0.35373 1,917 2/13/2017
2.2.0.8480 1,539 2/1/2017
2.1.0.15682 2,582 1/11/2017
2.0.2.11350 1,775 1/1/2017
2.0.1.7322 2,468 12/20/2016
2.0.0.2922 1,681 12/16/2016
1.0.0 2,442 5/25/2016
1.0.0-CI00000 1,342 5/25/2016