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!
ich bin noch nicht lange bei LabView dabei und habe dementsprechend meine Probleme. Mein Aufgabe ist es, ein Programm für ein Prüfstand zu schreiben.
Zur Simulation der zwei Parameter Temperatur und Differenzdruck habe ich eine Sinusfunktion verwendet. Zur Simulation des Volumenstromes habe ich eine Formel verwendet, die sich langsam bei einem Wert einpendelt. Ich habe drei verschiedene Temperaturen, die ich anfahren möchte. Es soll jedes Mal überprüft werden, ob er in einem bestimmten Temperaturbereich vorliegt. Dazu wird der Volumenstrom noch eingestellt, wenn beide Parameter in einem bestimmten Bereich sind, sollen die drei Werte Temperatur, Volumenstrom und Differenzdruck in eine Excel- Datei aufgenommen werden. Wenn der Differenzdruck über 6bar geht, soll die Schleife abgebrochen werden und alle eingestellten Werte auf 0 zurückgesetzt werden. Außerdem soll die Messwerte aufnehmen entweder nach 3s oder nach 5 Werten stoppen. Irgendwo habe ich leider noch ein Fehler, finde ihn aber nicht. Vielleicht kann mir jemand weiterhelfen. Anbei habe ich das Programm.
Vielen Dank im Voraus.
Die Funktionen der Messwerterzeugung lassen sich nicht mehr ausführen. Beim Volumenstrom geht es auf die Konstante 29 hoch, jedoch sollte dieser um die 30 schwanken und schließlich auf 30 gehen. Aus der Signalerzeugung für die Sinusfunktionen für den Differenzdruck und für die Temperatur wird gar nichts mehr ausgeführt.
Auf dem Bild im Anhang ist der Zustand zu sehen, welcher sich einstellt, sobald ich das Programm starte. Wenn ich versuche an den Schieber etwas zu verändert, passiert nichts.
Zitat:Die Funktionen der Messwerterzeugung lassen sich nicht mehr ausführen. Beim Volumenstrom geht es auf die Konstante 29 hoch, jedoch sollte dieser um die 30 schwanken und schließlich auf 30 gehen. Aus der Signalerzeugung für die Sinusfunktionen für den Differenzdruck und für die Temperatur wird gar nichts mehr ausgeführt.
Falsch: es wird etwas ausgeführt! Hast du mal per Debugging (Highlight, Sonden) geprüft, was in deinem VI passiert?
Das VI bleibt in der Schleife hängen, die du im das "Messwerte schreiben"-ExpressVI gezogen hast. Der "Status" wird sich hier (wegen THINK DATAFLOW!) nie ändern, und damit diese Schleife nie beendet…
(Bei einem kurzen Test deines VIs war die aktuelle Abbruchbedingung der äußeren Schleife auch nicht wirklich hilfreich/sinnvoll, vor allem mit dem unnötigen (?) Aufruf der SetDefaultValues-Methode vor der Schleife.)
Generell zum VI:
- Bist du dir sicher, dass die ganzen StallDataflow-Aufrufe wirklich das machen, was du damit eigentlich bezweckst?
- Benötigst du wirklich diese Case-Struktur mit 3 Cases, die alle das gleiche machen? Wäre es nicht einfacher, über das Enum nur den Sollwert auszuwählen, der danach dann mittels InRangeAndCoerce geprüft wird?
Edit:
Bitte immer selbst auf Cross-Posts hinweisen! Mir kam das ganze VI doch merkwürdig bekannt vor…
Das mit dem InRangeAndCoerce hatten wir doch schon einmal diskutiert!?
danke für Ihre Antwort. Ja, ich habe mit den Sonden mein VI untersucht, siehe das obere Bild und da kam leider, dass nichts ausgeführt wird. Aber wie kann ich die Schleife in dem das "Messwerte schreiben" alternativ beenden, sodass die Schleife abbricht, sobald TRUE geworden ist und 5 Werte geschrieben werden? Gibt es eine Alternative, wo ich überprüfen kann, ob der Wert in dem Wertebereich bleibt über 3s und nicht nur ein Ausrutscher ist? Mit dem SetDefaultValues- Methode wollte ich die Messwerte alle wieder 0 setzen, hatte dies in einem LabView Beispiel gesehen. Aber bei dem InRangeAndCoerce muss ich ja eine Ober- und Untergrenze angeben und die ist ja jedes Mal anders. Ich hatte[/quote] den Vorschlag nicht verstanden, weshalb ich es bei der Case belassen hatte.
Entschuldigung für meinen Cross- Post, hatte das Portal dann gewechselt, da ich mich in Deutsch besser ausdrücken kann als in Englisch.
Liebe Grüße Julia
03.05.2021, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2021 10:39 von GerdW.)
Zitat:Aber bei dem InRangeAndCoerce muss ich ja eine Ober- und Untergrenze angeben und die ist ja jedes Mal anders. Ich hatte den Vorschlag nicht verstanden, weshalb ich es bei der Case belassen hatte.
Du hast doch in jedem Case einen Test auf "Setpoint ± 0.1", das lässt sich doch wunderbar mit einem InRangeAndCoerce kombinieren:
Zitat:Aber wie kann ich die Schleife in dem das "Messwerte schreiben" alternativ beenden, sodass die Schleife abbricht, sobald TRUE geworden ist und 5 Werte geschrieben werden?
Da gehört überhaupt keine Schleife hin! THINK DATAFLOW!
Stattdessen gehört da eine Case-Struktur hin - gespeichert wird nur, wenn die entsprechende(n) Bedingung(en) erfüllt sind…
Zitat:Ja, ich habe mit den Sonden mein VI untersucht, siehe das obere Bild und da kam leider, dass nichts ausgeführt wird.
Dann hast du nicht genau genug geguckt - und in dem Bild hast du ja die Schleife mit dem Datenspeichern auch überhaupt nicht gezeigt…
Zitat:Entschuldigung für meinen Cross- Post, hatte das Portal dann gewechselt, da ich mich in Deutsch besser ausdrücken kann als in Englisch.
Der Wechsel ins deutsche LabVIEW-Forum ist vollkommen ok.
Der Hinweis auf einen Crosspost ist nur deshalb erwünscht, weil man dann schauen kann, ob man selbst noch Mühe für eine Antwort aufwenden will, wenn vielleicht schon woanders eine Antwort gegeben wurde. Wir sind hier nämlich alle freiwillig unterwegs, ohne dafür von NI für die Arbeitszeit bezahlt zu werden…
Jetzt hat es endlich mit dem Wertebereich so funktioniert, wie Sie des beschrieben haben. Danke! Zum zweiten das Modul "Messwerte schreiben" schreibt ja auch schon, wenn alle Bedingungen erfüllt sind, jedoch bis unendlich viele, weshalb ich es nach 5 Werten abbrechen möchte und nicht hinbekomme. Vielen Dank für die freiwillige Hilfe, es hilft mir sehr viel weiter...
03.05.2021, 13:39 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2021 13:39 von GerdW.)
Zitat:Zum zweiten das Modul "Messwerte schreiben" schreibt ja auch schon, wenn alle Bedingungen erfüllt sind, jedoch bis unendlich viele, weshalb ich es nach 5 Werten abbrechen möchte und nicht hinbekomme.
Weil in der jetzigen Schleife sich die Abbruchbedingung NIE erfüllt - THINK DATAFLOW!
Hast du mal die Links in meiner Signatur beachtet? Inbesondere den zu "THINK DATAFLOW!"?