Beiträge von Eistee


    Wenn wir genau wüßten, was Du berechnen willst, so könnten wir Dir sicher mit der Mathematik helfen. Ich habe auch noch eine Frage zu der Aufgabe: Sind im augenblicklichen Programm eigentlich für die 3 Werkzeuge, die auf dem Greifer sind, die Tooldaten eingegeben worden? Beziehen sich diese Tooldaten auf das Gesamtsystem: also Greifer + Werkstückgreifer + Werkzeug?


    Das was frist geschrieben hat ist schon ziemlich genau das worauf ich nicht gekommen bin. Vielen Dank dafür. Ich habe wahrscheinlich viel zu kompliziert gedacht.


    Neben jedem Werkstückgreifer befindet sich eine starre Messspitze. Diese ist mit XYZ 4-Punkt vermessen wurden. Die Stoßrichtung wurde mit einer Maschinenwasserwage gemessen (4. Punkt). Die Drehung um die Stoßrichtung ist von Hand eingegeben wurden "0° 120° 240°". Auf den TCP der Messspitze wurde anhand von Maßen aus der CAD Zeichnung der TCP des Greifers errechnet und von Hand eingegeben. Das Problem sehe ich so das die "0° 120° 240°" mechanisch nicht passen und somit der errechnete TCP entsprechend nicht passen kann da außer die Stoßrichtung keine weitere Richtung passt. Mit den Tooldaten wurde dann aber alles geteacht. Hätte man also einen Greifer der keine mechanischen Abweichungen hat würde alles passen. Vom Programm her muss aber auf ca. 2-3 Zehntel genau gefahren werden. Der Greiferkörper ist geschweißt somit sind die Abweichungen auch nicht ohne.


    Probieren ist nicht ganz so einfach da ich nur einen VKRC zum testen zur Verfügung hätte. Der Roboter um den es geht (KRC) steht leider ein paar km entfernt. Ich wollte daher am besten irgendwie eine Vorgehensweise erarbeiten die dann funktioniert. Am besten gerechnet da man das auch auf dem VKRC dann testen könnte (neue Tooldaten extern berechnen und von Hand eingeben). Im rechnen/programmieren sind die VKRC ja leider nicht so freizügig bzw. kenn ich mich da mit den Eigenarten der VKRC zu wenig aus.


    Um einen USB Stick bootfähig zu machen gibt's bei Chip diverse Programme und Beschreibungen. Hab mir die Freeware mal runtergeladen und probier es aus.


    Funktioniert nicht bei den neuen KUKAs da das BIOS den Stick nicht erkennt. Es geht nur bei den älteren KUKAs wo USB im BIOS noch deaktiviert war.


    Man muss den Stick bei den neuen auf jeden Fall Bootfähig machen aber zusätzlich muss er noch vom BIOS erkannt werden und das hat KUKA irgendwie so gemacht das angeblich nur Sticks die man bei KUKA kaufen kann funktionieren. Meiner Meinung nach können Sie das nur über die VID (Vendor ID) und PID (Product ID) gemacht haben die jedes USB Gerät senden muss damit der PC weiss welcher Treiber zu laden ist. Diese 2 HEX Werte sind im USB Controler jedes USB Geräts gespeichert und können mit der Software des Chipherstellers auch beliebig neu programmiert werden.

    Hallo falls irgend jemand einen KUKA Stick mit dem das Booten geht zur Hand hat würde mich mal interessieren welche VID und PID der Stick hat (Gerätemanager unter Windows). Ich vermute das die Erkennung im BIOS nur eine bestimmte VID/PID Kombination akzeptiert. Es ist möglich nahezu jeden beliebigen Controller eines USB-Sticks um zu programmieren. Man benötigt dazu nur die Software des Controller Herstellers.


    Habe selbst schon zum Spaß einen USB Stick so umprogrammiert das er z.B. als Tastatur erkannt wird oder ähnliches. Funktioniert dann natürlich nicht mehr ;)


    Die besten Erfahrungen habe ich bisher mit Controllern von Alcor gemacht (Default Wert USB\Vid_058f&Pid_6387). Die sind weit verbreitet und die Software gibt es auch im Netz. Sind z.B. diese Sticks mit dem Drehbaren Metallbügel die man oft als Werbegeschenk bekommt oder z.B. von Hama Verkauft werden.

    Hallo


    Ausgangssituation:
    Ein Roboter mit Wechselsystem. Der Greifer der angedockt wird hat 3 Werkstückgreifer ~120° im kreis angeordnet. Im Roboter sind 3 Tools dafür vorhanden die allerdings nicht vermessen wurden sondern nur mit den Maßen von Hand eingegeben wurden. Mechanisch also nicht passen. Der gesamte Ablauf ist damit geteacht wurden.


    Problem:
    Es wurde ein neuer Greifer gebaut der als Ersatz für den alten Dient falls mal was schief geht. Der neue Greifer ist baugleich hat aber minimalste Abweichungen was die Positionen angeht. Die Abweichungen sind nicht nur linear sondern auch in der Orientierung (Greifer Grundkörper ist geschweist). Leider muss der Roboter recht genau fahren was eine Korrektur der Tools unumgänglich macht. Der Kunde wünscht das der Greifer vermessen und getestet wird und z.B. über eine Variable einfach aktiviert werden kann (simple if abfrage).


    Frage:
    Wie kann man am besten die Werte des neuen Tools herausbekommen? Der alte Greifer funktioniert noch tadellos könnte also als Muster genommen werden.
    Überlegt hatte ich mir den alten Greifer zu vermessen dann irgendwie die Korrektur zum alten TCP zu berechnen der ja nicht vermessen wurde, dann den neuen Greifer zu vermessen und dort die Korrektur wieder drauf zu rechnen.
    Geht soetwas? wenn ja wie (die Rechnerei)?


    Ich bedanke mich schon einmal für alle Lösungsvorschläge/Ansätze


    PS: KRC 5.3 - 6 Achs Roboter 250kg Traglast


    Mfg Eistee

    Hallo


    finde den Editor auch Super. Damit dir nicht langweilig wird möchte ich mal eine kleine Wunschliste hier lassen.


    - Anpassen der Farben die im Editor verwendet werden
    - Bei den Vorlagen weitere Reiter die die Variablen, Funktionen usw. des Objektbrowsers beinhalten
    - statt einzelne Dateien zu öffnen eine Art Explorer Ansicht in der man wie auf dem Roboter die Dateien in den Ordnern wiederfindet also ich mein damit den Tree in dem man ja auch Dateien dann darstellen könnte damit es nicht so viel Platz weg nimmt.
    - DAT-File aufräumen erweitern so das es optional die Variablen nach Type sortiert (erleichtert das manuelle Editieren der Dat File)
    - Folds mit einem + am Zeilenanfang versehen so das man sie mit einem Klick öffnen kann statt über den oberen Button (z.B. Code Folding in Visual Studio)
    - Zeilennummerierung an-/abwählbar
    - Zeilenumbruch an-/abwählbar
    - DEF-Zeile an-/abwählbar


    Ich hoffe ich konnte ein paar Anregungen geben und würde mich freuen wenn etwas davon umgesetzt werden könnte. Mach weiter so und vielen Dank für dieses Super Tool.


    mfg Eistee

    das ist mir alles bekannt.
    Mir geht es darum, das ich ein globales Unterprogramm mit allen verwendeten Interrupts und den dazugehörigen Unterprogrammen anlegen möchte.




    Dieses Programm "INTERRUPTS ( ) " möchte ich dann in anderen Unterprogrammen einmalig aufrufen und dort je nach Bedarf die deklarierten Interrupts ein- oder ausschalten.
    Andernfalls müsste ich mir für jeden Interrupt das entsprechenden Unterprogramm global erstellen.


    mfg

    GLOBAL steht schon davor


    hier ein kurzer auszug aus der interrupts.src:

    Code
    DEF INTERRUPTS( )
      GLOBAL INTERRUPT DECL 1 WHEN  NOT DRUCKLUFT_IO_E24 DO DRUCKUEB ( ) ; Druckluftueberwachung
      INTERRUPT ON 1 ;     Druckluftueberwachung
    END
    DEF  DRUCKUEB ( )
      ; Befehle ...
    END


    In der config.dat ist Das Programm mit EXT Befehl eingetragen.


    In meinen Unterprogrammen wollte ich am anfang dann einfach einmal INTERRUPTS() aufrufen so das ich sie dann nur noch einzeln an und aus schalten brauche.

    Hallo


    wir möchten ein Modul anlegen welches mehrere Interrupts deklariert und die entsprechenden Programme enthält die vom Interrupt ausgeführt werden.


    Dieses Modul soll dann von allen Unterprogrammen einmal im INI Bereich aufgerufen werden und die Interrupts bereitstellen. Dies hätte den Vorteil das sowohl im Automatikbetrieb als auch bei einer einzelnen Anwahl eines Unterprogramms die Interrupts vorhanden währen.


    Aus mir noch unerklärlichen Gründen lösen die Interrupts aber nicht aus wenn ich diese aktiviere.


    mfg

    Hallo


    gibt es eine Möglichkeit den Zielpunkt der Bahn zu ändern wenn ein Interrupt auslöst ohne den Roboter mit Brake an zu halten und ihn dann zum veränderten Punkt fahren zu lassen?


    Sinn des ganzen: Eine Suchfahrt nach Behältern mittels Laser der allerdings absichtlich 50mm früher schaltet und somit noch ein Weg von 50mm ab der Interrupt Position zu fahren ist. Es sieht einfach blöd aus wenn der Roboter so kurz vor dem Ziel erstmal stoppt.


    mfg Eistee