Applikation zum Zählen und Auswerten von digitalen Impulsen. (Typische Verwendung: Energieverbrauchsmessung mit Gas-/Wasserszählern)
Funktionsübersicht
- GesamtImpulse: Gesamtzahl jemals eingetroffener Impulse (wird typischerweise bei der Installation auf den Zählerstand z.B. des Wasserzählers voreingestellt)
- Gesamtverbrauch (kumuliert): physikalische Größe, die sich aus der Gesamtzahl der Impulse und dem physikalischen Inkrement pro Impuls ergibt.
- Entprelldauer: Einstellmöglichkeit, um zwischen langsamen/prellenden Signalen und schnellen sauberen Impulsen unterscheiden zu können.
Hardwarevoraussetzungen
Knotenhardware mit digitalem Eingang. Je nach Knotenhardware kann der Impulseingang potentialfrei sein, oder als OpenCollector ausgelegt sein.
Der Impuls muss eine Mindestlänge von >10ms haben, d.h. Maximalfrequenz (ohne Entprellung ist dies 100Hz; ergibt sich aus der Zykluszeit der Verarbeitung im 10ms Task).
Anschlussbeispiel: Wasserzähler
Verbauter Wasserzähler: Sensus Typ 612. Hierfür gibt es einen Impulsgeber (HRI Pulse Unit; Typ: HRI-A1; D=1), der pro durchflossenem Liter Wasser genau einen Puls ausgibt. (Preis: ~75€). Der Aufsatz wird einfach auf den mechanischen Wasserzähler aufgesteckt/geschraubt. Die normale Funktion wird dadurch nicht beeinträchtigt – auch das Zählwerk läßt sich problemlos ablesen. Das elektrische Innenleben des Impulsgebers sieht so aus:
Techn.Daten: Open Collector Impulsausgabe; Vmax=24V; Imax=20mA; Pmax=0,48VA; fmax=5Hz; Max. Spannung bei geschlossenem Schalter: 0,3V + I * 250R. Impulsbreite: fest 124ms.
Leitung | Typ HRI-A1 | |
I1 (weiß) | saldierte Impulse | |
I2 (gelb) | nicht verwendet |
Anbindung an die UKK-Elektronik:
GND: braune Leitung
AIN0: weiße Leitung
externe 10k zwischen AIn und Vcc,ext
Die Verwendung der Analogeingänge ist eigentlich nicht notwendig, Digitaleingänge tun es natürlich auch. Allerdings liegt auf diesem Anschlußstecker praktischerweise die benötigte 5V-Versorgung
Anschlussbeispiel: Gaszähler
Der Gaszähler ist noch einfacher an die UKK-Elektronik anzubinden, da dessen Interface nur aus einem Reedkontakt besteht. Das Plastikgehäuse wird in die vorgesehene Aussparung unterhalb des Zählwerks eingeschoben und rastet dort automatisch ein.
Verwendeter Gaszähler: Fa. Elster
Passender Reedkontakt: Fa. GMT (Impulsnehmer IN-UZ Art-Nr. 041H0127); Preis: 47€
techn. Daten: Kontakte 100V DC und 100mA belastbar;
Arbeitskontakt: braun-grün
Sicherheitskontakt: weiß-gelb
Funktionsweise: In der letzten Stelle des Zählwerks (1l-Stelle) ist an einer Stelle ein Magnet eingebaut, der am Steckplatz des Reedkontaktes vorbeikommt und somit alle 0.01m³ (=10l) den Reedkontakt kurzschließt.
Design und Implementationsdetails
Zyklisches Einlesen alle Digitaleingänge, ggf. entprellen und aufaddieren der Anzahl steigender Flanken.
DoTable Impuls (DoType 0x19)
DoSi | Beschreibung | Typ/ Länge |
Ort | Min/Max /Default |
Auflösung /Einheit |
Datenart |
0x00 | GesamtImpulse |
u32 | EEP |
-/-/0 |
1/- | Lcfg, Bw, Br |
0x01 | Gesamtverbrauch (kumuliert; physikalisch) |
u32 |
RAM |
-/-/0 |
0.01/- |
Ctl, Bw, Br |
0x10 | SensorAktiv | u8 | EEP | 0/1/0 | Cfg, Bw, Br | |
0x11 | Entprelldauer |
u8 | EEP | 0/2550ms /40ms |
10/ms | Cfg, Bw, Br |
0x12 | PhysInkrementProImpuls [0.01] |
u16 | EEP | 0/655.35 /100 (=1.0) |
0.01/- | Cfg, Bw, Br |
Der DotParameter „PhysInkrementProImpuls“ bestimmt um wie viele Teilschritte/“Ticks“ der „Gesamtverbrauch“ pro erkanntem Impuls erhöht wird.
Skalierung in [0.01], d.h. der Defaultwert von 100 liefert 1.0-Schritte pro Impuls
BoTable Impuls (DoType 0x19)
BoIndex: <ImpulskanalNr.>
Zykluszeit: 10000ms (bei Änderung sofort);
Sperrzeit (Inhibittime): 100ms
Datenlänge: 8Byte
Hinweis: alle 10s/AnzImpulskanäle wird ein BO verschickt, d.h. bei 5 konfigurierten Kanälen, werden alle 2s ein BO verschickt; derselbe Kanal wiederholt sich aber nur alle 10s
Byte |
Beschreibung |
Byte0 | Gesamtimpulse MSB |
Byte1 | Gesamtimpulse |
Byte2 | Gesamtimpulse |
Byte3 | Gesamtimpulse LSB |
Byte4 | Gesamtverbrauch (physikalisch) MSB |
Byte5 | Gesamtverbrauch (physikalisch) |
Byte6 | Gesamtverbrauch (physikalisch) |
Byte7 | Gesamtverbrauch (physikalisch) LSB |