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 

X Bildlaufleiste bei Signalverlaufsdiagram stoppen



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!

24.04.2016, 13:08 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2016 10:38 von jg.)
Beitrag #1

Carp Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2016

2014
2015
DE



X Bildlaufleiste bei Signalverlaufsdiagram stoppen
Hallo,

zunächst einmal möchte ich sagen, dass ich noch nicht lange mit LabVIEW arbeite.
Deshalb bitte ich um Verständnis, falls ich eure Lösungen/Ratschläge evtl nicht sofort verstehe.

Ich habe im Rahmen eines Projektes ein schon bestehendes Programm bekommen. Dieses möchte ich
soweit es geht verbessern und neue Funktionen implementieren. Soweit ich das beurteilen kann,
ist das Programm sehr unsauber und teilweise verwirrend (für mich) gestaltet wurden.
Beispielsweise ist das Main VI ca. 8 Bildschirme groß und es ist wenig bis gar nicht kommentiert.
Der Screenshot unten ist daher nur ein kleiner Teil des Main VI.
Zu meinem Problem:
Wie in dem Bild zusehen ist, gibt es sehr viele Diagramme (D5 bis D33) die den Verlauf von einer Messtrecke angeben.
Ich möchte allen Diagrammen eine X-Bildlaufleiste hinzufügen umd den Verlauf besser beobachten zu können.
Wenn ich einfach nur die Bildlaufleiste hinzufüge, springt mir der Graph bei jeder Aktualisierung zurück zum neusten Wert.
Um dies zu verhindern dachte ich mir, dass ich das Diagramm per Button stoppe und die Historie in eine Queue speicher.
Funktioniert auch soweit wie ich mir das vorgestellt habe und ist für D5 bereits implementiert (Case Struckutr links mit Queue).
Wenn ich das jetzt für jedes Diagramm einzeln erstelle, wird das VI meiner Meinung nach nur noch unübersichtlicher.
Auch wenn ich ein SubVI daraus erstelle, bleiben immer noch die vielen Queues.

Habt ihr eine Idee wie ich das schöner/besser gestalten kann? Gerne auch bezogen auf alles was ihr seht.

Ich hatte mir überlegt die größere rechte Casestruktur durch eine Eventstruktur zu ersetzen, aus irgendeinem Grund wurden die Diagramme
dann aber nicht mehr mit Werten gefüllt.Das ist aber ein anderes Thema.

Vielen Dank schonmal im Voraus.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.04.2016, 16:56
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hallo Carp,

herzlich willkommen im Forum!

Zitat:Soweit ich das beurteilen kann, ist das Programm sehr unsauber und teilweise verwirrend (für mich) gestaltet wurden. Beispielsweise ist das Main VI ca. 8 Bildschirme groß und es ist wenig bis gar nicht kommentiert.
Ich würde damit anfangen, dieses MainVI aufzuräumen und in sinnvolle subVIs zu gliedern.
Erst wenn das geschafft ist und die Funktion dann immer noch gegeben ist, würde ich mich um das Hinzufügen weiterer Funktionen kümmern!

Zitat:Wenn ich einfach nur die Bildlaufleiste hinzufüge, springt mir der Graph bei jeder Aktualisierung zurück zum neusten Wert.
Probiere mal die Autoskalierung der X-Achse zu deaktivieren…

Zitat:Habt ihr eine Idee wie ich das schöner/besser gestalten kann?
In meiner Software gibt es einen globalen Datenspeicher, der die letzten 15-60min an Messdaten vorhält (je nach Rechenleistung). Daraus werden dann die jeweils benötigten Messdaten geholt und in Graphen (!) dargestellt. Ist etwas mehr initialer Aufwand, dafür aber recht flexibel…
(Die Messdaten selbst sind je Messkanal in einem 1D-Array abgelegt. Die Messkanäle werden in Variant-Attributen verwaltet.)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2016, 19:42
Beitrag #3

Carp Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2016

2014
2015
DE



RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Vielen Dank für deine schnelle Antwort Gerd!

Mein erster Gedanke war auch das MainVI aufzuräumen. Aufgrund meiner er dürftig vorhanden Kenntnisse, stelle ich mir das aber sehr Zeitaufwendig vor. Und Zeit ist eine Ressource die bei mir Momentan nur begrenzt vorhanden ist. Trotzdem möchte ich da wo es geht natürlich verbessern. Deshalb auch meine Frage ob ihr explizite Vorschläge für den angehängten VI Ausschnitt habt. Ich denke, dass ich mit meinem derzeitigen Know-How zwar die reinen Funktionen implementieren kann, aber es dadurch nicht grade schöner wird.
Vielleicht könntet ihr mir einmal ein paar Tipps geben, wie ihr diesen Bereich "aufräumen" würdet. Einfach damit ich mal ein bisschen inspiriert werde wie man so etwas angeht.

Autoscale ist aus. Sonst wäre doch die x-Bildlaufleiste eh überflüssig oder? Oder meinst du etwas anderes?
Wahrscheinlich habe ich mich unklar ausgedrückt deshalb noch mal ein neuer Versuch:
Das Diagramm ist z.B. auf der X-Achse von 0 bis 100 skaliert. Sobald das Maximum erreicht ist, erweitert sich ja der Bereich jeweils um den neusten Wert. Sprich 1 bis 101, 2 bis 102 usw.. Dafür möchte ich die Bildlaufleiste nutzen um beispielsweise wieder auf 0 bis 100 zu kommen. Solange ich die Leiste mit der Maustaste gedrückt halte, funktioniert das auch. Wenn ich die Maustaste loslasse, springt das Diagramm aber direkt zum neustens Wertebereich und läuft weiter. Ich möchte mir diesen Bereich aber etwas länger ansehen und außerdem nicht die ganze Zeit die Maus gedrückt halten. Aus diesem Grund die Queue als Puffer für die neusten Werte und der Stop Button. Wie gesagt: es funktioniert soweit wie ich es mir vorgestellt habe.
Jetzt ist es aber so, dass ich ca. 17 dieser Diagramme habe. In dem Screenshot habe ich meine Lösung nur für das Diagramm D5 realisiert. Wenn ich jetzt für jedes der 17 Diagramme meinen Lösungsweg beibehalte, wird das VI noch unübersichtlicher als es jetzt schon ist.
Meine Frage ist also: Gibt es einen anderen "besseren/schöneren" Weg meine Funktion zu realisieren?

Kannst du mir vielleicht deinen globalen Datenspeicher noch ein wenig genauer erläutern? Gern auch Links zum schlau machen zu diesem Thema.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.04.2016, 17:43 (Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2016 17:44 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hallo Carp,

Zitat:Mein erster Gedanke war auch das MainVI aufzuräumen.
Wenn das auch dein erster Gedanke war, dann solltest du diesen umsetzen.
Ein schlechtes Programm wird nicht dadurch besser, dass man noch weiteren Code hinzufügt!

Zitat:Wenn ich die Maustaste loslasse, springt das Diagramm aber direkt zum neustens Wertebereich und läuft weiter.
Das ist so eine Eigenart der Charts.
Lässt sich durch Nutzung von Graphen umgehen. Dann brauchst du sowieso einen eigenen Datenspeicher…

Zitat:Kannst du mir vielleicht deinen globalen Datenspeicher noch ein wenig genauer erläutern? Gern auch Links zum schlau machen zu diesem Thema.
Google mal nach "LabVIEw red black tree", dann findest du ein "Darrens Nugget" zum Thema…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.04.2016, 08:55 (Dieser Beitrag wurde zuletzt bearbeitet: 26.04.2016 08:59 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
(24.04.2016 13:08 )Carp schrieb:  Habt ihr eine Idee wie ich das schöner/besser gestalten kann? Gerne auch bezogen auf alles was ihr seht.
Durch Verwendung von mehr Clustern, den Funktionen Array2Cluster, Cluster2Array, Zusammenfassuung von Anzeigegruppen auf dem FP in Cluster ließe sich etwa 90% Draht auf dem BD einsparen und die benötigte Fläche drastisch verringern.
Vieleicht kannst Du einen Teil des VIs mal posten, dann könnte man das mal demonstrieren.
Wahnsinn ist auch das SubVI mit (gefühlt) 1000 Ausgängen. Solche Daten wird man immer als Clusterstrang ausgeben - und dann natürlich auch als Cluster weiterverarbeiten und auf dem FP darstellen.
Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.05.2016, 08:34
Beitrag #6

Carp Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2016

2014
2015
DE



RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hallo Lucki,
wenn auch ein bisschen verspätet. Im Anhang ist das teil VI (einfach ausgeschnitten) also nicht über das FP darin wundern.
Das eigentliche FP ist im Screenshot dargestellt. Ich hatte das mit den Clustern schonmal überlegt, es aber nicht geschafft die ganzen Diagramme zu clustern.
Deshalb gehe ich gerne auf dein Angebot bezüglich der Demonstration ein.
Vielen Dank schonmal Smile


Angehängte Datei(en) Thumbnail(s)
   

14.0 .vi  LVForum.vi (Größe: 64,03 KB / Downloads: 176)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.05.2016, 08:50
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hallo Carp,

"missing subVI Kali.vi"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.05.2016, 09:16
Beitrag #8

Carp Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2016

2014
2015
DE



RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hi,
im Anhang sind die enthaltenen SubVI´s im Zip. Hoffe dass es jetzt geht.
Falls es immer noch nicht geht, bitte ich um Hilfe. Smile


Angehängte Datei(en)
0.0 .zip  Kalibri.zip (Größe: 360,65 KB / Downloads: 147)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.05.2016, 09:36 (Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2016 09:40 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
Hallo Carp,

erste Hinweise:
- in Kali.vi liest du mit jeder Iteration erneut zwei Dateien ein: ändern die sich wirklich so oft? Würde es nicht ausreichen, diese einmal zum Start einzulesen?
- Diese Kalibrierwerte werden zu einem 1D-Array zusammengebaut. Warum wandelst du dieses Array in einen Cluster um, um dann den Cluster in seine Elemente zu zerlegen? Warum nicht einfach IndexArray???
- Alle "Kali Dxx.vi" sind identisch aufgebaut, nur die Rechenparameter sind unterschiedlich. Warum also so viele unterschiedliche subVIs? Warum nicht einfach ein subVI, welches noch zwei Inputs für die jeweilige Skalierung bekommt? Warum nicht diese Skalierungsparameter als 2D-Array bereitstellen? Warum keine FOR-Loop, die die Umrechnung über die nötigen Kanäle autoindizierend vornimmt?
- Warum FormulaNodes, um eine einfache Subtraktion zu berechnen? Hmm
- Es ist nicht gut, wenn Inputs/Outputs eines subVIs in Case-Strukturen versteckt werden. Die jeweiligen In/Out-Werte sind je nach aufgerufenem Case undefiniert! Grundregel: mit dem ConnectorPane verbundene FP-Elemente immer außerhalb aller Strukturen platzieren!
- Warum lokale Variablen in Kali.vi - wenn daneben die Terminals ungenutzt im BD liegen? ("Masse", "Temperatur")
- Warum wird der DAQmx-Task in Kali.vi andauernd gestartet und gestopp? Warum nicht einfach einen Task anlegen, der "auf Anforderung" Daten einliest?

Jetzt hast du erstmal genug aufzuräumen. Poste bitte dein Resultat nach diesen Änderungen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.05.2016, 14:50
Beitrag #10

Carp Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Apr 2016

2014
2015
DE



RE: X Bildlaufleiste bei Signalverlausdiagram stoppen
(10.05.2016 09:36 )GerdW schrieb:  Hallo Carp,

erste Hinweise:
- in Kali.vi liest du mit jeder Iteration erneut zwei Dateien ein: ändern die sich wirklich so oft? Würde es nicht ausreichen, diese einmal zum Start einzulesen?
=> es muss immer ein Wert vorhanden sein, theoretisch wäre es möglich einmal zu beginn einzulesen diesen zu speichern und dann nur bei Wertänderung neu einzulesen. Habe ich jetzt noch nicht realisiert und bin auch nicht sicher ob es soviel Sinn macht..

- Diese Kalibrierwerte werden zu einem 1D-Array zusammengebaut. Warum wandelst du dieses Array in einen Cluster um, um dann den Cluster in seine Elemente zu zerlegen? Warum nicht einfach IndexArray???
=> Warum kann ich nicht sagen, da ich das Programm so bekommen habe. Ist jetzt aber geändert.. gibt es dafür noch eine elegantere Methode als meine?

- Alle "Kali Dxx.vi" sind identisch aufgebaut, nur die Rechenparameter sind unterschiedlich. Warum also so viele unterschiedliche subVIs? Warum nicht einfach ein subVI, welches noch zwei Inputs für die jeweilige Skalierung bekommt? Warum nicht diese Skalierungsparameter als 2D-Array bereitstellen? Warum keine FOR-Loop, die die Umrechnung über die nötigen Kanäle autoindizierend vornimmt?
=> Kali habe ich komplett aufgeräumt und das was zusammen passt so wie von dir beschrieben gemacht. Danke dafür Smile

- Warum FormulaNodes, um eine einfache Subtraktion zu berechnen? Hmm
=> wie gesagt : war ich nicht und habe es geändert.

- Es ist nicht gut, wenn Inputs/Outputs eines subVIs in Case-Strukturen versteckt werden. Die jeweiligen In/Out-Werte sind je nach aufgerufenem Case undefiniert! Grundregel: mit dem ConnectorPane verbundene FP-Elemente immer außerhalb aller Strukturen platzieren!
=> danke für den Tipp. Erledigt.
Frage: Tunnel: Standardwert benutzen ( für den nicht genutzten Case), was ist in dem Fall ein Standardwert?

- Warum lokale Variablen in Kali.vi - wenn daneben die Terminals ungenutzt im BD liegen? ("Masse", "Temperatur")
=> behoben!

- Warum wird der DAQmx-Task in Kali.vi andauernd gestartet und gestopp? Warum nicht einfach einen Task anlegen, der "auf Anforderung" Daten einliest?
=> ab Start des Programmes sollen Daten kontinuierlich eingelesen werden.

Jetzt hast du erstmal genug aufzuräumen. Poste bitte dein Resultat nach diesen Änderungen!
=> Das Stimmt. Vielen Dank für die Tipps und bitte mehr davon Smile

Im Anhang befindet sich die neue Version.
Gibt es eine Möglichkeit eine Registerkarte in ein Cluster zu stecken ? Ich möchte die Diagramme gerne weiter zusammen fassen ohne das Layout stark zu verändern.

Wenn ich an das Ausgangsarray ''Messwerte'' vom SubVI ein arraytocluster hänge und dann unbundle, gibt er mir nur Anschlüsse für die Werte 0-8 und nicht bis 15 (eigentliche Array länge) ? Kann mir das einer erklären?

Ich brauch im Moment sehr lange für alles, da ich zur Zeit nur meine linke Hand zur Verfügung habe, was sehr mühselig ist. Daher danke für eure Geduld. Smile


Angehängte Datei(en)
0.0 .zip  New.zip (Größe: 262,17 KB / Downloads: 192)
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
  Schleife stoppen in subVI illy777 31 13.507 14.09.2020 18:00
Letzter Beitrag: illy777
  Bildlaufleiste simcum 6 3.816 27.08.2020 22:33
Letzter Beitrag: simcum
  Bildlaufleiste/Scrollbalken (einer Tabelle) verbreitern Horst 6 6.372 15.06.2020 09:34
Letzter Beitrag: Horst
  Bildlaufleiste vertauschen Hydrogencarbonat 2 3.220 25.04.2017 10:33
Letzter Beitrag: Hydrogencarbonat
  While Schleife stoppen itz_me 4 5.881 13.04.2017 14:47
Letzter Beitrag: itz_me
  Frage zu Lauflicht stoppen(vorübergehend) fuego50 4 4.330 23.05.2016 17:05
Letzter Beitrag: fuego50

Gehe zu: