Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:vir_-_variable_impulsrate_fuer_s0-zaehler

VIR - variable Impulsrate für S0-Zähler

getested mit

Bei Arbeiten am Geraet ist Vorsicht geboten, mangels galvanischer Trennung liegt quasi alles im Gerät auf Netzpotential!

Features

Vorteile:

  • Erhöhung der Messauflösung, um auch kleinste Leistungsänderungen aufnehmen zu können
  • Anpassung der Anzahl der S0-Impulse je kWh an reale Verhältnisse (9 Modes möglich)
  • einfach einzustellen (mit beigestelltem Excel-file für Faktorermittlung + Einstelltaste am S0-Zähler)
  • benutzerfreundliche Führung am S0-Zähler durch LED-Signale (Nutzung der bereits vorh. S0-LED)
  • einfache Kalibrierung durch Zählung der (vervielfachten) S0-Imp. u. Parallelmess. mit Energiekostenmessgerät
  • preisgünstig, da nur ein 8-Pin-AVR (Attiny 45) benötigt wird (hex-file beigestellt)

Nachteile

  • Eingriff in den Zähler nötig (mechanisch und elektronisch)
  • Kalibrierung „verschlingt“ 1 kWh zu momentan 26ct, sofern der Fön nicht gleich genutzt wird :-)

Motivation

Nachdem bereits seit 2 Jahren das Photovoltaiksystem einer Kleinstanlage (max. ca. 500W AC) mit dem VZ-System gemessen und geloggt wird (YPort mit S0-Erweiterung v. Udo ⇒ 1a Hardware + Ethersex), steht demnächst die Anschaffung einer modulierenden 4 kW-Luftwärmepumpe (1kW elektrisch/ 4kW gesamt) auf dem Wunschzettel, welche sämtliche PV-Überschüsse in Wärme wandeln und in einen 1.000 l Wasserpuffer speichern soll. Hiermit soll zwischen März und Oktober eine weitgehende Energieautarkie erzielt werden.

Sinn macht das Ganze nur, wenn die aktuellen Energieüberschüsse (EÜ = PV-Ertrag - Eigenverbrauch) kurzfristig und möglichst genau ausgewertet werden können. In nachfolgenden Screenshot sieht man aber, dass dies mit den üblichen S0-Stromzählern mit 1.000 bzw. 2.000 Imp/kWh kaum möglich ist, da nur wenig Impulse geliefert und entsprechende Leistungssprünge gemessen werden.

Hinzu kommt, dass die wenigen Impulse für einigermaßen plausible Leistungsanzeigen über einen bestimmten Zeitraum gesammelt werden müssen (im Bsp. 64s mittels Ethersex watchasync-Funktion/ AVR-Zeit ⇒ s. hier) Die 64 Sekunden im Bsp. stellen jedoch schon eine signifikante zeitliche Verzögerung dar, was der angestrebten 100%-igen Nutzung des Energieüberschusses entgegensteht (z.B. 30s Wolke wird nur „gemittelt“ erkannt). Aus diesem Grund ist es nicht ganz verständlich, weshalb nur S0-Zähler mit geringen Impulsraten käuflich zu erwerben sind.

Dank der VZ-Mitstreiter wurde nun z.B. für den Swissnox S-watt bzw. Swissnox SX-1L die Möglichkeit gefunden, den S0-Ausgang so zu tunen, dass der s.g. high frequency output bzw. high pulse-rate output ermöglicht wird. Leider ist die Impulsrate nach dem Tuning fast 260-fach höher als die Originalrate mit 2.000 Imp/kWh. Dies führt mit hoher Wahrscheinlichkeit zu Verarbeitungsproblemen bei den nachfolgenden Messeinheiten, sofern diese normale Kaufteile sind. Mein YPort-System schafft beispielsweise max. 30Hz S0-Inputfrequenz. Andere Messeinheiten benötigen ggf. eine Mindestimpulslänge von 30ms oder sogar 90ms (s. S0-Schnittstelle)

Aus diesem Grund wird nachfolgendes VIR-System beschrieben, welches durch Nutzung eines kleinen µC samt Taster die Anpassung/ Reduktion des „high frequency output“ erlaubt. Je nach maximal zu messender Leistung kann die Impulsrate des Zählers so angepasst werden, dass immer noch eine deutliche Impulsratenerhöhung verbleibt, aber gleichzeitig die nachfolgende Messeinheit voll funktionstüchtig bleibt. Im genannten YPort-Beispiel mit max. 500W Messbereich werden so aus 2.000 Imp/kWh immerhin ca. 130.000 Imp/kWh - also eine Erhöhung um den Faktor 65 !!!

Anbei noch 2 Beispiele, welche den Unterschied zeigen:

a) normaler S0_Output mit 2.000 Imp/kWh

b) high frequency Output - mit VIR von 519.300 auf 129.825 Imp/kWh gedrosselt

elektronische Modifikation des "high pulse-rate output" mittels µC und Taster

Schaltplan/ Anschlüsse

Die wesentlichen Umbaumaßnahmen zur Nutzung des CF-Signals = high frequency output sind hier zu finden. Im Gegensatz zur direkten Kopplung des CF-Ausgangs an Pin1 des Optokopplers wird bei der VIR ein µC zwischengeschaltet. Der Originalschaltplan wurde wie folgt modifiziert (Farben entsprechen den Kabelfarben auf den Fotos):

Der Abgriff von +5V und GND erfolgt am besten an der Steckerleiste J2. Des Weiteren kann das CF-Signal am Via zwischen +5V@J2 und R15 geholt werden. Dies gilt für das nachfogende Layout (bei mir SX-1L):

Vorbereitung µC/ Programm/ EEPROM/ Flashen

Für den zwischengeschalteten µC (hier ATtiny45) wurde eine Software entwickelt, welche die Eingabe s.g. LED_Code's (momentan 9 Modi) mittels Taster ermöglicht. Die Speicherung erfolgt hierbei im EEPROM des ATtiny, so dass der LED_Code (entspricht dem gewählten Impulsratenanpassungsfaktor) auch bei Stromausfall nicht verloren geht.

Neben der Eingabeprozedur mittels Taster übernimmt die SW das „Ausdünnen“ der high frequency output-Impulse (HFO-Impulse) und die Generierung des neuen S0_out-Impulses, der über die Zähler-LED sichtbar ist.

Bsp.: Per Taster wird LED_Code 2 gewählt. Dieser bedeutet einen Reduktionsfaktor von 4.

⇒ S0_out = HFO / 4 = 519.300 Imp/kWh / 4 ⇒ 129.825 Imp/kWh

Da mit max. Frequenzen von nur 1 kHz für S0_out gearbeitet wird, erschien es sinnvoll, den µC möglichst stromsparend mit nur 128kHz am internen Oszi zu betreiben. Es wird also kein Quarz benötigt. Da die Impulsanzahl nur „ausgedünnt“ wird, kommt es auch nicht auf besondere Genauigkeit an. Nimmt man obiges Bsp., so wird bei jedem 4. HFO-Impuls (= CF-Signal d. ADE7755) der S0_out (Pin PB.3) getoggelt. Die vielen HFO-Impulse selbst, werden über den externen Interrupt Int0 an Pin PB.2 erfasst.

Die Software ist als hex-file hier downloadbar.

Nach dem Download und Entpacken muss die SW noch mittels üblichem ISP-Programmer (z.B. mySmartUSB o.ä.) in den ATtiny geflashed werden. Hierbei werden momentan ca. 1kB des 4kB Flashspeichers genutzt, so dass noch Platz für zukünftige features verbleibt. Der nötige ISP-Anschluss ist mit auf dem Schaltplan wiedergegeben (s.o.).

Einstellung der Fuses

Wegen der Nutzung des 128 kHz internen Oszillators müssen die Fuses wie folgt eingestellt werden. Bei mir wurde hierzu das „Progtool“ von myAVR verwendet, was eine gute Übersicht der Einstellwerte bietet.

Für die Verwendung von avrdude sind die Adressbelegungen in der oberen Zeile ersichtlich.

mechanisch/ elektrischer Einbau µC/ Taster/ Kabel

günstige Bezugsquelle für µC ⇒ Attiny 45:

http://www.ebay.de/itm/251206229843?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

günstige Bezugsquelle für „Mini-Taster Kurzhubtaster Mikrotaster Eingabetaster 6x6x13mm 12V“:

http://www.ebay.de/itm/201215002680?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Für nicht so versierte Umbauwillige können Taster, Attiny 45 und Swissnox SX-1L nach Absprache (PN) bei mir bezogen werden. Der Attiny ist auch mit bereits aufgespielter Firmware möglich.

Nachfolgende Bilddoku zeigt alle wichtigen Schritte zum mechanisch/ elektrischen Umbau. Die Abfolge ist chronologisch geordnet:

nun zum Taster:

Dieser schaltet intern zwar nur 5V, ist aber bezogen auf ERDE nicht potentialfrei.

Gefahr Stromschlag

Aus diesem Grund wird ein Kurzhubtaster mit langem Stösel verwendet wie z.B. dieser „Mini-Taster Kurzhubtaster Mikrotaster Eingabetaster 6x6x13mm 12V“. Der lange Abstand bietet ausreichend Isolation zur Fingerkuppe.

http://www.ebay.de/itm/201215002680?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Als Abstandhalter wird ein Röhrchen, welches aus einem Stück Plastikdübel abgeschnitten wurde, verwendet. Dieses ist rundherum aufzurauhen, um später einen guten äußeren Klebeverbund sicherzustellen. Der Taster selbst wird nur an seiner Basis mit der Innenseite des Röhrchens verklebt.

anschließend das Gehäuse schließen und die beiden seitlichen Plastikabdeckungen aufpressen ⇒ das war's :-D

Festlegung der optimalen Impulsrate (LED_Code)

Erläut. zum Excelfile (Infos zur max. Leistung Verbraucher/Erzeuger, max. High-Phasen-Länge, max. Inputfrequenz an nachgeschalteter Messeinheit)

In der Software des Attiny sind 9 LED_Codes hinterlegt, welche das high frequency Signal (400.000…520.000 Imp/kWh) zwischen Faktor 2 und 50 herunterteilen können. Damit lassen sich nun für die nachfolgende Peripherie „verträglichere“ Impulsraten zw. 10.000…250.000 Imp/kWh erzeugen. ⇒ Details s. nachfolgende Tabelle


Zur Erzielung der max. möglichen Impulsrate (höchste mögliche Auflösung) bei gleichzeitiger Einhaltung der Rahmenparameter nachfolgender Auswertebaugruppen sind folgende Werte in die Exceltab. einzutragen (gelb hinterlegte Zellen):

  • der aus einer Kalibrierung (z.B. Parallelmessung mit genauerem kd_302) ermittelte Impulsratenwert am Swissnox-Zähler (Imp/kWh). Hierbei wird der modifizierte Swissnox mit LED_Code = 1 betrieben, um möglichst viele Impulse zählen zu können (⇒ hohe Genauigkeit).
  • der max. Leistungswert des zu messenden Verbrauchers/Erzeugers (oder die Summe mehrerer angeschlossener Verbraucher/Erzeuger)
  • Grenzwert für max. mögliche High-Phase des S0-Impulses (z.B. 30ms, 90ms)
  • Grenzwert für max. mögliche S0-Frequenz für die nachfolgenden Baugruppen (z.B. YPort ⇒ max. 30Hz verarbeitbar)

Nachfolgende Erläuterungen zeigen die Daten am screenshot der Exceltabelle. Im Ergebnis gibt die oberste hellblaue bzw. hellgrüne Zelle die Zeile wieder, deren LED_Code verwendet werden sollte. Im Fall des YPort spielte die Impulslänge (hellgrün) keine Rolle - nur die max. Grenzfrequenz von 30Hz (hellblau) war für die korrekte Funktion bindend ⇒ bei einem mit max. 3.000 Watt arbeitenden Verbraucher wäre LED_Code 5 einzustellen, was mit 32.300 Imp/kWh eine mehr als 16-fache Auflösung im Vergleich zu den originalen 2.000 Imp/kWh darstellt.


und hier die eigentliche Excel-Datei zum Ermitteln des optimalen Teilers:

s0_swissnox_sx1l_config_v3.xls

Anleitung zum Einstellen des LED_Code am S0-Zähler

Symbolzuordnung: o ⇒LED an, - ⇒LED aus

Mit dem neuen Taster und der geflashten Software im Attiny sind 3 verschiedene Aktionen durchführbar:

  1. kurzer Druck <1s: Anzeige aktueller LED_Code z.B. LED_Code 3: o—o—o— (Zuordnung zum Teilerfaktor über Exceltab)
  2. mittellanger Druck >1s <2,5s: Reset des Attiny (ist ja ein kleiner Rechner - man weiß ja nie :-) - bislang aber noch nicht benötigt)
  3. langer Druck >2,5s: Auswahl des gewünschten LED_Code aus 9 Möglichkeiten (EDIT-Mode). Nachfolgend wird die Prozedur zu Punkt 3 noch etwas genauer beschrieben:
  • Anzeige des EDIT-Mode durch 3x (10-fach-Blink + 0,5s Pause): o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s—
  • 2s Pause (LED aus)
  • Start der LED_Code Auswahl ⇒ (! 1x vollständig von LED_Code 1 bis 9 durchlaufen lassen) o—o—o—o—o—o—o—o—o—
  • autom. Neustart des Durchlaufs (Anzeige d. EDIT-Mode): o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s—
  • 2s Pause (LED aus)
  • LED_Code Auswahl ⇒ jetzt nach dem gewünschten LED_Code (= Anzahl „LED an“) lange auf Taster drücken bis Bestätigungssequenz erscheint z.B. LED_Code 3: o—o—o hier lange drücken bis
  • Bestätigungssequenz o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s—o-o-o-o-o-o-o-o-o-o—0,5s— erscheint (Taster gleich nach Beginn der Bestätigungssequenz loslassen)
  • Damit ist der neu gewählte LED-Code im Eeprom des Attiny dauerhaft gespeichert (auch bei Stromausfall). Mit einer Wiederholung von Punkt 3 kann der LED-Code neu definiert werden (z.B. Anpassung an Verbraucher mit anderer Maximalleistung)
  • zur Überprüfung Punkt 1 (kurzer Druck <1s) ausführen und LED_Code ablesen, Falls dieser nicht mit der oben getroffenen Auswahl übereinstimmt ⇒ Punkt 3 wiederholen (Dieser Fall trat bei mir noch nie auf.)

Kalibrierung

to do - Erläut., wie mit Energiekostenmessgerät parallel gemessen wird, ggf. fertige komplett umgebaute kalibrierte S0-Zähler lieferbar (unwahrscheinlich wegen Garantieverlust und Umbauzeitaufwand)

hardware/channels/meters/power/vir_-_variable_impulsrate_fuer_s0-zaehler.txt · Zuletzt geändert: 2016/02/21 21:18 von justinotherguy