Uebung_216_ADI: Standard IEC 61131-3 ADI_FB_CTD (Adapter Version, Rückwärtszähler, DINT) mit Terminal-Ausgabe¶
Einleitung¶
Diese Übung realisiert einen Rückwärtszähler (Count Down) nach IEC 61131-3 auf Basis des Adapter-Funktionsbausteins ADI_FB_CTD. Der Zähler arbeitet mit dem Datentyp DINT und gibt den aktuellen Zählerstand sowie das Zählerende-Signal aus. Zur Visualisierung des Zählerstands wird der Wert über einen Terminal-Baustein ausgegeben, wobei eine Adapter-Konvertierung notwendig ist.
Die Übung zeigt den Einsatz von Adapter-Schnittstellen zur Verbindung verschiedener Funktionsbausteine sowie die Grenzen der verwendeten Konvertierung.
Verwendete Funktionsbausteine (FBs)¶
ADI_FB_CTD¶
- Typ:
adapter::iec61131::counters::ADI_FB_CTD - Parameter: keine
- Funktion: IEC 61131-3 Rückwärtszähler (CTD). Zählt bei jedem positiven Flanke am Eingang
CDden aktuellen Wert (PV) herunter. Bei Erreichen von Null wird der AusgangQgesetzt. Über den EingangLDwird der Zähler mit dem Wert vonPVgeladen. - Adapter-Eingänge:
CD(Zählimpuls),LD(Laden),PV(Vorgabewert) - Adapter-Ausgänge:
Q(Zählerende),CV(aktueller Zählerstand)
ADI_DINT_TO_DI¶
- Typ:
adapter::conversion::unidirectional::ADI_DINT_TO_DI - Parameter:
OUT = DINT#10 - Funktion: Wandelt eine konstante DINT-Zahl (hier 10) in ein DI-Adapter-Interface um, das als Vorgabewert (
PV) für den Zähler dient.
Input_CD¶
- Typ:
logiBUS::io::DI::logiBUS_IXA - Parameter:
QI = TRUE,Input = Input_I1 - Funktion: Digitaler Eingang für das Zählsignal (CD). Aktiviert über den physischen Eingang I1.
Input_LD¶
- Typ:
logiBUS::io::DI::logiBUS_IXA - Parameter:
QI = TRUE,Input = Input_I2 - Funktion: Digitaler Eingang für das Ladesignal (LD). Aktiviert über den physischen Eingang I2. Der Ereignisausgang
INITOdieses Bausteins startet die Initialisierung des Vorgabewerts.
Output_Q1¶
- Typ:
logiBUS::io::DQ::logiBUS_QXA - Parameter:
QI = TRUE,Output = Output_Q1 - Funktion: Digitaler Ausgang für das Zählerende-Signal (
Q). Schaltet den physischen Ausgang Q1.
ADI_TO_AUDI¶
- Typ:
adapter::conversion::unidirectional::ADI_TO_AUDI - Parameter: keine
- Funktion: Konvertiert das ADI-Interface (DINT) in ein AUDI-Interface (Analog Universal Data Interface). Wichtig: Diese Konvertierung unterstützt keine negativen Zahlen – der Zählerstand kann nur als positive Zahl oder Null dargestellt werden.
Q_NumericValue_AUDI¶
- Typ:
isobus::UT::Q::Q_NumericValue_AUDI - Parameter:
u16ObjId = OutputNumber_N1 - Funktion: Gibt den übergebenen numerischen Wert (vom AUDI-Interface) auf einem Terminal aus. Die Objekt-ID verweist auf eine vordefinierte Ausgabeadresse.
Programmablauf und Verbindungen¶
Die Steuerung erfolgt über Ereignis- und Adapterverbindungen:
-
Initialisierung des Vorgabewerts:
Der EreignisausgangINITOdes BausteinsInput_LDtriggert den BausteinADI_DINT_TO_DI. Dadurch wird die KonstanteDINT#10einmalig in denADI_FB_CTDgeladen (über die AdapterverbindungADI_DINT_TO_DI.ADI_OUT→ADI_FB_CTD.PV). -
Zählimpulse (CD):
Der AdapterausgangInput_CD.INist mit dem AdaptereingangADI_FB_CTD.CDverbunden. Jede positive Flanke am Eingang I1 zählt den Zählerstand um eins herunter. -
Ladesignal (LD):
Der AdapterausgangInput_LD.INist mit dem AdaptereingangADI_FB_CTD.LDverbunden. Ein Signal an I2 lädt den Zähler mit dem aktuellen Vorgabewert (10). -
Zählerende (Q):
Der AdapterausgangADI_FB_CTD.Qführt zum AdaptereingangOutput_Q1.OUT. Bei Erreichen von Null wird der Ausgang Q1 aktiviert. -
Ausgabe des Zählerstands:
Der AdapterausgangADI_FB_CTD.CV(aktueller Zählerstand) wird überADI_TO_AUDIkonvertiert und an den Terminal-BausteinQ_NumericValue_AUDIweitergeleitet. Der Zählerstand erscheint auf dem Terminal.
Hinweis: Der Kommentar im Netzwerk weist darauf hin, dass der Baustein ADI_TO_AUDI keine negativen Zahlen verarbeiten kann. Da der Rückwärtszähler nur bis Null zählt, tritt dieser Fall in der Übung nicht auf. Für erweiterte Anwendungen müsste eine geeignetere Konvertierung gewählt werden.
Zusammenfassung¶
Die Übung vermittelt den Umgang mit dem IEC 61131-3-Rückwärtszähler als Adapter-Baustein. Sie zeigt:
- die Verwendung von Adapter-Schnittstellen zur Verbindung von Digital-Eingängen, Zähler und Ausgängen,
- die Initialisierung eines Vorgabewerts über eine Konvertierung,
- die Terminal-Ausgabe eines Zählerstands mit Hilfe eines AUDI-Interfaces,
- die Einschränkungen der verwendeten Konvertierung (
ADI_TO_AUDI) bei negativen Werten.
Der Aufbau ist als Subapplikation realisiert und kann direkt in eine 4diac-IDE-Umgebung geladen und getestet werden.