MTConnect.NET-MQTT implements the MQTT Protocol for use with the MTConnect.NET library. Supports MTConnect Versions up to 2.5. Supports .NET Framework 4.6.1 up to .NET 9
$ dotnet add package MTConnect.NET-MQTTMTConnect.NET-MQTT is an extension library to MTConnect.NET that provides an MQTT Broker & Client interface to an IMTConnectAgent interface.
The MTConnect/Devices topics are used to send data that is in an MTConnectDevicesResponse document.
MTConnect/Devices/[DEVICE_UUID]/Device
MTConnect/Devices/[DEVICE_UUID]/Observations/[COMPONENT_TYPE]/[COMPONENT_ID]/[DATA_ITEM_CATEGORY]/[DATA_ITEM_TYPE]/[DATA_ITEM_ID]
MTConnect/Devices/[DEVICE_UUID]/Observations/[COMPONENT_TYPE]/[COMPONENT_ID]/[DATA_ITEM_CATEGORY]/[DATA_ITEM_TYPE]/SubTypes/[DATA_ITEM_SUBTYPE]/[DATA_ITEM_ID]
Condition messages are sent as an array of Observations since a Condition may have multiple Fault States. This is similar to how the Current request functions in an HTTP Agent.
MTConnect/Devices/[DEVICE_UUID]/Assets/[ASSET_TYPE]/[ASSET_ID]
[Node] = (Payload)
- MTConnect
─ Devices
─ [DEVICE_UUID]
- Device = (JSON)
- Observations
- [COMPONENT_TYPE]
- [COMPONENT_ID]
- Events
- [DATA_ITEM_TYPE]
- [DATA_ITEM_ID] = (JSON)
- SubTypes
- [DATA_ITEM_SUBTYPE]
- [DATA_ITEM_ID] = (JSON)
- Samples
- [DATA_ITEM_TYPE]
- [DATA_ITEM_ID] = (JSON)
- Conditions
- [DATA_ITEM_TYPE]
- [DATA_ITEM_ID] = (JSON Array)
- Assets
- [ASSET_TYPE]
- [ASSET_ID] = (JSON)
- MTConnect
─ Devices
─ OKUMA.Lathe.123456
- Device
- Observations
- Device
- OKUMA.Lathe
- Events
- AVAILABILITY
- L2avail = {"dataItemId":"L2avail","name":"avail","type":"AVAILABILITY","timestamp":"2023-02-07T20:02:26.8978653Z","result":"AVAILABLE"}
- ASSET_CHANGED
- OKUMA.Lathe_assetCount = {"dataItemId":"OKUMA.Lathe_assetCount","name":"assetCount","type":"ASSET_COUNT","timestamp":"2023-02-07T20:02:26.7671421Z","result":"UNAVAILABLE","count":0}
- Controller
- L2ct1
- Events
- EMERGENCY_STOP
- L2estop = {"dataItemId":"L2estop","name":"estop","type":"EMERGENCY_STOP","timestamp":"2023-02-07T20:02:26.8978653Z","result":"ARMED"}
- Path
- L2p1
- Events
- EXECUTION
- L2p1execution = {"dataItemId":"L2p1execution","name":"p1execution","type":"EXECUTION","timestamp":"2023-02-07T20:02:26.7671421Z","result":"UNAVAILABLE"}
- Conditions
- SYSTEM
- L2p1system = [{"level":"WARNING","dataItemId":"L2p1system","name":"p1system","type":"SYSTEM","timestamp":"2023-02-07T20:30:16.8639659Z","result":"Not Found","nativeCode":"404"},{"level":"FAULT","dataItemId":"L2p1system","name":"p1system","type":"SYSTEM","timestamp":"2023-02-07T20:30:38.9662297Z","result":"Interval Error","nativeCode":"500"}]
- Samples
- PATH_FEEDRATE
- SubTypes
- ACTUAL
- L2p1Fact = {"dataItemId":"L2p1Fact","name":"p1Fact","type":"PATH_FEEDRATE","subType":"ACTUAL","timestamp":"2023-02-07T20:02:26.7671421Z","result":"UNAVAILABLE"}
- Assets
- CuttingTool
- 5.12 = {"assetId":"5.12","type":"CuttingTool","timestamp":"2023-02-07T13:36:04.7288143Z","deviceUuid":"OKUMA.Lathe.123456","serialNumber":"12345678946","toolId":"12","cuttingToolLifeCycle":{"cutterStatus":["AVAILABLE","NEW","MEASURED"],"location":{"type":"SPINDLE"},"programToolGroup":"5","programToolNumber":"12","measurements":[{"type":"FunctionalLength","value":7.6543,"units":"MILLIMETER","code":"LF"},{"type":"CuttingDiameterMax","value":0.375,"units":"MILLIMETER","code":"DC"}]}}
MTConnect/Assets/[ASSET_TYPE]/[ASSET_ID]
Note: Assets are sent to two topics. One for the "Global" assets and one for the Device that the Asset was added to
[Node] = (Payload)
- MTConnect
─ Assets
─ [ASSET_TYPE]
- [ASSET_ID] = (JSON)- MTConnect
- Assets
- CuttingTool
- 5.12 = {"assetId":"5.12","type":"CuttingTool","timestamp":"2023-02-07T13:36:04.7288143Z","deviceUuid":"OKUMA.Lathe.123456","serialNumber":"12345678946","toolId":"12","cuttingToolLifeCycle":{"cutterStatus":["AVAILABLE","NEW","MEASURED"],"location":{"type":"SPINDLE"},"programToolGroup":"5","programToolNumber":"12","measurements":[{"type":"FunctionalLength","value":7.6543,"units":"MILLIMETER","code":"LF"},{"type":"CuttingDiameterMax","value":0.375,"units":"MILLIMETER","code":"DC"}]}}The MTConnect/Agents topics are used to send data about the Agent. This is the data that is typically in the HTTP Response Document Header
MTConnect/Agents/[AGENT_UUID]
[Node] = (Payload)
- MTConnect
─ Agents
─ [AGENT_UUID]
- UUID
- InstanceId
- Version
- Sender
- DeviceModelChangeTime- MTConnect
─ Agents
─ d7e169c5-14bb-48a3-bf9f-521152df2c84
- UUID = d7e169c5-14bb-48a3-bf9f-521152df2c84
- InstanceId = 1669400832
- Version = 5.0.0.0
- Sender = DESKTOP-HV74M4N
- DeviceModelChangeTime = 2023-02-07T20:02:26.7682252Z