FB_SR_T_FF¶
Einleitung¶
Der Funktionsbaustein FB_SR_T_FF realisiert ein bistabiles, set-dominantes RS-Flipflop mit zusätzlicher Toggle-Funktion. Die Schaltung kombiniert das Verhalten eines SR-Latches (Set-Dominant) mit einem flankengesteuerten T-Flipflop, das bei jedem Taktzyklus den Ausgangszustand wechselt, wenn weder Set noch Reset aktiv sind.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| REQ | Event | Normaler Ausführungsauftrag (löst Verarbeitung aus) |
Ereignis-Ausgänge¶
| Name | Typ | Kommentar |
|---|---|---|
| CNF | Event | Bestätigung der Ausführung |
Daten-Eingänge¶
| Name | Typ | Initialwert | Kommentar |
|---|---|---|---|
| S1 | BOOL | - | Set-Eingang (dominant) |
| R | BOOL | - | Reset-Eingang |
| CLK | BOOL | - | Taktsignal (steigende Flanke löst Toggle aus) |
Daten-Ausgänge¶
| Name | Typ | Initialwert | Kommentar |
|---|---|---|---|
| Q1 | BOOL | - | Ausgangssignal |
Adapter¶
Keine Adapter vorhanden.
Funktionsweise¶
Der Baustein wird durch ein Ereignis am Eingang REQ aktiviert. Bei jeder Ausführung werden die Eingänge S1, R und CLK abgetastet und der interne Zustand (Q1) nach folgenden Regeln aktualisiert:
- Set-Dominanz: Ist
S1 = TRUE, wirdQ1aufTRUEgesetzt (unabhängig vonRundCLK). - Reset: Falls
S1 = FALSEundR = TRUE, wirdQ1aufFALSEgesetzt. - Toggle bei steigender Flanke: Falls weder
S1nochRaktiv sind (S1 = FALSEundR = FALSE) und der aktuelle Wert vonCLKTRUEist, während er im vorherigen ZyklusFALSEwar (d.h. steigende Flanke), wird der AusgangQ1invertiert (Q1 := NOT Q1). Andernfalls bleibtQ1unverändert.
Der interne Hilfsmerker EDGE speichert den letzten Zustand von CLK, um Flankenerkennung zu ermöglichen. Initial ist EDGE = TRUE, sodass bei der ersten Ausführung keine steigende Flanke erkannt wird, es sei denn, CLK ist von Anfang an FALSE.
Der Algorithmus wird in Structured Text (ST) implementiert und nach jeder Verarbeitung das Bestätigungsereignis CNF gesendet.
Technische Besonderheiten¶
- Set-dominantes Verhalten: Solange
S1 = TRUE, wirdRignoriert. Dies verhindert den undefinierten Zustand eines klassischen RS-Flipflops. - Flankengesteuertes Toggle: Die Toggle-Funktion wird nur bei einer steigenden Flanke von
CLKausgelöst, nicht bei jedem Taktzyklus. Dadurch ist das Verhalten deterministisch und ermöglicht eine Synchronisation mit dem Taktsignal. - Interne Speicherung der Flanke: Der interne Merker
EDGEspeichert den vorherigen Wert vonCLK. Initial aufTRUEgesetzt, damit der erste Zyklus keine Toggle-Auslösung erzwingt. - Zyklische Abarbeitung: Eine Verarbeitung kann beliebig oft aufgerufen werden; die Funktion hängt nur von den aktuellen Eingangswerten und dem gespeicherten Flankenzustand ab.
Zustandsübersicht¶
Der Baustein besitzt einen funktionalen Zustandsautomaten mit einem Zustand REQ. Dieser Zustand führt den Algorithmus aus und sendet anschließend CNF. Es gibt keine weiteren expliziten Zustände im Automaten, da das Flipflop-Verhalten rein datengetrieben im Algorithmus abgebildet wird.
| Zustand | Eingehende Ereignisse | Aktion | Ausgehende Ereignisse |
|---|---|---|---|
| REQ | REQ | Ausführen des Algorithmus, Aktualisierung von Q1 und EDGE |
CNF |
Anwendungsszenarien¶
- Steuerung mit Set/Reset-Vorrang: Der Baustein eignet sich für Anwendungen, bei denen ein Vorrang von Set vor Reset erforderlich ist (z.B. Sicherheitsschaltungen).
- Toggle-Funktion mit Takt: Kombiniert mit einem Taktgeber kann der Ausgang bei jedem Taktimpuls umschalten, solange keine Set- oder Reset-Anforderung vorliegt. Dies kann z.B. für modulare Zähler oder Zustandsmaschinen genutzt werden.
- Flankengesteuerte Schaltungen: In Automatisierungsprozessen, bei denen Zustandsänderungen nur zu bestimmten Zeitpunkten erfolgen dürfen (z.B. Abtastungen).
Vergleich mit ähnlichen Bausteinen¶
Im Vergleich zu einem reinen SR-Flipflop (z.B. SR_FF) bietet dieser Baustein eine eingebaute Toggle-Funktion, die den Ausgang bei jedem Taktzyklus invertieren kann. Gegenüber einem T-Flipflop (T_FF) hat der Baustein zusätzlich die Set- und Reset-Eingänge mit Dominanz. Das klassische JK-Flipflop besitzt zwei steuernde Eingänge (J, K) ohne Dominanz, während dieses Baustein eine Kombination aus Set-Dominant und flankengesteuertem Toggle darstellt.
Fazit¶
Der FB_SR_T_FF ist ein vielseitiger, kompakter Funktionsbaustein, der die Eigenschaften eines set-dominanten RS-Flipflops und eines flankengesteuerten T-Flipflops vereint. Dank der einfachen Schnittstelle (ein Ereigniseingang, drei boolesche Eingänge) lässt er sich leicht in bestehende Steuerungslogiken integrieren und eignet sich für eine Vielzahl von Anwendungen, bei denen ein priorisierter Set/Reset mit zusätzlicher Umschaltfunktion benötigt wird. Die Implementierung in Structured Text gewährleistet klare Lesbarkeit und einfache Anpassung.