AUDI_FB_CTD¶
Einleitung¶
Der Funktionsblock AUDI_FB_CTD realisiert einen Abwärtszähler (Down Counter) auf Basis des Datentyps UDINT. Er ist speziell für den Einsatz mit Adapter-Schnittstellen ausgelegt und verwendet die Typen AX und AUDI zur ereignisgesteuerten Kommunikation. Die eigentliche Zähllogik wird durch einen internen Funktionsblock des Typs iec61131::counters::FB_CTD_UDINT ausgeführt.
Dieser Baustein feuert bei jeder Aktualisierung – unabhängig davon, ob der Eingang CD, LD oder PV ausgelöst wurde – ein Ereignis auf dem Ausgangskanal Q. Für eine auf Änderungen basierte Auslösung wird der Einsatz eines nachgeschalteten AX_D_FF-Filters empfohlen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
Der Baustein besitzt keine direkten Ereignis-Eingänge. Alle Ereignisse werden über die angeschlossenen Sockets (Adapter-Eingänge) zugeführt.
| Socket (Adapter) | Typ | Beschreibung |
|---|---|---|
CD |
AX |
Count-Down-Ereignis (Abwärtszählen) |
LD |
AX |
Load-Ereignis (Laden des Preset-Wertes) |
PV |
AUDI |
Preset-Wert-Ereignis (Vorgabewert setzen) |
Ereignis-Ausgänge¶
| Name | Typ | Beschreibung |
|---|---|---|
CNF |
Event | Bestätigungsereignis nach jeder Verarbeitung |
Daten-Eingänge¶
Die Daten werden über die Sockets als Teil des Adapter-Protokolls übertragen.
| Socket (Adapter) | Daten-Typ | Bedeutung |
|---|---|---|
CD.D1 |
BOOL | Befehl zum Herunterzählen (TRUE = zählen) |
LD.D1 |
BOOL | Befehl zum Laden des Preset-Wertes |
PV.D1 |
UDINT | Vorgabewert für den Zähler (Preset) |
Daten-Ausgänge¶
Die Ausgangsdaten werden über die Plugs ausgegeben.
| Plug (Adapter) | Daten-Typ | Bedeutung |
|---|---|---|
Q.D1 |
BOOL | Zählerstand = 0 (TRUE wenn erreicht) |
CV.D1 |
UDINT | Aktueller Zählerwert |
Adapter¶
| Richtung | Name | Typ | Beschreibung |
|---|---|---|---|
| Socket | CD |
AX |
Ereignisgesteuerter Zählimpuls (abwärts) |
| Socket | LD |
AX |
Ereignisgesteuertes Laden des Presets |
| Socket | PV |
AUDI |
Ereignisgesteuerte Vorgabe des Presets |
| Plug | Q |
AX |
Ausgangssignal: Zählerstand = 0 |
| Plug | CV |
AUDI |
Ausgangssignal: aktueller Zählerwert |
Funktionsweise¶
Intern wird ein standardisierter IEC‑61131‑Abwärtszähler (FB_CTD_UDINT) verwendet. Die Adapter-Ereignisse CD.E1, LD.E1 und PV.E1 werden zu einem einzigen REQ-Ereignis des internen Bausteins zusammengeführt. Dadurch wird der interne Zähler bei jedem beliebigen äußeren Ereignis neu berechnet.
- CD (Count Down): Liegt das Datensignal
CD.D1 = TRUEan, wird der aktuelle Zählerwert um 1 verringert. BeiFALSEbleibt der Wert unverändert. - LD (Load): Ist
LD.D1 = TRUE, wird der Zähler auf den Wert vonPV.D1gesetzt. - PV (Preset Value): Das Ereignis aktualisiert den gespeicherten Preset-Wert; ein darauf folgendes
LD-Ereignis übernimmt diesen.
Nach jeder Berechnung werden die Ausgangsdaten CV (aktueller Zählerwert) und Q (TRUE wenn CV = 0) über die entsprechenden Plugs ausgegeben. Gleichzeitig wird das Bestätigungsereignis CNF ausgelöst.
Technische Besonderheiten¶
- Ereignisverhalten: Bei jedem Eingangsereignis (
CD,LDoderPV) wird der AusgangskanalQbedient. Das bedeutet, dass einQ.E1-Ereignis auch dann gesendet wird, wenn sich der Zählerwert oder derQ-Zustand nicht geändert hat. Dies kann zu unnötig vielen Ereignissen in der nachfolgenden Logik führen. - Empfehlung zur Filterung: Soll das Ausgangsereignis nur bei tatsächlicher Zustandsänderung von
Qausgelöst werden, ist ein AX_D_FF (Flip-Flop) als Filter zwischenzuschalten. Dieser unterdrückt Wiederholungen. - Adapterbasierte Anbindung: Alle Ein- und Ausgänge erfolgen über genormte Adapter (
AX,AUDI). Dies vereinfacht die modulare Verdrahtung und Wiederverwendung in unterschiedlichen Umgebungen.
Zustandsübersicht¶
Der Baustein besitzt keine expliziten Zustände. Der interne Zähler arbeitet nach den Regeln eines IEC‑61131‑CTD-Bausteins. Der aktuelle Zählerstand wird durch die Datensignale bestimmt.
Anwendungsszenarien¶
- Ereignisgesteuerte Abwärtszählung: Einsatz in Automatisierungssystemen, bei denen ein Zählerstand durch äußere Ereignisse dekrementiert wird (z. B. Anzahl verarbeiteter Werkstücke).
- Modulare Steuerungskomponenten: Integration in adapterbasierte Architekturen, bei denen standardisierte Schnittstellen den Datenaustausch zwischen verschiedenen Funktionsblöcken erleichtern.
- Timer‑Nachbildung: Kombination mit einem Taktgeber, um eine definierte Anzahl von Zyklen zu zählen und bei Erreichen von Null eine Aktion auszulösen.
Vergleich mit ähnlichen Bausteinen¶
- Standard‑CTD (z. B.
FB_CTD_UDINT): Besitzt direkte Ein-/Ausgangsvariablen, keine Adapter. DerAUDI_FB_CTDhingegen kapselt die Logik und stellt die Signale über Adapter bereit, was eine saubere Trennung von Ereignis- und Datenkanälen ermöglicht. - Aufwärtszähler (CTU): Im Gegensatz zum
AUDI_FB_CTDzählt ein CTU aufwärts. Beide können adapterbasiert realisiert werden, sind aber für unterschiedliche Zählrichtungen ausgelegt. - Eigenschaft „immer feuern“: Viele Standardzähler geben nur dann ein Ausgangsereignis, wenn sich der Ausgangszustand ändert. Der
AUDI_FB_CTDtut dies bei jeder Verarbeitung, was eine Besonderheit darstellt und je nach Anwendung Vor- oder Nachteil sein kann.
Fazit¶
Der AUDI_FB_CTD ist ein flexibler adaptergestützter Abwärtszähler für UDINT-Werte. Seine Stärke liegt in der modularen Anbindung über standardisierte Schnittstellen. Entwickler sollten jedoch das spezielle Ereignisverhalten (Ausgangsimplus bei jedem Update) beachten und bei Bedarf durch einen Filter korrigieren. Der Baustein eignet sich gut für ereignisgesteuerte Zählaufgaben in heterogenen Steuerungslandschaften.