# E_CTUD ## 🎧 Podcast ![E_CTUD_ecc](./E_CTUD_ecc.svg) * [E_CTUD: Bidirektionaler ZĂ€hler in IEC 61499 Systemen](https://podcasters.spotify.com/pod/show/iec-61499-grundkurs-de/episodes/E_CTUD-Bidirektionaler-Zhler-in-IEC-61499-Systemen-e368lmb) ---- ```{index} single: E_CTUD ``` E_CTUD * * * * * * * * * * ## Einleitung Der `E_CTUD` (Event-Driven Up-Down Counter) ist ein ereignisgesteuerter Vor- und RĂŒckwĂ€rtszĂ€hler gemĂ€ĂŸ dem IEC 61499-Standard. Er kann einen ZĂ€hlerwert basierend auf separaten Ereignissen inkrementieren, dekrementieren, zurĂŒcksetzen oder mit einem vordefinierten Wert laden. Dies macht ihn zu einem flexiblen und leistungsstarken Baustein fĂŒr eine Vielzahl von ZĂ€hlanwendungen. ![E_CTUD](E_CTUD.svg) ## Schnittstellenstruktur ### **Ereignis-EingĂ€nge** - **CU (Count Up)**: Löst ein AufwĂ€rtszĂ€hlen aus. - **Verbundene Daten**: `PV` - **CD (Count Down)**: Löst ein AbwĂ€rtszĂ€hlen aus. - **R (Reset)**: Setzt den ZĂ€hler auf 0 zurĂŒck. - **LD (Load)**: LĂ€dt einen neuen Wert in den ZĂ€hler. - **Verbundene Daten**: `PV` ### **Ereignis-AusgĂ€nge** - **CO (Count Output)**: BestĂ€tigt eine ZĂ€hloperation (`CU` oder `CD`). - **Verbundene Daten**: `QU`, `CV`, `QD` - **RO (Reset Output)**: BestĂ€tigt das ZurĂŒcksetzen des ZĂ€hlers. - **Verbundene Daten**: `QU`, `CV`, `QD` - **LDO (Load Output)**: BestĂ€tigt das Laden eines neuen ZĂ€hlerwertes. - **Verbundene Daten**: `QU`, `CV`, `QD` ### **Daten-EingĂ€nge** - **PV (Preset Value)**: Der Grenzwert fĂŒr `QU` bzw. der zu ladende Wert fĂŒr `LD` (Datentyp: `UINT`). ### **Daten-AusgĂ€nge** - **QU (Status Up)**: Ausgangs-Flag, das `TRUE` wird, wenn `CV >= PV` (Datentyp: `BOOL`). - **QD (Status Down)**: Ausgangs-Flag, das `TRUE` wird, wenn `CV = 0` (Datentyp: `BOOL`). - **CV (Counter Value)**: Der aktuelle ZĂ€hlerstand (Datentyp: `UINT`). ## Funktionsweise Der `E_CTUD` reagiert auf vier verschiedene Ereignisse: 1. **AufwĂ€rtszĂ€hlen (CU)**: Wenn ein `CU`-Ereignis eintritt und `CV` kleiner als der Maximalwert (65535) ist, wird `CV` um 1 erhöht. Anschließend wird das `CO`-Ereignis ausgelöst. 2. **AbwĂ€rtszĂ€hlen (CD)**: Wenn ein `CD`-Ereignis eintritt und `CV` grĂ¶ĂŸer als 0 ist, wird `CV` um 1 verringert. Anschließend wird das `CO`-Ereignis ausgelöst. 3. **ZurĂŒcksetzen (R)**: Wenn ein `R`-Ereignis eintritt, wird `CV` auf 0 gesetzt. Anschließend wird das `RO`-Ereignis ausgelöst. 4. **Laden (LD)**: Wenn ein `LD`-Ereignis eintritt, wird `CV` auf den Wert von `PV` gesetzt. Anschließend wird das `LDO`-Ereignis ausgelöst. Nach jeder dieser Aktionen werden die Status-Flags `QU` und `QD` basierend auf dem neuen Wert von `CV` aktualisiert (`QU = (CV >= PV)` und `QD = (CV == 0)`). Die jeweiligen Ausgangsereignisse (`CO`, `RO`, `LDO`) geben dann den aktuellen ZĂ€hlerstand `CV` und die beiden Status-Flags aus. ## Technische Besonderheiten - **Bidirektionale ZĂ€hlung**: Der Baustein beherrscht das Auf- und AbwĂ€rtszĂ€hlen in einem Block. - **Umfassende Steuerung**: Bietet neben dem ZĂ€hlen auch Funktionen zum expliziten Laden und ZurĂŒcksetzen. - **Zwei StatusausgĂ€nge**: `QU` signalisiert das Erreichen des oberen Grenzwertes, `QD` das Erreichen des unteren Grenzwertes (0). - **Über- und Unterlaufschutz**: ZĂ€hloperationen werden nur innerhalb der gĂŒltigen Grenzen (0 bis 65535) ausgefĂŒhrt. ## Anwendungsszenarien - **Positionserfassung**: ZĂ€hlen von Inkrementalgeber-Schritten in beide Richtungen. - **FĂŒllstandsregelung**: Erfassen von Zu- und AbflĂŒssen in einem Tank. - **Lagerplatzverwaltung**: ZĂ€hlen von ein- und ausgelagerten Paletten. ## ⚖ Vergleich mit Ă€hnlichen Bausteinen | Merkmal | E_CTUD (Up/Down) | E_CTU (Up) | E_CTD (Down) | |--------------|------------------|-----------------|------------------| | ZĂ€hlrichtung | Auf & Ab | Nur Auf | Nur Ab | | Reset (auf 0)| Ja (`R`) | Ja (`R`) | Nein | | Laden (auf PV)| Ja (`LD`) | Nein | Ja (`LD`) | | Status Oben | `QU` (`CV >= PV`)| `Q` (`CV >= PV`)| Nein | | Status Unten | `QD` (`CV = 0`) | Nein | `Q` (`CV = 0`) | ## đŸ› ïž Zugehörige Übungen * [Uebung_082](../../../training1/Ventilsteuerung/4diacIDE-workspace/test_B/Uebungen_doc/Uebung_082.md) ## Fazit Der `E_CTUD` ist ein universeller ZĂ€hlerbaustein, der die FunktionalitĂ€t eines reinen AufwĂ€rts- und AbwĂ€rtszĂ€hlers kombiniert und erweitert. Durch seine vier Steuerereignisse (`CU`, `CD`, `R`, `LD`) und die beiden StatusausgĂ€nge (`QU`, `QD`) bietet er maximale FlexibilitĂ€t fĂŒr komplexe ZĂ€hl- und Überwachungsaufgaben in der industriellen Automatisierung.