Guten Morgen,
gibt es eine Möglichkeit, Steuerbefehle für serielle Geräte selbst
herauszufinden, wenn man keine Angaben vom Hersteller hat?
Ich stand schon oft vor Geräten mit seriellen Schnittstellen, zu denen
der Hersteller sich aber eher ruhig verhielt, was der
Informationsaustausch betraf.
Vielleicht kann man die Befehle auch durchprobieren!?
Danke
matthias
Es gibt keine "Befehle" auf der RS232 nur bytes. Du kannst aber
natürlich den Kommunikations mitschneiden und versuchen dir daraus den
für das Gerät verwendeten Befehlssatz/Protokoll zu "erschnüffeln".
matthias schrieb:> Vielleicht kann man die Befehle auch durchprobieren!?
Selbst wenn die Übertragung z.B. nur 8 Bytes lang ist, bräuchtest du
dafür mehr Zeit als das Universum alt ist.
Man kann nur mithören und nachdenken - es kann trivial sein, oder auch
nicht, z.B. muss der Befehl "Lesen" keineswegs ein R oder L enthalten.
Üblich sind auch Protokolle mit einem binären Befehlsbyte oder Word, wo
etwa die Zahl 0..22 22 verschiedene Befehle an die Steuerung definiert -
kommt eben ganz drauf an, was sich der Hersteller ausgedacht hat. Und
damit es nicht ganz so einfach wird, weisst du ohne Unterlagen nicht,
welches überhaupt das Befehlsbyte ist. Besonders raffiniert ist auch die
Verwendung einzelner Bits in der Bytefolge zum Ein-Ausschalten
bestimmter Funktionen.
Gruss Reinhard
matthias schrieb:> gibt es eine Möglichkeit, Steuerbefehle für serielle Geräte selbst> herauszufinden, wenn man keine Angaben vom Hersteller hat?
Das ist ungefähr so schwierig, wie wenn du ein Telefongespräch 2-er
Japaner mithörst und nur durch zuhören Japanisch lernen willst.
Wenn ichs recht bedenke, ist das sogar noch einfach dagegen. Da sind ja
2 Japaner, die plaudern.
Du aber willst Japanisch lernen, indem du in Tokio anrufst und dich mit
einem Dortigen auf gut Glück in 'Japanisch' (oder das was du dafür
hältst) unterhältst.
Hallo,
vielen Dank für eure Ideen. Mitlerweile bin ich soweit, dass ich eine
Software vom Hersteller habe. Diese schickt bestimmte Bytes raus. Leider
weiss ich aber nicht, was für eine Baudrate, wieviel Start- und Stopbits
oder was für eine Parität verwendet wird.
Wie kann ich das von dem Programm ausgesendete Signal am besten denn
nach den genannten Parametern analysieren?
Danke
matthias
Überwache mal den Port, wenn das Programm diesen öffnet. Dann erhälst du
diese Informationen.
Wenn das Programm wirklich nur einfache Befehle sendet und keine
Rollenden codes hat, oder dynamische Folgen (Checksumme, Datumsanhang)
Um was für Gerät geht es denn, vielleicht hat sich schon jemand den
aufwand angetan!
Hallo Christian,
bei dem Geräte handelt es sich um einen Wechselrichter einer PV-Anlage.
Der Wechselrichter ist von Siemens. Er besitzt eine RS485 Schnittstelle.
Ich habe einen RS232-RS485 Adapter, mit dem ich den Wechselrichter mit
der seriellen Schnittstelle ansprechen kann.
Vielleicht hat ja jemand schon informationen dazu.
matthias schrieb:> Hallo,> vielen Dank für eure Ideen. Mitlerweile bin ich soweit, dass ich eine> Software vom Hersteller habe. Diese schickt bestimmte Bytes raus. Leider> weiss ich aber nicht, was für eine Baudrate, wieviel Start- und Stopbits> oder was für eine Parität verwendet wird.>> Wie kann ich das von dem Programm ausgesendete Signal am besten denn> nach den genannten Parametern analysieren?>> Danke> matthias
Hallo Matthias,
einfach Brute Force: Baudrate, Zeichenlänge, Parity solange variieren,
bis die Bytefolge sinnvoll ist. Ich nehme dafür einen
Protokoll-Analysator, der kriegt manches selber raus, kostet aber auch
soviel wie ein neues Auto. Notfalls geht es auch mit Hyperterminal.
Es hilft sehr, wenn man einen Plan hat: erst mal Baudrate, dann
Zeichenlänge solange ändern (und zwar systematisch!) bis etwa soviele
Zeichen angezeigt werden wie gesendet wurden. Dann weitermachen bis
keine Fehler (Parity, Overrun) mehr angezeigt werden. Mit etwas Glück
sieht man dann, was gesendet wurde, ob man es versteht, ist dann eine
neue Baustelle.
Der grosse Vorteil bei meinem Analysator ist u.a., dass man nicht neu
senden muss - der merkt sich alle Flanken und kann diese Aufzeichnung
mit verschiedenen Baudraten usw. analysieren.
Gruss Reinhard