www.wernerhirsch.de
Elektronikprojekte

PV-Überschuss Regler

- Auslesen der Zählerstände Bezug und Lieferung sowie der aktuellen Leistung eines Zweirichtungszählers ISKRA eHZ MT691 über optischen Lesekopf - integrierter Regler mit PWM Ausgang zur Ansteuerung eines Leistungsreglers/Verbrauchers - Anschlussmöglichkeit für einen Energiezähler mit Impulsausgang (z.B. von PV-Anlage) - Aufbau auf Streifenraster Platine in Hutschienengehäuse - Materialkosten ca. 35 €

Einführung/Voraussetzungen

Wenn man seine Photovoltaikanlage bei dem örtlichen Netzbetreiber anmeldet, wird in der Regel der vorhandene Zähler gegen einen Zweirichtungszähler getauscht, der sowohl die bezogenen Energiemengen als auch die gelieferten bzw. eingespeisten Energiemengen zählt. In meinem Fall wurde ein ISKRA eHZ MT691 eingebaut. Nach Inbetriebnahme der PV Anlage zeigte sich, dass nur etwa 1/3 der erzeugten Energie selbst verbraucht und 2/3 ins Netz eingespeist werden, obwohl die Anlage nur maximal 600W liefert. Möchte man die eingespeiste Energie selber nutzen, muss man wissen, ob, und wie viel Energie eingespeist wird, um diese dann auf ein Minimum zu regeln. Dazu dient die unten beschriebene Schaltung. Für die Schaltung wird ein Mikrocontroller PIC16F1827 verwendet, der mit einem geeigneten Programmiergerät programmiert werden muss. Ist kein geeignetes Programmiergerät vorhanden, kann ein einfaches Gerät (JDM- Programmer) selbst gebaut werden. Voraussetzung hierfür ist ein PC mit "echter" 9-poliger RS232 Schnittstelle (USB auf RS232 Adapter funktionieren in der Regel nicht).

Energiezähler ISKRA eHZ MT691

Um den Zähler auslesen zu können wird der 4-stellige Pin des Zählers benötigt. Diesen erhält man von seinem Netzbetreiber. Die Pin Eingabe und Bedienung des Zählers erfolgt über Lichtimpulse. Hierfür eignet sich am besten eine Taschenlampe mit einer Glühbirne, da diese ausreichend Infrarotstrahlung aussendet. Zur Aktivierung der optischen Infrarot Schnittstelle muss der Menüpunkt “Inf “ im Zähler auf “on“ gesetzt werden. Ist die Infrarot Schnittstelle aktiviert, sendet sie pro Sekunde einen Datensatz, bestehend aus ca. 235 Byte (die Anzahl kann um einige Byte variieren). Die Übertragung erfolgt seriell mit einer Baudrate von 9600, d.h. pro Sekunde werden 9600 Bits übertragen. Die Übertagung jedes einzelnen Byte erfolgt mit einem Start Bit ( => 0 ), gefolgt von 8 Daten Bits und einem Stop Bit ( => 1 ). Von den 8 Daten Bits wird das Bit mit der geringsten Wertigkeit (LSB) zuerst gesendet, das Bit mit der höchsten Wertigkeit (MSB) zuletzt. Nachfolgend als Beispiel ein Datensatz für den ISKRA eHZ MT691 in hexadezimaler Schreibweise: 1B 1B 1B 1B 01 01 01 01 Start der Datenübertragung 76 05 01 67 E4 94 62 00 62 00 72 63 01 01 76 01 01 05 00 77 F6 DC 0B XX XX XX XX XX XX XX XX XX XX X = Server ID / Zählernr. 72 62 01 65 00 77 F4 BA 62 01 63 EA 5C 00 76 05 01 67 E4 95 62 00 62 00 72 63 07 01 77 01 0B XX XX XX XX XX XX XX XX XX XX X = Server ID / Zählernr. 07 01 00 62 0A FF 72 62 01 65 00 77 F4 BA 75 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4B 01 77 07 01 00 60 01 00 FF 40 40 40 40 0B XX XX XX XX XX XX XX XX XX XX 01 X = Server ID / Zählernr. 77 07 01 00 01 08 00 FF 59 1C A9 04 01 62 1E 52 FF 65 00 2B FA 3A 01 Zähler Bezug (1.8.0): 288,2106 kWh 77 07 01 00 02 08 00 FF 01 01 62 1E 52 FF 65 00 11 AC BD 01 Zähler Lieferung (2.8.0): 115,8333kWh 77 07 01 00 10 07 00 FF 01 01 62 1B 52 00 52 6A 01 Leistung (16.7.0): 106W 01 01 63 67 80 00 76 05 01 67 F2 28 62 00 62 00 72 63 02 01 71 01 63 10 33 00 00 00 1B 1B 1B 1B 1A 02 A1 A1 Ende der Datenübertragung An Hand der Zeile für den Zähler Bezug werden die einzelnen Byte näher erläutert: 77 07 01 00 Start einer Kennzahl 01 08 00 FF Kennzeichnung für Wirkenergie Gesamt Bezug 1.8.0 59 1C A9 04 01 62 1E 52 FF wird nicht ausgewertet 65 Längenbyte: 6 = 4 Nachkommastellen bezogen auf kWh 5 = 4 Byte Daten 00 2B FA 3A 4 Byte Daten: 2882106 => 4 Nachkommastellen: 288,2106 kWh 01

Andere Zähler

Das Programm wurde ursprünglich für den Zweirichtungszähler ISKRA eHZ MT691 geschrieben, sollte aber auch für andere moderne Zweirichtungszähler einsetzbar sein, da diese mit einem vergleichbaren Protokoll arbeiten. Auf Grund des begrenzten Daten-/Programmspeichers des PIC16F1827 sind folgende Einschränkungen zu beachten: Der Datensatz muss die Kennzahlen in folgender Reihenfolge und innerhalb von 240 Byte enthalten: 1. Wirkenergie Gesamt Bezug 1.8.0 2. Wirkenergie Gesamt Einspeisung 2.8.0 3. Leistung Gesamt Bezug/ Einspeisung X.X.X (die Kennung kann im Menü angepasst werden) Zulässige Werte für Nachkommastellen (Längenbyte 1ste Ziffer hexadezimal => obere 4 Bit) bezogen auf kW bzw. kWh: 4 = 2 Stellen, 5 = 3 Stellen, 6 = 4 Stellen Zulässige Werte für Anzahl Daten Bytes (Längenbyte 2ste Ziffer hexadezimal => untere 4 Bit): 2 (1 Byte) bis 9 (8 Byte).

Programmablauf

Nach dem Empfang eines Byte vom Energiezähler über den optischen Lesekopf wird von dem USART Empfänger (Universal Synchronous/Asynchronous Receiver Transmitter) ein Interrupt ausgelöst und das empfangene Byte auf Übereinstimmung mit der Sequenz 77 07 01 00 01 08 00 FF (Wirkenergie Gesamt Bezug 1.8.0) geprüft. Entsprechen 8 aufeinanderfolgende Bytes dieser Sequenz, werden diese und die folgenden Bytes des aktuellen Datensatzes in den 240 Speicherplätzen der Bank 1 bis 3 abgelegt. Das nicht der gesamte Datensatz abgelegt wird, liegt an dem begrenzten Datenspeicher des PIC16F1827. Die Übertragung des Datensatzes gilt als beendet, wenn innerhalb von ca. 8ms kein Byte empfangen wird. Anschließend werden die Daten für Wirkarbeit Bezug und Einspeisung ausgelesen, auf 2 Nachkommastellen umgerechnet und in entsprechenden Registern gespeichert. Die Speichertiefe beträgt 32 Bit, d.h. der maximale Zählerstand ergibt sich damit zu 42.949.672,95 kWh, wobei auf dem Display nur 6 Stellen vor dem Komma und 2 Nachkommastellen angezeigt werden. Die momentane Wirkleistung wird auf volle Watt ohne Nachkommastellen umgerechnet und mit 24 Bit Tiefe gespeichert, wobei das 24te Bit angibt, ob die Leistung bezogen (=> 0) oder eingespeist (=> 1) wird. Damit ergibt sich eine maximale Leistung von +/- 8.388.607 W, wovon nur 6 Stellen angezeigt werden. Ist der interne PI-Regler (PI => proportional/integral) aktiviert, werden anschließend die Regelparameter berechnet. Aus der momentanen Leistung P und der Nennleistung des angeschlossenen Verbrauchers P last wird die Regelabweichung berechnet: Regelabweichung = P / P last Der P-Anteil des Reglerausgangs Ro ergibt sich zu: P-Anteil = Regelabweichung x Kp Kp = Proportionalitätsfaktor Der I-Anteil des Reglerausgangs Ro wird alle 0,2 Sekunden berechnet und ergibt sich zu: I-Anteil = 0,2s x Regelabweichung / Tn Tn = Nachstellzeit in Sekunden Aus P-Anteil und I-Anteil wird der Reglerausgang Ro berechnet: Ro = P-Anteil + I-Anteil Die Berechnung von Ro erfolgt mit 8 Bit Auflösung und wird an Pin 6 (RB0) von IC2 als PWM Signal (pulse width modulation) mit ebenfalls 8 Bit Auflösung ausgegeben. Die Taktfrequenz beträgt 3,9 kHz. Der Temperatursensor (NTC 10k) wird ebenfalls alle 0,2 Sekunden abgefragt und die Spannung über den AD-Wandler und eine Tabelle in Temperaturwerte umgerechnet. Bis 4°C unterhalb der eingestellten maximalen Temperatur kann der Regler bis 100% betrieben werden, danach reduziert sich das maximale Regelsignal um 25%/°C. Bei einem Bruch oder einem Kurzschluss in der Temperatursensor Leitung wird der Regler abgeschaltet, d.h. das Regelsignal geht auf 0%. Aus Sicherheitsgründen wird der Regler ebenfalls abgeschaltet, wenn innerhalb von 10 Sekunden kein Leistungssignal empfangen wird. Wird mit dem Regler ein Leistungssteller mit hohem Standby Stromverbrauch angesteuert, kann dieser z.B. über ein elektronisches Relais nach einer einstellbaren Zeit abgeschaltet werden, wenn keine Überschussleistung vorhanden ist, z.B. nachts. Hierfür wird Pin 8 von IC2 (RB2) auf Low gelegt. Ist ein zusätzlicher Energiezähler für die PV-Anlage mit Impulsausgang installiert, werden die Impulse mit 2 Nachkommastellen in kWh umgewandelt und gleichzeitig die Zeit zwischen 2 Impulsen in Leistung umgerechnet. Hat der Zähler z.B. einen Impulsausgang von 1000 Imp/kWh und die PV-Anlage erzeugt 600W, beträgt die Zeit zwischen 2 Impulsen 6 Sekunden, d.h. es wird alle 6 Sekunden die mittlere Leistung für diese Zeit berechnet. Bei einer Leistung von 60W erhält man nur noch alle 60 Sekunden einen Wert für die mittlere Leistung. Die angezeigten Werte auf dem Display werden jede Sekunde aktualisiert und alle 4 Sekunden nacheinander die Werte der Zähler für Bezug und Einspeisung, der Zähler für die produzierte Energie und aktuelle Leistung der PV-Anlage (falls ein entsprechender Zähler installiert ist) und die aktuelle Wirkleistung, der Reglerausgang in % und die Heizungstemperatur in °C angezeigt.

Beschreibung der Schaltung

Die Elektronik besteht im Wesentlichen aus dem Mikrocontroller IC2, Eingabetaster, Display und dem optischen Lesekopf. Die Hauptarbeit innerhalb der Schaltung übernimmt der Mikrocontroller PIC16F1827 (IC2) mit 4MHz Quarzoszillator. Das Programm wird mittels der Datei Solaranlage_P16F1827_V20.hex in den Mikrocontroller geladen. Die Datei befindet sich in dem Download Ordner am Ende der Seite. Wer noch Änderungen am Programm vornehmen möchte, findet in dem Ordner auch die Assembler-Datei Solaranlage_P16F1827_V20.asm. Über die 5-polige Stiftleiste SV1 kann der PIC im eingebauten Zustand in der Schaltung programmiert werden (ICSP = In Circuit Serial Programming), ich empfehle jedoch die Programmierung im Programmiergerät. Über Klemme KL3/4 wird die Schaltung mit Strom versorgt. Dieses kann über eine Wechselspannung von ca. 5-12V oder eine Gleichspannung von ca. 8-18V erfolgen ( Ich nutze den in der Hausverteilung vorhandenen Klingeltransformator mit 6V Wechselspannung ). Mittels IC1 wird die für die Schaltung benötigte Spannung von 5V generiert. Alternativ kann auch ein 5V Schaltnetzteil (z.B. USB Ladegerät) verwendet werden. In dem Fall können D1, C1, C2 und IC1 entfallen. Die Genauigkeit der internen Uhr ist abhängig von der Genauigkeit des Quarzoszillators, bestehend aus Q1 und C6/C7. Geht die Uhr vor, kann durch Vergrößern von C6 und/oder C7 die Frequenz geringfügig reduziert werden, geht die Uhr nach, C6 und/oder C7 verkleinern. Die Abhängigkeit beträgt ca. 10pF pro Sekunde und Tag. Ist für die Messung der Energieproduktion der PV-Anlage ein Energiezähler mit Impulsausgang vorhanden, kann dieser an Pin 3 von IC2 (RA4) angeschlossen werden. Die Impulsrate kann zwischen 1.000 und 10.000 Impulsen pro kWh liegen. Da der Eingang RA4 extrem empfindlich ist, wird er durch das RC Glied R2/C5 bedämpft. Für die Temperaturmessung in Verbindung mit der Regelung wird ein 10k NTC Widerstand an Pin 9 von IC2 (RB3) angeschlossen. Dieser bildet mit R4 einen temperaturabhängigen Spannungsteiler. Wird die Temperaturmessung nicht benötigt, kann für den NTC Widerstand ein Festwiderstand von 10k verwendet werden. An Pin 8 von IC2 (RB2) kann entweder ein On/Off Signal ausgegeben werden, das zum Ein- bzw. Ausschalten eines angeschlossen Verbrauchers genutzt werden kann, oder es kann die momentane Wirkleistung in Watt mit 16 Bit Auflösung ausgegeben werden, wobei das 24te Bit angibt, ob die Leistung bezogen (=> 0) oder eingespeist (=> 1) wird. Die Ausgabe erfolgt mit 9600 Baud.

Optischer Lesekopf

Wer freien Zugang zu dem Stromzähler hat, kann sich einen fertigen TTL IR Lesekopf

beschaffen (z.B. ebay). Dieser hat den Vorteil, dass er mittels Magnet direkt am

Zähler befestigt werden kann.

Bei mir befindet sich der Zähler in einem verplombten Zählerkasten, daher habe ich

mich für den Selbstbau entschieden und den Lesekopf von außen am Zählerkasten

befestigt. Für diesen Fall ist eine genaue Ausrichtung des Lesekopfs wichtig.

Das IR-Signal vom Zähler wird von dem IR-Fototransistor SFH309 FA-4 (T4) in ein

Stromsignal gewandelt und durch T3 weiter verstärkt, sodass das Signal am

Kollektor von T3 mit TTL Pegel vorliegt. Über das Anschlusskabel wird das Signal mit

Pin 7 des Mikrocontrollers verbunden.

Display/Taster

Als Display wurde ein LCD Display EA DOGM162. Die Vorteile dieses Typs gegenüber anderen LCD Displays sind:

- gute Lesbarkeit bei kleiner Baugröße

- serielle Ansteuerung (nur 6 Leitungen zum Display erforderlich)

- keine Spannung zur Kontrasteinstellung erforderlich

- Display und Hintergrundbeleuchtung getrennt, dadurch viele Kombinationen möglich.

Für die Übertragung der Daten vom Mikrokontroller zum Display wird Pin17 von IC2 auf Low gelegt (Disp.:CS).

Anschließend wird Pin18 (Disp.:RS) für einen Befehl auf Low, für Daten auf High gelegt und dann die 8 Bit Befehl/Daten

seriell über Pin1 (clock) und Pin2 (data) an das Display gesendet.

Die Hintergrundbeleuchtung ist abhängig von der Umgebungshelligkeit. Bei geringer Helligkeit ist der Fototransistor T1 und

damit auch T2 hochohmig, der LED Strom fließt durch R7 (ca. 0,5mA). Bei steigender Helligkeit werden T1 und T2 leitend,

der LED Strom steigt an und wird durch R6 auf ca. 8mA begrenzt. Wird auf die Helligkeitssteuerung verzichtet, sollte für R7

ein Widerstand von 100 bis 470 Ohm verwendet werden.

Die Bedienung erfolgt über die Bedientaster Ta1-Ta4. Die Taster liegen an den Pins 10 (RB4) bis 13 (RB7) und werden

durch interne Pull-Up Widerstände auf High gehalten. Wird ein Taster gedrückt, wird der entsprechende Eingang auf Masse

gezogen und damit aktiviert.

Mit Ta1 (Set) wird das Menü aufgerufen, in dem einige Grundeinstellungen vorgenommen und die Zählerstände der letzten

14 Tage sowie des letzten Monats abgerufen werden können. Über das Menü kann auch ein kompletter Datensatz des

Energiezählers ausgelesen werden.

Alle gewählten Einstellungen werden in dem internen EEPROM gespeichert und beim Einschalten des Gerätes geladen,

d.h. das Gerät startet mit den zuletzt benutzten Einstellungen.

Eine ausführliche Beschreibung findet sich in der Bedienungsanleitung im Downloadordner am Ende der Seite.

Aufbau der Elektronik

Ich habe die gesamte Schaltung auf Streifenrasterplatinen aufgebaut (siehe auch Sonstiges => Streifenrasterplatinen). Die Platine für das Display und die Taster sind mit einem 10 poligen Kabel und Steckverbinder mit der Hauptplatine verbunden, wobei die Kabel von der Leiterbahnseite in die Platine für Display/Taster eingelötet werden. Das Platinenlayout, ein Bestückungsplan, eine Zeichnung für Leiterbahnunterbrechungen, sowie die Stückliste befinden sich im Download Ordner am Ende der Seite. Nachfolgend noch einige Fotos des Aufbaus.

Nutzung des PV-Überschuss

Sinnvoll wäre, den Überschuss zum laden eines Solarstromspeichers zu nutzen, was allerdings ziemlich aufwendig und teuer ist. Als Alternative kann mit dem Überschuss eine elektrische Heizung zum Heizen in der Übergangszeit oder zur Warmwasserbereitung betrieben werden. Diese wird man sinnvollerweise mit Netzspannung betreiben, daher bitte den folgenden Abschnitt aufmerksam lesen: !!! Achtung Netzspannung !!! Arbeiten an oder mit Netzspannung sollten nur von autorisierten Personen durchgeführt werden. Der Nachbau erfolgt auf eigenes Risiko des Nutzers. Der Nutzer trägt die alleinige Verantwortung für die Einhaltung aller geltenden Sicherheitsvorschriften. Der Autor übernimmt keinerlei Haftung für Sach- oder Personenschäden, die durch die Verwendung oder Nichtverwendung der dargebotenen Information entstehen. Siehe auch Haftung Als Heizelement eignen sich PTC Heizstäbe, da diese in beliebiger Lage eingebaut werden können und überhitzungsfest sind, d.h. sie benötigen keinen zusätzlichen Sicherheitsthermostaten. Für die Ansteuerung des Heizelements eignet sich z.B. der M240 Leistungsregler der Firma KEMO. Dieser kann Verbraucher bis 2000 W an 230 V stufenlos steuern. Die Leistungssteuerung kann über ein Potentiometer, eine Gleichspannung von 0-10V oder ein PWM Signal erfolgen und kann damit direkt von dem oben beschriebenen Regler mit PWM Ausgang angesteuert werden. Ein weiterer Vorteil des M240 ist der geringe Standby Verbrauch von <1W. Bei Verwendung des M240 sollte in jedem Fall der in dem Datenblatt empfohlene EMV Filter vorgeschaltet werden, um Störsignale zu minimieren. Wird die Heizung zur Brauchwassererwärmung verwendet, ist in jedem Fall ein FI-Schutzschalter einzubauen. Ich empfehle dringend, die Installation durch eine Fachfirma vornehmen zu lassen, da hier absolute Lebensgefahr besteht!!!

Download

Der unten aufgeführte Ordner beinhaltet alle relevanten Dateien, die für den Nachbau benötigt werden (siehe auch Sonstiges => Zeichnungen). Solaranlage.zip 28.09.23 Seite erstellt 25.10.23 Softwarefehler korrigiert 21.01.24 Software Update: höhere Speichertiefe Zählerstände/Leistung, Zählerstände für letzte 14 Tage abrufbar 24.01.24 Fehlende Leiterbahnunterbrechung auf Displayplatine nachgetragen, Stückliste korrigiert. Danke Andreas!
PV-Überschuss Regler