Implementierung

Sie haben - wie beschrieben - Ihre Aufgabenstellung in Teilaufgaben modularisiert. Versuchen Sie Teillösungen zu erarbeiten und diese immer wieder zusammenzuführen. Gehen Sie dabei von der Komplexität der Aufgabe sowie dem Einfluss auf andere Aufgaben aus. Nachfolgend werden wir Ihnen eine mögliche Reihenfolge für die Implementierung, sowie die benötigen Randbedindungen vorstellen.

Hinweis: Die vorgestellte Reihenfolge dient lediglich als Hilfestellung!

 

1. Graphische Benutzeroberfläche

Sie haben bereits Ihre graphische  Benutzeroberfläche auf dem Papier ausgestaltet. Versuchen Sie nun diese in MATLAB umzusetzen. Vernachlässigen Sie dazu am Anfang noch die Interaktion.

Damit Ihr Team aber einen Eindruck vom Gesamtprojekt erhält, füllen Sie die Benutzeroberfläche mit Daten, die einen beliebigen Zwischenzustand darstellt. Dieser Zwischenzustand ist ein von Ihnen erdachter Zeitpunkt. Die entsprechenden Daten müssen Sie sich ausdenken! Speichern Sie diese Daten innerhalb einer Datenstruktur ab. Idealerweise sollte die Datenstruktur der graphischen Benutzeroberfläche mit der Datenstruktur aus dem restlichen Programm übereinstimmen.

Anschließend greifen Sie auf die erstellte Schnittstellenübersicht zu. Editieren Sie Ihre Benutzeroberfläche, indem Sie die Interaktionen implementieren. Fügen Sie dazu die relevanten Funktionsaufrufe aus Ihrer Schnittstellenübersicht in die "Callbacks" (siehe: Tutorial zum Erstellen graphischer Benutzeroberflächen) ein.

Fehlende Elemente in Ihrer Datenstruktur, fehlende Schnittstellen, fehlende Übergabeparameter, etc. sollten Sie zu jedem Zeitpunkt mit Ihrem Team kommunizieren!

 

2. Module im Allgemeinen

Alle Module weisen gewisse Ähnlichkeiten auf. Um Ihre Kenntnisse über die Module sukzessiv zu erweitern, starten Sie mit den leichteren Modulen und arbeiten sich zu den komplexeren Modulen vor. Unser Vorschlag ist, dass Sie sich mit dem Zählmodul, dann mit der Farberkennung und anschließend mit den beiden verbliebenen Modulen beschäftigen.

Jedes Modul verfügt über ein Laufband, mit dem die Kugeln weitertransportiert werden. Implementieren Sie zuerst eine Funktion, die das Laufband eines speziellen Moduls aktiviert und wieder deaktiviert

Im nächsten Schritt aktivieren Sie gleichzeitig mit dem Start des Laufbandes den Farbsensor. Versuchen Sie die Farbe einer Kugeln auszulesen. Speichern Sie den Wert in XML ab.

Verwenden Sie Ihren Programmcode wieder. Wandeln Sie ihn entsprechend ab, um das Zählwerk zu bedienen. Beachten Sie, dass das Zählwerk einen zweiten Motor hat, der den Taster auf eine potentielle Kugeln drückt. Dieser muss beim ersten Starten der Fabrik per Hand auf eine vordefinierte Position gestellt werden. Gehen Sie beim Starten davon aus, dass diese Rückstellung erfolgt ist.

Nachfolgend erhalten Sie die Randbedingungen für die Ansteuerung der einzelnen Motoren:

  • Farberkennung

    Laufband:
    Port: 'A'
    Power: 15
    SmoothStart: true

  • Sortiermaschine

    Bewegung der Ausgangsfächer:
    Port: 'A'
    Power: 15
    TachoLimit: 140 (für das nächste von insgesamt 3 Fächern)
    ActionAtTachoLimit: 'BRAKE'

    Bewegung des Auswerfers:
    Port: 'B'
    Power: 50
    TachoLimit: 450
    ActionAtTachoLimit: 'BRAKE'

  • Zählwerk

    Laufband:
    Port: 'A'
    Power: 20
    SmoothStart: true

  • Portionierer

    Laufband:
    Port: 'A'
    Power: -40
    SmoothStart: true

    Bewegung der Ausgangsfächer:
    Port: 'B'
    Power: 20
    TachoLimit: 90 (für das nächste von insgesamt 4 Fächern)
    ActionAtTachoLimit: 'HOLDBRAKE'

    Bewegung des Auswerfers:

Die Auswerfbewegung des Portionierer ist etwas komplexer. Zunächst muss das auszuwerfende Fach an die entsprechende Position gedreht werden.

Das Ausgangsfach wird nun gegen den Auswerfer gedrückt, der den Auswerfvorgang einleitet:

Port: 'C'
Power: 20
TachoLimit: 40

Anschließend wird das Ausgangfach wieder zurückgedreht und der Auswerfer eingezogen.

 

  • (Optional und nicht in ViTeMes abgebildet) Abschussrampe

Laufband:
Port: 'A'
Power: 40 
SmoothStart: true

Abschussrampe:

 

 

 

4. Gesamtaufbau

Nachdem Sie nun die einzelnen Module getrennt von einander implementiert haben, die einzelnen Module über Ihre Benutzerschnittstelle getrennt von einander starten und stoppen können, führen Sie die Prozesse zusammen. Lesen Sie jeweils das benötigte XML-Dokument ein und lassen Sie abhängig von den erkannten Kugeln Ihre Aktionen ausführen.