![]() |
Kommunikation über RS485 (halfduplex)
Hallo
Ich möchte ein Delphi-Programm schreiben, welches mit einem externen Gerät über RS485 kommuniziert. Auf meiner Seite setze ich einen RS232/RS485 Konverter ein. Mein Problem: Da in diesem Fall nur ein Halbduplex-Betrieb möglich ist, muss ich im Programm zwischen Sende- und Empfangsbetrieb umschalten! Das externe Gerät setzt jedoch eine Hardwarlösung ein und antwortet deshalb sehr schnell. Während dieser Zeit habe ich noch gar nicht von Sende- auf Empfangsbetrieb umgeschaltet! Habe ich softwaremässig überhaupt irgend eine Möglichkeit? Wie kann ich die Zeit bestimmen, die ich mindestens brauche, bis ich vom Sende- auf den Empfangsbetrieb umgestellt habe? Danke und Gruss Tom |
Re: Kommunikation über RS485 (halfduplex)
Wenn ich mich recht erinnere, werden COM-Ports doch von Windows wie Files behandelt (OpenFile bzw. CreateFile). Das Puffern der einlaufenden Zeichen wird also von Windows im Hintergrund erledigt. Das Duplex-Problem kommt damit bei der Applikation doch gar nicht mehr an. Such mal nach dem COM Port Driver von Marco Cocco - meine Version ist noch D2 hat's aber, als ich sie unter D5 das letzte mal benutzt habe, getan.
PMM |
Re: Kommunikation über RS485 (halfduplex)
Hi,
ich weiß nicht genau mit was für einen Adapter/Konverter du arbeitest, aber eigentlich gibt es zwei Möglichkeiten. Die etwas Neueren oder Hochwertigeren können automatisch umschalten. Die Erkennen einfach mal ob gerade gesendet oder Empfangen wird. Wird dies nicht geleistet, musst du Handshaking einstellen und hast dann entsprechend die Zeit, die deine Software benötigt um umzuschalten und danach das Handshake Signal zu schicken. Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz