LabVIEWForum.de - Zeitabhängige Start/Stop Routine von Pumpen

LabVIEWForum.de

Normale Version: Zeitabhängige Start/Stop Routine von Pumpen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Zusammen,
dies ist meiner erster Eintrag im Forum, obwohl ich schon sehr lange Gast in diesem sehr Hilfreichen Forum bin.
Wie im Betreff erwähnt möchte ich eine Routine realisieren die einen Zeitabhängige Start und Stop einer Pumpe realisiert. Bei der Umsetzung komme ich an die Grenzen meinen LabVIEW Fähigkeiten Confused

Folgenden Ablauf möchte ich in der Routine umsetzten.

Ein definierter Zeitgeber soll herabzählen bis Null.
Nach Ablauf der Zeit soll die Routine gestartet werden.
Die Routine soll Pumpe 1 abschalten, dann 5 Sek. Warten, dann Pumpe 2 für 1 min einschalten, ist die Minute vorbei dann Pumpe 2 ausschalten und nochmals 10 Sekunden warten.
Danach soll der Zeitgeber neu gestartet werden, sodass die Routine wieder beginnt wenn der Zeitgeber null erreicht.

Folgende Probleme ergaben sich bei mir beim Probieren, daher habe ich kein konkretes Programm.
- Ich habe die Abläufe über Sequenzrahmen realisiert und habe dazu „Warten“ verwendet um die Pumpen nach und nach einzuschalten, Problem: sehr hohe Prozessorlast auf dem Host
- Ich scheitere Momentan an der Reset-Schleife in Verbindung mit dem Zeitgeber. Wenn meine Schleife durchlaufen ist dann finde ich keine Möglichkeit die Schleife neu zu initiieren. Mit dem Rückkopplungsknoten aus der Werkzeugliste habe ich es bereits versucht.

Ich nutze das cRio system 9075 und lv13_img. Wäre es sinnvoll so eine Routine direkt auf der FPGA laufen zu lassen oder eher im RT Bereich des cRios?. Es kommt mir herbei nicht auf Sekunden an.
Ich würde mich sehr über eine Antwort freuen,
Beste Grüße
Paul
Hallo Paul,

Zitat:Folgenden Ablauf möchte ich in der Routine umsetzten.

Ein definierter Zeitgeber soll herabzählen bis Null.
Nach Ablauf der Zeit soll die Routine gestartet werden.
Die Routine soll Pumpe 1 abschalten, dann 5 Sek. Warten, dann Pumpe 2 für 1 min einschalten, ist die Minute vorbei dann Pumpe 2 ausschalten und nochmals 10 Sekunden warten.
Danach soll der Zeitgeber neu gestartet werden, sodass die Routine wieder beginnt wenn der Zeitgeber null erreicht.

Die Sequenzstruktur ist der leider "falsche Freund" des LabVIEW-Einsteigers Big Grin

Schau dir bitte das Konzept der State Machine an. LabVIEW kommt mit einem vorbereiteten Beispiel-Projekt (Datei->Neu…).

Zitat:Ich habe die Abläufe über Sequenzrahmen realisiert und habe dazu „Warten“ verwendet um die Pumpen nach und nach einzuschalten, Problem: sehr hohe Prozessorlast auf dem Host
Das ist ein Widerspruch in sich. Wenn du Wartezeiten konsequent verwendest, solltest du eine geringe CPU-Last haben…

Zitat:Ich scheitere Momentan an der Reset-Schleife in Verbindung mit dem Zeitgeber. Wenn meine Schleife durchlaufen ist dann finde ich keine Möglichkeit die Schleife neu zu initiieren. Mit dem Rückkopplungsknoten aus der Werkzeugliste habe ich es bereits versucht.
KA Glas2
Hier hilft nur ein Blick ins BD!

Zitat:Wäre es sinnvoll so eine Routine direkt auf der FPGA laufen zu lassen oder eher im RT Bereich des cRios?. Es kommt mir herbei nicht auf Sekunden an.
Wenn dir das exakte Timing nicht wichtig ist, brauchst du auch nicht den FPGA zu nutzen…

Kannst du mal ein Bild des BD veröffentlichen?
Lad mal dein VI hoch.
Aufgabe hört sich wieder einmal nach dem klassischen Fall für eine State-Machine an.

Gruß, Jens
Hallo,

entschuldige jg, ich wusste nicht genau wo es passend wäre und vielen Dank für die schnellen Antworten.


Anbei meine vi.

Ich möchte sogut wie keine Benutzer eingaben am besten wäre, wenn ein Start button gedrückt wird, dass nur solange das programm in einer schleife läuft.

Ist dann eine State Machine nicht zu viel?

Viele Grüße

paul
Hallo Zusammen,

ich habe mich jetzt mit den State Machines nochmal genauer auseinander gesetzt und einen Ablauf programmieren können. Ich habe dazu eine .vi im Anhang.

Ich kann hier die Zeiten von meiner einzelnen Sequenz angeben, sodass erst nach Ablauf die nächste Sequenz beginnt.

Wie kann ich garantieren, dass genau während der spezifischen Sequenzzeit meine Anzeige (Pumpe) im Betrieb ist und anschließend erlischt?
Ich weiß auch das die Verzögerung als ExpressVI nicht die feinste Lösung ist und ich würde auch gerne, dass diese nur herunterzählt und sich dann zurücksetzt und erst dann wieder beginnt zu zählen.

Habt ihr ein paar Ideen? Die letzten hat mich ja in eine hoffnungsvolle Richtung geleitet Tongue

Vielen Dank im Voraus!
Hallo paul,

Zitat:Wie kann ich garantieren, dass genau während der spezifischen Sequenzzeit meine Anzeige (Pumpe) im Betrieb ist und anschließend erlischt?
In dem man 3 States nacheinander ausführt:
- Pumpe/Anzeige anschalten
- Warten
- Pumpe/Anzeige ausschalten

Kann gerade dein VI nicht anschauen, deshalb nur der allgemeine Hinweis…
Hallo Gerd,

ich habe das mal gleich als Anlass für eine Überarbeitung meiner .vi gesehen.

Jetzt laufen die Schritte nach einander ab so wie ich das möchte, wie kann ich nun eine Bedingung realisieren, die es möglich macht das wenn 2 zustände true sind erst der nachfolgende state erreicht wird. Momentan ist das ja die Zeit.

Eine weitere Sache ist, dass ich nicht weiß wie ich in meinem Fall das initialisieren bewerkstelligen kann.

Viele Grüße und danke für die schnelle Hilfe.
Hallo Zusammen,

ich habe meine .vi nochmals überarbeitet und bin jetzt eigentlich am gewünschten Punkt nur zähler der Zähler sehr langsam bis zur vorgegebenen Zeit. Woran kann das liegen?

Ich freue mich über eine Antwort,

schönen Start ins Wochenende!
Ich scheitere mit meiner oben geposteten routine bei der erstellung einer subvi für den counter, wie kann man das am besten lösen? Ich vermutte, das dies die geschwindigkeit erhöhen könnte, da er ja immer wieder die einzelnen vorherigen routinen durchläuft Sad
Hallo Paul,

kannst du dein VI mal auf 2012 oder kleiner runterspeichern?


Gruß, marko
Seiten: 1 2 3
Referenz-URLs