Uebung_217b: Standard IEC 61131-3 FB_CTD_LINT (Rückwärtszähler, LINT) mit Terminal-Ausgabe (PHYS_LREAL)¶
Einleitung¶
Diese Übung implementiert einen Rückwärtszähler nach IEC 61131-3 (Typ FB_CTD_LINT), der mit einem LINT-Datentyp arbeitet. Der aktuelle Zählerstand wird über einen physikalischen LREAL-Ausgang auf einem Terminal dargestellt. Die Übung demonstriert die Verwendung eines IEC-Standardzählers, die Ankopplung an reale Ein-/Ausgänge (logiBUS) und die Datentypkonvertierung von LINT nach LREAL für die Terminalausgabe.
Verwendete Funktionsbausteine (FBs)¶
Folgende Funktionsbausteine werden im Netzwerk der SubApp verwendet:
-
FB_CTD_LINT (Typ:
iec61131::counters::FB_CTD_LINT)- Parameter:
PV=LINT#10(Presetwert = 10) - Eingänge: Ereignis
REQ, DatenCD(Zählimpuls),LD(Laden des Presetwerts) - Ausgänge: Ereignis
CNF, DatenQ(Zählerstand > 0),CV(aktueller Zählerstand)
- Parameter:
-
Input_CD (Typ:
logiBUS::io::DI::logiBUS_IX)- Parameter:
QI=TRUE,Input=Input_I1(physischer Digitaleingang 1) - Ausgang: Daten
IN(Bool)
- Parameter:
-
Input_LD (Typ:
logiBUS::io::DI::logiBUS_IX)- Parameter:
QI=TRUE,Input=Input_I2(physischer Digitaleingang 2) - Ausgang: Daten
IN(Bool)
- Parameter:
-
Output_Q1 (Typ:
logiBUS::io::DQ::logiBUS_QX)- Parameter:
QI=TRUE,Output=Output_Q1(physischer Digitalausgang 1) - Eingang: Daten
OUT(Bool)
- Parameter:
-
F_LINT_TO_LREAL (Typ:
iec61131::conversion::F_LINT_TO_LREAL)- Eingang: Daten
IN(LINT) - Ausgang: Daten
OUT(LREAL)
- Eingang: Daten
-
Q_NumericValue_PHYS_LREAL (Typ:
isobus::UT::Q::Q_NumericValue_PHYS_LREAL)- Parameter:
stObj=OutputNumber_N3(Terminalausgabe-Objekt) - Eingang: Daten
lrPhys(LREAL)
- Parameter:
Programmablauf und Verbindungen¶
Die Übung arbeitet ereignisgesteuert:
- Ereignispfad:
- Ein steigender Impuls am Digitaleingang
Input_I1(verbunden mitInput_CD) erzeugt ein EreignisIND. - Ebenso erzeugt ein Impuls an
Input_I2(verbunden mitInput_LD) einIND-Ereignis. - Beide Ereignisse werden auf den Ereigniseingang
REQdes ZählersFB_CTD_LINTgeführt. - Nach Verarbeitung des Zählers (Ausgang
CNF) wird einerseits der AusgangOutput_Q1(überREQ) und andererseits die KonvertierungF_LINT_TO_LREAL(überREQ) getriggert. -
Nach der Konvertierung wird das Ereignis an die Terminalausgabe
Q_NumericValue_PHYS_LREALweitergeleitet. -
Datenpfad:
- Der digitale Wert von
Input_CD.IN(Bool) wird auf den DateneingangCDdes Zählers gelegt. - Der digitale Wert von
Input_LD.INwird auf den DateneingangLDdes Zählers gelegt. - Der Zählerausgang
Q(Bool) wird auf den DateneingangOUTdes AusgangsbausteinsOutput_Q1geführt. - Der aktuelle Zählerstand
CV(LINT) wird an den KonverterF_LINT_TO_LREAL.INübergeben. - Der konvertierte Wert (LREAL) wird an den Terminalbaustein
Q_NumericValue_PHYS_LREAL.lrPhysgesendet.
Funktionsweise des Zählers:
- Solange kein Ladesignal (LD = FALSE) anliegt, zählt der Baustein bei jedem steigenden Impuls an CD von 10 rückwärts (Presetwert = PV = 10).
- Ein Ladesignal setzt den aktuellen Zählerstand auf den Wert von PV zurück.
- Der Ausgang Q ist TRUE, solange der Zählerstand größer als 0 ist; bei Erreichen von 0 wird Q = FALSE (Überlauf ist nicht definiert, bleibt bei 0).
- Der aktuelle Zählerstand wird auf dem Terminal als physikalischer LREAL-Wert ausgegeben.
Zusammenfassung¶
Die Übung Uebung_217b realisiert einen standardkonformen Rückwärtszähler (FB_CTD_LINT) mit Terminalausgabe. Sie verknüpft digitale Eingänge (logiBUS) als Zähl- und Ladeimpulse, einen Digitalausgang als Meldeausgang und eine LINT-zu-LREAL-Konvertierung für die Anzeige des aktuellen Zählerstands auf einem Terminal. Der Ablauf ist vollständig ereignisgesteuert und zeigt die Integration von IEC 61131-3-Bausteinen mit logiBUS-I/O und Terminalausgaben in der 4diac-IDE.