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 

Genereller Datenspeicher



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!

10.08.2008, 20:52
Beitrag #1

SST.Wiggi Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Aug 2008

8.5
-
en

9418
Schweiz
Genereller Datenspeicher
Guten Tag allerseits,


mein LabVIEW Programm besteht aus mehreren Schleifen, die unabhängig voneinander verschiedene Sachen ausführen. Was ich jetzt haben müsste, ist ein genereller Speicher. Darunter stelle ich mir etwas vor, in das ich einige Strings und Booleans Speichern und dann wieder auslesen kann. Und zwar sollte das ganze dann von jeder dieser Schleifen machbar sein. Beispielsweise sind dann in diesem Speicher 10 Booleans und 5 Strings, je mit Werten gefüttert. Jetzt möchte ich, dass es möglich ist, in einer meiner Schleifen einer oder mehrere dieser Booleans oder Strings zu ändern um dann diese evtl. wieder in einer anderen Schleife weiterzuverwenden.

Ich stelle mir das ganze eigentlich wie eine MySQL Datenbank vor, in die ich mit PHP reinschreiben kann... Nur sollte das jetzt LabVIEW seinBig Grin
Am besten wäre es wie bei einer Queue-Funktion. Mit einer Wire die ich durch alles durchziehen kann, irgendwo reinschreiben und am anderen Ort rauslesen kann. Nur sollte in dieser Wire immer der aktuelle Wert abrufbar sein und nicht wie eben bei dieser Funktion eine Schlange mit Elementen erstellt werden, die ich dann wieder herausnehme, es sollte halt immer der akuetlle Wert drin bleiben.


Hat jemand eine Idee wie man das am besten lösen könnte? Gibt es da evtl. schon eine Funktion dafür?



Greeez SST.Wiggi
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.08.2008, 21:53
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Genereller Datenspeicher
Da gibt es z.B. folgende Möglichkeit: Globale Variable in Form eines SubVIs.

Im SubVI befindet sich eine While-Schleife mit vielen Schieberegistern. Nämlich genau so vielen, wie du "globale Variablen" haben willst: einige Strings und Booleans. Innerhalb der While-Schleife befindet sich eine Case-Sequenz, die über einen Enumerator gesteuert wird. Hiermit kann man z.B. alle Variablen löschen (Resetten der Schieberegister!) oder auch einzelne Variablen setzen.

Hier ein etwas spezielles Muster.

Lv80_img


Angehängte Datei(en)
Sonstige .vi  Var_PSP.vi (Größe: 48,98 KB / Downloads: 185)

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
10.08.2008, 22:28 (Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2008 23:16 von eg.)
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Genereller Datenspeicher
Mache dir ein Array aus Queue-Referenzen. Dieses Array wird jede Schleife bekommen und somit können beliebige Informationen von einer Schleife zur anderen gelangen. Das Problem bleibt dann noch wie man die Daten so verpackt, dass man auch unterschiedliche Datentypen und Informationen austauscht. Dazu gibt tes tolee Tipps und Tricks (Schlagworte: Package, Header)

P.S. habe vergessen zu sagen dass man pro Schleife eine Queue machen sollte. Die Auswahl der Zielschleife erfolgt über eine Enumeration und bei mehreren Zielschleifen sollte man eine For-Schleife verwenden.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2008, 07:15
Beitrag #4

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Genereller Datenspeicher
Hallo Eugen,

kannst Du da mal ein Bsp. machen?

Gruß Markus

' schrieb:Mache dir ein Array aus Queue-Referenzen. Dieses Array wird jede Schleife bekommen und somit können beliebige Informationen von einer Schleife zur anderen gelangen. Das Problem bleibt dann noch wie man die Daten so verpackt, dass man auch unterschiedliche Datentypen und Informationen austauscht. Dazu gibt tes tolee Tipps und Tricks (Schlagworte: Package, Header)

P.S. habe vergessen zu sagen dass man pro Schleife eine Queue machen sollte. Die Auswahl der Zielschleife erfolgt über eine Enumeration und bei mehreren Zielschleifen sollte man eine For-Schleife verwenden.

--------------------------------------------------------------------------
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
11.08.2008, 09:19 (Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2008 09:20 von eg.)
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Genereller Datenspeicher
' schrieb:Hallo Eugen,

kannst Du da mal ein Bsp. machen?

Gruß Markus


Also hier im Beispiel die Übertragung von verschiedenen Datentypen von einer Schleife zur anderen. Die Worte "type 1" und "type 2" dienen hier als Headers. Und Header zusammen mit Daten ist Package.
In diesem Beispiel habe ich zwar nur eine Queue, d.h. die Daten können nur von der oberen Schleife zur unteren übertragen werden, es ist aber sehr einfach die Funktionalität zu erweitern.

Lv85_img

Sonstige .vi  Main.vi (Größe: 17,99 KB / Downloads: 208)


   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2008, 09:35
Beitrag #6

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Genereller Datenspeicher
Danke. Und wie geht das mit den Referenzen? Was kann ich mir unter einer Queue-Referenz vorstellen?

Gruß Markus

' schrieb:Also hier im Beispiel die Übertragung von verschiedenen Datentypen von einer Schleife zur anderen. Die Worte "type 1" und "type 2" dienen hier als Headers. Und Header zusammen mit Daten ist Package.
In diesem Beispiel habe ich zwar nur eine Queue, d.h. die Daten können nur von der oberen Schleife zur unteren übertragen werden, es ist aber sehr einfach die Funktionalität zu erweitern.

Lv85_img
[attachment=41250:Main.vi]

[attachment=41249:Package.png]

--------------------------------------------------------------------------
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
11.08.2008, 09:44
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Genereller Datenspeicher
' schrieb:Danke. Und wie geht das mit den Referenzen? Was kann ich mir unter einer Queue-Referenz vorstellen?

Gruß Markus


Referenz ist eine eindeutige Nummer der Queue, mehr nicht. Es ist ähnlich wie ihr Name.

Im Beispiel wird hauptsächlich gezeigt wie man unterschiedliche Informationen mit nur einer Queue übertragen kann. Es ist ähnlich als ob du eine String (oder Variant)-Variable machen würdest und die zu übertragenden Daten zuerst nach String umwandelst und dann beim Lesen der Variable wieder in den richtigen Datentyp umwandelst.

So wie ich verstanden habe wollte der Autor genau das tun, nur mit mehreren Schleifen und mehreren Richtungen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2008, 10:25
Beitrag #8

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

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Genereller Datenspeicher
OK. Alles klar.Wink

Gruß Markus

' schrieb:Referenz ist eine eindeutige Nummer der Queue, mehr nicht. Es ist ähnlich wie ihr Name.

Im Beispiel wird hauptsächlich gezeigt wie man unterschiedliche Informationen mit nur einer Queue übertragen kann. Es ist ähnlich als ob du eine String (oder Variant)-Variable machen würdest und die zu übertragenden Daten zuerst nach String umwandelst und dann beim Lesen der Variable wieder in den richtigen Datentyp umwandelst.

So wie ich verstanden habe wollte der Autor genau das tun, nur mit mehreren Schleifen und mehreren Richtungen.

--------------------------------------------------------------------------
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
11.08.2008, 12:08
Beitrag #9

SST.Wiggi Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Aug 2008

8.5
-
en

9418
Schweiz
Genereller Datenspeicher
ihr habt mich so wie es scheint nicht wirklich verstanden, oder ich habe meine Frage falsch gestellt.

Jedenfalls ist mein Problem nicht das Daten von einer Schleife in die andere zu übertragen, sondern möchte ich einen Speicher, in den jede Schleife reinschreiben und rauslesen kann, und somit die Daten aktualisiert, oder einfach die aktuellsten aufrufen kann. Wichtig ist dabei, dass ich in diesem Speicher Booleans und Strings speichern kann und es möglich ist, nur einzelne dieser Booleans und Strings zu verändern.


Greez Wiggi
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2008, 12:12
Beitrag #10

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Genereller Datenspeicher
' schrieb:ihr habt mich so wie es scheint nicht wirklich verstanden, oder ich habe meine Frage falsch gestellt.

Jedenfalls ist mein Problem nicht das Daten von einer Schleife in die andere zu übertragen, sondern möchte ich einen Speicher, in den jede Schleife reinschreiben und rauslesen kann, und somit die Daten aktualisiert, oder einfach die aktuellsten aufrufen kann. Wichtig ist dabei, dass ich in diesem Speicher Booleans und Strings speichern kann und es möglich ist, nur einzelne dieser Booleans und Strings zu verändern.
Greez Wiggi


Siehe Post von IchSelbst, sein Vorschlag (Funktionale Globale Variable) passt hier am besten.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: