Hallo, ich möchte einen Frequenzumrichter der mit einer RS485 ausgestattet ist mit einer Mini-SPS die nur über RS232 verfügt parametrieren. Mir wurde gesagt dass es Ohne weiteres möglich ist die Verbindung direkt herzustellen.Es müssten nur Kabel gekreuzt werden. Allerdings habe ich auch gelesen dass RS232 mit +-12V Pegel Arbeitet und RS485 nur mit+-5 V. Ich bin jetzt irgendwie verwirrt und hätte an dieser Stelle klärungsbedarf ;). Kann mir das jemand nochmal genauer verklickern? DAnke schon mal im Voraus. Steffen Brüssel
Hi, das kann nicht so einfach sein. RS485 hat zwei differentielle Leitungen, die sowohl RX als auch TX sind. Ohne Umsetzer kann man das nicht auf die getrennten RX/TX einer RS232 umfriemeln.
hi, Hab ich mir schon gedacht. Dann werd ich mal bei MAXIM nach Bausteinen suchen die das können. der MAX232CPE scheint das zu können jedenfalls lt Conrad.. Ist halt wieder mehr gebastel als geplant. Danke für dein Post ;) Bye
Hallo nochmal. der max232 war doch nur ein Umsetzer TTL-RS232, wie soll das gehen? ELV hat ein Gerät, was tut, was du willst - 68-326-65 Vielleicht findet sich dazu irgendwo der Schaltplan, wenn ja, kannste ihn auch rausrücken, würde mich auch mal interessieren, was drinnen ist :)
Danke nochmal. Warum schreibt Conrad das dann... da ist man als nicht Elektroniker wieder voll ange***.. Hab noch ein wenig gesucht und nen Schaltkreis mit dem wohlklingenden Namen ADM485 gefunden der wunderbar an die UART vom AVR passt. Das Teil was du gefunden hast nehm ich mal genauer unter die Lupe ;) Gruß Steffen
http://www1.conrad.de/conrad/layout2/detail.fh?fh_secondid=167371&layout=layout2&fh_host=www1.conrad.de&fh_eds=%c3%9f&do_fh_search=1&fh_session=%2fscripts%2fwgate%2fzcop_b2c%2f~flN0YXRlPTI1ODU4ODAzNzg%3d&fh_search=max232+cpe&fh_refview=search Hier das ist der Link zu dem Bauteil bei Conrad. Scheint so als ob die Zeile wo der MAX232CPE steht tatsächlich gar nix mit dem angezeigten Produkt zu tun hat... Nun ja...
Was Du brauchst, ist ein Protokollumsetzer. RS485 arbeitet oft mit 9 Bits, um erstmal einen Slave adressieren zu können. Desweiteren benötigst Du ein zusätzliches Steuersignal, um zwischen Senden und Empfang umzuschalten. Ohne das benutzte RS485-Protokoll zu kennen geht also garnichts. Peter
es ist nicht nur eine Pegelwandlung, sondern auch angepasste SW notwendig. Die Richtung das Datenverkehrs muss ja auch auf beiden Seiten umgeschaltet werden. Kurt
Hallo, zum Protokoll. Da ist ModBus RTU vorgesehen. Mit dem Umschalten könnt man hinbekommen da ich ja lt. Modbus RTU sowieso nur ein Telegramm sende und dann auf Bestätigung bzw. auf das Antwort-Telegramm warte. Umschalten macht er ja auf der RS485 Seite allein oder? Was ähnliches hab ich auf nem AVR schon mal gemacht. Allerdings war da sowieso die RS232 Grundlage. Das geht hier grad viel zu schnell. Ich muss erstmal wieder nachdenken ;) Je mehr aufwand das wird umso weniger warscheinlich wird es das wir das einsetzen werden. Zur not wird der FU halt über Digitale I/O angesteuert und nicht über Schnittstelle mit Protokoll. Gruß Steffen
Hallo nochmal, Der FU hat schon ein komplettes ModBus RTU Protokoll implementiert. der FU ist dabei der Slave(logisch oder?). Ich muss ihn vorher adressieren und muss dann auf SPS seite die Byte-Telegramme zusammenstellen entsprechend der ModBus RTU Spezifikation. 1.byte Adresse 2.Byte Funktion 3.byte Zieladresse (Read/Write)MSB 4.byte Zieladresse (Read/Write)LSB 5.Byte Data MSB 6.Byte Data LSB . . . x-1 byte CRC LSB x byte CRC MSB So in etwa. Antwort Telegramme sind genauso aufgebaut. Gruß Steffen
Hi, also für die RS-485 gibt es auch 2 Möglichkeiten, 2-Draht, oder 4-Draht. Bei der 2-Draht Lösung muß natürlich umgeschaltet werden, was meist mit dem RTS-Signal erledigt wird. Wenn Du aber eine feste Strecke ohne bekanntes Protokoll umsetzen möchtest, nimmst Du einfach eine 4-Draht RS-485. Damit ist dann auch keine Anpassung oder sonst was nötig, es wird halt lediglich eine Konvertierung jedes Signals (RXD,TXD) von RS-232 Pegel auf Differenzsignal - und zurück- vorgenommen. Gruß Wolfram
"also für die RS-485 gibt es auch 2 Möglichkeiten, 2-Draht, oder 4-Draht." Es gibt RS485 ein Leitungspaar für hin und zurück und RS422 zwei Leitungspaare Kurt
Vollduplex = 2 Leitungspaare (keine Umschaltung notwendig). Auch bei RS485! Halbduplex = 1 Leitungspaar bei RS485 (Umschaltung notwendig)
1. Das erste Byte "Adresse" beim Protokoll klingt nach Busadresse, bei der wird dann üblicherweise das 9te Bit gesetzt. Das solltest Du Dir dann noch anschauen, ist aber natürlich keine große Sache. 2. Erst schreibst Du von einer SPS mit RS-232, dann von einem AVR mit UART. Also offenbar eine SPS, mit einem AVR, deren UART auf RS-232 Pegel umgesetzt wird. Soll jetzt noch ein Extrakasten an die RS-232 ran? Wesentlich einfacher wäre es natürlich, die Pegelwandlung auf RS-232 zu ersetzen gegen eine für RS-485. UART ist ja genauso gern 485 wie 232, auch wenn in Bastlerkreisen gerne UART und 232 assoziiert wird. 3. Wolfram, Kurt und Walfänger schreiben dasselbe mit anderen Worten, weiß der Kuckuck warum. Egal. Wenn Vollduplex, reicht wirklich eine Pegelanpassung, Sende- und Empfangsbit des 485-Treibers können ständig aktiv gesetzt werden. Falls Halbduplex, hat die RS232 hoffentlich mindestens eine Hardware-Handshake-Leitung belegt, über die dann zwischen Senden und Empfangen umgeschaltet werden soll. Das Protokoll ist ja so einfach, daß auch das kein Problem ist.
Nene, den avr hab ich als Beispiel genant. Da hab ich shcon mal ne ModBus RTU Kommunikation gemacht. Wobei ich die allerdings auf beiden Seiten Implementiert hab. da Fallen Fehler nicht so shcnell auf solang man sie auf beiden Seiten gleich macht. Ich habe genaugesagt eine SmartLogic von IFM da ist kein AVR drin und einen FU von Control Techniques. Ob ich beim FU zwischen den Betriebsmodi von RS485 wählen kann wage ich mal zu bezweifeln. Beschriftet ist eine Leitung mit RXTX und eine mit GND die letzte mit RXTX negiert. Daher eh ich davon aus, dass das Teil nicht im Vollduplex Betrieb arbeiten kann. Da das ModBus Protokoll auf Antworten wartet ist Vollduplex sowieso unnötig. Die Adresse ist die ModBus Adresse. Die wird auch per Telegramm in einem Byte übertragen. Das 9. Bit ist mir fremd. Ich kenn nur die übertragung von 8 Datenbits sowie Start und Stop. 9. Bit für die Adressierung ist mir also unbekannt. Vielleicht hat jmd dafür nen Link wo ich mich belesen kann. Wenn das alles in allem so umfangreich wird, kann ichs ganz lassen weil meine Kosten insgesamt dann höher sind als das Endprodukt. Das dumme ist halt das diese Umsetzer von RS232 auf RS485 so sau teuer sind. Das oben angegebene Teil kostet etwa die hälfte von dem was der FU kostet. (naja zumindest fast) Das ist einfach Inakzeptabel teuer. Da wir mindestens 8 SPS FU Kombinationen haben sind das mal eben 1000 Euro. Wenn sich nix anderes ergibt. Werde ich direkt mit Digitalen I/O arbeiten. Das ist zwar letztlich weniger komfortabel allerdings preis- und nervengünstiger. Gruß Steffen
Ergänzung. Nein die RS232 hat Ausschließlich RX TX und GND. Gruß Steffen
Wenn die RS485-Gegenseite keinen Vollduplex kennt, die RS232-Seite aber keine Senderumschaltung zulässt, dann ist eine Umsetzung ziemlich schwierig. Der RS485-Sender, der im Umsetzer verbaut ist, muss sich hochohmig schalten, sobald von der RS232-Seite keine Daten mehr gesendet werden, da sonst auf der RS485-Strecke zwei Sender "gegeneinander" arbeiten. Ist die Protokollänge, die von der RS232-Seite aus gesendet wird, konstant (beispielsweise immer 3 Bytes), dann ließe sich die Senderumschaltung mit einem Monoflop (nicht retriggerbar) realisieren, das auf das Startbit reagiert und für die Dauer eines Protokolles aktiv bleibt. Vom Timing her kniffliger wäre eine Einzelbyte-Umschaltung, die ebenfalls mit einem Monoflop zu realisieren wäre, das Impulse von exakt einer Bytelänge (incl. Start-, Parity- und Stopbit) erzeugt.
Es gibt z.B. von der Firma Spectra einen RS232 <-> RS485 Konverter, Typenbezeichnung irgend was mit 7520. google sollte mehr dazu wissen. Kostet so rund 70 Euro + Märchensteuer. Dieter
Und? Wie löst der das Problem der Sender/Empfängerumschaltung?
Das macht er selbstständig, und zwar auch bei wechselnden Baudraten. Ich weiss aber nicht wie schnell das geht, für unsere ganz ordinäre ASCII und Binär Datenübertragung ohne Protokoll reicht es alle mal (9600 bis 115200 Baud). Das angesprochene Gerät braucht ja auch etwas Zeit bis es die Antwort auf die Anfrage fertig hat zum Senden. Dieter
Du betreibst das Teil auf der RS232-Seite definitiv nur mit den Leitungen rxd/txd (und Masse) und hat nur 'ne RS485-Zweidraht-Verbindung?
jau so isses, aber nix für ungut - ich leg mich ab, um 6 is die Nacht rum. So long Dieter
Wenn ich mir das so alles durchlese scheinen die 70-100 Euro für son Kabel / Adapter gerechtfertigt zu sein. Ich will ja nicht das Rad neu erfinden. Wenn ihc das privat machen müsste würd ich mir das vielleicht noch überlegen, aber in der Firma macht da sicher keiner mit ;). Wenn ich da 2 Wochen dran rumbastel dann kann ich auch gleich für die komplette Anlage sone Umsetzer bestellen ;). OK, danke für eure Tips. und ne Gute Nacht @ Dieter Gruß Steffen
Hallo Steffen, nochmal zur Klarstellung: Der Konverter kann offensichtlich nur Daten umsetzen, die auch mit einem im PC verwendeten RS232 Baustein (8250, 82550 usw.) erzeugt bzw. empfangen werden können. Für Profibus DP z.B. ist er nicht geeignet, da hier offenbar eine andere Bitstruktur der Daten vorliegt, siehe Beitrag von Peter Dannegger. Ob es mit Modbus klappt weiss ich leider auch nicht. Dieter
Hallo, ich würde gerne mit meinem Problem hier anknüpfen. Als Brandschutzklappen-Steuerung und -Überwachung habe ich Platinen und Software in Assembler für einen PIC16F877 realisiert, die auch als Slave über eine RS485 2-Draht an ModBus angebunden wird: http://www.domnick-elektronik.de/aktbsk.htm Auf der unteren Platine ist ein MAX232 für eine RS232 Schnittstelle und ein SN75176 für eine RS485 Schnittstelle mit Jumper zur Auswahl des Rx-Ausgangs platziert. Mit dem Programm ModScan läuft die Software über RS232 perfekt. Es kann alles abgefragt und auch gesteuert werden. Über RS485 läuft es nicht so gut, weil mir die Zeitpunkte der Umschaltung zum Senden bzw. Zurückschaltung auf Empfang unbekannt sind. Es gehen Bits verloren oder werden verschoben ??? Nach Empfang des letzten Bytes (CRC) sollen laut Protokoll 3,5 Byte an Wartezeit vergehen. In anderen Beschreibungen finde ich Werte von maximal 4 ms als TimeOut-Wert bei 9600 Baud, denen man nicht zu nahe kommen sollte, wieder andere schreiben von 10...100ms. Das sind alles Abstände zwischen Anfrage vom Master und Antwort vom Slave. Zu welchem Zeitpunkt schaltet der Master, in diesem Fall der PC über RS232 zu einem Converter (IC485IP-1) RS232 <--> RS485, mit dem RTS-Signal den Baustein in dem Converter den Sender aus / auf Empfang und wann darf ich meinen SN75176 auf Senden umschalten ? Die gleiche Frage für die umgekehrte Richtung. Mittlerweile kenne ich sehr viele Bedienungsanleitungen von Geräten, die an den ModBus angeschlossen werden können. :-( Niemand beschreibt für das Antworten den Zeitpunkt zum Umschalten von Empfang auf Senden und umgekehrt. Viellecht kann mir jemand aus diesem Forum helfen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.