Beiträge von dust2

    HAllo,


    werd mich nach 5 Jahren kUKA nun mit ABB beschäftigen, war beim IRC5-Grundkurs, fühlt sich alles gut an und ich freu mich drauf!
    Die erste Anwendung ist PICK&PLACE mit einem IRB1600. Ich muss berechnete Positionen mit einer absoluten Genauigkeit von 0.2mm anfahren! Welche Möglichkeiten habe ich, die Aufnahme/Ablage-Koordinatensysteme (Werkobjekte) mit einer reproduzierbaren Messroutine (elektr. Kantentaster o.ä) so genau wir möglich zu vermessen? Hat jemand Erfahrung mit WIEST-System oder HEIDENHAIN-Taster an IRC5?


    Bin für jeden Hinweis dankbar


    Dust

    Ich bekomme die Schraubpositionen als Koordinaten vom PC.
    Der Roboter greift sich eine geordnet bereitgestellte Montageplatte mit Backengreifer, setzt die Platte auf die Montageposition und schraubt sie mit dem im Greifer integrierten Schrauber mit 2 Schrauben fest.


    Ich seh da schon Probleme mit der Vermessung des Koordinatensystems für die Schraubpositionen und auch mit der Vermessung des ext. TCPs bei den geforderten Genauigkeiten.


    Daniel

    Hallo


    Wiederholgenauigkeit Roboter: KR125/2: 0.2mm
    Wiederholgenauigkeit Backen-Greifer der das anzuschraubende Werkstück hält: 0.02mm laut Hersteller
    geforderte Positioniergenauigkeit beim Schrauben: 0.3mm laut Schrauberhersteller
    Es handelt sich um Spanplattenschrauben die automatisch (per Luftzuführung) zugeführt und verschraubt werden.


    Die Schraubpositionen sind verteilt auf einer Fläche von max. 2000x1000mm. Selbst wenn mit HA-Roboter und weiterer Optimierung die Schraubgenauigkeit erreicht wird, frage ich mich halt, wie man die Arbeitsfläche als
    Maschinenkkordinatensystem(BASE_DATA[x]) hochgenau vermessen kann. Selbst ein kleinster Winkelfehler beim Vermessen wirkt sich gravierend auf die Positionierung der weit vom Ursprung entfernt liegenden Bohrungen aus.


    Deine Antworten im Thread "Messtaster anbringen" hab ich gelesen, ich würde/müsste es auch so machen, hatte nur gehofft, das es von irgendeiner Firma schon Messtaster mit Vermessungsprogramm für KUKA gibt!


    Ich sehe es auch so, Roboter ist ein Handlingsgerät und kann niemals mit einem CNC-BAZ mithalten, aber mich fragt ja wiedermal keiner!


    Daniel

    Hallo Megatron,


    Wenn Du mit A1-Überwachung auskommst, dann einen achssp. Arbeitsbereich einrichten,
    (Konfiguration/Extras/Arbeistraumüberwachung)
    der außerhalb der Maschine ist, dem einen Ausgang zuweisen, mit diesem Ausgang ein Relais schalten.
    Die Maschine hat wahrscheinlich auch einen Kontakt(z.b. Nocken Support hinten).
    Beide Kontakte parallel in den Sicherheitskreis der Zelle schalten.


    D.h. mind. der Robi oder die Maschine muss immer auf sicherer Pos. stehen, sonst fliegt der Sicherheitskreis raus.
    Wenn geschehen, kannst Du von Hand freifahren, quittieren und dann gehts weiter.
    Im Anwenderprogramm nur Softwarefreigaben!
    Wenn du oft und schnell fährst. elektronisches Schütz/Relais benutzen wegen Schalthäufigkeit.



    Achtung: Diese Methode ist nur für Maschinenschutz, nicht für Personenschutz!


    Daniel

    Hallo,


    es soll ein BASE für eine Schraub-Applikation vermessen werden. Genauigkeit 0.2mm,
    Roboter wird wohl ein KR100 werden, wegen mehrerer Schraubmodule am Greifer.
    Was gibts da für Möglichkeiten?
    Wenn sensorisch dann sicher nur mit Messtaster.
    Aber was nützt mir ein Messtaster mit um-Bereich, wenn ich ihn nicht als Messtool vermessen kann?


    Danke Für Eure Hilfe

    Hallo Danke für Eure Hilfe,


    Alles lieb gemeint, aber nicht das was ich brauche!
    also ich seh nach wie vor nur zwei Möglichkeiten.


    1. irgendwie im Submitinterpreter den Busfehler abfangen und den Slave wie oben gezeigt deaktivieren/aktivieren


    2. Maschine auch als Master ausführen und SIEMENS DP/DP-Koppler zwischenhängen, der bringt keinen Busfehler wenn der gegenüberliegende Master weg geht, friert die Ausgänge solange ein, bis des andere Netz wiederkommt und über DIAG-Info kann man zumindest mit einer S7 auch mitbekommen, wann das andere Netz wegbricht/wiederkommt.


    so teuer ist das Ding nicht, bevor ich sofwarebasteln mache, werd ich lieber den Koppler testen


    Daniel

    Die Doku sagt:


    DEACTIVATED_
    SLAVES=
    SlaveAddr,..
    Slaves, die beim Hochlauf des Treibers nicht am Bus
    sind, jedoch mit Com Profibus projektiert wurden.(
    siehe Kapitel 2.2)


    heißt für mich, die entsp. Slaves werden bei der Initialisierung durch den Master einfach ignoriert, z.B. Werkzeuge, die erst später eingewechselt werden sollen.
    Aber wie, schon gesagt, meine Maschine(Slave) kann beim Hochfahren da sein, muss aber nich!


    Wenn sie da ist, will ich mit ihr kommunizieren, wenn nicht, muss ich das im KRL irgendwie merken, um evt. Aufträge, die die Maschine betreffen zu blocken und ne Meldung zu erzeugen.



    Daniel

    Hallo,


    laut PB-Doku von KUKA ist es ja möglich, einen Profibusslave per KRL-Befehl
    IOCTL im Betrieb zu deaktivieren(Werkzeugwechsel mit Anmeldung). Hab zur Zeit nichts zum Testen -funktioniert das?
    Ich brauch aber eigentlich eine Möglichkeit, automatisch zu erkennen, ob ein Slave mitten im Betrieb ausgeschalten wird. Und wenn ja, dann soll
    der Robi unbeeindruckt ohne den Slave weiterarbeiten ohne erst den Busfehler quittieren zu müssen und den Slave abzumelden.
    Wie verhält sich ein SIEMENS DP/DP-Koppler, wenn der Master auf der Gegenseite ausgeht?
    Ich könnte die betreffende Maschine(die halt nur manchmal eingeschalten ist) ebenfalls aus DP-Master ausführen!



    Daniel

    Du hast in deiner [slave] section IO_DATA_BASE=0
    das bedeutet Datenabasis in der S7 Hardware-Projektierung sind Byte, wenn du dort beim KUKA-Slave als Datentyp Word hast, musst Du IO_DATA_BASE auf 1 setzen.
    Dann hast Du als Datenlänge in der iosys. x16 das heist du willst 16 Wort lesen. wenn das so wäre, müsstest Du auch auf der S7 16 Ausgangsworte angelegt haben?! Also erstmal schön sachte immer nur 1 Byte lesen, bei Byte so:


    ;--- Binaerkopplung mit Umfeld-SPS ---
    ; allgemeine Binaersignale (2 Worte)
    INB2=127,0,x1 ; $IN[17] - $IN[24] ; ein Byte lesen



    INB4=127,0,x2 ; $IN[25] - $IN[40] ; zwei Byte lesen
    INB6=127,2,x1 ; $IN[41] - $IN[48] ; dann aber hier gehts ab Offset 2 und beim Rob mit 6 weiter!!


    Ertmal die KUKA-Doku lesen, aktuellen FW_5613.bin benutzen und profibus-LOG abschauen, dort steht was beim Hochlauf passiert ist. Bei S7 empfiehlt es sich immer Byte zu lesen, und manuell zu swappen


    Daniel

    Hallo,
    wir kommen aus dem Handling, haben also meist Palletierroboter
    und ständig wechselnde Teilegrößen. D.h. geteachte Maschinen-KS in diesen werden dann alle Aufnahme/Ablagepositionen
    vor jedem Fahrzyklus als $POS berechnet. Da wir meist sehr große Greifer haben, bzw. Ablage normal und um 180Grad gedreht,
    wird oft über geteachte Zwischenpositionen gefahren, deren a,s,t und z-Komponenten in Abhängigkeit von akt. Stapelhöhen und Drehungen
    nachträglich rechnerisch angepasst wird. Die Turns der Aufnahme-Ablagepos in den MKS berechnen wir ebenfalls, um ungewünsche Umorientierung der A6 auszuschließen.
    Beim 4-Achser ist die Berechnung der Turn schon sehr kompliziert, beim 6-Achser nicht mehr beherschbar!
    Frage: Wir sind doch sicher nicht die einzigen auf der Welt, die mit einem KUKA-6Achser frei berechnete Positionen in geteachtem MKS mit vorgegebener Orientierung anfahren
    wollen, wir wird das Problem von vorgegebenen Orientierungen in einem MKS sonst gelöst? KUEWEG von KUKA scheitet aus, da wir nicht immer auf den kürzesten Weg fahren können!


    Danke......


    Daniel