From c970c839977ba8f691b90e585eb28d7e91787529 Mon Sep 17 00:00:00 2001 From: Kai Date: Mon, 20 Apr 2026 12:43:40 +0200 Subject: [PATCH] Anfang der Ordnerstruktur + Generale CLAUDE.md angelegt --- CLAUDE.md | 37 +++++++++++++ .../Antworten auf Auflagen IHK Projekt.md | 32 +++++++++++ Dokumente/Auflagen IHK Projekt.md | 10 ++++ Dokumente/IHK Projektantrag.md | 55 +++++++++++++++++++ 4 files changed, 134 insertions(+) create mode 100644 CLAUDE.md create mode 100644 Dokumente/Antworten auf Auflagen IHK Projekt.md create mode 100644 Dokumente/Auflagen IHK Projekt.md create mode 100644 Dokumente/IHK Projektantrag.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..3961195 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,37 @@ +# PROJEKT-KONTEXT: IHK-Abschlussprüfung - Kai Kröger + +## 1. PROJEKT-STECKBRIEF +- **Projekttitel:** Optimierung der Auftragsverarbeitung eines Warehouse Control Systems mittels Prozesssteuerung in C# +- **Kunde/Abteilung:** Gebhardt Fördertechnik GmbH (Intralogistik) +- **Zeitraum:** Sommer 2026 (Durchführung: 04.05.2026 - 25.05.2026) +- **Gesamtstunden:** 80h +- **Status:** Planung (Antrag genehmigt mit Auflagen) + +## 2. TECHNOLOGIEN & STACK +- **Infrastruktur:** WCS (Warehouse Control System) +- **Programmiersprache:** C# +- **Framework:** .NET Framework +- **Datenbank:** Zugriff auf Auftragstabellen (zyklisch/Echtzeit) +- **Schnittstellen:** SAP IDoc, TCP/IP, File, Webservices + +## 3. AKTUELLE MEILENSTEINE & PRIORITÄTEN +1. [ ] **Auflagen der IHK erfüllen:** Hintergrund, Prozesse (ConveyorDispo/HostBooking), Ziele, Trigger & Schnittstellen detaillieren. +2. [ ] **Ist-Analyse:** Code-Analyse der beteiligten Prozesse zur Identifizierung der Race Condition. +3. [ ] **Soll-Konzept:** Zentralisierung des Auftragsstarts im ConveyorDispo. +4. [ ] **Wirtschaftlichkeitsbetrachtung:** Kosten/Nutzen der Code-Zentralisierung vs. Fehlermanagement. +5. [ ] **Technische Realisierung:** Refactoring der Start-Logik. + +## 4. SPEZIFISCHE ARBEITSANWEISUNGEN FÜR HERMES +- **IHK-Fokus:** Fokus auf FIAE (Fachinformatiker Anwendungsentwicklung). Code-Qualität, Multithreading-Problematik (Race Condition) und Architektur-Entscheidungen hervorheben. +- **Wirtschaftlichkeit:** Dokumentiere, wie viel Zeit durch die Vermeidung von Fehlbuchungen/manuellen Eingriffen gespart wird. +- **Prüfungsrelevanz:** Erklärungen zu Race Conditions und Prozess-Scheduling müssen "prüferfest" sein. + +## 5. DOKUMENTEN-STRUKTUR +- `/Dokumente`: Projektantrag, Auflagen, Antworten des Ausbilders +- `/doku`: Entwürfe für den Projektbericht +- `/src`: C# Scripte und Konfigurationsdateien (sobald vorhanden) +- `/planung`: Zeitplan, Kostenrechnung +- `README.md`: Technischer Überblick + +## 6. WICHTIGE LINKS & REFERENZEN +- Gitea-Repo (Pfad noch zu ergänzen) diff --git a/Dokumente/Antworten auf Auflagen IHK Projekt.md b/Dokumente/Antworten auf Auflagen IHK Projekt.md new file mode 100644 index 0000000..73a75ff --- /dev/null +++ b/Dokumente/Antworten auf Auflagen IHK Projekt.md @@ -0,0 +1,32 @@ +# Info +Hier sind die Antworten auf die Auflagen der IHK von meinem Ausbilder aufgelistet. + + + +# 1. Hintergrund Ihrer Arbeit +Es geht um einen Materialflussrechner. Die Aufgabe befasst sich mit der Auflösung einer Race Condition zwischen zwei Prozessen beim Starten von Transporten im System. + +# 2. Welche Prozesse sind beteiligt? Beschreiben Sie diese kurz. +Beteiligt sind die Prozesse ConveyorDispo und HostBooking. +Der ConveyorDispo disponiert Transporte, prüft Zielressourcen und deren Verfügbarkeit und startet Transporte. Außerdem übernimmt er das Scheduling mehrerer Transporte für denselben Ladungsträger. +Der HostBooking verarbeitet Nachrichten eines übergeordneten Host-Systems. Dabei legt er Transporte an und startet in bestimmten Fällen auch direkt Aufträge, zum Beispiel beim Rücktransport eines Behälters vom Arbeitsplatz ins Lager. + +# 3. Was ist das Ziel der Prozesse? +Die Prozesse sollen Transporte bzw. Aufträge automatisch starten, damit kein manueller Eingriff erforderlich ist. Zusätzlich sollen sie die Anlage möglichst effizient auslasten und auf Vorgaben des übergeordneten Host-Systems reagieren. + +# 4. Wer startet die Prozesse? +Beide Prozesse laufen permanent als Services im Hintergrund. +Der ConveyorDispo wird zyklisch ausgeführt und prüft in Echtzeit die aktuellen Transportmöglichkeiten der Anlage. +Der HostBooking wird durch eingehende Host-Nachrichten ausgelöst, die ebenfalls zyklisch aus der Datenbank gelesen werden. + +# 5. Über welche Schnittstellen werden die Prozesse angesprochen? +Die Anbindung an das Host-System erfolgt über verschiedene Schnittstellen, zum Beispiel SAP IDoc, TCP/IP, Dateischnittstellen oder Webservices. Die eingehenden Daten werden in einer Datenbank bereitgestellt. +Der HostBooking liest diese Daten zyklisch aus der Datenbank und legt daraus Auftragsdatensätze an. Der ConveyorDispo greift ebenfalls auf diese Datenbanktabellen zu und startet Transporte, sobald die Bedingungen erfüllt sind. + +# 6. Welches Problem tritt auf? +Wenn ein Behälter einen Arbeitsplatz verlässt und kein Transport in der Datenbank vorhanden ist, legt der HostBooking einen Transport an und startet diesen direkt. +Gleichzeitig kann durch Multithreading ein neuer Host-Auftrag eintreffen, der vom ConveyorDispo verarbeitet und ebenfalls gestartet wird. +Dadurch entstehen zwei aktive Transporte für denselben Ladungsträger. + +# 7. Wie soll das Problem gelöst werden? +Die Lösung besteht darin, alle Auftragsstarts zentral im ConveyorDispo zu bearbeiten. Dadurch können Überschneidungen an einer Stelle erkannt und aufgelöst werden. \ No newline at end of file diff --git a/Dokumente/Auflagen IHK Projekt.md b/Dokumente/Auflagen IHK Projekt.md new file mode 100644 index 0000000..b4d9e40 --- /dev/null +++ b/Dokumente/Auflagen IHK Projekt.md @@ -0,0 +1,10 @@ +# Informationen + +## Auflagen der IHK nach Abgabe des Projektantrags +Bitte beschreiben Sie den Hintergrund Ihrer Arbeit und die genannten Prozesse etwas genauer. - Was ist ein ConveyorDispo bzw. Orders Host Prozess? - Was ist das Ziel der Prozesse? - Wer startet die Prozesse? - Über welche Schnittstellen werden die Prozesse angesprochen? + +## Ausbildung +Fachinformatiker/Fachinformatikerin Fachrichtung: Anwendungsentwicklung + +## Termin +Sommer 2026 \ No newline at end of file diff --git a/Dokumente/IHK Projektantrag.md b/Dokumente/IHK Projektantrag.md new file mode 100644 index 0000000..16f3156 --- /dev/null +++ b/Dokumente/IHK Projektantrag.md @@ -0,0 +1,55 @@ +# Prüfung: Sommer 2026 + +### Ausbildungsberuf +### Fachinformatiker/Fachinformatikerin Fachrichtung: Anwendungsentwicklung + +### Kai Kröger + +### Ausbildungsbetrieb: Gebhardt Fördertechnik GmbH +### Betrieblicher Betreuer / Ausbilder: Sebastian Badour + +### Thema der Projektarbeit +### Optimierung der Auȅragsverarbeitung eines Warehouse Control Systems mittels Prozesssteuerung in C# + + +# 1 Thema der Projektarbeit +Optimierung der Auȅragsverarbeitung eines Warehouse Control Systems mittels Prozesssteuerung in C# + +# 2 Geplanter Bearbeitungszeitraum +Beginn: 4.5.2026 +Ende: 25.5.2026 + +# 3 Ausgangssituation +Die Gebhardt Fördertechnik GmbH ist ein führendes Unternehmen im Bereich der Intralogistik. In den Förderanlagen kommt ein Warehouse Control +System (WCS) aus eigenem Haus zum Einsatz, das die Transportgüter auf der Anlage verwaltet und kontrolliert. Das WCS kommuniziert mit der +Fördertechnik mittels Telegrammen, die innerhalb des WCS durch unterschiedliche Prozesse, die parallel ablaufen, verarbeitet werden. Die Prozesse +des WCS sind mit dem .NET Framework von Microsoȅ realisiert und in der Programmiersprache C# programmiert. Einer dieser Prozesse ist +ConveyorDispo. Dieser ist dafür zuständig, OrdersHost-Auȅräge, die vom Warehouse Management System kommen, zu verarbeiten und zu starten. +Aktuell gibt es jedoch auch andere Prozesse, die in der Lage sind, unter bestimmten Bedingungen einen OrdersHost-Auȅrag zu starten. Aufgrund der +parallelen Abläufe kann es bei unglücklichem Timing dazu kommen, dass zwei OrdersHost-Auȅräge simultan gestartet werden. Da es für die +Auȅräge nur ein physisches Transportgut auf der Förderanlage gibt, bleibt ein OrdersHost-Auȅrag offen, der nicht abgeschlossen werden kann. + +# 4 Projektziel +Die OrdersHost-Auȅräge sollen zukünȅig ausschließlich über den Prozess ConveyorDispo gestartet werden. Dafür müssen die Prozesse und ihr Code +analysiert und entsprechend angepasst werden. + +# 5 Zeitplanung +Planung (22h) +Einarbeitung in das bestehende Projekt (6h) +Einarbeitung in die WCS Dokumentation (3h) +Identifizierung der betroffenen Prozesse (8h) +Konzeptionierung der Änderungen an den Prozessen (3h) +Planung der Umsetung (2h) +Implementierung (26h) +Anpassung der Prozesse (23h) +Anpassung der Auȅragstatus (3h) +Testing (12h) +Testfälle für alle Szenarien erstellen (4h) +Fehler beheben (6h) +Optimieren (2h) +Dokumentation (20h) +Projektdokumentation (16h) +Entwicklungsdokumentation (4h) + +# 6 Präsentationsmittel +Laptop, USB-Stick, Powerpoint Präsentation