MTConnect.NET-Common
3.3.1
See the version list below for details.
dotnet add package MTConnect.NET-Common --version 3.3.1
NuGet\Install-Package MTConnect.NET-Common -Version 3.3.1
<PackageReference Include="MTConnect.NET-Common" Version="3.3.1" />
paket add MTConnect.NET-Common --version 3.3.1
#r "nuget: MTConnect.NET-Common, 3.3.1"
// Install MTConnect.NET-Common as a Cake Addin #addin nuget:?package=MTConnect.NET-Common&version=3.3.1 // Install MTConnect.NET-Common as a Cake Tool #tool nuget:?package=MTConnect.NET-Common&version=3.3.1
MTConnect.NET
Overview
MTConnect.NET is a fully featured .NET library for MTConnect® to develop Agents, Adapters, and Clients. Supports MTConnect Versions up to 1.8.
The Agent, Buffers, and Adapter are separated into individual classes in order to allow for modular implementations such as the following :
- A traditional Agent that uses a REST Api, in-memory buffer, and Adapters that communicate using the SHDR protocol
- An agent imbedded with the Adapter (which elminates the need for the Adapter TCP communication)
- Buffers that read from a permanent storage source (ex. SQL, SQLite, etc.)
- Interfaces other than Http REST such as MQTT
- Integration with cloud services such as AWS and Azure
Other features of MTConnect.NET :
- Models framework for setting and accessing data using an object model as opposed to DataItem ID's and Types
- Extensible through plugin libraries to extend Types
- Full data validation
- Fully documented objects using text from the MTConnect Standard. This enables Intellisense in applications such as Visual Studio.
- Full list of Component, Composition, and DataItem types. See Devices for more information.
- Default Units and UnitConversion is done automatically when sending Streams and when reading Streams.
- Full client support for requesting data from any MTConnect Agent (Probe, Current, Sample Stream, Assets, etc.). See Clients for more information.
Applications
MTConnect HTTP Agent : A traditional MTConnect Agent using a REST Api, in-memory buffer, and SHDR for Adapters. Uses the MTConnectHttpServer as the web server.
MTConnect HTTP Agent - AspNetCore : Similar to the MTConnect Agent application but uses either the built-in Kestrel server or can be setup through IIS (Internet Information Services). This allows the agent to be used with all of the features available through ASP.NET and IIS such as security, permissions, monitoring, etc.
MTConnect HTTP Gateway Agent : An Agent that runs mulitple MTConnectClients on the backend and passes that data to an MTConnectAgent. This can be used to access MTConnect data on a central server.
MTConnect HTTP Gateway Agent - AspNetCore : An Agent that runs mulitple MTConnectClients on the backend and passes that data to an MTConnectAgent. This can be used to access MTConnect data on a central server. Uses either the built-in Kestrel server or can be setup through IIS (Internet Information Services). This allows the agent to be used with all of the features available through ASP.NET and IIS such as security, permissions, monitoring, etc.
MTConnect MQTT Agent : (In-Progress) An MTConnect Agent with an MQTT broker built-in.
MTConnect MQTT Gateway Agent : (In-Progress) An MTConnect Gateway Agent with an MQTT broker built-in.
Live Demo
A live demo of the MTConnect Gateway HTTP Agent (AspNetCore) application is running at https://mtconnect.trakhound.com.
- https://mtconnect.trakhound.com/current
- https://mtconnect.trakhound.com/sample
- https://mtconnect.trakhound.com/assets
Beta
A Discussion has been created to log the progress of the Beta. Feel free to use this discussion to request features or ask questions.
Nuget Packages
The Nuget packages for the libraries in this repo are listed below:
- MTConnect.NET
- MTConnect.NET-Common
- MTConnect.NET-HTTP
- MTConnect.NET-HTTP-AspNetCore
- MTConnect.NET-XML
- MTConnect.NET-SHDR
- MTConnect.NET-MQTT
- MTConnect.NET-Pallets
Supported Frameworks
.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
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.
NOTE: All data items have not been set for compatiblity as of yet. This should be finished before the Beta is completed.
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.
Releases
Releases are available under the Releases tab
Agents
Agents are implemented using the MTConnectAgent class and IMTConnectAgent interface. The MTConnectAgent class implements the MTConnect® standard and is inteded to be full implemenation. More information about agents can be found at Agents and Agent Applications can be found at Agent Applications.
Traditional Implementation
Embedded Implementation
Adapters
SHDR Adapter
The only adapter currently available is one using the SHDR protocol. More information can be found at Adapters.
Developer Notes
This repo along with the libraries and applications are free to use and hopefully will help those that are looking at either getting started using MTConnect or those that are looking to use MTConnect for more advanced use cases. The Models framework will hopefully make using MTConnect much easier and straight forward and promote better usage of the standard's lesser used features.
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.
One of this project's goals is to expand the use cases for MTConnect and by breaking apart the functionalities of the agent, hopefully that will allow others to be creative in how to use the MTConnect standard.
Hopefully this repo will serve as a "one stop shop" for .NET developers looking to use MTConnect. If anyone is interested in developing a similar repo for another framework or language, feel free to use this as a guide as I imagine some of the classes (which is the most tedious part of the code) could be converted to other languages fairly easily.
This MTConnect.NET update is Part 1 of The TrakHound Project which is a project to provide open source code as well as products for each part of a full IIOT implementation. Please show support for our project at www.TrakHound.com.
Thanks for your interest in using these libraries and applications and feel free to contribute or give feedback.
- Patrick
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. 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 was computed. 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 was computed. 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 is compatible. |
.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. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.6.1
- System.Text.Json (>= 6.0.1)
-
.NETFramework 4.6.2
- System.Text.Json (>= 6.0.1)
-
.NETFramework 4.7
- System.Text.Json (>= 6.0.1)
-
.NETFramework 4.7.1
- System.Text.Json (>= 6.0.1)
-
.NETFramework 4.7.2
- System.Text.Json (>= 6.0.1)
-
.NETFramework 4.8
- System.Text.Json (>= 6.0.1)
-
.NETStandard 2.0
- System.Text.Json (>= 6.0.1)
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (10)
Showing the top 5 NuGet packages that depend on MTConnect.NET-Common:
Package | Downloads |
---|---|
MTConnect.NET
MTConnect.NET is a fully featured .NET library for MTConnect Agents, Adapters, and Clients. Supports MTConnect Versions up to 2.3. Supports .NET Framework 4.6.1 up to .NET 8 |
|
MTConnect.NET-HTTP
MTConnect.NET-HTTP implements the HTTP protocol for use with the MTConnect.NET library. Supports MTConnect Versions up to 2.3. Supports .NET Framework 4.6.1 up to .NET 8 |
|
MTConnect.NET-XML
MTConnect.NET-XML implements the XML Document Format for use with the MTConnect.NET library. Supports MTConnect Versions up to 2.3. Supports .NET Framework 4.6.1 up to .NET 8 |
|
MTConnect.NET-JSON
MTConnect.NET-JSON implements the JSON Document Format for use with the MTConnect.NET library. Supports MTConnect Versions up to 2.3. Supports .NET Framework 4.6.1 up to .NET 8 |
|
MTConnect.NET-HTTP-AspNetCore
MTConnect.NET-HTTP-AspNetCore is an extension library to MTConnect.NET that uses ApiControllers and the built-in features for Asp.NET Core up to .NET 7 |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
6.5.0 | 1,056 | 10/21/2024 |
6.4.7 | 1,338 | 8/21/2024 |
6.4.6 | 967 | 8/7/2024 |
6.4.5 | 562 | 8/2/2024 |
6.4.4 | 854 | 7/16/2024 |
6.4.3 | 917 | 6/14/2024 |
6.4.2 | 769 | 6/12/2024 |
6.4.1 | 899 | 5/17/2024 |
6.4.0 | 623 | 5/14/2024 |
6.3.2-beta | 594 | 5/2/2024 |
6.3.1-beta | 740 | 4/24/2024 |
6.3.0-beta | 549 | 4/17/2024 |
6.2.2-beta | 560 | 4/5/2024 |
6.2.1-beta | 581 | 4/3/2024 |
6.2.0-beta | 521 | 3/27/2024 |
6.1.3-beta | 604 | 3/15/2024 |
6.1.2-beta | 564 | 3/15/2024 |
6.0.11-beta | 844 | 2/2/2024 |
6.0.10-beta | 744 | 1/26/2024 |
6.0.9-beta | 865 | 12/28/2023 |
6.0.8-beta | 825 | 12/27/2023 |
6.0.7-beta | 862 | 12/19/2023 |
6.0.5-beta | 966 | 12/14/2023 |
6.0.3-beta | 1,026 | 12/12/2023 |
6.0.1-beta | 1,109 | 12/7/2023 |
5.4.4 | 4,892 | 6/6/2023 |
5.4.3 | 3,147 | 5/20/2023 |
5.4.1 | 2,273 | 3/28/2023 |
5.4.0 | 2,342 | 3/20/2023 |
5.3.0 | 2,102 | 3/14/2023 |
5.2.0 | 2,250 | 3/5/2023 |
5.1.0 | 2,318 | 3/3/2023 |
5.0.0 | 5,458 | 2/3/2023 |
4.6.0 | 3,660 | 11/28/2022 |
4.5.0 | 4,035 | 10/18/2022 |
4.4.0 | 3,513 | 10/5/2022 |
4.3.0 | 3,574 | 9/20/2022 |
4.2.0 | 3,317 | 9/13/2022 |
4.1.0 | 3,290 | 8/30/2022 |
4.0.0 | 3,189 | 8/26/2022 |
3.4.2 | 3,899 | 6/20/2022 |
3.4.1 | 3,246 | 6/17/2022 |
3.4.0 | 3,034 | 6/16/2022 |
3.3.1 | 3,542 | 4/27/2022 |
3.3.0 | 3,110 | 4/13/2022 |
3.2.0 | 3,315 | 3/29/2022 |