TIA TIA Modbus Register als Ersatz für Smartmeter

Turi

Level-2
Beiträge
56
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen

ich habe folgendes Problem:

ich möchte mit meiner CPU 1212 einen der PV-Batterie bekannten Smartmeter simulieren und der PV Batterie über TCP IP vorgaukeln.


das gosse Problem ist, dass ich an der Batterie keine Startadresse einstellen kann sondern nur entsprechende Geräte (Sunspec PV, sonnenMeter xxx) und die IP-Adresse, Port und ID.
die Adressen von SunSpec z.B. beginnen ab 40200 und würden den Speicher meiner CPU sprengen, wenn ich einen Array 0 - 40500 of int erstellen müsste.


weiss jemand Rat?

arthur


Equipment:
- TIA V16
- CPU 1212C 6ES7 212-1BE40-0XB0 FW 4.4
- PV-Wechselrichter solaredge
- Batterie Sonnen power unit sB10p sI4 9005 sDCM 9kW9
- Smartmeter LUMEL NR30 PNET (profinet, Modbus TCP, RS-485 und kann von Sonnen leider nicht ausgelesen werden)
 
Das Smartmeter kommuniziert üblicherweise mit dem Wechselrichter per Modbus RTU. Da ist der Wechselrichter der Master. Über den Wechselrichter käme man dann an die Modbus Register per ModbusTCP/IP.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Smartmeter nimmt die Slaverolle ein.
Auch die Batterie ist über Modbus RTU mit dem Wechselrichter verbunden. Das Smartmeter liefert alle notwendigen Daten, damit der Wechselrichter überhaupt seine Arbeit aufnehmen kann.
 
hallo TTRU74

danke für die schnelle Antwort
das weiss ich ja auch, ich muss aber nicht den Smartmeter mit dem Wechselrichter verbinden, sondern Daten aus der CPU an die Batterie senden. die kommunikation Wechselricher (modbus TCP) steht, die Kommunikation CPU Smartmeter (PN) steht auch.

das Problem besteht darin, die Smartmeterdaten via CPU an die Batterie zu senden
 
Ich kann deinen Angaben leider nicht ganz folgen... kannst du mal eine Zeichnung machen, wie die Geräte miteinander verbunden sind? Modbus RTU RS485? Modbus TCP? Wer ist RTU-Master, wer ist RTU-Slave, wer ist TCP-Client, wer ist TCP-Server?
Und was genau soll deine S7-1212 machen?

die Adressen von SunSpec z.B. beginnen ab 40200 und würden den Speicher meiner CPU sprengen, wenn ich einen Array 0 - 40500 of int erstellen müsste.
Muss du gar nicht. Wenn die 1212 Modbus-TCP-Client sein soll, dann kann sie direkt die gewünschten (hohen) Registernummern angeben. Falls die 1212 Modbus-TCP-Server sein soll, dann entspricht die erste Halteregister-Adresse 40001 dem Array-Index 0, zusätzlich kann man mit der Variable HR_Start_Offset die Start-Registernummer verschieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo PN/DP

die 1212 soll nur der Sonnenbatterie einen Smartmeter vorgaukeln, der in ihre Konfiguration passt und die entsprechenden Daten liefern. So ist jedenfalls der Plan. die Datenübertragung möchte ich mittels Modbus TCP machen, da ich den Solaredge Wechselrichter schon so auslese (die 1212 ist in diesem Falle Client).

im Anhang die HW Config
 

Anhänge

  • Uebersicht_HW.jpg
    Uebersicht_HW.jpg
    74,5 KB · Aufrufe: 20
die 1212 soll nur der Sonnenbatterie einen Smartmeter vorgaukeln, der in ihre Konfiguration passt und die entsprechenden Daten liefern.
Wieso "einen Smartmeter vorgaukeln"? Kann die 1212 nicht einfach als Modbus TCP Client aus der Batterie die gewünschten Register auslesen? Antwortet die Batterie nicht? Das sollte eigentlich genauso funktionieren, wie du mit der 1212 bereits Werte aus dem Wechselrichter ausliest - das machst du doch bestimmt mit MB_CLIENT?
 
Vermutlich möchte die "Batterie" eine direkte Verbindung zum Meter.
Ist so üblich bei Nulleinspeisung.
Steht auch so im Eröffnungsbeitrag, dass die Batterie natürlich (plug n play) nur vorkonfigurierte Listen hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vermutlich möchte die "Batterie" eine direkte Verbindung zum Meter.
Ist so üblich bei Nulleinspeisung.
Steht auch so im Eröffnungsbeitrag, dass die Batterie natürlich (plug n play) nur vorkonfigurierte Listen hat.
Sowas kann ich mir kaum vorstellen ... tun die Batterie-Hersteller so, als ob das vor Laien geheimzuhaltende Raketentechnologie wäre?

Equipment:
- (...)
- Batterie Sonnen power unit sB10p sI4 9005 sDCM 9kW9
Hast du mal ein Handbuch von der Batterie, wo das Modbus-Interface oder die Modbus Einstellungen/Konfiguration beschrieben sind?

- Smartmeter LUMEL NR30 PNET (profinet, Modbus TCP, RS-485 und kann von Sonnen leider nicht ausgelesen werden)
Irgendwie habe ich ständig das Gefühl, als ob du oder der Hersteller ständig falsch erklären, wer denn bei der Kommunikation der aktive Part ist und wer woher/wohin Werte liest/schreibt. Wozu soll die "Sonnen Batterie" mit dem SmartMeter kommunizieren?

Vielleicht erklärst du mal etwas ausführlicher, was genau für Werte du mit der 1212 erfassen/lesen(/schreiben?) willst. Was soll die 1212 mit der Batterie kommunizieren? Wenn man eine Aufgabenstellung klar und verständlich formulieren kann, dann ist das oft schon die halbe Lösung.
Von dem Anbieter der "Sonnen Batterie" gibt es anscheinend eine App - tut die App das, was du auch machen willst? Wenn es gar keine veröffentlichte Dokumentation der Kommunikation gibt, dann könnte man mal den Datenverkehr/die Kommunikation der App mitsniffern (z.B. mit Wireshark).

Du hast hier im Forum noch einen anderen 3 Monate alten nicht beantworteten Thread, wo du irgendwas mit Modbus RTU RS485 machen wolltest. Anscheinend an derselben Anlage.
https://www.sps-forum.de/threads/cm1241-als-slave.117681/
Vermutlich hast du da keine Antwort erhalten, weil deine Beschreibung, was du tun willst, auch da so unverständlich/konfus war wie hier.
 
Wozu soll die "Sonnen Batterie" mit dem SmartMeter kommunizieren?
Die PnP Sonnenbatterie hat nen eignen WR. Das Management Laden/Einspeisen erfolgt aufgrund der Daten vom Smartmeter.

In den BA von z.B. Akkupacks von Hoymiles oder Anker fand ich keinen Hinweis auf externe Steuerbarkeit des Verhaltens.
Selbst die Einbindung von Smartmeterdaten ist oft auf wenige spezifische Produkte beschränkt.

Ich kann das Ansinnen auf dieser Basis nachvollziehen.

Teil des Problems ist, das viele dieser Produkte nur über ne Cloudregistrierung konfigurierbar werden, auch wenn der eigentliche Datenverkehr lokal läuft.
 
Dann muss wohl die S7-1212 einen Modbus Server bereitstellen. Und die Werte, die die Batterie haben will, irgendwie woanders herholen und bereitstellen. Gibt es wenigstens darüber eine Dokumentation, damit das Programm der 1212 weiß, was und wie es simulieren soll?
Zu S7-1200 Modbus Server schrieb ich bereits:
Falls die 1212 Modbus-TCP-Server sein soll, dann entspricht die erste Halteregister-Adresse 40001 dem Array-Index 0, zusätzlich kann man mit der Variable HR_Start_Offset die Start-Registernummer verschieben.

Vermutlich kann die Batterie nur mit genau einem Modbus Server "gleichzeitig" kommunizieren?

PS: Wie schnell muss die Kommunikation sein? Wie lange dürfen die aktuellen Werte verzögert sein?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo zusammen

ja, es ist so, wie Stadtranduser schreibt:
- Selbst die Einbindung von Smartmeterdaten ist oft auf wenige spezifische Produkte beschränkt.

ich habe die Möglichkeit, die Daten, die der Wechselrichter der Batterie braucht, entweder über RS-485, Modbus TCP oder JSON zu senden.
JSON kenne ich nicht, es gibt zwar bei Siemens ein Beispielprogramm, aber da werde ich nicht schlau draus.

was Funktioniert, ist wenn die Batterie den Solaredge direkt ausliest, da habe ich aber keine Einspeisungsmessung...
die Batteri kann mit mehreren Teilnehmern gleichzeitig Kommunizieren

einen Schnittstellenbeschrieb gibt es leider nicht vom Hersteller, die halten das unter Verschluss.
was ich vom Solateur weiss, ist dass die Batterie den Solaredge Smartmeter und den WR auslesen kann. das mit dem WR fuktioniet auch, getestet.

1745258638119.png

Die andere Lösung wäre die Daten über RS-485 zu senden. auch da gibt es eine Auswahl:
1745259062357.png
 

Anhänge

  • 1745257582059.png
    1745257582059.png
    31 KB · Aufrufe: 2
Nocheinaml genauer erklären:

Die Batterie kann deinen Wechselrichter über Modbus TCP direkt auslesen? Sehe ich in der Auswahl nicht.
Du hast also offensichtlich keine direkte Kommunikation zwischen Wechselrichter und Smartmeter? Sonst würden die SM Daten vermutlich über den WR abrufbar sein.

Warum setzt Du dieses Smartmeter ein? Das einfachste wäre wohl das Smartmeter zu tauschen.

In der jetzigen Konfig musst Du mit Deiner CPU eben ein auswahlfähiges Gerät Deiner Liste simulieren.
Such Dir aus welches, bzw. hohl Dir von dem die Gerät die Register wo Du am leichtesten dazu kommst (Sonnenmeter EC377 = Phönix?), und stell Deine Batterie auf dieses gerät ein. Dann hast Du die Registeradressen ja von Deinen Gerät, und die versteht dann die Batterie.
Abklären ob Modbus Master oder Slave. IP Und ID einstellen.
In der CPU die Register von Deinem Smartmeter der Batterie in den Registern des ausgewählten Gerätes zur Verfügung stellen.
Eine Smartmeter Simulation sollte sich mit dem Bereich der CPU (max. 125 Register pro Abfrage??) ausgehen.
 
Zurück
Oben