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!
Hallo! Ich bin vor ca nem Monat in die Lab-View Programmierung eingestiegen. Die Arbeit damit macht mir riesig Spaß, kleine Fragen gibts aber eben doch:
Ich hab nen Komparator der mir einen datenerfassungsabhängigen boolschen Wert liefert. Nun möchte ich, dass sobald der Komparator true sagt ein VI gestartet wird. Da der Wert aber wechselt wird das VI mal ausgeführt, mal nicht. Es soll aber so sein, dass beim ersten True das VI gestartet wird und dann auch weiterläuft. Um diesen einmaligen Schaltvorgang hinzubekommen, hab ich die Struktur im Anhang gebastelt.
es gibt die Funktion "Erster Aufruf?". Diese liegt in der Palette "Fortgeschritten->Synchronisierung"
Diese kannst Du in ein SubVI oder ein Programmabschnitt (Case) legen und dann sagt sie dir, ob dieser Bereich das erste Mal aufgerufen wurde.
Das Problem ist das ich ein Vi in einer While-Schleife liegen hab. Dieses überprüft meine Daten auf einen stationären Zustand. Es wird also oft aufgerufen. Beim ersten Mal ist der stationäre Zustand natürlich nicht erreicht - first call? nützt mir somit nichts.
wenn der stationäre zustand erreicht, bekommt das nächste vi -liegt in ner case bedingung- ein true. es kann sein, dass der stationäre zustand für die folgenden daten nicht erfüllt wird. das ist mir aber ziemlich egal - das zweite gestartete vi soll eingeschaltet bleiben.
Ich mache sowas mit Flags (lokale boolsche Variable). Wenn schon Mal aufgerufen wird das Flag gesetzt. Irgendwann kann man diesen Flag auch rücksetzen, wenn man es braucht.