Hi. Ich habe eine Schaltung für einen Modbus / RS485 Hub erstellt. Es ist die erste Vorab-Version. Ich habe es bewusst ohne Controller realisiert, da die Schaltung einfach die Daten, welche auf einem Port rein kommen, an den anderen Ports wieder ausgeben soll, aber nicht an dem Port wo es empfangen wurde. Die Schaltung soll in Abzweigdosen installiert werden und daher viele Jahre problemlos und Protokoll-Unabhägig arbeiten und einfach nur 1:1 durch reichen. Sie soll noch nicht mal eine Kollisionserkennung machen und auch keine Fehlererkennung. Die Baudrate soll auch nicht fix festgelegt sein, sondern die Schaltung soll einfach im Rahmen seiner elektrischen Werte alles durch lassen was geht. Funktion der Schaltung: Wenn an einem Port ein 0 Signal auf dem Bus empfangen wird, wird über die Diode der Kondensator schnell entladen, und der invertierende Schmitt-Trigger gibt ein 1 Signal aus. Bei einem 1 Signal auf dem Bus läd sich der Kondensator langsam auf und schließt irgendwann den Port wieder. (Bei einem X Signal auf dem RS485 Port gibt der MAX489 auch ein 1 Signal aus). Geplant ist, nach Empfang einer 0 den Port ca 10 ms für Datenfluss offen zu halten. Über den Schmitt-Trigger wird dann der Buffer 74HC126 freigegeben, und das Datensignal liegt auf der Hubinternen Datenleitung. Gleichzeitig wird das Signal auf ein XOR geführt. Der XOR 74HC86 überprüft, ob die ACT Leitung auf High ist Außerdem wird über eine Diode die Portübergreifende ACT Leitung auf High Pegel gebracht. Hierdurch wird der Sender des Ports, wo empfangen wird, nicht freigeschaltet, aber bei den anderen Ports wird der Sender aktiv und die empfangenen Daten werden 1:1 durch gereicht. Habe ich irgendwo einen Denkfehler drin, oder würde die Schaltung so funktionieren? Es geht um die Logik, Kondensator- und Widerstandswerte oder sonstige Konkrete Bauteilbezeichungen spielen erst mal keine Rolle. Anbei ist der Schaltplan angehängt. Vielleicht habt ihr auch noch Verbesserungsvorschlöge für mich. Viele Grüße
Hier nochmal den Plan in Groß. Im ersten Posting ist er leider etwas klein geraten. Mfg
Hallo, ich habe nmir das mal angeshen und versucht zu analysieren. Im Prinzip sollte es funktionieren, aber ob es wirklich stabil für unterschiedliche Baudraten läuft, da bin ich nicht ganz sicher. Die Richtungsumschaltung würde ich besser mit einem Monoflop machen. Die Freigabezeit zum Senden sollte dann so eingestellt werden, dass bei niedrigster Baudrate eine Bytelänge erreicht wird. Wenn man nicht unter 1200 Baud geht, wären damit ca. 8...9ms ganz ok. Das genannte Timeout von 10ms wäre somit ganz ok. In deiner Schaltung fehlt IMHO noch zumindest ein Pulldown-R an der ACT-Leitung für einen def. Low-Pegel. Gruß Öletronika
Nur mal aus reinem Interesse. Wofür braucht man das? Ich dachte man kann es an den Sternpunkten verbinden und dann nur die max. Länge des Stichs einhalten. Ich hab nämlich ein Modbus Slave für die UP-Dose entwickelt.
Man braucht es un mehr als 31 slaves am Bus zu haben. Nennt sich repeater.
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.