!!

Willkommen Besucher...

...um das das LabVIEWForum.de als Benutzer in vollem Umfang nutzen zu können, ist eine kostenlose Registrierung nötig...
Registrierte Benutzer können Beiträge schreiben, Dateien uploaden, Beiträge lesen :) uvm.


Antwort schreiben 
private Daten lesen und schreiben in separaten VI's
13.12.2011, 14:54 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2011 14:59 von Metzlmane.)
Beitrag #1

Metzlmane Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Feb 2011

LV-Version: 2010
LV-Erfahrung seit: 2010
LV-Sprachversion: EN



private Daten lesen und schreiben in separaten VI's
Hallo,

ich finde keine Loesung fuer mein Problem, aber ich denke, dass ich etwas nicht verstanden habe.

Ich wuerde gerne eventbasierend die privaten Daten einer Klasse aendern, sie aber dauerhaft auslesen (bzw intervallsmaessig).
Wie in dem VI zu sehen, liesst die obere Schleife die Daten aus, was auch funktioniert.
Wenn ich jetzt aber durch ein erzeugtes Event Daten in den Privaten bereich der Klasse schreiben will, werden sie nicht veraendert.

Muss ich den Ausgang der unteren Methode in eine Art Shift-Register fuehren?
Ich habe leider keine Idee wie ich das verwirklichen soll.
Bitte um Ratschlaege Blush


Gruesse,
Metzlmane


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
. .
13.12.2011, 15:09
Beitrag #2

BNT Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 158
Registriert seit: Aug 2008

LV-Version: 5.0 - 11.0
LV-Erfahrung seit: 1999
LV-Sprachversion: EN

PLZ: 64291
Land: Deutschland
RE: private Daten lesen und schreiben in separaten VI's
Hi
LabVIEW Objekte verhalten sich genauso wie alle anderen elementaren LabVIEW Datentypen: Sie folgen dem Datenflusskonzept. An Drahtabzweigen werden Duplikate erzeugt.

LabVIEW Objekte sind keine Entitäten wie in in anderen konventionellen OO-Programmiersprachen.

In dem LVOOP Bereich dieses Forums gibt es aber viele Links zu diesem Thema.

Gruß Holger

GnuPG Key: 6C077E71
Refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2011, 08:04
Beitrag #3

Metzlmane Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Feb 2011

LV-Version: 2010
LV-Erfahrung seit: 2010
LV-Sprachversion: EN



RE: private Daten lesen und schreiben in separaten VI's
Ok, vielen Dank. So in etwas dachte ich mir schon.
Ich werde es mal mit der Methode versuchen:
Abrissbirne
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.12.2011, 12:04
Beitrag #4

Kiesch Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Mar 2009

LV-Version: Fall 2011
LV-Erfahrung seit: 2009
LV-Sprachversion: DE

PLZ: 44801
Land: Deutschland
RE: private Daten lesen und schreiben in separaten VI's
Theoretisch sollte es funktionieren, wenn du dir eine Referenz auf das Objekt holst und über die Referenz schreibst / liest (soweit ich gelesen habe geht das seit LV2009 (?)). Dann sollte das funktionieren.

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.12.2011, 17:06
Beitrag #5

BNT Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 158
Registriert seit: Aug 2008

LV-Version: 5.0 - 11.0
LV-Erfahrung seit: 1999
LV-Sprachversion: EN

PLZ: 64291
Land: Deutschland
RE: private Daten lesen und schreiben in separaten VI's
Hi Kiesch
Das widerspricht aber dem Datenfluss-Paradigma von LabVIEW und birgt die Gefahr von Daedlocks in komplizierteren Situationen. Die Referenzen auf LabVIEW Daten sollte man mit Vorsicht geniessen.

Besser: Referenz-Muster. (LabVIEW Examples->Fundamentals->Object-Oriented->ReferenceObject.lvproj) Das basiert im wesentlichen auf einer Queue der Größe 1, die also nur genau ein LabVIEW-Objekt aufnehmen kann. Das Queue-Referenz Objekt kann beliebig geklont werden. Das eigentliche LabVIEW-Objekt kann aber immer nur ein Thread haben, wechselseitiger Ausschluss.

Gruß Holger

GnuPG Key: 6C077E71
Refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.12.2011, 12:01
Beitrag #6

Kiesch Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Mar 2009

LV-Version: Fall 2011
LV-Erfahrung seit: 2009
LV-Sprachversion: DE

PLZ: 44801
Land: Deutschland
RE: private Daten lesen und schreiben in separaten VI's
Die Referenz wäre halt nur das einfachst zu realisierende - mit Datenfluss kann man nunmal nicht alles machen - auch wenn er zu bevorzugen ist so lange haltbar.

Ansonsten könnte man auch das Objekt in einer FGV Speichern und diese mit einer Sperrarchitektur ausstatten. (Sperren bei Lesen (falls nötig; unterschieden nach Lese- und Schreibsperre), Entsperren und Rückspeichern nach Verarbeitung - und sei es auch nur ein get irgendwas (potentiell kann da ja eine Berechnung dahinter stecken - also sollte auf jeden Fall vermieden werden, dass zwei Prozeduren gleichzeitig auf das Objekt zugreifen können).

Potentiell bräuchte man außerdem ne Warteschlage in der FGV (wer wann zum Zug kommen darf, um das nicht dem Zufall zu überlassen; hängt aber ganz davon ab wie wahrscheinlich es überhaupt ist, dass zwei Zugriffe gleichzeitig stattfinden - passiert das potentiell fast immer braucht man das, passiert das nur in 1% der fälle macht das nur sinnlos overhead und wird durch den "Zufall" auch hinreichend gut geregelt.

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
.. .
21.12.2011, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 21.12.2011 14:00 von abrissbirne.)
Beitrag #7

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 479
Registriert seit: Aug 2007

LV-Version: LV2009, LV2010
LV-Erfahrung seit: 2007
LV-Sprachversion: EN

PLZ: 66123
Land: Deutschland
RE: private Daten lesen und schreiben in separaten VI's
(21.12.2011 12:01 )Kiesch schrieb:  Die Referenz wäre halt nur das einfachst zu realisierende - mit Datenfluss kann man nunmal nicht alles machen - auch wenn er zu bevorzugen ist so lange haltbar.

Ansonsten könnte man auch das Objekt in einer FGV Speichern und diese mit einer Sperrarchitektur ausstatten. (Sperren bei Lesen (falls nötig; unterschieden nach Lese- und Schreibsperre), Entsperren und Rückspeichern nach Verarbeitung - und sei es auch nur ein get irgendwas (potentiell kann da ja eine Berechnung dahinter stecken - also sollte auf jeden Fall vermieden werden, dass zwei Prozeduren gleichzeitig auf das Objekt zugreifen können).

Potentiell bräuchte man außerdem ne Warteschlage in der FGV (wer wann zum Zug kommen darf, um das nicht dem Zufall zu überlassen; hängt aber ganz davon ab wie wahrscheinlich es überhaupt ist, dass zwei Zugriffe gleichzeitig stattfinden - passiert das potentiell fast immer braucht man das, passiert das nur in 1% der fälle macht das nur sinnlos overhead und wird durch den "Zufall" auch hinreichend gut geregelt.

Gruß Kiesch

Oder einfach wie Holger sagt das Reference Pattern benutzen (LabVIEW Examples->Fundamentals->Object-Oriented->ReferenceObject.lvproj). Dais
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.12.2011, 09:03
Beitrag #8

Metzlmane Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Feb 2011

LV-Version: 2010
LV-Erfahrung seit: 2010
LV-Sprachversion: EN



RE: private Daten lesen und schreiben in separaten VI's
(21.12.2011 13:59 )abrissbirne schrieb:  Oder einfach wie Holger sagt das Reference Pattern benutzen (LabVIEW Examples->Fundamentals->Object-Oriented->ReferenceObject.lvproj). Dais

Genau so mache ich es jetzt und es funktioniert wunderbar. Top2
Auf die Idee ware ich bei Weitem nicht gekommen..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: