ADR 105 – Fault Diagnosis & Correction
Purpose
This Architecture Decision Record (ADR) provides normative guidance for the use case "Autonomous Operation as a Service (AOaaS)". As "Autonomous Operation as a Service" provides different scenarios, the ADRs are separated.
This ADR provides guidance about Fault Diagnosis and Correction.
Autonomous Operation as a Service aims at keeping machine downtime minimal by accelerating the process to solve a faulty situation using knowledge of prior events as well as human ingenuity. One of the main "fault-to-solution" paths within AOaaS involves a Machine Operator diagnosing faulty situations remotely while only using machine data and video information.
The main chain of thought here is:
- Something goes wrong, the situation is transmitted to a remote operator
- The remote operator might gather further information and fault descriptions from vendors and suppliers
- The remote operator uses this information to deduct possible corrections and documents them
- The corrections are recommended/executed
The provided machine data as well as the basic procedure need to be presented in a standardized format, which is defined in this document.
Roles
- Machine Owner acts as Fault Data Provider
- Machine Builder / Component Supplier acts as Fault Resolution Expert
- Machine (Remote) Operator acts as Solution Provider
Fault Data Provider
This is the party that actually "has the faulty situation", usually the Machine Owner who uses the machine.
Note: This document also defines the
Remote Operator. Please be aware that a machine can be used by multiple roles.
Note: A "faulty situation" is an anomalous condition unfamiliar to the system that nonetheless enables the machine to continue operating.
Fault Resolution Expert
This party has additional information about the machine and its components, which might not be available to the Fault Data Provider. This could be the Machine Builder or one of many Component Suppliers.
Solution Provider
This party offers a service to solve the faulty situation for a Fault Data Provider.
For the case under consideration within this document that would be a Machine (Remote) Operator, or Remote Operator for short.
API Structure
Fault Data Provider
The Fault Data Provider MUST expose the endpoints according to the following Architecture Decision Records (ADRs):
Note: This would also contain video data as defined in ADR104 if needed.
Fault Resolution Expert
The Fault Resolution Expert MUST expose the endpoints according to the following Architecture Decision Records (ADRs):
| Architecture Decision Record (ADR) | Version | Link |
|---|---|---|
| ADR 002 – Cross-Company Authorization and Discovery Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr002-authorization-discovery |
| ADR 003 – Authentication for Dataspaces Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr003-authentication |
| ADR 008 – Asset Administration Shell Profile for Factory-X Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr008-aas-profile |
| ADR 009 – Discovery of AAS Services via DSP Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr009-aas-rest-dsp |
Note: Think of it as an AAS database for further information that only a Machine Builder or Component Supplier might have.
Solution Provider
The Solution Provider MUST expose the endpoints according to the following Architecture Decision Records (ADRs):
| Architecture Decision Record (ADR) | Version | Link |
|---|---|---|
| ADR 002 – Cross-Company Authorization and Discovery Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr002-authorization-discovery |
| ADR 003 – Authentication for Dataspaces Version 0.2.0 | 0.2.0 | https://factory-x-contributions.github.io/architecture-decisions/docs/hercules_network_adr/adr003-authentication |
Note: The
Solution Provideris also expected to write to AAS data of theFault Data Providerto provide solutions.
Data Models
The following submodels are required:
| Submodel | Version | Reference | Status | Role |
|---|---|---|---|---|
| Situation Log | 1.0 | AOaaS Submodel Template (TBD) | Required | Fault Data Provider |
| Fault Descriptions | 1.0 | AOaaS Submodel Template (TBD) | Required | Fault Resolution Expert, Solution Provider |
| Similarity Analysis | 1.0 | AOaaS Submodel Template (TBD) | Required | Solution Provider |
| Fault Correction Set | 1.0 | AOaaS Submodel Template (TBD) | Required | Fault Resolution Expert, Solution Provider |
The following submodels might be also used (mostly to provide additional information to the remote machine operator):
| Submodel | Version | Reference | Status | Role |
|---|---|---|---|---|
| Asset Interfaces Description | 1.0 | IDTA Submodel Template | Optional | Fault Data Provider |
| Time Series Data | 1.1 | IDTA Submodel Template | Optional | Fault Data Provider |
| Handover Documentation | 2.0.1 | IDTA Submodel Template | Optional | Fault Data Provider, Fault Resolution Expert |
| Technical Data | 2.0 | IDTA Submodel Template | Optional | Fault Data Provider, Fault Resolution Expert |
| Hierarchical Structures enabling Bills of Material | 1.1 | IDTA Submodel Template | Optional | Fault Data Provider, Fault Resolution Expert |
| Capability Description | 1.0 | IDTA Submodel Template | Optional | Fault Data Provider, Fault Resolution Expert |
Note: Asset Interfaces Description might be used to get access to video data according to ADR 104.
The following AAS events MUST be implemented:
| Name | Data | Event Type | Version | Reference | Status | Sender | Receiver |
|---|---|---|---|---|---|---|---|
| Situation SubmodelElement Create message | Situation | submodelelement/update/elementcreated.publish | 0.3-SNAPSHOT | SubmodelElement-level Event | required | Fault Data Provider | Solution Provider |
Note: A
SituationMUST be published by assubmodelelement/update/elementcreated.publishevent according to ADR 011.
The Fault Solution Pipeline
The submodels are used in a basic process that has the following steps:
- The
Fault Data Providerdetects a faulty situation within a system or machine and creates aSituation. - The
Solution Provideris notified usingmqtt-over-dspby receiving asubmodelelement/update/elementcreated.publishevent from theFault Data Providerwith theSituationas actual data.. - The
Solution Providerinvestigates theSituationand retrievesFault Descriptionsfor faulty components/machines from theFault Resolution Expert. - The
Solution ProviderusesSituation,Fault Descriptionsas well as any optional submodels from the list above to diagnose the faulty situation (also taking into effect previous situations and their solutions). The occurredSituationis assigned to one or moreFault Descriptionand captured in theSimilarity Analysis. - The
Solution Provideruses the discoveredFault Descriptionsto retrieveFault Correctionsfrom theFault Resolution Expert. - The
Solution ProviderprovidesFault Correctionsto solve the faulty situation to theFault Data Provider.
Note: A
Solution Providermay already haveFault Descriptionsavailable and does not always need to retrieve this data from aFault Resolution Expert.
Note: A
Solution Providermay already haveFault Correctionsavailable and does not always need to retrieve this data from aFault Resolution Expert.
Situation Log
The Situation Log submodel is used to capture the context of a faulty situation by providing a set of all occured symptoms that were present within a certain timeframe around the time of fault detection.
One might think of it as a "symptom dashcam".
Situation SubmodelElement Create message
The submodelelement/update/elementcreated.publish event MUST contain the Situation as data.
The AAS event MUST be published as submodelelement/update/elementcreated.publish event according to ADR 011.
Fault Descriptions
The Fault Descriptions submodel contains detailed description of a fault that lead to a faulty situation. It also contains contextual information as well as references to associated symptoms (without duplicating data). Furthermore it contains references to associated Fault Corrections.
Similarity Analysis
The Similarity Analysis submodel contains information how an occurred Situation relates to known Fault Description, i.e., how similar a new Situation is to an old Situation. It assigns Situations to the associated Fault Description.
Fault Correction Set
The Fault Correction Set submodel contains recommended corrective actions, including predefined strategies and workflows, to address specific faults, with options for both automated and operator-initiated interventions.
Note: A
Fault Correction Setsubmodel contains one or moreFault Correctionthat include corrective actions that can be referenced by one or moreFault Description.
Optional Submodels
Asset Interfaces Descriptioncan be used to get access to streaming data according to ADR 104.Time Series Datacan be used to gather any real-time and historical sensor and process data that might be of use to the remote operator.Handover Documentationcan be used to understand system configuration and operational constraints and provide information about commissioning, setup and instructions.Hierarchical Structures enabling Bills of Materialcan be used to verify machine topology.Technical Datacan be used to verify machine configurations, parameters and technical specifications.Capabilitiescan be used to indicate what the machine is capable of performing to derive appropriate operational strategies or actions, supporting flexible and autonomous operation.
Authentication and Authorization
Apart from mechanism already described within the linked ADRs, no additional Authentication or Authorization mechanism is specified.