Modulare Maschine

Der Weg zur generierten Maschine


Um die Software für eine neue Anlage automatisiert zu erstellen gibt es verschiedene Komplexitätsgrade.
Je höher die Komplexität desto höher auch die Anforderungen an die Umgebungsbedingungen.


1. Automatisches Erstellen der Hardwarekonfiguration

Export Eplan    XML
XML    Generator    Maschinenprojekt mit Hardwareaufbau

  sehr einfach.
  Maschinenfunktionen werden nach dem Erstellen des Projekts wie gewohnt implementiert

  Projekt kann nur einmal generiert werden



2. Erstellen eines Projekts inklusive Funktionen

Bedingung: Maschinenfunktionen sind als Bibliothek verfügbar

Export Eplan    XML
XML    Maschinenkonfigurator    XML
XML    Generator    Maschinenprojekt mit Hardwareaufbau und Software

  Projekt kann jederzeit neu generiert werden
  Bausteine sind standardisiert
  Funktionen können aber (fast) wie gewohnt implementiert werden

  Maschinenfunktionen müssen so geschrieben sein, daß der Generator diese einfach einfügen kann (da für manche ungewohnt)
  Nur für Serienmaschinen wirklich vorteilhaft



3. Erstellen eines Projekts inklusive Logik

Export Eplan    XML
XML    Maschinenkonfigurator    XML
Ablaufdiagramm    Converter    Code für Bausteine im XML
Code    Generator    Bausteine im Projekt
XML    Generator    Maschinenprojekt mit Hardwareaufbau und Software

  Projekt kann jederzeit neu generiert werden
  Ablaufdiagramm kann unter Umständen direkt vom Konstrukteur erstellt werden
  Diagramm leichter verständlich
  Für Serien- und Sondermaschinen

  Generierter Code nachträglich schlecht les- und änderbar
  Der Converter ist sehr komplex um alle Möglichkeiten abzubilden.




Architektur




Problematik


Viele Serienmaschinen werden nach Kundenwunsch mit diversen Optionen und Erweiterungen erstellt.
Im Laufe der Zeit ensteht so, meist, unübersichtlicher Quellcode der alles abdeckt, oder eine vielzahl an Bibliotheken die immer schlechter wartbar werden.
Man kann sich das in Form eines Puzzles vorstellen.


alte Vorgehensweise



Funktionsbausteine sind die Puzzlestücke

Schnittstellen der Funktionsbausteine sind die Verbindungen zwischen den Teilen

Die Schnittstellen müssen korrekt verbunden werden damit eine funktionierende Maschine herauskommt

Die Puzzleteile funktionieren ausschließlich in der gegebenen Zusammensetzung


Lösungsansatz - Interfaceless Design


Das Designpattern bietet die Möglichkeit Software höchstmodular zu erstellen,
kundenspezifische Lösungen einzuarbeiten, und sehr flexibel Änderungen einfließen zu lassen.
Die Schnittstellen zwischen den Teilen sind einmalig definiert und zwischen allen Modulen gleich.


neue Vorgehensweise




Hier können die einzelnen Bausteine wie vorher zusammengelegt werden um die komplette Funktion abzubilden

Schnittstellen der Funktionsbausteine sind die Verbindungen zwischen den Teilen

Oder es werden nur einzelne Funktionen benötigt, die anderen können einfach entfallen


Vorteile


Erweitern statt Ändern
Kundenwünsche sind einfach zu implementieren, ohne Bestandscode zu ändern

Flexible Planung der Hardware
Eine Datei im XML Format enthält alle Maschinenfunktionen sowie die zugehörige Hardwarebeschreibung (Steuerung und Antriebe)

Skalierbare Leistung
Es läuft ausschließlich Code auf der Maschine der dort auch benötigt wird

Know How Schutz
durch vollständige Kapselung der Funktion

Generieren statt Programmieren
Die Maschinenfunktionen müssen natürlich weiterhin erstellt werden, das Programm für die Kundenmaschine wird aber aus der zuvor erstellten Bibliothek generiert

Testautomatisierung
Der Generator ermöglicht es zudem Testläufe über einen Buildserver zur konfigurieren und auszuführen.
Durch die allgemeine Schnittstelle können Bausteine leichter getestet und bewertet werden