LabVIEWForum.de
Compass - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Compass (/Thread-Compass)

Seiten: 1 2 3


Compass - Jenni - 06.12.2016 11:05

Hallo alle miteinander Smile

Ich habe mal wieder ein Problem, welches ich ohne eure Hilfe nicht lösen kann.
Es geht um den 2D Kompass.
Ich habe einen Schrittmotor und stelle mit Hilfe des Kompasses dar, wo sich der Motor gerade befindet (90°: Pfeil zeigt nach oben, 180°: Pfeil zeigt nach links, ..). Da dieser Motor keine Rückmeldung gibt, an welcher Position er sich gerade befindet, bestimme ich die Position durch den Iterationszähler der For Schleife.
Bis dahin funktioniert auch alles.
ABER ich führe zu Beginn jeder Messung eine Referenzfahrt durch (Schrittmotor auf Maschinennullpunkt). Somit müsste der Kompass zu Beginn der Messung nach rechts zeigen. Tut er aber nicht. Selbst wenn ich das VI zwischendurch schließe behält er die letzte Stellung des Zeigers bei.
Ich hätte gerne, dass sich der Kompass, wenn ich das VI starte resetet.
Wie stelle ich das an?

Liebe Grüße,
Jenni Smile


RE: Compass - GerdW - 06.12.2016 11:43

Hallo Jenni,

Zitat:Ich hätte gerne, dass sich der Kompass, wenn ich das VI starte resetet. Wie stelle ich das an?
Indem du den Kompass bei VI-Start neu zeichnest, mit einem Winkel von 0°…

THINK DATAFLOW!


RE: Compass - Jenni - 06.12.2016 11:56

Hallo Gerd,

genau das war auch mein Plan, allerdings kann ich ihn nicht erfolgreich umsetzen.
Ich habe versucht den Plot Helper in den Case "Achse setzen" zu kopieren und dann mit einem Array zu verbinden. Diesen habe ich dann wieder mit dem ursprünglichen Plot helper verbunden.
Aber das hat nichts an der Ausgabe geändert.
Wo liegt mein Fehler?


RE: Compass - GerdW - 06.12.2016 12:54

Hallo Jenni,

du hast ja da eine (Art von) Statemachine programmiert: wenn du eine Anzeige aus mehreren States heraus bedienen willst, sollte diese Anzeige nicht im State, sondern in der umgebenden While-Loop liegen… (THINK DATAFLOW!)


RE: Compass - Jenni - 06.12.2016 13:56

Hallo Gerd,

mir ist irgendwie immer noch nicht ganz klar, wie ich die Plot Helper miteinander verbinden kann.
Zum Dataflow: Ich möchte ja zu Beginn den Vektor mit dem Winkel 0° haben zusammen mit den vier weiteren Vektoren, die die Achsen darstellen.
Danach soll der Vektor die Position anzeigen.
Deshalb ist ein Plot Helper außerhalb der Case Struktur. Das ist mir nun klar.
Ich habe nun verschiedene Verbindungen ausprobiert, aber bekomme nicht das gewünschte Ergebnis..
Ich habe mal ein Screenshot von meinem letzten Versuch angehängt.


RE: Compass - GerdW - 06.12.2016 14:03

Hallo Jenni,

THINK DATAFLOW!

Zitat:Deshalb ist ein Plot Helper außerhalb der Case Struktur. Das ist mir nun klar.
Und was soll er dort machen?
Die damit erzeugten Plotdaten (das Plotobjekt) werden per Draht zu einem anderen PlotHelper geführt, der nur im speziellen Case aufgerufen wird. Und das Ergebnis dieses PlotHelpers wird NIRGENDWO dargestellt…
Also nochmal die Frage: Was willst du mit diesen Drähten erreichen?

Zitat:Ich habe nun verschiedene Verbindungen ausprobiert, aber bekomme nicht das gewünschte Ergebnis..
Wenn ein Indicator aktualisiert werden soll, muss er entsprechende Daten bekommen. Dein Indicator bekommt momentan nur Daten im Case mit den jeweiligen Messwerten: THINK DATAFLOW!
(Ich meine den Indicator, der in deinem BD kein Label hat - wieso eigentlich?)


RE: Compass - Jenni - 06.12.2016 14:18

Hallo Gerd,

ich wollt emit den Drähten erreichen, dass die Werte für den Winkel aktualisiert werden, also erst den Winkel 0° zeigen und dann die Winkel der aktuellen Position.

Also muss ich den Indikator (Ich hab das Label nur nicht sichtbar gemacht, da es so viel Platz wegnimmt Smile) außerhalb der Case Struktur und in der While Schleife platzieren?


RE: Compass - GerdW - 06.12.2016 14:29

Hallo Jenni,

Zitat:ich wollt emit den Drähten erreichen, dass die Werte für den Winkel aktualisiert werden, also erst den Winkel 0° zeigen und dann die Winkel der aktuellen Position.
Aha: Du erzeugst Daten, die dann nie in einen Indicator geschoben werden…

Wie war das mit THINK DATAFLOW!?

Zitat:Also muss ich den Indikator außerhalb der Case Struktur und in der While Schleife platzieren?
Du musst ihn so platzieren, dass du von mehreren States aus Daten hineinschieben kannst: THINK DATAFLOW!
Ja: in der Whileloop, ja: aus dem Case heraus.

Zitat:Ich hab das Label nur nicht sichtbar gemacht, da es so viel Platz wegnimmt
Auch in anderen Programmiersprachen gilt: kurze und prägnante Variablennamen! Warum nicht auch in LabVIEW?
Wenn du auf dem FP längere Texte schreiben willst: dafür gibt es die Untertitel/Captions!


RE: Compass - Jenni - 06.12.2016 14:34

Hallo Gerd,

Zitat: Ja: in der Whileloop, ja: aus dem Case heraus.

Das habe ich nun gemacht, der Vektor mit den 0° wird auch angezeigt und auch mein Koordinatensystem, allerdings nicht mehr die Vektoren, die die aktuelle Position anzeigen.

Zitat:Wenn du auf dem FP längere Texte schreiben willst: dafür gibt es die Untertitel/Captions!

Danke, wieder etwas gelernt! Smile


RE: Compass - Jenni - 12.12.2016 09:21

Hallo zusammen,

kann mir vllt noch jemand bei meinem Problem helfen?
Ich verstehe noch nicht, wie ich es schaffen kann, dass der Graph die akutellen Daten aus der While Schleife anzeigt, allerdings nicht selber in der While Schleife sitzt.

Liebe Grüße,
Jenni