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, 21:20
Beitrag #11

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Komplizierte Abfrage mit Schleife
Das schreit doch nach einer State-Machine als Lösung!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.02.2010, 12:12
Beitrag #12

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Hi Jens,
meinst du sowas vielleicht:
http://LabVIEWwiki.org/State_machine
Danke schoen fuer den Hinweis. Das will ich gerne versuchen.

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

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Hallo LVF.

Ich habe jetzt eine Version, die fast das macht, was ich mir vorstelle. Ich habe allerdings noch ein Problem.

Die Pumpdirection wird per Schieberegister in eine For-Schleife reingefuettert. Die For-Schleife zaehlt die Anzahl der halben Pumpzklen im Moment.
Innerhalb der For-Schleife befindet sich eine Case-Abfrage, die die Pumpdirection abfragt und in dieser Case-Struktur befindet sich eine While-Schleife, die solange ausgefuert werden soll, bis das Zielvolumen erreicht ist. Ich habe die Abbruchbedigung auf "Continue if true" gesetzt. Ich hoffe, das heisst, die Schleife wird verlassen, sobald das Zielvolumen erreicht ist.

Was passiert jetzt: Alles laeuft wunderbar bis meine while-Schleife erreicht wird. Die Werte bleiben einfach nicht in der While-Schleife. Die Pumpdirection wird einfach weiter geleitet und verbleibt nicht in der while-Schleife. Das ist doof, weil dann die for-Schleife weiterlaeuft und die Pumpdirection dann gewechselt wird. Die For-Schleife soll aber erst dann weiterspringen, wenn die while-Schleife beendet ist. Wie vermeidet man dieses Verhalten?

Ich haenge meine jetzige Version einmal an. Vielleicht mag ja jemand kurz drueberschauen. Es ist LabVIEW 8.5

Vielen Dank.

Gruesse
Blue


Angehängte Datei(en)
Sonstige .vi  Autofill_v2.vi (Größe: 53,8 KB / Downloads: 144)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.02.2010, 17:55
Beitrag #14

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
Aus dem hohlen Bauch heraus und mangels SubVIs würde ich es mal mit Schieberegistern versuchen.

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
24.02.2010, 18:07
Beitrag #15

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Hallo
Ich habe gerade in der while-Schleife die Abbruch-Bedingung gewechselt von "Continue if true" to "stop if true". Dann bleiben die Sachen auch in der Schleife und die while-Schleife wird ausgefuehrt. Ich habe das "Continue if true" falsch verstanden. Tut mir leid.
Dumme Frage, aber wie verlasse ich die Schleife, wenn Target reached true ist, ohne das Programm komplett zu stoppen? Die Status-VI fragt in der while-Schleife bei jedem Durchgang den aktuellen Status der Pumpe ab.

Markus, welche Vis moechtest du bitte sehen?


Viele Gruesse blue.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.02.2010, 18:10
Beitrag #16

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
Ich wollte Dein VI öffnen und sehe nur Kästen mit "?". Ich weiß allerdings nicht, ob die VIs wichtig waren / sind.
Hast Du das mit den Schieberegistern versucht? Vielleicht habe ich Deine Frage / Dein Problem aber auch nicht richtig verstanden.

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
25.02.2010, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2010 15:08 von bluesaturn.)
Beitrag #17

bluesaturn Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 145
Registriert seit: Jan 2010

2009
2010
en

-
United Kingdom
Komplizierte Abfrage mit Schleife
Meine Schleife bricht aus einem anderen Grund nicht ab. Die Abbruchbedigung wird von einer SubVi nicht ausgegeben.
Der Grund ist der folgende:

Meine Pumpe gibt ihren Status zurueck und der sieht wie folgt aus:

01 steht fuer die Pumpen-Nummer.
Die Zahl wird nun von verschiedenen Symbolen gefolgt:

Pumpe ist idle: 01: (: zeigt idle an)
Pumpe injiziert: 01> (> meint injiziert)
Pump ist gegen den limit switch gedonnert: 01* (* meint stalled)

Nur im Fall, wo das Zielvolumen erreicht wird, gibt sie zurueck: 01:T* (T* meint Target reached). Was der zusaetzliche Doppelpunkt da macht, erschliesst sich mir nicht. Macht das Sinn?


Der Hersteller faengt das nun mit einer match pattern function ab. Regular expression ist [<>:*T]. Aber im Falle von T* greift das nicht, weil dann : nur zurueckgegeben wird.

Meine Fragen sind jetzt:

1. Gibt es eine Moeglichkeit, einen Substring in [<>:*T] einzufuegen, der :T* lauten wuerde?
2. Oder muss ich das Problem ueber die Stringlaenge abfangen? Der String ist sonst drei Zeichen lang, im Target reached-Fall 5 Zeichen lang.
3. Ich versuche gerade mit [:T*] und [Confused] zu experimentieren, s dass reg exprression lautet: [<>[Confused]*[:T*]], aber das klappt leider nicht. Bei Target reached bekomme ich trotzdem noch den : ausgespuckt.
4. Ist die Adresse null, dann taucht nichts auf, also kein 00. Die Strings beginnen dann einfach nur mit >, :, T* oder *. Macht das Sinn seitens des Herstellers?

Ich haenge die VI auch mal an. LabVIEW 8.5

Vielen Dank fuers Anschauen.

Viele Gruesse blue


Angehängte Datei(en)
Sonstige .vi  Status_Query.vi (Größe: 27,36 KB / Downloads: 164)
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.338 30.01.2021 18:31
Letzter Beitrag: hulk
  VISA Abfrage an virtuellem COM Port liefert nur bei erster Abfrage Wert (MarCator) Ksanto 3 4.465 27.07.2017 09:40
Letzter Beitrag: Ksanto
  Zahl Abfrage ARaj 11 7.850 18.10.2015 16:37
Letzter Beitrag: GerdW
  1x While Schleife, 1x Zeitges. While Schleife, die zeitgs. START/STOP dali4u 1 6.652 23.05.2011 09:22
Letzter Beitrag: Y-P
  komplizierte FP Elemente abschalten? gottfried 5 4.381 04.04.2008 14:38
Letzter Beitrag: StefanHH
  Abfrage auf NaN gottfried 5 8.602 11.11.2007 12:40
Letzter Beitrag: rolfk

Gehe zu: