AS_D_FF_TMIN¶
Einleitung¶
Der Funktionsblock AS_D_FF_TMIN realisiert ein datenverriegelndes D‑Flipflop, das einen über einen Adapter zugeführten Datenwert bei Eintreffen eines Ereignisses übernimmt und über einen weiteren Adapter ausgibt. Die Besonderheit liegt in einer konfigurierbaren Mindestzeit (Tmin) zwischen zwei aufeinanderfolgenden Übernahmeereignissen. Dadurch werden zu schnelle Ereignisfolgen unterdrückt, was z. B. zur Entprellung oder zur Einhaltung von Prozessbeschränkungen genutzt werden kann.
Schnittstellenstruktur¶
Ereignis‑Eingänge¶
| Ereignis | Typ | Kommentar |
|---|---|---|
| INIT | EInit | Initialisierungsanforderung (liest Tmin) |
Ereignis‑Ausgänge¶
| Ereignis | Typ | Kommentar |
|---|---|---|
| INITO | EInit | Bestätigung der Initialisierung |
Daten‑Eingänge¶
| Name | Typ | Kommentar |
|---|---|---|
| Tmin | TIME | Minimale Zeit zwischen zwei aufeinanderfolgenden CLK‑Ereignissen |
Daten‑Ausgänge¶
Der Block besitzt keine expliziten Datenausgänge; die Ausgabe erfolgt ausschließlich über den Adapter Q.
Adapter¶
| Richtung | Adapter | Typ | Kommentar |
|---|---|---|---|
| Socket | I | adapter::types::unidirectional::AS | Eingangsdaten (D1) und Takt (E1) |
| Plug | Q | adapter::types::unidirectional::AS | Ausgangsdaten (D1) und Ereignis (E1) |
Die Adapter vom Typ AS bieten je einen Ereignis‑Ein‑/Ausgang (E1) und einen Daten‑Ein‑/Ausgang (D1).
Funktionsweise¶
Nach einer erfolgreichen Initialisierung (INIT mit gültigem Tmin) arbeitet der Block wie ein getaktetes D‑Flipflop mit Zeitfilter:
- Ein Ereignis am Adaptereingang I.E1 wird als Takt (CLK) interpretiert.
- Der Datenwert I.D1 wird beim Eintreffen von I.E1 übernommen, sofern der zeitliche Abstand zum letzten CLK‑Ereignis mindestens
Tminbeträgt. Andernfalls wird das Ereignis ignoriert. - Bei erfolgreicher Übernahme wird der gespeicherte Wert am Datenausgang Q.D1 ausgegeben und ein Ereignis Q.E1 ausgelöst.
Die Zeitfilterung wird durch den intern verwendeten Baustein E_D_FF_ANY_TMIN realisiert, der das Taktereignis verzögert oder verwirft, falls die Mindestzeit nicht eingehalten wird.
Technische Besonderheiten¶
- Adapter‑basierte Ein‑/Ausgabe: Daten und Ereignisse werden nicht als separate Variablen, sondern über unidirektionale Adapter (
AS) ausgetauscht. Das erlaubt eine modulare Verbindung mit anderen Blöcken. - Parameterisierbare Mindestzeit: Die Zeit
Tminwird zur Initialisierung gesetzt und kann im laufenden Betrieb nicht geändert werden (ein erneuter INIT‑Aufruf ist erforderlich). - Ereignis‑Unterdrückung: Zu dicht aufeinanderfolgende Taktereignisse werden stillschweigend ignoriert – es gibt keine Fehlermeldung.
Zustandsübersicht¶
Der Block besitzt keine expliziten Zustandsmaschinen im Sinne eines Statecharts. Das Verhalten lässt sich jedoch in zwei Phasen beschreiben:
- Initialisierungsphase: Nach dem INIT‑Ereignis wird
Tminintern gesetzt. Erst danach ist der Block bereit, CLK‑Ereignisse zu verarbeiten. - Betriebsphase: Der Block wartet auf CLK‑Ereignisse. Trifft eines ein, wird geprüft, ob die Zeitsperre (seit dem letzten CLK) abgelaufen ist. Wenn ja, wird der Datenwert übernommen und ausgegeben. Wenn nein, wird das Ereignis verworfen.
Anwendungsszenarien¶
- Entprellung von digitalen Signalen: Ein Sensor liefert schnelle, prellende Signale; mit
Tminwird die minimale Pulsbreite festgelegt. - Taktsynchronisation in zeitkritischen Systemen: Vermeidung von Datenübernahmen schneller als eine vorgegebene Systemtaktgrenze.
- Ratenbegrenzung für Kommunikationsschnittstellen: Nur alle
TminSekunden wird ein neuer Wert akzeptiert (z. B. bei Bus‑Zugriffen).
Vergleich mit ähnlichen Bausteinen¶
| Baustein | Zeitfilterung | Zusätzliche Merkmale |
|---|---|---|
| AS_D_FF | Nein (sofortige Übernahme) | Einfaches D‑Flipflop ohne Zeitbeschränkung |
| AS_D_FF_TMIN (dieser) | Ja, konfigurierbar über Tmin |
Unterdrückt zu schnelle Taktfolgen |
| AS_D_FF_TMAX | Ja, maximale Zeit zwischen Takten | Erzwingt regelmäßige Übernahmen |
Fazit¶
Der Baustein AS_D_FF_TMIN erweitert ein einfaches D‑Flipflop um eine einstellbare Mindestzeit zwischen zwei Übernahmeereignissen. Durch die Adapter‑Schnittstelle und die klare Trennung von Initialisierung und Betrieb eignet er sich besonders für industrielle Steuerungen und zeitdiskrete Verarbeitungen, bei denen ein zu schnelles Schalten vermieden werden muss.