LabVIEWForum.de - ausleseprobleme

LabVIEWForum.de

Normale Version: ausleseprobleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo!!

Hätte mal eine Frage, habe ein Programm. In diesem lese ich die Daten aus verschiedenen Sensoren aus und nebenbei wird per VISA ein Spindelhubgetriebe angesteuert. Jetzt laufen beide Teile des Programms innerhalb von einer schleife und die ansteuerung des spindelhubgetriebes dauert leider so lange, dass ich keine kontinuierliche datenausgabe in meinen graphen habe?!? Leider kann ich die delayzeiten von meinem motor auch nicht weiter runterschrauben... gibts irgendwie eine möglichkeit, dass ich dieses programm sozusagen sprich daten anzeigen ohne darauf zu warten was mein motor macht???

danke lg andiedecke
Hallo!

Stichwort: Parallele Schleifen..hmm doch zwei WörterBig Grin
Schleife 1 steuert den VISA-Teil
Schleife 2 den Rest

Poste mal Dein VI, bevor ich zu viel verrate..
Gruß
Hi,
verwende doch zwei parallele While-Schleifen...den Datenaustausch zwischen den Schleifen kannst du über Variablen, Queues oder Melder machen...Solange aus der VISA-Schleife keinen neuen Werte kommen, verwendest du in der Graph-Schleife den zuletzt übertragenen VISA-Wert. Aus der VISA-Datenquelle wird also in der Graph-Schleife bei jedem Durchlauf der Wert entnommen, ob er nun "alt" oder "neu" ist...

Gruss
Achim

EDIT: Ups...hab zu schnell gelesen...du nimmst aus der VISA-Schleife ja nix raus, sondern müsstest was reinschreiben...sollte aber genauso gehen!
' schrieb:Hallo!

Stichwort: Parallele Schleifen..hmm doch zwei WörterBig Grin
Schleife 1 steuert den VISA-Teil
Schleife 2 den Rest

Poste mal Dein VI, bevor ich zu viel verrate..
Gruß

bitte schön!! aber wie kann ich zwei schleifen nebeneinander laufen lassen??
Uuuuiiiii! Was für ein Blockdiagramm!

Da schaust Du noch durch? Also: ich mache Dir ein Beispiel, wie das geht. Die Sub-VIs fehlen mir sowieso, um Deines zu durchschauen.Big Grin

Prinzipiell: Blockdiagramm ist nicht grösser, als der Monitor..

Beispiel folgt.
' schrieb:Uuuuiiiii! Was für ein Blockdiagramm!

Da schaust Du noch durch? Also: ich mache Dir ein Beispiel, wie das geht. Die Sub-VIs fehlen mir sowieso, um Deines zu durchschauen.Big Grin

Prinzipiell: Blockdiagramm ist nicht grösser, als der Monitor..

Beispiel folgt.

ja einigermaßen... danke schön, schon mal im vorhinein!!
Das ist nur eine Frage des Monitors. Lol

Gruß Markus

' schrieb:Uuuuiiiii! Was für ein Blockdiagramm!

Da schaust Du noch durch? Also: ich mache Dir ein Beispiel, wie das geht. Die Sub-VIs fehlen mir sowieso, um Deines zu durchschauen.Big Grin

Prinzipiell: Blockdiagramm ist nicht grösser, als der Monitor..

Beispiel folgt.
Hehe, reichen 21" nicht???

Also hier ein leicht nachzubauendes Beispiel zweier paralleler Schleifen:

[attachment=5663]


LV8.20:
[attachment=5664]

So, die Schleifen Berechnen bei Buttonbetätigung einmal A-B bzw. B-A und weisen die dann A und B zu. Jede Schleife ist für ein anderes Anzeigeelement zuständig.
Soweit so gut. Gibst Du jetzt für A = 1 und für B = 2 ein, sollte als Ergebnis in A = 1 stehen und in B = -1 - richtig?

Soweit sollten Parallele Schleifen jetzt klar sein, oder? Eine Schleife für VISA und die andere Schleife für den Rest, dann muss das eine nicht auf das andere warten!

Baue es mal nach und schaue, ob das wirklich so ist. Dann mal mit dem Lämpchen auch versuchen und siehste...Pustekuchen, irgendwas stimmt da nicht...
Es kommen manchmal falsche Ergebnisse raus - warum wohl?
Es handelt sich hierbei um sogenannte "Raceconditions" - es entsteht ein Fehler, weil ich Torfkopp nicht verhindere, dass das Ergebnis der z.B. oberen Schleife schon in A und steht und somit die andere Schleife diesen "fertigen" Wert benutzt, anstelle des ursprünglichen! Somit wird falsch richtig gerechnet - klassischer Programmierfehler.

Dahin zielt Achims Tipp: da musst Du Dich mal schlau machen, wie man mit semaphoren und notifiern sowas verhindert - hier im Forum und in den LV-Beispielen auch.

Also dann frohes Schaffen und stelle gerne Fragen!
' schrieb:Hehe, reichen 21" nicht???

Also hier ein leicht nachzubauendes Beispiel zweier paralleler Schleifen:

[attachment=32117:race.PNG]
LV8.20:
[attachment=32118:race.vi]

So, die Schleifen Berechnen bei Buttonbetätigung einmal A-B bzw. B-A und weisen die dann A und B zu. Jede Schleife ist für ein anderes Anzeigeelement zuständig.
Soweit so gut. Gibst Du jetzt für A = 1 und für B = 2 ein, sollte als Ergebnis in A = 1 stehen und in B = -1 - richtig?

Soweit sollten Parallele Schleifen jetzt klar sein, oder? Eine Schleife für VISA und die andere Schleife für den Rest, dann muss das eine nicht auf das andere warten!

Baue es mal nach und schaue, ob das wirklich so ist. Dann mal mit dem Lämpchen auch versuchen und siehste...Pustekuchen, irgendwas stimmt da nicht...
Es kommen manchmal falsche Ergebnisse raus - warum wohl?
Es handelt sich hierbei um sogenannte "Raceconditions" - es entsteht ein Fehler, weil ich Torfkopp nicht verhindere, dass das Ergebnis der z.B. oberen Schleife schon in A und steht und somit die andere Schleife diesen "fertigen" Wert benutzt, anstelle des ursprünglichen! Somit wird falsch richtig gerechnet - klassischer Programmierfehler.

Dahin zielt Achims Tipp: da musst Du Dich mal schlau machen, wie man mit semaphoren und notifiern sowas verhindert - hier im Forum und in den LV-Beispielen auch.

Also dann frohes Schaffen und stelle gerne Fragen!

na ich danke auf jeden fall und werd die nächsten tage sicher was zum basteln haben :-) meld mich wenns geklappt hat oder auch nicht...

lg andiedecke
Hallo,

schau Dir mal das Beispiel, das ich aus dem Example-Finder habe, an. Das könnte Dir auch bei den parallelen Schleifen helfen.

Gruß Markus
Seiten: 1 2
Referenz-URLs