Hallo zusammen
,
ich bin neu hier und habe auch erst seit 3 Tagen überhaupt mit Labview zu tun (bin also ein kompletter Anfänger....)
Meine, (denke ich mal banale
) Fragestellung ist folgende:
Ich steuere drei verschiedene Massendurchflussregler von Bronkhorst mit Labview an.
Die Ansteuerung funktioniert auch soweit. Nun möchte ich die Messwerte in eine Datei schreiben, sodass alle beispielsweise 10 Sekunden ein Messwert aufgezeichnet wird. Wenn ich die Aufzeichnung in einen Case mit Verzögerung packe, nimmt er mir zwar alle 10 Sekunden einen Messwert auf, jedoch reagiert das System auf Veränderungen im Sollwert (Setpoint) auch mit einer Verzögerung von 10 Sekunden, obwohl die Sollwerteinstellung in einem anderen Case ist.
Sobald ich den Schalter zur Aufzeichnung der Daten ausschalte, reagiert das System wieder sofort auf die Sollwertänderung.
Ich hoffe das war einigermaßen verständlich erklärt...
und nicht wundern, den Großteil der angehängten Datei habe ich schon vorgefertigt irgendwo gefunden.
Bin für jede Hilfe dankbar
Hallo Justice,
ohne dein VI öffnen zu können tippe ich mal darauf, dass du das Datenflussprinzip in LV nicht beachtest. Längere Wartezeiten müssen parallel zur Abarbeitung anderer (schnellerer) Aktionen laufen.
Gruß, Marko
Ich geh mal davon aus, dass das nicht alles du selbst geamcht hast. Wichtig wäre vielleicht zu wissen, was schon da war.
Ich würde die Messwerte in eine Globale Variable schreiben und diese alle 10s mittels eigener While-Schleife in eine Datei mit Messwerten.
Vielen Dank erstmal für die Antworten,
das einzige was von mir hinzugefügt wurde, ist die Case-Schleife in der Messdaten geschrieben werden. Den Rest hatte ich schon vorher irgendwo her (hätte ich au niemals so hinbekommen...)
wo würde man die Messdaten abzweigen, um diese in eine globale Variable zu schreiben? Die Messwerte lassen sich ja nicht direkt mit einer globalen Variable verbinden. (unterschiedliche Datenstrukturen)
Hallo Justice,
speichere dein VI dochmal unter einer etwas tieferen LV-Version ab. Das erhöht die Chancen, dass mehrere draufsehen können.
Die Idee mit Variablen ist bei hohem Datenaufkommen immer so eine Sache und oftmals einfach durch eine Producer/Consumer-Struktur zu umgehen.
Gruß, Marko
Hey,
ich habe die Datei mal auf Labview 2008 umgespeichert, ich hoffe soweit hat das geklappt.
Eine weitaus wichtigere Frage von mir wäre: Wie lassen sich die Sollwerte zeitlich steuern? Sodass man vorgeben kann, nach welcher Zeit der Sollwert in einen bestimmten Wert geändert werden soll.
Wäre nett wenn dazu jemand einen Hinweis hätte
Hallo Justice,
du kannst die Systemzeit auslesen (Timingpalette) und im nächsten Schleifendurchlauf wieder die Systemzeit auslesen und die Differenz vergleichen mit einem Vorgabewert und bei Überschreitung etwas ausführenlassen.
Grundsätzlich kann ich dir aber nur raten, in deinem VI mal etwas aufzuräumen. Gerade als Anfänger hast du sonst keine Chance, etwas zu debuggen. Da liegen Leitungen übereinander, laufen versteckt hinter Strukturen lang, dein VI ist viel zu groß, es sei denn, du hast eine Auflösung von 5000 Pixeln in der Höhe.
Gruß, Marko
Hallo Marko,
vielen Dank für die Antwort. Ja ich weiß, dass mein VI sehr unübersichtlich aufgebaut ist, wie du schon richtig erkannt hast bin ich total Anfänger und daher ist das vi mit dem ich arbeite sicher erstmal zu kompliziert aufgebaut. Ich bin aber erstmal froh dass sich mit diesem vi meine Massendurchflussregler steuern lassen und weiß demher nicht welche Verbindungen ich löschen kann, sodass die Ansteuerung weiterhin funktioniert....
Ein kleines hilfreiches VI, das ich in diesem Forum gefunden habe ist angehängt. Ich habe versucht es einzufügen, jedoch ohne Erfolg.... Wenn jemand weiß, wie man dieses mit der Setpointverbindung verbindet sodass sich diese mit dem vi "Steps" steuern lässt wäre ich sehr dankbar
glaube damit wäre meine Frage auch gelöst
Viele Grüße,
Frank
Hallo Frank,
Zitat:Ein kleines hilfreiches VI
Dieses VI ist in seiner jetzigen Form nicht hilfreich: Steuerung über Event-Struktur, nicht reentrant, keine Verbindungen im ConPane...
Zitat:Ich habe versucht es einzufügen, jedoch ohne Erfolg...
Wieso? Man kann es doch einfach ins BD reinschmeißen
Zitat:Wenn jemand weiß, wie man dieses mit der Setpointverbindung verbindet sodass sich diese mit dem vi "Steps" steuern lässt wäre ich sehr dankbar
- Erstelle ein ConnectorPane, verbinde es mit den gewünschten Ein-/Ausgängen des VIs.
- Wenn du es mehrfach nutzen willst, solltest du über "Ablaufinvarianz" nachdenken...
- THINK DATAFLOW! Momentan blockiert dieses (sub)VI dein Haupt-VI...
Zitat:mit der Setpointverbindung
Welche Verbindung? Du hast mehrere Drähte, an denen ein Setpoint-Control dranhängt...
Allgemein:
- Schau dir die Links in meiner SIgnatur an, dort werden die genannten Begriffe erläutert bzw. solltest du diese (auch als Anfänger) kennen.
- VI aufräumen. Hilft (nicht nur dir) bei der Übersicht...
Hallo Gerd,
danke für die ausführliche Antwort. Ich glaube ich bin schonmal einen kleinen Schritt weiter
ich habe im Sub- VI dem Anschlussblock die entsprechenden Anschlüsse zugeordnet und abgespeichert. Wenn ich dieses Sub-VI im übergeordneten VI aufrufe und die entsprechenden Bedien/Anzeigeelemente hinzufüge, lässt sich zwar das übergeordnete VI ausführen. Jedoch ändern sich die Parameter des Sub - VI nicht...
Zuerst einmal ist es egal in welche der drei Schleifen zum Setpoint die vom Sub - VI gelieferten Werte hinzu addiert werden, für die anderen beiden Schleifen gilt das dann ja analog.
Gruss Frank