ADI_FB_CTU¶
Einleitung¶
Der ADI_FB_CTU ist ein Aufwärtszähler (Up-Counter) für Ganzzahlen vom Typ DINT, dessen Ein- und Ausgänge über standardisierte Adapter (AX und ADI) bereitgestellt werden. Er kapselt den Standard-Funktionsblock FB_CTU_DINT und ermöglicht dessen Integration in modulare Adapter-basierte Systeme. Der Baustein eignet sich für allgemeine Zählaufgaben in der Automatisierungstechnik.
Schnittstellenstruktur¶
Der Funktionsblock besitzt keine direkten Ereignis- oder Datenschnittstellen, sondern ausschließlich Adapter für die Anbindung. Die nachfolgende Tabelle erläutert die verfügbaren Adapter, deren Typ und Bedeutung.
| Richtung | Name | Adapter-Typ | Beschreibung |
|---|---|---|---|
| Eingang (Socket) | CU |
AX |
Zählimpuls-Eingang (Ereignis + Daten) |
| Eingang (Socket) | R |
AX |
Rücksetz-Eingang (Ereignis + Daten) |
| Eingang (Socket) | PV |
ADI |
Vorgabewert (Preset Value) für den Vergleich |
| Ausgang (Plug) | Q |
AX |
Ausgangssignal – aktiv, wenn Zählerstand ≥ PV |
| Ausgang (Plug) | CV |
ADI |
Aktueller Zählerstand |
Die Adapter AX (Ereignis-Adapter) und ADI (Daten-Adapter) sind unidirektional. Über die Adapter werden sowohl die Ereignisse als auch die zugehörigen Datenwerte übertragen.
Ereignis-Eingänge¶
Keine direkten Ereignis-Eingänge. Die Ereignisse werden über die Adapter CU und R (vom Typ AX) zugeführt.
Ereignis-Ausgänge¶
Ein direkter Ereignis-Ausgang CNF signalisiert die Bestätigung einer Verarbeitung. Zusätzlich wird über den Adapter Q (Typ AX) ein Ausgangsereignis bei jeder Aktualisierung ausgegeben.
Daten-Eingänge¶
Keine direkten Daten-Eingänge. Der Vorgabewert wird über den Adapter PV (Typ ADI) bereitgestellt.
Daten-Ausgänge¶
Keine direkten Daten-Ausgänge. Der aktuelle Zählerstand wird über den Adapter CV (Typ ADI) ausgegeben.
Adapter¶
Der Funktionsblock verwendet drei Sockets (Eingangsadapter) und zwei Plugs (Ausgangsadapter):
CU(Socket,AX): Zählimpuls – bei jedem Ereignis wird der interne Zähler inkrementiert.R(Socket,AX): Reset – setzt den Zähler auf Null zurück.PV(Socket,ADI): Preset Value – legt den Schwellwert fest, ab dem der AusgangQaktiv wird.Q(Plug,AX): Ausgang – wird aktiv, sobald der Zählerstand den Wert vonPVerreicht oder überschreitet.CV(Plug,ADI): Aktueller Zählerstand – kann von nachgeschalteten Bausteinen gelesen werden.
Funktionsweise¶
Der ADI_FB_CTU realisiert einen einfachen Aufwärtszähler mit Vorgabewert-Vergleich.
- Bei jedem Ereignis am Eingang
CUwird der interne Zähler um 1 erhöht. - Ein Ereignis am Eingang
Rsetzt den Zähler auf 0 zurück. - Der Vorgabewert
PVwird beim Eintreffen eines Ereignisses am EingangPVaktualisiert.
Nach jeder Verarbeitung (unabhängig davon, ob CU, R oder PV ausgelöst hat) wird das Bestätigungsereignis CNF ausgegeben. Gleichzeitig wird auch der Ausgangsadapter Q mit einem Ereignis bedient und der aktuelle Zählerstand über den Adapter CV bereitgestellt.
Wichtig: Der Baustein feuert das Ausgangsereignis
Q.E1bei jeder Aktualisierung – also auch bei Reset oder Vorgabewert-Änderung – nicht nur bei einer Änderung des Zählerstands. Soll das Ausgangssignal nur bei einer tatsächlichen Änderung des Vergleichsergebnisses ausgelöst werden, empfehlen die Entwickler die Verwendung eines AX_D_FF als nachgeschalteten Filter.
Intern wird ein Standard-Funktionsblock FB_CTU_DINT verwendet, dessen Ein- und Ausgänge über die Adapter verdrahtet sind. Der Zählwert ist vom Typ DINT (32-Bit-Ganzzahl).
Technische Besonderheiten¶
- Adapter-basierte Schnittstelle – ermöglicht eine lose Kopplung und einfache Integration in Adapter-basierte Architekturen (z. B. gemäß IEC 61499).
- Unidirektionale Adapter – die Adapter
AXundADIübertragen jeweils nur in eine Richtung. - Bestätigungsereignis
CNF– jedes Ereignis an einem Eingang löst eine sofortige Bestätigung aus. - Keine Flankenerkennung – der Baustein reagiert auf jedes Ereignis, nicht auf steigende oder fallende Flanken eines digitalen Signals.
- Hinweis im Quelltext – die häufige Ausgabe des
Q.E1-Ereignisses kann bei zeitkritischen Anwendungen zu unnötigen Lasten führen; ggf. ist eine Filterung erforderlich.
Zustandsübersicht¶
Der Funktionsblock besitzt einen einzigen internen Zustand: den aktuellen Zählerstand (Initialwert = 0). Abhängig von den eingehenden Ereignissen ergeben sich folgende Zustandsübergänge:
| Ereignis | Bedingung | Neuer Zustand (Zähler) | Ausgabe |
|---|---|---|---|
CU |
– | Zähler + 1 | CNF, Q.E1, CV |
R |
– | 0 | CNF, Q.E1, CV |
PV |
– | unverändert | CNF, Q.E1, CV (PV-Wert wird intern gespeichert) |
Der Ausgang Q (über den Adapter) wird gesetzt, sobald Zähler ≥ PV ist. Der aktuelle Wert von Q wird bei jeder Ausgabe mitgeliefert.
Anwendungsszenarien¶
- Ereigniszählung – Zählen von Impulsen, z. B. Teiledurchlauf, Maschinenzyklen.
- Füllstandüberwachung – Erfassen der Anzahl von Behältern oder Chargen.
- Produktionssteuerung – Auslösen einer Aktion, wenn eine bestimmte Stückzahl erreicht ist.
- Zeitmessung – in Kombination mit einem Impulsgeber kann die Anzahl der Impulse als Zeitmaß genutzt werden.
- Adapter-basierte Automatisierungssysteme – überall dort, wo eine einheitliche Adapter-Schnittstelle gefordert ist.
Vergleich mit ähnlichen Bausteinen¶
| Baustein | Eigenschaften |
|---|---|
CTU (Standard, ohne Adapter) |
Gleiche Zählfunktion, aber mit direkten Ereignis- und Dateneingängen/-ausgängen. Einfacher in klassischen IEC‑61499-Netzwerken nutzbar. |
ADI_FB_CTUD |
Auf-/Abwärtszähler, ebenfalls Adapter-basiert. Bietet zusätzlich einen Abwärtszähleingang. |
FB_CTU_DINT (intern) |
Dieselbe Zähllogik, jedoch ohne Adapterkapselung. Die Adapterversion bietet eine einheitliche, modulare Schnittstelle. |
CTU mit AX-Filter |
Wenn eine Flankenauswertung erforderlich ist, kann durch Vorschalten eines AX_D_FF eine reine Änderungserkennung realisiert werden. |
Der ADI_FB_CTU ist als „Wrapper“ für den Standardzähler konzipiert und erleichtert die Wiederverwendung in Adapter-basierten Frameworks.
Fazit¶
Der ADI_FB_CTU ist ein flexibler, adapterbasierter Aufwärtszähler für DINT-Werte. Er kapselt die bewährte Zähllogik des FB_CTU_DINT und stellt sie über standardisierte Adapter (AX und ADI) bereit. Die Besonderheit, dass Ausgangsereignisse bei jeder Aktualisierung generiert werden, sollte bei der Systemauslegung berücksichtigt werden. Der Baustein eignet sich hervorragend für modulare, erweiterbare Automatisierungslösungen, in denen eine einheitliche Adapter-Schnittstelle gefordert wird.