INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

RS232 Daten empfangen zu langsam (Anfänger)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

28.06.2010, 19:55
Beitrag #1

christoph2 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2010

8.6
2010
de

3424
Oesterreich
RS232 Daten empfangen zu langsam (Anfänger)
Hi, ich bin gerade dabei mein erstes etwas größeres Programm in LabVIEW zu schreiben.

Es geht darum, einem Mikrocontroller über RS232 Befehle zu schicken und welche von ihm zu empfangen.
Ich übertrage die Werte aber nicht in Klartext, also als ASCII Zeichen, sondern als wirkliches Byte (z.B. 65 ist nicht "65" sondern 'A'Wink, damit die Übertragung schneller ist.

Ein Befehl sieht etwa so aus: (Die einzelnen Bytes sind als Dezimalzahl 0...255 geschrieben)

000......die ersten 4 Byte sind die Start-Sequenz. Sie zeigen an dass ein "Datenpaket" beginnt
255
255
255
1.........Befehl, z.B. Position von Servo 1, Geschwindigkeit von Motor 3, ...
22.......high-Byte
156......low-Byte
2.........nächster Befehl
34.......wieder ein high Byte
21.......wieder ein low Byte
6.........nächster Befehl
... usw

Im 50ms werden diese Befehle von LabVIEW an den Mikrocontroller gesendet, der Mikrocontroller sendet gleichzeitig im 35ms-Rythmus die Sensordaten an LabVIEW (sieht genauso aus, nur werden statt Steuerbefehlen Sensordaten, z.B. "Bodenabstand vorne" gesendet).
Die Sequenz 000 255 255 255 wird verwendet, um anzuzeigen, dass ein neues "Datenpaket" beginnt. Befehl darf nicht 255 sein, sondern nur 0...254. Dann ist sichergestellt, dass die Sequenz 000 255 255 255 nie im normalen Datenfluss vorkommt, sondern eben nur wenn eine neues Datenpaket beginnt.

Auf der Mikrocontroller-Seite funktioniert alles, aber LabVIEW macht mir Probleme, ich kenn mich da leider noch nicht so gut aus...
Das senden funktioniert soweit recht gut, und schnell. Das Servo das ich bewegen will bewegt sich fast in Echtzeit mit.
Als ich aber dann das lesen dazuprogrammiert habe, hat das die ganze Kommunikation ausgebremst... Je größer ich den Buffer eingestellt habe, desto langsamer wurde alles. Während gelesen wurde, konnte das Servo nur noch ruckartig bewegt werden, obwohl ich am Code zum Schreiben nichts verändert habe.

Ich vermute das liegt daran, dass der Lesebuffer ständig voll ist. Ich glaube da muss man irgendwie eine Queue einbauen, aber ich habe mir schon die LabVIEW Hilfe durchgelesen und das Terminal Beispiel heruntergeladen und angeschaut, aber ich habe keine Ahnung wie ich das in mein Programm einbauen soll.

Wenn man in ASCII Zeichen sendet, kann man ja bei dem VI für die Initialisierung von VISA einen Termination Char angeben, z.B. n
Für meine Anwendung reicht aber ein Termination Char nicht aus, weil für die Variablenwerte jeder Char auftreten kann. Ich müsst irgendwie einen Termination String angeben, nämlich 000 255 255 255.
Gibt es eine Möglichkeit so einen Termination String anzugeben?

Wenn nicht, wie sollte ich mein Programm verbessern, damit ordentliches Empfangen möglich ist? Ist eine Queue ein guter Ansatz?

lg Christoph


PS: Im Anhang ist mein VI, es ist von LabVIEW Version 8.6 (englisch).


Angehängte Datei(en)
Sonstige .vi  rs232.vi (Größe: 20,25 KB / Downloads: 416)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
RS232 Daten empfangen zu langsam (Anfänger) - christoph2 - 28.06.2010 19:55

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem beim daten empfangen mit Visa rudis 3 6.291 17.11.2021 12:54
Letzter Beitrag: GerdW
  Empfangen von Messwerten µC JK87 12 17.205 04.11.2019 09:59
Letzter Beitrag: GerdW
  Mit RS232 Daten lesen und schreiben Moxel 22 28.322 15.01.2014 12:38
Letzter Beitrag: jokersad
  RS232 Float Werte senden/empfangen mate Ria 1 5.089 07.11.2013 16:16
Letzter Beitrag: jg
  Keine Daten kommen an vom Hameg 8115 über VISA RS232 USB fsg4u 3 5.966 09.08.2012 14:33
Letzter Beitrag: fsg4u
  RS232 Unregelmäßige empfangen von daten exkluski 4 6.029 04.05.2012 10:23
Letzter Beitrag: exkluski

Gehe zu: