Adaption an Multi-MCU - Neuprogrammierung MATLAB® GUI: Unterschied zwischen den Versionen

Aus Technische Beeinflussbarkeit der Geschmacksache Kaffee
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= Madita vom Stein, 27.07.2023 - Abschlussbemerkung MATLAB®-GUI =
= Madita vom Stein, 27.07.2023 - Abschlussbemerkung MATLAB®-GUI =
[[Datei:Startseite der alten GUI.png|thumb|500px|gerahmt|rechts]]
[[Datei:Startseite der alten GUI.png|thumb|500px|Startseite der alten GUI|gerahmt|rechts]]
[[Datei:Startseite der neuen GUI.png|thumb|500px|gerahmt|rechts]]
[[Datei:Startseite der neuen GUI.png|thumb|500px|gerahmt|rechts]]
[[Datei:Programme der alten GUI.png|thumb|500px|gerahmt|rechts]]
[[Datei:Programme der alten GUI.png|thumb|500px|gerahmt|rechts]]

Version vom 27. Juli 2023, 12:07 Uhr

Madita vom Stein, 27.07.2023 - Abschlussbemerkung MATLAB®-GUI

gerahmt
gerahmt
gerahmt
gerahmt
gerahmt
gerahmt
gerahmt

Die MATLAB®-GUI ist die graphische Bedieneroberfläche der Laborsiebträgermaschine. Die in der GUI durch den Anwender eingegebenen Befehle, beispielsweise das Schalten eines Ventils, werden über den im Hintergrund laufenden MATLAB®-Programmcode an eine Schnittstelle weitergegeben. Diese Schnittstelle steuert die Multi-MCUs an, die direkt auf die Maschine zugreifen.
Als Anwender gelten Studierende, sowie Lehrende, die im Rahmen der „Geschmackssache Kaffee“ an der Labormaschine arbeiten; also Testversuche fahren oder die Maschine weiterentwickeln. Die MATLAB®-GUI ist demnach nicht für den Endanwender der Maschine gedacht. Das verkaufsfähige Endprodukt soll, wie auf dem Markt üblich, mit Schaltern und Knöpfen ausgestattet sein.

Zum Zeitpunkt des Projektstartes lag bereits eine MATLAB®-App inklusive GUI vor [85]. Statt einer Einarbeitung und Weiterentwicklung in den bestehenden Code, erschien eine vollständige Neuaufsetzung der MATLAB®-App und GUI sinnvoller.

Im Hinblick auf die oben genannten Anwender wurde bei der Zielsetzung die Erleichterung der Arbeit im Labor priorisiert. Da die studentischen Arbeitskräfte zum Großteil einer hohen Fluktuation unterliegen, wurde außerdem auf eine intuitive Bedienbarkeit und eine hohe Übersichtlichkeit geachtet. Dadurch soll das Einfinden in die MATLAB®-GUI erleichtert, und folglich die Einarbeitungszeit verkürzt werden.

Sowohl die alte als auch die neue MATLAB®-GUI ist in Tabs unterteilt. Diese gliedern sich in die Startseite, einen manuellen Modus und einen automatischen Modus für Bezugsprogramme. Die neue MATLAB®-GUI beinhaltet zusätzlich einen Tab für das Reinigungsprogramm, welches im Rahmen der Projektarbeit entstanden ist.
Die bisherige MATLAB®-GUI weist zudem Verbesserungspotenzial auf. So war der gesamte Laptop-Bildschirm durch die GUI ausgefüllt. In der neuen GUI wurde bewusst ein Format von 1720 x 880 Pixeln gewählt, sodass wahlweise am oberen oder unteren Rand der GUI ein im Hintergrund liegendes Programm sichtbar ist. Im Falle der Weiterentwicklung der Systemsoftware könnte dies das Command Window von MATLAB® sein, sodass Fehlermeldungen sofort zur Kenntnis genommen werden.
Ebenfalls neu ist, dass die Tabs nicht die gesamte Oberfläche der GUI einnehmen, sondern es einen immer sichtbaren Bereich gibt. Dieser bringt vier Vorteile mit sich. Erstens wird nicht für jeden Tab ein eigener Button für das Speichern des Messwertepuffers benötigt. Stattdessen gibt es diesen Button ein einziges Mal, aber in dem Bereich, auf den ein Zugriff jederzeit möglich ist. Ein zweiter Vorteil ist, dass die für das Geschmackserlebnis besonders relevanten Messwerte Leitungsdruck [mbar] und Durchflussrate [ml / s] ständig sichtbar sind. Auch der Error-Button, sowie der zugehörige Reset-Error-Button, ist in allen Tabs relevant. Die Verschiebung in den immer sichtbaren Bereich brachte auch hier eine erhöhte Reaktionsgeschwindigkeit auf Probleme mit sich, worin der dritte Vorteil liegt. Bei der Reaktion auf Probleme ist auch der Notaus-Button von Bedeutung. Hier können durch schnelles Handeln Schäden an Menschen und Maschine vermieden werden. Ebenfalls in dem immer sichtbaren Bereich ist der jeweilige Programmstatus der einzelnen Platinen. Das hat den Vorteil, dass immer erkennbar ist, ob diese verbunden sind; nicht nur auf der Startseite.
An der Startseite selbst hat sich kaum etwas verändert. Es gibt hier nach wie vor die Buttons „manueller Modus“, „Verbinden“, sowie „Debug“. Weiterhin gibt es Eingabefelder für Daten wie beispielsweise das Datum, die Kaffeesorte oder den Mahlgrad, die den Messwerten zugeordnet werden. Es ist außerdem einstellbar, wie oft die Daten gesichert werden sollen.
Während der Tab „Programme“ in der alten MATLAB®-GUI neben drei Schalter für Kaffeebezug, Teewasserbezug und Dampfbezug auch noch sehr viele andere Inhalte, die nicht direkt den Programmen zuordbar sind, wie beispielsweise die k-Faktoren der Regler, beinhaltet, ist dieser Tab in der neuen GUI minimalistischer gehalten. Da die Programme bisher gar nicht existieren, gibt es hier lediglich vier Buttons als Platzhalter. Ein Programm wird über diese gestartet und gestoppt. Der aktuelle Programmstatus ist an dem jeweils nebenstehenden Lämpchen erkennbar, wobei „rot“ bedeutet, dass das Programm in dem Moment aktiv ist. Während ein Programm durchläuft, sind Ventilschaltungen und Zustandsparameter in dem manuellen Modus nachverfolgbar.
Ansonsten ist der manuelle Modus primär dazu gedacht, dass Ventile einzeln geschaltet, Parameter einzeln geändert, und dadurch Programme entwickelt und getestet werden können. Das Prozessbild der alten GUI ist sehr detailliert und informativ, dadurch aber leider auch sehr unübersichtlich. Es sind auch die Wege des Brauchwassers hin zur Abtropfschale dargestellt. Dies ist bei Hydraulikplänen unüblich und verbraucht zusätzlichen Platz. Durch die vielen Farben und Formen wird die Aufmerksamkeit des Benutzers immer wieder hin zu anderen Stellen gelenkt. Dadurch, dass die Messwerte recht klein und an wenig intuitiven Stellen dargestellt sind, sind diese schwierig zu finden. Die Schalter für die Grundeinstellungen stehen nicht gesammelt und in keiner sinnvollen Reihenfolge.
In der neuen GUI dagegen sind diese Schalter in schlüssiger Reihenfolge, gesammelt oben links abgebildet. Die Bezeichnungen der Messwerte sind größer und fett gedruckt geschrieben. Die Messwerte selbst sind grau hinterlegt. Die Positionierung der Werte ist im Vergleich zu vorher logisch. Die Mischtemperatur befindet sich zum Beispiel an der Stelle, wo gedrosseltes Kalt- und in der Heizwendel erhitztes Warmwasser zusammentreffen. Die Brühgruppenwerte sind direkt in der angedeuteten Brühgruppe zu finden. Insgesamt ist das neue Prozessbild deutlich ruhiger. Es sind nur die wichtigsten Stränge dargestellt. Die Brauchwasserleitungen sind angedeutet.
Ein Hauptunterschied der neuen zur alten GUI liegt in der Ventildarstellung. Während zuvor durch Lämpchen in den Ventilen signalisiert wurde, ob, beziehungsweise wie, ein Ventil geschaltet ist, wird dies in der neuen GUI durch einen Bildwechsel deutlich. Klickt der Benutzer auf das Ventil im Prozessbild, ändert sich das im MATLAB®-Code hinterlegte Ventilbild und das Ventil wird geschaltet.
Da vor Beginn des Projektstartes noch kein Reinigungsprogramm existierte, gibt es den betreffenden Tab lediglich in der neuen GUI. Hier gibt es einen Button zum Start des Programmes, sowie eine Anzeige zum aktuellen Status. Es ist außerdem eine Beschreibung des Ablaufs und Hinweise dazu eingefügt.
Durch die zuvor angesprochenen Maßnahmen ist die neue MATLAB®-GUI übersichtlicher und intuitiver zu bedienen als die alte GUI. Sie ist außerdem auf dem neusten Stand des Hydraulikplans und bildet somit die Labormaschine treffend ab.















Madita vom Stein, 06.06.2023

Beschreibung Prozessbild manueller Modus der GUI

Prozessbild manueller Modus der GUI
gerahmt

Auf dem Prozessbild sind die wesentlichen Zusammenhänge der im Mai 2023 aktuellen Labormaschine dargestellt.

Das Magnetventil Y01 ist das Ventil für den Festwasseranschluss.
Es wird eine Fluid-O-tech Pumpe verwendet. Parallel gibt es einen steuerbaren Bypass, der über ein Drosselventil mit Schrittmotor hergestellt wird.
Über das Magnetventil Y03 (Entschichtungsventil) wird der Boiler durch Umpumpen entschichtet oder durch Abpumpen entleert. Schmutzwasser kann über Y05 (Entwässerungsventil) abgeführt werden und über Y04 (Boilerbefüllung) wird der Boiler befüllt.
Der Kaffee- bzw. Teewasserbezug wird über Y06 (Bezugsventil) geschaltet. Es führt ein ungedrosselter Wasserstrang durch die Wasserwendel im Boiler zum Mischer. Ein weiterer Wasserstrang, der durch ein Dosierventil gedrosselt wird, führt ebenfalls zum Mischer. Der Mischer selbst ist derzeit als T-Stück realisiert.
Das 3/2-Wegeventil Y07 (Mischventil) führt im nicht-geschalteten Zustand in die Abtropfwanne.
Das Magnetventil Y09 (Umschaltventil) schaltet zwischen Kaffeebezug und Teewasserbezug um. Es steht im nicht-geschalteten Zustand auf Kaffeebezug.
Vor der Brühgruppe befindet sich eine Drossel mit Schrittmotor.
Über das Ventil Y08 (Rückspülventil) wird die halbautomatisierte Rückspülreinigung der Brühgruppe realisiert.
Der Dampfhahn ist als 3/2-Wege-Magnetventil Y13 ausgeführt. Im nicht-geschalteten Zustand wird das Kondenswasser zwischen Dampfhahn und -lanze in die Abtropfschale abgeleitet.
Der Stahlboiler der Labormaschine weist 3,6 Liter Gesamtvolumen auf und wird auf 2,4 Liter befüllt. Mit einem 1800 Watt leistungsgeregeltem Heizelement wurden 12 Minuten Aufheizzeit ermittelt.


Melina Scherf, 28.04.2023

Während der Neuprogrammierung der MATLAB® GUI ist so vorzugehen, dass jeder hinzugefügte Codeabschnitt zunächst mit Versuchs-Microcontrollern getestet wird. Dazu wurden Melina Scherf 4 Versuchs-Microcontroller übergeben.
Es wird bis zur Fertigstellung der neuen GUI durch Madita vom Stein mit einer Testumgebung gearbeitet, in der nach und nach alle für die Programmierung notwendigen Oberflächenelemente angelegt werden. Nach der Fertigstellung werden diese dann in die neue Oberfläche übertragen.
Um die Kommunikation zwischen MATLAB® und MicroPython zu ermöglichen, müssen die MCUs initialisiert werden. Dazu wurde mit Armin Rohnen eine Workshop durchgeführt, in welchem das Vorgehen zur Initialisierung vorgestellt wurde. Anschließend wurde von Melina Scherf diese in den neuen Code eingepflegt. Die MCUs heißen im Code nun ssr_platine, bas_platine, mwp_platine, rpi_platine nach zuvor festgelegten Definition der Benennungen. So wird die Ansprache der alten STM32 zukünftig auf unterschiedliche MCUs aufgeteilt werden.

Melina Scherf, 16.04.2023

Als Vereinfachungspotential wurde zum einen die generelle Übersichtlichkeit des Codes festgestellt. Um dies zu verbessern, wird mit größeren Einzügen gearbeitet, um die übergeordneten Funktionen auf einen Blick zu erkennen. Die Reihenfolge der functions wird zudem thematisch sinnvoll gegliedert, vorläufig in:

  • Programme
  • Regler
  • Kommunikation mit MCU
  • Aktoren

Dazu wurde am Anfang der methods im Code ein Inhaltsverzeichnis und über den jeweiligen Abschnitten Überschriften eingefügt.
Das Programm des Mischwasserbezugs besteht im vorhanden Code aus 8 Funktionen, diese sollen zusammengekürzt und (sofern möglich) in einer Funktion zusammengefasst werden.

Melina Scherf, 01.04.2023

Die Neuprogrammierung der MATLAB® GUI wird von Madita vom Stein und Melina Scherf durchgeführt.
Dabei wird Madita vom Stein die graphische Oberfläche der App erstellen. Es soll versucht werden eine übersichtlichere und ansprechendere Ansicht insbesondere des manuellen Modus' zu erarbeiten.
Melina Scherf wird sich in den bereits bestehenden Code einarbeiten und Vereinfachungs- und Verbesserungspotentiale identifizieren. Diese sollen in die neue MATLAB® GUI einfließen.

Melina Scherf, 31.03.2023

Um den aktuellen Projektteilnehmern einen besseren Überblick zu gewähren, wurde beschlossen die MATLAB® GUI neu zu programmieren. Dies soll dazu beitragen die Lesbarkeit des Codes zu erhöhen.

Melina Scherf, 24.03.2023

Ein Einführungsworkshop wurde durch Armin Rohnen durchgeführt. Dieser diente dazu, den Projektteilnehmern einen ersten Einblick in die Programmierung von MATLAB® in Kombination mit MicroPython zu geben.
Es wurde die generelle Funktion des MATLAB® App Designers vorgestellt und dafür eine erste Testoberfläche erstellt, welche einen Raspberry Pi initialisiert und eine Lampe per Schalter an- und ausschaltet.
Der dabei entstandene Code wurde von Melina Scherf kommentiert, um den anderen Projektteilnehmern, die zuvor noch nicht mit (Micro)Python gearbeitet hatten, eine eigenständige Nacharbeitung zu ermöglichen

Armin Rohnen, 16.02.2023

Für die Inbetriebnahme der Multi-MCU-Elektronik muss der Programmcode der MATLAB®-GUI entsprechend angepasst werden. Die bisherige Datenverarbeitung der STM32-MCU wird dabei auf drei Datenverarbeitungen aufgeteilt. Die angeschlossenen MCUs müssen dabei eindeutig identifiziert werden.