Für die Bedienung, Steuerung und Regelung eines Labor-Automaten muss mein MFD völlig unterschiedliche, voneinander unabhängige Aufgaben wahrnehmen. Je nach Programmphase herrschen wieder ganz neue Randbedingungen (andere E/A's, Wechsel von aktiver Steuerung zu Menüführung etc.)
Ich habe versucht, diese unterschiedliche Phasen des Programmablaufs als "Zustände" in einer Art "Program Counter" festzuhalten: Wenn die Werteingabe abgeschlossen ist, soll er z.B. den Zustand von "0" auf "1" setzen. Dann weiss die Steuerung, dass sie jetzt aufheizen und regeln muss.
Ist dieser Vorgang abgeschlossen, soll der Zustand auf "2" gesetzt werden: Jetzt soll die Steuerung alles bisherige vergessen und aktiv zu kühlen beginnen, ohne Regelung. Die Anzeigemaske muss ebenfalls gewechselt werden.
Ist diese Phase abgeschlossen, kommt der nächste Programmschritt (Zustand "3") etc.
In C++ würde man das wahrscheinlich so schreiben:
switch (Zustand)
{
case 1:
Führe den Benutzer durch die Menüführung;
break;
case 2:
Heize die Flüssigkeit auf 120 Grad und Regle;
break;
case 3:
Halte die Temperatur auf 40 Grad und warte auf weitere Befehle;
break;
case 4:
Führe das automatische Reinigungsprogramm durch;
break;
case 5:
etc.....
break;
}
Wie kann ich eine Variable "Zustandszähler" realisieren, die durch div. Ereignisse immer wieder geändert werden kann? Und wie kann ich diese CASE-Funktion realisieren? Merci für die Tipps!