> For the complete documentation index, see [llms.txt](https://selmotech.gitbook.io/selmo-solution/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://selmotech.gitbook.io/selmo-solution/selmo-documentation/8-diagnose-hmi-and-dokumentation.md).

# 8 Diagnose, HMI & Dokumentation

### 1. Das Grundproblem klassischer Diagnose

In vielen Automatisierungsprojekten entsteht Diagnose:

* nachträglich
* manuell
* losgelöst vom Ablauf
* inkonsistent über Projekte hinweg

Typische Symptome:

* Sammelstörungen ohne Ursache
* Meldungen ohne Kontext
* falscher Zeitpunkt, falscher Ort
* hoher Pflegeaufwand

Der Kern des Problems:

> **Wenn Verhalten nicht explizit modelliert ist, kann Diagnose nur geraten werden.**

***

### 2. Grundprinzip der Selmo-Diagnose

In Selmo ist Diagnose **kein Zusatz**, sondern eine **Folge des Modells**.

Diagnose entsteht, weil:

* Zustände explizit definiert sind
* Zonen Bedeutung tragen
* Erwartungen formal beschrieben sind
* Überwachung permanent erfolgt

> **Jede Diagnose ist die Abweichung zwischen erwarteten und tatsächlichen Zuständen im Modell.**

Es gibt:

* keine heuristische Fehlererkennung
* keine manuelle „if error then message“-Logik

***

### 3. Quellen der Diagnose im Modell

Diagnose entsteht ausschließlich aus modellierten Elementen:

* **Zone**
  * trägt Bedeutung
  * kennt ihre Signale
  * besitzt HMI-Text
* **Bit-Control**
  * definiert Erwartung (`S`)
  * definiert zwingende Bedingungen (`i`)
* **CMZ**
  * überwacht permanent
  * wirkt zustandsunabhängig

> **Ohne Modellursache gibt es keine Diagnose.**

***

### 4. Diagnose im Automatikbetrieb

Im Automatikbetrieb gilt:

#### 4.1 Interlock-Abweichung (`i`)

* sofortiger Entzug der Automatikfreigabe
* Stop der betroffenen Sequence
* automatische Diagnose mit:
  * Zonenbezug
  * Zustandsbezug
  * klarer Ursache

#### 4.2 CMZ-Abweichung

* hierarchischer Stopp:
  * Sequence
  * Hardware-Zone
  * oder Plant
* keine Bewegung mehr möglich
* eindeutige, nicht aggregierte Meldung

> **Die Diagnose kennt Zeitpunkt, Ort und Ursache.**

***

### 5. Diagnose im Handbetrieb

Im Handbetrieb ist Diagnose **aktive Führung**, keine Fehlermeldung.

Eigenschaften:

* Zonen zeigen ihren Status direkt
* Abweichungen werden visuell hervorgehoben
* der Bediener erkennt:
  * was fehlt
  * wo eingegriffen werden muss

> **Diagnose im Handbetrieb beantwortet nicht „Was ist kaputt?“,**\
> **sondern „Was fehlt, um den Zustand zu erfüllen?“**

***

### 6. HMI als Modellansicht

Das HMI ist in Selmo **keine Logikinstanz**.

Das HMI:

* entscheidet nichts
* bewertet nichts
* steuert nichts eigenständig

Es zeigt:

* aktive Sequences
* aktuelle Zustände
* relevante Zonen
* Erwartungen und Abweichungen

> **Das HMI ist eine projektspezifische Ansicht auf dasselbe Modell.**

***

### 7. Einheitliche HMI-Semantik

Durch das Modell ergibt sich automatisch:

* einheitliche Farben
* einheitliche Bedeutungen
* einheitliche Reaktionen

Beispiele:

* Blau → Zustand / Zone erfüllt
* Rot → Abweichung vom erwarteten Verhalten

Diese Semantik ist:

* projektübergreifend gleich
* unabhängig von UI-Design
* unabhängig von Zielsystemen

***

### 8. Dokumentation entsteht aus dem Modell

Das Selmo-Modell enthält bereits:

* Ablauf (Sequences, Zustände)
* Technikbezug (Zonen)
* Überwachung (Bit-Control, CMZ)
* Reaktionen (Stop, Freigabe, Diagnose)

Daraus ableitbar sind:

* Ablaufbeschreibungen
* Zustandsdiagramme
* Sicherheitsargumentationen
* Bedienkonzepte
* Diagnosebeschreibungen

> **Dokumentation ist keine separate Tätigkeit,**\
> **sondern eine Sicht auf das Modell.**

***

### 9. Bedeutung für Normen & Nachvollziehbarkeit

Durch das formale Modell ist jederzeit nachvollziehbar:

* welcher Zustand aktiv war
* welche Erwartungen galten
* welche Abweichung auftrat
* welche Reaktion folgte

Das ist entscheidend für:

* funktionale Sicherheit
* Auditierbarkeit
* Haftungsfragen
* Argumentation bei KI-generiertem Code

> **Was modelliert ist, ist erklärbar.**\
> **Was erklärbar ist, ist verantwortbar.**

***

### 10. Abgrenzung

Zur Klarstellung:

* Diagnose ≠ UI-Logik
* Diagnose ≠ SPS-Fehlerbit
* Diagnose ≠ Sicherheitsfunktion
* Diagnose ≠ Benutzerinterpretation

Diagnose ist **modellbasierte Zustandsabweichung**.

***

### 11. Typische Fehler bei Diagnose & HMI

Häufige Fehler sind:

* Sammelmeldungen ohne Ursache
* UI-spezifische Logik
* Diagnose außerhalb des Modells
* doppelte Fehlerlogik in Code und HMI
* unterschiedliche Bedeutungen gleicher Farben

Faustregel:

> **Wenn eine Meldung erklärt werden muss, fehlt Modellinformation.**

***

### 12. Zusammenfassung

Diagnose, HMI und Dokumentation sind in Selmo:

* keine Zusatzfunktionen
* keine separaten Disziplinen
* keine projektspezifischen Sonderlösungen

Sie sind:

* direkte Konsequenzen des Modells
* konsistent, deterministisch und nachvollziehbar
* Grundlage für sichere, erklärbare Maschinen

> **Selmo dokumentiert nicht Maschinen –**\
> **Selmo macht Maschinen erklärbar.**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://selmotech.gitbook.io/selmo-solution/selmo-documentation/8-diagnose-hmi-and-dokumentation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
