Forum: Mikrocontroller und Digitale Elektronik Heidenhain Glasmaßstab an Arduino?


von Burkhard M. (burkhard_m)


Lesenswert?

Hallo!

Ich möchte gerne zwei Heidenhain LS403 mit 20 µm Teilung zählen und dann 
an einem Arduino oder ähnlichem ausgeben und bearbeiten.

Die Maßstäbe sind an einem Messgerät für Werkzeuge und wird "nur" mit 
Hand bewegt, also nicht wirklich schnell, aber es sollten keine Signale 
verloren gehen.

Den Index muss ich auch auslesen, aber das ist wohl das kleinere Problem

Mein Problem ist nur wie bekomme ich die Signale in den Arduino?
Im Arduino dann hätte ich keine Probleme mehr.

Ich habe von RS 485 Wandlern gelesen, die man dann an den Arduino 
sendet, aber ich blicke nicht wirklich durch in diesem Fall.

von Wolfgang (Gast)


Lesenswert?

Burkhard M. schrieb:
> Ich habe von RS 485 Wandlern gelesen, die man dann an den Arduino
> sendet, aber ich blicke nicht wirklich durch in diesem Fall.

Dann verlinke doch mal ein vernünftiges Datenblatt zu dem Teil und 
verrate auch gleich, was du als "nicht wirklich schnell" (in cm/s) 
bezeichnest. Was meisnt du mit 20µm Teilung? Hast du eine Auflösung von 
20µm oder ist das die Periode der Gebersignale.

von Burkhard M. (burkhard_m)


Lesenswert?

http://www.fbmsrl.com/docs/441/Istruzioni%20di%20montaggio%20LS%20403%20-%20LS%20403C.pdf

Auf der Seite 14 und 15 sind die Daten.

Ich dachte an max. 2m/s


Ich danke schon im Vorraus
burkhard

edit:
Verzeihung habe das falsch verstanden. Das mit dem Wandler kann ich 
leider nicht mehr finden!

: Bearbeitet durch User
von mögig (Gast)


Lesenswert?

Burkhard M. schrieb:
> Ich dachte an max. 2m/s

Das ist zuviel. Im Datenblatt lese ich max. 48m/min ergo max. 0,8m/s

Gruß,
mögig

von Burkhard M. (burkhard_m)


Lesenswert?

Oh da hab ich mich vertan.

Die Mechanik mit den Gegengewichten in der Maschine geht ja gar nicht so 
schnell. D:
Habs grad ausprobiert und es lässt sich nur mit ca. 0,4m/s verschieben

sorry

von Max M. (jens2001)


Lesenswert?

Burkhard M. schrieb:
> dachte an max. 2m/s

Mit dachte is das so ne Sache!
RTFM!

Der Masstab liefert 2 90Grad versetzte Sinus.
Schmitt-Trigger drann.
Zum Thema "Quadratur-Encoder" gibts genug Treads!

von benedikt S (Gast)


Lesenswert?

0,8m/s mit einer Teilung von 20µm ergeben sich 40000Hz du musst drei 
Kanäle(Kanal 1, Kanal 2 und die Refferenz Position) Sampeln also 120kSa. 
Das wird übel mit einem Arduino.

Außerdem musst du noch eine OPV Schaltung bauen, die das Signal auf 
einen für den ADC Sinnvollen Pegel konvertiert.

Du könntest natürlich auch eine Komperatorschaltung bauen, die die 
Sinussignale in Rechtecke umformt und nur die Refferenz Sampeln.

Hast du die Heidenhein Auswerte Elektronik, oder nur den Sensor?

von Wolfgang (Gast)


Lesenswert?

benedikt S schrieb:
> 0,8m/s mit einer Teilung von 20µm ergeben sich 40000Hz du musst drei
> Kanäle(Kanal 1, Kanal 2 und die Refferenz Position) Sampeln also 120kSa.
> Das wird übel mit einem Arduino.

Warum?
Der Arduino Due macht das doch locker in Hardware.

von Burkhard M. (burkhard_m)


Lesenswert?

Max M. schrieb:
> RTFM!

True story.



Max M. schrieb:
> "Quadratur-Encoder"

Das klingt nach erster Recherche schon sehr gut.


benedikt S schrieb:
> Das wird übel mit einem Arduino.

Den Referenzeingang muss ich ja nicht samplen?
Ich möchte nur nach dem Einschalten wissen, wo die Geschichte steht.
Dann zähle ich ja die Bewegung dazu/weg.
Der genannte Schmitt-Trigger bringt das Signal ja auch auf ein 
nützliches Niveau?

benedikt S schrieb:
> Hast du die Heidenhein Auswerte Elektronik, oder nur den Sensor?
Auswertung habe ich nur von einem anderen Projekt(eine EXE 700, ist aber 
für Drehgeber)
Die alte Auswertung ist eben leider nicht mehr zuverlässig, da sie sich 
manchmal verrechnet

danke
burkhard

edit:
Die alte Auswertung ist nicht von Heidenhain.

: Bearbeitet durch User
von hinz (Gast)


Lesenswert?

Max M. schrieb:
> Schmitt-Trigger drann.

Nö, Komparator mit geringer Offsetspannung.

von Max M. (jens2001)


Lesenswert?

hinz schrieb:
> Nö, Komparator mit geringer Offsetspannung.

Warum?

von Max M. (jens2001)


Lesenswert?

0,8m/s und 0,00002m Periode ergeben 160000 Flankenwechsel/s.
Das könnte eng werden für den Arduino.

von Burkhard M. (burkhard_m)


Lesenswert?

Welche Aufbereitung des Signals scheint eine Streitfrage zu sein :D

Gibt es etwas "fertiges" was einem die Impulse zählt?
Im sinne eines IC's

Max M. schrieb:
> Das könnte eng werden für den Arduino.
Wobei 0,8m/s ja nicht vorkommen.

Nur natürlich wenn ihm etwas engeht hab ich ein Problem.

von Wolfgang (Gast)


Lesenswert?

Max M. schrieb:
> Das könnte eng werden für den Arduino.

Nein, ein Arduino kann deutlich mehr. Ich habe selber zumindest einen 
Drehgeber mit 400000 Flanken/s schon am Due dran gehabt.

von Wolfgang (Gast)


Lesenswert?

Burkhard M. schrieb:
> Gibt es etwas "fertiges" was einem die Impulse zählt?

Der Zähler in einem Arduino?

Saubere Digitalsignal musst man aus dem was da aus dem Geber raus kommt, 
allerdings schon machen.

von hinz (Gast)


Lesenswert?

Max M. schrieb:
> hinz schrieb:
>> Nö, Komparator mit geringer Offsetspannung.
>
> Warum?

Diffenzielles Signal von ein paar mV Amplitude.

von Burkhard M. (burkhard_m)


Lesenswert?

Das klingt schon gut.


Nein ich meinte ob es einen externen IC gibt, der sowas macht.

Zum Zählen im Arduino selbst werd ich wohl mit den Registern spielen, da 
digitalRead() ja zu langsam sein wird?

Kann ich einen Vorgang damit überwachen?
1
attachInterrupt(0, A_CHANGE, CHANGE);
2
attachInterrupt(1, B_CHANGE, CHANGE);

burkhard

von Wolfgang (Gast)


Lesenswert?

Burkhard M. schrieb:
> Zum Zählen im Arduino selbst werd ich wohl mit den Registern spielen, da
> digitalRead() ja zu langsam sein wird?

Der Arduino Due hat die Hardware zum Auswerten des Quadratursignales 
integriert und kann damit direkt einen Zähler takten. Dafür braucht man 
keinen Interrupt und keine Software (außer für die Initialisierung der 
Register). Der Prozessor ist während des Betriebs völlig frei für andere 
Aufgaben.

von hinz (Gast)


Lesenswert?

Burkhard M. schrieb:
> Gibt es etwas "fertiges" was einem die Impulse zählt?
> Im sinne eines IC's

Zumindest den Encoder gibts fertig:

Der H8/3003 und H8S (2 Kanäle) H8SX (4 Kanäle), ATXmega (3 Kanäle bis 
Osz/4) und STM32F4 (6 Kanäle) machen das in Hardware, externe ICs gibt's 
dafür auch:

    http://www.lsicsi.com/encoders.htm 
(LS7082/7083/7084/7182/7183/7166/7266/7366)
    http://www.avagotech.com/docs/5988-5895EN 
(HCTL2000/2016/2020/2022/2032)

(aus der dse-FAQ)

von Benedikt S. (benedikt_s)


Lesenswert?

Guck mal nach einem asynchronzähler

von Burkhard M. (burkhard_m)


Lesenswert?

Arduino Due klingt gut.

Da bräuchte ich "nur" mehr zwei Komperatoren mit OPV
Kann mir da jemand bei der Auswahl helfen?
Bin auf dem Gebiet nicht so "frisch"



hinz schrieb:
> Zumindest den Encoder gibts fertig:

Blöde Frage, aber woher bekomme ich diese IC's?
Beim Tekkie seit 1923 find ich davon nichts


Asynchronzähler zählen nicht so weit?

von Wolfgang (Gast)


Lesenswert?

Burkhard M. schrieb:
> Asynchronzähler zählen nicht so weit?

Wie weit willst du denn zählen?
Um einen µC kommst du doch sowieso nicht rum, oder was willst du mit den 
Zähldaten anstellen?

von Mi N. (msx)


Lesenswert?

Burkhard M. schrieb:
> Nein ich meinte ob es einen externen IC gibt, der sowas macht.

Ich kann Dir ATmega48 programmieren (32 Bit Zähler mit 0,2 µm Auflösung 
bei Sinussignalen), oder Du nimmst einen ATtiny25: 
http://mino-elektronik.de/mt12_iic/mt12_iic.htm
Beide werden per IIC-Bus abgefragt.

Alternativ kann ich Dir THCT12024 anbieten (schenken gegen Übernahme von 
Porto). Diese haben 24 Bit Zähler und einen 8-Bit Datenbus.

von hinz (Gast)


Lesenswert?

Burkhard M. schrieb:
> Blöde Frage, aber woher bekomme ich diese IC's?
> Beim Tekkie seit 1923 find ich davon nichts

Da wirst du vieles vergeblich suchen. Aber es gibt ja Farnell, RS, 
Mouser, Digikey....

von Burkhard M. (burkhard_m)


Lesenswert?

Danke für die Infos!

Ich werde mich mit Mi No in Verbindung setzen und vermutlich auf seine 
Lösung zurückgreifen.

burkhard

von Burkhard M. (burkhard_m)


Lesenswert?

Wolfgang schrieb:
> Wie weit willst du denn zählen?
> Um einen µC kommst du doch sowieso nicht rum, oder was willst du mit den
> Zähldaten anstellen?


20µm hat der Glasmaßstab
Ausgewertet soll bis 1µm werden.
Das müsste sich ja interpolieren lassen
60cm Verfahrweg wären dann 600.000 Signale wenn ich das richtig 
aufgefasst habe..

Ja den µC brauch ich um die Werte anzuzeigen oder zum Nullstellen, 
mehrere Werte zu speichern und ggf. an einen PC weitergeben

von Wolfgang (Gast)


Lesenswert?

Burkhard M. schrieb:
> 20µm hat der Glasmaßstab
> Ausgewertet soll bis 1µm werden.
> Das müsste sich ja interpolieren lassen
> 60cm Verfahrweg wären dann 600.000 Signale wenn ich das richtig
> aufgefasst habe..

Brauchst du die 1µm während das Ding zügig verfährt?
Sonst würde es doch reichen, das Quadatursignal zu digitalisieren, damit 
die digitale Encoder- un Zähllogik anzusteuern und wenn das Ding steht, 
eine Analogmessung mit Phasenauswertung nachzuschieben.

Der Zähler braucht nur die unteren paar Bits zu erfassen und kann bei 
Überlauf über Software die höheren Bits zählen.

von Burkhard M. (burkhard_m)


Lesenswert?

Das genaue Signal brauche ich nur wenn das Ding steht.

Ja das kann auch nachher(im Stehen) ausgewertet werden.
Das geht auch, wie du meinst.
Dass wenn der sich vollgezält hat der µC den vollen Wert bei sich 
speichert.
Dann hat der µC ja nur mehr einen Bruchteil zu tun.
Und so wie er es schafft würde er den Zähler auslesen.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Du hast aber gesehen, dass der Messkopf Stromsignale liefert und keine 
Spannung? Ich würde an deiner Stelle bei IC-Haus oder Gemac nach 
passenden Interpolator-ICs schauen. Die kann man dann per SPI auslesen. 
Das ist deutlich einfacher und genauer als wenn man das komplett selbst 
macht. Das Übereinanderlegen der Zählimpulse und der Feininterpolation 
ist in der Praxis nicht so einfach wie man sich das anfangs vorstellt. 
Zumindest wenn das nicht nur im Stillstand passieren soll.

Mit freundlichen Grüßen
Thorsten Ostermann

von Wolfgang (Gast)


Lesenswert?

Thorsten O. schrieb:
> Du hast aber gesehen, dass der Messkopf Stromsignale liefert und keine
> Spannung?

Seit der Erfindung des Widerstandes (ak. Bürde) sollte damit irgendwie 
klar zu kommen sein ;-)

Thorsten O. schrieb:
> Zumindest wenn das nicht nur im Stillstand passieren soll.

Es muss aber nicht in der Bewegung passieren. Und im Stillstand kann man 
das Signal ganz gemütlich mit dem ADC messen und auswerten, so man dann 
Amplitude und Offset kennt. 1/20 oder einfacher 1/32 ist nun auch nicht 
die Feinstauflösung. Da kommt man locker mit effektiven 8 Bit ADC 
zurecht.

von Mi N. (msx)


Lesenswert?

Wolfgang schrieb:
> Seit der Erfindung des Widerstandes (ak. Bürde) sollte damit irgendwie
> klar zu kommen sein ;-)

Ein OPV als Strom/Spannungswandler ist schon notwendig.

> Und im Stillstand kann man
> das Signal ganz gemütlich mit dem ADC messen und auswerten

Warte mal ab, bis die Spezies auftauchen, die ein Pendeln, Zittern, 
Surren, Schwirren, ... usw. entdecken und Fehlzählungen unterstellen ;-)


> 1/20 oder einfacher 1/32 ist nun auch nicht
> die Feinstauflösung.

Für 1 µm Auflösung reicht bei 4-fach Auswertung eine 5-fach 
Interpolation.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.