- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 10 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 91

Thema: Vision-Erkennung bei Bestückungsautomaten

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Anzeige

    Powerstation Test
    Ist korrigiert. Ich sollte meine Posts vllt nicht mehr in OOo vorschreiben. Es fehlten die Leerzeichen immer nach Satzzeichen und bei Zeilenumbrüchen. Die wurden wohl nicht mitkopiert. Warum? Keine Ahnung.

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    50
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich habe leider nichts gefunden, was die Kapazität betrifft, aber du kannst da sicher nachgucken. 20K Teile halte ich für nicht übertrieben.
    Meinst du wieviele Bauteile von den professionellen Bestückautomaten gesetzt werden? Wenn ja, das hängt von vielen Faktoren ab. Die Anzahl der Köpfe, die Geschwindigkeit usw. ...daraus wird dann die "theoretische" Bestückleistung errechnet, welche in der Praxis jedoch niemals erreicht wird. Um die theoretische Bestückleistung zu erreichen müssten alle Bauteile so aufgerüstet sein dass der Automat mit allen Köpfen gleichzeitig die Bauteile abholen kann und diese gleichzeitig auf die LP platzieren kann (also muss der Bauteilabstand exakt so groß sein wie der Abstand zu den Nozzlen. In der Realität wird man diesen Zustand niemals erreichen und jeder Nozzle-Wechsel beansprucht auch Zeit.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Dann muss man sich nochmal angucken, dass diese Kameras eine Auflösung von fast HD haben (Die in Ebay zumindest - Man erkennt sie daran, dass sie ein wenig teurer als normale Kameras sind und einen Camera Link haben) und schon sind wir bei den extra Karten. Diese Karten nennt man Framegrabber Karten. Diese Karten haben einen speziellen Chip, der die Bildberechnungen durchführt und sind somit verdammt schnell und teuer. Teuer heißt in diesem Fall 1000€ aufwärts. Dafür bekommt der Rechner dann lediglich Koordinaten geliefert, die er auswertet. Ein Beispiel für eine FramegrabberKarte findest du hier:http://www.adlinktech.com/PD/web/PD_...5&seq=&id=&sid=#
    Da muss ich mir etwas anderes einfallen lassen, denn wenn ich mir einen Bestücker bauen werde, dann wird der größtenteils aus Schrott-Teilen bestehen.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Leider habe ich nichts über den Preis herausgefunden. Doch bei dieser Karte dürfte er bei 700 liegen. Und die macht nur eine einzige Kamera gescheit. Womit wir wieder beim nächsten Problem wären: Kameras. Ich habe eine bei einem Freund liegen. Das Modell weiß ich leider noch nicht, bekommen werde ich sie allerdings Ende diesen Monats. Diese Kameras kosten auch 200-1000€, je nach Sichtbereich (Wellenlänge) und aufgesetztem Objektiv. Meist ist eben kein Objektiv drauf, was den Gesamtpreis im Endeffekt nochmal und 200-500 Euro erhöht.
    Eine gute Kamera kostet gutes Geld. Für einen Selbstbau-Bestückautomaten sollte man aber auch mit "Billigteilen" klar kommen. Sicher wird man nicht die Genauigkeit und vor allem die Geschwindigkeit erreichen, die aktuelle professionelle Bestückautomaten erreichen, aber das ist auch nicht nötig.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Hier muss ein Kompromiss gefunden werden. Da ich mit OpenCV arbeite, benötige ich eine Kamera, die entweder eine Video4Windows Schnittstelle hat oder über eine andere,von OpenCV unterstützte Schnittstelle unterstützt. Die meisten Webcams tun das, wie es mit anderen Kameras aussieht, weiß ich nicht. Vielleicht kann man das auch so deichseln, dass eine handelsübliche Kamera genutzt wird, die in HD filmen kann. Da habeich mich allerdings noch nicht schlau gemacht, weil es noch so viele andere Dinge zu tun gibt. Es wird sich etwas finden.
    Mit der Bilderkennung habe ich mich bisher noch gar nicht befasst. Wenn es da OpenSource-Lösungen gibt, um so besser. Wenn nicht müsste man sich was basteln.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Beleuchtung habe ich schon fast fertig im Rechner. Ich benötige nurnoch die Maße des Objektivs der Bauteilkamera, dann stell ich jemanden an die Abkantpresse fürs Gehäuse und schicke die Bestellung zur Platinenfertigung raus. Ich hatte an SMD LED's gedacht. Jetzt im nachhinein ist das total doof. Da braucht man viel zu viele und ausserdem können auch welche kaputtgehen. Da sind TTH LED's viel schneller ausgetauscht als diese SMD Fitzeldinger. Geplant war eine octagonale Halbkugel mit den von dir genannten drei Ebenen: Direkt von unten, im 45° Winkel und direkt von der Seite. Das mit dem direkt von der Seite werde ich mir noch einmal überlegen müssen. Wichtig ist ja, dass der komplette Bereich ausgeleuchtet wird und nicht die LED's gegenseitig. Bedeutet, ich muss die Biegungen noch einmal anpassen. 0°, 22,5° und vllt 45°. Dafür muss ich mir die LED Spezifikationen allerdings noch einmal angucken und die Platinengröße ggf ebenso anpassen.
    Ich werde bei Gelegenheit mal ein paar Fotos der Kamerabeleuchtung von professionellen Bestückautomaten machen. Die Maße kann ich dir dann auch geben, wenn du willst, allerdings kann ich dir jetzt schon sagen, dass die verschiedenen Automaten verschieden Große Kameras und dementsprechend auch verschieden große Beleuchtungsmodule haben. Das hängt immer davon ab wie groß die Bauteile sein können, welche mit dem Automaten gesetzt werden können.
    Das sehe ich persönlich aber völlig unkritisch, denn wenn man eine relativ kleine Kamera hat, aber einen großen Stecker vermessen will, dann könnte man das ja softwaremäßig "rastern", also in Bereiche aufteilen und mehrere Fotos machen, welche dann am PC zusammen gesetzt werden. Der Zeitverlust dadurch ist ja völlig irrelevant, denn wieviele große Stecker setzt man schon als Hobbybastler.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich hatte das bei meinem Programm so gedacht: Es können Gehäuseformen als XML Datei erstellt werden, die dann ihre Dimensionen, die die Kamera im Endeffekt sehen soll. Weiterhin bietet diese Datei auch ein kleines Template, um das Gehäuse auf dem Bild zu zeichnen was sicher hilfreich sein wird, wenn man an der Bilderkennung herumprogrammiert. OpenCV verwendet dazu das „haartraining“ für Objekterkennung, indem die Library sich viele tausend Fotos anguckt und dann anhand der Kriterien entscheidet, ob das Objekt das richtige ist und wie es liegt. Dazuwerden auch ellenlange XML Dateien (Templates) mit Matrizen und Werten angelegt, durch die ich noch garnicht durchgestiegen bin. Diese OpenCV interne und meine selbst angelegten Templates treten dann als Bundle auf: Mein Template wird vom Programm eingelesen und damit kann dann das Programm erstellt werden: Man fährt über die Bauteilposition, wählt ein Bauteil aus, gibt ihm einen Namen und wählt aus den Templates die Gehäuseform aus. Danach auf Speichern drücken und weiter zur nächsten Position. Es mag sein, dass es dafür auch Konverter gibt, die die Ablaufpläne in G-code für die NC's umsetzen, aber so weit bin ich noch keinesfalls. Manuell ist erst einmal besser und einfacher (es gibt noch genug zu tun – Zuviel für einen Menschen, der noch nichtmal in Teilzeit daran arbeiten kann ). Ich bin ja auch irgendwie an die OpenCV Library gebunden, weshalb ich die Struktur danach ausrichten muss. Die großen Maschinenhersteller stecken nicht umsonst hunderttausende in ihre Bilderkennung. Den Vorgang hatte ich im obigen Post als Teachin bezeichnet.
    Wie gesagt, mit der Bauteilerkennung habe ich mich noch nicht befasst. Ich kann zwar sagen wie die Shapes in den Bestückautomaten erzeugt werden (und ich könnte auch ein Windows-Programm schreiben, mit dem man das auch kann), aber wie man das Kamerabild mit dem erzeugten Shape vergleicht weiß ich spontan auch noch nicht. Ersteinmal müsste ich den Bestücker selber bauen und dann mal weiter sehen wie ich die Erkennung realisieren könnte.

    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan habe ich den folgenden Ablaufzum Pick&Place Vorgang in meinem Notizbuch stehen:
    -Kopf über den Gurt fahren
    -Lageerkennung des Bauteils
    -Korrektur der Nozzle
    -Aufnahme des Bauteils
    -Über die Bauteilekamera fahren
    -Erkennen ob das Bauteil aufgenommenworden ist
    -Lage erkennen und Offsets kalkulieren
    -Bauteil drehen
    -Nochmalige Kontrolle
    -Über die Zielposition fahren undplatzieren


    Kann man das noch irgendwie verbessern? Ist lediglich ein grober Ablauf, denn damit kann ich, wie es momentan aussieht, erst in 2 Jahren anfangen (Muss ja bis jetzt an alles denken und selbst eine eierlegende Wollmilchsau sein ).
    Die Lageerkennung des Bauteils im Gurt wird eigentlich nicht gemacht. Lediglich zum teachen der Abholposition wird das gemacht (einmalig vor Produktionsstart) und dann auch nur wenn es dazu einen Grund gibt. Gründe wären z.B. Bauteil soll außermittig abgeholt werden, die Taschen sind so groß, dass das Bauteil darin hin und her rutscht (dann sollte möglichst exakt die Mitte der Tasche getroffen werden), usw.
    Die Erkennung, ob das Bauteil aufgenommen worden ist und die Erkennung der Lage kann in einem Schritt vereint werden. Man kann auch zusätzlich eine Abfrage des Vacuum-Werts machen um schon direkt nach dem Abholen festzustellen ob das Bauteil abgeholt wurde (dann ist nachträglich noch die Lage-Erkennung nötig), aber so etwas ist nur aus Geschwindigkeitsgründen sinnvoll, also für uns sicher nicht von Interesse.
    Die "nochmalige" Kontrolle nach dem Drehen ist auch unnötig. Wenn man eine gescheite Nozzle verwendet und nicht zu schnell dreht sollte das überhaupt kein Problem darstellen. Nötig wäre so etwas nur dann, wenn man mit "krummen" Nozzlen arbeitet oder bei speziellen Bauformen (Stecker, usw.). Professionelle Bestückautomaten schauen sich das Bauteil einmal an, richten es aus und setzen es dann direkt.
    Mein Vorschlag:
    Vor dem Produktionsbeginn die Gurt-Erkennung, es sei denn man bastelt sich einen Feeder, der immer die exakt gleiche Position hat, auch nachdem man ein Bauteil gerüstet hat.
    Lage-Erkennung der LP mittels der Board-Kamera (Passer-Marken) anfahren, erkennen und die Differenz zur Soll-Lage beim Bestücken berücksichtigen
    Ab nun immer wiederholen, bis die LP komplett bestückt ist:
    -Gurt-Tasche anfahren,
    -Bauteil abholen
    -Über die Kamera fahren
    -Lage-Erkennung des Bauteils
    -Lage-Korrektur
    -Bestück-Koordinate anfahren
    -Bestücken


    Zitat Zitat von einballimwas Beitrag anzeigen
    Zum Thema Kalibrierung kann ich garnichts sagen, da ich erst schauen muss, wie es mit der Steuerung aussieht.
    Die Kalibrierung ist quasi nichts anderes wie das erkennen eines Bauteils. Statt mit dem Bauteil über die Kamera zu fahren fährt man halt mit der Nozzle (normalerweise mit speziellen Kalibrier-Tools) über die Kamera. Statt die Lage des Bauteils zu korrigieren speichert man die Differenz zwischen Ist- und Sollwert und berücksichtigt diese bei jedem Bestückvorgang.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Maschine, die du auf dem Video siehst, ist die Maschine eines Freundes, eigentlich eine CNC Fräse. Das bedeutet, sie arbeitet mit einer Steuerung, die komplette Programme einliest und dann Schritt für Schritt abarbeitet. Da ich aber keine Programme in diesem Sinne abarbeite, sondern immer wieder mit der Steuerung interagieren muss um Werte zu korrigieren, kann ich diese Funktionender Nc garnicht nutzen.
    Warum nicht? Ein Bestückautomat arbeitet genauso. Es werden lediglich etwas mehr Daten benötigt. Zum einen gibt es das NC-Programm. Darin stehen die Passer-Marken und Bestück-Koordinaten. Dann gibt es das Array-Programm, darin stehen Informationen über die Abholpositionen der Bauteile (XY-Position, Höhe). In der Parts-Library stehen Bauteil-Daten.
    Das Programm wird nun abgearbeitet:
    Zuerst wird im NC-Programm die erste Zeile abgearbeitet, da steht auch drin welche Abholnummer das Bauteil hat. Nun werden aus dem Array-Programm die Abholdaten zu der Abholnummer gelesen das Bauteil wird abgeholt. Nun werden die Bauteildaten aus der Parts-Library gelesen. Welche Daten benötigt werden steht mit im Array-Programm. Als nächstes wird das Bauteil über der Kamera vermessen und mit den Daten aus der Parts-Library vergleichen (stimmen die Größe, die Anzahl der Beine, usw. ?). Wenn alles passt wird das Bauteil noch ausgerichtet (Verdrehung des Bauteils, Verdrehung der LP und die Soll-Drehung). Der Versatz des Bauteils an der Nozzle kann nicht korrigiert werden, das wird lediglich mit den Bestück-Koordinaten verrechnet. Nun wird das NC-Programm weiter abgearbeitet. Die Bestück-Koordinaten werden angefahren und das Bauteil gesetzt (die Dicke der LP und die Höhe des Bauteils werden dabei berücksichtigt).
    ...weiter zur nächsten Zeile im NC-Programm...


    Zitat Zitat von einballimwas Beitrag anzeigen
    Momentan arbeite ich mit zwei Funktionen. Die eine zum absoluten positionieren nach NC Koordinaten und die andere, um relativ zu positionieren (verfahre kontinuierlich bis ich Stop sage). Alles weitere werde ich selbst implementieren müssen.
    Die erste Funktion ist praktisch eine Zeile eines NC-Programms. Da fehlen halt noch die Daten über die Abholpositionen und die Daten über das Bauteil.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Dazu arbeite ich momentan ein Konzept aus, damit die Modularität gewährleistet bleibt und ich mich nicht auf diesen Steuerungstyp festnageln muss. Es gibt einfach nix anderes momentan. Diese Schnittstelle von NC zu Programm ist verdammt wichtig: Du wirst dir wohl eine andere Steuerung zusammenschustern wollen. Wenn du also damit steuern möchtest, musst du dir die Schnittstellen anpassen. Mein Programm muss also eine Schnittstelle anbieten, die für möglichst viele Steuerungen möglichst komfortabel und einfach ist. Das sollten nicht mehr als 2-3 Funktionen sein. Der Rest, wie Arbeitsraumüberwachung und sowas, sollte in höheren Ebenen gemacht werden, also komplett von der Software übernommen werden. Je abstrahierter man ist, desto freier ist man auch in der Gestaltung.
    Ne ne, ich würde das auch nicht anders machen. Nur halt alle Bauteile direkt nacheinander abarbeiten, nicht dass man jedes mal die Koordinaten neu eingeben muss.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da ich noch nie mit der USBCNC gearbeitet habe, und auch so gut wie keine Dokumentation vorhandenist (Die USBCNC wurde eigentlich als Steuerung entworfen und nicht für irgendwelche Zweckentfremdungen. Ein Job, den sie hervorragend erledigt, Lob an den Entwickler!) und die API Teile, die man für die Pick and Place Geschichte brauchen kann, recht minimalistisch ausfallen, muss ich gucken, wie ich damit hinkomme. Austesten, was diese oder jene Funktion überhaupt tut und dann ggf nutzen. Ich bin– im Gegensatz zu meinem Freund – total unbedarft in CNC's. Das höchste der Gefühle ist ein bisschen Fräsplan erstellen, aber alles weitere? Fehlanzeige. Bis das Interface zur Maschine richtig läuft, geht wohl noch ein bisschen Zeit ins Land. Er wohnt nicht gerade um die Ecke und ich habe noch mein Studium. Arbeiten mit der Maschine geht nunmal nur mit der Maschine. Das bedeutet Wochenenden zu opfern. Wochenenden, an denen man zur Abwechslung mal ausschlafen könnte (). Nunja, ich werde es noch hinbekommen. Momentan sind die Referenz und Stoppschalter dran. Danach die Umrechnung der NC internen Daten in Daten, mit denen ich was anfangen kann im Programm (mm, nicht Schritte oder ähnliches). Weil ich das noch nicht ganz draufhabe, fährt sie eben hin und wieder mal auf Referenz und manchmal eben über das Ziel hinaus
    Löst der Schalter nicht aus? Wenn die Maschine den Schalter erreicht muss die doch anhalten und den Schrittzähler für diese Achse auf Null setzen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich selbst werde mir natürlich eine weit weniger massive Maschine bauen. Aluprofile und Kugelumlaufspindeln mit Linearführungen, die ein wenig billiger sind. Schrittmotoren habe ich hier, da kann ich dir drei schicken (obich noch drei gleich starke habe, weiß ich allerdings nicht).
    Hey, danke. Das Angebot nehme ich gerne an. Aber vorher muss ich mal ein Konzept erarbeiten, wie ich das überhaupt realisieren will. Entweder ich fahre 2 Motoren gleichzeitig um ein Verkanten zu verhindern (dann müssten immer mindestens die 2 Motoren einer Achse gleich sein), oder ich baue eine Art Schiene, die nur einseitig betrieben wird.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Da das mit den Magneten dann ausfällt– wie macht man es dann richtig? Hast du eine Idee, vllt sogar eine Zeichnung (Hand/CAD – Egal)? Ich könnte mir nichts anderes vorstellen. Höchstens einen Bajonetverschluss.
    Auch davon werde ich Fotos machen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Wie soll das Nutzerinterface aussehen? Ich will es möglichst praktikabel machen und nicht komplett nachmeinen Bedürfnissen. In GUI Design bin ich auch komplett unerfahren, da ich Linux nutze und somit dauernd in der Konsole arbeite
    Das mit den GUIs könnte ich übernehmen. Wichtig zu wissen wäre wie ich die die Schrittmotoren richtig ansteuern kann. Kann ich das direkt über den Parallel-Port machen, oder müsste ich einen Verstärker bauen ...oder sind gar Treiber nötig?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Was muss noch geklärt werden? Wiekannst du dich einbringen? Kannst du Metall bearbeiten oder auf solche Maschinen zurückgreifen?
    Leider nicht. Gelernt habe ich Radio- und Fernsehtechniker und tätig bin ich seit über 10 Jahren als Einrichter für SMD-Linien. Softwaremäßig könnte ich sicher einiges dazu beitragen, elektrisch müsste ich mein Wissen mal wieder auffrischen, würde aber sicher auch noch einiges basteln können. Die Mechanik ist nun wohl ein Bereich in der wir beide keine Möglichkeiten haben .
    Aber zur Not kann man immer noch was aus Holz bauen, und wenn es sich bewährt hat kann man sich diese Teile sicher auch irgendwo aus Alu herstellen lassen.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Ich wohne zwischen Stuttgart und Karlsruhe. Vllt könnte man sich mal treffen und etwas ausarbeiten. So komplett über das Internet ist es ein wenig doof.
    Ich wohne bei Ansbach (Mittelfraken), das ist etwa 50 km vor Nürnberg.
    Momentan stecke ich noch mitten in der Renovierung, da habe ich nur wenig Zeit. Ansonsten könnten wir hier ganz gut was basteln. Ich habe eine Werkbank im Keller, und elektronisch bin ich auch recht gut ausgestattet (Lötstation, Heißluft-Station, Oszilloskop, und auch viele Bauteile (LEDs, Transistoren, Logik-ICs, Widerstände, usw. ...).
    Ach ja, das wichtigste habe ich vergessen ...den Kaffee-Vollautomaten
    Geändert von Holle (14.03.2012 um 23:33 Uhr) Grund: [/quote] vergessen

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Klar kommst du auch weitestgehend mit Billigteilen aus, aber die kritischen Stellen sind kritisch und damit muss man sie ordentlich durchdenken und auch Geld hinblättern.
    Das sind: Führungen, Kugelumlaufspindeln und das Image Aquisition System. Der Rest ist Vergleichsweise günstig: Eine Vakuumpumpe kann man sich vom Schrott besorgen, bzw aus Schrotteilen selbst zusammen bauen. Ein kleiner Überschlagswert: Spindeln und Führungen 400 Euro, Kamera gebraucht sind knappe 200 Euro (Ich bekomme eine für 35. Vllt lässt sich für dich auchnoch eine rausschlagen. Eine günstige Framegrabberkarte gibt es sicher auch günstig irgendwo gebraucht zu kaufen. Alles in allem wirst du aber einen knappen tausender für eine solche Maschine hinlegen! Holz kannst du ganz vergessen, damit habe ich die letzten Projekte gemacht. Ausserdem verzieht sich Holz schon bei geringsten Temperaturunterschieden derart dramatisch, das du niemals eine Genauigkeit von 1/10 hinbekommen wirst, ohne alle halbe Stunde neu einzumessen. Weiterhin ist Holz auch sehr Feuchtigkeitsempfindlich: Das bedeutet einmal das Garagentor oder die Tür zur Aussenwelt geöffnet und schon hast du wieder Ungenauigkeiten drin.


    Mit der Bilderkennung kannst du ganze Vorlesungen füllen, das ist alles kein Problem. Die Frage ist, welche Kamera eine gute Genauigkeit liefert und dabei nicht zu teuer ist. Ausserdem muss sie relativ weit verbreitet sein oder zumindest überall verfügbar. Spezialkameras bringen uns nicht weiter. Ich weiß noch nicht einmal, wie weit ich mit der CameraLink Kamera komme, die ich nun bekomme. Vielleicht gibt es dafür keine Treiber, die die Bilder an Video4Windows weitergeben oder ich kann allgemein gar nicht darauf zugreifen? Auch hier muss noch eine ganze Weile Forschung betrieben werden. Ich hoffe hier auf die Erfahrungen der anderen Nutzer dieses Boards die vielleicht schon einmal etwas mehr gemacht haben, als nur mit einer Gameboykamera herumgespielt. Die Erwartungshaltung, die du von der Optical Image Aquisition (OAI) und der damit verundenen Bilderkennung hast, scheint mir eine "naja, wird nicht so wirklich schwer sein" zu sein (Ich hoffe, ich missinterpretiere das jetzt nicht!). Auch hier will ich nochmal dran erinnern: Die Maschine zu bauen wird das leichteste sein, was auf uns zukommt! Die Bilderkennung verschlingt bei den Firmen (Siemens, etc) zehntausende, wenn nicht sogar hunderttausende von Euros. Man sollte sich mit Matrizen und Mathe auskennen, wenn man da ran gehen möchte. Ich schätze, ich habe noch bei weitem nicht genug Erfahrung und Wissen, um Bildverarbeitung richtig zu verstehen. Das kommt dann erst im achten Semester, sprich in der Industrie.


    Kannst du mir mal erklären, wie die Shapes in den aktuellen Bestückungsautomaten erzeugt werden? Ich habe leider noch keinen gesehen, daher habe ich davon keine Ahnung. Vielleicht ist das ja ganz ähnlich zu der Methode die ich oben gepostet habe. Danke!


    Die Kamerabeleuchtung ist nicht ganz unerheblich. Schlechtes Licht führt zu sehr schlechten Erkennungsraten und damit zur Verzweiflung des Programmierers (ich! ). Weiterhin muss der Abstrahlwinkel der LED's berücksichtigt werden und das Field of View (FOV), das man erreichen will. Das FOV errechnet sich aus dem Abstand des Objekts zum Sensor und aus der Brennweite der Linse. Durch die Brenweite der Linse kann man den Fokuspunkt (focal point) und das FOV in der Diagonale in ° berechnen. Das hängt dann von der Größe der Bauteile ab und wie hoch die Auflösung der Kamera ist. Schlechtere Bildqualität benötigt eine höhere Vergrößerung um die Unschärfe zu kompensieren. Damit vergrößert sich aber auch wieder die Region of Interest (ROI) und damit die Rechenleistung und Zeit, die man braucht um das Bild zu berechnen und die Position zu korrigieren. Das ganze ist eine Gratwanderung zwischen Rechenleistung, Geschwindigkeit, Qualität und und und. Es sind so viele Faktoren zu berücksichtigen, dass ich nicht wirklich weiß, wo ich anfangen soll. Deswegen erst einmal mit der Kamerabeleuchtung weil das so ziemlich das einfachste ist was man bauen kann, ohne vorher schon alles konstruiert zu haben. Da weiß ich, dass die Beleuchtungsdichte direkt über der Öffnung der Halbkugel gleichbleibend sein muss um eine gute Bildqualität zu erzielen. Mit deiner Angabe von "2 Winkel" kan ich mir den Rest für den Dome herleiten. Wichtig ist eben nur die Flächendeckung.


    Die NC Steuerungen sind meist so aufgebaut, dass das komplette Programm in den Speicher der NC geladen wird und dann Schritt für Schritt ausgeführt wird. Da das MAterial dabei abgenommen wird, ist es kein Problem, das Programm zu pausieren und an der Aussprungadresse wieder einzuspringen. Vielleicht mag das bei Profimaschinen nicht der Fall sein (Laserschneidanlagen haben durch ihre Hardwarebeschaffenheit sehr viel mehr Einsprungmöglichkeiten zu haben), doch bei den normalen NC Fräsen habe ich das so kennen gelernt. Also laden und ausfüren mit pausieren, aber immer nur das komplette Programm. Nun haben wir aber eine Pick and Place Maschine. Die muss die G-Codes "on the fly" im Programm erzeugen und dann Befehl für Befehl in die NC laden (zb bei einer Korrektur der Lage des Bauteils), die das dann ausführt. Das ist nicht wirklich praktikabel. Die großen Firmen haben auch da eigene Steuerungen gebaut, die mit den Programmen, die auf dem Rechner laufen interagieren. Da herrscht eine sehr starke Bindung zwischen Hard- und Software. Leider bin ich zumindest erst einmal an die USBCNC gebunden. Vielleicht wird das später anders. Es wird auf jeden Fall ein Modul "cnc" geben, das die ganze Maschine einstellt und handelt. Dieses Interface muss recht allgemein gehalten werden, dass man später, wenn man eine andere Maschine mit dem Programm nutzen möchte, einfach das Modul umschreibt und nicht das ganze Programm umschreiben muss. Schön ist da das Klassenmodell von C++, mit dem ich die Schnittstelle, die das Programm benutzt öffentlich haben kann und den Rest des Moduls (Umsetzung der Maschinenkoordinaten, initialisierung, Verbindungserstellung mit der NC, bewegen der Achsen, eventuelle E-Stops oder Sicherheitsschalter, usw, usf) einfach vor dem Programm verstecken kann, so dass es sich nicht mehr darum kümmern muss. Das wird alles vom Modul erledigt.




    Wichtig ist die Dokumentation der Arbeits- und Entwicklungsschritte und eine Buchführung über die verschiedenen Revisionen. Bei der Software, die ich baue ist github das Mittel der Wahl. Ich hoffe, dass ich dadurch das Chaos in meinen Projekten bändigen kann


    Tut mir Leid. Eigentlich wollte ich noch so viel mehr schreiben, bin aber leider nicht dazu gekommen. Der Tag war mörderisch und irgendwie bin ich auch nicht voran gekommen, weil Solidworks so langsam runterlädt (ist ja schön, dass sie uns Studenten was zur Verfügung stellen, aber das nutzt doch keiner, wenns knappe 6h dauert). Das ist jetzt schon seit knapp 4 Stunden im Downloadmanager. Wenn ich den LED Dome fertig habe, mache ich die 3D Ansicht und das Eagle Design öffentlich. Übrigens ist das keine Fachdiskussion. Mitleser können gern zu Mitschreibern mutieren. Dafür ist die Evolution da

    PS: Dann zieh du mal um und sag mir, wenn du fertig bist. Vllt können wir zusammen ein Konzept erarbeiten. Mittelfranken dürfte ich nach 3-4h Zugfahrt erreicht haben. Bin gespannt, wie euer Kaffee schmeckt und ob ihr damit in Konkurrenz zu dem Schwäbischen Kaffee treten könnt
    Geändert von einballimwas (15.03.2012 um 19:52 Uhr)

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    50
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Klar kommst du auch weitestgehend mit Billigteilen aus, aber die kritischen Stellen sind kritisch und damit muss man sie ordentlich durchdenken und auch Geld hinblättern.
    Das sind: Führungen, Kugelumlaufspindeln und das Image Aquisition System. Der Rest ist Vergleichsweise günstig: Eine Vakuumpumpe kann man sich vom Schrott besorgen, bzw aus Schrotteilen selbst zusammen bauen. Ein kleiner Überschlagswert: Spindeln und Führungen 400 Euro, Kamera gebraucht sind knappe 200 Euro (Ich bekomme eine für 35. Vllt lässt sich für dich auchnoch eine rausschlagen. Eine günstige Framegrabberkarte gibt es sicher auch günstig irgendwo gebraucht zu kaufen. Alles in allem wirst du aber einen knappen tausender für eine solche Maschine hinlegen! Holz kannst du ganz vergessen, damit habe ich die letzten Projekte gemacht. Ausserdem verzieht sich Holz schon bei geringsten Temperaturunterschieden derart dramatisch, das du niemals eine Genauigkeit von 1/10 hinbekommen wirst, ohne alle halbe Stunde neu einzumessen. Weiterhin ist Holz auch sehr Feuchtigkeitsempfindlich: Das bedeutet einmal das Garagentor oder die Tür zur Aussenwelt geöffnet und schon hast du wieder Ungenauigkeiten drin.
    Ja, eine finale Lösung ist das nicht mit dem Holz, aber zum testen reicht das aus. Es wäre schade wenn man sich etwas aus Alu fräsen lässt und stellt nachher fest dass es so garnicht funktioniert. Zum Thema alle halbe Stunde neu kalibrieren:
    Das wäre in meinen Augen OK, solange es sich um einen Prototypen handelt. Wenn es dann alles so funktioniert wie gewünscht kann man immer noch die Teile aus Alu fertigen lassen uns austauschen. Wahrscheinlich wird man zwischendurch aber immer wieder etwas ändern, so dass die Zwischenlösung mit Holz "schneller" und "viel günstiger" wäre.
    ...wie gesagt, während der Testphase als Zwischenlösung. Dass Holz nicht das endgültige Material sein kann ist klar.
    Also 1000 Euro kann ich derzeit nicht aufbringen. Mein Plan geht eher in die Richtung alles provisorisch zu basteln, Probleme auszumerzen und wenn es soweit zufriedenstellend läuft mit der Erfahrung/Steuerung/... "gescheit" zu bauen. Bis dahin habe ich dann vielleicht auch genügend Geld um da 1-2k zu investieren.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Mit der Bilderkennung kannst du ganze Vorlesungen füllen, das ist alles kein Problem. Die Frage ist, welche Kamera eine gute Genauigkeit liefert und dabei nicht zu teuer ist. Ausserdem muss sie relativ weit verbreitet sein oder zumindest überall verfügbar. Spezialkameras bringen uns nicht weiter. Ich weiß noch nicht einmal, wie weit ich mit der CameraLink Kamera komme, die ich nun bekomme. Vielleicht gibt es dafür keine Treiber, die die Bilder an Video4Windows weitergeben oder ich kann allgemein gar nicht darauf zugreifen? Auch hier muss noch eine ganze Weile Forschung betrieben werden. Ich hoffe hier auf die Erfahrungen der anderen Nutzer dieses Boards die vielleicht schon einmal etwas mehr gemacht haben, als nur mit einer Gameboykamera herumgespielt. Die Erwartungshaltung, die du von der Optical Image Aquisition (OAI) und der damit verundenen Bilderkennung hast, scheint mir eine "naja, wird nicht so wirklich schwer sein" zu sein (Ich hoffe, ich missinterpretiere das jetzt nicht!). Auch hier will ich nochmal dran erinnern: Die Maschine zu bauen wird das leichteste sein, was auf uns zukommt! Die Bilderkennung verschlingt bei den Firmen (Siemens, etc) zehntausende, wenn nicht sogar hunderttausende von Euros. Man sollte sich mit Matrizen und Mathe auskennen, wenn man da ran gehen möchte. Ich schätze, ich habe noch bei weitem nicht genug Erfahrung und Wissen, um Bildverarbeitung richtig zu verstehen. Das kommt dann erst im achten Semester, sprich in der Industrie.
    Ich denke auch dass die Bilderkennung die härteste Nuss wird, aber mit ein paar Tests werden wir da schon etwas "zusammen schustern". Mit der Zeit können wir das dann vielleicht auch verbessern. Ein großer Schritt wäre gemacht wenn wir "Kanten/Linien" erkennen können.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Kannst du mir mal erklären, wie die Shapes in den aktuellen Bestückungsautomaten erzeugt werden? Ich habe leider noch keinen gesehen, daher habe ich davon keine Ahnung. Vielleicht ist das ja ganz ähnlich zu der Methode die ich oben gepostet habe. Danke!
    Klar kann ich das...
    Zuerst wählt man eine Shape-Klasse (BGA, QFP, usw.). Als nächstes wird die Gehäuse-Größe angegeben (Länge/Breite). Nun noch die Anzahl der Beine/Balls, sowie deren Größe. Beim QFP z.B. gibt man X/Y Gehäusemaße ein und X/Y Gesamtmaße. Das (Gesamtmaß - Gehäusemaß) / 2 ist die Beinlänge. Die Beinbreite und den Pitch muss man auch eingeben. Aus diesen Daten wird ein 2D-Bauteilbild erzeugt. Nun noch die Höhe und der Shape ist fertig. Es fehlen aber noch die Angaben zur Nozzle (welche soll verwendet werden), Geschwindigkeit (wie schnell darf das Bauteil in X/Y bewegt werden und in Theta (gedreht). Weiterhin werden in dem Shape noch Angaben zum Feeder gemacht (welcher wird verwendet, wie tief liegt das Bauteil in der Tasche, ...).
    Der Shape selber ist aber schnell erzeugt. Man hat natürlich einige Klassen zur Auswahl und kann zusätzlich noch Optionen angeben (Bestückversatz, Abholversatz, abweichende Toleranzen, fehlende Beine/Balls, usw.) ...das ist aber nur eine Option und nicht zwangsläufig nötig.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Die Kamerabeleuchtung ist nicht ganz unerheblich. Schlechtes Licht führt zu sehr schlechten Erkennungsraten und damit zur Verzweiflung des Programmierers (ich! ). Weiterhin muss der Abstrahlwinkel der LED's berücksichtigt werden und das Field of View (FOV), das man erreichen will. Das FOV errechnet sich aus dem Abstand des Objekts zum Sensor und aus der Brennweite der Linse. Durch die Brenweite der Linse kann man den Fokuspunkt (focal point) und das FOV in der Diagonale in ° berechnen. Das hängt dann von der Größe der Bauteile ab und wie hoch die Auflösung der Kamera ist. Schlechtere Bildqualität benötigt eine höhere Vergrößerung um die Unschärfe zu kompensieren. Damit vergrößert sich aber auch wieder die Region of Interest (ROI) und damit die Rechenleistung und Zeit, die man braucht um das Bild zu berechnen und die Position zu korrigieren. Das ganze ist eine Gratwanderung zwischen Rechenleistung, Geschwindigkeit, Qualität und und und. Es sind so viele Faktoren zu berücksichtigen, dass ich nicht wirklich weiß, wo ich anfangen soll. Deswegen erst einmal mit der Kamerabeleuchtung weil das so ziemlich das einfachste ist was man bauen kann, ohne vorher schon alles konstruiert zu haben. Da weiß ich, dass die Beleuchtungsdichte direkt über der Öffnung der Halbkugel gleichbleibend sein muss um eine gute Bildqualität zu erzielen. Mit deiner Angabe von "2 Winkel" kan ich mir den Rest für den Dome herleiten. Wichtig ist eben nur die Flächendeckung.
    Ich bin heute nicht dazu gekommen Fotos zu machen, aber die kommen noch, versprochen. Bei der MSF kann man zwischen 2D und 3D Kamera wählen und das jeweils zwischen Large und Small. Es ist zwar nur EINE 2D-Kamera und nur EINE 3D-Kamera im Portal verbaut, aber mit "Small" nutzt man eine Vergrößerung. Die Small und Large Kamera haben eigene Offset-Werte, also sind da entweder 2 Kameras in einem Gehäuse oder ein mechanischer Zoom, denn wenn das nur ein digitaler Zoom wäre, dann bräuchte man keine 2 Offsets. Die Rechenleistung sollte keine Probleme bereiten, denn wenn es ein Pentium 233 schafft 20 Köpfe sau schnell zu handeln (und natürlich auch den Rest der Maschine), dann sollte ein Ein-Kopf-Bestückautomat (der zudem noch recht langsam ist) mit einem "modernen" PC recht unterfordert sein.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Die NC Steuerungen sind meist so aufgebaut, dass das komplette Programm in den Speicher der NC geladen wird und dann Schritt für Schritt ausgeführt wird. Da das MAterial dabei abgenommen wird, ist es kein Problem, das Programm zu pausieren und an der Aussprungadresse wieder einzuspringen. Vielleicht mag das bei Profimaschinen nicht der Fall sein (Laserschneidanlagen haben durch ihre Hardwarebeschaffenheit sehr viel mehr Einsprungmöglichkeiten zu haben), doch bei den normalen NC Fräsen habe ich das so kennen gelernt. Also laden und ausfüren mit pausieren, aber immer nur das komplette Programm. Nun haben wir aber eine Pick and Place Maschine. Die muss die G-Codes "on the fly" im Programm erzeugen und dann Befehl für Befehl in die NC laden (zb bei einer Korrektur der Lage des Bauteils), die das dann ausführt. Das ist nicht wirklich praktikabel. Die großen Firmen haben auch da eigene Steuerungen gebaut, die mit den Programmen, die auf dem Rechner laufen interagieren. Da herrscht eine sehr starke Bindung zwischen Hard- und Software. Leider bin ich zumindest erst einmal an die USBCNC gebunden. Vielleicht wird das später anders. Es wird auf jeden Fall ein Modul "cnc" geben, das die ganze Maschine einstellt und handelt. Dieses Interface muss recht allgemein gehalten werden, dass man später, wenn man eine andere Maschine mit dem Programm nutzen möchte, einfach das Modul umschreibt und nicht das ganze Programm umschreiben muss. Schön ist da das Klassenmodell von C++, mit dem ich die Schnittstelle, die das Programm benutzt öffentlich haben kann und den Rest des Moduls (Umsetzung der Maschinenkoordinaten, initialisierung, Verbindungserstellung mit der NC, bewegen der Achsen, eventuelle E-Stops oder Sicherheitsschalter, usw, usf) einfach vor dem Programm verstecken kann, so dass es sich nicht mehr darum kümmern muss. Das wird alles vom Modul erledigt.
    Das mit dem Programm ist bei SMD-Automaten überhaupt kein Problem. Es wird Zeile für Zeile abgearbeitet, somit ist jederzeit eine Unterbrechung möglich.
    Bei Siemens-Bestückautomaten ist das schon wieder anfälliger (ein winziger Stromausfall und man kann die LP wieder abwaschen). Panasonic handelt das etwas anders, da kann man selbst nach einem Stromausfall problemlos weiter machen wo man aufgehört hat. Problematischer wird es wenn man mitten im Programmablauf manuell dazwischen rum fummelt. In dem Fall ist es dann nötig den Startblock anzugeben, wo die Maschine weiter machen soll. Bei einer Maschine mit mehreren Köpfen ist das aber oftmals nicht so einfach weil 10 Bauteile auf einmal abgeholt werden, aber dann z.B. ein Bauteil nicht gesetzt wurde (z.B. Erkennungsprobleme). Wenn ich nun den Shape anpasse und einfach im Programm nachsehe welchen Block dieses Bauteil hatte und diesen als Startblock angebe kann es sein dass die anderen 9 Bauteile "doppelt" bestückt werden. Beispiel: Das Bauteil war Block Nr. 50. Der Kopf hat nun aber Block 50 bis 59 auf einmal abgeholt. Das Bauteil von Block 50 wurde nicht erkannt, aber die anderen (Block 51 bis 59) wurden erkannt und gesetzt. Wenn ich nun den Startblock 50 angebe (das Bauteil fehlt ja noch auf der Karte) würden die Blöcke 51 bis 59 ebenfalls nochmal mit bestückt werden. Aus diesem Grunde gibt es auch 3 Betriebsmoden: Auto, Block, Step
    Auto: Das Programm wird automatisch abgearbeitet
    Block: Es wird immer nur ein Block abgearbeitet (vom abholen bis zum setzten)
    Step: Es wird immer nur ein winziger Teil gemacht. Z.B.: Nozzle über das Bauteil fahren - Nozzle auf das Bauteil aufsetzten - Das Bauteil aufnehmen - Zur Kamera fahren - Über die Kamera fahren - Zur Bestück-Position fahren, Das Bauteil auf die LP aufsetzten - Nozzle wieder hoch fahren.
    Der Step-Betrieb wird zum Einrichten und zur Fehlersuche gebraucht.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Wichtig ist die Dokumentation der Arbeits- und Entwicklungsschritte und eine Buchführung über die verschiedenen Revisionen. Bei der Software, die ich baue ist github das Mittel der Wahl. Ich hoffe, dass ich dadurch das Chaos in meinen Projekten bändigen kann
    Ja, das ist in jedem Programm so ....und VIEL Kommentare verwenden, damit man sich auch Jahre Später schnell wieder im Quellcode zurecht findet.


    Zitat Zitat von einballimwas Beitrag anzeigen
    PS: Dann zieh du mal um und sag mir, wenn du fertig bist. Vllt können wir zusammen ein Konzept erarbeiten. Mittelfranken dürfte ich nach 3-4h Zugfahrt erreicht haben. Bin gespannt, wie euer Kaffee schmeckt und ob ihr damit in Konkurrenz zu dem Schwäbischen Kaffee treten könnt
    Ich ziehe nicht um, wir renovieren nur. Meinst du es macht Sinn jetzt schon ein Konzept zu erarbeiten? Ich dachte wir machen erst ein paar Tests (wie steuern wie die Schrittmotoren richtig an, welche Methoden zur Bilderkennung funktionieren in der Praxis, usw.). Wenn dann die einzelnen Schritte erfolgreich erprobt wurden wäre ein Konzept dran wie man das am besten nutzen kann. Derzeit wissen wir ja noch nicht mal ob die Motoren geeignet sind, oder welches Interface geeignet ist.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Ich werde heute nur sehr kurz angebunden antworten: Ich bin total platt

    Meinst du es macht Sinn jetzt schon ein Konzept zu erarbeiten?
    Natürlich! Das Programm, das ich programmiere, soll später mal nicht nur meine Maschine steuern sondern auch anderen helfen, die Einstiegshürde zu überwinden, sich sowas selbst zu bauen und muss daher wirklich mit der Maschine aufgebaut werden, sonst ist es ein "from the top to the bottom" Produkt, bei dem man die Probleme vielleicht gar nicht sieht

    Zu den Schrittmotoren: Wenn es dir nicht auf Geschwindigkeit ankommt, dann kannst du ein Gespann aus L297 und L298 nehmen. Eines pro Endstufe. Mit den anderen Bauteilen kommst du auf etwa 10 Euro pro Endstufe. Diese Dinger erwarten ein Clock und ein Step Signal und kosten nicht mehr als 10€ pro Endstufe. Damit wäre das mit den Stepperendstufen schonmal aus der Welt. Nun zu den Motoren: Da du keine Last hast, die du schnell bewegen musst, reichen handelsübliche, kleine Stepper, Beispielsweise http://www.reichelt.de/Schrittmotore...T=0&OFFSET=16&

    Gut, 50Euro sind kein klacks, aber ich habe noch welche auf Halde, die ich dir schicken kann. solche kleineren fliegen auch oft bei Firmen raus, einfach nur mal abends/nachts nach Feierabend im Müllcontainer wühlen. Da wird man zwar saudreckig bei, aber man spart sich 50Euro für meinst fast neue Motoren. Der größte Fischzug bei mir waren an die 20 davon in einer Nacht (Ja, ist unüblich, doch wieso sollte man die fast immer neuen Teile wegwerfen, wenn nur eine Störung in der Endstufe vorliegt? Ich versteh die Firmen nicht!). Fragt sich nur, ob ich noch drei gleiche habe, denn das ist eigentlich das wichtigste. Mit diesen Endstufen bist du relativ flexibel, zumindest, wenn du sie richtig aufbaust. Dann brauchst du nurnoch eine Steuerung. Da kannst du zb die USBCNC für ?200? kaufen, oder dir eine günstigere für den Parallelport holen. Keine Ahnung, was man da heutzutage nimmt. Pass aber auf, dass sie eine APi hat, mit der man sie ausserhalb des Programms ansteuern kann, das dabei ist

    Die Zwischenlösung mit Holz - Okay, das steht dir frei, kein Thema. Ich rate dir nur: Mach es lieber gleich richtig. Für die Richtigkeit der Pläne ist die vorherige Konstruktion verantwortlich! Das dauert sowieso noch eine Weile und geht nur Schritt für Schritt, weshalb man auch keine 1000 Euro auf einmal hinlegen muss. Müssen die Hexabotbauer auch nicht tun. Erst kommt ein Bein, dann das andere, dann das dritte, dann zwischendurch der Body, etc ... Im Ende sinds aber auch tausend oder mehr

    Zur Bilderkennung: Ich werde da erstmal ein Prototypensystem aufbauen, wenn ich die Kamera habe. Dann fummel in an den Algorithmen rum. Vorher passiert da leider recht wenig. Bin aber auch zuversichtlich, dass wir Bauteile erkennen können. Die großen kochen zwar mit größeren Kochern, aber trotzdem kochen sie nur mit Wasser.

    Du sagst, dass das in Blöcken gemacht wird. Daran habe ich noch garnicht gedacht. Ob das mit einer Steuerung, die nicht extra dafür gemacht ist, muss ich mir nochmal klar machen. Wie das ganze gehen soll weiß ich auch noch nicht wirklich. Das Manual ist auch relativ dick, ich werde mich da morgen mal dranhocken, wenn ich noch Zeit habe. Unten habe ich mal das Ablaufdiagramm für einen Block angehängt, wie ich es mir überlegt habe. Das habe ich schnell hingebuttert, auf dem Papier ist es ausführlicher (Was kann durch G-Code erledigt werden, wo ist Interaktion nötig, wo liegen die Schwachstellen? Das steht da noch dabei). Habe ich alles? Habe ich was vergessen?

    So viel für heute.
    Angehängte Dateien Angehängte Dateien

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    50
    Beiträge
    46
    Sorry, bin gestern wieder nicht zu den Fotos gekommen. Ich muss mich da leider etwas nach der Auftragslage richten und kann nicht einfach die Maschine für eine halbe Stunde stehen lassen .

    Beim Programm wollte ich mich eigentlich am Panasonic-Programm anlehnen, denn zum einen ist der erprobt und bewährt, zum anderen übersichtlich und verständlich und zudem könnte ich es recht leicht kompatibel zur MSF/BM machen. Der einzige Unterschied wären halt die Anzahl der Köpfe, aber das wäre kein Problem, da es ja in Blöcken aufgebaut ist.
    Die Kompatibilität ist für die meisten hier sicher völlig unbedeutend, aber für mich wäre das schon praktisch, denn:
    1.) Vielleicht kann ich meine Maschine einmal auf der Arbeit verwenden (Prototypen)
    2.) Wenn ich mal eine LP entwickle und bestücke, die vielleicht ein größeres Interesse bei anderen Usern findet und in großen Stückzahlen hergestellt werden sollte könnte ich das sicher auch mal auf der Arbeit machen (das würde jedoch schon alleine wegen der Schablone erst bei größeren Stückzahlen rentabel), aber dann könnte ich mein Programm fast 1:1 nutzen (die Änderung von Kopf 1,1,1,1,1,1,1,1, ... auf 1,2,3,4,5,6... wäre schnell erledigt).

    Man hätte halt ein festes "funktionierendes" Konzept, ohne dass irgendwelche Überraschungen zur ständigen Änderung der eigenen Entwicklung führen würden.
    Das Erstellen eines solches Programms wäre für mich erheblich einfacher, da ich schon beim simulieren sehen könnte ob da ein Fehler drin ist, indem ich es einfach mit einem Programm auf der Arbeit vergleiche.
    Sollte es jedoch aus irgendwelchen Gründen sinnvoller sein es anders zu machen wäre das auch kein Beinbruch, ich müsste mir dann halt einen Umwandler programmieren.

    Dein Blockbild hat einen Fehler:
    Wenn du unbedingt das Bauteil in der Tasche erkennen willst (ich wäre nicht dafür *), dann würde es in deinem Blockbild so sein dass er 2x das Bauteil anschaut, wenn es das erste mal nicht erkannt wurde. Ohne etwas zu ändern wird es das 2. Mal aber auch nicht erkannt.

    * Warum ich dagegen wäre:
    1.) Wenn man Gurte/Trays nutzt, dann hat man einen festen Pitch, somit wäre es unnötig immer wieder aufs neue zu prüfen ob man über dem Bauteil ist.
    2.) Unnötige Zeitverschwendung. Ich lege zwar keinen großen Wert auf eine schnelle Bestückung, aber diese Zeit könnte man meiner Meinung nach einsparen. Die Profis verzichten auch auf diese Funktion, selbst bei Stangenware (wo die Bauteillage tatsächlich etwas variieren kann).
    3.) Man müsste für jedes Bauteil 2 Shapes anlegen. Einmal für die normale Erkennung der Lage an der Nozzle und um verbogene Beine zu erkennen, usw. , und dann wäre es noch nötig das Bauteil von "oben" zu lernen.

    Ich wäre eher dafür optional die Abholposition anfahren zu können, um diese zu teachen (z.B, für ein DPAK, welches nicht genau in der Mitte der Tasche abgeholt werden soll, sondern in der Mitte des Gehäuses).

    Meinst du nicht dass die verlinkten Schritt-Motoren etwas "überdimensioniert" sind?
    Wenn die schon so viel Leistung haben sollen, was hälst du denn von diesen?
    Der ist etwas günstiger und hat doppelt so viele Schritte/Umdrehung, ist also doppelt so genau. Die Kraft bei 1000 pps ist annähernd gleich.

    Wozu 3 gleiche? 2 Gleiche X und Y reichen doch aus. Selbst da wäre es nicht zwangsläufig nötig, dass diese gleich sind, allerdings würde es die Handhabung vereinfachen, wenn zumindest die Schrittzahl gleich ist. Für die Z-Achse und die Theta-Achse kann man auch viel kleinere nehmen, obwohl auch erst geklärt werden sollte ob wir die Z-Achse elektromechanisch oder pneumatisch bauen.
    Was sind das für Motoren, die du auf Lager hast? Würden die ausreichen für die X- und Y-Achse?
    Für die Theta-Achse würde z.B. ein Motor aus einem Tintenstrahldrucker vollkommen ausreichen. Gerade die Motoren am Kopf sollten so klein wie möglich (und so groß wie nötig ) sein. Der Kopf würde sonst recht träge was sich auf die Geschwindigkeit und Genauigkeit auswirken würde.

    Die Zwischenlösung mit Holz - Okay, das steht dir frei, kein Thema. Ich rate dir nur: Mach es lieber gleich richtig. Für die Richtigkeit der Pläne ist die vorherige Konstruktion verantwortlich!
    Nun, ich habe zwar noch nie einen SMD-Bestückautomaten gebaut, aber schon diverse andere Dinge. Meine Erfahrung hat mich gelehrt dass es 1.) immer anders kommt, und 2.) als man denkt .
    Ein Stück Holz ist schnell gebastelt. Ich habe halt keine CNC-Fräse im Keller . Wenn ich mich ein paar Stunden an einem Alu-Teil aufhalte und später feststelle dass die Arbeit (und die Kosten) für´n Arsch waren weil ich irgendetwas nicht bedacht habe schlägt das mit der Zeit schon mal in Frust um. Wenn ein Stück Holz für´n "Ofen" war ist das nicht ganz so schlimm, denn das kostet nur ein Bruchteil und nimmer nicht annähend so viel Zeit in Anspruch. Möglicherweise stellt man nach dem Einbau fest dass dieses oder jenes noch verbessert werden könnte, usw.
    Wenn es dann alles so ist wie es sein soll kann ich es immer noch aus Alu "fertigen lassen". Bei komplexen Formen kann das "Holzmodell" auch sehr Hilfreich als Mustervorlage sein, um das Alu-Teil zu fertigen.
    Du hast natürlich recht dass die Kosten erst nach und nach entstehen, aber dennoch entstehen sie. Außerdem wird es sicher günstiger wenn ich gleich 10 Teile aus Alu fertigen lasse, statt 10 x 1.

    Die Bilderkennung wird die härteste Nuss, die sollten wir erst mal unabhängig von dem Rest der Maschine entwickeln.

    Je mehr ich darüber nachdenke, desto mehr denke ich auch dass wir doch schon jetzt ein "grobes" Konzept erstellen sollten, zumindest was die Hardware betrifft, denn schließlich hängt davon ab wie groß alles dimensioniert werden muss.


    Ich beginne einfach mal mit einer Liste (diese kann dann ja erweitert/verändert werden):



    Was sollte die Maschine können?
    - SMD-Bauteile von 0402 bis "oben offen" bestücken
    - Bauteile per Vacuum abholen und setzten. Die Nozzle sollte gefedert sein.
    - Bauteillage erkennen und korrigieren (X/Y/Theta). Erkennungsmerkmale wählbar (nur Außenkontur, Anzahl der Beine/Balls, usw.)
    - Kalibrieren der Bauteilkamera, Boardkamera
    - Offset-Möglichkeit bei der Abhol-Position und Setz-Position
    - Wählbar was mit "nicht erkannten / schlechten Bauteilen" passieren soll (Abwurfschale, zurück ins Tray/Gurttasche , ...)
    - Verschiedene Bestückmoden (Automatisch, Block, Step)
    - Manuelles verfahren aller Achsen. Diese Positionen sollten auch ins Programm übernommen werden können, um z.B. Nachträglich eine Bestückposition ins Programm einfügen zu können.
    - Verschiedene Beleuchtungsmöglichkeiten
    - Nozzle-Wechsler (zur Not auch manueller Wechsel, aber in jedem Fall mehrere Nozzlen)
    - Passermarken - Erkennung
    - Schutzvorrichtungen: Hardware-Endschalter = Sofortiger Stillstand und Spannungslos schalten aller Motoren und Fehlermeldung , Software-Endschalter (vor dem Hardware-Endschalter erreicht) = Sofortiger Stillstand und Fehlermeldung , Überlast-Schutz (Strom- und Temperaturüberwachung der Motoren) = Stillstand + Fehlermeldung
    - Akustische/Optische Meldung bei: Bauteil leer, Bauteil x mal nicht erkannt, Produktion abgeschlossen
    - Die Höhe aller bestückten Bauteile sollte für noch zu bestückende Bauteile berücksichtigt werden, um ein "umwerfen" zu verhindern. Notfalls automatisches "umfahren" der hohen Bauteile.
    - Bei einem leeren Bauteil sollten die anderen Beiteile weiter bestückt werden, damit man das Bauteil wechseln kann "während" die Maschine läuft
    - Bauteile sollten geskipt werden können (auslassen diverser Bauteile im Bestück-Programm, trotzdem weiter im Automatikmodus ausführbar)

    Was wären nette Features (kein Muss, aber vielleicht später mal möglich):
    - Mess-Pins um das erste Bauteil im Gurt zu messen (bei Widerständen, Kondensatoren, Dioden). Das würde jedoch eine Erkennung des Bauteils im Gurt erfordern. Alternativ wäre dass das "erste Bauteil pro Gurt" nach der Erkennung auf 2 Messflächen gesetzt wird (dort an der Nozzle bleibt) und im Anschluss gleich bestückt wird (sofern die Messung OK war). Das wäre einfacher zu realisieren, setzt aber voraus dass die Nozzle klein genug ist um nicht die Kontaktflächen des Bauteils zu berühren, oder dass die Nozzlespitze isoliert ist.
    -Vakuum-Messung an der Nozzle um zu erkennen wenn ein Bauteil "verloren" wurde

    Ideen zur Realisierung:
    - Bauteil-Abholpositionen: Auf einer Fläche Schienen montieren, um den Gurt "einzuklemmen" statt aufzukleben. Ein Paar Stifte für die Gurtlöcher sorgen für eine exakt gleiche Lage des Gurts. Diese Schiene könnte auch als Anlegekante für Trays dienen. Das wäre später sogar erweiterbar, wenn man statt der festen Stifte ein Förderrad verwendet.


    Also das mit den Blöcken wäre kein Problem für mich. Wir brauchen eine Schnittstelle womit man die Achsen an ihre Soll-Positionen verfahren kann, sowie eine Rückmeldung "Position erreicht" erhält. Der Rest ist nichts weiter als eine Abfolge von Befehlen.
    Wir können ja mal telefonieren...

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    50
    Beiträge
    46
    Bei Pollin gibt es sogar einen kompletten Bausatz für eine Schrittmotorplatine.
    Ich kenne mich nicht aus mit Schrittmotoren, vielleicht kann mich mal jemand aufklären:
    -In diesem Datenblatt steht eine Spannung von 6,8 Volt. Im Leistungsdiagramm steht aber etwas von 30 Volt. Bedeutet das nun , dass die 6,8 Volt die Anlaufspannung sind?
    Wieviel Spannung verträgt der Motor dann maximal?
    Wie funktioniert das mit den 2 Phasen? Kann ich da einfach 2 Bausätze verwenden? Wie stimme ich die dann aufeinander ab?
    Wie erkenne ich wieviele Schritte der Motor bereits getan hat (Rückmeldung)?

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Kein Problem, lass dir Zeit mit den Bildern. Sowas ist nicht von heute auf morgen gebaut und wird es auch nie werden. Ich sag' da immer: "Take your time! Nobody will die!"


    Ich habe das Gefühl, im Thema "Programm" reden wir aneinander vorbei! Meine Definitionen:


    "Programm": Software, die auf dem Rechner läuft mit Bedienoberfläche und Erkennung der Bilder von der Kamera. Also eine auf dem Rechner ausführbare Datei. Das ist das, woran ich gerade dran bin. Dieses Programm braucht aber eine Schnittstelle zur Hardware, also zur Steuerung der Motoren (die werden so gut wie nie direkt vom Rechner gesteuert). Dafür gibt es NC's, Numeric Controls. Damit wären wir auch schon beim


    "G-code" oder "NC Befehle" sind Befehle in der Form:
    N3 T0*57
    N4 G92 E0*67
    N5 G28*22
    N6 G1 F1500.0*82
    N7 G1 X2.0 Y2.0 F3000.0*85
    N8 G1 X3.0 Y3.0*33

    Diese Codes sind weitestgehend standardisiert und sind somit auf allen Steuerungen ausführbar. Das hat den Vorteil, dass man jede Steuerung (nun sei einmal dahingestellt ob USB, Parallelport oder Netzwerk) verwenden kann, die solche G-Codes verarbeiten kann. Nutzen wir unseren eigenen Code oder den Code, der für Panasonic Maschinen entwickelt wurde (wenn er denn vom Standard abweicht) dann müssen wir auch eine Steuerung von Panasonic nutzen was mir und meinem Budget gar nicht gefallen würde. Die sind nämlich auch jenseits der tausend. Weiterhin haben wir dann proprietären Code verwendet, wofür man uns zur Rechenschaft ziehen könnte und Lizenzgebühren verlangen kann. Wenn du magst, kannst du mir mal per PN ein kleines Schnipselchen G-Code bestehend aus 20-50 Zeilen schicken, dann gucke ich mir das an, ob das dem Standard entspricht oder nicht. Ich bin mir da mit mir selbst noch nicht ganz im Reinen, ob ich mich in diesem Punkt auf eine Diskussion einlassen will. Der einfache Grund dafür ist, dass ich den ganzen proprietären Mist hasse. Lizenzgebühren, Inkompatibilität und so weiter verabscheue ich zutiefst. Ein Konverter ist, wenn das ganze erst einmal läuft, auch recht schnell gebaut. Das größte Problem wird sein, die Koordinaten umzurechnen. Dafür findet sich aber sicher auchnoch eine Lösung.


    Gut erkannt, mein Blockbild hat einen Fehler. Ich hatte ursprünglich eingeplant, zu erkennen ob überhaupt ein Bauteil im Gurt / Tray ist. Das kann man natürlich weglassen, zumal deine Gründe wirklich überzeugend sind. Dann werde ich das noch rausnehmen. Ich sitze gerade in der Hochschule, kann daher nicht auf die Daten meines Rechners zugreifen. Wenn alles klappt, dann lade ich den korrigierten Ablauf heute noch einmal hoch.


    Der Grund, direkt drei "starke" Motoren zu nehmen ist erst einmal grundsätzlich der möglichen Erweiterung und anderen Eventualitäten geschuldet. Wenn man halbwegs hohe Geschwindigkeiten erreichen möchte, so muss man auch entsprechend Kraft aufwenden. Bei Spindeln mit kleiner Steigung ist die Kraft mehr oder weniger egal, da sowieso eine Art Untersetzung gegeben ist. Wenn man nun aber ein wenig schneller werden will, hat man zwei Möglichkeiten: Entweder man lässt den Motor schneller drehen, oder man nimmt eine Spindel mit größerer Steigung. Ein schnell drehender Motor hat weniger Kraft. Das geht aus den Datenblättern der jeweiligen Motoren hervor. Eine Spindel mit größerer Steigung bietet keine so große Untersetzung, wie eine Spindel mit vergleichsweise geringer Steigung. Ich würde gerne überdimensionieren, sonst kann es sein, dass ich zweimal kaufen muss. Es wäre sicher auch interessant, wie sich die beiden unterschiedlichen Motoren machen, und ob es die fast 20 Euro an Kostenunterschied wert sind. Das Flanschmaß ist auf jeden Fall das gleiche, ist also kein Problem, die Motoren einfach auszutauschen. Im übrigen ist die Genauigkeit eher kein Problem: 1,8°/Schritt macht 200 Schritte pro Umdrehung. Die Spindelsteigung wird in mm/Umdrehung angegeben. Eine typische Spindelsteigung ist 5, was bedeuten würde, wir hätten eine Auflösung von 5/200 oder 0,025mm. Mit den 0,9°/Schritt haben wir die doppelte Auflösung: 0,0125mm. Bei 1000 Schritten pro Sekunde macht das 1,25 cm pro Sekunde ... Das ist absolut langsam. Nehmen wir eine Spindel mit der Steigung 10, dann haben wir 10/200 -> 1/20tel Genauigkeit in dieser Achsenrichtung also 0,05 mm, aber dafür eine Verfahrgeschwindigkeit von 5cm/Sekunde. Da muss ich mich auch noch einmal ransetzen und ausloten, welche Spindeln es gibt und welche Auflösung wir brauchen. Im Prinzip genügt selbst bei 0201 Bestückung eine Auflösung von 1/10mm. Können wir das so ins Pflichtenheft übernehmen? Einwände?


    Mit dem Holz hast du wieder recht. Ist vermutlich auch besser so. Ich werde deinem Beispiel folgen. Wie sagt man? Jung und ungestüm
    Ich habe den Vorteil, dass ich Zugang zu einer NC gesteuerten Fräse habe (auch wenn ich mehr über die Technik weiß, als über das eigentliche Fräsen/Die Mechanik dahinter - Bin nur Elektrotechniker ), weshalb es wohl größtenteils auch an mir ist, die Teile zu fertigen (zumindest die Teile, die wirklich schon aus Alu sein müssen. Ich denke da an die Flansche der Motoren und an die Spindel, die vorgespannt werden muss. In Holz kann man schlecht Kugellager einpressen .


    Zur Theta Achse (Habe ich vorher noch nie bezeichnet, ich nehme aber mal an, dass du die Achse zur Rotation der Teile meinst.): Da reicht ein sehr sehr kleiner Steppermotor, der allerdings mit einer Hohlwelle ausgestattet werden muss. Ich erkundige mich auch hier nochmal in diese Richtung. Zur Trägheit des Kopfes: Auch hier helfen starke Motoren
    Die pneumatische Lösung scheidet aus, da wir die Kraft nur sehr schlecht korrigieren können, mit der die Nozzle dann herunterfährt. Pneumatische Ventile mit Druckregelung sind viel zu teuer (Diejenigen, die mit pneumatischen Muskeln hantieren wissen das ) und man benötigt trotzdem noch eine Z Achse, damit man den Fokuspunkt bei verschiedenen Bauteilehöhen sauber einstellen kann. Ein unscharfes Bild lässt den Rechner die Bauteile nicht erkennen.


    Mit deiner Liste bin ich soweit einverstanden. Wie stehst du zu CNC Steuerungen? Mit einer Steuerung, die G-Code interpretiert und danach handelt lässt sich der Sicherheitsaspekt sehr gut verwirklichen: Die Steuerungen haben vom Gesetz her schon eine solche Sicherung eingebaut und würden uns eine Menge Arbeit abnehmen (Ansteuerung der Endstufen, Sicherheitsabschaltung, Motorregelung, Arbeitsraumüberwachung, usw), unter anderem würde eine Steuerung auch die (eine) Schnittstelle zwischen Maschine und Rechner bilden.


    Füge deiner Liste bitte noch folgendes hinzu:
    - Plexiglasumhausung mit "Tor geöffnet" Schalter, der mit dem Hardware-Endschalter in Serie geschalten ist. (So wird vermieden, dass jemand dort rein langt und sich die Finger bricht: die kleinen Motoren haben mit den Spindeln zusammen eine ordentliche Kraft.


    ToDo für mich:
    - Verfügbare Spindelsteigungen zusammentragen und entsprechende Genauigkeiten festhalten
    - Hohlwellenmotor für Theta Achse auswählen
    - Blockbild neu erstellen
    - Unterteilung in Makros die von der Steuerung ausgeführt werden können und wo noch Aktion vom Programm erforderlich ist erstellen
    - Struktogramm für das Programm zum obigen Punkt erstellen (Die G-Codes müssen dynamisch erzeugt werden, Stichwort Offset, Rotation, etc).


    Todo für dich:
    - Mir den Code schicken
    - Übersichtsplan über die Maschine erstellen (Wo kommen die Bauteile her, wo ist der Arbeitsbereich, wo liegen die Trays, wo werden die Gurte liegen) und die ungefähre Größe abschätzen
    - Anzahl der Platinen, die bestückt werden festlegen (Eurokartenformat reicht?)
    - Weitere Dinge?


    Telefonieren ist gut. Werden wir aber auf nächstes Wochenende verschieben müssen. Ich schicke dir meine Nummer per PN (wenn ich heute abend noch daran denke ). Vielleicht melde ich mich heute abend noch einmal wenn die Ideen sprießen

    Zu Schrittmotoren: http://www.rn-wissen.de/index.php/Schrittmotoren
    Geändert von einballimwas (17.03.2012 um 14:23 Uhr)

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    50
    Beiträge
    46
    Zitat Zitat von einballimwas Beitrag anzeigen
    Kein Problem, lass dir Zeit mit den Bildern. Sowas ist nicht von heute auf morgen gebaut und wird es auch nie werden. Ich sag' da immer: "Take your time! Nobody will die!"


    Ich habe das Gefühl, im Thema "Programm" reden wir aneinander vorbei! Meine Definitionen:


    "Programm": Software, die auf dem Rechner läuft mit Bedienoberfläche und Erkennung der Bilder von der Kamera. Also eine auf dem Rechner ausführbare Datei. Das ist das, woran ich gerade dran bin. Dieses Programm braucht aber eine Schnittstelle zur Hardware, also zur Steuerung der Motoren (die werden so gut wie nie direkt vom Rechner gesteuert). Dafür gibt es NC's, Numeric Controls. Damit wären wir auch schon beim


    "G-code" oder "NC Befehle" sind Befehle in der Form:
    N3 T0*57
    N4 G92 E0*67
    N5 G28*22
    N6 G1 F1500.0*82
    N7 G1 X2.0 Y2.0 F3000.0*85
    N8 G1 X3.0 Y3.0*33
    OK, ich bin etwas Berufsgeschädigt
    Auf meiner Arbeit ist mit "Programm" immer das Bestück-Programm gemeint, sprich das Paket aus NC-Programm, Arry-Programm, Nozzle-Library, Part-Library, usw...
    Ich werde versuchen diese nun "Daten" zu nennen statt "Programm" (also Bestück-Daten, welche die NC-Daten usw. enthalten).


    Zitat Zitat von einballimwas Beitrag anzeigen
    Diese Codes sind weitestgehend standardisiert und sind somit auf allen Steuerungen ausführbar. Das hat den Vorteil, dass man jede Steuerung (nun sei einmal dahingestellt ob USB, Parallelport oder Netzwerk) verwenden kann, die solche G-Codes verarbeiten kann. Nutzen wir unseren eigenen Code oder den Code, der für Panasonic Maschinen entwickelt wurde (wenn er denn vom Standard abweicht) dann müssen wir auch eine Steuerung von Panasonic nutzen was mir und meinem Budget gar nicht gefallen würde. Die sind nämlich auch jenseits der tausend. Weiterhin haben wir dann proprietären Code verwendet, wofür man uns zur Rechenschaft ziehen könnte und Lizenzgebühren verlangen kann. Wenn du magst, kannst du mir mal per PN ein kleines Schnipselchen G-Code bestehend aus 20-50 Zeilen schicken, dann gucke ich mir das an, ob das dem Standard entspricht oder nicht. Ich bin mir da mit mir selbst noch nicht ganz im Reinen, ob ich mich in diesem Punkt auf eine Diskussion einlassen will. Der einfache Grund dafür ist, dass ich den ganzen proprietären Mist hasse. Lizenzgebühren, Inkompatibilität und so weiter verabscheue ich zutiefst. Ein Konverter ist, wenn das ganze erst einmal läuft, auch recht schnell gebaut. Das größte Problem wird sein, die Koordinaten umzurechnen. Dafür findet sich aber sicher auchnoch eine Lösung.
    Kein Problem, wenn das ebenfalls standardisiert ist kann man das gerne nehmen, ich bin da flexibel. Einen Konverter zu schreiben sollte auch keine große Sache sein. Die Koordinaten umzurechnen halte ich eher für das geringste Problem


    Zitat Zitat von einballimwas Beitrag anzeigen
    Gut erkannt, mein Blockbild hat einen Fehler. Ich hatte ursprünglich eingeplant, zu erkennen ob überhaupt ein Bauteil im Gurt / Tray ist. Das kann man natürlich weglassen, zumal deine Gründe wirklich überzeugend sind. Dann werde ich das noch rausnehmen. Ich sitze gerade in der Hochschule, kann daher nicht auf die Daten meines Rechners zugreifen. Wenn alles klappt, dann lade ich den korrigierten Ablauf heute noch einmal hoch.
    Eilt ja nicht...


    Zitat Zitat von einballimwas Beitrag anzeigen
    Der Grund, direkt drei "starke" Motoren zu nehmen ist erst einmal grundsätzlich der möglichen Erweiterung und anderen Eventualitäten geschuldet. Wenn man halbwegs hohe Geschwindigkeiten erreichen möchte, so muss man auch entsprechend Kraft aufwenden. Bei Spindeln mit kleiner Steigung ist die Kraft mehr oder weniger egal, da sowieso eine Art Untersetzung gegeben ist. Wenn man nun aber ein wenig schneller werden will, hat man zwei Möglichkeiten: Entweder man lässt den Motor schneller drehen, oder man nimmt eine Spindel mit größerer Steigung. Ein schnell drehender Motor hat weniger Kraft. Das geht aus den Datenblättern der jeweiligen Motoren hervor. Eine Spindel mit größerer Steigung bietet keine so große Untersetzung, wie eine Spindel mit vergleichsweise geringer Steigung. Ich würde gerne überdimensionieren, sonst kann es sein, dass ich zweimal kaufen muss. Es wäre sicher auch interessant, wie sich die beiden unterschiedlichen Motoren machen, und ob es die fast 20 Euro an Kostenunterschied wert sind. Das Flanschmaß ist auf jeden Fall das gleiche, ist also kein Problem, die Motoren einfach auszutauschen. Im übrigen ist die Genauigkeit eher kein Problem: 1,8°/Schritt macht 200 Schritte pro Umdrehung. Die Spindelsteigung wird in mm/Umdrehung angegeben. Eine typische Spindelsteigung ist 5, was bedeuten würde, wir hätten eine Auflösung von 5/200 oder 0,025mm. Mit den 0,9°/Schritt haben wir die doppelte Auflösung: 0,0125mm. Bei 1000 Schritten pro Sekunde macht das 1,25 cm pro Sekunde ... Das ist absolut langsam. Nehmen wir eine Spindel mit der Steigung 10, dann haben wir 10/200 -> 1/20tel Genauigkeit in dieser Achsenrichtung also 0,05 mm, aber dafür eine Verfahrgeschwindigkeit von 5cm/Sekunde. Da muss ich mich auch noch einmal ransetzen und ausloten, welche Spindeln es gibt und welche Auflösung wir brauchen. Im Prinzip genügt selbst bei 0201 Bestückung eine Auflösung von 1/10mm. Können wir das so ins Pflichtenheft übernehmen? Einwände?
    Vielen Dank für die perfekte Erklärung. Das klingt alles sehr logisch. Keine Einwände, das hat alles Hand und Fuß.
    Idee: Wenn ich das richtig verstanden habe, dann wäre das Problem der Genauigkeit ja nicht ein mechanisches Spiel, sondern die ansonsten fehlende Geschwindigkeit. Mal angenommen ich würde eine Spindel nehmen, mit der ich nur eine Genauigkeit von einen Millimeter schaffen würde, dafür wäre der Kopf rasend schnell. Würde ich nun einen 2. Motor benutzen, mit dem ich das Lager selber drehen kann wäre eine Wahnsinns-Genauigkeit mit einer hoher Geschwindigleit kombinierbar, oder? Verstehst du was ich meine? Das Lager der Spindel wäre dann also nicht fest verschraubt, sondern würde minimal drehbar sein.
    Ein Beispiel: ein Motor katapultiert den Kopf rasend schnell (wegen der großen Steigung der Spindel) über die LP, zeitgleich dreht der 2. Motor das Lager maximal eine Umdrehung (in 400 Schritten/Umdrehung). Somit könnte man die "grobe Spindel" ein 400faches genauer machen. Im Beispiel 1 mm Genauigkeit kämen wir so auf 0,0025 mm Genauigkeit. OK, das Beispiel hat einen Haken, weil da kein mechanisches Spiel eingerechnet ist, aber dennoch könnte man auf dieser Weise eine erhebliche Verbesserung der Genauigkeit erreichen, oder habe ich hier einen Denkfehler?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Mit dem Holz hast du wieder recht. Ist vermutlich auch besser so. Ich werde deinem Beispiel folgen. Wie sagt man? Jung und ungestüm
    Ich habe den Vorteil, dass ich Zugang zu einer NC gesteuerten Fräse habe (auch wenn ich mehr über die Technik weiß, als über das eigentliche Fräsen/Die Mechanik dahinter - Bin nur Elektrotechniker ), weshalb es wohl größtenteils auch an mir ist, die Teile zu fertigen (zumindest die Teile, die wirklich schon aus Alu sein müssen. Ich denke da an die Flansche der Motoren und an die Spindel, die vorgespannt werden muss. In Holz kann man schlecht Kugellager einpressen .
    Genial, dass du da an der Quelle sitzt. Du würdest mir die Teile dann doch sicher auch kostengünstig herstellen, oder?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Zur Theta Achse (Habe ich vorher noch nie bezeichnet, ich nehme aber mal an, dass du die Achse zur Rotation der Teile meinst.): Da reicht ein sehr sehr kleiner Steppermotor, der allerdings mit einer Hohlwelle ausgestattet werden muss. Ich erkundige mich auch hier nochmal in diese Richtung. Zur Trägheit des Kopfes: Auch hier helfen starke Motoren
    Die pneumatische Lösung scheidet aus, da wir die Kraft nur sehr schlecht korrigieren können, mit der die Nozzle dann herunterfährt. Pneumatische Ventile mit Druckregelung sind viel zu teuer (Diejenigen, die mit pneumatischen Muskeln hantieren wissen das ) und man benötigt trotzdem noch eine Z Achse, damit man den Fokuspunkt bei verschiedenen Bauteilehöhen sauber einstellen kann. Ein unscharfes Bild lässt den Rechner die Bauteile nicht erkennen.
    Stimmt, damit wäre diese Entscheidung auch gefallen. Es gibt jedoch eine Alternative zur Hohlwelle:
    Man kann ein sehr feines Gewinde benutzen und die Nozzle dadurch drehen. Der dadurch resultierende Versatz in X kann ja einberechnet werden. Das wäre vielleicht einfacher zu bauen und weniger Störanfällig wie eine Hohlachse.
    Und ja, die Theta-Achse ist die Achse für die Drehung. X-Achse (links-rechts), Y-Achse (vor-zurück), Z-Achse (Höhe), Theta-Achse (Drehung). In den professionellen Automaten gibt es noch mehr Achsen, die benötigen wir jedoch nicht. Nur um mal welche genannt zu haben: TW-Axis (Traywechsler), Rail-Axis (zum Einstellen der Spurbreite), usw.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Mit deiner Liste bin ich soweit einverstanden. Wie stehst du zu CNC Steuerungen? Mit einer Steuerung, die G-Code interpretiert und danach handelt lässt sich der Sicherheitsaspekt sehr gut verwirklichen: Die Steuerungen haben vom Gesetz her schon eine solche Sicherung eingebaut und würden uns eine Menge Arbeit abnehmen (Ansteuerung der Endstufen, Sicherheitsabschaltung, Motorregelung, Arbeitsraumüberwachung, usw), unter anderem würde eine Steuerung auch die (eine) Schnittstelle zwischen Maschine und Rechner bilden.
    Solange es eine Norm gibt bin ich mit allem einverstanden. Eine CNC-Steuerung unterscheidet sich ja auch nicht sonderlich (wenn überhaupt). In beiden Fällen brauchen wir X/Y/Z-Koordinaten. Beim Bestücken ist der Ablauf so, dass zuerst die Koordinaten angefahren werden und dann erst die Z-Achse bewegt wird. Erst wenn die Z-Achse zurück in der Grundstellung ist verfahren X und Y wieder. Wichtig ist auch die Geschwindigkeit. Man kann mit einem großen Stecker an der Nozzle sicher nicht so schnell verfahren wie mit einem SO8, das gleiche gilt für die Bauteildrehung.
    Ich wäre dafür die Geschwindigkeit langsam zu steigern, so dass weniger Kräfte auf das Bauteil wirken. Sagen wir einfach mal dass die "Höchstgeschwindigkeit" erst nach einem cm erreicht wird und dass die Geschwindigkeit bereits ein cm vor dem Ziel reduziert wird. Die Beschleunigung und Verzögerung sind die Momente in denen die größte Kraft auf dem Bauteil wirkt, sprich da ist die Gefahr am größten dass man das Bauteil verliert oder dass es verrutscht.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Füge deiner Liste bitte noch folgendes hinzu:
    - Plexiglasumhausung mit "Tor geöffnet" Schalter, der mit dem Hardware-Endschalter in Serie geschalten ist. (So wird vermieden, dass jemand dort rein langt und sich die Finger bricht: die kleinen Motoren haben mit den Spindeln zusammen eine ordentliche Kraft.
    Wenn du das wünschst können wir das einbauen. Ich würde jedoch vorschlagen dass der Safety-Fall etwas anders behandelt wird wie der Hardware-Endschalter-Fall.
    Begründung: Wenn der Hardware-Endschalter erreicht wird soll der Motor "schlagartig" stehen bleiben. Das ist sicher nicht gerade gesund für die Lager. Im Software-Endschalter-Fall soll der Motor zwar auch stehen bleiben, aber nicht "schlagartig". Da kann noch ein mm "Bremsweg" gegeben werden. Dieser Millimeter ist im Bruchteil einer Sekunde vorbei (bei einer Spindel mit großer Steigung und starken Motoren), jedoch schont dieser Millimeter "Bremsweg" die Lager. Den Safty-Fall würde ich daher lieber so handhaben wie den Software-Endschalter. Aber wenn du den schlagartigen Stillstand wünscht können wir das auch so machen.
    Fühl dich frei die Liste zu erweitern/ändern. Es wäre aber gut wenn man die Änderungen irgendwie Kursiv/Fett oder anderswie hervorhebt, damit man nicht so lange den "vorher/nachher" Vergleich machen muss.


    Zitat Zitat von einballimwas Beitrag anzeigen
    ToDo für mich:
    - Verfügbare Spindelsteigungen zusammentragen und entsprechende Genauigkeiten festhalten
    - Hohlwellenmotor für Theta Achse auswählen
    - Blockbild neu erstellen
    - Unterteilung in Makros die von der Steuerung ausgeführt werden können und wo noch Aktion vom Programm erforderlich ist erstellen
    - Struktogramm für das Programm zum obigen Punkt erstellen (Die G-Codes müssen dynamisch erzeugt werden, Stichwort Offset, Rotation, etc).
    Vielleicht sollten wir auch prüfen welche Spindeln überhaupt erhältlich (bezahlbar) sind. Was hälst du von der Hohlwellen-Alternative?
    Was hälst du von dem "drehbaren Lager" der Spindel, um die Genauigkeit zu erhöhen?


    Zitat Zitat von einballimwas Beitrag anzeigen
    Todo für dich:
    - Mir den Code schicken
    - Übersichtsplan über die Maschine erstellen (Wo kommen die Bauteile her, wo ist der Arbeitsbereich, wo liegen die Trays, wo werden die Gurte liegen) und die ungefähre Größe abschätzen
    - Anzahl der Platinen, die bestückt werden festlegen (Eurokartenformat reicht?)
    - Weitere Dinge?
    OK, den Code kann ich dir aber erst schicken nachdem ich wieder in der Arbeit war
    Die Lage der Gurte/Trays würde ich abhängig machen von der Bauform der Maschine, aber ich kann ja mal ein Plan machen wie ich mir das allgemein vorgestellt habe.
    Die Anzahl der Platinen ist ja eigentlich unwichtig, oder meinst du "Nutzen" (mehrere LPs zusammen)? ...das wäre dann ja nur eine Frage der Größe. Ich wäre dafür dass man auch "große" LPs bestücken kann, denn vielleicht kann ich die Maschine wirklich mal zur Prototyp-Herstellung nutzen. Die Größe der LP ist in den meisten SMD-Firmen durch die Magazine begrenzt. Die Bestückautomaten, Öfen und Transportbänder könnten allesamt größere LPs verarbeiten, aber die LPs werden (abgesehen von Sonderfällen) in Magazinen aufbewahrt, deswegen ist das in wahrscheinlich 95% aller Fälle die maximale Größe.
    Beispiel für ein Magazin wie es in automatischen Bestücklinien Verwendung findet.
    Anzustreben wäre von daher eine maximale LP-Größe von ca. 350x250 mm (damit könnte man wahrscheinlich 95% aller LPs bestücken). Professionelle Bestückautomaten können auch erheblich größere LPs bestücken, aber da diese meist wegen den anderen Komponenten einer Bestück-Linie nicht automatisch produziert werden können beschränken sich die meisten Hersteller auf die Maße welche "von vorne bis hinten" durchlaufen können. Das "Nadelöhr" ist in der Regel das Magazin.


    Zitat Zitat von einballimwas Beitrag anzeigen
    Danke, ich habe vorhin die Beschreibung zum Pollin-Motor gelesen, da war mir die Funkionsweise schon klar geworden

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Naja, geschädigt sind wir alle. Entweder im Beruf oder in anderen Dingen. Ich spreche aus Erfahrung :P Das schreit allerdings nach Begriffsdefinitionen (vielleicht auch für andere, die noch nicht so "viel" Erfahrung haben in Pick&Place Maschinenbau).
    Ich mache mal den Anfang: Edit: Dokument verlinkt - lässt sich leider nicht hochladen mit Chrome http://www.file-upload.net/download-...grdef.pdf.html

    Das wäre es für's erste. Fällt dir dazu noch etwas ein? Mir jedenfalls (noch) nicht.


    G-Codes sind nicht Standard, sie wurden nur einmal als ISO Standard definiert. Leider nutzen die Hersteller immer wieder andere Codes, so dass die Programme untereinander eben nicht immer kompatibel sind. Eigentlich schade.

    Die Teile fertige ich dir dann für den Materialaufwand. Zumindest das, was ich fertigen kann. Wie gesagt, ich bin ein Greenhorn auf dem Gebiet CNC Zerspanungstechnik.

    Die Gewindeidee verstehe ich nicht so ganz, tut mir Leid. Meinst du, die Nozzle wie ein Zahnrad auslegen und dann per Gewinde drehen? Hmm, noch mehr zu kompensieren, noch mehr Programmieraufwand, noch mehr Komplexität. Das "KISS" Prinzip (Keep It Simple, Stupid! - Halte es gefälligst einfach, Idiot!) ist das beste, was wir momentan verfolgen können. Wir müssen sowieso so viel bedenken, dass wir da ganze leicht den Überblick verlieren können. Ich habe jetzt allerdings mal nach Motoren geschaut - Die beginnen bei 70 Euro pro Motor ... Viel zu viel. Daher würde ich vorschlagen, wir machen das ganze über einen Riemenantrieb mit Untersetzung. Da wir ja sowieso keine Kraft zum drehen brauchen kann der Motor sehr sehr klein sein und auch eine relativ grobe Auflösung haben. Bei 1,8°/Schritt haben wir bei 2:1 Untersetzung schon eine 0,9°/Schritt Auflösung an der Nozzle. Die Drehung muss ja nicht schnell gemacht werden und kann ein wenig Zeit in Anspruch nehmen. Wobei ich auch da zuversichtlich sind, dass wir die Bauteile in weniger als einer Sekunde gedreht bekommen.

    Das was du meinst, die langsame Erhöhung der Geschwindigkeit, nennt sich Rampe und wird bereits von der NC Steuerung implementiert.Mit der unterschiedliche Behandlung des Safety Falls bin ich einverstanden. Könntest du ein Zustandsdiagramm zu den verschiedenen Fehlerzuständen entwerfen? Das würde mir sehr helfen.

    Die Liste werde ich erst einmal in LaTeX Form übernehmen, so dass man ein kleines Verzeichnis auf einem Webserver erstellen kann, um nicht immer alles hier reinposten zu müssen (Liste in LaTeX ist erledigt, am Webserver arbeite ich noch).

    Spindeln gibt es in den Steigungen 2 3 4 5 6 10 und alles drüber wird glaube ich als Hochgeschwindigkeitsspindel verkauft. Da muss ich mich aber noch einmal mit meinem CNC'ler kurzschließen und nachfragen. Nächste Woche haben wir eine Antwort. Bis dahin kannst du dich mal bei http://www.cnc-shop.mobasi.com/ umschauen, um dir eine Übersicht der Preise zu verschaffen.

    Das mit dem drehbaren Lager ist teuer, unsicher und führt zu nichts. Da nimmst du lieber kräftige Servomotoren mit einer jeweiligen Endstufe (400W oderso), die du dann in ihrer Schrittanzahl konfigurieren kannst. Das Ergebnis sind steile Rampen, hohe Genauigkeit (eigentlich beliebig), schnelle Verfahrgeschwindigkeiten (die Motoren liegen bei 6000RPM, was bei einer Steigung von 10mm/Umdrehung genau 1m/s Verfahrgeschwindigkeit macht) Für Motor und Endstufe zusammen legst du aber ab 500€+ hin und davon brauchst du mindestens 2. Die kommen dann in die zweite Revision der Pick and Place Maschine (Hörst du das teuflische Lachen in deinem Hinterkopf? ).

    Mechanisches Spiel ist so gut wie nicht vorhanden, da die Komponenten entsprechend teuer sind (Linearführungen, INA oder ähnliche und Kugelumlaufspindeln mit Vorspannung). Die sind allerdings auch bitter nötig, sonst geht die Genauigkeit flöten! Billiger geht hier echt nimmer!

    Mit der Anzahl der Platinen meinte ich eigentlich die grobe Geometrie der Maschine (Arbeitsbereich, Zuführbereich, wo kommt was hin?) und deren Größe. DU hast da sehr viel mehr Erfahrung als ich und weißt, wie groß der Arbeitsbereich und der Abholbereich sein muss, etc, usw. Einfach eine Zeichnung machen, einscannen oder Foto von machen, oder direkt am Rechner machen.

    Heute mal ein bisschen weniger von mir, bin mit den anderen Dingen beschäftigt, wie sortieren der Anforderungen und Zusammenfassen der Daten.

    Edit: Mach nie den Fehler und gehe auf "Erweitert" beim Editieren. Dir wird es die ganze Formatierung verhauen.
    Geändert von einballimwas (18.03.2012 um 09:46 Uhr) Grund: Dokument eingefügt für übersichtlicheren Post

Seite 2 von 10 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen