LabVIEWForum.de - Gleichverteilte Werte für graph

LabVIEWForum.de

Normale Version: Gleichverteilte Werte für graph
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich bin mal wieder am verzweifeln. Ich möchte, dass LV die mehrere Spalten in einem Array mit einem bestimmten Wert ersetzt. Dieser Wert ist für jede Spalte eigen. Nun hab ich da bissl rumprobiert aber komischerweise ersetzt LV nicht alle Zeilen in einer Spalte, sonder nur (meiner meinung nach) beliebige. Kann mir jemand sagen, warum nicht einfach alle Zeilen ersetzt werden??
danke und gruß
Hallo Sportler,

"Kann mir jemand sagen, warum nicht einfach alle Zeilen ersetzt werden?"

Weil du lokale Variablen einsetzt und RaceConditions in deinem Code hast? (Das erklärt die "beliebigen" Ersetzungen...)
Weil du das Datenflußprinzip nicht beachtest?
Weil du keine Shiftregister einsetzt?
Weil du versuchst Einzelwerte zu ersetzen, anstatt gleich die ganze Spalte zu ersetzen?

Häng mal dein VI ran, dann kann dir jemand ein paar mögliche Korrekturen aufzeigenSmile

P.S.: Was hat eigentlich der Titel des Postings mit dem Inhalt als auch der gewählten Rubrik zu tun?
' schrieb:Weil du lokale Variablen einsetzt und RaceConditions in deinem Code hast? (Das erklärt die "beliebigen" Ersetzungen...)
Weil du das Datenflußprinzip nicht beachtest?
Weil du keine Shiftregister einsetzt?
Weil du versuchst Einzelwerte zu ersetzen, anstatt gleich die ganze Spalte zu ersetzen?
RaceConditions? Mir wurde gesagt gesagt, lokale Variablen seien kein Problem, ist das nicht korrekt?

' schrieb:P.S.: Was hat eigentlich der Titel des Postings mit dem Inhalt als auch der gewählten Rubrik zu tun?
Weil die Werte in einem Graphen dargestellt werden sollen, damit man den Verlauf erkennt. Wo hätte ich es denn sonst hinschieben sollen, gibt ja keinen "allgemeinen" bereich (zunndest hab ich keinen gefunden".

Lv71_img
Hallo Sportler,

"Mir wurde gesagt gesagt, lokale Variablen seien kein Problem"
Wer behauptet denn sowas???

"Wo hätte ich es denn sonst hinschieben sollen"
"LabVIEW allgemein" hätte sich doch angeboten...

VI kommt später...
Hallo Sportler,

auch wenn der Styleguide sagt, man solle maximal die Bildschirmgröße ausnutzen - LV zwingt niemanden dazu... Mann, wie groß ist dein Bildschirm, ich war ja nur am rumscrollen!

Ich habe:
- Shiftregister eingeführt
- lokale Variablen gelöscht
- ein paar (unnötige) Strukturen entfernt
- ein bisschen zusammengeschoben - damit ich weniger scrollen muss
- ein paar Kabel gerichtet (die fehlende Aufräumfunktion inlv71ist keine Entschuldigung für nicht gerade Drähte!)

Guck mal, ob's besser läuft. Mir fehlte ein verlinktes ctl...
' schrieb:Wer behauptet denn sowas???
Mein "Lehrer" hier in der Firma.

' schrieb:"LabVIEW allgemein" hätte sich doch angeboten...
Stimmt, hab nur die Unterforen gesehen und nicht weiter nach unten gescrollt, sry!


' schrieb:Mann, wie groß ist dein Bildschirm, ich war ja nur am rumscrollen!
Auch nur 19", aber ich hab gern Platz dazwischenWink

' schrieb:Ich habe:
- Shiftregister eingeführt
- lokale Variablen gelöscht
- ein paar (unnötige) Strukturen entfernt
- ein bisschen zusammengeschoben - damit ich weniger scrollen muss
- ein paar Kabel gerichtet (die fehlende Aufräumfunktion inlv71ist keine Entschuldigung für nicht gerade Drähte!)
Ok erstmal vielen Dank. Das mit dem Ersetzen klappt jetzt prima, allerdings kann ich die Werte dann nicht mehr ändern, muss mal schaun wie ich das mach. Kabel mach ich erst immer grad wenn ich fertig bin, sonst dauert mir das zulange während der Entwicklung.

Jetzt noch zwei allgemeine Fragen:
1. Wann genau sollte man lokale Variablen verwenden und wann nicht?
2. Worin liegt denn der Vorteil alles zu verkablen und mit Shiftregistern zu machen?
Hallo Sportler,

1) Aus dem NI-Forum: "local variables = race condition enabler"
Wann sollte man lokale Variablen einsetzen: IMHO so gut wie nie. Welche Problem auftauchen, hast du ja schon gemerkt. Einzige für mich akzeptable Ausnahme: Man will den Wert eines Controls (welches per Terminal nur Daten liefert) auch mal setzen (z.B. zum Initialisieren oder löschen) und man beachtet dabei den Dataflow!

2) Welche Vorteile es hat, solltest du auch gemerkt habenSmile
Erstens: keine RaceConditions. Zweitens: keine RaceConditions. Drittens: keine R...
Im Ernst: dein VI war ein Paradebeispiel für RaceConditions. Überall (unkoordinierte) parallele Schreib- & Lesezugriffe auf lokale Variablen. Und sich wundern, warum nicht das rauskommt, was erwartet wurde...
Zweitens: ShiftRegister sind der Weg, um Daten von einer Schleifeniteration an die nächste weiterzureichen. Wie bei dir: in jeder Iteration ein anderes Element eines Arrays ändern - da sollte man sich die vorangegangenen Änderungen auch merken! Außerdem sehr speichereffizient und schnell.
Drittens: LabVIEW hat keine Variablen im üblichen Sinn. Man hat Eingabeelemente und Anzeigen. Alles andere sind Krücken, da: In LV ist der Draht die Variable!

"Kabel mach ich erst immer grad wenn ich fertig bin, sonst dauert mir das zulange während der Entwicklung."
Aber andere damit quälen geht in Ordnung? Und dann noch Hilfe erwarten? Bitte beim nächsten Mal besser machen... Tipp: "Automatisches Kabelverlegen" ausschalten, dann kann man selbst bestimmen, wie ein Draht aussieht - ohne dass LV "intelligent" eingreift.

"Mein 'Lehrer'"
</Sarkasmus an> Was macht der sonst so? C- oder VBA-Programmierer? </Sarkasmus aus>

"allerdings kann ich die Werte dann nicht mehr ändern"
Welche Werte kannst du nicht mehr ändern? Btw. hast du eine LV-Version mit Event-Struktur? (D.h. besser als die Base-Version?)
' schrieb:"Kabel mach ich erst immer grad wenn ich fertig bin, sonst dauert mir das zulange während der Entwicklung."
Aber andere damit quälen geht in Ordnung? Und dann noch Hilfe erwarten? Bitte beim nächsten Mal besser machen... Tipp: "Automatisches Kabelverlegen" ausschalten, dann kann man selbst bestimmen, wie ein Draht aussieht - ohne dass LV "intelligent" eingreift.
Gut, werd versuchen mich dran zu halten

' schrieb:"allerdings kann ich die Werte dann nicht mehr ändern"
Welche Werte kannst du nicht mehr ändern? Btw. hast du eine LV-Version mit Event-Struktur? (D.h. besser als die Base-Version?)
Die Werte in den "gain"-Spalten. Wenn ich die nach der Equal-Verteilung einzeln abändern will, werden automatisch die zuvor eingetragenen Werte wieder hineingeschrieben.
Hallo Sportler,

ist die Event-Struktur für dich verfügbar oder nicht?
Würde das ganze etwas vereinfachen...
Ehrlich gesagt weiß ich das nicht wirklich, aber im Blockdiagramm kann ich unter Structure->Event Structure auswählen, falls du das meinst
Seiten: 1 2
Referenz-URLs