LabVIEWForum.de - def. Zeit warten und RS232 überwachen

LabVIEWForum.de

Normale Version: def. Zeit warten und RS232 überwachen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen!

Ich habe einn Problem.
Ich erhalte Daten über RS232 von einem Prüfgerät. Diesen String empfange ich und zerteile ihn. Ich erhalte eine Temperatur!
Nun möchte ich prüfen, ob die Temperatur in einem definierten Bereich liegt. Sobald die Temperatur in den definierten Bereich kommt, soll eine Wartezeit von 5minuten starten.
Während dieser Zeit muss jedoch die serielle schnittstelle weiter ausgelesen werden. Verlässt die Temperatur den definierten Bereich und betritt ihn wieder, müssen die 5minuten von vorne beginnen.

Da ich noch relativ neu in der Programmierung mit LabVIEW bin, stellt mich diese Aufgabe vor ein Problem.
Ich habe zwar schon verschiedene Ansätze verfolgt, aber irgendetwas ging einfach immer nicht!

Falls jemand schon mal was ähnliches gemacht hat, oder mir ein paar tipps geben kann, würde mich das sehr freuen!

Falls jemand seine VI hochladen will, ich arbeite noch mit LV 6.0.2!!!

Vielen Dank im Voraus...
Ich hab hier mal eine der vielen von mir probierten Varianten gepostet.
Und bitte nicht über die Art und Weise schmunzelnLol
Kommentare kommen irgendwann mal dazu :roll:

MfG
Woody
Hallo Woody,

die Lösung Deiner Anforderungen sind in LabVIEW 6.x ziemlich aufwändig, mit LabVIEW 7.x ist das sehr leicht mit dem Express-VI (Timer) "Verstrichene Zeit" zu realisieren. Hilft Dir aber wohl hier nicht weiter. Bei der Version 6.x mußt Du zwei parallel laufende Schleifen programmieren, in der Einen wird die Wartezeit abgearbeitet in der Anderen die Schnittstellenabfrage und die Bereichsüberwachung. Die beiden Schleifen müssen natürlich miteinander kommunizieren (über Queues, Notifier, oder "Funktionale Globale Variablen", nicht über Globale- oder Lokale-Variablen).

Hinweis von NI: Möglichst nie Lokale- oder Globale-Variablen benutzen (ausser wenn der Wert eines Bedienelementes programmatisch verändert werden soll)

Gruß,
Marko
Hallo Woody!

Um dir ein Beispiel zu programmieren, möchte ich noch folgendes Wissen:
Wenn die Temperatur in den definierten Bereich kommt, soll eine Wartezeit gestartet werden. Soll da einfach eine Zeit ablaufen? Was soll passieren, wenn innerhalb der 5 Minuten der Temperaturbereich verlassen wird? Oder sollen die Messwerte innerhalb der 5 Minuten nur ausgelesen und nicht ausgewertet werden? Wie genau müssen die 5 Minten gemessen werden, d.h. ist es schlimm, wenn es nicht genau 5 Minuten sind?

Gruß

Norbert
Hallo marker, hallo Noppes.

@marker: Vielen Dank für den Tipp, auf die Idee mit den parallelen Schleifen bin ich noch nicht gekommen (konnte mir gar nicht vorstellen dass das geht.

@Noppes:Es ist so, die Temperatur muss mindestens 5min (variable Zeit) in einem definierten Bereich (z.B. 25°C+-2K) bleiben, bevor eine Messung gestartet werden darf. Es ist hierbei egal ob die 5min sehr genau sind.
Verlässt die Temperatur den def. Bereich muss die Wartezeit stoppen, die Temperatur weiter ausgelesen werden und sobald die Temp wieder in den Bereich kommt muss die Zeit wieder von vorne Anfangen.
Das ganze muss solang weiter gehen, bis die Temp tatsächlich 5min ohne unterbrechung in einem def. Bereich geblieben ist.

Gruß
Woody
Hallo Woody,

ich hab dein Beispiel als Grundlage genommen und dir mal ein VI Programmiert. In einer While-Schleife lese ich zyklisch die Temperatur von dem Gerät. Sobald die Temp im gewünschten Bereich ist, wird eine Zeitmessung gestartet. Dafür lege ich in einem Schieberegister die aktuelle Zeit ab. Solange die Temp ok ist, wird geprüft, ob die gewünschten 5 Minuten um sind.

Aber schau es dir einfach mal an. Wenn du fragen hast, kannst du mir auch ne Mail schreiben.

Gruß

Noppes
Hallo Noopes,
vielen, vielen Dank für deine Version.
Ich hab zwar zwischenzeitlich auch schon eine fast lauffähige Version mit zwei parallel-laufenden Whileschleifen und Notifies, aber deine Version erledigt den benötigten Zweck viel unkomplizierter. :respekt:
Ich muss nur noch ein paar Kleinigkeiten abändern, und dann kann ich sie in meinen Prüfungsablauf implementieren.
DANKE!

MfG
Woody
Referenz-URLs