LOGO Siemens Logo als Wallbox Lastmanagement

mm26

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe 2 ABB AC-Terra Wallboxen mit je 22kW an einer Doppelladesäule. In Summe dürfen die beiden Wallboxen zusammen mit anderen Verbrauchern 30kW über die Zuleitung ziehen. Um die Begrenzung in Abhängig von der aktuellen Last zu limitieren, will ich mit einer Logo die gemessenen Werte eines Kostal KSEM G2 am Hausanschlusspunkt über Modbus TCP einlesen, die einzelnen Limits berechnen und die beiden Wallboxen entsprechend runterregeln.
Die beiden Wallboxen hängen an einem Waveshare RS485-to-ETH Gateway, da die Wallboxen ihren RJ45-Netzwerkanschluss entweder für eine Internetverbindung ODER eine Modbus TCP Verbindung nutzen können. Da ich die Internetverbindung über LAN aufbauen will, habe ich die Verbindung über RS485 und dem Gateway realisiert.

Was ich bereits erfolgreich getestet habe:
- Werte aus KSEM mit Logo auslesen
- Werte aus beiden Wallboxen mit Logo auslesen
- Begrenzungen mit mbpoll in der Kommandozeile schreiben

Was ich bisher nach vielen Stunden nicht auf geschafft habe ist das schreiben der Begrenzungslimits in die Wallboxen aus der Logo heraus.

Das Stromlimit besteht aus 2 Registern, die mit FC16 beschrieben werden müssen.


Ist die Logo generell in der Lage über Modbus-TCP Holdingregister auf einem Server zu schreiben?
Über mbpoll funktioniert alles wie es soll, aber mit der Logo stecke ich fest...


Hat von euch jemand eine Idee?
 
Hallo,
ohne zu wissen was Du schon alles am laufen hast mit der Logo und wie Du die Kommunikationseigenschaften parametriert hast, schieße ich mal ins blaue...

Unter Netzwerkprojekt, Modbus-Verbindung musst Du auf jeden Fall bei Länge eine 2 stehen haben, da die Logo Modbus-Befehle als FC06 sendet. Um auf FC16 zu kommen, muss Länge 2 sein damit die Logo weiß das sie mehr als einen Register beschreiben muss...

Dann kann es auch sein, dass die Startadresse ein Offset braucht, +1 oder -1, sprich 16640 +1 bzw. -1

Generell kann die LOGO Holdingregister schreiben ja aber es macht immer viel Kopfschmerzen und Probiererei aus...

Ist echt verdammt tricky...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dir für die schnelle Antwort.

Die zwei steht drin und die verschiedenen Offsets habe ich auch schon probiert.

Ich versuche den Wert mit einem analogen Netzwerkausgang und einem VW Speicher zu schreiben. Der Richtungspfeil in den Modbuseinstellungen zeigt beim Schreiben von links nach rechts, beim lesen von rechts nach links.
Ich habe auch schon explizit den Wert aktiv geändert weil ich gelesen habe, dass erst bei einer Änderung gesendet wird.

Stimmt das soweit?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@mm26, ja das stimmt soweit
Was @Blockmove eingebracht hat ist auch wichtig und zu beachten.

Man könnte versuchen z.B. über die arithmetische Anweisung die Werte zu schreiben, dann aber über die Parameter VM Zuordnung und das dann als DWord direkt in Deine Modbus-Übertragungstabelle "beamen"
 
Wenn es 2 Register sind, dann wird es wohl ein int32 oder ein uint32 sein.
Da brauchst du bei Logo evtl. auch schon ein paar Tricks.
Schau mal in die Schnittstellenbeschreibung der Wallbox.
Vielleicht gibt es auch noch eine Angabe zur Byte-Order (Little oder Big Endian)
 
@DonTonno Kannst du bitte "Parameter VM Zuordnung als DWord" nochmal erläutern?
@Blockmove es ist ein unsigned data type, vermutlich Integer, wird aber in der Anleitung nicht genauer erwähnt. Jetzt wo du es erwähnst, fällt mir folgendes auf: Die Auflösung wird mit 0.001 und Einheit Ampere angegeben, die Register size mit 2. Bei meinem Versuch mit mbpoll habe ich den mA Wert als Integer gesendet, was funktioniert hat, nachdem ich explizit FC16 verwendet habe.

Mein Testaufbau sieht wie folgt aus:


Idee war das Limit der 2. Wallbox mit einem Faktor 1,5 des Wertes der ersten Wallbox zu schreiben. Aktuell stehen beide auf dem gleichen Wert (geschrieben mit mbpoll, gelesen mit mbpoll sowie Logo).
Falls der Schreibvorgang erfolgreich wäre, würde man das so direkt erkennen.

Oder habe ich einen Denkfehler?

Edit: Byteorder ist BigEndian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also nachdem jetzt klar ist, dass es ein 32Bit unsigned Int ist, übergeb ich jetzt am @DonTonno.
Ich hab gerade keine Logo-Software auf dem Rechner zum Testen. Jetzt brauchst du genau das:
Man könnte versuchen z.B. über die arithmetische Anweisung die Werte zu schreiben, dann aber über die Parameter VM Zuordnung und das dann als DWord direkt in Deine Modbus-Übertragungstabelle "beamen"
 
Es ist eigentlich egal, ob der Wert per Extras->Parameter-VM-Zuordnung oder per analogen Netzwerkausgang in den VM-Bereich kommt.


Da ins VW16 und 20 jeweils DINT-Werte übertragen werden, die LOGO! aber nur max. mit INT rechnen kann und außerdem noch mit Big Endian arbeitet, müssten dann theoretisch davon die VW18 und 22 verwendet werden.
Beim Schreiben dann genauso -> die LOGO! schreibt den INT-Wert ins VW26 und die 2 WORDs ab VW24 werden als DINT übertragen.


Wenn die Wallbox jedoch Little Endian verwendet, müssen die Bytes auch noch getauscht werden.
Das sollte also unbedingt als Erstes geklärt werden.


PS:
ob' auch nur die INT-Werte zur Wallbox übertragen werden können, hängt von dieser ab.
Wenn die zur LOGO! übertragenen Werte größer als der INT-Bereich +32767 sind und dort trotzdem angezeigt werden sollen, geht das nur über Vor-/Rückwärtszähler (bis max. 999.999). Dafür muss der Zählerwert aber explizit über die Parameter-VM-Zuordnung eingetragen und dann von extern beschrieben werden. Weiterverarbeiten geht aber trotzdem nur im INT-Bereich!
1766433115754.png
 
Zuletzt bearbeitet:
Na vielen Dank @Blockmove...

So, die Info von mm26 mit den Bildern ändert meine Idee einen Hauch ab, also erstmal...

Lass uns erstmal mit nur einer Wallbox bitte testen...

Folgender Versuchsaufbau...

1766433037704.png

Highsignal für die arithmetischa Anweisung, Berechnung da drin 16000:100, ein Ganz/Gleit Konverter, VM 24 Auflösung 0,001.
Deine Modbuseinstellungen sollten in etwa dann so aussehen:

1766433260147.png

Es kann auch möglich sein, wenn es nicht klappt, die VW auf 22 oder 26 zu ändern...

Ansonsten, geht es gerne weiter mit einer Möglichen Problemlösung
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So, ich habe das ganze Nachgebaut und folgende Erkenntnis:
Wenn ich lediglich den Schreibvorgang in einem neuen Projekt entsprechend der Vorlage anlege, wird das Stromlimit in der Wallbox beim Start der Logo auf 0 gesetzt, allerdings unabhängig davon was ich in dem arithmetischen Anweisungsblock eintrage. Richtig reproduzierbar ist das ganze aber noch nicht. Wenn die Lesevorgänge mit implementiert sind, konnte ich das Verhalten noch nicht sehen, da blieb der alte Wert konstant stehen.
Die verschiedenen VW22-26 hab ich auch erfolglos ausprobiert.

Ich checke morgen nochmal die ganze Busverkabelung, sporadisches Verhalten kann ja kaum Software sein.

Danke schonmal an Alle! ich melde mich morgen mit einem Update!
 
@mm26,

Du kannst Dir die Testschaltungen auch komplett sparen und einfach nur die leere Simulation bzw. den Online-Test starten und die Datentabelle in der Fußzeile öffnen:
1766435875719.png
Dort kannst Du die gewünschten Adressen und Datenformate eintragen.
Dann kannst Du hinten einfach den zu übertragenden Wert eingeben.

So kann man auch für DINT das VD und gleichzeitig das für das LOGO!-passende INT das enthaltene VW angeben (hier z.B. VD24/VW26).
Das macht es IMHO einfacher, mit den möglichen Adressen/Datenformaten zu spielen/testen.
 
Zuletzt bearbeitet:
Werden diese Werte dann auch tatsächlich gesendet oder geht es in deinem Beispiel nur darum die Zahlenwerte zu den passenden Adressen zu identifizieren?

Prinzipiell muss ich ja garnichts umrechnen. Die Werte sind in mA, bei 22kW sind das maximal 32A also 32.000mA und somit innerhalb des 32768er Wertebereichs der Logo.
Daraus müsste sich doch ergeben, dass alle Zahlenwerte die ich für meine Begrenzung im Bereich 0-32000 innerhalb eines einzelnen Speicherbereichs abspielen?
 
Zurück
Oben