LabVIEWForum.de - "Subroutinen" mit LabVIEW

LabVIEWForum.de

Normale Version: "Subroutinen" mit LabVIEW
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, Leute!

Im Rahmen meiner Diplomarbeit setze ich mich seit etwa 2 Monaten auch mit LabVIEW auseinander. Die meisten Sachen klappen ganz gut. Allerdings habe ich noch folgendes Problem vor mir:

Soweit ich LabVIEW verstanden habe, arbeitet es das jeweilige Programm von "vorne" nach "hinten" ab und beginnt dann gegebenenfalls wieder von vorn. Das bedeutet ja, dass entsprechend auch alle SubVi's der Reihe nach einmal pro Durchlauf ausgeführt werden.

Ich möchte nun folgendes machen. Ein Programm(-teil) soll ständig Messwerte meiner Anlage erfassen. Ein anderes Programm soll einen Teil der Anlage bei eventuellen Sollwertabweichungen nachregeln, ohne aber das Messprogramm zu behindern (die Messwerterfassung soll nebenbei weiterlaufen). Ich stelle mir das prinzipiell so vor, dass das Regelprogramm als eine Art Subroutine in das Hauptprogramm eingebunden ist. Wie ich das aber in LabVIEW umsetze, ist mir leider nicht klar.

Ich hoffe, ihr habt mich verstanden und könnt mir weiterhelfen?!

Liebe Grüße...
Hi,

du könntest deine Regelung in eine Case-Struktur packen...der darin befindliche Code wird nur ausgeführt, wenn z.B. beim vorhergehenden Mess-Durchlauf eine Schwellbedingung (= Abweichung) überschritten wurde. Das wäre so ne Art 2Punkt-Regelung. Besser wäre es aber doch, kontinuierlich, d.h. parallel zur Messung nachzuregeln. Wenn du eine gepufferte Datenerfassung hast, sollte das kein Problem sein...wenn ein beliebiger Prozess in deinem Programm mal etwas länger braucht, gehen dann ja keine Messwerte verloren...

Alternativ könntest du deine Regelung in eine parallel laufende Schleife packen...

Gruss
Achim
@Achim, ich glaube David will nur wissen wie man zwei Loops parallel laufen lässt, er ist doch erst ein Anfänger.

@David, geht wirklich einfach, zwei While Schleifen nebeneinander, aber bitte nicht miteinander verbinden. Die müssen wirklich getrennt sein. Wie du diese platzierst oben unten oder links rechts ist völlig egal. Da kommst aber nächstes Problem bei Anfängern, wie sollen die Schleifen miteinander reden. Das ist aber schon eine andere Geschichte.

eg
<<du könntest deine Regelung in eine Case-Struktur packen...der darin befindliche Code wird nur ausgeführt, wenn z.B. beim vorhergehenden Mess-Durchlauf eine Schwellbedingung (= Abweichung) überschritten wurde.>>

Problem bei der Regelung ist, dass sie sehr träge ist (Bei Betriebspunktänderungen bis über eine Stunde, bei kleineren Nachregelungen min einige Sekunden bis mehrere Minuten (einzuhaltende Totzeiten durch ein Badthermostat etc.))! Somit kann ich die Regelung nicht einfach als SubVi in das Hauptprogramm einbauen, da über das Hauptprogramm andere Sachen überwacht werden müssen.

Ich werde die Anlage mal etwas genauer beschreiben. Es handelt sich dabei um einen Brennstoffzellenprüfstand. Das zugeführte Brenngas soll befeuchtet werden. Den dafür nötigen Befeuchter zu bauen und zu regeln ist meine Aufgabe. Den Rest macht jemand anderes. Im Hauptprogramm sollen später die Brennstoffzellenparameter vorgegeben und überwacht werden sowie die Werte für die Gasfeuchte (von mir zu regeln) und auch der Gasvolumenstrom.

Würde ich jetzt meine Befeuchterregelung mit zum Teil sehr hohen Totzeiten einfach als SubVi in das Hauptprogramm einbinden, würde vor allem bei Betriebspunktänderungen die Anlagenüberwachung stillstehen. Deswegen suche ich nach einer anderen Lösung. Vielleicht sowas in der Art, wie Achim es schon meinte- das Hauptprogramm speichert die Werte irgendwo ab und die Regelroutine für den Befeuchter holt sich die entsprechenden Werte?! Aber kann ich denn mehrere Programme gleichzeitig laufen lassen?

Grüße...

@eg: ich weiß schon, was eine case-Struktur ist ;-)! Aber wie die 2 While-Schleifen kommunizieren können, würde mich wirklich interessieren bzw. wie meinst du das?!
Referenz-URLs