# CLAUDE.md — Projektübersicht HundM_Fortna

## Projektbeschreibung

Siemens TIA Portal / STEP 7 SPS-Projekt für ein Fördertechnik-Automatisierungssystem (Kunde: Hund & Metzler, System: Fortna WES/WCS).

Das Repository enthält den exportierten SCL-Quellcode (Structured Control Language, IEC 61131-3) von **5 SPS-Konfigurationen** (Steuerungen), die gemeinsam eine Förderanlage steuern.

---

## Repository-Struktur

```
HundM_Fortna/
├── =A01+UH01-KF00/          # SPS-Konfiguration UH01 (Steuerung 1)
├── =A01+UH02-KF00/          # SPS-Konfiguration UH02 (Steuerung 2)
├── =A01+UH03-KF00/          # SPS-Konfiguration UH03 (Steuerung 3)
├── =A01+UH04-KF00/          # SPS-Konfiguration UH04 (Steuerung 4)
├── =A01+UH05-KF00/          # SPS-Konfiguration UH05 (Steuerung 5)
├── .vci/                    # TIA Portal VCS-Workspace-Konfiguration
└── SCL_Analyse_Standardisierung.md  # Analyse: Duplikate / Standardisierungspotenzial
```

### Konfigurationsname-Schema

`=A01+UH0x-KF00`
- `A01` = Anlage / Projekt-ID
- `UH0x` = Unit Handler / Steuerungsnummer (01–05)
- `KF00` = Konfigurationsbezeichner

### Struktur je Konfiguration (Unterordner)

Jede `=A01+UH0x-KF00/`-Konfiguration enthält:

```
PLC-Datentypen/              # UDTs (User Defined Types), als .xml / .liblink
Programmbausteine/           # SCL-Bausteine (FB, FC, OB) — projektspezifisch
  ├── 050_Sensors/           # Sensoraufruf
  ├── 075_PreMain/           # Vorverarbeitung
  ├── 100_Main/              # Hauptprogramm
  ├── 200_MFR/               # Material Flow Routing
  ├── 400_BasicFunctions/    # Hilfsfunktionen (FC)
  ├── 700_Jams/              # Staubehandlung
  ├── 800_Storage/           # Puffer / Lagerverwaltung (nur UH02/UH03)
  ├── 900_Communications/    # Fortna WES-WCS Kommunikation
  ├── 970_Visu/              # HMI-Visualisierung
  ├── PROFINET/              # PROFINET-Diagnose
  ├── SCADA/                 # OPC-UA / SCADA-Anbindung
  ├── Längenmessung/         # Längenmessung (UH01, UH05)
  ├── _AutomatedIntelligence/# KI-gestützte Lagerlogik (UH02, UH03)
  ├── _CPU-CPU-Exchange/     # SPS-zu-SPS-Kommunikation (UH02, UH03)
  └── _IBN/                  # Inbetriebnahme / Testbausteine
Bibliotheksreferenzen/       # Verweise auf externe Libs (BaseSystemLib, ILSLib)
```

---

## Verwendete Bibliotheken (bereits bibliothekarisiert)

| Bibliothek | Beschreibung |
|---|---|
| `BaseSystemLib` | Siemens-Basisbausteine: Zustandsmaschinen, Sensoren, PROFINET, Monitoring, TCP, Safety |
| `ILSLib` / `2_ILSLib` | Integrated Logistics System: Carrier-Tracking, Separator, Priority Manager, Switch |

Diese Bibliotheken sind **nicht** im Git-Repository als Quellcode enthalten, sondern nur als `.liblink`-Referenzen (Verweise auf externe Bibliotheksdateien).

---

## Technologie-Stack

| Bereich | Technologie |
|---|---|
| SPS-Plattform | Siemens S7 (TIA Portal) |
| Programmiersprache | SCL (Structured Control Language, IEC 61131-3) |
| Versionskontrolle | TIA Portal VCS (.vci), Git |
| Feldbus | PROFINET |
| SCADA | OPC-UA |
| WES/WCS-Kommunikation | TCP/IP — Fortna-Telegrammprotokoll |
| Barcode-Erkennung | Cognex DM-Scanner |
| Carrier-Tracking | ILS (Integrated Logistics System) |

---

## Wichtige Konzepte

- **Carrier**: Transporteinheit (Tablar/Tray) auf der Foerderanlage; wird mit Barcode identifiziert und durch das System geroutet
- **TRO** (Transfer Object): Datenobjekt fuer den Carrier-Transport zwischen Stationen
- **WES** (Warehouse Execution System) / **WCS** (Warehouse Control System): Uebergeordnete Leitsysteme, die per TCP-Telegramm mit den SPSen kommunizieren
- **MFR** (Material Flow Routing): Logik fuer die Weichensteuerung und Carrier-Verteilung
- **Separator**: Vereinzelungseinheit fuer Carrier
- **Jam**: Stau auf der Foerderstrecke

---

## Standardisierungsanalyse

Die Datei [SCL_Analyse_Standardisierung.md](SCL_Analyse_Standardisierung.md) dokumentiert das Ergebnis einer Duplikatanalyse ueber alle 5 Konfigurationen (Stand: 2026-06-23):

- **49 Bausteine** mit Standardisierungspotenzial identifiziert
- **22 Bausteine (P1)** sind in allen 5 Konfigurationen identisch vorhanden → sofort in gemeinsame Projektbibliothek auslagern
- **Top-5 Quick Wins**: `FC_GET_PROFINET_DEVICE_STATES`, `FB-OPC_UA_System-Stat`, `Programming error` (OB), String-Konvertierungen, `FB_CommunicationLogger`
- Sonderanalyse: Versionschaos bei `StockRemoval`-Bausteinen in UH02/UH03

---

## Arbeitsweise mit diesem Repository

- Dateien werden aus TIA Portal exportiert (SCL-Export) und per Git versioniert
- Aenderungen werden in TIA Portal gemacht, exportiert und dann committed
- `.scl`-Dateien enthalten den Quellcode der Bausteine; `.xml`-Dateien enthalten UDTs und Datenbloecke
- `.liblink`-Dateien sind nur Referenzen auf externe Bibliotheken (kein Quellcode)
- Die `.vci/`-Konfiguration steuert das TIA Portal VCS-Verhalten
