Uebung_220: Standard IEC 61131-3 FB_CTUD (Vor-/Rückwärtszähler, INT) mit Terminal-Ausgabe¶
Einleitung¶
Diese Übung realisiert einen kombinierten Vor-/Rückwärtszähler (Up/Down Counter) nach IEC 61131-3 (FB CTUD) mit einer Preset-Schwelle von 10. Die Zählerstände werden sowohl über digitale Ausgänge als auch über einen numerischen Wert auf einem Terminal ausgegeben. Die Eingänge werden über logiBUS-Eingangsbausteine bereitgestellt.
Verwendete Funktionsbausteine (FBs)¶
- FB_CTUD (Typ:
iec61131::counters::FB_CTUD): Standard IEC 61131-3 Vor-/Rückwärtszähler. - Parameter:
PV=INT#10(Presetwert) - Ereigniseingänge:
REQ(Anforderung) - Ereignisausgänge:
CNF(Bestätigung) - Dateneingänge:
CU(Count Up),CD(Count Down),R(Reset),LD(Load) -
Datenausgänge:
QU(Ausgang bei Erreichen Preset),QD(Ausgang bei Erreichen 0),CV(aktueller Zählerwert) -
Eingangsbausteine (Typ:
logiBUS_IX): Input_CU(Eingang für Zählimpulse Aufwärts) – verbunden mitInput_I1Input_CD(Eingang für Zählimpulse Abwärts) – verbunden mitInput_I2Input_R(Reset-Eingang) – verbunden mitInput_I3Input_LD(Load-Eingang) – verbunden mitInput_I4-
Alle haben den Parameter
QI=TRUE. -
Ausgangsbausteine (Typ:
logiBUS_QX): Output_QU(Ausgang QU) – verbunden mitOutput_Q1Output_QD(Ausgang QD) – verbunden mitOutput_Q2-
Alle haben den Parameter
QI=TRUE. -
F_INT_TO_UDINT (Typ:
iec61131::conversion::F_INT_TO_UDINT): Konvertiert den Integer-Zählerwert (CV) in einen vorzeichenlosen Doppel-Integer (UDINT) für die Terminalausgabe. -
Q_NumericValue (Typ:
isobus::UT::Q::Q_NumericValue): Gibt einen numerischen Wert auf dem Terminal aus. - Parameter:
u16ObjId=OutputNumber_N1
Hinweis: Die Verwendung von F_INT_TO_UDINT ist laut Kommentar „großer Quatsch … keine Negativen Zahlen möglich“, da der Zählerwert auch negativ werden kann (wenn mehr Rückwärts- als Vorwärtsimpulse erfolgen). In dieser Übung wird jedoch der Umgang mit dem FB CTUD demonstriert.
Programmablauf und Verbindungen¶
Die Übung zeigt die typische Anwendung eines IEC 61131-3 Zählers mit Hardware-Ein- und Ausgängen über den logiBUS.
-
Ereignissteuerung: Jeder Eingangsbaustein (
Input_CU,Input_CD,Input_R,Input_LD) löst bei einer Flanke (IND) eineREQan denFB_CTUDaus. Somit wird der Zähler bei jedem Impuls aktualisiert. Nach der Verarbeitung gibt derFB_CTUDeineCNF, die gleichzeitig die Ausgangsbausteine (Output_QU,Output_QD) sowie die Konvertierung und Terminalausgabe triggert. -
Datenverbindungen:
- Die digitalen Eingangssignale (
INderlogiBUS_IX) werden direkt an die entsprechenden Dateneingänge des Zählers (CU,CD,R,LD) geführt. - Die Zählerausgänge
QUundQDwerden an die logiBUS-Ausgänge (OUTvonlogiBUS_QX) angeschlossen. -
Der aktuelle Zählerwert
CVwird überF_INT_TO_UDINTinUDINTkonvertiert und anQ_NumericValueübergeben, der diesen auf dem Terminal (AusgabenummerN1) anzeigt. -
Lernziele:
- Verständnis des IEC 61131-3 FB_CTUD (Vor-/Rückwärtszähler) mit allen Funktionen.
- Einbindung von Hardware-Ein-/Ausgängen über logiBUS.
- Ausgabe eines numerischen Wertes auf einem Terminal.
-
Erkennen von Einschränkungen bei der Datentypkonvertierung (Negativwerte).
-
Schwierigkeitsgrad: Mittel. Vorkenntnisse in IEC 61131-3 und der 4diac-IDE sind hilfreich.
Zusammenfassung¶
In dieser Übung wurde ein Vor-/Rückwärtszähler nach IEC 61131-3 implementiert. Der Zähler zählt bei jeder steigenden Flanke an den Eingängen CU (Aufwärts) und CD (Abwärts). Ein Reset (R) setzt den Zähler auf 0 zurück, Load (LD) lädt den Presetwert PV. Die Ausgänge QU und QD zeigen an, ob der Zählerstand den Presetwert erreicht (QU) bzw. 0 (QD). Zusätzlich wird der aktuelle Zählerwert auf einem Terminal ausgegeben, wobei die Konvertierung in UDINT für positive Werte funktioniert. Die Übung demonstriert die vollständige Integration von Standard-FBs mit logiBUS-Hardware und Terminalausgabe in der 4diac-IDE.