Forum: Mikrocontroller und Digitale Elektronik Modbus RTU: Wie kann ich dieses Register auslesen


von Modl (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Habe Probleme mit einer Kleinsteuerung, von der ich die Register 
auslesen will.

Habe das Programm mal angehangen, an dem die aktuellen Werte angezeigt 
werden.
Laut Beschreibung (Siehe Anhang. Upgraded ELC-18 Series) müsste folgende 
Register ausgelsen werden:

AF1 müsste Register 3072 sein. Sollte 694 zurückliefern.
-> Liefert gar nix zurück.
B001 müsste Register 1536 sein. Sollte 694 zurückliefern.
-> Liefert gar nix zurück.

AI1 (Register 1024) und AQ1(Register 1280) liefern die richtigen Werte 
zurück.

Kann mir da jemand auf die Sprünge helfen?

von Modl (Gast)


Lesenswert?

PS: Ja ich habe den Offset dazuaddiert.

von Andreas L. (andi84)


Lesenswert?

Das ding sieht irgendwie verdächtig aus wie eine Logo-Kopie...

von Modl (Gast)


Lesenswert?

Andreas Lang schrieb:
> Das ding sieht irgendwie verdächtig aus wie eine Logo-Kopie...

Na, dann ist das Problem ja gelöst.

von Ratte (Gast)


Lesenswert?

Und, hast du eine Lösung gefunden?
Stehe vor dem selben Problem :-(

von Modl (Gast)


Lesenswert?

Nein moch nicht. Leider.

von Sascha F. (sfleiss)


Lesenswert?

Moin,

da gab es bei Modbus doch mal diesen "historischen" Fehler, dass man von 
der Registeradresse 1 abziehen musste. Diesen Text habe ich in der 
Anleitung unserer Stromzähler gefunden:

> For historical reasons, the starting address of
> the register starts at 1, but the start address
> in Modbus starts with 0.
> This means that in the telegram as a starting
> Modbus register address is the address minus 1.
> Example:
> Momentary system time (4200) will be send as
> Modbus start address 4199.

Vielleicht liegt es ja daran? Ist aber nur ein Schuß ins Blaue.

Gruß,

Sascha

von Modl (Gast)


Lesenswert?

Fast seit 8 Monate probier ich jetzt für 1 Stunde pro Tag herum.
Ohne Erfolg :-(

Softwarefehler sin dausgeschlossen, weil ich 3 verschiedene Tools 
verwende.
Ausserdem kann ich die analogen Register ja auslesen.

von Dennis S. (eltio)


Lesenswert?

Hat der Hersteller keinen Support?

von Modl (Gast)


Lesenswert?

Die verweisen leider immer auf die Anleitung, die ich oben angehangen 
habe.
So nach dem Motto: Friss oder stirb

von Dennis S. (eltio)


Lesenswert?

Das ist das KO-Kriterium für jeden Anbieter!

von Modl (Gast)


Lesenswert?

Ich weis.
Aber es sind jetzt schon so viele Geräte im Einsatz, das ich das auch 
nicht ändern möchte.

Daher meine (anscheinend vergebliche) Mühe :-(

von Dirk (Gast)


Lesenswert?

Modl schrieb:
> Softwarefehler sin dausgeschlossen, weil ich 3 verschiedene Tools
> verwende.
Was denn für Tools?

> Ausserdem kann ich die analogen Register ja auslesen.
Aha. Und wie?

Hast Du mal mit einem Oszilloskop geschaut, wie es auf der Leitung 
aussieht und ob es zum Protokoll passt?
https://de.wikipedia.org/wiki/Modbus#RTU-Modus

Dirk

von Third E. (third-eye)


Lesenswert?

Ich kenne mich mit Bussen zwar nicht sonderlich gut aus, aber ich würde 
mal einen Logic Analyzer mit entsprechendem Dekoder dranhängen und mal 
beobachten, was da so gesendet wird.
Scheinbar ist das Problem sehr tiefsitzend. Da führt wohl kein Weg daran 
vorbei, auch in den tiefen Schichten zu suchen.

: Bearbeitet durch User
von Modl (Gast)


Lesenswert?

Hardwaretechnisches Problem ist auszuschliessen, weil die originale 
Herstellersoftware darauf zugreifen kann.
Ich kann eben nicht alle Register auslesen (Siehe erster Forumseintrag).

von MH (Gast)


Lesenswert?

Die Herstellersoftware kommuniziert doch wahrscheinlich über eine 
serielle Schnittstelle mit der Steuerung, oder?

Warum nicht anstelle der Steuerung einen weiteren PC mit serieller 
Schnittstelle und einem darauf lauschenden Terminalprogram anhängen und 
anschließend mit der Herstellersoftware das besagte Problemregister 
versuchen auszulesen. Dann solltest du doch sehen welcher Funktionscode 
und welche Registeradresse genutzt wird.

von Ronny S. (phoenix-0815)


Lesenswert?

Hallo,
eventuell findest da Infos und weitere Hilfe.

www.modbus.org

Gruß Ronny

von Rico W. (bitkipper)


Lesenswert?

MH schrieb:
> Warum nicht anstelle der Steuerung einen weiteren PC mit serieller
> Schnittstelle und einem darauf lauschenden Terminalprogram anhängen und
> anschließend mit der Herstellersoftware das besagte Problemregister
> versuchen auszulesen.
Da muß nicht unbedingt ein weiterer PC her. Das geht auch mit diversen 
Tools, die den COM-Port 'teilen' lassen, wie hier beschrieben:
http://en.wikipedia.org/wiki/COM_port_redirector

Hier ist z.B. der "com0com Null-modem emulator" bzw. "hub4com" für 
Windows verfügbar:
http://sourceforge.net/projects/com0com/

Dann kann man mit weiteren Werkzeugen wie z.B. Wireshark zu Werke gehen 
und nachsehen, ob die Nachricht auch richtig gesendet wird. Mehr 
Werkzeuge sind auch hier aufgeführt:
http://phreaklets.blogspot.de/2013/06/free-open-source-modbus-tools.html

@Modl:
Auf jeden Fall solltest du dir mal die Nachricht(en) in beiden 
Richtungen (Anfrage und Antwort) von Hand aufschreiben bzw. ausrechnen 
incl. CRC, Adressbits usw. damit du das im Protokoll nachprüfen kannst. 
Zur Übung auch mal ein paar Anfragen, die von deinen Geräten positiv 
beantwortet werden. Vielleicht gibt es dann doch einen Fehler in der 
Firmware deiner Geräte.
Hast du auch mal versucht die Register der alten ELC-18 ohne "upgraded" 
auszulesen?

von Modl (Gast)


Lesenswert?

Habe leider keine "normale" zur Hand. Nur die Upgraded Version.
Habe schon ein paar verschiedene Firmwares vom Hersteller probiert.
Leider ohne Erfolg.

Habe schon mit diversen Tools von Modbus.org herumgespielt.

Es liegt sicher an einem Denkfehler meinerseits, wie die Register zu 
addressieren sind.

von MH (Gast)


Lesenswert?

Nochmal die Frage:
Wenn du doch eine Software hast, welche die besagten Register auslesen 
kann, warum monitorst du nicht einfach mit welchen Funktionscode und 
welche Registeradresse diese an die Steuerung schickt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.