Uebung_008_AE: Blinker mit E_CYCLE, E_SWITCH und E_SR¶
Einleitung¶
Diese Übung realisiert einen einfachen Blinker (Wechselblinker) unter Verwendung von Adapter-Funktionsbausteinen (FBs) für die ereignisgesteuerte Logik. Der Kern besteht aus einem Zyklusgeber (AE_CYCLE), einem Umschalter (AX_SWITCH) und einem SR-Flipflop (AX_SR). Über einen Aufteiler (AX_SPLIT_2) und einen Zusammenführer (AX_AE_MERGE) wird die Rückkopplung und die Ausgabe auf einen digitalen Ausgang realisiert. Die Übung demonstriert die Nutzung von Ereignis- und Adapterverbindungen in der 4diac-IDE.
Verwendete Funktionsbausteine (FBs)¶
Alle verwendeten Bausteine sind Adapter-FBs aus den Bibliotheken adapter::events::unidirectional::timers und adapter::events::unidirectional. Zusätzlich kommt ein Hardwareausgang (logiBUS) zum Einsatz.
AE_CYCLE¶
- Typ:
adapter::events::unidirectional::timers::AE_CYCLE - Parameter:
DT=T#1s(Zykluszeit 1 Sekunde)- Ereignisausgang:
EO: Zyklischer Ereignisimpuls alle 1 s- Funktion: Erzeugt einen periodischen Ereignisimpuls. Wird als Taktgeber für den Blinker verwendet.
AX_SWITCH¶
- Typ:
adapter::events::unidirectional::AX_SWITCH - Parameter: Keine
- Ereigniseingang:
G: Schalteingang (Gate)- Ereignisausgänge:
EO0: Aktiv, wenn das eingehende Ereignis den Zustand „Aus" darstelltEO1: Aktiv, wenn das eingehende Ereignis den Zustand „Ein" darstellt- Funktion: Schaltet ein eingehendes Ereignis entweder auf Ausgang 0 oder 1, abhängig vom aktuellen Zustand eines internen Umschalters. Hier wird das zurückgeführte Ereignis über
AX_AE_MERGE.OUTan den Gate-Eingang gelegt und abwechselnd das Setzen (S) und Rücksetzen (R) des SR-Flipflops getriggert.
AX_SR¶
- Typ:
adapter::events::unidirectional::AX_SR - Parameter: Keine
- Ereigniseingänge:
S: Setzen (Ereignis setzt Ausgang Q auf true)R: Rücksetzen (Ereignis setzt Ausgang Q auf false)- Adapterausgang:
Q: Adapterausgang (trägt den booleschen Zustand; wird an den Aufteiler weitergegeben)- Funktion: Realisiert ein SR-Flipflop auf Ereignisebene. Der Ausgang Q wird bei einem Impuls auf S gesetzt und bei einem Impuls auf R zurückgesetzt.
AX_SPLIT_2¶
- Typ:
adapter::events::unidirectional::AX_SPLIT_2 - Parameter: Keine
- Adaptereingang:
IN(Eingang eines Adapters, der den Zustand des SR-Flipflops übernimmt)- Adapterausgänge:
OUT1: Erste Kopie des Eingangs (wird zur Rückkopplung an den Schalter verwendet)OUT2: Zweite Kopie des Eingangs (wird an den digitalen Ausgang geführt)- Funktion: Verteilt den eingehenden Adapter (Zustand) auf zwei parallele Pfade.
AX_AE_MERGE¶
- Typ:
adapter::events::unidirectional::AX_AE_MERGE - Parameter: Keine
- Adaptereingänge:
IN_AX: Adaptereingang (Zustand vom Aufteiler)IN_AE: Ereigniseingang (vom Zyklusgeber)- Adapter-/Ereignisausgang:
OUT: Adapterausgang (kombiniert den Adapterzustand mit dem Ereignis)- Funktion: Verbindet einen Adapter (Datenzustand) mit einem Ereignis. Der ausgehende Adapter enthält den Zustand von
IN_AXund wird durch das EreignisIN_AEgetriggert. Dadurch wird der aktuelle Zustand des SR-Flipflops an den Schalter weitergegeben, sobald das Zyklusereignis eintrifft.
DigitalOutput_Q1¶
- Typ:
logiBUS::io::DQ::logiBUS_QXA - Parameter:
QI=TRUE(immer aktiviert)Output=Output_Q1(physischer Ausgangskanal)- Adaptereingang:
OUT(erhält den Bool-Zustand vonAX_SPLIT_2.OUT2)- Funktion: Schaltet den physischen digitalen Ausgang Q1 entsprechend des anliegenden Bool-Werts (TRUE = ein, FALSE = aus). Der Ausgang leuchtet bei gesetztem SR-Flipflop.
Programmablauf und Verbindungen¶
Der Blinker arbeitet ereignisgesteuert nach folgendem Schema:
- Taktgeber: Der
AE_CYCLEsendet alle 1 Sekunde ein Ereignis auf seinem AusgangEO. - Ereignis-Rückführung: Das Ereignis von
AE_CYCLEwird mit dem aktuellen Zustand des SR-Flipflops kombiniert. Dazu wird der Zustand vomAX_SRüberAX_SPLIT_2an denAX_AE_MERGE(EingangIN_AX) geleitet. Das Ereignis vonAE_CYCLEwird anIN_AEangelegt. DerAX_AE_MERGEerzeugt an seinem AusgangOUTeinen Adapter, der den Zustand trägt und zeitgleich mit dem Ereignis ausgeliefert wird. - Schalter: Der Ausgang
AX_AE_MERGE.OUTwird an den EingangGdesAX_SWITCHgelegt. Der Schalter wertet den ankommenden Adapterzustand aus: - Bei Zustand
false(Flipflop zurückgesetzt) wird ein Ereignis anEO0ausgegeben. - Bei Zustand
true(Flipflop gesetzt) wird ein Ereignis anEO1ausgegeben. - SR-Flipflop:
- Ein Ereignis von
AX_SWITCH.EO0gelangt an den SetzeingangSdesAX_SR. Damit wird der Flipflop gesetzt → AusgangQwirdtrue. - Ein Ereignis von
AX_SWITCH.EO1gelangt an den RücksetzeingangRdesAX_SR. Damit wird der Flipflop zurückgesetzt → AusgangQwirdfalse. - Ausgabe: Über
AX_SPLIT_2wird der ZustandQauf zwei Pfade verteilt: OUT1→ Rückkopplung anAX_AE_MERGE(wie beschrieben)OUT2→ An den AdaptereingangOUTdesDigitalOutput_Q1. Beitruewird der Ausgang eingeschaltet, beifalseausgeschaltet.
Der Kreislauf wiederholt sich mit jedem Takt von AE_CYCLE. Dadurch wechselt der Ausgang Q1 periodisch zwischen Ein- und Ausgeschaltet (Blinken mit 1 s Takt).
Zusammenfassung¶
Die Übung „Uebung_008_AE" zeigt den Aufbau eines Blinkers mit Hilfe von 4diac-Adaptern. Zentral sind die Bausteine AE_CYCLE (Takt), AX_SWITCH (Zustandsverarbeitung), AX_SR (Flipflop), AX_SPLIT_2 (Signalverteilung) und AX_AE_MERGE (Kombination von Ereignis und Adapter). Die ereignisbasierte Rückkopplung erzeugt eine wechselnde Ein-/Aus-Logik, die auf einen physischen Ausgang gegeben wird. Die Übung vermittelt den Umgang mit Adapterverbindungen, Ereignisrückkopplungen und dem Entwurf sequenzieller Schaltungen in der 4diac-IDE.