Verbesserte ModBus Anbindung (IP-Symcon 7.0)

Liebe Modbus-Freunde,

ich bin gerade dabei einen Fröling-Holzkessel auszulesen. Manche Register erfordern eine Skalierung von 0,5.
Gibt es in der aktuellen Modbus-Geräteinstanz eine Möglichkeit, andere Skalierungsfaktoren als Zehnerpotenzen zu hinterlegen?

gibt es :grinning_face:

@paresy entweder habe ich betreffend diesem Fehlverhalten (==> virtuelle Variabeln funktionieren nicht mit Modbus-Adressblöcke) in der Änderungsliste von 8.2 Testing etwas übersehen oder ihr habt es noch nicht aufgeführt…? Generell habe ich nichts betreffend Modbus gefunden…

Danke.

Vielen Dank! Ich musste nur noch das Update auf IPS 8.1 durchführen.

Kommt! :slight_smile: Ist eines der letzten offenen Dinge für die 8.2 :slight_smile:

paresy

Ok, freut mich zu hören :slight_smile: :slight_smile:

wird die 8.2 final unterm Baum liegen?

:face_blowing_a_kiss:

Bestimmt mal unter einem.
Aber unterm Christbaum am Mittwoch kann ich mir nicht vorstellen.
Denke dass man bis zum Event am 31.01. aber schon ein gutes Stück weiter ist.

Schau ma mal :slight_smile:
Cheers Seppm

Du wirst Recht haben.

Ich hatte das Event gar nicht mehr auf dem Schirm :yawning_face:

@paresy Wenn ihr Modbus für die 8.2 noch mal anfasst, könnt ihr dann auch mal gucken, ob man die ganzen Fehlermeldungen wegen Zeitüberschreitung (optional) irgendwie unterdrücken kann? Ich mache in den Modbus-Geräten aktuell sehr viele Einzelabfragen (aufgrund der suboptimalen Implementierung der Blockabfragen), wovon immer mal die ein oder andere wegen Zeitüberschreitung nicht funktioniert. Das landelt dann alles als Fehler im Statusfenster. Mich interessiert das aber eigentlich nicht. Wenn ein Register mal nicht gelesen werden kann, kommt der Wert eben bei der nächsten Abfrage.

Ich lösche jetzt jeden Tag ein paar tausend Fehlermeldungen, die mich gar nicht interessieren und das ganze Status-Fenster hat dadurch irgendwie komplett den Nutzen für mich verloren.

5 „Gefällt mir“

@Slummi ich kann deine Nachricht nachvollziehen, bei mir kommen auch viele Zeitüberschreitung, da ich auch verteilt im Haus mehrere Modbus Geräte habe.

Ich lösche auch immer Fehlermeldungen im Status-Fenster die hauptsächlich vom Modbus kommen, hätte aber keine Auswirkung deshalb bemerkt. Von mir aus könnten die mit einem Hacken unterdrückt werden bei Geräten, die einfach mehr Timeouts liefern.

Danke!

1 „Gefällt mir“

@paresy Nun habe ich gerade gehört, dass keine 8.2 kommt sondern dann eine Version 9 auf den Termin Light + Building vom März…

Siehe vom Dez 2025

und vom August 2025

Langsam nervt das schon, dass sich die Überarbeitung der Modbus-Implementierung (welche offenbar nötig ist, damit es auch mit den virtuellen Variabeln korrekt funktioniert) so lange hinzieht… seit mittlerweile 2 Jahren!!

Die 8.2 ist doch nur umbenannt zur 9.0. D.h. diese Funktion wird ebenfalls zur 9.0 kommen. :wink:

paresy

naja, März 2026… gegenüber Zitat “…einer 8.2 die das Feature enthält dieses Jahr rechnen” ==> also 2025.
Und bis jetzt habe ich nichts über die Modbus-Überarbeitung gelesen/gesehen/gehört… daher bin ich schon sehr skeptisch…

.. aber dann warten wir halt auf den März.

So, das letzte Feature der 9.0 ist endlich fertig und landet vermutlich noch im Update heute Abend.

  • Datenblöcke direkt in der Geräte-Instanz
  • Export/Import der Datenblöcke
  • Option zum Unterdrücken von Auslesefehlern

paresy

7 „Gefällt mir“

Schön zu hören, danke schon mal.
Frage - funktionieren dann auch die virtuellen Variabeln in Kombination von Datenblöcken?

Ja :slight_smile: Du musst deine Datenblock Abfrage aber vom Gateway in die Geräte-Instanz verlegen. Nach dem Auslesen der Datenblöcke werden die virtuellen Adressen aktualisiert.

paresy

3 „Gefällt mir“

@paresy Ich habe die neue Blockabfrage gerade mal getestet und stolpere über das gleiche Problem, wie bei der alten. Ich habe testweise eine Abfrage mit einem Intervall von 10 Sekunden eingerichtet. Wenn ich das Debug öffne, sehe ich auch alle 10 Sekunden Daten, allerdings nur für die virtuellen Adressen. Der Rest taucht im Debug gar nicht auf. Im IO sehe ich auch alle 10 Sekunden die Abfrage. Das Intervall greift also.

Was ich aber einfach nicht verstehe ist, warum die zur Blockabfrage zugehörigen Status-Variablen der Modbus-Instanz immer nur alle 60 Sekunden aktualisiert werden. Bei der alten Implementierung hatte ich ja noch eine Art Buffer im Verdacht, aber das macht doch jetzt gar keinen Sinn mehr.

Dazu kommt noch, dass die Variablen sich teilweise auch unterschiedlich alle 60 Sekunden aktualisieren. Also die einen Variablen immer auf Sekunde 25, die anderen auf Sekunde 50 zum Beispiel. Wie gesagt, ich rede hier von Aktualisierung, nicht von Änderung.

Meine Erwartung wäre eigentlich, dass sich alle Variablen alle 10 Sekunden aktualisieren, wenn sie in der Blockabfrage enthalten sind. Wenn nicht, dann natürlich nicht.

Die Variable ändert sich sofort, wenn es eine Änderung gibt. Der Zeitstempel wird aus Performancegründen nur alle 60 Sekunden erneuert, sofern es keine Änderung gibt, da wir z.B. bei SPS/Maschinen auch gerne alle 100ms aktualisieren. Intern wird aber in deinem Intervall abgefragt.

paresy

Na da soll auch einer drauf kommen… :laughing:

Und wie erklärt sich, dass die Variablen zu unterschiedlichen Sekunden minütlich (streng genommen alle 61 Sekunden) aktualisiert werden?
Bei den virtuellen Adressen sehe ich das auch. Die eine Hälfte der Statusvariablen wird jede Minute zu Sekunde x aktualisiert, die andere Hälfte jede Minute zu Sekunde y.

Ist das Abhängig von der Anzahl der Variablen oder wann man zuletzt etwas in der Instanz umkonfiguriert hat?