Verbesserte ModBus Anbindung (IP-Symcon 7.0)

Ich befürchte du hast einen Skriptfehler. Ich schau mal, dass wir den Fehler besser ausgeben.

Magst du mal ein Bild vom Editor machen? Im Forum hat es ja die Formatierung der Zeile etwas zerlegt.

paresy

Hier mal die Info von Solaredge zum Scale factor:

Scale Factors

As an alternative to floating point format, values are represented by Integer values with a signed scale factor applied. The scale factor explicitly shifts the decimal point to left (negative value) or to the right (positive value).

For example, a value “Value” may have an associated value “Value_SF”

Value = “Value” * 10^ Value_SF for example:

For “Value” = 2071 and “Value_SF” = -2 Value = 2071*10^-2 = 20.71

For “Value” = 2071 and “Value_SF” = 2 Value = 2071*10^2 = 207100

Das <?php muss noch weg. Quasi nur return …

paresy

danke, so funktioniert es :slight_smile:

Was mir beim umstellen aufgefallen ist:

Ich finde es störend dass die Virtuellen Adressen nicht in der Liste zusammen mit den „richtigen“ Modbusadressen auftauchen. Das ist irgendwie für die Übersicht nicht gut.

Gruß Stephan

Oh Mann. Schön, wenn man lesen könte :slight_smile:

SMA liefert beim Wechselrichter den NaN Wert, wenn der Wechselrichter nicht mehr erzeugt (Nachts).
Den möchte ich nicht im Archiv haben und daher ignorieren.
Ich hatte das hier schon mal thematisiert:

Handelt es sich um ein natives (C++) oder ein aufgesetztes (php) Modul? Gerade in großen Modbus Installationen käme mir sonst die Frage nach der Anzahl belegter PHP Threads auf.

Ich kann noch ergänzen, dass es sich hier um die beiden einzigen INT64 ModBus Adressen bei mir im System handelt.

Auch bei „AKTUALISIEREN“ kommt der Fehler:

image

Seit dem letzten Update bekomme ich auch keine Werte mehr von der Wago per Modbus.

Dazu gehören auch alle Fensterkontakte.

Ich hab’s oben nicht rausbekommen, ob ich das selbst fixen muss, oder mit dem nächsten Update alles wieder laufen sollte/könnte.

Gruß
BEM

Bist du dich sicher, dass INT8MSB das ist was du wolltest? Was hast du im ModBus Gateway eingestellt? Little or Big Endian? Und hast du das aktuellste Update drauf von gestern?

paresy

Bis vor dem Update hat alles funktioniert und ich habe seit Monaten nix an den Variablen oder überhaupt an der Wagoverbindung gemacht.

Was jetzt richtig ist, muss ich erstmal versuchen herauszubekommen.

Mit dem letzten Update ist zumindest alles so, wie es jetzt ist.

Hm. Es muss dann irgendein Fehler drin sein - denn es sollte sich nichts verändert haben :confused: Ich muss noch herausfinden was dies ist. Kannst du kurz schauen, ob es mit INT8LSB funktionieren würde?

paresy

Japp, damit geht’s dann wieder.
Allerdings muss ich die Profile auch noch anpassen.

Wie meinst du Profile? Was hat sich da geändert? Ich würde trotzdem gerne prüfen, warum sich das geändert hat - eigentlich sollte MSB das korrekte sein.

Und um noch mal hierauf zurück zu kommen: Was hast du im ModBus Gateway eingestellt? Little or Big Endian?

paresy

Hab’s gefunden.
Die Modbusvariablen mussten auf INT16 stehen. Nach der Umstellung funktionieren die zugewiesenen Profile wieder und die Scripte scheinen auch wieder zu funktionieren.

Ich hab im Modbus Little-Eingestellt eingestellt.

Jetzt kommt eine detailliertere Meldung:

Die Adresse ist so definiert:

Die Variable wurde als Integer angelegt:

Das Profil wurde aber nicht eingetragen.

Trage ich das Profil wieder aus, dann kommt keine Fehlermeldung.

Magst du mir das Profil mal im Profilmanager zeigen? Bzw. kannst du deine Vorlage mal „exportieren“?

paresy

Das Profil ist simple

Hier der Export

modbus.json (6,7 KB)

Kann es nachstellen. Das Problem ist der Name Watt, der mit unserem ~Watt Profil kollidiert, welches Float ist. Ich werde mal prüfen, wie ich das lösen kann. Fürs erste empfehle ich dem Profil einen anderen Namen zu geben.

paresy

Aber „Watt“ hat doch „Type“: 1