Brauche Hilfe beim Auslesen von einem Modbus-Gateway

Hallo,
ich habe einen Wechselstromzähler SDM230Modbus und ein Universal-Modbus-Gateway von Hölldobler (http://hoelldobler.net).
Beides ist installiert und funktioniert. Über die IP-Adresse vom Gateway sehe ich auch die integrierte Webseite mit Daten.

Wie bekomen ich jetzt die Daten in das IP-Symcon (kein automatisches Erzeugen der Variablen, die will ich selbst erstellen)?
Ich nehme an, dass ich zuerst eine Instanz erzeugen muss.
Ist es richtig, dass ich zuerst eine Instanz mit Gerätetyp „Modbus Gateway“ erzeugen muss, was das Universal-Modus-Gateway ist?

Wäre toll, wenn mir jemand etwas hilft.

Alexander

Ja. Und dann für jede ModBus Adresse eine Instanz vom Typ „ModBus Device“.

Nimm das B+G E-Tech Modul aus dem Store. Die Variablen kannst du dort in der Instanz selber auswählen.
Michael

Hallo,
das Modbus-Gateway und das Modbus-Device habe ich erstellt.
Im Objektbaum existiert jetzt eine Splitter- und eine I/O-Instanz für das Gateway.

Verstehe ich es richtig, dass ein Modbus-Device für eine Variable steht, welche den Wert von einem Modbus-Register enthält?
Also für jedes Register ein Modbus-Device?

Das von mir erstellte Modbus-Device ist wahrscheinlich noch fehlerhaft.
Vielleicht kann mir einer helfen.
Ich will das Register 30053 auslesen; nicht schreiben (im Anhang Stand Modbus-Device und Register-Aufstellung vom Gateway).
Es Wert soll auch vom Typ Float sein.
Welche Einstellungen muss ich noch ändern?

Hallo,
das Modbus-Device habe ich geändert. Der Datentyp ist jetzt Float. Trotzdem zeigt das Device oben mir an, dass eine übergeordnete Instanz fehlerhaft ist. Wenn ich dann auf „Konfigurieren“ klicke wird mir die Instanz vom Gateway angezeigt.
In diesem Fenster wird zeitweise angezeigt : Schnittstelle geöffnet. Danach kommt wieder der Hinweis, dass im Meldungsfenster nachgesehen werden soll.
Hier erscheint der Fehler:
„Fehler beim Lesen. End of File.“

Hat jemand einen Tip, warum der Fehler angezeigt wird?

Alexander

Ja

Ja

Sieht mir so aus, als ob keine Verbindung besteht. Die Schnittstelle - der Screenshot wo Port 502 zu sehen ist - ist fehlerhaft. Das darf nicht sein.

Hallo,

schau mal :https://www.symcon.de/service/dokumentation/modulreferenz/modbus-rtu-tcp/
Für die Adresse 30053 musst Du 52 eintragen. Für eine float-Variable würde ich real (32-bit, vorzeichenbehaftet) nehmen.

Das Modul von Nall-Chan könnte Dir im übrigen viel Arbeit abnehmen. Wenn Du von dort all Deine Werte bekommst, kannst Du Dich ja später immer noch zum Lernen mit Gateway und Devices herumschlagen.

Grüße, Gerhard

Was steht denn in der Splitterinstanze von dem Client Socket?

Den Fehler von der I/O Instanz Client Socket konnte ich beheben. Im Modbus Gateway habe ich den Modus von „Modbus TCP“ auf „Modbus RTU über TCP“ umgestellt. Seit diesem Zeitpunkt steht im Fenster von der I/O Instanz Client Socket die Meldung: Schnittstelle ist geöffnet. Da keine Fehler im Objektbaum angezeigt wird, müsste dies stimmen.

Fenster Meldungen:
31.07.2020, 12:37:44 | Client Socket | Einstellungen gespeichert
31.07.2020, 12:37:44 | Client Socket | Öffne Socket…
31.07.2020, 12:37:44 | Event Control | Wiederverbinden [Client Socket (ModBus Gateway #16423)] erfolgreich

Trotzdem funktioniert es nicht. Im Fenster Meldungen wird eine Fehlermeldung alle 10 Sekunden erzeugt:
31.07.2020, 12:22:35 | TimerPool | ModBus Device (UpdateTimer): Zeitüberschreitung beim Warten auf Antwort

Hat jemand eine Idee, wo ich jetzt suchen kann?

@GerhardBS
Zum Auslesen des Registers 30053 habe ich als Adresse 52 eingeben und die Einheit habe ich auch auf Real im Modbus Device geändert. Danke.

@Helmut
Von der Splitter-Instanz habe ich ein Screenshot gemacht.

Alexander

Das ist aber falsch.
Du hast doch extra ein (vermutlich nicht günstiges Gerät) gekauft, welches von ModBus RTU (Zähler) auf ModBus TCP wandelt.
Dann muss in Symcon auch der Modus auf ModBus TCP stehen.
Zumal du in Beitrag 5 auch schon Daten empfangen hast.

Der Modi Modbus RTU über TCP ist für einfachen Wandler, welche nur die RS485 Schnittstelle 1:1 über TCP bereitstellen, ohne Wandlung nach ModBus TCP.
Michael

Hallo Michael,
du hast recht.
Also die Splitter Instanz Modbus Gateway wieder umgestellt auf „Modbus TCP“.

Jetzt kommt natürlich in der I/O Instanz Client Socket wieder die Meldung:
„Schnittstelle ist als fehlerhaft markiert. Bitte überprüfen Sie das Meldungsfenster für weitere Informationen.“
Kurz davor „Schnittstelle ist geöffnet“

Im Fenster Meldungen sieht man, dass zwischen „Öffne Socket…“ und „Wiederverbinden … erfolgreich“ bis „Fehler beim Lesen: End of file“ mind. 4 Sekunden begehen.

Im Debug von der I/O-Instanz steht tatsächlich, dass Daten empfangen wurden.
Müsste noch mehr im Debug stehen?

Der Wert vom ModBus Device wird alle zwei Minuten aktualisiert. Ist aber auf Grund des Fehlers immer 0.

Das Gateway hat einen eigenen Webserver. Wenn die Webseite aufrufe, dann werden mir alle Werte vom Zähler angezeigt.
Somit ist die Verbindung Zähler zum Gateway in Ordnung.

Hat jemand eine Idee was ich noch prüfen kann?

Alexander

Klar, das liegt einfach daran, dass das Gerät ab Werk nach 5000ms die Verbindung trennt.
Musst du schneller abfragen, oder das Timeout hochsetzen.
Anbei ein Bild aus der Anleitung.
Das Teil liest die Geräte sogar selbstständig aus, und kann MQTT.
Eventuell solltest du das eher über MQTT als ModBus in IPS einbinden.
Weiß nicht wie es sich verhält wenn das Gerät selbstständig die Zähler liest und du parallel das auch per Symcon machst.
Ich weiß schon warum ich ein 0815 RS485 Konverter zu Lan habe. Weniger Parameter, weniger falsch zu konfigurieren :smiley:
Michael

Hallo Michael,
welchen 0815 RS485 Konverter zu Lan hast Du?

Alexander

Such nach USR-TCP232, aber nicht jeder hat eine RS485.
Gibt es in diversen Varianten, Bauformen und Preisklassen.
Netzwerk auf TCP Server eingestellt; darauf verbindet sich Symcon mit RTU over TCP. RS485 passend zum Zähler eingestellt und fertig.
Ist dann eine transparente Verbindung zwischen Symcon und Zähler.

Läuft deine Verbindung jetzt?
Auch dem dem Konverter sollte es in Symcon funktionieren.
Michael

Du hast ja in Beitrag Nr. 5 Daten bekommen, also antwortet das Gerät. Das könnte an fehlerhaften Adressen legen.
Versuche doch auch mal die Adressen aus der rechten Seite Deiner Modbusadressliste, die fast einstellig ist und poste das Debugfenster.

Es scheint mir so, als wenn das Interface der Fa. Hölldobler ein Compilat von Profilab ist.

Wenn Das gleichzeitig läuft, das Exe Programm, kann es auch sein, dass die Abfrage mit IP-Symcon nicht möglich ist.
Schalte das mal ab, versuchsweise.
Gruß Helmut