Hallo,
ich bin LabVIEW Anfänger und versuche jetzt schon eine ganze Zeit lang den SV Graph genauso aussehen zu lassen wie das Diagramm. Ich habe auch ein LabVIEW Beispiel dazu gefunden, leider nur mit der Version12.
Ich versuche, dass der Graph genauso aussieht wie das Diagramm damit ich nach einem Tastendruck den Graphen anhalten kann und mit Cursorn messen kann während das Diagramm weiterläuft.
Leider zeigt mir der Graph nur die ersten Werte an und hört dann auf.
Eigentlich sollte das Programm auch unendlich weiterlaufen, aber da ich dann 2 Whileschleifen ineinander hätte ist dort nun erstmal eine For Schleife.
Das mit dem Schieberegister hab ich versucht von dem LabVIEW Beispiel abzugucken, da ich aber nur ein Bild hatte und kein Programm ist das glaub ich nicht richtig.
Hallo Pia,
das Problem könnte mit deinem STOPP-Button zusammenhängen: die innere Schleife wird erst beendet, wenn du STOPP drückst. Damit wird die äußere aber auch gleich beendet - THINK DATAFLOW!
- Außerdem ist die Art und Weise, wie du ein Array in der inneren Schleife aufbaust, etwas buggy: neue Daten werden hinten ans Array angehängt. Wenn das Array 100k Elemente enthält, wird das neueste gleich wieder entfernt. Und im Case willst du dann das erste Element indizieren - welches aber das älteste ist…
- Die innere Schleife läuft ungebremst - warum?
- Die innere Schleife blockiert das ganze VI - wozu?
Hallo Pia,
ich habe mal dein VI etwas modifiziert und hoffe, dass das VI jetzt die richtige Funktionalität besitzt, die du willst.
Vielen Dank MEng Thomas!
Genau so sollte es sein!
Jetzt ist da nur noch das Problem, dass wenn ich das Programm einmal gestoppt habe und es dann wieder laufen lassen will, den Graphen quasi wieder wegradiert.
Hallo Pia,
entschuldige, ich habe im Eifer des Gefechtes vergessen, dass das eine Schieberegister keinen Initialisierungswert hatte. Jetzt klappt es!
Super, vielen lieben Dank!
Kannst du vielleicht noch kurz sagen was das mit dem Case-Fällen auf sich hat?
Bin erst seit zwei Woche mit LabVIEW am Gange..
Ich habe aus deim Code herausgelesen, dass im Signalverlaufsgraph nicht mehr als 10000 Werte enthalten sein sollen.
Daher muss der Anfangszeitstempel t0 dann, wenn es mehr Wert sind und der Anfang des Signal abgeschnitten wird, dieser Zeitstempel dann nachgezogen werden. Das Nachziehen ist die Aufgabe des Cases.
Hallo,
ich habe schon wieder ein neues Problem, leider kann ich mein großes VI nicht posten..
Ich will mir das Diagramm nochmal genauso als Graph anzeigen lassen.
Das Diagramm hat als x-Achse eine relative Zeit (irgendwas mit 980000:00), das habe ich auch bei dem Graphen eingestellt.
Dann habe ich -siehe das SubVI unten- die Achsen gleichgesetzt, damit ich auch immer genau den gleichen Abschnitt der x-Achse sehe.
Allerdings zeichnet der Graph dann nichts mehr. Erst wenn ich ihn auf Autoskalierung setzte und die Achsengleichsetztung deaktiviere zeichnet er etwas von 00:00 bis zur Zeit wie lange das Programm läuft, allerdings wird jetzt der gezeigte x-Achsenabschnitt immer größer und bleibt nicht gleich..
Das 2. SubVI ist die Hilfe auf meine vorherige Frage zum Erstellen von einem Graph der genauso aussieht wie das Diagramm.
t0 und das Array werden hierbei an ein Schieberegister angeschlossen.
Weiß einer Rat?
Hallo Pia,
da du dich ja auf deinen vorigen Thread beziehst, habe ich deine neue Message auch in diesen verschoben…
Zitat: leider kann ich mein großes VI nicht posten..
Aber ein einfaches BeispielVI mit deinem Chart und Graph wäre sinnvoll…
Zitat:Das Diagramm hat als x-Achse eine relative Zeit (irgendwas mit 980000:00), das habe ich auch bei dem Graphen eingestellt.
Dann habe ich -siehe das SubVI unten- die Achsen gleichgesetzt, damit ich auch immer genau den gleichen Abschnitt der x-Achse sehe. Allerdings zeichnet der Graph dann nichts mehr. Erst wenn ich ihn auf Autoskalierung setzte und die Achsengleichsetztung deaktiviere zeichnet er etwas
Welche Werte setzt du denn als X-Achse (Min/Max) genau? Kommen diese Werte denn auch (im Zeitbereich) in deiner Waveform vor?
Zitat:Das 2. SubVI ist die Hilfe auf meine vorherige Frage zum Erstellen von einem Graph der genauso aussieht wie das Diagramm.
t0 und das Array werden hierbei an ein Schieberegister angeschlossen.
Warum hast du hier DDT als Input und Output? Warum arbeitest du nicht durchgängig mit Waveforms?
Dieses ständige "von/nach DDT konvertieren" hilft dir
garantiert nicht, dein Programm/LabVIEW allgemein/dieses Problem zu verstehen!
Wo kommt "t0 2" her? Warum addierst du bei mehr als 16100 Samples eine 100ms zum Timestamp?