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 

Booleschen Wert außerhalb einer While-Schleife verwenden



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!

02.08.2013, 10:58
Beitrag #1

Julian S Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2013

2010
2013
DE



Booleschen Wert außerhalb einer While-Schleife verwenden
Hallo!

In meinem DAQ Programm befindet sich eine While-Schleife, die während des Programmablaufs einen Booleschen Wert ausgibt, den ich außerhalb der Schleife verwenden möchte.
Der boolesche Wert ändert sich während des Programmdurchlaufs mehrfach und ich brauche ihn an einer anderen Stelle im Programm für die Steuerung einer Case-Struktur.
Ich habe es mit indiziertem Tunnel und einer lokalen Variable probiert, beides hat nicht funktioniert.

Wer kann mir helfen? Smile

Beste Grüße, Julian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.08.2013, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2013 11:43 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Booleschen Wert außerhalb einer While-Schleife verwenden
Hallo Julian,

deiner Beschreibung nach missachtest du den DATAFLOW!

Tipp:
- Die einfachste Methode dürfte eine lokale Variable des boolschen Werts darstellen, über die du den Wert woanders abfragen kannst.
- Wenn es mehr "LabVIEW-like" sein soll, würde ich dir zu Meldern/FGVs/Queues raten. Es gibt dazu einiges an Beispiel-VIs, die mit LabVIEW mitgeliefert werden.

Zitat:Ich habe es mit indiziertem Tunnel
Da gilt: THINK DATAFLOW!

Zitat:und einer lokalen Variable probiert,

Das hast du dann wohl nicht richtig umgesetzt...

Zitat:beides hat nicht funktioniert.
"Funktioniert nicht" ist keine gute Fehlerbeschreibung...

Wenn du Hilfe zu deinem VI haben willst, solltest du es uns auch zeigen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.08.2013, 12:26
Beitrag #3

Julian S Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2013

2010
2013
DE



RE: Booleschen Wert außerhalb einer While-Schleife verwenden
Vielen Dank zunächst für die schnelle Antwort!

Ich glaube es macht Sinn wenn ich nochmal einen anderen Ansatz zu meinem Problem gebe, und natürlich auch mein Programm anhänge.

Das Programm, so wie es jetzt aussieht, misst mit 400Hz und generiert Readblocks mit 10 Werten, es passieren also 40 Schleifendurchläufe pro Sekunde.
Diese Readblocks in Array-Form (2D Array mit Zeitkanal, Piezokanal, Triggerkanal) werden in einen .asc-File geschrieben. Das alles funktioniert soweit!
Nun geht es darum, dass ich zusätzlich zur "normalen" Messdauer einen Pretriggerbereich aufzeichnen möchte und hinterher auch nur genau diese Bereiche in meinem .asc-File landen sollen. Wie sollte ich da am besten vorgehen?
Bisher hatte ich große Probleme damit, die Daten, die in der Whileschleife erzeugt werden, weiterzuverarbeiten, also Thema Datenfluss.

Ich hoffe sehr, man versteht, was ich meine.

PS. Die fehlenden SubVI's kann ich aus Datenschutzgründen nicht anhängen, es handelt sich um die VI's zum Auslesen des Mess-PC.


Angehängte Datei(en)
0.0 .rar  Prüfstandsoftware_020813.rar (Größe: 68,29 KB / Downloads: 199)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.08.2013, 12:36 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2013 12:41 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Booleschen Wert außerhalb einer While-Schleife verwenden
Hallo Julian,

Zitat:zusätzlich zur "normalen" Messdauer einen Pretriggerbereich aufzeichnen möchte
Lege dir einen Puffer für den PreTrigger an. Dies kann eine (größenlimitierte) Queue oder ein Array in einem Schieberegister sein. Dann hast du die Daten vorliegen, wenn der Trigger eintritt.

Zitat:nur genau diese Bereiche
Nur "genau" den PreTrigger? Siehe oben...

Zitat:Wie sollte ich da ... vorgehen?
Ich würde dir das Producer-Consumer-Schema empfehlen. Trenne DAQ von Anzeige und Speicherung. Die Anzeige muss nicht mit 40Hz betrieben werden, da reichen auch 10Hz locker aus (oder willst du flüssiges Video erzeugen?). Die Speicherschleife kann sich um das Puffern der Pretrigger-Daten kümmern...

Allgemeine Tipps:
- Bei eigenen subVIs sollte man das ConnectorPane so belegen: links/rechts oben Referenzen (Datei-Refs, DAQmx-Refs, etc.), links/rechts unten den ErrorCluster. Also so, wie es fast alle Funktionen von NI auch machen, z.B. das FileClose. Das führt zu wesentlich "geraderen" Drähten.
- Wenn du in "Analog_messen" viele Werte aus dem Voreinstellungen-Cluster benötigst, solltest du den Cluster an das subVI verdrahten statt der Einzelwerte. Auch das erhöht die Übersichtlichkeit im mainVI.
- Bei der Mehrfacharithmetik kann man Ein- und Ausgänge invertieren. Dies führt dann dazu:
   
Will man dem Compiler dann noch Arbeit abnehmen, macht man das so:
   

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
  Programmteil außerhalb der Ursprungsansicht alex-one 6 4.177 09.11.2022 17:03
Letzter Beitrag: alex-one
  Drei Queues in einer While-Schleife mit case-Struktur EinVolvic 12 10.923 17.05.2017 20:25
Letzter Beitrag: EinVolvic
  Probleme seit einfügen einer For-Schleife JUON 7 5.094 14.02.2017 18:01
Letzter Beitrag: TR61
  Rechenzeit einer Schleife pro runde bekommen aidinnikoo 1 3.254 30.11.2016 13:53
Letzter Beitrag: GerdW
  Dauer einer Schleife berechnen Marius89 3 5.648 31.10.2016 09:24
Letzter Beitrag: jg
  Wert in Schleife immer wieder neu schreiben? joptimus 4 3.789 02.08.2016 14:19
Letzter Beitrag: Lucki

Gehe zu: