ImpulseCounter (FB)

FUNCTION_BLOCK ImpulseCounter

Kurzbeschreibung

Zähler für Eingangsimpulse mit Rücksetzeingang und einstellbarer Reduktion


Darstellung

../_images/ImpulseCounter_FB.png

Schnittstellen

Eingänge

Name Datentyp Wertebereich Initialwert Funktion
xImpulse BOOL     Zählereingang
xReset BOOL   FALSE Rücksetzeingang

Ausgänge

Name Datentyp Wertebereich Initialwert Funktion
udiImpulseCounter UDINT     Impulszähler
udiEnergy UDINT     Impulszähler nach Reduktion
dtLastImpulse DATE_AND_TIME     Datum/-zeitpunkt des Ende des letzten Zählimpulses

Sollwerte / Parameter

Name Datentyp Wertebereich Initialwert Funktion
udiEnergyFactor UDINT   1 Reduktionsfaktor

Funktionsbeschreibung

Allgemeines

Dieser Funktionsbaustein dient zur Zählung der Impulse ( = ansteigende Flanken ) am Zähler-Eingang xImpulse im Rahmen der technischen Grenzen.
Der Zählerstand wird am Ausgang udiImpulseCounter angezeigt.

Überschreitet / erreicht der Zählerstand udiImpulseCounter den Grenzwert udiEnergyFactor, so wird der der Ausgang udiEnergy inkrementiert.
Anschließend wird der Ausgang udiImpulseCounter auf 0 zurück gesetzt.

Die Ausgänge udiImpulseCounter und udiEnergy werden auf 0 zurück gesetzt, solange am Eingang xReset eine ansteigende Flanke erkannt wird.

Am Ausgang dtLastImpulse steht nach jeder ansteigenden Flanke am Eingang xImpulse das aktuelle Datum / die aktuelle Uhrzeit zur Verfügung.
Am Ausgang dtLastImpulse steht bei allen anderen Zuständen am Eingang xImpulse das Datum / die Uhrzeit am Ende der letzten ansteigenden Flanke zur Verfügung.
Am Ausgang dtLastImpulse wird vor der ersten ansteigenden Flanke der Initialisierungswert DT#1970-1-1-0.0.0 ausgegeben.

Wertebereiche der Ausgänge udiImpulseCounter und udiEnergy

Gültige Zählerstände befinden sich innerhalb der Grenzen 0 und 4294967295.
Die Inkrementierung des Zählerstandes 4294967295 setzt den Zählerstand auf 0 zurück.
Anschliessend wird der Zählerstand wieder fortlaufend inkrementiert.

Reduktionsfaktor udiEnergyFactor

Der Reduktionsfaktor udiEnergyFactor wird nach jeder Eingabe des Wertes 0 mit dem Wert 1 überschrieben.

Beispiel - Reduktionsfaktor

udiImpulseCounter = 9, udiEnergy = 0, udiEnergyFactor = 10

Nach einer ansteigenden Flanke am Eingang xImpulse verändern sich die Zählerstände wie folgt:

udiImpulseCounter = 0, udiEnergy = 1, udiEnergyFactor = 10

Visualisierung




Information

Element Autoren Datum Version Anmerkungen
Funktion Adam Bartod XX.XXX 1.0 Ursprungsversion
Programmierung Adam Bartod 09.2016 1.0 Ursprungsversion
Test Jochen Reu 10.2017 1.0 Ursprungsversion
Dokumentation Lukas Pfänder 11.2017 0.1.3.0 Revision

Codesys

InOut:
Scope Name Type Initial Comment
Input xImpulse BOOL   Zählereingang
xReset BOOL FALSE Rücksetzeingang
udiEnergyFactor UDINT   Reduktionsfaktor
Output udiImpulseCounter UDINT   Impulszähler
udiEnergy UDINT   Impulszähler nach Reduktion
dtLastImpulse DT   Datum/-zeitpunkt des Ende des letzten Zählimpulses