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 

Einarbeitung LabVIEW / Ablauf / Variablen



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!

09.12.2011, 00:36
Beitrag #1

Redegle Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Dec 2011

2011
-
kA



Einarbeitung LabVIEW / Ablauf / Variablen
Hallo,

bin neu im Forum und hoffe, dass ich meinen Thread im passenden Bereich abgelegt habe. Denke hier passt mein Anliegen am besten rein.

Ich arbeite erst seit kurzem mit Labview und versuche mich momentan etwas einzuarbeiten. Zuvor habe ich bereits mit Visual Studio C und C++ programmiert sowie Mikrocontroller mit C und Assembler. Darin liegt auch wahrscheinlich das Problem, dass ich mich ersteinmal umgewöhnen muss. Bin es gewohnt mit Variablen zu arbeiten auf die man später von "überall" zugreifen kann.

Ich möchte Versuchen mein Problem anhand von einem Beispiel zu erklären.
Ich habe eine while Schleife programmiert welche die Werte einer Formel in ein Array schreibt. Also z.B. gebe ich ein sin(t), Samplerate = 1000 und Messdauer = 2Sekunden. Dann wird mir ein Array mit 2000Werten ausgeben wo im ms Takt der Wert des Sinus steht (Programm im Anhang). Das ganze funktioniert auch ganz gut dauert nur je nach Umfang mehrere Sekunden. Das gesamte Programm befindet sich in einer while Schleife und wird so lange ausgeführt bis ein STOP Button gedrückt wird.

Um zu vermeiden, dass bei jedem neuen Durchlauf die Berechnung erneut ausgeführt wird (Ressourcenfressend) habe ich die while Schleife in eine Case Struktur gepackt. Diese wird von dem Front Panel aus aktiviert. Die Berechnung wird also auf Knopfdruck gestartet. Dieses Array würde ich später gerne verwenden um es z.B. per Soundkarte auszugeben.

Von anderen Programmiersprachen kenne ich es, dass ich auf das Array über eine Adresse (Pointer in C) zugreifen kann. In LabVIEW scheint es mir so, dass die Variable nur so lange existiert, wie die Case Anweisung aktiv ist. Gibt es eine Möglichkeit auf das Array später von einem anderen Punkt aus zuzugreifen?

Würde mich freuen, wenn mir jemand helfen kann.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 01:02 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2011 01:04 von Redegle.)
Beitrag #2

Redegle Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Dec 2011

2011
-
kA



RE: Einarbeitung LabVIEW / Ablauf / Variablen
Das Problem mit der Geschwindigkeit konnte ich weitestgehenst beheben.
Verwende nun den Baustein Replace Array Subset anstatt von Insert Into Array. Der 2tere alloziert bei jedem aufruf Speicher und kopiert das alte Array in den neuen Speicher.

Aber die Hauptfrage steht noch im Raum.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 10:48
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Einarbeitung LabVIEW / Ablauf / Variablen
Hallo Redegle,

Grundsatz: In LabVIEW ist der Draht die Variable - THINK DATAFLOW!

Zitat:In LabVIEW scheint es mir so, dass die Variable nur so lange existiert, wie die Case Anweisung aktiv ist.
Nach dem obigen Grundsatz gilt: die Werte werden solange im Speicher gehalten, wie der Draht "aktiv" (d.h. in Benutzung) ist. Wenn er nicht mehr für den Datenfluss erforderlich ist, werden die Werte verworfen. Also: Werte außerhalb der Case-Struktur "speichern" (z.B. in Schieberegistern) und du kannst weiter darauf zugreifen...

P.S.:
- Nach Möglichkeit Snippets oder VIs anhängen statt einfacher Bilder.
- Es gibt eine "1/x"-Funktion...
- Vergleiche nie Floatingpoint-Zahlen auf Gleichheit. Das geht auch in C++ oder Assembler in die Hose...
- Versuche, "einfache" LabVIEW-Funktionen zu verwenden. ExpressVIs sind zwar nett, schränken dich aber auch schnell ein...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2011, 23:34
Beitrag #4

Redegle Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Dec 2011

2011
-
kA



RE: Einarbeitung LabVIEW / Ablauf / Variablen
Vielen Dank für die Antwort. Das mit den Variablen habe ich mir leider schon so gedacht.

Das mit den Schieberegistern ist ganz klug. Das werde ich dem nächst ausprobieren.

Zu den PSs:

-Das nächste mal werde ich ein VI Anhängen.
-Danke
-Ja das Thema mit den Floatzahlen. Natürlich ist das Vergleichen nicht gerne gesehen. So lange man gewährleisten kann, dass die Zahlen identisch sind klappt das Vergleichen auch. Natürlich ist dies bei vielen komplexeren Rechnung nur sehr schwer bzw. gar nicht mehr zu gewährleisten.
-Werde ich in Zukunft Versuchen zu beherzigen.
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
  Ablauf Automatisieren Neuling01 7 4.621 12.07.2017 16:11
Letzter Beitrag: th13
  Automatischen Ablauf programmieren Freaky29 3 4.461 03.02.2015 11:27
Letzter Beitrag: Freaky29
  Zeitgesteuerter Ablauf stefan_huaba 8 5.560 30.09.2013 14:02
Letzter Beitrag: stefan_huaba
  Ablauf einer Reihe Zufall 15 10.780 08.01.2013 20:51
Letzter Beitrag: Zufall
  Zeitgesteuerter Ablauf Stefan 4890 8 7.005 04.10.2012 07:00
Letzter Beitrag: Stefan 4890
  Zeitgesteuerter Ablauf Crowdie 2 3.645 12.05.2011 10:08
Letzter Beitrag: Crowdie

Gehe zu: