Uebung_213c: Standard IEC 61131-3 FB_CTU_UDINT (Vorwärtszähler, UDINT) mit Terminal-Ausgabe (PHYS_LREAL)¶
Einleitung¶
Diese Übung realisiert einen Vorwärtszähler nach IEC 61131-3 (FB_CTU_UDINT) mit einer Zählgrenze von 31. Der Zählerstand wird zyklisch aktualisiert und über einen Multiplexer auf eine numerische Terminalausgabe (PHYS_LREAL) übertragen. Zusätzlich wird ein animiertes Objekt („Pferd“) über Ein-/Ausblenden gesteuert. Die Übung veranschaulicht die Kombination von IEC 61131-3 Funktionsbausteinen mit ereignisgesteuerter 4diac-Logik und Terminalausgabe.
Verwendete Funktionsbausteine (FBs)¶
Sub-Bausteine: FB_CTU_UDINT¶
- Typ:
iec61131::counters::FB_CTU_UDINT - Verwendete interne FBs: (Standard IEC 61131-3, keine weiteren Unterbausteine)
- Parameter:
PV=UDINT#31(Zählgrenze)
- Funktionsweise:
Der Baustein zählt bei jedem positiven Flanke am EingangCUden aktuellen ZählerstandCV(UDINT) hoch. ErreichtCVden WertPV, wird der AusgangQgesetzt. Der Zähler kann über den EingangRzurückgesetzt werden.
Sub-Bausteine: START¶
- Typ:
logiBUS::io::DI::logiBUS_IE - Parameter:
QI=TRUEInput=Input_I1(physischer Eingang I1)InputEvent=BUTTON_SINGLE_CLICK
- Funktionsweise:
Erzeugt bei Betätigung des Tasters I1 (Einfachklick) ein EreignisIND, das den Zyklusstart und das Einblenden des Objekts auslöst.
Sub-Bausteine: STOP¶
- Typ:
logiBUS::io::DI::logiBUS_IE - Parameter:
QI=TRUEInput=Input_I2InputEvent=BUTTON_SINGLE_CLICK
- Funktionsweise:
Erzeugt bei Betätigung des Tasters I2 ein EreignisIND, das den zyklischen Timer anhält.
Sub-Bausteine: E_CYCLE¶
- Typ:
iec61499::events::E_CYCLE - Parameter:
DT=T#100ms(Zykluszeit 100 ms)
- Funktionsweise:
Ein zyklischer Ereignisgenerator. MitSTARTwird der Zyklus gestartet, mitSTOPangehalten. Das AusgangsereignisEOtritt alle 100 ms auf.
Sub-Bausteine: E_T_FF¶
- Typ:
iec61499::events::E_T_FF - Funktionsweise:
Ein T-Flipflop (Toggle-Flipflop). Jedes Ereignis am TakteingangCLKändert den Zustand des AusgangsQ. Hier wird aus dem 100‑ms-Takt ein 200‑ms‑Takt (wenn Q=1) erzeugt, um den ZählimpulsCUzu generieren.
Sub-Bausteine: E_PERMIT¶
- Typ:
iec61499::events::E_PERMIT - Funktionsweise:
Ein Freigabebaustein. Er leitet ein Ereignis vonEInachEOnur dann weiter, wenn der EingangPERMITTRUEist. Hier wird die Datenausgabe nur freigegeben, wenn der Zähler seinen Endwert erreicht hat (Q=1).
Sub-Bausteine: F_MUX_32¶
- Typ:
iec61131::selection::F_MUX_32 - Parameter:
IN1…IN32=frame_00…frame_31(32 vordefinierte Konstanten)
- Funktionsweise:
Ein 32‑Kanal-Multiplexer. Der AusgangOUTentspricht dem EingangIN(K), wobeiKder Auswahlwert (UDINT) ist. Hier wird der aktuelle ZählerstandCVals Auswahl verwendet, um das entsprechende Frame für die Animation auszuwählen.
Sub-Bausteine: Q_NumericValue¶
- Typ:
isobus::UT::Q::Q_NumericValue - Parameter:
u16ObjId=ObjectPointer_Horse
- Funktionsweise:
Schreibt den am Eingangu32NewValueanliegenden Wert in ein Terminal-Display-Objekt. Der Wert wird als physikalische LREAL-Größe dargestellt.
Sub-Bausteine: Q_ObjHideShow¶
- Typ:
isobus::UT::Q::Q_ObjHideShow - Parameter:
u16ObjId=Container_HorseqVisible=BYTE#1(sichtbar)
- Funktionsweise:
Blendet ein Grafik-Container-Objekt ein (beiREQwird es sichtbar). Dieses Objekt enthält vermutlich die animierte Pferdegrafik.
Programmablauf und Verbindungen¶
- Start: Ein Druck auf Taster I1 erzeugt das Ereignis
START.IND. Dieses startet den zyklischen TimerE_CYCLEund blendet gleichzeitig das ObjektContainer_HorseüberQ_ObjHideShowein. - Zyklischer Takt:
E_CYCLEerzeugt alle 100 ms ein EreignisEO. Dieses taktet das T‑FlipflopE_T_FF, dessen AusgangQwechselt bei jedem zweiten Ereignis seinen Zustand. Dadurch entsteht ein 200‑ms‑Takt am Ausgang des Flipflops. - Zählung: Der Ausgang
E_T_FF.Qist mit dem ZähleingangCUvonFB_CTU_UDINTverbunden. Bei jeder positiven Flanke (Wechsel von 0 auf 1) erhöht der ZählerCVum 1. - Rücksetzen: Sobald der Zähler seinen Endwert 31 erreicht hat, wird
Qgesetzt. Dieser Zustand wird auf den RücksetzeingangRzurückgeführt und an den FreigabeeingangE_PERMIT.PERMITgelegt. Dadurch wird der Zähler automatisch zurückgesetzt und gleichzeitig die weitere Verarbeitung freigegeben. - Datenauswahl: Der aktuelle Zählerstand
CV(vor dem Rücksetzen) wird als AuswahlKan den MultiplexerF_MUX_32gelegt. Der Multiplexer wählt das entsprechendeframe_xxaus (0 … 31). - Terminalausgabe: Das vom Multiplexer gelieferte
frame_xxwird an den Numeric-Wert-AusgabebausteinQ_NumericValueübergeben und auf dem angeschlossenen Terminal dargestellt (z. B. als Zeichen oder Grafik). - Stopp: Ein Druck auf Taster I2 erzeugt
STOP.IND, das den TimerE_CYCLEanhält. Zählung und Ausgabe werden gestoppt.
Lernziele:
- Anwendung des IEC 61131‑3 Zählers FB_CTU_UDINT in einer 4diac-Umgebung.
- Kombination von ereignisgesteuerten Bausteinen (E_CYCLE, E_T_FF, E_PERMIT) mit datenflussorientierten Bausteinen (F_MUX_32, Q_NumericValue).
- Steuerung eines animierten Objekts über Taster, zyklischen Timer und Zähler.
Schwierigkeitsgrad: Mittel
Vorkenntnisse: Grundlagen der IEC 61499 Ereignissteuerung, IEC 61131‑3 Zählerfunktionen.
Zusammenfassung¶
Die Übung Uebung_213c führt einen Vorwärtszähler mit automatischem Reset bei Erreichen der Grenze 31 aus. Ein zyklischer Timer (100 ms) erzeugt über ein T‑Flipflop einen 200‑ms‑Takt für die Zählimpulse. Der Zählerstand wird über einen Multiplexer in ein numerisches Terminalformat umgesetzt und angezeigt. Zusätzlich steuern zwei Taster den Start/Stopp der gesamten Animation. Die Übung zeigt anschaulich die Integration von IEC 61131‑3 Zählerlogik in ein ereignisgesteuertes 4diac‑System mit grafischer Ausgabe.