INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Schnelligkeit eines LabVIEW-Vis



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.04.2010, 14:42 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2010 14:42 von bluesaturn.)
Beitrag #1

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
Hallo LabVIEWforum,

meine Pumpe soll sich erst nach links und dann nach rechts bewegen und dann das ganze wieder von vorn.
Dieser Vorgang nennst sich "Infuse/Withdraw" oder "Autofill".

Die Pumpe bietet eine eingebaute Methode fuer einen Zyklus an, jedoch ist dieser nicht per Befehl mit LabVIEW zugaenglich. Wenn dieser Vorgang an der Pumpe direkt ausgewaehlt wird, ist zwischen der Bewegung nach links und der Bewegung nach rechts keine Pause. Diese gehen ineinander ueber

Ich habe jetzt auch versucht, so etwas zu basteln. Habe aber einen Moment Pause zwischen den Richtungsaenderungen. Liegt das an meiner Art der Programmierung oder weil ich LabVIEW benutze und die Befehle erst an die Pumpe uebertragen werden muessen? Das halte ich aber eigentlich fuer unrealistisch.
Zudem bilde ich mir ein, dass ein ganzer Zyklus in einer Schleife (Autofill_v3.vi) eine kleinere Pause bei Richtungswechsel macht als ein halber Zyklus in der Schleife (Autofill_v2.vi)

Koenntet ihr Euch das bitte vielleicht anschauen und mir einen Rat geben, wie ich bitte die Schnelligkeit der Richtungsaenderung optimieren koennte?

Ich lade die beiden Vis hoch und die Instrumentlibrary von Harvard hoch. AllLv85_img

Vielen Dank, bluesaturn


Angehängte Datei(en)
Sonstige .vi  Autofill_v2.vi (Größe: 57,66 KB / Downloads: 222)

Sonstige .vi  Autofill_v3.vi (Größe: 54,59 KB / Downloads: 213)

Sonstige .zip  Harvard_Apparatus_PHD_Ultra_Series.zip (Größe: 445,23 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.04.2010, 20:35
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schnelligkeit eines LabVIEW-Vis
' schrieb:Wenn dieser Vorgang an der Pumpe direkt ausgewaehlt wird, ist zwischen der Bewegung nach links und der Bewegung nach rechts keine Pause. Diese gehen ineinander ueber
Ist ja klar: Keiner kann die Pumpe so schnell umdrehen wie sie selbst.

Zitat:Habe aber einen Moment Pause zwischen den Richtungsaenderungen.
Ganz klar: Erst musst du ja mal feststellen, ob überhaupt umgekehrt werden soll. Dann musst du sagen "jetzt umkehren". Und diese Vorgänge dauern eine Mindestzeit.

Zitat:Liegt das an meiner Art der Programmierung oder weil ich LabVIEW benutze und die Befehle erst an die Pumpe uebertragen werden muessen? Das halte ich aber eigentlich fuer unrealistisch.
Es kann an der Art der Programmierung liegen. An LabVIEW selbst liegt es keinenfalls. Und daran, dass die Befehle erst gesendet werden müssen, liegt es auf jeden Fall.
Was soll daran unrealistisch sein? Jeder Algorithmus dauert nun mal seine Zeit. Bedenke, dass ist eine VISA-Schnittstelle, zwar mit 115kB, aber immerhin.

Zitat:Zudem bilde ich mir ein, dass ein ganzer Zyklus in einer Schleife (Autofill_v3.vi) eine kleinere Pause bei Richtungswechsel macht als ein halber Zyklus in der Schleife (Autofill_v2.vi)
Das kann theoretisch sein. Praktisch ist der Zeitunterscheid wohl eher marginal.

Zitat:einen Rat geben, wie ich bitte die Schnelligkeit der Richtungsaenderung optimieren koennte?
Ich sehe da keine Optimierunsmöglichkeiten mehr.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2010, 14:19
Beitrag #3

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
' schrieb:Ist ja klar: Keiner kann die Pumpe so schnell umdrehen wie sie selbst.

Ganz klar: Erst musst du ja mal feststellen, ob überhaupt umgekehrt werden soll. Dann musst du sagen "jetzt umkehren". Und diese Vorgänge dauern eine Mindestzeit.

Es kann an der Art der Programmierung liegen. An LabVIEW selbst liegt es keinenfalls. Und daran, dass die Befehle erst gesendet werden müssen, liegt es auf jeden Fall.
Was soll daran unrealistisch sein? Jeder Algorithmus dauert nun mal seine Zeit. Bedenke, dass ist eine VISA-Schnittstelle, zwar mit 115kB, aber immerhin.

Das kann theoretisch sein. Praktisch ist der Zeitunterscheid wohl eher marginal.

Ich sehe da keine Optimierunsmöglichkeiten mehr.

Hallo "IchSelbst".
Danke zunaechst mal, dass du dir das Problem angeschaut hast.
Ich stimme dir zu, dass es Zeit zum Senden braucht. Jetzt kommts aber: Die Firma schreibt mir:

irun – causes the pump to start in the forward direction and continuing running.
wrun – causes the pump to run in the reverse direction and continue running.
An “autofill” type of function can be created in LabVIEW by repeating irun and wrun commands as needed.
To avoid the pump stopping, do not set a target volume or time. Set the target volume to 0.0 ml. This will cause the pump to run without stopping. Send the tvol command before sending any irun or wrun commands.
Like this:
tvol 0 ml
When you use irun and wrun commands with no target set, you use LabVIEW to keep track of the elapsed time, so LabVIEW controls the timing of sending the irun and wrun commands. In this case, you do not need to check the status or volume delivered. So you do not need to use Status Query.vi or Read Volume & time.vi

The whole “Forward and Backward” command set can be like this:
<Call Initialize.vi>
irat 5 mlm
wrat 5 mlm
tvol 0 ml
irun
<LabVIEW wait 5 seconds>
wrun
<LabVIEW wait 5 seconds>
irun
<LabVIEW wait 5 seconds>
wrun
<LabVIEW wait 5 seconds>
irun
<LabVIEW wait 5 seconds>
wrun
<LabVIEW wait 5 seconds>
stop
<Call Clear Data.vi>
<Call Close.vi>

Ich habe irun und wrun via hyperterminal ausprobiert. Dort scheint mir, es ist nur dadurch limitiert, wie schnell ich eintippe, ansonsten erscheint es mir fixer als meine LabVIEW-Version. Entsprechend dem Menschen von dir Firma scheint ja die Angabe eines Targetvolumens die Richtungsumkehrung zu verzoegern. Vielleicht ist dies auf eine erhoehte Anzahl von Befehlen zurueckzufuehren im Vergleich zu wrun and irun. Ich werde jetzt diesen Vorschlag in LabVIEW anschauen.
Hast du dir vielleicht die Harvard.zip anschauen koennen? Das sind die Treiber von der Firma. Sind die eigentlich in einer vernuenftigen Art und Weise in bezug auf LabVIEW geschrieben? Mich wuerde interessieren, was LabVIEWs-Profis davon halten.

Viele Gruesse
Blue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2010, 17:47
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schnelligkeit eines LabVIEW-Vis
' schrieb:The whole “Forward and Backward” command set can be like this:
Das ist aber schon ein großer Unterschied zu dem, was du programmiert hast. Wenn die das so sagen, dann wird das wohl so zu möglich sein.

Zitat:Ich habe irun und wrun via hyperterminal ausprobiert. Dort scheint mir, es ist nur dadurch limitiert, wie schnell ich eintippe, ansonsten erscheint es mir fixer als meine LabVIEW-Version.
Naja, die Pausen, wie beim Eintippen entstehen, entsprechen wahrscheinlich in dem vom Hersteller beschriebenen Ablauf den Zeilen "<LabVIEW wait 5 seconds>".

Zitat:Ich werde jetzt diesen Vorschlag in LabVIEW anschauen.
Auf jeden Fall.

Zitat:Hast du dir vielleicht die Harvard.zip anschauen koennen? Das sind die Treiber von der Firma. Sind die eigentlich in einer vernuenftigen Art und Weise in bezug auf LabVIEW geschrieben?
Kann man so lassen.
Die einzelnen SubVIs kapseln halt lediglich die spezifischen Befehle, die lediglich an die VISA-VIs gegeben werden. Hier und da könnten die Wire vorwärts statt rückwärts gehen, wie sich das gehört.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2010, 19:25
Beitrag #5

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
' schrieb:Das ist aber schon ein großer Unterschied zu dem, was du programmiert hast. Wenn die das so sagen, dann wird das wohl so zu möglich sein.
:-) Ich mußte mir halt selber helfen. Ich habe die Bewegung über das Targetvolumen angesteuert. Das ist auch eine Möglichkeit. Er verfolgt einen anderen Ansatz in seinem Vorschlag. Statt auf ein bestimmtes Volumen zu warten, schlägt er vor, bei einer gegebenen Flußrate eine bestimmte Zeit zu warten. In dieser Zeit wird halt ein bestimmtes Volumen fortbewegt. Statt einer Variabel muß man der Pumpe nun zwei Parameter geben.

' schrieb:Naja, die Pausen, wie beim Eintippen entstehen, entsprechen wahrscheinlich in dem vom Hersteller beschriebenen Ablauf den Zeilen "<LabVIEW wait 5 seconds>".
Nein, die Pausen sind dafür nicht da. Die sind versuchsbedingt gegeben. In seiner nächsten E-Mail rät er mir folgendes:

me>Furthermore, you write I should keep track of the elapsed time with LabVIEW. Should this be done with internal LabVIEW commands or with one of the pump chain commands (itime, wtime), please?

him>Use internal LabVIEW commands.

me>There are some restrictions to the time in-between the irun and wrun commands.

him>You should allow at least 0.25 second between commands.

me>Would you recommend to set-up the time by calculating the fraction of a given volume dived by the flow rate?

him>Yes, this correct.

' schrieb:Kann man so lassen.
Die einzelnen SubVIs kapseln halt lediglich die spezifischen Befehle, die lediglich an die VISA-VIs gegeben werden. Hier und da könnten die Wire vorwärts statt rückwärts gehen, wie sich das gehört.
Was meinst du bitte mit vorwärts statt rückwärts?

Danke schön und einen schönen Abend.

Gruß
blue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2010, 20:00
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schnelligkeit eines LabVIEW-Vis
' schrieb:Was meinst du bitte mit vorwärts statt rückwärts?
Wires, also der Datenfluss, gehen von links nach rechts (außer möglicherweise in China und Arabien). Guckst du die beiden Bilder.

Und ja, auch ein ansprechendes Äußeres gehört zu einem Sourcecode. Sowas erleichtert das Lesen und Debuggen des Sourcecodes.


Angehängte Datei(en) Thumbnail(s)
       

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.04.2010, 15:31 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2010 16:08 von jg.)
Beitrag #7

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
Hallo IchSelbst.

Ich habe den Vorschlag umgesetzt. Anbei die neue .vi.Lv85_img
Jedoch tue ich mich gerade noch etwas schwer mit der Zeit t, die bestimmt, wie lang die Pumpe in eine Richtung laeuft.

In der vi sieht man einen while loop (eventuell muss ich den noch gegen einen for loop austauschen), in dem sich die beiden Vis Start Pump.vi befinden.
Oben links wird die Zeit berechnet, die bestimt, wie lange diese Richtung ausgefuehrt wird.

Wie baue ich die Zeit nun zwischen die beiden Start Pump.vi ein? Als time sequence or flat sequence? Mir wurde angeraten, die Zeit mit LabVIEW-Befehlen zu kontrollieren.

Der Ablauf soll sein

irun
<LabVIEW wait t seconds>
wrun
<LabVIEW wait tseconds>
irun
<LabVIEW wait t seconds>
wrun
<LabVIEW wait t seconds>
irun
<LabVIEW wait t seconds>
wrun
<LabVIEW wait t seconds>
stop

Ich probiere mich mal in der Zwischenzeit mit den Sequencen. Danke fuer jegliche Vorschlaege.
Gruss
Blue


Angehängte Datei(en)
Sonstige .vi  Autofill_v5.vi (Größe: 96,25 KB / Downloads: 220)

Sonstige .vi  Flow_time.vi (Größe: 29,1 KB / Downloads: 183)

Sonstige .vi  No_target.vi (Größe: 13,92 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2010, 16:02
Beitrag #8

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
Ich habe obiges Autofill_v5.vi noch einmal modifiziert. Es klappt mit einem Time Delay im allgemeinen. Aber ich bin mir nicht sicher, wie genau diese Art des Start-Stop-Ablaufes ist. Immerhin werden einige Zeit zur Befehlsuebersendung benutzt, aber das ist nicht relevant, solange dieser Zeitverlust minimal ist.
Gibt es vielleicht noch eine bessere Moeglichkeit (sauberer) Start-Stop-Funktion zu programmieren?

Danke schoen.

Blue

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Autofill_v6.vi (Größe: 64,97 KB / Downloads: 200)

Sonstige .vi  Initialize.vi (Größe: 46,84 KB / Downloads: 233)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2010, 17:41 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2010 18:48 von jg.)
Beitrag #9

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Schnelligkeit eines LabVIEW-Vis
Die naechste Moeglichkeit waere mit einer Sequenz. Ich habe leider keine Ahnung, was besser ist. Das laeuft auch. Oder sollte man Sequenzen oder Express-Vis besser vermeiden?

Tante Edit: Macht die wait.vi eigentlich bei groesseren Zeiten Probleme? Fuer welchen Zeitbereich ist sie bitte geeignet?

Lv85_img


Angehängte Datei(en)
Sonstige .vi  Autofill_v6_2.vi (Größe: 40,31 KB / Downloads: 208)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2010, 17:48 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2010 17:51 von IchSelbst.)
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schnelligkeit eines LabVIEW-Vis
' schrieb:Wie baue ich die Zeit nun zwischen die beiden Start Pump.vi ein? Als time sequence or flat sequence?
Weder noch! So wie im 6. Muster.

' schrieb:Ich habe obiges Autofill_v5.vi noch einmal modifiziert.
So ist es - Sequenzierungen werden mit dem Error-Cluster gemacht!

Zitat:Aber ich bin mir nicht sicher, wie genau diese Art des Start-Stop-Ablaufes ist. Immerhin werden einige Zeit zur Befehlsuebersendung benutzt, aber das ist nicht relevant, solange dieser Zeitverlust minimal ist.
Ich halte diese Zeit für nicht relevant.

Zitat:Gibt es vielleicht noch eine bessere Moeglichkeit (sauberer) Start-Stop-Funktion zu programmieren?
So wie in AutoFill_v6 kannst du es machen.

Zitat:Die naechste Moeglichkeit waere mit einer Sequenz.
Würde ich bei dem wenigen Code nicht machen. So ist es übersichtlicher.

Zitat:Oder sollte man Sequenzen oder Express-Vis besser vermeiden?
Sequenzen kann man gegebenenfalls durch Sequenzierung mit dem Error-Cluster ersetzen. Express-VI besonders vom DAQmx sollten vermieden werden. Die Express-VIs für Timer kann man aber verwenden (da steht nic weiter drinn als Wait(ms)).

Nachtrag:
Die Sequenz in v62 ist völlig sinnlos! Raus damit! Der Zweck wird bereits durch den Errorcluster erreicht.

Wenn du was machen willst, dann ersetze die Nuller und Einser in den Auswahl-Cases durch eine Konstante von "Pump Direction (0:Infuse)"

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ermittlung der Parameter eines PT1 Glieds in LabVIEW peter.sigg 1 2.759 10.07.2020 09:10
Letzter Beitrag: kpa
  Öffnen eines Desktopfensters von Labview aus. RadioactiveMan 7 8.829 24.08.2015 12:24
Letzter Beitrag: tobi45f
  Probleme mit Stabilität eines Labview Programms jojo2203 2 3.732 21.02.2012 22:08
Letzter Beitrag: GerdW
  Performance von LabVIEW in VM eines Netbooks Matze 5 6.068 26.08.2011 16:28
Letzter Beitrag: Matze
  [LabView 8.5 ]Element eines Arrays modifizieren Karotte 3 4.229 25.08.2010 10:11
Letzter Beitrag: GerdW
  LabVIEW stürzt ab beim öffnen eines Vis im Projektexplorer Achimedes 6 8.735 04.05.2009 08:55
Letzter Beitrag: Michael5

Gehe zu: