Uebung_216b_ALR: Standard IEC 61131-3 ADI_FB_CTD (Adapter Version, DINT) mit Terminal-Ausgabe (PHYS)¶
Einleitung¶
Die Übung Uebung_216b_ALR realisiert einen Abwärtszähler (Counter Down) gemäß IEC 61131-3 unter Verwendung eines Adapter-basierten Funktionsbausteins ADI_FB_CTD. Der Zählerwert wird über eine Adapter-Wandlungskette auf ein alphanumerisches Terminal (PHYS) ausgegeben. Zusätzlich wird ein digitaler Ausgang gesetzt, wenn der Zählerstand Null erreicht. Die Übung veranschaulicht die Integration von logiBUS‑Eingängen, Adapter-Konvertierungen und Terminal-Ausgabe in einer kompakten Subapplikation.
Verwendete Funktionsbausteine (FBs)¶
Interne Funktionsbausteine¶
-
ADI_FB_CTD (Typ:
adapter::iec61131::counters::ADI_FB_CTD)- Beschreibung: Adapter-Version eines IEC 61131‑3 Abwärtszählers (CTD). Der Baustein zählt bei jedem fallenden Flanke am Ereigniseingang
CDden aktuellen Wert (CV) um 1 herunter. Der Preset-Wert wird über den Adapter-EingangPVgeladen, sobald der EingangLDaktiviert wird. Der AusgangQwird gesetzt, sobaldCVden Wert 0 erreicht. - Parameter: (keine expliziten Parameter gesetzt – verwendet Standardwerte)
- Ereignis-/Datenschnittstellen:
- Ereigniseingang:
CD(Count Down),LD(Load) - Adapter-Dateneingang:
PV(Preset Value, DINT) - Adapter-Datenausgang:
CV(Current Value, DINT),Q(BOOL)
- Ereigniseingang:
- Beschreibung: Adapter-Version eines IEC 61131‑3 Abwärtszählers (CTD). Der Baustein zählt bei jedem fallenden Flanke am Ereigniseingang
-
ADI_DINT_TO_DI (Typ:
adapter::conversion::unidirectional::ADI_DINT_TO_DI)- Beschreibung: Wandelt einen DINT-Wert in einen Adapter-Dateneingang (DI) um. Hier wird ein fester Preset-Wert von DINT#10 bereitgestellt.
- Parameter:
OUT= DINT#10 - Ereignis-/Datenschnittstellen:
- Ereigniseingang:
REQ(Trigger zur Ausgabe) - Adapter-Datenausgang:
ADI_OUT(DINT)
- Ereigniseingang:
-
Input_CD (Typ:
logiBUS::io::DI::logiBUS_IXA)- Beschreibung: Digitaler Eingangsbaustein für logiBUS, der das Signal des physischen Eingangs
Input_I1bereitstellt. - Parameter:
QI= TRUE (Qualifier),Input= Input_I1 - Adapter-Ausgang:
IN(digitale Information)
- Beschreibung: Digitaler Eingangsbaustein für logiBUS, der das Signal des physischen Eingangs
-
Input_LD (Typ:
logiBUS::io::DI::logiBUS_IXA)- Beschreibung: Digitaler Eingangsbaustein für logiBUS, der das Signal des physischen Eingangs
Input_I2bereitstellt. - Parameter:
QI= TRUE,Input= Input_I2 - Adapter-Ausgang:
IN - Ereignisausgang:
INITO(wird bei Initialisierung ausgelöst)
- Beschreibung: Digitaler Eingangsbaustein für logiBUS, der das Signal des physischen Eingangs
-
Output_Q1 (Typ:
logiBUS::io::DQ::logiBUS_QXA)- Beschreibung: Digitaler Ausgangsbaustein für logiBUS, der den physischen Ausgang
Output_Q1ansteuert. - Parameter:
QI= TRUE,Output= Output_Q1 - Adapter-Eingang:
OUT(digitale Information)
- Beschreibung: Digitaler Ausgangsbaustein für logiBUS, der den physischen Ausgang
-
ADI_TO_ALR (Typ:
adapter::conversion::unidirectional::ADI_TO_ALR)- Beschreibung: Wandelt einen Adapter-Datenwert (DINT) in ein alphanumerisches Format (ALR) um, das für die Terminalausgabe geeignet ist.
- Keine Parameter gesetzt.
- Schnittstellen:
- Adapter-Eingang:
ADI_IN(DINT) - Adapter-Ausgang:
ALR_OUT(ALR)
- Adapter-Eingang:
-
Q_NumericValue_PHYSA_LREAL (Typ:
isobus::UT::Q::Q_NumericValue_PHYSA_LREAL)- Beschreibung: Gibt einen numerischen Wert (als LREAL interpretiert) auf einem physischen Terminal aus. Der Wert wird vom angeschlossenen
stObj(hierOutputNumber_N3) dargestellt. - Parameter:
stObj= OutputNumber_N3 (Referenz auf ein Terminal-Objekt) - Adapter-Eingang:
lrPhys(physikalischer Wert als LREAL)
- Beschreibung: Gibt einen numerischen Wert (als LREAL interpretiert) auf einem physischen Terminal aus. Der Wert wird vom angeschlossenen
Programmablauf und Verbindungen¶
- Initialisierung: Beim Start der Subapplikation wird der Baustein
Input_LDaktiv und löst das EreignisINITOaus. Dieses Ereignis triggertADI_DINT_TO_DI.REQ, sodass der Preset-Wert (DINT#10) am AdapterausgangADI_OUTanliegt. - Preset laden: Der Preset-Wert wird über die Adapterverbindung an den Eingang
PVdes ZählersADI_FB_CTDübergeben. Gleichzeitig wird durch das EreignisINITOder Lade-EingangLDdes Zählers aktiviert? (Die EreignisverbindungInput_LD.INITOgeht nur anADI_DINT_TO_DI.REQ, nicht direkt an den Zähler. Allerdings istInput_LD.INmitADI_FB_CTD.LDverbunden – diese Verbindung ist als Adapterverbindung ausgeführt und überträgt das digitale Signal. Die Initialisierung vonInput_LDsetzt vermutlich den EingangLDauf TRUE, sodass der Zähler den Preset lädt.) - Zählbetrieb: Der digitale Eingang
Input_CD(Pin I1) führt dem Zähler über den AdaptereingangCDdie Zählimpulse zu. Bei jeder fallenden Flanke (bzw. gemäß Definition des Adapters) verringert der Zähler den aktuellen WertCVum 1. - Ausgangsstatus: Sobald
CVauf 0 gefallen ist, setzt der Zähler den AusgangQauf TRUE. Dieser wird überOutput_Q1an den physischen Ausgang Q1 weitergegeben. - Terminalausgabe: Der aktuelle Zählerstand (
CV) wird über den AdapterADI_TO_ALRin ein alphanumerisches Format gewandelt und an den TerminalbausteinQ_NumericValue_PHYSA_LREALübergeben. Dieser gibt den Wert auf dem konfigurierten TerminalOutputNumber_N3aus. Beachte den Kommentar: Hier sind auch negative Werte möglich (durch Überlauf des Zählers unter 0). - Hinweise: Der Kommentar schlägt vor, ggf. einen
AX_D_FF(FlipFlop) einzubauen, um die Ereignisrate zu reduzieren. Dies wäre bei sehr schnellen Zählimpulsen sinnvoll, um die Terminalausgabe zu entlasten.
Verbindungsübersicht (Adapterverbindungen)¶
| Von (Quelle) | Nach (Ziel) | Bemerkung |
|---|---|---|
Input_CD.IN |
ADI_FB_CTD.CD |
Zählimpulse |
Input_LD.IN |
ADI_FB_CTD.LD |
Ladesignal |
ADI_FB_CTD.Q |
Output_Q1.OUT |
Ausgangsstatus (CV=0) |
ADI_FB_CTD.CV |
ADI_TO_ALR.ADI_IN |
aktueller Zählerstand |
ADI_TO_ALR.ALR_OUT |
Q_NumericValue_PHYSA_LREAL.lrPhys |
Terminalausgabe |
ADI_DINT_TO_DI.ADI_OUT |
ADI_FB_CTD.PV |
Preset-Wert |
Ereignisverbindung:
- Input_LD.INITO → ADI_DINT_TO_DI.REQ
Zusammenfassung¶
Die Übung demonstriert den Einsatz eines IEC-61131-3‑Abwärtszählers in einer Adapter-basierten Umgebung. Durch die Kombination von logiBUS-Ein-/Ausgängen, einer DINT-Konvertierung und einer alphanumerischen Terminalausgabe wird ein vollständiger, praxisnaher Zählerkreislauf abgebildet. Der Benutzer lernt, Adapterverbindungen zu verschalten und Ereignissteuerungen zu nutzen. Ein besonderer Fokus liegt auf der korrekten Initialisierung des Preset-Werts und der Ausgabe des Zählerstands (auch negativer Werte) auf einem Terminal.