Uebung_213: Standard IEC 61131-3 FB_CTU_UDINT (Vorwärtszähler, UDINT) mit Terminal-Ausgabe¶
Einleitung¶
Diese Übung implementiert einen Vorwärtszähler nach IEC 61131-3 (Typ FB_CTU_UDINT) als Subapplikation. Der Zähler verfügt über zwei digitale Eingänge (Count-Up und Reset), einen digitalen Ausgang (Q) und eine Terminalausgabe für den aktuellen Zählwert. Die Eingänge werden über logiBUS-IO-Bausteine bereitgestellt, während der Ausgang und der numerische Wert auf konfigurierte logiBUS-Kanäle ausgegeben werden.
Verwendete Funktionsbausteine (FBs)¶
-
FB_CTU_UDINT (Typ:
iec61131::counters::FB_CTU_UDINT)- Parameter:
PV= UDINT#5 (Vorgabewert für die Zählschwelle) - Ereignisse: REQ (Eingang), CNF (Ausgang)
- Daten: CU (Count-Up), R (Reset), Q (Ausgang), CV (aktueller Zählwert)
- Parameter:
-
Input_CU (Typ:
logiBUS::io::DI::logiBUS_IX)- Parameter:
QI= TRUE,Input= Input_I1 - Ereignis: IND (Ausgang)
- Daten: IN (Ausgang)
- Parameter:
-
Input_R (Typ:
logiBUS::io::DI::logiBUS_IX)- Parameter:
QI= TRUE,Input= Input_I2 - Ereignis: IND (Ausgang)
- Daten: IN (Ausgang)
- Parameter:
-
Output_Q1 (Typ:
logiBUS::io::DQ::logiBUS_QX)- Parameter:
QI= TRUE,Output= Output_Q1 - Ereignis: REQ (Eingang)
- Daten: OUT (Eingang)
- Parameter:
-
Q_NumericValue (Typ:
isobus::UT::Q::Q_NumericValue)- Parameter:
u16ObjId= OutputNumber_N1 - Ereignis: REQ (Eingang)
- Daten: u32NewValue (Eingang)
- Parameter:
Programmablauf und Verbindungen¶
Die Subapplikation besteht aus einer direkten Verschaltung der genannten Funktionsbausteine ohne zusätzliche Unterbausteine. Der Ablauf ist wie folgt:
-
Eingangssignale: Eine steigende Flanke am digitalen Eingang Input_I1 wird vom Baustein
Input_CUerkannt und löst das EreignisINDaus. Gleichzeitig wird der Wert des Eingangs (Bit) an den DatenausgangINübergeben. Analog verhält es sich für den Reset-Eingang Input_I2 und den BausteinInput_R. -
Zählersteuerung: Das Ereignis
INDvonInput_CUwird mit dem EreigniseingangREQdes ZählersFB_CTU_UDINTverbunden. Über die Datenverbindung wirdInput_CU.INan den ZählereingangCU(Count-Up) gelegt. Dadurch wird der Zähler bei jeder positiven Flanke an diesem Eingang inkrementiert. Das Ereignis vonInput_Rwird ebenfalls auf denREQ-Eingang des Zählers geführt und der Datenwert an denR-Eingang (Reset) angelegt. Ein Reset setzt den Zähler auf Null. -
Zählerverhalten: Der Zähler zählt ab dem Wert 0 aufwärts. Erreicht der interne Zählwert den Parameter
PV(hier 5), wird der AusgangQauf TRUE gesetzt. Der aktuelle Zählwert ist am AusgangCV(Datentyp UDINT) verfügbar. -
Ausgabe: Nach jeder Zählerverarbeitung gibt der Zähler ein Bestätigungsereignis
CNFaus. Dieses Ereignis wird parallel auf zwei Ausgabebausteine geschaltet: - Output_Q1: Das Ereignis
REQdieses Bausteins löst die Übernahme des Datenwertes vonFB_CTU_UDINT.Qauf den physikalischen AusgangOutput_Q1aus. - Q_NumericValue: Das Ereignis
REQdieses Bausteins übernimmt den aktuellen ZählwertCV(als 32-Bit-Wert) und gibt ihn über die konfigurierte Objekt-IDOutputNumber_N1auf einem Terminal oder Display aus.
Ein Kommentar im Netzwerk weist darauf hin, dass eine zusätzliche Ereignisreduzierung (z.B. durch einen E_D_FF) zwischengeschaltet werden könnte, um die Ausgabe nur bei bestimmten Ereignissen zu aktualisieren.
Lernziele: - Verständnis der IEC 61131-3 Zählerfunktionsbausteine. - Zusammenspiel von Ereignis- und Datenflüssen in 4diac. - Einbindung von digitalen Ein-/Ausgängen über logiBUS-IO-Bausteine. - Ausgabe numerischer Werte auf ein Terminal mittels Q_NumericValue.
Benötigte Vorkenntnisse: Grundlegende Bedienung der 4diac-IDE, Verständnis von Ereignis-/Datenverbindungen, Kenntnis der logiBUS-IO-Konfiguration.
Übung starten: Die Subapplikation muss in ein 4diac-Projekt importiert werden. Anschließend sind die Hardware-Kanäle (Input_I1, Input_I2, Output_Q1, OutputNumber_N1) den tatsächlichen Ein-/Ausgängen der SPS (z.B. logiBUS) zuzuordnen. Nach dem Laden und Starten der Applikation können die Eingänge über Taster oder Simulationssignale getestet werden; der Zählwert und der Ausgangsstatus werden auf dem Terminal bzw. an den konfigurierten Ausgang ausgegeben.
Zusammenfassung¶
Die Übung demonstriert die Nachbildung eines standardisierten IEC 61131-3 Vorwärtszählers (FB_CTU_UDINT) in 4diac. Durch die Verknüpfung von logiBUS-IO-Bausteinen mit einem Zähler und einer numerischen Ausgabe wird ein praxisnahes Beispiel für ereignisgesteuerte Automatisierungslogik gezeigt. Die Schaltung verdeutlicht, wie sowohl digitale als auch numerische Ausgaben parallel zu einer Zähleraktion erfolgen können. Dieser Aufbau eignet sich gut, um das Zusammenspiel von Ereignis- und Datenverbindungen in der 4diac-IDE zu erlernen und zu vertiefen.