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 

Anfänger, Daten einer Klasse im SubVi bzw. SubPanel



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!

05.08.2013, 15:25
Beitrag #1

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
Anfänger, Daten einer Klasse im SubVi bzw. SubPanel
Hi,

ich bin gerade dabei mich mit der Klassen Erstellung für eine Software zu beschäftigen.
Die Software wird auch für OEM Kunden vertrieben und hat dann einen anderen
Namen.

   

So wie in dem Bild funktioniert es nicht. Wenn ich den Ausgang "Cluster schreiben"
in der linken Sequenz in die rechte Sequenz ziehe und direkt verbinde gehts natürlich.

Fragen dazu:
1. WARUM geht es nicht wie im Bild gezeigt?
2. Wenn es so nicht geht, dass muss ich doch in jedem SubBI in dem ich auf Daten einer
Klasse zugreifen will, die Klasse wieder als Eingang verbinden? Oder nicht? Ich glaube nicht
das NI das so wollte, denn das macht für mich kein Sinn.
3. Auf diese Weise kann ich doch nie in einem SubPanel auf die Daten einer Klasse zugreifen, oder irre ich da?

Habe das Gefühl das da bei mir einiges Schief läuft.... Ahrg1

Danke
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2013, 15:48 (Dieser Beitrag wurde zuletzt bearbeitet: 05.08.2013 15:49 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.421
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Anfänger, Daten einer Klasse im SubVi bzw. SubPanel
Hallo Stefan,

1. Es funktioniert so nicht, da du in der zweiten Sequenz ein neues Objekt erstellst. Dieses kennt natürlich nicht die Daten des ersten Objekts. THINK DATAFLOW: Daten/Objekte werden per Draht weitergereicht!
2. Ja. Draht = DATAFLOW!
3. Doch. Du musst die Objekte nur entsprechend weiterreichen: FGV, DVR, Queue, etc.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2013, 08:26 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2013 08:27 von dali4u.)
Beitrag #3

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: Anfänger, Daten einer Klasse im SubVi bzw. SubPanel
Hallo Gerd,

ok, da hatte ich einige Denkfehler bzgl. der Daten in einer Klasse. Das ich so zwei Objekte
erstellt hatte war mir nicht bekannt, aber das erklärt natürlich einiges. Hatte bisher gedacht,
dass die Daten in der Klasse, also im ctl, global zur Verfügung stehen würden. Das war falsch.
Ich habe mit jetzt eine funktionale globale Variable mit Init, Get und Put erstellt und das in
SubVIs sowie Panels getestet und es funktioniert.

Allerdings habe ich noch zwei Frage dazu:
Ich habe das Klassen-Objekt nicht in ein Array gepackt, sondern direkt mit dem Schieberegister
verbunden. Wie sieht es hier mit dem Speichermanagment aus.

1.) Bei Init wird ja das Schieberegister mit den Standardwerten der Klassen-Objekts gefüllt und der Speicher reserviert, oder?
2.) Bei Put wird doch der bereits reservierte Speicher vom Schieberegister nur aktualisert, also kein neuer zugewiesen, oder?

   

Danke für Deine Hilfe
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2013, 08:36 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2013 08:36 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.421
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Anfänger, Daten einer Klasse im SubVi bzw. SubPanel
Hallo dali,

Zitat:Das ich so zwei Objekte erstellt hatte war mir nicht bekannt, aber das erklärt natürlich einiges.
Du hast doch zweimal ein Objekt deiner Klasse ins BD gepackt!?
Immer, wenn du ein Objekt im BD "aufrufst", enspricht das dem "Constructor" bei textbasierten Programmiersprachen!
Außerdem gilt auch hier der DATAFLOW: wenn du den Draht eines Objekts verzweigst, wird wie bei anderen Datentypen auch eine Kopie und damit ein neues Objekt angelegt!

Zitat:Hatte bisher gedacht, dass die Daten in der Klasse, also im ctl, global zur Verfügung stehen würden.
Das ctl ist die Typdefinition einer Klasse. Auch "normale" Typdefinitionen speichern keine Daten, sondern stellen nur einen Datentyp bereit...

1) Ja.
2.) Jein. Das hängt natürlich immer von den Daten in deinem Objekt ab. Wenn da (größenveränderliche) Arrays etc. drin stecken, muss der Speichermanager natürlich mitarbeiten...

3.) Allgemeiner Tipp, auch bzgl. Speichermanagment: Zumindest bei älteren LV-Versionen galt die Empfehlung, Inputs/Outputs außerhalb der äußeren Schleife abzulegen. Dein Objekt-Out kannst du nach der Schleife am SR anschließen.
3a.) Wenn du einen FeedbackNode nimmst, brauchst du keine extra Schleife mehr...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.08.2013, 12:31
Beitrag #5

Kiesch Offline
LVF-Stammgast
***


Beiträge: 397
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Anfänger, Daten einer Klasse im SubVi bzw. SubPanel
Vielleicht nochmal ein Hinweis weil du den Abruf oben quasi als Cluster gemacht hast (also letztlich das Objekt wie einen Cluster benutzt):

Du kannst auch Setter und Getter erstellen auf die du dann unter anderem über den Eigenschaftsknoten zugreifen kannst. Der praktische Wert ist entsprechend textbasiertem OO das du darüber dann auch Falscheingaben etc. abfangen kannst. Entsprechend ist das dann auch etwas leichter handhabbar bei Änderungen und wenn du mehrere Attribute abfragst immer noch genauso übersichtlich wie mit unbundle.

Die dahinterliegenden Setter und Getter werden meines wissens sequentiell aufgerufen. Erstellen lassen die sich (bzw. standardvorlagen) auch automatisch (VI für Zugriff erstellen und unten über Eigenschaftsknoten Verfügbar machen wählen). Sogar "künstliche" (intern nicht vorhandene) Eigenschaften lassen sich erstellen (legste einfach Eigenschaftsdef Ordner an mit mindestens entweder Setter oder Getter Methode.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Mehrere Instanzen einer Klasse in einem Projekt anlegen Michael5 5 1.752 12.12.2023 12:31
Letzter Beitrag: BNT
  fehlende Daten in Elternklasse nach Nutzung einer abgeleiteten Klasse kwakz 11 10.926 25.07.2017 11:35
Letzter Beitrag: kwakz
  Rückgabe der Daten einer Baumstruktur Piranhaschaf 4 7.458 13.09.2016 13:06
Letzter Beitrag: Piranhaschaf
  Daten aus einer laufenden Schleife weiterreichen Matze 1 10.356 04.05.2010 19:07
Letzter Beitrag: IchSelbst
  Problem bei häufigem Aufruf von Open Goop Klasse Stargrove1 2 10.349 20.01.2010 12:44
Letzter Beitrag: Stargrove1

Gehe zu: