LabVIEWForum.de - Mehrere Schleifen parallel ausführen!

LabVIEWForum.de

Normale Version: Mehrere Schleifen parallel ausführen!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Liebe Labview Nutzer,
ich hoffe ihr könnt mir weiter helfen bei meiner Arbeit.Es geht darum 4 verschieden Testzyklen zu programmieren wobei jedes mal ein Asynchronmotor und ein Thermostat(spannungsausgabe) angesteuert werden.gleichzeitig muss ich die Zeit anzeigen lassen und die gemessene Werte anzeigen und in xls datei speichern. ich habe soweit alle schleifen programmiert und jede einzelne funktioniert alleine richtig ,nur wenn ich sie alle im Mainprogramm zusammen auffrufe werden sie nicht parallel ausgeführt.
wer hat ne idee wie ich sie zusammen zum laufen kriege?

beste grüße..

lv11_img
Hallo Houss,

speicher das mal bitte für LV2011 oder kleiner.

Gruß, Marko
Ist doch für LabVIEW 2011. Nur fehlen die Treiber (SubVIs) für seine Lauda-Steuerung (was immer das auch sein mag).

Gruß Markus

(05.08.2013 13:34 )Trinitatis schrieb: [ -> ]Hallo Houss,

speicher das mal bitte für LV2011 oder kleiner.

Gruß, Marko
(06.08.2013 07:02 )Y-P schrieb: [ -> ]Ist doch für LabVIEW 2011. Nur fehlen die Treiber (SubVIs) für seine Lauda-Steuerung (was immer das auch sein mag).

Gruß Markus

(05.08.2013 13:34 )Trinitatis schrieb: [ -> ]Hallo Houss,

speicher das mal bitte für LV2011 oder kleiner.

Gruß, Marko

in seinem Profil steht 2012 und in dem rar-file war es nicht gekennzeichnet. Das 2011-er Logo ist erst nachträglich eingeführt worden und da ich keine Lust hatte, das file runterzuladen und zu entpacken, nur um festzustellen, ob ich´s öffnen kann, denke ich, kann man einen Versionshinweis erwarten oder, dass das Profil stimmt.

Gruß, Marko
Nach einem ersten kurzen Blick: 2 Schleifen laufen ungebremst (die Zeit und die Totmann-Schleife), die werden dir somit die Prozessorlast ganz schön raufjagen. Da bleibt dann für die anderen Schleifen nicht mehr viel übrig.

Gruß, Jens
Hallo houss,

Zitat:ich habe soweit alle schleifen programmiert und jede einzelne funktioniert alleine richtig ,nur wenn ich sie alle im Mainprogramm zusammen auffrufe werden sie nicht parallel ausgeführt.
In deinem Main sind diese 4 Testroutinen als 4 Cases einer Casestruktur ausgeführt. Da eine Case-Struktur immer nur einen Case abarbeiten kann, werden deine 4 Routinen NIE parallel laufen.
Wenn etwas parallel laufen soll, dann muss es auch in parallelen Strukturen programmiert sein.
Aber: Willst du wirklich sowas parallel laufen lassen, wenn 4 Routinen gleichzeitig versuchen, irgendwelche Ausgaben zu beschreiben???

Außerdem:
- Dein Enum zum Auswählen des Cases ist außerhalb der While-Loop. So wirst du nie einen anderen Case als den beim Programmstart aufrufen können. THINK DATAFLOW!
- Die Art und Weise, wie du Einzelwerte aus dem DDT des DAQ-Assi holst (per WaveformGetXY) ist schon sehr kreativ. Wenn schon DDT, dann doch bitte auch "From DDT" aus der Express-Palette!
- "Speichertakt" ist bei dir ein DBL, die Wartefunktion will aber nur Integerwerte haben. Ich würde hier den Datentyp anpassen...
- Du überschreibst andauernd deine Messdatei aufs Neue. Auch nicht der Weisheit letzter Schluß...
- Wozu die (ungebremste!) Schleife, um die Laufzeit zu bestimmen?
- Wozu die (ungebremste!) Schleife, um den DigitalOut (PC Totmann) immer wieder erneut auf TRUE zu setzen? Reicht es nicht aus, den einmal auf TRUE zu setzen? Der merkt sich das doch!? Außerdem solltest du dort einen DAQmxTask anschließen, auf Datentypen achten, etc...

Bitte alles nochmal überdenken...
Das mit dem 2011er-Logo war ich. Anniemacht_2 Big Grin
Du hast natürlich Recht: Auf gut Glück entpacken, nur um festzustellen, dass man es nicht öffnen kann ist nicht so der Knaller.

Gruß Markus

(06.08.2013 07:53 )Trinitatis schrieb: [ -> ]in seinem Profil steht 2012 und in dem rar-file war es nicht gekennzeichnet. Das 2011-er Logo ist erst nachträglich eingeführt worden und da ich keine Lust hatte, das file runterzuladen und zu entpacken, nur um festzustellen, ob ich´s öffnen kann, denke ich, kann man einen Versionshinweis erwarten oder, dass das Profil stimmt.
Das Programm habe ich in lv12_img geschrieben danach habe ich für lv11_img gespeichert( sorry,ich habe es vergessen zu erwähnen) ausserdem sind im rar ordner auch die beiden subvis zu finden( lauda für thermostatsteuerung und rampe für motorsteuerung).
Es wird jedes mal NUR ein Steuerzyklus über das Enum bedienelement ausgewählt vor beginn der Messung und darf dann nicht mehr geändert werden. Deswegen steht das Elment ausserhalb der while schleife.Außerdem müssen bei jedem Steuerzyklus die erfassten werte parallel angezeigt und in xls datei gespeichert werden.
-wenn ich die zeit in der schleife für die erfassung und speicherung mit rein bringe dann wird die schleife noch langsamer( hab ich mir zumindest so gedacht ) also wollte ich separat messen.
-Der PC Totmann gibt bei geraden iterartionsnummer einen booleschen 1 raus ansonst muss er ne 0 schreiben ( hab ich wieder was vergessen bei der false case).Es gibt einen externen "Logo" der die ausgaben des PC totmanns misst und führt zum abschalten des prüfstandes wenn sich der rechner aufhängt (also wenn für lange zeit kein neuen booleschen wert kommt). deswegen dachte ich, es muss dafür auch ne separate schleife geben.
-Eine stopp schaltfläsche muss bei wunsch zum sofortigen stoppen des gesamten programm führen. das habe ich auch nicht hingekriegt durch lokale variablen..etc
ich bin sehr dankbar für eure hilfe Smile
Referenz-URLs