Hall Leute,
hatte vor einer Weile mit ähnlichem Problem hier nach Rat gefragt und war zum Teil fündig geworden.
In der Zwichenzeit konnte ich mich auch etwas in die Roboterprogrammierung einlesen.
Es geht um ein Projekt an der Schule.
Der Roboter: KR16 Steuerung KRC2. Also eine gut ausgestattete Roboterzelle mit Laufband, teachpanel und einer sog. Switchbox an der man 10 E/A`s anschliesen kann. Am Roboter ist ein Parallelgreifer von Festo montiert.
Die Aufgabe:
An die oben genannte "Switchbox" ist so eine Industriekamera am Eingang 6 angeschlossen. In der Kamera ist ein Referenzbild im Vorfeld erstellt wurden.
Nun soll der Roboter ein Werkstück (Zylinderförmig 65 duchmesser 25 hoch) greifen und es über die Kamera halten. Dann wird das Werkstück z.B. um 180° um die eingene Achse gedreht und sobald die Kamera die Pos erkennt gibt sie ein Signal.
Und genau da soll der Roboter halten oder die Position bei der Signalgabe speichern.
Im Nachhinein das Werkstück auf eine Palette legen in der gespeicherten Pos. (Aber soweit bin ich noch garnicht gekommen.....
Ich habe hier mal ein Auszug aus dem Programm. Bin erst seit ein zwei Monaten an dem Projekt dran und habe auch selten richtig viel Zeit.
Würde mich auf eine schnelle Antwort freuen.
Danke im Voraus.
DEF Projekt( )
interrupt decl 1 when $in[6]==true do unterprog () ;-------Das ist die Deklaration (So stand es zumindest in Doku von Kuka) die Kamera ist an Eingang sechs angeschlossen und sendet ein signal bei Erkennung des Bildes---;
interrupt 1 on ;------hier schalte ich das interupt an.
Dann macht er ein paar lin und ptp bewegungen. Und in der letzten bewegung (Die Drehbewegung des Werkstückes) erkennt die Kamera das Bild und der Eingang 6 an der Switchbox leuchtet kurz auf.
Dann habe ich noch das Unterprogramm:
tja und hier bin ich nicht weiter gekommen. bis jetzt habe ich nur BRAKE eingetragen, damit der Roboter wenigsens anhält wenn E6 angeht, aber nichtmal das klappt.
&ACCESS RVO
&REL 33
&COMMENT PROJEKT
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF UNTERPROG( )
;FOLD INI
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD SPOTTECH INI
USERSPOT(#INIT)
;ENDFOLD (SPOTTECH INI)
;FOLD GRIPPERTECH INI
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPERTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
BRAKE
END
Danke für eure Hilfe...