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!
ich arbeite gerade an meinem ersten Projekt und habe ein Problem.
Und zwar lese ich über ein DAQ einene Drehgeber und einen Hall-Sensor aus. Von beiden erhalte ich eine Winkelposition.
Auf der y-Achse will ich die Position des Drehgebers darstellen und auf der x-Achse die Differenz der beiden (Winkelfehler).
Folgende Problem habe ich:
Beim Anschluß der beiden Datenwerte an einen xy-Graphen wird mir ein Fehler angezeigt. Es heißt es seinen unterschiedliche Datentypen angeschlossen. Ich habe schon versucht die Datentypen anzupassen leider änderte es nichts.
viele grüße
Anzeige
11.02.2013, 15:54 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2013 15:55 von GerdW.)
Mit der Kontexthilfe habe ich schon gearbeitet! Bei einer nummersichen Anzeige, bekomme ich auch Werte angezeigt. Nur scheitere ich eben an einer graphischen Ausgabe...
12.02.2013, 09:09 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2013 09:10 von GerdW.)
dein VI enthält keinen XY-Graphen! Wie soll man da Fehler korrigieren?
Siehe Anhang für einen groben (!) Entwurf. Ein Graph verlangt Daten in Form von Arrays - wie es in der Kontexthilfe steht, die du ja wohl gelesen hattest. Du musst also deine skalaren Messwerte in Arrays sammeln!!! (Alternativ könnte man natürlich auch mehr als nur ein Sample pro DAQmxRead abfragen...)
Dieses Beispiel hat aber noch Bugs:
- Deine zwei Schleifen laufen unterschiedlich schnell: eine mit Timing, die andere ungebremst. Warum?
- Ich habe die SRs nicht initialisiert...
- Der Speicher könnte dir momentan volllaufen...
Leider bin ich heute vormittag nicht sehr viel weiter gekommen.
Sobald ich das Programm starte könnte man meinen es funktioniert, doch habe ich immer wieder größe Sprünge in meinem Graphen.
Wenn ich die Werte ausgebe sehen diese aber richtig aus.
Kann es sein das es an meinem Drehgeber liegt oder an der initiallisierung der Schieberegister.
- deine beiden Schleifen laufen nicht synchron: das kann zu "Sprüngen" im gewünschten Signal führen...
- du fragst zwar in beiden Schleifen "N Samples" ab, gibst aber nicht an, wieviele Samples es pro Abfrage sein sollen...
- du hast bei keiner der beiden Schleifen eine Samplerate definiert...
...
Nun hätte ich noch eine Frage wie ich meine beiden Signale abgleichen kann.
Und zwar habe ich ja einen Hall-Sensor und den Drehgeber. Da der Hall-Sensor immer seine aktuelle Position ausgibt aber der Drehgeber bei null zu zählen anfängt, möchte ich jetzt den Hall-Sensor Wert an den Drehgeber übergeben.
Ich habe es versucht über den Anfangswinkel das Sensor Signal dem Drehgeber zu übermitteln, jedoch kommt Labview mit dieser Aufgabe nicht ganz klar.
Gibt es noch andere möglichkeiten den Anfangswinkel dem Drehgeber zu übermitteln.
Desweitern möchte ich beim zweiten erreichen von 360Grad die Aufzeichnung stoppen.
Kann ich dies über eine While-Schleife realisieren ? Bin aber noch nicht ganz sicher über was ich die Schleife legen soll.
dies hört sich nach einer "Indizier"-Messung an: du willst immer dann, wenn dein Drehgeber einen Impuls abgibt den dazu passenden Wert des Hallsensors speichern.
Dies erreicht man, indem man den Drehgeber als Triggerquelle für den Sensor verwendet. Dieser wird also nicht mit fester Taktrate (wie bei dir programmiert), sondern mit dem Takt des Drehgebers abgetastet. Dazu findest du Beispiele im Beispielfinder...
Ich möchte beim Starten des Programms die aktuelle Winkelposition, die der Hall Sensor ausgibt, dem Drehgeber übergeben, bzw diese als Startwert für den Drehgeber festlegen! Die Ausgabe beim Hall Sensor ist linear, also bei einer bestimmten Spannung X (z.B. 2V) wird der Winkel Y (z.B. 156°) ausgeben. Diesen Winkel möchte ich beim Start des VI´s dem Drehgeber zuweisen. Ich möchste sozusagen einen Abgleich machen. Danach sollen sie wieder unabhängig von einander Messen.