Modbus RTU: Wie kann ich dieses Register auslesen

Gast #3636730
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?
Angehängte Dateien:
#3882842
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
Gast #3930580
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.
#3931457
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.
Gast #3955566
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.
#3957022
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?
Gast #3957256
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.
Gast #3962979
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren