Forum: Mikrocontroller und Digitale Elektronik Idee zu Prüfsystem


von Martin_gast (Gast)


Lesenswert?

Hallo zusammen,

es geht um folgende:
Ich habe eine Coescheibe, die 512 Schlitze hat.
Die Codescheibe ist in einem Inkremtal Encoder aufgebaut.
Mir geht es darum: Wie kann ich Softwaremässig prüfen, dass die 
Codescheibe genau diese Anzahl der Schlitze hat.
Es fehlen mir Idee: wie kann ich das prüfen?

Die Mikrokontroller Type ist erst mal nicht so wichtig:
Man kann in schlimmsten fall einen fertigen Arduino oder einen STM32.

Auf euren Input werde ich mich freuen.
Danke in voraus

von Clemens S. (zoggl)


Lesenswert?

10 mal drehen und mitzählen?
Im betrieb schauen ob es sprünge in der drehzahl gibt = Zahnlücke ?

von Thomas K. (ek13)


Lesenswert?


von Martin_gast (Gast)


Lesenswert?

Clemens S. schrieb:
> 10 mal drehen und mitzählen?
> Im betrieb schauen ob es sprünge in der drehzahl gibt = Zahnlücke ?

und wie erkennt man, die gezählte Schlitze?

von Alex G. (dragongamer)


Lesenswert?

Na der Encoder wird ja wohl für jeden Schlitz ein Signal auseben, sonst 
würde das Teil seinen Zweck nicht erfüllen.
Eventuell per Graycode, oder einfach nur 1/0.

: Bearbeitet durch User
von Der Andere (Gast)


Lesenswert?

Martin_gast schrieb:
> und wie erkennt man, die gezählte Schlitze?

Wie meinst du diese Frage?

Zu Grundlagen von Incrementalencoder siehe:
https://de.wikipedia.org/wiki/Drehgeber
https://en.wikipedia.org/wiki/Rotary_encoder

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin_gast schrieb:
> Die Codescheibe ist in einem Inkremtal Encoder aufgebaut.
In welchem? Hersteller? Typ? Oder ist das ein Eigenbau?

> Mir geht es darum: Wie kann ich Softwaremässig prüfen, dass die
> Codescheibe genau diese Anzahl der Schlitze hat.
> Es fehlen mir Idee: wie kann ich das prüfen?
Ich würde einen Motor gergeglet über eine 1024er oder 4096er-Scheibe 
eine Umdrehung machen lassen und den Geber an die Achse des Motors 
koppeln. Und dann musst du nur noch die Impulse deines 512er Gebers 
zählen.

> Wie kann ich Softwaremässig prüfen, dass die Codescheibe genau diese
> Anzahl der Schlitze hat.
Du könntest ein brauchbares Foto von der Scheibe machen und per 
Bildauswertung feststellen, ob 512 Löcher in der Scheibe sind...

: Bearbeitet durch Moderator
von A. S. (Gast)


Lesenswert?

* parallel einen "guten" laufen lassen und vergleichen
 * mit fester Umdrehung laufen lassen (Schrittmotor)
 * einigermaßen konstant drehen lassen und die Zeiten jedes 
Signals-Schlitzes (und die 90° Verschiebung zueinander) überwachen 
(Qualität der Schlitze, wenn ein Schlitz zu ist oder ein zusätzlicher, 
dann siehst Du das an den Messwerten)
 * Referenzsignal (ganze Umdrehung) mit auswerten falls vorhanden, ggf. 
selber basteln (*)
 * Qualitätsprozess des Herstellers sicherstellen

(*) Z.B. ein Stück Klebeband auf die Welle und einen Schleifer daran. 
Jedesmal, wenn der Schleifer gerade keinen Kontakt hat, ist eine neue 
Umdrehung rum. Bei 1 Umdrehung ist das sehr ungenau, bei 30 Umdrehungen 
weisst Du, ob Deine Schrittzahl stimmt.

von Martin_gast (Gast)


Lesenswert?

@ Danke an alle

Mir geht es darum: Wie kann mit einfachen mittels einen 
Eingangskontrolle machen.

Es muss einfach einen klare Aussage gemacht werden: ob die Kodescheibe 
Okay oder NotOkay ist?

Der Andere schrieb:
> Wie meinst du diese Frage?
jaein
Wie merkt das Prüfsystem, wo es angefangen hat bzw. (erste A_Spur und 
B_Spur)

Lothar M. schrieb:
> Du könntest ein brauchbares Foto von der Scheibe machen und per
> Bildauswertung feststellen, ob 512 Löcher in der Scheibe sind...

@Das ist aber ungeeignet für einen Endtest.
das dauert sehr lange.

von Der Prüfer (Gast)


Lesenswert?

Ich bitte doch sehr!

Was genau willst Du prüfen? Den kompletten Encoder oder nur die Scheibe?

von Martin_gast (Gast)


Lesenswert?

Der Prüfer schrieb:
> Was genau willst Du prüfen? Den kompletten Encoder oder nur die Scheibe?

Ich will nur die Scheibe prüfen

von Olaf (Gast)


Lesenswert?

Martin_gast schrieb:
> das dauert sehr lange.

Ich bin mir ziemlich sicher, dass optische Methoden den mechanischen 
überlegen sind.

von Alex G. (dragongamer)


Lesenswert?

Es geht also im eine Form von Produktionslinie und du willst mehr als 
2-3 Stück prüfen?
Dann nimm einfach einen von dem du weisst das er tut, schliesse ihn 
direkt mit einem zu testenden Exemplar zusammen und dreh die 
automatisiert ein paar dutzend mal. Dabei schaust du per Mikrocontroler 
ob die Ausgaben exakt übereinstimmen.

Wenn du noch keinen hast von dem du weisst dass er garantiert korekt 
ist, dann vergleiche trotzdem ein paar und du siehst wieviele eher 
zusammen passen und welcher aus der Reihe tanzt.

Wenn wirklich die mehrheit der Teile falsch läuft, stimmt was mit eurem 
Zulieferer nicht...

EDIT: Oder da es nur um die Scheiben geht - die lassen sich ausbauen, 
oder?
Dann tu die einfach auf eine Achse übereinander und schau ob alle gleich 
sind. Wenn ein Loch verdeckt ist, sieht man das sofort denn das sind 
Dinge die unsere Augen sehr gut wahrnehmen.

: Bearbeitet durch User
von Martin_gast (Gast)


Lesenswert?

Alex G. schrieb:
> Es geht also im eine Form von Produktionslinie und du willst mehr als
> 2-3 Stück prüfen?

Ja

Alex G. schrieb:
> EDIT: Oder da es nur um die Scheiben geht - die lassen sich ausbauen,
> oder?

Nein leider nicht.
Der lieferant kann nicht garantieren, dass alle Scheiben Okay sind.

Die scheibe hat einen Durchmesser von 4 mm.

von Der Andere (Gast)


Lesenswert?

Martin_gast schrieb:
> Nein leider nicht.
> Der lieferant kann nicht garantieren, dass alle Scheiben Okay sind.
>
> Die scheibe hat einen Durchmesser von 4 mm.

Könntest du vieleicht einfach mal deine "Information Hiding" Strategie 
beenden und mit allen Fakten rauskommen was genau du prüfen willst.

von georg (Gast)


Lesenswert?

Aufgabe für einen µController: einen Schrittmotor so ansteuern, dass er 
genau eine Umdrehung macht, und gleichzeitig werden die Impulse des 
Gebers mitgezählt. Das kann der allereinfachste Controller, hohe 
Schrittfrequenz ist ja nicht nötig. Eine LED leuchtet grün, wenn das 
Zählergebnis 512 ist.

Die Prüfung selbst dauert keine Sekunde, fraglich ist bloss wie lange es 
dauert, den Geber anzuflanschen - aber das gilt für ALLE Methoden.

Georg

von A. S. (Gast)


Lesenswert?

Martin_gast schrieb:
> Mir geht es darum: Wie kann mit einfachen mittels einen
> Eingangskontrolle machen.

Es gibt doch ein halbes Dutzend Vorschläge, die alle einfach sind (im 
Verhältnis zum Einspannen des Encoders und der Software im Testgerät).

Wenn Du schonmal einen Schrittmotor angesteuert hast, ist das einfach. 
Wenn nicht, nimm eine Lösung ohne.

Wenn die Scheibe einzeln entnehmbar ist, ist es optisch einfacher und 
schneller als elektrisch. Wenn nicht, dann halt elektrisch.

Wenn Du einen µC hast, dann ist die Signal-Auswertung einfach. Wenn 
nicht, dann schreibe, was Du zur Verfügung hast und kennst.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin_gast schrieb:
> Lothar M. schrieb:
>> Du könntest ein brauchbares Foto von der Scheibe machen und per
>> Bildauswertung feststellen, ob 512 Löcher in der Scheibe sind...
> @Das ist aber ungeeignet für einen Endtest.
> das dauert sehr lange.
Lediglich das Erstellen des "Prüfprogramms" dauert lange. Der 
eigentliche Prüfprozess läuft mit Sicherheit ziemlich schnell.

Evtl. lässst sich mit sowas schnon was anfangen:
https://image.analyser.gsa-online.de/?lang=de

Achim S. schrieb:
> * Qualitätsprozess des Herstellers sicherstellen
Das wäre mein erster Ansatz. Der Hersteller muss kontrollieren und 
sicherstellen, dass alle Löcher in der Scheibe sind.

von Clemens S. (zoggl)


Lesenswert?

gratuliere, du hast mir schon am Montag um 11 die Laune verhagelt.

Was willst du eigentlich?!?

Einen Geber testen oder eine Geberscheibe?

Martin_gast schrieb:
> Mir geht es darum: Wie kann ich Softwaremässig prüfen, dass die
> Codescheibe genau diese Anzahl der Schlitze hat.

Martin_gast schrieb:
> Die scheibe hat einen Durchmesser von 4 mm.

Martin_gast schrieb:
> Ich will nur die Scheibe prüfen

Martin_gast schrieb:
> Wie merkt das Prüfsystem, wo es angefangen hat bzw. (erste A_Spur und
> B_Spur)

Das passt so nicht zusammen. eine scheibe hat keine "Spur" A und B 
entstehen durch versetzte Auswertung EINER Spur

Welche Art von Fehler wird erwartet?
Fehlende Löscher?
Fehlende Stege?
ein Geber mit 513 gleichverteilten Löchern
ein Geber mit 511 gleichverteilten Löchern?


Martin_gast schrieb:
> Die scheibe hat einen Durchmesser von 4 mm.

Sonst noch Informationen die du in 2 Stunden teilen möchtest?

Schmeiß das Ding auf eine Leuchtfläche und mach ein Foto und zähl die 
Striche.

bau dir eine Schnellspannvorrichtung mit einer Schwungmasse und mit 
einer Photodiode und schau ob die Kanten gleichmäßig sind, wenn du die 
scheibe anschupst (schließt den Fehler gleichmäßige fehlerhafte Anzahl 
von löchern aber aus. das ist aber eh ein akademischer Fehler))

sg

von Alex G. (dragongamer)


Lesenswert?

512 löcher in einem Kreis von 4mm?!
Okey, optische Verfahren scheiden damit aus (außer man nimmt 
Makroobjektive oder sowas). Da man sie ja also nicht ausbauen kann, 
sowieso.

Bleibt nur den Geber als solchen zu testen!
Also entweder an Schrittmotor anschließen, oder wie ich beschrieben hab, 
einfach aneinander koppeln und egal wie drehen.
Denke das ist die allereinfachste Lösung. Auch von der Software her.

: Bearbeitet durch User
von Der Prüfer (Gast)


Lesenswert?

Woher hat der TE die Info das dort "Löcher" verbaut sind? Hat er die 
persönlich gesehen? Bitte Typ und Hersteller nennen, geht nicht? Also 
troll dich, Du bist entlarvt!

von Erich (Gast)


Lesenswert?

> an Schrittmotor

Hmm, schwierig.
Der Schrittmotor müsste mind. 512 Schritte / Umdrehung haben, 
wahrscheinlich sogar mehr wegen Toleranzen. Mechanische Kopplung muss 
rutschfrei sein...

Ich würde eher weiteren "geprüften" Geber gleichzeit mit auf die Achse 
spannen, evtl. einen ordentlichen von renomierten Firma.

>4 mm Durchmesser
>512 Löcher

Es werden eher nich 511 oder gar 513 Löcher sein,
sondern aufgrund Fertigungsfehler von den geplanten 512 einzelne, 
durchaus mehrere, nicht "durchsichtig" also nicht richtig gebohrt resp. 
gelasert.
Schwierig.
--> Anderen Zulieferer suchen.

Oder ist es doch eine Glas-Codescheibe mit Graycodespuren ?

Gruss

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin_gast schrieb:
> Die scheibe hat einen Durchmesser von 4 mm.
Ich kenne sowas eine Zehnerpotenz größer...
Wie wird die Miniaturscheibe denn ausgewertet? Das mus ja eine 
ausgefuchste Optik sein.

von Martin_gast (Gast)


Lesenswert?

Erich schrieb:
> ist es doch eine Glas-Codescheibe mit Graycodespuren ?
Es handelt sich um eine Kunstsott-Codescheibe.

Lothar M. schrieb:
> Wie wird die Miniaturscheibe denn ausgewertet?

Diese Codescheibe wird zwischen einen Motor und einen optischen Encoder 
aufgebaut.

Durch einen spezielle Lichtsensor(in der Encoder) und ASIC + (Firmware), 
können die Signale ausgwertet werden.
Das heisst, wenn ich auf die Codescheibe 512 Schlitze habe, dann habe 
512 Periode von A und 512 Periode von B aber nur einen "Nullimpuls".
Wir benennen das Z-Signal.

--> Diese kurze Beschreibung entspricht aber das Gesamtesystem.

von Clemens S. (zoggl)


Lesenswert?

Martin_gast schrieb:
> Wie merkt das Prüfsystem, wo es angefangen hat bzw. (erste A_Spur und
> B_Spur)

Martin_gast schrieb:
> einen "Nullimpuls".
> Wir benennen das Z-Signal.

willst du mich verarschen oder bist du so dämlich?

(bitte nicht als Beleidigung auffassen. das ist ernst gemeint)

dann nimm doch den asic und bau dir eine schnellwechselhalterung dran 
und zähle mit einem µC die Striche.

von Schlaubi Schlumpf (Gast)


Lesenswert?

Das ganze Dingens mit einem Motor + Schwungmasse drehen.

An den Encoder: PLL hintendran.

Wenn gut: PLL VCO Steuerspannung glatt.

Wenn wo was fehlt oder zu viel ist, gibts einen schoenen
Knacks in der Steuerspannung.

von Martin_gast (Gast)


Lesenswert?

Clemens S. schrieb:
> willst du mich verarschen oder bist du so dämlich?

Ja die Bauteile (ASIC und Lichtsensor) haben wir noch nicht.
Die werden erst in eine Paar Monate geliefert.

Wenn wir alle Bauteile hätten, wäre dann anders aber es ist nicht so.
Die Codescheibe ist im Hause und wir wollen bis die andere Teile 
geliefert werden die Codescheibe prüfen.

von Clemens S. (zoggl)


Lesenswert?

Clemens S. schrieb:
> Sonst noch Informationen die du in 2 Stunden teilen möchtest?

Ich bin raus. Mir wird das hier zu blöd.

sg

von Der Andere (Gast)


Lesenswert?

Das tolle "Würmer aus der Nase ziehen" Spiel geht munter weiter.

Nimm eine Lupe und zähle

Clemens S. schrieb:
> Ich bin raus. Mir wird das hier zu blöd.

Jepp

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin_gast schrieb:
> Lichtsensor) haben wir noch nicht.
Dann kannst du die Scheibe auch nicht im "üblichen" Verfahren durch 
Drehen und Zählen auswerten.

Martin_gast schrieb:
> Wie kann ich Softwaremässig prüfen, dass die Codescheibe genau diese
> Anzahl der Schlitze hat.
Die Scheibe wird ja schon nicht 510 oder 514 gleichverteilte Schlitze 
haben, sondern es ist einfach einer nicht durchsichtig. Deshalb kann ich 
mir auch gut vorstellen, du siehst dir die Dinger einfach mal unter dem 
Mikroskopf mit Durchlicht an. Eine Unregelmäßigkeit im Muster wie z.B. 
einen geschlossenen Schlitz kannst du dort vermutlich recht leicht 
erkennen...

> Wie kann ich Softwaremässig prüfen
Wenn du es unbedingt mit Software willst: Mikroskop mit Fotookular, Foto 
machen und anschließend Bildverarbeitung.

: Bearbeitet durch Moderator
von georg (Gast)


Lesenswert?

Martin_gast schrieb:
> Wenn wir alle Bauteile hätten, wäre dann anders aber es ist nicht so.
> Die Codescheibe ist im Hause und wir wollen bis die andere Teile
> geliefert werden die Codescheibe prüfen.

Ist das eine Beschäftigungstherapie für dich in der Zwischenzeit? 
Ernsthaft verwenden könnt ihr die Scheiben ja nicht, solange ihr nicht 
wisst, ob das ganze zusammengebaut überhaupt funktioniert. Ich zumindest 
würde es auf keinen Fall riskieren, womöglich hunderte Codescheiben 
irgendwo einzubauen ohne Test des Gesamtsystems. Ist aber nur meine 
unmassgebliche persönliche Meinung. No Risc no Fun.

Georg

von Achtung Achtung Achtung (Gast)


Lesenswert?

QAch, nimm doch eine Reißnadelund ritze die nötigen rein...

von Peter R. (Gast)


Lesenswert?

Lege zwei der Codescheiben übereinander.

Drehe eine erst einmal auf volle Überdeckung. Möglich oder nicht? 
irgendwelche Lücken erkennbar?
Dann dreh sie um eine halbe Zahnweite weiter. überall volle Öffnung oder 
nicht?
Da lässt sich, wenn die Scheiben genau aufeinanderliegen (mit einer 
Lehre als Aufnahme) auch ein einzelner Fehler gut erkennen.

von guest...Rainer (Gast)


Lesenswert?

also wenn ihr es nicht wollt/schafft vom Lieferanten eine 
Qualitätsgarantie zu bekommen, dann muß eben eine Eingangskontrolle her. 
Stichprobenartig sicher auch trotz einer Lieferantengarantie... Dreh das 
Ding einfach und zähle die Impulse in einem festen Zeitfenster. Die 
Größe des Fensters ergibt sich aus den Randbedingungen...wie schnell 
wird gedreht, wieviel Impulse liefert die Scheibe bei einer Umdrehung 
bzw. wieviele soll sie liefern. Dann noch über einige wenige Umdrehungen 
gemittelt und schon hast du ein gut/schlecht Ergebnis. Und je nach 
Stückzahl bekommt der Lieferant entweder die Teile zurück 
(Nachbesserung) oder einen Rechnungsabzug. Beides kann allerdings sehr 
lästig sein! Im Zweifelsfall neuen Lieferanten suchen.

Gruß Rainer

von Philipp G. (geiserp01)


Lesenswert?

Ich würde das gar nicht so kompliziert machen.

Nimm einen Schrittmotor und einen Arduino Uno und einen 
Schrittmotortreiber.

Scheibe auf Schrittmotor spannen und drehen lassen, ca. 5U/min. 
Photodiode/Phototrans. kannst auch gleich aus dem Arduino Starter Paket 
entnehmen.

Dummy Code

void StartDiscTest()

Stepper1.steps.run(800) // 4 Umdrehungen a 200Steps pro Umdrehung

int i = 0;
int iDiff = 0;
int iError = 0;
int iGapCount = 0;
bool bInGap = false;

for i = 0 to 4096 // 4 runden

 if PhotoTrans.value > 200 and bInGap = false then // erster schlitz
     time = millis;
     bInGap = true;
 end if

if Phototrans.value < 10 // dunkel, schlitz is vorbei)

   iDiff = millis - time;
   if (iDiff ) >= MaxSchlitz or (iDiff) <= MinSchlitz then
     iError = iError + 1
   end if

 iDiff = 0;
 bInGap = false;
end if

iGapCount = iGapCount + 1
next

if iGapCount < 4096 then goto myError
Stepper.stop
print.out.screen(iError)

end

Bekommt man in einem Abend hin. Kannst ja beliebig erweitern, rote Led 
und Stepper anhalten bei Error, oder alles in ein Textfile ausgeben.

: Bearbeitet durch User
von Dieter W. (dds5)


Lesenswert?

Falls die Angabe des Durchmessers mit 4mm tatsächlich stimmen sollte 
dann hat direkt am Umfang der Scheibe ein Schritt (Lücke plus Steg) eine 
Breite von 4 * Pi / 512 = 24,5µm.

Da ist das (optisch) Abtasten schon nicht ganz einfach.

von NichtWichtig (Gast)


Lesenswert?

D*PI=Umfang
4*3.14 ~ 12.5mm
512 Schlitze macht 1024 Änderungen ~ 1/100 mm pro

Man nehme ein hochauflösende DSL-R- oder System- Kamera und legen die 
Scheibe direkt auf den Sensor.
helle Fläche knipsen.
Bild auswerten ... fertig.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Philipp G. schrieb:
> Photodiode/Phototrans. kannst auch gleich aus dem Arduino Starter Paket
> entnehmen.
Mit ein wenig Fingerspitzengefühl geht das bei einem Scheibendurchmesser 
von 4mm(!!) sicher recht einfach... ;-)

> Bekommt man in einem Abend hin.
Ja, so ist das, wenn man die Spec nicht ganz durchliest. Passiert 
laufend.

: Bearbeitet durch Moderator
von Philipp G. (geiserp01)


Lesenswert?

Lothar M. schrieb:
>> Bekommt man in einem Abend hin.
> Ja, so ist das, wenn man die Spec nicht ganz durchliest. Passiert
> laufend.

Ok. Bei 4mm wird das so nix.

Also ein Microstepper, die Achse ist dann wohl eine Nadel, auf der sich 
die Scheibe draufstecken lässt.

Hinter der Scheibe weisse Power LEDs darauf richten. In einem Abstand 
von ca. 10cm eine weiss eingefärbte Plexisglas Scheiben aufstellen. Auf 
diese Scheibe wird das Licht der LEDs projeziert. Auswertung siehe oben.

von guest...Rainer (Gast)


Lesenswert?

Martin_gast schrieb:
> Die Codescheibe ist in einem Inkremtal Encoder aufgebaut.

Clemens S. schrieb:
> 10 mal drehen und mitzählen?
> Im betrieb schauen ob es sprünge in der drehzahl gibt = Zahnlücke ?

Es steht doch da, dass ein Encoder da ist und geprüft werden soll. Der 
wird sicher auch irgendwelche Pulse abgeben...also entweder die 
Umdrehungen mitzählen oder über ein Zeitfenster bei fester Drehzahl 
zählen...feddich.
Gruß Rainer

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.