Wir wechseln das Forum am 14.11.24 auf die Forensoftware Discourse. Zwischen Montag Abend und Dienstag Nachmittag wird das Forum deaktiviert. Danach sind wir hoffentlich mit neuem Forum inkl. der vorhandenen Beiträge wieder am Start! Hier zum Forenbeitrag!

Benachrichtigungen
Alles löschen

[Oben angepinnt] Sun GTIL2-1000 RS485 Interface

1,623 Beiträge
199 Benutzer
121 Reactions
165.7 K Ansichten
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Hallo zusammen.

Ich bin ganz neu hier und nur Mitglied geworden um ein Interface zu erhalten.

Erst einmal Hut ab vor Trucki für die Umsetzung des Interface.

 

Mein Ziel ist es über eine S7-1200 in Kombi mit GTIL2-1000 und einem SDM630Modbus-V3 via Modbus eine akkugepufferte Nulleinspeisung umzusetzen.

Nach erfolgreicher Umsetzung werde ich das Projekt hier mit kompletter Doku vorstellen.

@ Trucki: Du hast eine PN

 

Grüße an alle

Druckluftotto


   
AntwortZitat
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Gelöscht wegen Dreifachpost


   
AntwortZitat
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Gelöscht wegen Dreifachpost.

Bin noch nicht so vertraut mit den Sendemechanismen….

Nerd


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 414
Themenstarter  

@juergschwarz : Häng doch als erstes mal ein Terminalprogramm (z.B. Putty oder Arduino Monitor, o.ä.) mit 9600Baud (8N1) an das WEMOS. Dann haben wir einen LOG Output, der uns vielleicht mehr sagt.

Einen Config Wipe machst Du in dem Du D0 mit D5 verbindest und dann Reset drückst. Auch hier hilft der USB Log output.

Das Du nur alle ~20s einen Ping zurückbekommst klingt für mich nach einem IP Konflikt (WEMOS IP Adresse 2x vergeben?), oder schlechtem WLAN Empfang. Vielleicht kannst Du dann wenn mein Board da ist mal testen, ob sich die Antwortzeit des Pings verändert, wenn meine Platine an das WEMOS angeschlossen ist? Dazu muss sie nicht zwingen in den Inverter eingebaut sein.

Viele Grüße,

Trucki

 


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 414
Themenstarter  

@druckluftotto: Hallo,

nein meine Platine kann nur 9600baud. Welchen Vorteil bringt es Dir das SDM630 mit 38kbaud auszulesen? Der "total power" Wert wird sowieso nur alle ~500ms geupdatet. Öfter auslesen führt zu doppelten Werten.

Ich würde immer ein 48V System aufbauen, da sich die Ströme in den Kabeln halbieren und die Kosten für die 7-8Zellen mehr überschaubar sind. Aber vielleicht hast Du ja Gründe für ein 24V System.

Ich kenne mich nicht gut mit S7 aus. Wenn schon programmieren, dann würde ich auf einen Mikrocontroller setzen wo ich die Latenzzeiten im Griff habe.

Viele Grüße,

Trucki


   
AntwortZitat
(@tobi0171)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 36
 

Hallo,

ich wollte mal ein kurzes Feedback hinterlassen, da der Einbau/Umbau der Trucki-Platine T2SG mit V1.03 bei mir eigentlich auf Anhieb problemlos geklappt hatte.

Zur mir, technisch visiert, wenig leichte Grundkentnisse in der Elektrotechnik und ungeübt im Umgang mit dem Lötkolben, bin eher konstruktiv und mechanisch filigran veranlagt. 

Vorhandenes Setup SUN1000 - v7.x, 24V-System, Shellys unter anderem auch den EM3.

Am schlimmsten war es, am Wemos D1 Pro den 0-Ohm Widerstand um 90 Grad versetzt zulöten, dass die externe Antenne funktioniert. Dies hatte bei mir anfangs zu Problemen geführt, da die Verbindung nicht korrekt gelötet wurde und somit keine Kommunikation möglich war.

Zum flashen des Wemos habe ich "ESP.Easy.Flasher" verwendet. Verwendet habe ich die aktuelle Bin-Datei ( bei mir v1.03) von der Github-Seite.

Ich nutze den Aufbau derzeit lediglich zwischen SUN und EM3, da ich nicht sonderlich bewandert bin, was MQTT oder weiterführende Programmierungen angeht. Für mich erfüllt die Platine aber so bereits Ihren Zweck. Daher verfolge ich mal die weiteren Einträge hier im Forum, vielleicht steige ich ja auch hier noch irgendwann durch Smile

Der Bausatz an sich ist wirklich genial. Super Arbeit Trucki, Danke !!!!

 

@Trucki

Kurze Fragen am Rande, die ggf. beantwortet werden könnten.

  1. Hab den Wemos D1 Mini Pro verbaut, würde alternativ auch der Wemos D1 Mini funktionieren?
  2. Was würde passieren, wenn 2 Stück SUN1000 gleichzeitig mit der „Trucki-Platine“ arbeiten? Vermutlich stören sich die beiden?
  3. Wie reagiert die Steuerung bei Überschuss in Verbindung mit z.B nur einer kleinen 600W Balkon-PV, wenn der Messwert ins Minus geht (z.B. Einspeisung – wenig Verbrauch, keiner Zuhause, hoher Ertrag im Sommer).
  4. Über welche Funktionen/Möglichkeiten kann ich nachträglich noch Werte verändern/anpassen? z.B die Anpassung der 50W auf ca. 20W „Nulleinspeisung“ verstellen, oder nachträglich noch die Max. Watt von ursprünglich 850W (bei mir jetzt z.B. 250W eingestellt) anpassen ohne das Gehäuse noch mal aufzuschrauben und den Wemos zu flashen. (USB-Anschluss aus dem Gehäuse führen?)
  5. Was würde beim falshen des WEMOS im "Zusammengebautem Zustand" passieren? Oder muss der Wemos immer ausgebaut und einzepn vor mir liegen um einen neue Bin zu flashen?

Beste Grüße und allen frohes Schaffen

  


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 414
Themenstarter  

@tobi0171 Hallo Tobi,

Vielen Dank für deinen Bericht. Immer schön zu lesen das auch was funktioniert 😉

- Ja ein WEMOS D1 mini ohne Pro geht auch. Allerdings ist der WLAN Empfang bei geschlossenem Gehäuse schon schlecht.

- Mehrere RS485 Platinen an einem RS485 Bus geht natürlich mit unterschiedlichen Modbus IDs. Bei mehreren T2SG (Trucki2ShellyGateway) kommt es drauf an. MQTT wird nicht funktionieren, da sich die mehreren T2SG alle beim Broker anmelden und nicht zu unterscheiden sind. Da werde ich wohl noch mal einen konfigurierbaren MQTT Device Name einbauen müssen. Ein Shelly 3EM für mehere T2SG könnte funktionieren, wenn man die JSON Keys so konfiguriert, dass jedes T2SG auf eine andere Phase (L1,L2,L3) guckt.

- Das Balkonkraftwerk speist ein, der Total-Power Wert vom Shelly wird negativ und das T2SG wird die Leistung von SUN Inverter bis auf minimal 0W (beim SUN2000 75W) reduzieren.

- Umkonfigurieren geht aktuell nur mit einem Config-Reset (D0 mit D5 verbinden + Reset Button) . Umbau des WebServers, um "online" Werte zu konfigurieren steht ganz oben für die nächste Version.

- Ich würde das WEMOS zum flashen ausbauen. Vermutlich passiert garnichts. Eventuell stört meine RS485 Platine die Kommunikation und das flashen schlägt fehl.

Viele Grüße,

Trucki

 


   
Pali reacted
AntwortZitat
(@ul5255)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 3
 

Liebe Forenten,
Ich habe am Wochemende ebenfalls meine Platine bekommen, eingebaut und getestet. Es hat alles
erstaunlich gut funktioniert, ich hatte nur ein kleines Problem, vielleicht hilft die Loesung anderen.
Mein Setup ist: Ubuntu Steuerrechner -> USB/RS485 Konverter -> Sun/Trucki Platine.

Unter Ubuntu habe ich mbpoll installiert, leider lief am Anfang die Kommunikation nicht.
Der Fehler war, dass mbpool per default mit Parity == even arbeitet, waehrend die Trucki
Platine mit Parity == none arbeitet. Folgender Aufruf ist also zu verwenden:

mbpoll -a 1 -b 9600 -P none -t 3 -r 1 -c 6 /dev/ttyUSB0

Man beachte die Option

-P none

welche so in Trucki's Github Seite (noch ?) nicht steht.

Hinterher noch eine Frage: Das RS485 Interface auf der Trucki Platine hat nur A/B
Pins. Soweit ich RS485 verstehe, muss ich fuer definierten/stabilen Betrieb auch
GND verbinden. Der UART Port auf der Platine macht das ja auch so. Hat jemand
RS485 bereits mit drei Kabeln (A, B und GND) verbunden?


   
AntwortZitat
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Zur Info bezgl. GND

 

Physikalisches Übertragungsverfahren:

Die seriellen Daten werden, wie bei RS422-Schnittstellen, ohne Massebezug als Spannungsdifferenz zwischen zwei korres­pondierenden Leitungen übertragen. Für jedes zu übertragende Signal existiert ein Aderpaar, das aus einer invertierten und einer nicht invertierten Signalleitung besteht. Die invertierte Leitung wird in der Regel durch den Index "A" oder "-" gekennzeichnet, während die nicht invertierte Leitung mit "B" oder "+" bezeichnet wird.

Der Empfänger wertet lediglich die Differenz zwischen beiden Leitungen aus, so dass Gleichtakt-Störungen auf der Übertragungsleitung nicht zu einer Verfälschung des Nutzsignals führen.

RS485-Sender stellen unter Last Ausgangspegel von ±2V zwischen den beiden Ausgängen zur Verfügung; die Empfängerbausteine erkennen Pegel von ±200mV noch als gültiges Signal.

 


   
AntwortZitat
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Wer weitere Infos zu RS485 sucht hier ein Link.

 

https://www.wut.de/e-6wwww-11-apde-000.php

Ist dort verständlich beschrieben.

Daher ist auch der Inhalt aus den vorherigem Post

 

Grüße aus Wuppertal 

Otto


   
AntwortZitat
(@druckluftotto)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 8
 

Ich nochmal mit einem Nachtrag bezgl. GND

Wird RS485 über größere Entfernungen genutzt sollten STP Leitungen genutzt werden.

STP = Shielded Twisted Pair = Geschirmte verdrillte Paare

Der Schirm der Leitung sollte bei Signalleitungen einseitig durchgängig auf GND verbunden sein.

Zweiseitiges Auflegen kann zu Potentialausgleichsströmen über den Schirm führen was wiederum zu Störungen

des RS485 Signals führen kann.

Glücklicherweise ist das von RS485 genutzte Spannungsdifferenzsignal sehr störunanfällig.

Ohne Repeater sind bei vernünftigen Leitungen (STP 120 Ohm Wellenwiederstand) ohne weiters 

Leitungslängen von 1200 m möglich.

Modbus-RTU-Telegramme bei 9600 Baud können aber bei kurzen Leitungen auch über nasse Lappen übertragen werden… Grinning  

 

So, genug rumgeklugscheißert.

Schönen Abend

Otto

 


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 414
Themenstarter  

Hallo Ul5255, Hallo Otto,

vielen dank für die gute Frage und die gute Antwort.

Beide haben Recht! Otto, da RS485 differentiell ist und daher eigentlich keinen GND braucht.

UL5255, weil meine Platine zu 100% galvanisch getrennt ist und damit eigentlich in der Luft hängt.

Ich gebe zu, dass das es schöner wäre, wenn ich einen GND meiner Platine nach außen gelegt hätte und man die Platine auf den GND seiner Steuerung ziehen könnte. Ich habe mich dagegen entschieden, da der Stecker des Limiters den ich für den RS485 verwende nur 2-polig ist und ich noch nie eine Störung beobachtet habe.

Wem es total wichtig ist den RS485 Teil meiner Platine auf das selbe Potential wie seine Steuerung zu ziehen, der kann sich den GND des UART Ports nach außen legen. Ich halte es aber nicht notwendig und empfehle es auch nicht.

Viele Grüße,

Trucki

 


   
AntwortZitat
(@solax)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 109
 

Hallo zusammen ,

mit großem Interesse hab ich hier alle Post's  von Truckis Projekt gelesen .

Ich habe mit ihm auch schon Kontakt aufgenommen da ich (bevor ich kaufe) , erst mal wissen möchte ob das was ich vorhabe, mit seinem Interface und dem Wemos funktioniert. 

Vorab mal Daten zu meiner PV :

18 PV-Module mit insgesamt 5,72 kWp mit 2 Wechselrichtern .

Als Datenlogger verwende ich Solarview .

Erweitern möchte ich die PV-Anlage um ein paar PV-Module + 24V/5kW Speicher und SUN 1000 WR.

Nun zu meinem Problem .

Ich möchte gern von Solarview die Power-Daten vom Zähler des Netzbetreibers übernehmen um mir einen zusätzlichen Shelly oder ähnliches zu sparen.

Solarview wertet die Daten vom Zähler per IR-Lesekopf aus .

Per  MQTT könnte ich die Daten übertragen . Hier gibt es es aber nun ein Problem

Leider wird bei  Strombezug ein negativer Wert ausgegeben.

Bei Stromeinspeisung ein positiver Wert.

Truckis Regelung erwartet das aber genau anders herum , also müsste der Solarview

Power-Wert invertiert werden .

Das 2 Problem ist das MQTT-Topic . Ich kann zwar das MQTTTopic frei eingeben , aber Solarview hängt an diesem noch als Bsp. /D0/DPAC dran .

Truckis Interface wird aber mit T2SG/ShellypowerOVR im Broker subscribed.

Wenn ich dann in Solarview als MQTTTopic= " T2SG/ShellypowerOVR" konfiguriere,

bekomme ich den  Wert über das Topic T2SG/ShellypowerOVR/D0/DPAC .

lösen könnte man das evtl. mit Wildcards also T2SG/ShellypowerOVR/+/+

aber wie, in Truckis-Interface fehlt dazu eine induviduelle Eingabe des Topic .

Kann mir jemand helfen wie ich das am besten transfomieren kann damit ich ich nicht zusätzlich einen Shelly oder anderen Zähler anschaffen muss, also Wert invertieren und das MQTTTopic anpassen.

Smarthome-Programme wie IOBroker, Home Assistant etc. habe ich nicht installiert und auch keine Ahnung davon .

Ich hab nur Solarview auf einem RPI u.  Domoticz + Mosquitto-Broker auf einem anderen RPI installiert . Mit Domoticz werden nur ein paar Tasmota-Schaltsteckdosen gesteuert .

Danke schon mal 

Werner

 

 

 

 

 

 

 

 


   
AntwortZitat
(@solax)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 109
 

@Trucki 

könntest du vielleicht in deiner Software den Power-Wert der per MQTT kommt invertieren ?

Stelle mir ein Ankreuzfeld vor, wenn das gesetzt ist, wird der bezogenen Power-Wert mit -1 multipliziert.

Gruß Werner

 

 


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 414
Themenstarter  

@solax Hallo Werner,

bevor ich eine neue Version veröffentliche, wird diese von mir und einigen Beta-Testern einige Tage geprüft. Deine Anpassung ist leider sehr individuell. Da steht der Aufwand leider nicht dafür. Du kannst Dir aber den Source-Code der Version V1.03 runterladen und die Änderungen selbst vornehmen.

Ohne es getestet zu haben würde ich das so machen:

Zeile 141: #define MQTT_SHELLYPOWEROVR "T2SG/ShellypowerOVR"

hier vor dem letzten Anführungszeichen deine Wildcards einfügen

 

Viel Erfolg und viele Grüße,

zwischen Zeile 424 und 425 einfügen:

423:        zepc_enable = true; 
424:        shelly_power = (float) payload_int;
einfügen:   shelly_power =shelly_power * (-1);
425:     }

Trucki

 

EDIT: Nochmal angepasst, da Werner mqtt overwirte und nicht http request verwendet.

 


   
Solax reacted
AntwortZitat
Seite 27 / 109
Teilen: