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 

Komplizierte Abfrage mit Schleife



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!

23.02.2010, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 16:24 von bluesaturn.)
Beitrag #1

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Hallo LV-Forum,

ich habe gerade mit einer etwas komplizierten Schleife zu tun.
Hintergrund: Ich moechte, dass meine Pumpe nach der Injektion die Motorrichtung umkehrt und dann wieder die gerade eingespritzte Fluessigkeit herausszieht. Dies solll solange erfolgen bis eine bestimmte Zeit oder ein Volumen erreicht wurde.

Auf dem Papier habe ich mir folgendes ausgedacht:

Status-Abfrage:

if pump direction == 0
next_pump_direction=1
else
next_pump_direction=0
end

while pump status is not T*
if next_pump_direction==1
right flow direction is chosen and pump
next_pump_direction=next_pump_direction-1
else
next pump_direction==0
right flow direction is chosen and pump
next_pump_direction=next_pump_direction+1
end

end

Was ich jetzt leider noch nicht in LabVIew versteh, ist die Behandlung von Variabelplatzhaltern (hier next_pump_direction). Koennte mir das jemand bitte kurz erklaeren und ist meine Abfrage in LabVIEW so ueberhaupt realisierbar?

Vielleicht sollte ich noch sagen, dass die Variabel pump_direction das erste Mal vom User gewaehlt wird und dann soll die next_pump_direction immer automatisch gewaehlt werden.

Vielen Dank.

Gruesse
Blue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 16:27
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Komplizierte Abfrage mit Schleife
Du kannst Deine Werte von "Next pump direction" z.B. in einem Schieberegister durchschleifen, dann hast Du bei jedem Schleifendurchlauf Zugriff darauf.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 16:45 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 16:53 von bluesaturn.)
Beitrag #3

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
' schrieb:Du kannst Deine Werte von "Next pump direction" z.B. in einem Schieberegister durchschleifen, dann hast Du bei jedem Schleifendurchlauf Zugriff darauf.

Gruß Markus


Hallo Markus,weisst du zufaellig die englische Bezeichnung dafuer? Ist es vielleicht sogar der feedback node?
Mit diesen ganzen Draehten stehe ich gerade auf Kriegsfuss, das ist sehr gewoehnungsbeduerftig wenn man von Matlab kommt.

Vielen Dank fuer deine Antwort.

Ich haenge einmal in LabVIEW 8.5 meinen ersten Ansatz an. Es ist aber noch nicht fertig und ich habe noch Verstaendnisprobleme bei der Umsetzung meiner While-Schleife via der Draehte.

Gruss
Blue


Angehängte Datei(en)
Sonstige .vi  Autofill.vi (Größe: 30,79 KB / Downloads: 182)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 17:00 von dimitri84.)
Beitrag #4

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Komplizierte Abfrage mit Schleife
Schieberegister = (engl.) shift register
Rückkopplungsknoten = (engl.) feedback node

Beide haben die gleiche Funktion nur sehen sie unterschiedlich auf dem Blockdiagramm aus. Ich finde die Darstellung vom Schieberegistern um Welten anschaulicher und hab' vorher auch nur in Matlab programmiert.

Edit: Hast du deinen Code aus dem ersten Post vielleicht als Matlab-Code da?


Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 17:04
Beitrag #5

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
' schrieb:Schieberegister = (engl.) shift register
Rückkopplungsknoten = (engl.) feedback node

Beide haben die gleiche Funktion nur sehen sie unterschiedlich auf dem Blockdiagramm aus. Ich finde die Darstellung vom Schieberegistern um Welten anschaulicher und hab' vorher auch nur in Matlab programmiert.

Edit: Hast du deinen Code aus dem ersten Post vielleicht als Matlab-Code da?
Gruß dimitri


Hallo Dimitri. Danke fuer die Uebersetzung. So kann ich meine LabVIEW-Version einmal danach durchsuchen.
Nein, nicht direkt. Das ist ein wenig Matlab-Code (if, end und Syntax). Tut mir leid, haette dir das bei anderen Sachen weitergeholfen?
Ich habe mich hier am Matlab-Code orientiert, weil ich so ein wenig denke.

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

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Komplizierte Abfrage mit Schleife
' schrieb:while pump status is not T* Was ist T*? True?
if next_pump_direction==1
right flow direction is chosen and pump Was ist right flow? Eine Variable right_flow? and pump? was heißt 'and pump'?
next_pump_direction=next_pump_direction-1
else
next pump_direction==0
right flow direction is chosen and pump Keine Ahnung was das heißt.
next_pump_direction=next_pump_direction+1
end

end

Den Matlab Compiler will ich sehen der damit was anfangen kann ^_^

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 17:20
Beitrag #7

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Hi Dimitri.
Ja, du hast ja recht, alles ist nicht 100% Matlab-Code. Aber es ware jetzt ja nicht gerade sinnvoll, alle Unterprogramme auch noch zu uebersetzen. Meine Struktur reicht doch aus, um den Sinn zu verstehen.Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 17:30
Beitrag #8

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Komplizierte Abfrage mit Schleife
' schrieb:Meine Struktur reicht doch aus, um den Sinn zu verstehen.Smile
In deiner Welt ist alles bestimmt ganz logisch Hehe

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 18:05
Beitrag #9

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Komplizierte Abfrage mit Schleife
Ich reduzier mal deine Schleife aufs Wesentliche...

' schrieb:Status-Abfrage:

if next_pump_direction==1
right flow direction is chosen and pump
else
right flow direction is chosen and pump
end

--> Die Pumpe dreht immer rechtsrum.


Wenn du so ein wenig denkst, wird dein Behälter entweder leeeeeeer oder voooooooooooll... jenachdem ob rechts pumpen oder saugen ist.


Gruß SeBa


PS:
Für dein Programm:
Da die Pumpe ja nur links oder rechts drehen kann, würde hier auch eine bool'sche Variable reichen.
(Die Pumpe kann auch anhalten, schnell und langsam drehen...?...)

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 18:25
Beitrag #10

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
' schrieb:Ich reduzier mal deine Schleife aufs Wesentliche...
--> Die Pumpe dreht immer rechtsrum.
Wenn du so ein wenig denkst, wird dein Behälter entweder leeeeeeer oder voooooooooooll... jenachdem ob rechts pumpen oder saugen ist.
Gruß SeBa
PS:
Für dein Programm:
Da die Pumpe ja nur links oder rechts drehen kann, würde hier auch eine bool'sche Variable reichen.
(Die Pumpe kann auch anhalten, schnell und langsam drehen...?...)


Hallo Seba,

der Schrittmotor kann in beide Richtungen (links, rechts) fahren. Mann kann insgesamt vier Spritzen auf dem Rack befestigen. Zwei zeigen dann nach links und die anderen zwei nach rechts. Wenn der Motor nun nach rechts faehrt, dann injiziert er das Volumen der rechten Spritzen. Wenn der Motor dann am Ende angekommen ist, soll er nach links fahren. Damit werden dann die Spritzen rechts wieder befuellt/aufgezogen und das Volumen der linken Spritzen injiziert. Das soll solange geschehen, bis eine bestimmte Zeit oder ein bestimmtes Volumen injiziert worden ist.

Ja, die Pumpe kann auf Kommando anhalten und die Schnelligkeit der Injektion wird durch die Flussrate bestimmt.
Mein erster Versuch laeuft mittlerweile, jedoch wird gerade zu schnell die Richtung gewechselt. Die Richtung sol ja erst gewechselt werden, wenn das Volumen der rechten Spritzen vollstaendig injiziert worden ist. Das muss ich noch einbauen. Im Moment wird bei jedem Schleifendurchlauf die Richtung gewechselt.

Seba, mit "right flow direction is chosen" meinte ich, dass die richtige Richtung gewaehlt wird, nicht die recht. Entschuldige. Ersetze bitte "right" durch "the corresponding", dann sollte es wieder passen. Der Wert 0 bedeutet, dass sich der Motor nach rechts (Injektion) bewegt und 1 (Befuellen oder Herausziehen) nach links.

Entschuldigung, dass ich Euch verwirrt habe. Ich bin heute selbst ganz verwirrt darueber. Ich probiere sowas zum ersten Mal aus. Ich werde nochmals gruendlich nachdenken.

Viele Gruesse
Blue
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
  Pfadangabe/-abfrage hulk 14 9.202 30.01.2021 18:31
Letzter Beitrag: hulk
  VISA Abfrage an virtuellem COM Port liefert nur bei erster Abfrage Wert (MarCator) Ksanto 3 4.439 27.07.2017 09:40
Letzter Beitrag: Ksanto
  Zahl Abfrage ARaj 11 7.822 18.10.2015 16:37
Letzter Beitrag: GerdW
  1x While Schleife, 1x Zeitges. While Schleife, die zeitgs. START/STOP dali4u 1 6.599 23.05.2011 09:22
Letzter Beitrag: Y-P
  komplizierte FP Elemente abschalten? gottfried 5 4.344 04.04.2008 14:38
Letzter Beitrag: StefanHH
  Abfrage auf NaN gottfried 5 8.529 11.11.2007 12:40
Letzter Beitrag: rolfk

Gehe zu: