Private Website von Niklas Menke

Elektrotechnik und mehr...

Netzfrequenz: - Hz
-

Netzfrequenz


(Etwa alle 30s wird ein neuer Messwert ermittelt. Dieses Diagramm gibt nicht den exakten Verlauf der Netzfrequenz wieder.)


Ideenursprung

Im Herbst des Jahres 2019 habe ich ein Universalmessgerät des Herstellers Janitza (UMG 96 S; 52.13.025) in unsere Unterverteilung eingebaut. Dieses Gerät verfügt über drei verschiedene Schnittstellen, worüber eine Kommunikation mit dem Profi- bzw. Modbus-Protokoll (RTU) möglich ist. Ursprünglich war die Idee, dass die RS232 Schnittstelle an einem RS232-Ethernet-Converter angeschlossen und so eine Fernauswertung mit der originalen Software von Janitza am PC ermöglicht wird.

Allerdings war die Software, die eine emulierte serielle Schnittstelle zur Verfügung stellt, nicht mit der Auswertesoftware von Janitza kompatibel. So entstand die Idee, ein Arduino zum Auslesen der Messdaten zu verwenden und die Werte dann online zu visualisieren.

Hardware

Die Messdaten werden durch ein Janitza UMG 96 S (52.13.025) Universaleinbaumessgerät zur Verfügung gestellt. Dieses habe ich gebraucht bei Ebay ersteigert.

Netzspannung ist lebensgefährlich! Ein unsachgemäßer Umgang kann zu schweren Person- und/oder Sachschäden führen.
Daher dürfen Arbeiten an entsprechenden Anlagen, bzw. der Netzspannung nur durch fachkundige und ausgebildete Personen unter Berücksichtigung der Normen und aller Sicherheitsregeln (5S: Freischalten; Gegen Wiedereinschalten sichern; Spannungsfreiheit feststellen; Erden und Kurzschließen; Benachbarte, unter Spannung stehende Teile abdecken oder abschranken) durchgeführt werden.
Es wird keinerlei Haftung für eventuelle Person- und/oder Sachschäden übernommen.

Die Daten werden mithilfe eines Arduino Uno Mega* von dem Gerät abgefragt. Durch ein Ethernet-Shielt ist der Arduino mit dem Internet verbunden. Die Konvertierung der RS232 Schnittstelle hin zum TTL-Pegel übernimmt ebenfalls ein fertiges Board.

Zur Kenntlichmachung des aktuellen Status des Arduinos bzw. des Programms, wurden drei 3mm-LEDs auf eine Lochrasterplatine gelötet. So wird der Status ready ("Alles gut"), process (Der Arduino fragt gerade Daten ab oder sendet diese an den Server) und error angezeigt. Die error-LED blinkt dabei mit einem bestimmten Takt, sodass daraus der genaue Fehler abgelesen werden kann (Ethernet-Shield nicht erkannt, Daten konnten nicht abgefragt werden, ...).

*Da der Mikrocontroller mittlerweile ein paar mehr Aufgaben zu erfüllen hat, wurde der Arduino Uno durch ein Arduino Mega ersetzt (Siehe Smartmeter auslesen).

Software

Arduino-Sketch

Für die Umsetzung des Modbus RTU Protokolls wird die ModbusMaster Bibliothek verwendet. Der Vorteil dieser Bibliothek gegenüber der Standard-Bibliothek (ArduinoModbus) ist, dass der Sketch kleiner Compiliert wird. Darüber hinaus habe ich bei dieser Bibliothek die Möglichkeit, die verwendete serielle Schnittstelle auszuwählen, wohingegen die Standard-Bibliothek immer die erste serielle Schnittstelle (Serial; Pin 0 und 1) verwendet. Für das Ethernet-Shield wird die Standard Ethernet-Bibliothek verwendet.

Der Sketch fragt alles zehn Sekunden die Daten von dem Messgerät ab und speichert diese, durch ein Semikolon getrennt, in einem String ab. Dieser String wird schließlich mit einer POST-Anfrage an ein Server gesendet.


Server

Daten vom Arduino empfangen

Das Empfangen der Daten von dem Arduino und die Weiterverarbeitung auf dem Server wird durch ein PHP-Skript umgesetzt. Dieses Skript empfängt den gesendeten String, zerlegt Diesen und speichert die einzelnen Werte in ein Array. Darauffolgend wird eine Verbindung zur einer MySQL-Datenbank mithilfe der PDO-Klasse aufgebaut. Dadurch können die einzelnen Werte in die entsprechenden Tabellen eingetragen werden. Unter Umständen werden einige Werte umgerechnet.

Daten aus der Datenbank abfragen

Das Skript kann auf zwei Verschiedene Arten die Werte der Messparameter bereitstellen:

  1. Einen Wert für jeden Messparameter (Zum Aktualisieren der Anzeigen)
  2. Mehrere Werte für ein Messparameter aus einem bestimmten Zeitintervall (Zum Anzeigen des zeitlichen Verlaufs)
    1. Die einzelnen Messwerte werden (wie bei dem Arduino) durch ein Semikolon getrennt aneinandergereiht ausgegeben.


      Webseite

      Grafische Anzeigen

      Zur visuellen Darstellung der Netzparameter verwende ich die Canvas Gauges Bibliothek. Diese Bibliothek ermöglicht es ziemlich einfach, unterschiedliche Anzeigen mit canvas-Elementen in die HTML einzubinden und mit JavaScript zu definieren.

      Ein JavaScript holt mit dem AJAX-Verfahren alle 10 Sekunden neue Werte von dem Server und aktualisiert dementsprechend die Anzeigen.

      Die Einbindung einer Anzeige auf der Webseite sieht bei mir zum Beispiel so aus:

      Zeitlicher Verlauf

      Zur Darstellung des zeitlichen Verlaufs wird die Chart.js Bibliothek genutzt. Auch hier kann ein Koordinatensystem mit einem canvas-Element in die HTML eingebunden und mit JavaScript definiert werden.

      Das Diagramm mit dem zeitlichen Verlauf eines Netzparameters wird angezeigt, wenn auf die entsprechende grafische Anzeige geklickt wird. Dort kann ebenfalls der zeitliche Bereich angepasst werden. Oberhalb des Periodensystems können die jeweiligen Netzparameter der anderen Phasen oder der Summenwert ein-, bzw. ausgeschaltet werden.

      Da die Seite mehrsprachig aufgebaut ist, wird zusätzlich ein weiteres Skript benötigt. Dieses lädt notwendige Textfragmente aus einer XML-Datei und stellt Diese dem charts.js Skript zur Verfügung.

      Materialliste

      In der nachfolgenden Liste sind alle von mir verwendeten Materialien aufgelistet.

      Bauteil Bezeichnung / Wert Gehäuse / Bauform Benennung Menge
      Netzanalysegerät Janitza UMG96S - - 1
      Stromwandler ENT.30 50/5 5VA - - 3
      Leitungsschutzschalter Dreiphasig; Charakteristik B; 6A - - 1
      Arduino Uno - - - 1
      Ethernet Shield WizNet W5100 - - 1
      RS232 TTL Adapter MAX3232 DSUB9-Buchse - 1
      RS232 PC-Kabel - RJ11 Stecker; DSUB9-Stecker - 1
      Verbrauchsmaterial 3mm LEDs, Taster, Lochrasterplatine, Filament - - -

      Diese Seite soll nur meine technische Umsetzung aufzeigen. Natürlich können auch andere Materialien verwendet werden.

      Ergebnis

      Da ich unsere Netzparameter ungern Preisgeben möchte, kann das "fertige" Ergebnis nachfolgend mit Zufallswerten betrachtet werden:

      Zur Netzanalyse

Diese Website verwendet zur Darstellung einiger Inhalte externe Dienste und Cookies.

Nachfolgend können Sie die einzelnen Dienste ein- bzw. ausschalten.
Diese Einstellungen können jederzeit im Footer der Website angepasst werden.

Technisch notwendig (Cookie-Präferenzen, Design)
Font Awesome (Symbole)
Google Fonts (Schriftart)
Google reCAPTCHA (Formularschutz)
Sketchfab (3D-Inhalte)

Weitere Informationen finden Sie in der Datenschutzerklärung.

Datenschutzerklärung