LabVIEWForum.de - Daten aus einer Sequenz heraus verschicken

LabVIEWForum.de

Normale Version: Daten aus einer Sequenz heraus verschicken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich möchte gern eine Zeichenfolge über die serielle Schnittstelle versenden, dann soll nach einer vom Nutzer zu wählenden Zeit eine weitere Zeichenfolge gesendet werden. Die Zeichenfolge wird durch den Wechsel des Zustandes einer Schaltfläche abgeschlossen.

Um diese zeitliche Abfolge zu realisieren, habe ich eine Sequenz benutzt die in einer CASE-Struktur läuft, aber leider wird die Zeichenfolge zwar aus der Sequenz und Case-Struktur heraus gesendet, aber erst nach deren vollständigen Abarbeitung wird die Zeichenfolge über die serielle Schnittstelle versendet.

Woran könnte das liegen? Habt ihr einen anderen Lösungsvorschlag parat.

Habe mal eine Grafik mit der Sequenz angehangen.

Danke MfG jojo
Datenfluss, Datenfluss, Datenfluss!

Grundprinzip von LabVIEW, eine Struktur (SubVI o.ä.) wird erst dann bearbeitet, wenn alle Eingänge anliegen, und erst dann beendet, wenn alle Ausgänge anliegen.

Gruß, Jens
schade, ich hatte mir so was schönes überlegt, muss ich nochmal neu drüber nachdenken.
trotzdem danke.

mfg jojo
' schrieb:schade, ich hatte mir so was schönes überlegt, muss ich nochmal neu drüber nachdenken.
trotzdem danke.

mfg jojo

Wobei man über die Schönheit der von Dir gezeigten Lösung geteilter Meinung sein kann Rolleyes

Ästhetisch ist daran tatsächlich nicht soviel auszusetzen aber LabVIEW technisch schon. Ein paar Grundregeln:

- Datenfluss wenn immer möglich
- Diagramm einschränken auf einen Bildschirm (wenn es grösser wird solltest Du über die Architektur nachzudenken beginnen: Zustandsmaschine, Event Handling, oder vielleicht auch ganz einfach Modularisierung mittels subVIs).
- Kommentare
usw.

Die entsprechende List kann noch viele mehr Empfehlungen/Regeln enthalten. Mit LabVIEW kommt auch ein Online Handbuch "LabVIEW Style Checklist" das als Anleitung dienen kann.

Rolf Kalbermatter
' schrieb:Woran könnte das liegen? Habt ihr einen anderen Lösungsvorschlag parat.
Einer muß doch auch mal die Frage beantworten:
Es geht z.B. mit eine einem Bedien/Anzeigeelement und einer lokalen Variablen.
Beispiel Bedienelement: Davon eine Lokale Variable in der Sequenz, diese wird dort beschrieben. Der neue Wert steht augenblicklich am Bedienelement zur Verfügung, ganz gleich wo im VI sich dieses befindet. Das sollte natürlich ein einer unabhängigen zweiten Schleife sein, die nicht blockiert ist, wenn die Sequenz abgearbeitet ist. (Es genügt ja nicht, daß der neue Wert im Element drin steht, man muß es auch abfragen können.)
(Das Bedien/Anzeigeelement läßt sich verbergen, wenn es am FP nicht gebraucht wird)
Weitere Möglichkeiten: Queues, Melder.

Und nun nach diesem hoffentlich hilfreichen Hinweis möchte ich den bisherigen Kritiken noch eins drauf zu setzen.
Die exzessive Verwendung von Sequenzen ist immer die digitale Visitenkarte des LabVIEW-Anfängers, der von einer textorientierte Programmiersprache herkommt und deren sequentiellen Datenfluß in die LabVIEW-Programmierumgebung hinüberretten will.
NI empfielt die sparsamme Verwendung von Sequenzen, da sie die parallele Ausführung behindern und die Programme langsamer machen.
Referenz-URLs