Forum: Mikrocontroller und Digitale Elektronik Steuerbefehle für serielle Schnittstelle von Geräten herausfinden


von matthias (Gast)


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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".

von Peter Z. (hangloose)


Lesenswert?


von Reinhard Kern (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von matthias (Gast)


Lesenswert?

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

von Chris L. (kingkernel)


Lesenswert?

Ü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!

von Andreas M. (elektronenbremser)


Lesenswert?

Es gibt ein Buch, aber schon älter, das da heißt "V24-RS232 
Kommunikation"
da steht die Vorgehensweise beschrieben.

von matthias (Gast)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von g457 (Gast)


Lesenswert?

Der Inverter spricht möglicherweise USS. Protokoll-Speck (ziemlich 
einfach aufgebaut) gibts da [1] ab Seite 49.

Einfach mal ablauschen und auf Plausibilität prüfen.

HTH und HF

[1] 
http://www.legacypower.net/Documents/ACDriveInformationPDF/SiemensACDriveEngineeringData.pdf

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.