Integration Guide
Overview
At 3YOURMIND, machine data is collected, standardized and aggregated via the Aggregator. It serves as the central data hub on a workshop and pushes the processed data to the Agile MES (on-prem/cloud). This machine data is then used for production tracking, automation and analytics. In order to integrate your machine to the Agile MES, it needs to support the following use-cases and must be connected via one of the interfaces supported by the Aggregator.
Table of Content
Use-Case Support
The following list gives insights into the supported use cases based on their level of depth and the control mechanisms they enable. The more use-cases your machine’s connectivity interface covers the greater the value for your customers.
List of use-cases: Three Levels of Connectivity
Interface Selection
Different technology stacks are used for machine connectivity interfaces across the industry, ranging from self-developed REST APIs to protocols like MTConnect, which require a standardization of the received data. 3YOURMIND relies on the OPC/UA + umati CS data model to harmonize all machine connectivity data and therefore highly recommend using this connectivity interface as a plug&play solution. Further technical criteria are listed below:
Use-case coverage: Some technologies/interfaces support more of the above use-cases than others. Many vary due to their lack of standardization.
Standardized data: If the technology/interface provides a standardized data representation, the mapping to umati is more consistent and allows plug&play of machines.
Extendable: In order to implement further use cases a technology/interface needs to provide some kind of extendability.
Real-time data: Some technologies/interfaces do not publish data changes automatically which may result in the loss of data between requests.
2-way-operational: Automation requires data to be pulled from a machine but also pushing control instructions or job files to it.
Safety: Most technologies/interfaces come with encryption and multi-layer authentication and authorization processes.
Complexity: A less complex technology may be easier to implement but lacks a lot of functionality needed within an industrial environment.
| OPC/UA + umati CS | Octoprint (REST API) (Alternative) |
---|---|---|
Use-case coverage | High | Medium |
Standardized data | yes | yes |
Extendable | yes | yes |
Real-time data | yes | no |
2-way-operational | planned | yes |
Safety | high | medium |
Complexity | medium | low |
If your machine is to be used in an industrial context, we highly recommend using OPC/UA + umati CS as the connectivity interface!
Please make sure you read Umati - Introduction before continuing with this guide
Integrating via OPC/UA + umati CS
A universal machine connectivity interface with standardized semantics is highly needed and requested to enable Industry 4.0. The OPC/UA architecture for machine-to-machine communication together with the umati companion specifications (umati CS) defines a common data model suitable for the AM industry.
Benefits
It is a set of companion specifications for OPC/UA, a well-accepted, performant, and secure protocol that is made for high throughput and polling and pushing mechanisms.
Compared to designing an internal API scheme, umati already comes with a ready-to-use scheme. That reduces the time needed for implementing an internal API.
Although OPC/UA is documented in an abstract form, there are a lot of libraries that are easy to use. For supporting umati, most of the features offered by OPC/UA are not needed.
It is also possible to support OPC/UA + umati CS in parallel to an existing connectivity interface either in a side-by-side installation or with a driver that converts the existing data interface to OPC/UA + umati CS.
Prerequisites
The following requirements must be fulfilled in order to develop an umati server:
OPC/UA library and documentation
Open-source library (C99): https://open62541.org/
Supports generation of data types and information models from XML specification files (used in Step 3)
OPC/UA documentation: https://reference.opcfoundation.org/
Umati companion specifications
OPC 40001-1 - UA CS Machinery
OPC 40501-1 - UA CS for Machine Tools
OPC 10000-200 - UA Specification Part 200 - Industrial Automation
OPC 10001-13 - UA Specification 1.04.01 Amendment 13 - Ordered List
You can find them either here, at the official OPC/UA webpages, or by contacting info@umati.info.
OPC/UA server modelling (suggested but optional)
Requires a OPC/UA library that supports generation of data types and information models from XML specification files
OPC/UA Modeler: https://www.unified-automation.com/products/development-tools/uamodeler.html
To model your server and export the node sets as XML
Testing
Umati Test Server: https://github.com/umati/Sample-Server
Free OPC/UA Client: https://www.unified-automation.com/products/development-tools/uaexpert.html
Basic Server Development
First, the individual nodes for your OPC/UA server must be defined based on the OPC/UA + umati CS. This can be done by either using the umati companion specifications and creating the node sets manually with an OPC/UA library or by modelling them, exporting that model to XML and auto-generating the node definitions in the OPC/UA library.
With the library and the compiled node definitions, an OPC/UA + umati server can be easily created. The server will contain all the relevant node representations available and can now be connected to your machine’s data.
Further resources:
Integration Approval
The Agile MES currently supports the following OPC/UA + umati CS version v1.0.0 nodes. After you confirm your implementation with an OPC/UA client (e.g. UaExpert) you can provide a test instance of your server for approval to 3YOURMIND (URL + authentication details needed). In that case please reach out to our team via product@3yourmind.com.
Use-Case | Node Browse Path | Reference |
---|---|---|
Machine ID/Serial Number | 4:Machines.6:<MachineTool>.2:Identification.2:SerialNumber | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.2.1/ https://reference.opcfoundation.org/v104/Machinery/v100/docs/8.2/ |
Machine Model | 4:Machines.6:<MachineTool>.2:Identification.2:Model | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.2.1/ |
Machine Custom Name | 4:Machines.6:<MachineTool>.2:Identification.2:ComponentName | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.2.1/ https://reference.opcfoundation.org/v104/DI/v102/docs/5.5.3/ |
Machine Manufacturer | 4:Machines.6:<MachineTool>.2:Identification.2:Manufacturer | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.2.1/ https://reference.opcfoundation.org/v104/Machinery/v100/docs/8.2/ |
Machine Stacklight | 4:Machines.6:<MachineTool>.5:Monitoring.5:Stacklight.6:<Light>.3:SignalColor | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.3.1/ https://reference.opcfoundation.org/v104/IA/v100/docs/5.2.1/ |
Machine Custom State | N.A. |
|
Machine Maintenance Prognosis | 4:Machines.6:<MachineTool>.5:Notification.5:Prognoses.6:Maintenance.5:Activity … more options: MaintenancePrognosisType, ManualActivityPrognosisType, PartUnloadPrognosisType, ProcessChangeoverPrognosisType, ProductionJobEndPrognosisType, PartLoadPrognosisType, ToolLoadPrognosisType, ToolUnloadPrognosisType, ToolChangePrognosisType and UtilityChangePrognosisType. | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.6.4/ |
Machine Events | 4:Machines.6:<MachineTool>.5:Notification.5:Messages | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.6.1/ |
Material Type | in development |
|
Material Amount | in development |
|
Material Consumption | in development |
|
Job ID | 4:Machines.6:<MachineTool>.5:Production.5:ProductionPlan.6:<Job>.5.Identifier | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.4.3/ |
Job Name | 4:Machines.6:<MachineTool>.5:Production.5:ProductionPlan.6:<Job>.5:PartSets.6:<PartSet> | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.4.3/ |
Job State | 4:Machines.6:<MachineTool>.5:Production.5:ProductionPlan.6:<Job>.5:State.0:CurrentState | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.4.9/ |
Job Events | 4:Machines.6:<MachineTool>.5:Production.5:ProductionPlan.6:<Job>.5:State | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.4.9/ |
Job Predicted End Time | 4:Machines.6:<MachineTool>.5:Notification.5:Prognoses.6:ProductionJobEnd.5:PredictedTime | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.6.10/ |
Sensor Data | 4:Machines.6:<MachineTool>.5:Monitoring.6:<ElementMonitoringType> | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.3.1/ |
KPI Data | 4:Machines.6:<MachineTool>.5:Equipment.5:Tools.6:<Tool>.5:ToolLife 4:Machines.6:<MachineTool>.5:Production.5:Statistics.5:PartsProducedInLifetime | https://reference.opcfoundation.org/v104/MachineTool/v100/docs/8.5.4/ |
Job File Transfer | in development |
|
Job Remote Control | in development |
|