Zwei Modbus Fehler

Hallo miteinander,

  1. Problem:
    ich habe schon länger einen Fehler der mir den Statusdialog vollspammt.
    „TimerPool PH-Status(UpdateTimer): Zeitüberschreitung beim Warten auf Antwort.“
    Das Gerät ist eine SugarValley Salzelektrolyseanlage unseres Pools die via ClientSocket und einem USR ETH2Modbus (RS485) Konverter angebunden ist. Auf dem Bus sind noch andere Geräte dran die keine Fehler werfen. Auch kommen die Werte der SugarValley regelmäßig an. Nur kommt wohl die Quittierung bei Symcon nicht konform an. In einem älteren Beitrag wurde die Möglichkeit erwähnt die Überprüfung der Quittierung in der Gatewayinstanz abzuschalten. Nur die kann ich nicht finden.
    Habt ihr eine Idee was ich tun kann.

  2. Problem
    Seit dem Update auf IPS 7.0 kommt es bei der Bedienung einer Mobusinstanz (Write Holding Register)in einer Ablaufsteuerung als auch bei der direkten Bedienung übers Webfront zu folgender

Warnung:
„Notice: ModBus_WriteRegisterWord is deprecated. Please use ModBus_WriteRegister or RequestAction in /usr/share/symcon/scripts/__deprecated.inc.php on line 16
in /- on line 11“

Offensichtlich wird "ModBus_WriteRegisterWord " zukünftig nicht mehr verwendet. Die Warnung führt bei mir in der Ablaufsteuerung aber zum Abbruch der weitern Ausführung.

Zu 1: sind an dem Bus mehrere Geräte die Master spielen? Modbus/RS485 ist ein single Master System und Symcon kann nur Master sein.

Zu 2: Dann änder doch an den passenden Stellen den Funktionsaufruf so wie vorgeschlagen.

ModbusWriteRegisterWord, Integer und Real gibt es so nicht mehr.
Siehe Changelog.
Du musst die Befehle anpassen, wenn du mehrere solcher Befehle hast dann kannst du auch mit Ersetzen in allen Skripten arbeiten, ist recht schnell erledigt.

Der Modbus wurde zur 7.0 stark verbessert.

Zu 2: Vielen Dank für den Wink mit dem Zaunpfahl :smile: . War zuerst davon überzeugt, dass da kein eigenes Skript im Spiel ist. War aber der Fall → Hab es geändert und die Warnung ist jetzt weg.

Zu1: Da sind außer der Salzelektrolyse noch zwei I/O-Module und ein el. 6 Wege-Ventil dran. Sind aber alle als Slave konfiguriert. Die anderen Komponenten am Bus verursachen keine Timeoutfehler.

Du kannst seit der 7.0 im Splitter die „Wartezeiten“ verändern. Versuch die mal zu erhöhen. Vielleicht ist das Gerät ab und zu mit der Geschwindigkeit überfordert.

paresy

Meinst du die „Abfrageverzögerung“? (Expertenoptionen). Denn das ist die einzige Zeit die ich verstellen kann. Hab sie mal in einigen Schritten von 10ms bis auf 20000ms erhöht. Das bewirkt, dass die Werte weniger oft abgefragt werden. Somit schlagen auch im gleichen Zeitraum weniger Timeoutfehler auf. Sprich der Fehler ist leider noch vorhanden. Vermutlich braucht der Slave zu lange für die Quittierung.

Die Wartezeit ist 5 Sekunden - das muss eigentlich für alle Eventualitäten ausreichen.

paresy

Ja das ist mehr als ausreichend. Dann schau ich mir den Datenverkehr mal genauer an.

Genau - wahrscheinlich antwortet das Gerät wirklich nicht. Oder es gibt irgendwie Interferenzen, sodass die Antworten nicht korrekt ankommen.

paresy

Hi goifalracer,
ich habe das gleiche Problem wie ChrisSunset mit der „ModBus_WriteRegisterWord is deprecated“-Meldung. Ich habe alle Changelogs durchgelesen, die ich finden konnte, aber keines war so detailliert, dass ich hier was zu diesem Problem finden konnte.

Wo hast du das denn gelesen, dass es ModbusWriteRegisterWord, Integer und Real nicht mehr gibt.
Hast du da evtl. einen Link für mich?
Schon mal herzlichen Dank für eine Info dazu.

Hi,

statt z.B.

ModBus_WriteRegisterWord schreibst du nur ModBus_WriteRegister

In der Fehlermeldung steht driin was die machen musst.

Das trifft auf die Typen Word, Integer und Real zu, String und Coil bleiben die gleichen Befehle.

Schau mal hier: Verbesserte ModBus Anbindung (IP-Symcon 7.0) - #98 von Nall-chan

Da findest du Infos.

Falls die einige solcher Befehle in IPS hast, kannst du auch alle auf einmal mit „Suchen und Ersetzen“ in allen Skripten ändern.
Hier aber bitte keinen Fehler machen.

Ich weiß nicht ob Symcon die Doku zu Modbus schon geändert hat.
Es steht aber in irgend einem Thread drin, find Ihn aber gerade nicht.

Teste es einfach mal in einem Skript, wenns läuft kannst du ja die anderen umbauen.

Hi,
herzlichen Dank dir für die erläuternden Worte und den Link zu #98. In der Doku zu Modbus von Symcon stehen die „alten“ Befehle noch drin. Da wurde noch nix aktualisiert. Daher war ich ein wenig verwirrt. Jetzt dank dir alles klar und die selber gestrickte Ansteuerung meiner WR-Speicherkombi sollte dann schnell wieder ohne Warnungen laufen !