Hi zusammen, ich suche möglichst eine fertige und kostenlose (Demo reicht) Software, die 2 COM Ports in Windows paart. Habe also an einem USB Port ein USB RS232 Adapter, und am anderen USB Port auch einen Was von USB_A kommt, soll an USB_B gesendet werden und umgekehrt. Es soll so wirken, als würden beide Geräte direkt miteinander verbunden sein, und kein PC dazwischen hängen. Zur Not wäre ich auch mit einer VB.net Lösung zufrieden Kennt da jemand was? Danke!
Warum dann überhaupt einen Rechner dazwischen schalten? Sollen die Daten nur geloggt oder auch live verändert werden?
Christian R. schrieb: > Com0Com Nö, com0com bewirkt genau das Gegenteil, d.h. zwei Applikationen auf einem PC können ohne physikalische Schnittstellen miteinander verbunden werden.
Das geht auch mit Com0Com und zwar mit der Komponente "hub4com". http://com0com.sourceforge.net/hub4com/ReadMe.txt
Bastler schrieb: > Warum dann überhaupt einen Rechner dazwischen schalten? Bidirektionale Kommunikation, keine normale RS232. Anders kann man nicht die Daten von beiden Teilnehmern unterscheiden. Danke. Com0Com schaue ich mir mal an.
Michael schrieb: > Bidirektionale Kommunikation, keine normale RS232. Anders kann man nicht > die Daten von beiden Teilnehmern unterscheiden. Es gibt grundsätzlich 2 Möglichkeiten für die Analyse: entweder man leitet wie du den Datenverkehr über einen PC o.ä., oder man lauscht nur passiv mit. Das würde ich vorziehen, weil so der Datenstrom garantiert unbeeinflusst ist, was Daten und Timing angeht, sonst handelt man sich eine zusätzliche Fehlerquelle ein, die man im Zweifelsfall aufwendig untersuchen muss (wobei die Frage erhebt womit). Das gilt besonders wenn man sich die Bridge selbst zusammengebastelt hat. Übrigens gibt es bei RS232 getrennte Leitungen für TxD und RxD, man kann also immer unterscheiden von wem was kommt. Etwas anderes wäre das bei RS485, aber das war ja nicht gefragt. Georg
Michael schrieb: > Bidirektionale Kommunikation, keine normale RS232. "RS232" ist normalerweise bidirektional. Es gibt schlicht zwei zwei Leitungen für die Daten, eine für die Richtung A->B und eine für die Richtung B->A. > Anders kann man nicht > die Daten von beiden Teilnehmern unterscheiden. Das ist simpel. Man kann es allein daran festmachen, über welche Strippe die Daten laufen. > Danke. Com0Com schaue ich mir mal an. Das wird dir nix nützen. Dein Ziel ist doch wohl nur: Den Datenaustausch zwischen den beiden Peers zu belauschen. Das ist trivial. Wer's sendet, kannst du einfach über den Port feststellen, über den es rein kommt, lesen kannst du es, indem du halt einfach die Lesefunktion des Ports benutzt. Alles, was noch zu tun bleibt: Das Gelesene an den anderen Port weiter zu senden, damit der eigentliche Peer es auch mitbekommt. Alternativ könnte man die beiden auch direkt per Nullmodemkabel verbinden und dann über zwei Ports des PCs mitlauschen, indem man halt die beiden Leitungen der Nullmodem-Kommunikation an je ein RX der beiden Ports legt, die man zum Mitlauschen benutzen möchte. Wenn das alles für dich zu hoch ist->Lerne erstmal, wie diese olle serielle Kommunikation eigentlich funktioniert...
Heinz schrieb: > Linux: socat Unix Utils ported to Windows https://sourceforge.net/projects/unix-utils/files/socat/1.7.3.2/ hier, eher overkill.
Zur Erkärung. Es sind zwei RS485 Busteilnehmer. Kein RX und TX sondern A und B bei denen eine ständige Kommunikation läuft. Mal eben sehen wer da sendet ist nicht möglich! Andreas B. schrieb: > Windows: https://freevirtualserialports.com/ Hab ich mir angesehen, sah vielversprechend aus. Ist aber meiner Meinung nach nutzlos. Man kann nur virtuelle Ports brücken. Das ist nicht besonders hilfreich, wenn man die Daten von 2 USB Serial Adaptern an einander schicken möchte. Oder ich mach irgendwas falsch. Zeinh schrieb: > Unix Utils ported to Windows > https://sourceforge.net/projects/unix-utils/files/socat/1.7.3.2/ Das schau ich mir als nächstes an. Danke.
Michael schrieb: > Kein RX und TX sondern A > und B > bei denen eine ständige Kommunikation läuft. Mal eben sehen wer da > sendet ist nicht möglich! Aha - dann willst du also mit deiner Bridge alles was auf A/B erscheint, weiterleiten an A/B?? Georg
Michael schrieb: > Zur Erkärung. Es sind zwei RS485 Busteilnehmer. Kein RX und TX sondern A > und B Also half-duplex. Da gibt es bei RS485 immer ein nettes zusätzliches Bit, welches die Kommunikationsrichtung der Transceiver steuert. Und zwar auf beiden Seiten. Man kann also eines dieser beiden Signale abgreifen und als Kriterium für die Richtung des Datenflusses verwenden. Sinnvoll wäre es, den Master der Kommunikation diesbezüglich anzuzapfen, dann funktioniert es nämlich auch mit mehreren Clients. Der Rest ist easy, man braucht dafür nur eine COM-Schnittstelle zum Mitlauschen, weil hier garantiert ist, dass zu jeder beliebigen Zeit die Daten nur in einer Richtung fließen, entweder vom Master zu irgendeinem Client oder halt von irgendeinem Client zum Master. Also: Mitlauschen über einen COM-Port+RS485-Wandler, der dauerhaft auf "Empfang" geschaltet ist. Und von einer der beiden Peers das Steuersignal für die Datenrichtung abgreifen und auf einen der vier möglichen Steuer-Eingänge des Spy-COM-Ports legen. Dann in der Empfangsroutine des Spions eben dieses Signal auswerten und die Datenströme nach dessen Zustand einsortieren. Wo ist jetzt dein Problem? Kannst du nicht löten oder nicht programmieren oder kannst du beides nicht?
c-hater schrieb: > Wo ist jetzt dein Problem? Kannst du nicht löten oder nicht > programmieren oder kannst du beides nicht? Gewiss würde das gehen, aber leider sind beide Gerätschaften baumustergeprüft... zumindest löten fällt (offiziell) damit weg, da es sich nicht um ausrangierte HW handelt. Es gibt fertige Software die Seriell auf Ethernet kann... das könnte man natürlich zwischen Host und einer VM nutzen und Ein + Ausgehend entsprechend aufzeichnen. Wenn es wirklich keine einfach Möglichkeit gibt, die beiden USB Adapter zu "koppeln", und ich an der Hardware so wenig wie möglich machen soll/möchte/darf, ist die Seriell<-> Ethernet m.E. nach, die am wenigsten aufwendige Lösung. Vielleicht hat ja sonst noch jemand Vorschläge.
c-hater schrieb: > Also: Mitlauschen über einen COM-Port+RS485-Wandler, der dauerhaft auf > "Empfang" geschaltet ist. Und von einer der beiden Peers das > Steuersignal für die Datenrichtung abgreifen und auf einen der vier > möglichen Steuer-Eingänge des Spy-COM-Ports legen. Und wo legst du das angegriffene Signal an? A oder B? Oder braucht man einen besonderen Wandler? Die, die ich kenne, haben nämlich nur A+B und eventuell 5V sowie gnd) Michael schrieb: > Es gibt fertige Software die Seriell auf Ethernet kann. Serielles über Internet... Geht das denn halbwegs in Echtzeit wenn da permanent Verkehr auf der Leitung herrscht, ohne das irgendwas verloren geht oder zu verzögert ankommt?
Nachtrag: du könntest den master senden lassen und eventuell dann Mal selbst weitersenden... vielleicht kommst du so weiter. Je nach dem wie komplex der Austausch ist.
Michael schrieb: > > Vielleicht hat ja sonst noch jemand Vorschläg sollte sich doch unter win nicht sehr unterscheiden https://windelbouwman.wordpress.com/2014/06/12/linking-two-serial-ports-with-socat/ socat -d -d /dev/ttyUSB0,raw,echo=0,crnl,b115200\ /dev/ttyUSB1,raw,echo=0,crnl,b115200 --- https://stackoverflow.com/questions/33811013/socat-two-serial-port-together socat -u -u pty,raw,echo=0,link=/dev/ttyS20 \ pty,raw,echo=0,link=/dev/ttyS21
Michael schrieb: > Gewiss würde das gehen, aber leider sind beide Gerätschaften > baumustergeprüft... zumindest löten fällt (offiziell) damit weg, da es > sich nicht um ausrangierte HW handelt. Schwachsinn. Den einen Lötpunkt sieht kein Mensch, wenn die Strippe wieder abgelötet ist. Das ist, als wäre niemals etwas gewesen. > Es gibt fertige Software die Seriell auf Ethernet kann... Was soll das bringen? Du hast dann immer noch nicht die Richtungsinformation, die für eine Analyse des Traffics einfach unverzichtbar ist. Der Medienwandler kann eigentlich nur eins tun: jedes eingehende Byte (egal aus welcher Richtung) per Broadcast wieder an alle Peers zu senden. Die Peers wissen, was sie von dem universellen Gelaber jeweils ignorieren können. Du aber weißt das nicht, denn du kennst das Protokoll nicht, sondern willst es erst herausfinden... D.h.: die Idee bringt dich deinem Ziel keinen Schritt näher. Ein wenig logisches Denken bitte!
Michael schrieb: > Zur Erkärung. Es sind zwei RS485 Busteilnehmer. Kein RX und TX sondern A > und B > bei denen eine ständige Kommunikation läuft. Mal eben sehen wer da > sendet ist nicht möglich! Da gibt es keine Möglichkeit das per Software zu lösen (ausser evtl. per Laufzeitanalyse). Die siht ja nur Pegel und weiß nicht wo die her kommen. Evtl. einen Widerstand einschleifen und per OP (bzw Komparator) die Spannung abgreifen und verstärken.
Also mal als Abschluss an alle... beide Geräte mit USB RS485 Wandler per USB an PC Eltima Virtual com Port Serial Tools PRO (geht nur mit Pro) Beide Ports an denen die beiden Geräte hängen über "Merge" miteinander verbinden. Jetzt komunizieren beide Geräte ganz normal miteinander, nur eben über den PC. Einen der beiden Ports wahlweise ebenfalls mit Eltima oder jedem anderen Serial Monitor Programm loggen. Man sieht dann Send und Recieve. Dadurch kann klar unterschieden werden, was von welcher Seite kommt. Hat einwandfrei funktioniert, ohne nerviges löten etc. Sollte mal jemand was ähnliches brauchen, ist das mit am wenigsten Aufwand machbar. Keine zusätzliche Hardware ,außer spottbillige USB RS485 Wandler. Dennoch vielen Dank für eure Ideen.
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.