Zum Inhalt springen

RS-485 Schnittstelle richtig ansteuern


 Teilen

Empfohlene Beiträge

Hallo,

ich soll ein kleines Programm entwickeln, das serielle Daten einer RS-485 Schnittstelle auswertet. Während ich schon einige kleine Programme geschrieben habe, die über herkömmliche serielle Schnittstellen (RS-232) kommunizieren, habe ich nun die Situation, dass ich Daten über die Schnittstelle sende, aber überhaupt nichts (erkennbar) zurück kommt.

Auch wenn es dafür verschiedene Ursachen geben kann ist nun meine Frage, ob man beim programmieren spezielle Sachen im Falle von RS-485 beachten muss oder im Code getrost so tun kann, als wäre die Schnittstelle das selbe wie eine RS-232-Schnittstelle mit vorgegebener Baudrate, Parität, Bitrate und Stopbits.

Ich nutze einen RS-485<->USB-Adapter. Ist der Adapter angeschlossen, wird ihm unter Windows die Bezeichnung COM4 und unter Linux das Device /dev/ttyUSB0 zugewiesen. Mit einem Tool des Hardware-Herstellers kann mit dem Gerät kommuniziert werden. Eigene Programme verhalten sich aber so, als wäre nichts angeschlossen.

Mit Serial-Sniffer-Programmen hatte ich auch keinen Erfolg. Die tun so, als läuft über die Schnittstelle nichts, wenn man nebenher dennoch mit dem Hersteller-Tool arbeitet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo GoaSkin,

eigentlich ist eine RS-485 gleich anzusteuern als eine RS-232.

Nur die Pegel der Übertagung sind unterschiedlich.

Bei RS-232 gibt es nur einen Pin pro Signal (RX & TX).

Hingegen hat die RS-485 jeweils zwei Pins pro Richtung, die genau invertiert sind.

Dadurch ergibt sich eine höhere Pegel => Störungssicherung, wodurch längere Kabellängen möglich sind.

Aber Programmiertechnisch ist es bei der Ansteuerung gleich.

Funktioniert das Hersteller Tool auch unter Linux. Dann kannst du die Konfiguration der Schnittstelle auslesen.

Dann kannst du die Konfiguration überprüfen: Serielle Schnittstelle auslesen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jo danke... habs mittlerweile hinbekommen. Die ganzen Sniffer funktionierten nicht, weil der USB->RS485-Adapter so verhält, dass das Device für andere Anwendungen gesperrt ist, sobald eine Anwendung (entweder Sniffer oder Herstellertool) darauf zugreift.

Mit einem Sniffer-Programm, das einen virtuellen COM-Port anlegt, den die Anwendung dann nutzen kann und die Daten durchschleift, war eine Analyse möglich.

In der Anleitung mit der Opcode-Tabelle war nur die Hälfte erklärt - z.B. dass vor jeden Code noch 01 vorne dran gehängt werden muss und die Checksumme (das letzte Byte) nicht vom gesamten Opcode gebildet wird, sondern nur von einem Teil.

Wenn ich nun in meinem eigenen Programm die Daten richtig durchgebe, kommt auch etwas zurück. Und eine Ansteuerung funktioniert wie bei RS-232 auch.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Vielen Dank nochmal, mittlerweile ist eine Webseite programmiert, die dem RS-485-Monitoring des betroffenen Gerätes dient.

Was mich aber noch interessieren würde ist, ob es auch ein paar generische RS-485-Kommandos gibt, die in der Gerätedokumentation nicht unbedingt erklärt sind - beispielsweise um ein RS-485-Gerät "anzupingen" oder anderweitig den Betriebszustand herauszufinden (eingeschaltet oder Standby).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo GoaSkin,

RS422 ist nur eine serielle Hardware Schnittstelle wie die RS-232 beim Computer. (OSI Schicht 1)

Einen einheitlichen Standard gibt es nicht, wie etwa bei MAC, IP, ... bei Ethernet.

Welches Protokoll darüber gefahren wird bestimmt der Hersteller der angeschlossenen Geräte.

Auf der 422 können gegenüber der 232 auch mehrere Geräte in einem Bus angeschloßen werden.

Daher werden hier meist Start / Stop und Checksummen für die Schnittstelle benötigt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

Fachinformatiker.de, 2022 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung