www.mikrocontroller.net

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


Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: Peter Z. (hangloose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chris L. (kingkernel)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Andreas M. (elektronenbremser)
Datum:

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

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/ACDriveInform...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.