Ich habe ein Schaltprogramm mit mehreren Taster-Eingängen. Jeder Eingang setzt 1 Aktion in Bewegung, diese wird nach Zeit bzw. andere Taster zurückgesetzt. Die Eingänge sollen jedoch gegeneinander verriegelt sein, damit erst nach Ablauf (Reset) einer Aktion die nächste starten kann. In der Zeit, in der diese erste Aktion läuft, sollen die nachfolgenden Anforderungen (zumindet eine) irgendwie gespeichert und nach Abarbeiten des ersten Vorgangs ausgeführt werden.
Statt mit Taster- bzw. KanalNummern, habe ich's mal auf "BitEbene" versucht ... und es ist ganz schön aufwändig geworden:
Anhang anzeigen 6Tasten-2.lsc.pdf <===<<< nach dem Herunterladen '.pdf' entfernen!
Prinzip:
Für 6 verschiedene Aktionen wird je 1 "TaktSignal" gebildet ("CYC 0" ... "CYC 5"). Es ist "reihum" immer genau 1 aus 6 aktiv/"high", so dass immer nur 1 der 6 Aktionen bearbeitet wird, während die anderen darauf warten, bis sie an die Reihe kommen.
Mit den 6 Eingängen/Tasten I1..I6 wird ein "Request" ("REQ 1" ... "REQ 5") angemeldet und per RS-FF "vorgemerkt". Einzige Ausnahme: eine bereits aktive Aktion kann nicht vorgemerkt werden, nur eine oder mehrere der 5 anderen.
Ist keine der 6 möglichen Aktionen aktiv, so wird automatisch die einzige oder eine von mehreren (zufällig durch den gerade aktiven Takt ausgewählt) vorgemerkten/"geplanten" aktiviert.
Ist eine Aktion beendet, so muss dies per "END 0" ... "END 5" der Schaltung gemeldet werden. Zum Testen gibt es hierfür die 6 Eingänge/Taster I8..I13 einerseits und die 6 EinschaltVerzögerungen andererseits, um manuell oder automatisch nach der programmierten AktionsDauer von z.Z. 3 s das Weiterschalten zu ermöglichen.
Die Schaltung enthält also ausser dem eigentlich Nötigen auch noch Aufwand für den "TestLuxus".
Dazu gehört auch der Eingang/Taster I7, mit dem alle 6 REQs mit 1 TastenDruck gesetzt werden können.
Noch mehr "TestLuxus": Für jede der 6 Aktionen gibt es einen Ausgang (Q1..Q6), der den Zustand "vorgemerkt" durch (2Hz-)Blinken und den Zustand "aktiv" ("BSY 0" ... "BSY 5") durch DauerSignal anzeigt.
Anmerkungen:
Die 6 TaktSignale habe ich nicht zufällig "CYC" genannt, sie stehen tatsächlich nur jeweils 1 Zyklus lang an, gefolgt von einer 5 Zyklen langen Pause.
Als RS-FFs hatte ich StromstossSchalter projektiert, um variabler zu sein. Es wird aber lediglich die Funktionalität von RS-FFs benutzt. Bin aber zu bequem, das noch zu ändern, nur dem RotStift zuliebe.
Die RS-FFs bilden je Aktion ein 2-Bit-SchiebeRegister, bei dem das EingangsBit "parallel" geladen wird.
Edit:
Schlimmer geht's nimmer? Doooch! Zugabe:
Anhang anzeigen 6Taster-3.lsc.pdf <===<<< nach dem Herunterladen '.pdf' entfernen!