Verbesserte ModBus Anbindung (IP-Symcon 7.0)

Macht letzteres Sinn? Wenn eine PV 0 produziert, produziert sie 0. Dann möchte ich auch 0 in der Variablen stehen haben. Und nicht den Wert, der davor irgendwann kam.

„null“ (kein Wert) und 0 (der Wert 0) sind verschiedene Werte.

Paresy spricht von null, also wenn man nichts zurückgibt, dann wird auch nichts gespeichert.

1 „Gefällt mir“

Ah super, Danke für die Aufklärung.

Beim Versuch zwei Variablen in einer virtuellen Modbus-Adresse zu summieren bekomme ich folgende folgende Fehlermeldung in der Ausgabe der Meldungen:

image

Alle Variablen sind vom Typ INTEGER und mit validen Werten versehen. Unnötig zu erwähnen, dass in der Ziel-Variablen kein Wert ankommt.

Hat jemand eine Idee?

Grüße

Geraldo

Dir fehlt ein Semikolon am Ende.

paresy

Wie oft hingeschaut und dann doch übersehen, Danke.

Gleichwohl hat sich im Resultat nur die Fehlermeldung geändert.

Noch eine Idee?

Ich hab mal zwei gänzlich andere Integer-Variablen genommen, neue virtuelle Adresse erzeugt und generiere damit die gleiche Fehlermeldung.

Zeige mal deinen objektbaum mit den Variablen und Idents unterhalb der Modbus Instanz. Sind die Werte denn da?

Magst du mal versuchen $VALUES groß zu schreiben?

paresy

DANKE! Das war’s.

Ich mach Schluß für heute, bevor ich noch mehr Schusseligkeiten produziere.

Ich bin endlich mal dazu gekommen die Instanz zu nutzen.
Generell schon mal sehr gut und wesentlich besser als jeden Wert in einer einzelnen Instanz abzufragen. :smiley:

Den Feature-Wusch mit einem Zeile Kopieren/Duplizieren-Button kann ich absolut nachvollziehen. Das Wäre echt praktisch :+1:

Ein Bug habe ich beim Sortieren von Variablen gefunden.
Eigentlich müssten doch alle Variablen mit einer fortlaufenden Positions-ID aktualisiert werden.
Bei mir haben mehrere Variablen die gleiche ID gehabt und haben sich dadurch wild nach den Namen sortiert.
(Aktuelles Symcon 7.1)

Das geht schon. Einfach CTRL-C + CTRL-V nutzen :slight_smile:

Wie kann ich das am besten nachstellen? Ich glaub ich verstehe es noch nicht ganz.

paresy

:man_facepalming: tatsächlich
das war einfach … und ich hab die 30 variablen von Hand angelegt :see_no_evil:

Die erstellten Variablen sollten ja nach dem Sortieren in der Modbus-Instanz fortlaufende Positionen haben. Das haben sie nicht.
Wenn man die Reihenfolge in der Modbus Instanz ändert, ändert sich die Reihenfolge der Variablen nicht.

Wird die Position ggf. nur dann hochgezählt wenn es sich von der Reihenfolge durch die Benennung unterscheiden würde? Gibt es ggf. Probleme wenn die Variablen eine andere Benennung haben als ursprünglich in der Modbus-Instanz eingegeben?

Tausche ich die Positionen vom Leistungsfaktor und der Netzfrequenz wird dies nicht in den Objektbaum übernommen.


image

Dem ist leider so. Dabei hätte man gerne die Möglichkeit, die Ordnung in der Instanz auch in den Objektbaum zu übernehmen.

Es wäre super, wenn es eine Möglichkeit zur Neusortierung im Objektbaum gäbe. Vielleicht durch einen Button „Variablen im Objektbaum neu sortieren“ im Action Bereich.

Nur mal so als Gedankenspiel, Pseudocode:

$instanz = 12345;
$symcon = IPS_GetConfiguration($instanz);
$data = json_decode($symcon,true);
$i=0;
foreach($data['XYZ'] as $k => $v){
  $id = IPS_GetObjectIDByIdent($k, $instanz);
  IPS_SetPosition($id, $i++);
}

Achtung: Die Datenstruktur sieht bestimmt anders aus, soll nur eine Richtung vorgeben.

Ich denke mal das in der Instanz ja irgendwas programmiert ist, dass für eine Sortierung zuständig ist. Sonst würde ja nicht die Position gesetzt werden. Hier wo ist jedoch vermutlich ein bug :wink:

Jein. Wenn es so ist wie es bei allen anderen Modulen und auch im best practice für PHP Module beschrieben ist, dann wird die Position nur beim anlegen von Variablen vorgegeben.
Nachträgliche Änderungen obliegen der Hoheit des Users und das ist in der Regel über den Objektbaum einzustellen und nicht in einer Instanz von einem Modul.
Michael

2 „Gefällt mir“

Gut das macht auch Sinn :thinking:
Vielleicht kommt es dann durch das nachträgliche einfügen von zusätzlichen Variablen, dass es so Kreuz und quer war. Vielleicht kann man ja ein „neu sortieren“ einbauen.
Die Variablen in der Liste der Instanz kann ich ja sortieren somit hätte ich ja auch die Hoheit über die Reihenfolge.

Ich glaube bei meinen Modulen haue ich immer mit dem großen Maintain Hammer drauf :joy:

Keine Angst, der verändert Positionen von vorhandenen Variablen auch nicht :slight_smile:
Michael

1 „Gefällt mir“