LabVIEWForum.de
LVOOP-Beispiel - Stimmt das so? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: LVOOP (/Forum-LVOOP)
+---- Thema: LVOOP-Beispiel - Stimmt das so? (/Thread-LVOOP-Beispiel-Stimmt-das-so)

Seiten: 1 2


LVOOP-Beispiel - Stimmt das so? - Matze - 21.04.2010 20:43

Hi zusammen,

ich komme aus dem Bereich C# und finde LVOOP im Vergleich zu C# sehr umständlich (vielleicht liegt's an der Gewohnheit). Daher bin ich mir nicht so ganz sicher, ob ich das korrekt umgesetzt habe.
Das folgende Bild zeigt etwas Simples: Die Addition 2er Double-Werte.

[attachment=25901]

Ist das korrekt umgesetzt oder seht ihr Fehler beim Aufbau? geht es mit LVOOP auch einfacher?

Ich habe hier im Forum gelesen, dass keine Verzweigungen vorhanden sein sollten, da LVOOP hier mit Call-By-Value arbeitet und somit immer Kopien anlegen würde. Das habe ich daher hintereinander angeordnet.

Das Beispiel selbst funktioniert, aber im Vergleich zu C# finde ich es wahnsinnig umständlich.

Bitte keine Diskussionen für und wider LVOOP. Ich weiß, dass eure Meinungen da sehr stark auseinander gehen und die Tendenz eher gegen LVOOP zeigt.
Ich wollt's mir nur einmal ansehen, da evtl. ein großes Projekt auf mich wartet.

Und die Tutorials kenne ich auch, sind aber meist für Fortgeschrittene und daher nicht unbedingt für LabVIEW-Einsteiger geeignet.

Was ich auch nicht ganz verstehe: In meinem Beispiel sind die "Blöcke" rot. Als ich heute Mittag damit herum gespielt habe, waren diese in einem anderen Projekt grün. Ist das willkürlich gewählt oder steckt da ein System dahinter, was die Farbgebung anbelangt?

Grüße, Matze


LVOOP-Beispiel - Stimmt das so? - eg - 21.04.2010 20:56

Dein Beispiel sieht für mich ok aus. Was ist dran schwierig zu verstehen? Was genau findest du umständlicher als bei C#?
Die Farbe wird bei der Klassenerstellung willkürlich von LV festgelegt, die du abe ändern kannst. Rechtsklick auf die Klasse im Projekt Explorer -> Properties -> Icon


LVOOP-Beispiel - Stimmt das so? - Matze - 21.04.2010 21:03

In C# tippe ich meine Variablen kurz ein und kann direkt bei der Deklaration festlegen, ob lesend und/oder schreiben auf diese zugegriffen werden kann.
In LabVIEW benötige ich für jede Variable ein separates VI für den Lese- und Schreibzugriff. Das ist zwar über "VI for Data Member Access" relativ flott angelegt, aber kurzzeitig hatte ich sehr viele VIs offen und die musste ich erst schließen, um das Fenster-Chaos zu beseitigen (ich habe mir immer das zugehörige Blockdiagramm mit angesehen).

Die ganze Bundle- und Unbundle-Geschichte finde ich persönlich auch etwas umständlich.
Aber vielleicht liegt's tatsächlich nur an der fehlenden Erfahrung. Ich versuche morgen noch ein paar andere Beispiele. Vielleicht gefällt's mir dann. ;-)

Danke für deine Antwort.


LVOOP-Beispiel - Stimmt das so? - eg - 21.04.2010 21:13

In C# schreibst du die Klassenvariable entweder vor dem "=" oder danach, abhängig davon, ob du sie lesen oder schreiben willst. In LV hast du halt zwei VIs dazu.
Du kannst auch einen Cluster in die Klasse packen, dann kannst du gleich auf mehrere Members zugreifen. Oder, du kannst Memeber-Zugriffs-VIs ja auch bearbeiten und gleich mehrere Members lesen/schreiben.
Ausserdem kannst du auch ohne Zugriffs-VIs arbeiten und direkt über Bundle/Unbundle zugreifen (was aber nicht empfohlen wird).

P.S. By Value ist gar nicht schlimm solange du nicht auf die Klasse von parallelen Schleifen zugreifen willst, aber wenn, dann kannst du bestimmte Members z.B. über ne Queue übertragen. Somit ist auch das Lock automatisch gelöst (was man By Ref über Semaphoren machen muss).


LVOOP-Beispiel - Stimmt das so? - Matze - 21.04.2010 21:17

In C# mache ich das so:

Code:
public string variable { get; set; }

Aber gut, das spielt keine Rolle.
Direkt zugreifen möchte ich nicht auf die Variablen. Dann lasse ich's so, wie ich's habe.
Vielleicht ist die Addition auch einfach ein schlechtes Beispiel. Dafür ist "OOP" ja nicht wirklich vorteilhaft. Ich baue mir morgen ein Projekt aus mehreren Instanzen und schaue mal, wie es wird.


LVOOP-Beispiel - Stimmt das so? - eg - 21.04.2010 21:48

' schrieb:Vielleicht ist die Addition auch einfach ein schlechtes Beispiel. Dafür ist "OOP" ja nicht wirklich vorteilhaft.

Stimmt, ich mache es normalerweise so


LVOOP-Beispiel - Stimmt das so? - Matze - 22.04.2010 06:56

Hehe genau. Nur wollte ich mich an LVOOP heran wagen.
Dein Uhr-Tutorial kenne ich übrigens. Das ist auch nett, nur sind die ganzen Einführungen so, dass man sie ohne LVOOP fast einfacher hinbekommt. Zum Aneignen des Grundverständnisses aber ausreichend und darum geht es ja.

Also danke für deine Antworten. Das Thema ist dann erledigt.


LVOOP-Beispiel - Stimmt das so? - Frederik Berck - 24.06.2010 13:45

' schrieb:In C# mache ich das so:
Code:
public string variable { get; set; }

Auch wenn es schon ne Weile her ist, dass du das hier geschrieben hast...
Bedenke, dass Attribute einer LVOOP-Klasse IMMER privat sind...
Wenn du LVOOP also unbedingt mit C# vergleichen willst, dann solltest du auch gedanklich in C# mit privaten, gekapselten Attributen arbeiten...
Gruß
Freddy


LVOOP-Beispiel - Stimmt das so? - Matze - 24.06.2010 13:57

Stimmt, da hast du natürlich recht.


LVOOP-Beispiel - Stimmt das so? - abrissbirne - 25.06.2010 10:04

' schrieb:Auch wenn es schon ne Weile her ist, dass du das hier geschrieben hast...
Bedenke, dass Attribute einer LVOOP-Klasse IMMER privat sind...
Wenn du LVOOP also unbedingt mit C# vergleichen willst, dann solltest du auch gedanklich in C# mit privaten, gekapselten Attributen arbeiten...
Gruß
Freddy

SorryOfftopic2, aber da ich dich gerade hier sehe Freddy. Ich versuche gerade das autom. Incrementieren beim Erstellen von Klassen VIs auszuschalten (Zahl im Icon), kann die Einstellung aber nicht mehr finden. Wir hatten es diese Woche zu Beginn des Workshops direkt mal ausgestellt.
Danke.