LabVIEWForum.de
Über TCP mit Mikrocontroller kommunizieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Über TCP mit Mikrocontroller kommunizieren (/Thread-Ueber-TCP-mit-Mikrocontroller-kommunizieren)



Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 10:14

Hallo,

ich habe nun ein neues Modul für einen Roboter, welches mit einem Mikrocontroller der Atmel-Reihe ausgestattet ist.
Dieser sendet über ein WLAN (IP: 192.168.1.171, Port: 2000) stetig Daten der Form
Code:
BAT:0924 | DL:000 | DR:000 | PL:000 | PR:000 | VL:000 | VR:000 | MCL:001 | MCR:000 | LSL:0936 | LSR:0936 | AD0:0911 | AD1:0892 | DSTL:00001 | DSTR:00001 |||| NUM:00014
BAT:0924 | DL:000 | DR:000 | PL:000 | PR:000 | VL:000 | VR:000 | MCL:000 | MCR:000 | LSL:0936 | LSR:0936 | AD0:0934 | AD1:0926 | DSTL:00001 | DSTR:00001 |||| NUM:00015
BAT:0924 | DL:000 | DR:000 | PL:000 | PR:000 | VL:000 | VR:000 | MCL:001 | MCR:000 | LSL:0936 | LSR:0937 | AD0:0927 | AD1:0928 |
usw...
Die Daten beginnen mit "BAT:xxx" und enden mit "|||| NUM:xxxxx". Ersteres ist der Batteriezustand (10bit) und Letzteres ist die Nummer des Blocks.
Befehle erwartet der Roboter in Stringform (z.B. cmd für Commands, w-a-s-d für Richtungen, Zahlen für Geschwindigkeitswerte)

Ich bekomme es aber leider absolut nicht hin!
Senden geht gar nicht, da kommt irgendetwas undefinierbares an.
Das Empfangen funktioniert so lala mit dem VI im Anhang. Mal kommen sehr viele Daten, manchmal kommen sie nur alle halbe Sekunde.

Würde mich über Eure Hilfe echt freuen!

Grüße


RE: Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 14:40

Habe nun ein mehr oder weniger funktionstüchtiges Schreibeprogramm in das andere integriert.
Einzeln gingen beide Teile - Lesen und Schreiben - schon mal halbwegs vernünftig, das Schreiben deutlich schlechter.
Zusammen geht gar nix mehr!?!?!?
Bahn


RE: Über TCP mit Mikrocontroller kommunizieren - NWOmason - 19.07.2012 19:00

(19.07.2012 14:40 )fabqu schrieb:  Habe nun ein mehr oder weniger funktionstüchtiges Schreibeprogramm in das andere integriert.
Einzeln gingen beide Teile - Lesen und Schreiben - schon mal halbwegs vernünftig, das Schreiben deutlich schlechter.
Zusammen geht gar nix mehr!?!?!?
Bahn

Gehe ich recht in der Annahme, dass du parallel lesen und schreiben willst? Dann musst du das auch parallel programmieren. Aktuell wird die Lese- & Schreibefunktion nur ausgeführt, wenn der Button 'Absenden gedrückt wird. Schon mal ein bisschen gedebuggt?

Beste Grüße,
NWO


RE: Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 19:02

Danke Dir.
Das hatte ich schon geändert in Form von zwei While-Schleifen parallel.
Hilft leider auch nix!
Empfangen klappt aber schon mal, nur eben das Senden gar nicht mehr.


RE: Über TCP mit Mikrocontroller kommunizieren - GerdW - 19.07.2012 19:47

Hallo fabqu,

auch wenn's nichts mit dem Problem zu tun hat: was sollen die "warte auf nächste Millisekunde-Vielfache" in den Schleifen? Du hast so viele Timeouts in den beiden Schleifen, da sind die unnötig...

Zitat:nur eben das Senden gar nicht mehr.
Fehlermeldungen?

Probier das Ganze doch mal entweder mit einem zweiten PC aus oder lokal, indem du "localhost" als IP verwendest. Dann kannst du schon mal prüfen, ob dein VI generell funktioniert und der Fehler evtl. beim WLAN-Client zu suchen ist...


RE: Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 20:27

Hi!
Das mit dem localhost kannte ich bisher nicht, werde ich ausprobieren.
könnte mir vielleicht jemand das "TCP Communication.vi" aus den Beispielen für die 2009er Version (oder älter) hochladen?
Mir sind irgendwie die Beispiele abhanden gekommen. Und in diesem Vi sollte alles geregelt sein!

Danke


RE: Über TCP mit Mikrocontroller kommunizieren - GerdW - 19.07.2012 20:35

Hallo fabqu,

bei LV2011 gab es kein "TCP Communicator.vi"-Beispiel.
Ich habe dir aber mal das "TCP Communicator - Active.vi"-Beispiel angehangen...


RE: Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 20:41

Pony
Juhuuu!
Genau das isses.
Wird eingebaut, verwertet und angenommen Big Grin

Danke!
Ich hoffe, meine Probleme sind damit dahin Wink


RE: Über TCP mit Mikrocontroller kommunizieren - fabqu - 19.07.2012 20:57

Doch noch eine Frage:
die '4' ist ja "end of transmission". Ist das damit gemeint, wenn im Beispiel steht "Receive loop. Stop when a ^D is received." ?

Und wenn ja, dann kann es doch passieren, dass zufällig diese Daten so ankommen!?!?!


RE: Über TCP mit Mikrocontroller kommunizieren - GerdW - 20.07.2012 07:50

Hallo fabqu,

ja, "^D" entspricht der 0x04.

Zitat:Und wenn ja, dann kann es doch passieren, dass zufällig diese Daten so ankommen!?!?!
Das Beispiel arbeitet mit "normalen" Strings, die da versendet werden. Da hast du üblicherweise kein 0x04 mit drin. Aber das ist ja auch nur ein Beispiel, welches man anschaut, davon lernt und an seine Bedürfnisse anpasst...