Sequenzstruktur mit Wartesequenzen

Allgemeine Themen, die in andere Unterforen nicht passen
Ответить
popsi
beginner
beginner
Сообщения: 21
Зарегистрирован: 09 июл 2009, 15:42
Версия LabVIEW: 8.6
Контактная информация:

Sequenzstruktur mit Wartesequenzen

Сообщение popsi »

Hallo miteinander.

Ich habe folgendes Problem.
Mittels Hubvolumen und Flussrate, die der Benutzer angeben und auch während des Programms ändern kann, berechne ich Timer-Werte.
Mal genauer: ich habe eine Pumpe mit 3 monostabilen Ventilen. Diese Ventile benötigen zum Öffnen eine Spannung (also durch Spannung fließt Strom (Transistor)). Wenn ich also 5V per USB Messkarte über einen digitalen Kanal an ein von den 3 Ventilen der Pumpe gebe, so öffnet dieses.
Das Ventil schließt sofort wieder von allein, wenn keine 5V mehr ausgegeben werden.. also wie Pulse.

Das Öffnen der 3 Ventile soll nun in einer Öffnungssequenz realisiert werden.
Laut Datenblatt der Pumpe kenn ich die maximale Frequenz und die optmale Schaltfrequenz der Pumpe bzw.Flussrate, d.h. die Zeiten, wielang und wann jeweils die Ventile schalten sollen.

In LabView mach ich das per Sequenzstruktur: also z.b. Ventil 1 offen, Ventil 2 zu, Ventil 3 zu --> dann warten: x ms , dann offen, offen , zu --> dann warten ...usw. (Grafik1)
wenn also Schalter der Pumpe an ist, so wird in der While Schleife die Sequenz (11Schritte abgearbeitet).
die Timerwerte berechne ich in einem SubVi (Grafik 2)

das Problem ist ja, dass LabView leider nicht in Echtzeit arbeiten.. daher zeigen mir die LEDs (zur Kontroller des Ausgangssignal zur Messkarte) keine konstanten Intervalle.auch wenn ich z.b. 5 min lang 1,1ml/min als Flussrate angebe.
Liegt das vielleicht zudem daran, dass in meiner Lösung stets neu berechnet wird???
Wäre es vielleicht sinnvoller, eine Matrix der Timerwerte aufzustellen und dann je nach Flussrate zu entscheiden, welcher Index der Matrix genutzt wird???Denn müsste LabVie nicht in jedem Schleifendurchlauf soviel berechnen und die Matrix würde immer nur den einen bestimmten Index übergeben...

Habt ihr vielleicht noch ne andere Idee das Prob zu lösen???? :help:
Danke schonmal :)

Achso, ich hab vom MainVi nicht alles hochgeladen, was fehlt ist die Speicherung der lokalen Variablen in ein Array und Übergabe per Daq an die Karte.
Вложения
sequenz_struktur_main.JPG
sequenz_strukt_sub.JPG
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Sequenzstruktur mit Wartesequenzen

Сообщение Eugen Graf »

Mach dir keine Gedanken über die Zeit, die die Berechnung nimmt.
Um welche Ungenauigkeiten geht es denn bei 5 Minuten?
popsi
beginner
beginner
Сообщения: 21
Зарегистрирован: 09 июл 2009, 15:42
Версия LabVIEW: 8.6
Контактная информация:

Re: Sequenzstruktur mit Wartesequenzen

Сообщение popsi »

naja.. hab es einfach mal so 5 minuten laufen lassen
hab die Ausgänge der Messkarte mal mitm Osci verbunden um mir die Pulse anzugucken...

das kann manchmal locker um 15ms schwanken in der Länge des Pulses in einem ganzen Sequenzdurchlauf.
wenn man bedenkt, dass z.b. pro komplett abgearbeitete Sequenz ich bei bspw. Ventil 1 insgesamt 100ms das Signal liefern will (also Zeit, in der Ventil 1 insgesamt in allen Cases ein true bekommt)... also >1/10 fehler ist schon relativ viel.

Hab mir überlegt, dass man als Bedienelement auch nur feste Werte zulassen könnte und je nach Wert wird ein Index in einer Matrix gewählt... aber ich hab eigentlich keine Lust wenn maximal 3ml/min möglich sind: das in 30Werte --> also 30x6Matrix zu splitten...
da ist doch nen Formelknoten viel angenehmer...
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Sequenzstruktur mit Wartesequenzen

Сообщение Eugen Graf »

10-15 ms. Ungenauigkeit ist für Windows OK, viel besser kannst du es auch nicht machen. Du kannst versuchen dem VI eine höhere Prioritätzu geben und aufpassen, dass keine andere Anwendung im Hintergrund läuft. Auch deine Lösung mit der Matrix würde ich an deiner Stelle ausprobieren. Auuserdem würde ich mich mit Timed Loops befassen, diese sollen evtl. stabiler laufen.
popsi
beginner
beginner
Сообщения: 21
Зарегистрирован: 09 июл 2009, 15:42
Версия LabVIEW: 8.6
Контактная информация:

Re: Sequenzstruktur mit Wartesequenzen

Сообщение popsi »

Hey ;)

ich danke dir.
werde mir die Tipps mal zu Herzen nehmen und es ausprobieren.

wegen den Timed Loops: soll ich die generell nehmen (Schleife, in der alles passiert ) oder anstelle der Wait ms verwenden... hab schon bemerkt, dass die in Echtzeit warten.

Könnte vielleicht ein Grund sein: das die 2 Schleifen (eine mit dem Daq, der ein Array der lokalen Variablen bekommt und die oben gezeigte der Ansteuerung der Ventile-lokale Variable) nicht stabil parallel laufen?
Danke nochmal :)
Ответить

Вернуться в «Allgemein»