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 

Dieses Thema hat akzeptierte Lösungen:

Serielle Schnittstelle zu langsam



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!

31.05.2013, 09:30 (Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2013 13:45 von jg.)
Beitrag #1

Gaussometer Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: May 2013

12. SP1
2013
EN


Deutschland
Bug Serielle Schnittstelle zu langsam
Hallo miteinander

Ich habe wahrscheinlich einen überlegungs fehler in der programmierung, weil ich noch nicht oft mit Labview gearbeitet habe.

Ich nutze für die Datenerfassung einen Mikrocontroller der über die serielle Schnittstelle mit meinem Rechner verbunden ist.
Der Mikrocontroller sendet immer ein Highbyte und ein Lowbyte die ich dann in Labview zusammengefasst werden.
Insgesamt sind es 4096 Werte die in ein Array geschrieben werden und dann später in ein Graph gezeichnet werden.

Wenn ich die Baudrate auf 9600 habe funktioniert alles einwandfrei. Allerdings dauert so die Übertragung etwas lange, darum würde ich gerne die Baudrate erhöhen.
Ich habe allerdings das Problem das ich dann nur noch eine bestimmte Menge an Daten bekomme. Gesendet werden aber alle. Das habe ich mit einem Terminal Programm überprüft.

(siehe Bilder mit den unterschiedlichen Baudraten)

Ich habe mir schon einige Beispiele angeschaut aber ich habe leider noch keine Lösung für mein Problem gefunden.
Ich vermute ich brauche den Eigenschaftsknoten mit Bytes at Port. Weil ich das schon in mehreren Beispielen gesehen habe Big Grin.
Aber ich habe die Funktion noch nicht richtig verstanden.

Ich benutze die Studentenversion von Labview V11.0

Was sicherlich auch ziemlich unschönn programmiert ist ist mein "Fehler Timeout ignorierer". Ich wusste nicht genau wie ich auf die Daten warten kann in Labview. Also habe ich einfach den Timeout fehler ignoriert.

Ich bin für jeden Tipp oder Lösungsansatz sehr Dankbar Smile.

MfG Lukas


Angehängte Datei(en) Thumbnail(s)
       

11.0 .vi  Messung1.vi (Größe: 28,75 KB / Downloads: 237)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2013, 11:53 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2013 12:01 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Schnitstelle zu langsam
Hallo Lukas,

alles, was du mit den 4 Einzelbyte-Abfrage machst, kannst du auch mit einer Abfrage von 4 Byte erledigen:
   
(Einzelwert-Abfrage ist immer blöd...)

Die Fehlerabfrage geht auch einfacher:
   

Bitte aufräumen und optimieren!

Noch ein Tipp: Producer-Consumer-Schema hilft bei zeitkritischen Anwendungen ganz gut weiter...

Zitat:Ich vermute ich brauche den Eigenschaftsknoten mit Bytes at Port. Weil ich das schon in mehreren Beispielen gesehen habe :Big Grin:
Dann solltest du auch gelesen haben, dass du den Knoten nicht brauchst...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2013, 12:54 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2013 13:09 von Gaussometer.)
Beitrag #3

Gaussometer Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: May 2013

12. SP1
2013
EN


Deutschland
RE: Serielle Schnitstelle zu langsam
Sorry da habe ich wohl ausversehen die alte Version von meinem Programm erwischt. Den Befehl mit den T stücken kannte ich noch nicht. So kann ich den Code etwas verkleinern. Der Winkel wird übrigens nicht mehr benötigt.

Die Fehlerabfrage werd ich so übernehmen Danke.

Gibt es eine möglichkeit zu prüfen ob der Buffer leer ist ? Dann könnte ich die While Schleife stoppen falls der Buffer leer ist und ich mindestens 100 Werte gelesen habe UND ein Timeout entsteht.


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Messung1.vi (Größe: 25,3 KB / Downloads: 232)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2013, 13:01 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2013 13:01 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Schnitstelle zu langsam
Hallo Lukas,

- die Beispiele oben waren Snippets, die hättest du übernehmen können...
- der "Befehl mit dem T" nennt sich Join und ist in der Numerik-Palette versteckt...
- IndexArray kann man aufziehen, dass muss man nicht mehrfach im BD verstreuen...
- ein Blockdiagramm kann man aufräumen, macht immer einen guten Eindruck hier...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2013, 13:21
Beitrag #5

Gaussometer Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: May 2013

12. SP1
2013
EN


Deutschland
RE: Serielle Schnitstelle zu langsam
Ah Danke für den Tipp mit den Snippets Wink

Ich hoffe jetzt stimmt alles.

Ich habe vorhin den oberen Post von mir nochmals editiert, alls du schon einen neuen geschrieben hast.
Ich stell darum meine Frage nochmals falls du sie überlesen hast.

Gibt es eine Möglichkeit den füllstand des Meldebuffers zu kontrollieren?

Vielen Dank für deine Tipps bis jetzt.


Angehängte Datei(en)
11.0 .vi  Messung1.vi (Größe: 24,84 KB / Downloads: 248)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2013, 15:37 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2013 15:39 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Schnitstelle zu langsam
Hallo Lukas,

wozu willst du den Füllstand des Read-Buffers wissen?
Wenn du ein Timeout bekommst, dann konnten die angeforderten 2 Bytes nicht gelesen werde, weil der Buffer eben keine 2 Bytes enthielt! Also bedeutet TimeOut auch automatisch, dass der Buffer leer ist (im Sinne von "keine 2 Bytes enthalten")!

Tipp:
- Aufräumbutton benutzen!
- Man kann mehrere Cases zusammenfassen, in dem man mehrere Werte in die Case-Auswahl schreibt...
- Rote Punkte heißen "Coercion Dot" und haben eine Bedeutung...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.06.2013, 08:50
Beitrag #7

Gaussometer Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: May 2013

12. SP1
2013
EN


Deutschland
RE: Serielle Schnitstelle zu langsam
Ja das stimmt. Demfall sieht es so aus als würde der Buffer volllaufen.
Ich habe versucht die Grösse zu erhöhen aber es ändert sich nichts. Liegt es evt. an der Studentenversion von Labview das der Speicher begrenzt ist ? Oder wie lässt sich erklären dass ich bei höheren Baudraten Daten verliere?.

Die roten Punkte wandeln die Grösse des Datentypes um soweit ich weiss. Das könnte man durch einen umwandler vorher verhindern. Ich habe mehrere Cases benutzt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2013, 09:09
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Serielle Schnitstelle zu langsam
Mit welchen Parametern/Einstellungen konfigurierst du eigentlich die RS-232?
Hast du mglw. den Termination Char noch aktiv, das wäre bei deiner Binär-Übertragung nicht gut.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2013, 15:41
Beitrag #9

Gaussometer Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: May 2013

12. SP1
2013
EN


Deutschland
RE: Serielle Schnitstelle zu langsam
Termination Char ist Deaktiviert.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.06.2013, 17:17
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Serielle Schnitstelle zu langsam
Sehr gut.
Nächster Verbesserungsvorschlag: Wer zwingt dich eigentlich, immer nur 1 Messwert (soll heißen 2 Bytes) abzuholen?
Lies doch z.B. gleich 200 Bytes auf einmal, das sind 100 Messwerte auf einen Schlag!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Serielle Schnittstelle: Unterschied zwischen FIFO-Buffer und VISA-Buffer Exle 4 7.053 23.01.2019 08:07
Letzter Beitrag: Ratio
  Serielle Schnittstelle hängt nach gewisser Zeit auf Kiesch 8 10.476 08.01.2018 11:06
Letzter Beitrag: Kiesch
  Serielle Schnittstelle bricht ab -cosmo- 7 7.661 28.09.2017 12:13
Letzter Beitrag: Lucki
  Serielle Schnittstelle usbser.sys BlueScreen Hachiko 18 19.343 03.04.2014 20:53
Letzter Beitrag: hyla
  Serielle Schnittstelle Auslesen Gre5or 3 7.949 01.10.2013 10:38
Letzter Beitrag: GerdW
  Serielle Schnittstelle auslesen bis Stringende ragingbull 12 15.745 26.07.2013 09:32
Letzter Beitrag: ragingbull

Gehe zu: