LabVIEWForum.de
Signal differenzieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Signal differenzieren (/Thread-Signal-differenzieren)



Signal differenzieren - joachim3 - 28.02.2014 12:18

Sehr geehrte LabViewForum-Community!

Für ein Schulprojekt soll ich das Interface für einen 24V Gleichstromservomotor schreiben, den wir über den Servomotorcontroller LM629n ansteuern (für die Parametrierung verwenden wir noch einen Atmega32 als Host-µC). Aber da ich mich nicht wirklich mehr raussehe aus dem Auftrag, hoffe ich auf Hilfe eurer Seite.

Bis jetzt habe ich das Programm soweit, dass ich die Werte problemlos ein- bzw. auslesen kann. (Die Combo-Box hab ich für den Zweck, dass ich nicht immer alle Parameter mühevoll eingeben muss...)

Nun zum Problem: Da ich die Position in Inkrementen einlesen kann (weil wir einen Inkrementalgeber haben), sollte es möglich sein diese zu differenzieren und so zur Geschwindigkeit zu kommen, aber ich habe keinen Plan wie ich das angehen soll...
Ich muss nämlich in nem Grafen die Geschwindigkit pro Zeit abbilden können und nicht Position pro Zeit.

Im Anhang befindet sich noch mein Programm.



Mit freundlichen Grüßen | Best Regards
Joachim Hofer


RE: Signal differenzieren - GerdW - 28.02.2014 12:38

Hallo Joachim,

Zitat:Im Anhang befindet sich noch mein Programm.
Wo?

Zitat:diese zu differenzieren und so zur Geschwindigkeit zu kommen, aber ich habe keinen Plan wie ich das angehen soll...
In einem Schieberegister den vorigen Positionswert speichern. Beim nächsten Auslesen der Position die Differenz zum alten Wert bilden und durch die vergangenene Zeit dividieren. Fertig.


RE: Signal differenzieren - joachim3 - 28.02.2014 12:48

Hab das Programm jetzt in den Anhang gehängt und danke für den Tipp. Werds mal versuchen.

Mit freundlichen Grüßen | Best Regards
Joachim Hofer


RE: Signal differenzieren - GerdW - 28.02.2014 12:53

Hallo Joachim,

so in etwa:
[attachment=48755]

Da du den TermChar benutzt, habe ich das dann unnötige (und fehlerhaft implementierte) BytesAtPort entfernt!


RE: Signal differenzieren - joachim3 - 28.02.2014 13:02

Danke für die schnelle Antwort, werds gleich mal nachprogrammieren und es anschließend gleich ausprobieren.

MfG. Joachim Hofer


RE: Signal differenzieren - Lucki - 28.02.2014 15:35

(28.02.2014 12:18 )joachim3 schrieb:  Da ich die Position in Inkrementen einlesen kann (weil wir einen Inkrementalgeber haben), sollte es möglich sein diese zu differenzieren und so zur Geschwindigkeit zu kommen, aber ich habe keinen Plan wie ich das angehen soll...
Könnte man machen, aber warum das, wenn man aus dem LM629n (Hier Datenblatt) während der Fahrt sowohl die momentane absolute Position als auch die momentane reale Geschwindigkeit direkt auslesen kann? Der Encoder für den Inkremetalgeber ist ja bereits im LM629 drin, es wäre doch absolut schwachsinnig, nochmal parallel dazu eine zweite Dekoder-Hardware anzuschließen, nur um dann mit der Auswertung der Impulse das zu machen, was bereits der LM629n mundgerecht liefert.

In der Visa-Konfiguration muss "Zeilenendezeichen" deaktiviert werden, da der LM629n kein Abschlußzeichen mitliefert, sondern nur die reinen Bytes.
Edit: Der LM629n selbst hat eine parallele Schnittstelle. Der erwähnte Mikrocontroller macht wohl ein reine Parallel <--> Serial-Konversion, oder macht er sonst noch etwas mit den durchgeleiteten Daten?


RE: Signal differenzieren - joachim3 - 03.03.2014 11:30

Der LM629n gibt mir aber nur ein Trapezsignal für die Geschwindigkeit. Ich brauche aber die Geschwindigkeit in Abhängigkeit der Zeit vom Einheitssprung aus betrachtet...


RE: Signal differenzieren - Lucki - 03.03.2014 14:44

Lt. Datenblatt kann man den Momentanwert der Geschwindigkeit auslesen, und zwar "on the fly". Ein kompletter Lesevorgang an der parallelen Schnittstelle dauert ca. 1 µs, wenn es sein muß könnte man die momentane Geschwindigkeit aus der parallelen Schnittstelle 10E6 mal/s lesen. Mit Datenkonvertierung zu seriell mindestens noch 1E3 mal/s.
Wenn Du jetzt aber schreibst "Der LM629n gibt mir aber nur ein Trapezsignal für die Geschwindigkeit" - dann fällt mir dazu nichts mehr ein, und möglicherweise hält dieser Zustand den ganzen Thread hindurch an Big Grin