Autor Thema: Wie wird ein "Program Counter" realisiert?  (Gelesen 3646 mal)

Offline isi

  • Newbie
  • *
  • Beiträge: 3
Wie wird ein "Program Counter" realisiert?
« am: Januar 06, 2006, 10:34:40 Vormittag »
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!


Offline Juergen

  • easy god
  • *****
  • Beiträge: 1955
  • Jürgen
Re: Wie wird ein "Program Counter" realisiert?
« Antwort #1 am: Januar 06, 2006, 11:42:28 Vormittag »
Hallo,

das sieht nach einer Schrittkette aus.

Schrittketten können mit Zähler und Vergleicher, Merkern und auch mit dem Schiebregister gemacht werden.

Versuche mal die Suche im Forum  da gibt es Beispiele

mfg Jürgen
Mit freundlichem Gruß Juergen


Alle Programme sind nur Beispiele und Selber zu Testen.
Geprüft wurde nur in der Simulation der Software oder mit Simulator am Schreibtisch. Die Beispiele sind mit Sicherheitsschaltungen zu ergänzen.