# E\_CTD ```{index} single: E\_CTD ``` ## 🎧 Podcast ![E_CTD_ecc](./E_CTD_ecc.svg) * [E_CTD: Ereignisgesteuerter AbwĂ€rtszĂ€hler nach IEC 61499](https://podcasters.spotify.com/pod/show/iec-61499-grundkurs-de/episodes/E_CTD-Ereignisgesteuerter-Abwrtszhler-nach-IEC-61499-e368lli) ## Einleitung Der **E_CTD** (Event-Driven Down Counter) ist ein ereignisgesteuerter AbwĂ€rtszĂ€hler nach dem IEC 61499-Standard. Dieser Funktionsbaustein wird in industriellen Steuerungssystemen eingesetzt, um ZĂ€hlvorgĂ€nge zu realisieren, die durch Ereignisse gesteuert werden. ![E_CTD](E_CTD.svg) ## Struktur des E_CTD-Bausteins ### Schnittstelle (Interface) **Eingangsereignisse (Event Inputs):** - **CD (Count Down):** Löst einen ZĂ€hlschritt aus, der den ZĂ€hlerstand dekrementiert. - **LD (Load):** LĂ€dt den Startwert `PV` in den ZĂ€hler. **Ausgangsereignisse (Event Outputs):** - **CDO (Count Down Output):** BestĂ€tigt einen ZĂ€hlschritt. Wird nach jedem `CD`-Ereignis ausgelöst, solange der ZĂ€hlerstand grĂ¶ĂŸer als 0 war. - **Verbundene Daten**: `Q`, `CV` - **LDO (Load Output):** BestĂ€tigt das erfolgreiche Laden eines neuen ZĂ€hlerwerts. - **Verbundene Daten**: `Q`, `CV` **Eingangsvariablen (Input Variables):** - **PV (Preset Value):** Der Startwert, der bei einem LD-Ereignis geladen wird (Datentyp: `UINT`). **Ausgangsvariablen (Output Variables):** - **Q (Status):** Ausgangs-Flag, das `TRUE` wird, wenn der ZĂ€hlerstand `CV` den Wert 0 erreicht (Datentyp: `BOOL`). - **CV (Counter Value):** Der aktuelle ZĂ€hlerstand (Datentyp: `UINT`). ## Verhalten des E_CTD-Bausteins 1. **Initialisierung/Laden:** - Wenn ein **LD**-Ereignis eintritt, wird der ZĂ€hlerstand `CV` auf den Wert von **PV** gesetzt. - Das Ausgangs-Flag `Q` wird basierend auf der Bedingung `CV = 0` aktualisiert. - Das **LDO**-Ereignis wird ausgelöst und gibt den neuen ZĂ€hlerstand `CV` und das Flag `Q` aus. 2. **AbwĂ€rtszĂ€hlen:** - Bei jedem **CD**-Ereignis wird der ZĂ€hlerstand **CV**, sofern er grĂ¶ĂŸer als 0 ist, um 1 verringert. - Danach wird das Ausgangs-Flag `Q` basierend auf der neuen Bedingung `CV = 0` aktualisiert. - Das **CDO**-Ereignis wird ausgelöst und gibt den aktuellen ZĂ€hlerstand `CV` und das Flag `Q` aus. 3. **Neuladen des ZĂ€hlers:** - Ein erneutes **LD**-Ereignis setzt **CV** jederzeit zurĂŒck auf **PV** und löst **LDO** aus. ## Technische Besonderheiten - **Ereignisgesteuert:** Der Baustein arbeitet ausschließlich auf Basis von Ereignissen und benötigt keinen zyklischen Aufruf. - **Flexible Initialisierung:** Der Startwert **PV** kann jederzeit durch ein **LD**-Ereignis geĂ€ndert werden. ## Anwendungsbeispiele - **Produktionslinien:** ZĂ€hlen von produzierten Einheiten. - **Verpackungsmaschinen:** Steuerung von FĂŒllvorgĂ€ngen. - **Energiemanagement:** Überwachung von Verbrauchszyklen. ## ⚖ Vergleich mit Ă€hnlichen Bausteinen | Feature | E_CTD | E_CTU (Up Counter) | E_CTUD (Up/Down Counter) | |------------------|-------------------|--------------------|--------------------------| | ZĂ€hlrichtung | AbwĂ€rts | AufwĂ€rts | Beides | | Ereignisgesteuert| Ja | Ja | Ja | | Reset-Funktion | LD (Neuladen) | R (Reset) | R (Reset) | ## đŸ› ïž Zugehörige Übungen * [Uebung_081](../../../training1/Ventilsteuerung/4diacIDE-workspace/test_B/Uebungen_doc/Uebung_081.md) ## Fazit Der **E_CTD**-Baustein ist ein wesentliches Element in der IEC 61499, das eine zuverlĂ€ssige und flexible ZĂ€hlfunktion fĂŒr industrielle Steuerungen bietet. Seine ereignisgesteuerte Natur macht ihn besonders geeignet fĂŒr verteilte Systeme, wo zyklische Abfragen nicht praktikabel sind. Durch die klare Schnittstelle und das intuitive Verhalten ist er einfach in bestehende Steuerungskonzepte zu integrieren.