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.
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 denktDie 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!.
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...
Lesezeichen