Hi, ich habe ein AVR NET IO an eine serielle Schnittstelle hängen. Dieses funktioniert mit einem "normalen" USB auf Seriell-Adapter einwandfrei! Jetzt will ich aber das Ganze über Netzwerk machen, somit habe ich mir eine Ethernet auf Seriell Adapter gekauft: http://www.exsys.ch/index.php?main_page=product_info&cPath=48_49&products_id=638&zenid=69626f21d5418e15f71521028aaa5365 die Verbindung zu dem AVR will jetzt aber noch nicht klappen, er (Terminal) kann zwar die COM4 öffnen, sendet nur keine Daten hin un her... Die Einstellungen zu dem ExSys Gerät sieht man in Bild 1 (s.Anhang) In Bild 2 sieht man wie "vernünftig" das Gerät im Gerätemanager angezeigt wird. Auf Bild 3 sieht man die Einstellungen des normalen USB auf Seriell-Adapter, welcher funktioniert. Hat jemand ein Tip warum das noch nicht geht?!?! PS. Einmal ist es COM4 und einmal COM5, das habe ich im Terminal natürlich auch angepasst... Alex
Hast Du schon den üblichen Loopback-Test gemacht? RxD und TxD der ansonsten mit nichts verbundenen seriellen Schnittstelle miteinander verbinden, mit einem Terminalprogramm gesendete Daten müssen wieder empfangen werden. Geht das nicht, könnte es am Hardware-Handshake liegen, das zu deaktivieren ist. Wie sehen denn die Einstellungen im Gerätemanager aus? (Rechtsklick auf "Eltima Virtual Serial Port", im Kontexmenü "Eigenschaften" auswählen)
Hi, Danke für deine Antwort, ich meld mich morgen...hab den Rechner schon aus...
Da habe ich den Rechner doch nochmal angeschmissen.... Also unter Eigenschaften gibts nicht viel einzustellen. S.Anhang Ich glaube auch, dass der Loopback - Test nicht so viel bringt, da ich ja an der Verlängerung die am ExSys hängt, direkt mein USB-Seriell-Adapter hänge. Damit geht das dann! Das sieht stark danach aus das es am ExSys und/oder an den Einstellungen liegt...??? Weiss aber auch nicht...
Mach zu erst mal einen Loopback-Test, also RX und TX-Leitung direkt hinter dem Ethernet/Seriell-Adapter verbinden. Wenn dann die Zeichen nicht zurückkommen, also im Hyperterminal angezeigt werden, stimmt bei dem Adapter etwas nicht... Hast du vielleicht irgendwo einen "Kabeldreher" drin, bzw. hast du zwei mal TX/TX und RX/RX verbunden anstatt RX/TX? Es gibt ferner noch Programme, wie z.B. "WIRESHARK", damit kannst du sehen was über das Ethernet gesendet wird. Eventuell siehst du da auch einen Fehler... Gruß, Alex
Hi Namensvetter, Das mit dem Wireshark ist noch einmal ein guter Tip! Das probiere ich mal aus. Das mit nen Kabeldreher kann ich eigentlich ausschliessen! An dem ExSys hängt eine 1m RS232 Verlängerung die auf das NET IO geht, wenn ich diese Verlängerung vom ExSys abmache und an meinem PC über einen RS232-USB Adapter verbinde (COM5)funktioniert die Verbindung ja... Somit ist das ja ausgeschlossen... Das muss eigentlich zwangslüfig ein Software/Einstellungsbug noch sein. Ich werde mal mit Wireshark suchen und den Loop-Test dabei machen... Ich meld mich...
Alexander Alexander schrieb: > Ich glaube auch, dass der Loopback - Test nicht so viel bringt, da ich > ja an der Verlängerung die am ExSys hängt, direkt mein > USB-Seriell-Adapter hänge. Damit geht das dann! Du sollst mit dem Loopback-Test die Schnittstelle am Ethernet-Device-Server überprüfen, nicht Deine µC-Schaltung. Alex schrieb: > Das mit nen Kabeldreher kann ich eigentlich ausschliessen! Vorausgesetzt, daß das Ding nicht DCE/DTE durcheinanderbringt. Ansonsten ist das Thema Handshake ungeklärt. Da man anscheinend bei dem Ethernet-Device-Server das Hardwarehandshake nicht abschalten kann, wirst Du es durch entsprechende Lötbrücken am Stecker überlisten müssen -- also RTS mit CTS verbinden sowie DSR mit DCD und DTR. Bevor Du das aber machst, machst Du erst mal den Loopbacktest. Wenn der nicht funktioniert, machst Du o.g. Handshakemanipulation und wiederholst den Loopbacktest. Deine Testbuchse, die Du in das Gerät steckst, muss also folgende Brücken aufweisen: 2 - 3 7 - 8 1 - 4 - 6 Wenn das dann funktioniert, musst Du die Brücke zwischen 2 und 3 durch den Anschluss Deines µC ersetzen, die anderen Brücken aber beibehalten.
Hi, leider hat das nicht geklappt. Nur der Loop-Test (Bild 2) und auch einmal der Loop-Test + Handshakemanipulation (Bild 3) haben nichts gebracht... Terminal ist eingestellt wie im Bild 1 zu sehen. Ich probiere jetzt mal mit Wireshark mehr raus zu bekommen, wenn jemand aber noch einen anderen Tip hat...ich bin sehr dankbar dadrüber....
> leider hat das nicht geklappt. Nur der Loop-Test (Bild 2) und auch > einmal der Loop-Test + Handshakemanipulation (Bild 3) haben nichts > gebracht... Was heist das, kamen die Zeichen zurück oder nicht. Wenn sie nicht zurück kamen, hat Dein Adapter eine Macke.
Es kahm nichts zurück! Ich glaube nicht, dass der hardwaremäßig kaputt ist... der ist ganz neu..Ichmeine, das wäre sehrunwahrscheinlich.
Und ich Teste es morgen mal an meinem Laptop...evtl liegst auch am Rechner?!?!
Wie genau testest du überhaupt? Kann man den auf der ETH Seite eventuell einfach per Telnet ansprechen? Hast du ein Oszi oder Logikanalysator um mal zu schauen wo was an kommt? Was sagt die Anleitung dazu. Wozu muss man ein ein Ethernetfähiges Gerät einen RS232 zu Ethernet Bridge dranhängen? :-)
Hi, ich teste durch ausprobieren ob es läuft ;-) Nen Oszi habe ich auch. >Kann man den auf der ETH Seite eventuell >einfach per Telnet ansprechen? Das weiss ich nicht, was soll das genau heißen bzw bringen?!?!?!? Will vom TablePC über W-LAN das NET IO per Seriell erreichen, alternativ auch übern PC per LAN.
Alex schrieb: > was soll das genau heißen bzw bringen?!?!?!? Um eventuell ein Treiberproblem auszuschließen, das Ding ist in erster Linie ja ein Ethernetdevice. Alex schrieb: > Will vom TablePC über W-LAN das NET IO per Seriell erreichen Wieso nutzt du nicht die schon vorhandene LAN Schnittstelle? Alex schrieb: > Das weiss ich nicht Dann einfach mal die Anleitung studieren... Hast du das den schon wie in der Anleitung beschrieben mit dem "CentosSEC Virtual COM Software" konfiguriert? Und wie sieht die Konfig aus? Kannst du das Gerät anpingen? Was gibt es den noch bei dem "Packet-Mode" so einzustellen?
Läubi .. schrieb: > Um eventuell ein Treiberproblem auszuschließen, das Ding ist in erster > Linie ja ein Ethernetdevice. Habe es gerade an meinen XP Laptop ausprobiert, das Gleiche...es geht leider beides nicht (ohne + mit Handshakeman.) Mein PC hat W7 > Alex schrieb: >> Will vom TablePC über W-LAN das NET IO per Seriell erreichen > > Wieso nutzt du nicht die schon vorhandene LAN Schnittstelle? Nutze ich auch, habe aber auch eine VB-Visualisierung. Die kommuniziert mit RS2323 > Dann einfach mal die Anleitung studieren... In der Anleitung steht auch nicht viel. Sieh: http://www.exsys.ch/download/catalog/ex_6030.pdf http://www.exsys.ch/download/manuals/EX-6030.pdf?zenid=69626f21d5418e15f71521028aaa5365 > Hast du das den schon wie in der Anleitung beschrieben mit dem > "CentosSEC Virtual COM Software" konfiguriert? Natürlich, so hat sich ja auch erst der "Virtuelle" Com Port eingetragen. >Und wie sieht die Konfig > aus? Kannst du das Gerät anpingen? Auch ja, die blaue Eigenschaftseite im der ersten Post ist lokal auf der 192.168.178.32 > Was gibt es den noch bei dem "Packet-Mode" so einzustellen? Nur Enable oder Disable. Hatte es gerade mal disabled, leider auch nichts... Das muss doch gehen, Software lässt sich ohne Fehlermeldung installieren, das Gerät ist frisch aus der Verpackung...
Ich würde mal auf Disable stellen und den TCP Server Mode aktivieren, dann müsstest du über Telnet auf Port 100 an der IP Adresse Daten senden können (oder halt per Socket aus VB heraus). Alex schrieb: > In der Anleitung steht auch nicht viel Nun gut bei knapp 60€ für so ein Teil war ich davon ausgegangen, dass wenigstens eine etwas ausführlichere Anleitung beiliegt... Alex schrieb: > Das muss doch gehen Im Zweifel mal an den Hersteller wenden... Ich hab hier leider nur einen XPORT rumliegen kann dir also hier nicht "live" probieren. Eventuell können die dir Wenigstens noch ein Dokument schicken wo alle Optionen Beschrieben sind. Alex schrieb: > Nur Enable oder Disable. Hatte es gerade mal disabled, > leider auch nichts... Wie viele Zeichen sendest du denn? Es kann nämlich sein, das sowohl Windows als auch das Gerät zunächst puffert bevor ein Paket an die reale Schnittstelle rausgeht. Alex schrieb: > Nutze ich auch, habe aber auch eine VB-Visualisierung. > Die kommuniziert mit RS2323 Kannst du die nicht auch auf ETH umstricken? so ist das etwas doppelt gemoppelt :-)
Ok, probiere ich mal aus. Das doofe ist, dass ich mich nicht mit telnet auskenne. Unter W7 gibt's zum Glück genug im i-net zu finden, wie man den einrichtet! Muss mich da ersteinmal einlesen...
Du kannst auch Putty im Raw mode oder wie gesagt jede beliebige Programmiersprache welche Sockets unterstützt nutzen.
Hallo, habe jetzt auch mal Telnet rumprobiert! Leider auch ohne Ergebnis, ich bekomme nicht einmal eine Verbindung hin. Die Einstellungen im ExSys habe ich wie Bild 2 gemacht. Ich versuche jetzt mal über den Hersteller irgendwelche Info zu kriegen. Irgendetwas mache ich verkehrt. Wenn aber noch jemand ein Tip hat, gerne her damit....
Ich habe gerade noch mal die Software deinstalliert und installiert, da ist mit aufgefallen, dass man dort noch Type (Server, Client, UDP) und Net. Protocoll (Telnet , Raw) auswählen kann. Standart Einstellung ist wie im Bild 1. Damit hatte ich es jetzt auch getestet! Muss ich für meinen Anwendungsfall etwa was anderes auswählen? Kenn mich mit den Protokollen nicht so gut aus...
Es geht jetzt, weiss aber noch nicht genau warum...Melde mich später
RAW und TCP sollte die korrekte Einstellung sein. UDP würde auch gehen aber nur wenn du eine eigene Software schreibst und Datenpaketverluste verkraften kannst.
Also du meinst "Client" und Raw? Wofür steht Raw denn eigentlich, selbst google gibt nicht viel Preis!
In diesem Kontext dürfte Raw soviel bedeuten wie "ohne interpretierte Steuerzeichen, ohne zusätzliches Protokoll, alles transparent durchreichen".
Hallo, also ich habe mir nur die aktuelle Sofware vom Hersteller runter geladen, damit geht es jetzt. Komisch... naja... ein Fehler habe ich aber noch evtl. könnt Ihr mir da auch noch helfen??? Wenn ich Daten mit dem Terminal Programm zum Atmega schicke kommen die Daten 100% richtig an, die Antworten vom Net IO werden auch 100% empfangen. Also alles OK! Nehme ich aber mein VB-Projekt (s. Code im Anhang) dann kann ich aus VB richtig senden, das NET IO liest und versteht es auch richtig, nur die Daten die dann das NET schickt werden im VB-Projekt falsch interpretiert, also da werden ganz falsche Empfangen. Als ob da irgendetwas im Puffer hängt was dann erst abgerufen wird, das ist aber nur eine Vermutung...also es kommen keine Hyroglyphen an, sondern alles "bekannte" Zeichenfolgen. Ich kriegs irgenwie nicht hin... In der USART.c und .h ist es die USART0 die für diese Kommunikation verantworltich ist...
Etwas mehr Details was falsch ist wäre schon nett ;-) Sind die Zeichen "durcheinander", fehlen Daten ... Was mir auffällt ist, das du einerseits Flusskontrolle ausschaltest, dann aber das RTS setzt, soll das so sein? Ich würde im VB einfach mal alle Daten so ausgeben wie sie kommen, dann sieht man auch oft schon was falsch sein dürfte. Das Programm scheint ja noch weiter zu gehen...
Läubi .. schrieb: > Etwas mehr Details was falsch ist wäre schon nett ;-) > Sind die Zeichen "durcheinander", fehlen Daten ... Was mir auffällt ist, > das du einerseits Flusskontrolle ausschaltest, dann aber das RTS setzt, > soll das so sein? Sind keine Hyroglyphen! Als ob er nach 100 Strings z.B. ("11|22|33|44") einfach aufhört zu lesen...Wo schalte ich die flusskontrolle denn aus? > Ich würde im VB einfach mal alle Daten so ausgeben wie sie kommen, dann > sieht man auch oft schon was falsch sein dürfte. Das Programm scheint ja > noch weiter zu gehen Ich muss noch sagen, dass es im Terminal Programm 100%tig funktioniert, also muss es an dem Vb Programm liegen!
Deswegen sag ich ja: Schreib dir ein VB Programm, was nichts anderes macht als alle EMpfangenen Strings auf die Konsole zu schreiben. Wenn das Problemlos tut, musst du entweder immer mehr Funktion drumrumstricken bis es nicht mehr geht, oder in deinem aktuellem Programm auf die Suche gehen nach Sachen wie Schnittstelle schließen, buffer zurücksetzen und/oder overflow Behandlung... Alex schrieb: > Wo schalte ich die flusskontrolle denn aus? >>SerialPort1.Handshake = IO.Ports.Handshake.None Und hier wird irgendwas mit RTS gemacht >>SerialPort1.RtsEnable = True Das ausschalten ist auch okay, solange du die Statusleitungen nicht bedienst und kein XON/XOFF machst.
Hi, ich habe jetzt mal nur eine Form geschrieben, die nichts anderes macht als die Serielle...und immer noch das Gleiche. Sie liest genau 158 Zeilen ein, dann ist Schluss! Mit den Einstellungen, Timeouts etc. die auf Bild 1 zu sehen sind habe ich auch gespielt, leider ohne irgendeine Änderung! Hast Du noch eine Idee? Hier einmal der Code der Forms:
1 | Public Class Form1 |
2 | Dim SerialInput As String = "" |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load |
10 | |
11 | ' SerialPort1.PortName = "COM4" |
12 | ' SerialPort1.BaudRate = 9600 |
13 | ' SerialPort1.Parity = IO.Ports.Parity.None |
14 | ' SerialPort1.DataBits = 8 |
15 | ' SerialPort1.StopBits = IO.Ports.StopBits.One |
16 | ' SerialPort1.Handshake = IO.Ports.Handshake.None |
17 | ' SerialPort1.RtsEnable = True |
18 | SerialPort1.Open() |
19 | |
20 | If SerialPort1.IsOpen Then |
21 | Label1.Text = "...verbunden" |
22 | SerialPort1.Write("11|22|33|44" + Chr(13)) |
23 | Else
|
24 | Label1.Text = "...getrennt" |
25 | End If |
26 | End Sub |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived |
33 | |
34 | |
35 | SerialInput = SerialPort1.ReadLine() |
36 | Me.Invoke(New EventHandler(AddressOf DoUpdate)) |
37 | |
38 | |
39 | End Sub |
40 | |
41 | Public Sub DoUpdate() |
42 | |
43 | ListBox1.Items.Insert(0, "Recv: " & SerialInput) |
44 | TextBox1.Text = TextBox1.Text + 1 |
45 | |
46 | End Sub |
47 | |
48 | |
49 | |
50 | Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click |
51 | SerialPort1.Write(TextBox5.Text & Convert.ToChar(13) & Chr(13)) |
52 | End Sub |
53 | |
54 | Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click |
55 | ListBox1.Items.Clear() |
56 | TextBox1.Text = 0 |
57 | End Sub |
58 | |
59 | Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click |
60 | If SerialPort1.IsOpen = True Then |
61 | SerialPort1.Close() |
62 | End If |
63 | |
64 | Me.Close() |
65 | |
66 | End Sub |
67 | |
68 | End Class |
Warum sind in Form1_Load alle Einstellungen der Schnittstelle auskommentiert?
Weil ich die Testweise in den "Application Settings" (siehe Bild 1), angepasst habe. Habe damit dann gespielt....
Wenn ich SerialInput = SerialPort1.ReadExisting() anstelle SerialInput = SerialPort1.ReadLine() schreibe dann liest er mir alles ein, schreibt es nur nicht nach jedem "\r\n" in einer neuen Zeile der Listbox, sondern alle einfach bis ans Ende und fängt dann eine neue Zeile an (Insgesamt dann 78 Zeilen...)
Am besten macht du da einen Neuen Thread mit verweis auf diesem in PC Programmierung auf, mit dem Adapter an sich scheint es ja nix zu tun zu haben, folgende Dinge dir mir auffallen: - Wenn kein Newline gesendet wird hängt dein SerialPort1.ReadLine() für immer - kommt SerialPort1.ReadLine() mit allen Zeichen klar (also z.B. auch 0 bytes, steuerzeichen etc...?) - die Kommunikation über die globale Variable 'SerialInput' kann sich im schlimmsten Fall selbst überschreiben, kann man dem Event kein Objekt mitgeben, sodass du nicht über eine Globale Variable kommunizieren musst? Alexander Alexander schrieb: > Wenn ich Vermutlich fehlt dann ein abschließendes Newline irgendwo...
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.