Uebung_080e4: Beispiel für E_CTU mit Eventbremse durch E_D_FF_ANY¶
Einleitung¶
Diese Übung demonstriert den Einsatz eines E_CTU (Event-Zählers) in Kombination mit einer Eventbremse, realisiert durch einen E_D_FF_ANY (E_D_FlipFlop mit Hysterese und Minimalzeit). Ziel ist es, das Zählergebnis nur dann an eine numerische Ausgabe weiterzuleiten, wenn der Zählwert für eine bestimmte Zeit stabil ist. Dadurch werden Prellen oder kurzzeitige Änderungen unterdrückt.
Verwendete Funktionsbausteine (FBs)¶
| Bausteinname | Typ | Parameter / Bemerkung |
|---|---|---|
DigitalInput_CLK_I1 |
logiBUS::io::DI::logiBUS_IE |
Input = Input_I1, InputEvent = BUTTON_SINGLE_CLICK |
DigitalInput_CLK_I2 |
logiBUS::io::DI::logiBUS_IE |
Input = Input_I2, InputEvent = BUTTON_SINGLE_CLICK |
E_CYCLE |
iec61499::events::E_CYCLE |
DT = T#1ms (Taktgeber für Zählimpulse) |
E_CTU |
iec61499::events::E_CTU |
PV = UINT#5 (Zählschwelle) |
E_SPLIT_4 |
iec61499::events::E_SPLIT_4 |
Verteilt ein Ereignis auf vier Ausgänge |
E_MERGE_4 |
iec61499::events::E_MERGE_4 |
Sammelt Ereignisse von vier Eingängen zu einem Ausgang |
E_D_FF_ANY |
logiBUS::signalprocessing::hysteresis::E_D_FF_ANY_HYS_TMIN |
HYSTERESIS = UINT#25, Tmin = T#1s (Hysterese und Mindestzeit für stabilen Zustand) |
E_D_FF |
iec61499::events::E_D_FF |
Standard-D-Flipflop für binäre Ausgabe |
Q_NumericValue |
isobus::UT::Q::Q_NumericValue |
u16ObjId = OutputNumber_N1 (Ausgabe eines numerischen Wertes) |
DigitalOutput_Q1 |
logiBUS::io::DQ::logiBUS_QX |
Output = Output_Q1 (digitaler Ausgang) |
Programmablauf und Verbindungen¶
Ereignis- und Datenfluss¶
-
Zählimpulse generieren
Der TaktgeberE_CYCLEwird gestartet, sobaldDigitalInput_CLK_I1ein Ereignis (IND) sendet. Stoppt wird er durch ein Ereignis vonDigitalInput_CLK_I2.
Der zyklische EreignisausgangEOvonE_CYCLEtriggert den ZähleingangCUvonE_CTU. -
Zähler rücksetzen
Ein Ereignis vonDigitalInput_CLK_I2wird zusätzlich an den Reset-EingangRvonE_CTUgeleitet. -
Zählerausgänge
Der Zähler gibt zwei Ereignisse aus: CUO(Counter Overflow) – wird aktiv, wenn der ZählerstandCVden ParameterPV(hier 5) erreicht.-
RO(Reset Overflow) – wird aktiv, wenn der Zähler zurückgesetzt wird und dabei den Bereich übersteigt (hier nicht relevant, aber beide Ereignisse werden verwendet). -
Ereignisverteilung und -zusammenführung
CUOundROwerden gemeinsam auf den EingangEIvonE_SPLIT_4geschaltet.
E_SPLIT_4verteilt jedes ankommende Ereignis auf alle vier AusgängeEO1…EO4. Diese vier Ausgänge sind mit den vier EingängenEI1…EI4vonE_MERGE_4verbunden.
Effekt: Jedes Ereignis vonE_CTU(egal obCUOoderRO) wird sofort an den AusgangEOvonE_MERGE_4weitergegeben – es entsteht eine logische ODER-Verknüpfung der beiden Ereignisse. -
Eventbremse durch
E_D_FF_ANY
Das zusammengeführte Ereignis speist den TaktingangCLKvonE_D_FF_ANY. Dieser Baustein übernimmt den DatenwertD(den aktuellen ZählerstandCV) nur dann an den AusgangQ, wenn der Wert für mindestensTmin = 1sstabil bleibt (Hysterese von25Einheiten).
Dadurch werden kurze Spitzen auf dem Zählerstand gefiltert. -
Numerische Ausgabe
Der stabile ZählerstandQvonE_D_FF_ANYwird über die Datenverbindung an den Eingangu32NewValuevonQ_NumericValueübergeben. Das EreignisEOvonE_D_FF_ANYtriggert die Ausgabe über denREQ-Eingang. -
Digitaler Ausgang
Parallel dazu wird das gleiche zusammengeführte Ereignis vonE_MERGE_4auch an den TaktingangCLKeines normalenE_D_FFgeleitet. Dieser übernimmt den binären DatenwertQvonE_CTU(den Zählerstatus: ob Schwelle erreicht) und gibt ihn überEOanDigitalOutput_Q1weiter.
Der AusgangDigitalOutput_Q1schaltet also immer dann ein, wenn der Zähler gerade seinen Endwert erreicht oder zurückgesetzt wird.
Lernziele¶
- Verständnis von E_CTU (Event Counter) und seinen Ereignisausgängen
CUOundRO. - Einsatz von E_SPLIT_4 und E_MERGE_4 zur Ereignissteuerung.
- Anwendung eines E_D_FF_ANY mit Hysterese und Mindestzeit zur Unterdrückung kurzzeitiger Änderungen (Eventbremse).
- Zusammenspiel von numerischen und digitalen Ausgaben basierend auf Zählerereignissen.
Schwierigkeitsgrad¶
Fortgeschritten – Grundkenntnisse in 4diac-IDE und IEC 61499 Ereignis-/Datenflüssen werden vorausgesetzt.
Benötigte Vorkenntnisse¶
- Grundlagen der 4diac-IDE: Erstellen von Subapplikationen, Verbinden von Bausteinen.
- Verständnis von Ereignis- und Datenkanten.
- Umgang mit logiBUS- bzw. isobus-Bibliotheken (bei Verwendung der Hardware-Simulation).
Starten der Übung¶
- Importieren Sie die Subapplikation
Uebung_080e4in Ihr 4diac-Projekt. - Stellen Sie sicher, dass die benötigten Bibliotheken (
logiBUS,iec61499,isobus) verfügbar sind. - Weisen Sie die Ein-/Ausgänge
Input_I1,Input_I2,Output_Q1undOutputNumber_N1passenden Hardware- oder Simulationsadressen zu. - Starten Sie die Ausführung und beobachten Sie das Verhalten beim Drücken der Taster (I1 Takt starten/stoppen, I2 Reset).
Zusammenfassung¶
Die Übung veranschaulicht, wie ein E_CTU mit Hilfe von E_D_FF_ANY und E_D_FF sowohl einen stabilisierten Zählwert als auch einen sofortigen Binärstatus ausgeben kann. Die Ereignisverarbeitung über Split/Merge sorgt dafür, dass sowohl Überlauf- als auch Rücksetzereignisse gleichberechtigt behandelt werden. Dies ist typisch für Anwendungen, bei denen ein Zählerwert erst nach einer gewissen Beruhigungszeit weiterverarbeitet werden soll (z. B. Entprellung von Sensordaten).