GoaSkin Geschrieben 21. August 2013 Teilen Geschrieben 21. August 2013 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MHayer Geschrieben 22. August 2013 Teilen Geschrieben 22. August 2013 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
GoaSkin Geschrieben 23. August 2013 Autor Teilen Geschrieben 23. August 2013 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
GoaSkin Geschrieben 6. September 2013 Autor Teilen Geschrieben 6. September 2013 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). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MHayer Geschrieben 6. September 2013 Teilen Geschrieben 6. September 2013 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.