LabVIEWForum.de
Serielle Kommunikation: Zu langsam? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Serielle Kommunikation: Zu langsam? (/Thread-Serielle-Kommunikation-Zu-langsam)



Serielle Kommunikation: Zu langsam? - chris - 18.11.2004 15:31

Hallo Leute,

ich bin neu im Forum und beschäftige mich seit einigen Wochen mit LabVIEW. Lösen will ich folgende Problemstellung:

Ein Microcontroller sendet Strings die Informationen wie Geschwindigkeit und Position enthalten, über eine Funkstrecke an die Serielle Schnittstelle.

LabVIEW soll diese Informationen dann visualisieren.

Frage1
Wie schaffe ich es am günstigsten, dass LV zB. auf einem Drehspulinstrument, konstante Werte anzeigt (und nicht nur dann wenn gerade ein Signal von der Schnittstelle kommt) Ich brauche die Daten nicht weiter, ein Dateispeichern wäre Quatsch. Auch Array-Speichern erscheint mir auf den ersten Blick nicht wirklich sinnvoll.

Frage2
Ich habe ein kleines VI geschrieben, welches den String auswertet. Das funktioniert auch fast zufriedenstellend. Leider muss ich aber im Schleifendurchlauf große Totzeiten einbauen. sonst geht es nur in der Highlight-Funktion. Ich habe den Eindruck das auch mit den Totzeiten irgendwelche alten Werte angezeigt werden. Werden irgendwelche Werte der Schnittstelle gespeichert, bis sie ausgegeben werden?

Danke im voraus

Chris


Serielle Kommunikation: Zu langsam? - malef - 18.11.2004 16:36

Chris,
das die Kommunikation langsam läuft ist kein Wunder. :roll:
Offensichtlich plappert der Kontroller munter drauf los.
Deine Schnittstelle muss der Master sein und der Kontroller
als Slave darf nur nach Aufforderung senden.
Manfred


Serielle Kommunikation: Zu langsam? - Oliver Listing - 18.11.2004 20:13

Hi chris,

das dein Controller fortlaufend sendet ist solange kein Problem, wie du es schaffst die Daten auch zu verarbeiten.
Hierzu kannst du mit der Funktion "VISA Bytes at Serial Port" den "Füllstand" deines Eingangsbuffers ablesen.

Du hast jedoch nichts programmiert, um den Datenfluß zu synchroniseiren.
Am einfachsten trägst Du beim (hier nicht gemachten) Initialisieren der Schnittstelle ein Endezeichen ein (z.B. 0x0D). Die read-Funktion liefert dir dann immer einen vollständigen Rahmen aus deinem Datenstrom.

Zu deiner ersten Frage:
Nimm eine If Anweisung und aktaulisiere die Anzeige nur wenn du einen gültigen Wert hast.

Gruß
Oliver