Beiträge von DannyNRW

    Hier nochmal der bisherige Programmanfang:


    &ACCESS RVP
    &REL 1
    DEF ct1 ( )
    DECL E6POS TP
    DECL REAL KUCHEN_D
    DECL REAL KUCHEN_R
    DECL REAL KUCHEN_H
    DECL BOOL Teachpunkt

    ;FOLD INI;%{PE}
    ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD (BASISTECH INI)
    ;FOLD USER INI
    ;Make your modifications here

    ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)

    KUCHEN_D=270.0
    KUCHEN_R=KUCHEN_D/2
    KUCHEN_H=50.0
    TP=XP1
    Teachpunkt=FALSE

    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
    $BWDSTART = FALSE
    PDAT_ACT=PDEFAULT
    FDAT_ACT=FHOME
    BAS (#PTP_PARAMS,100 )
    $H_POS=XHOME
    PTP XHOME
    ;ENDFOLD

    ;FOLD LIN P2 Vel=2 m/s CPDAT1 Tool[3]:Knife Base[0];%{PE}%R 8.3.48,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:, 5:2, 7:CPDAT1
    $BWDSTART=FALSE
    LDAT_ACT=LCPDAT1
    FDAT_ACT=FP2
    BAS(#CP_PARAMS,2)
    LIN XP2
    ;ENDFOLD


    ;Teachpunkt einfuegen. Roboter fährt Punkt jedoch nicht an.
    if Teachpunkt==TRUE THEN
    ;FOLD PTP P1 Vel=100 % PDAT1 Tool[3]:Knife Base[0];%{PE}%R 8.3.48,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT1
    FDAT_ACT=FP1
    BAS(#PTP_PARAMS,100)
    PTP XP1
    ;ENDFOLD
    ENDIF


    ;Erster Schnitt
    TP.Y=TP.Y+KUCHEN_R
    TP.Z=TP.Z+KUCHEN_H
    TP.A=TP.A+90

    ;FOLD Schnittposition 1 anfahren
    LIN TP
    ;ENDFOLD
    ;BAS (#INITMOV,0 )


    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
    $BWDSTART = FALSE
    PDAT_ACT=PDEFAULT
    FDAT_ACT=FHOME
    BAS (#PTP_PARAMS,100 )
    $H_POS=XHOME
    PTP XHOME
    ;ENDFOLD
    END



    Zunächst wird die Homeposition angefahren, anschließend dann P2. Abhängig davon, ob die Variable TeachPunkt auf TRUE oder FALSE gesetzt wird, so wird der Punkt P1 angefahren. Dann geht es weiter zu Punkt TP (die eigentliche erste Schnittposition).
    Nun ist es so, dass bei Teachpunkt=TRUE (also mit Anfahren des Punktes P1) der Punkt TP anschließend richtig angefahren wird. Ist die Variable Teachpunkt=FALSE, so wird leider eine gänzlich andere Position angefahren.
    Kann mir dazu jemand helfen?

    Hallo zusammen,
    ich habe ein Problem. Wir haben die Aufgabe, mittels Roboter einen (runden) Kuchen zu schneiden. Es darf nur ein einziger Punkt geteacht werden. Das ganze haben wir schon mit Relativbewegungen durchgespielt (LIN_REL), was auch soweit funktioniert hat. Nun soll daraus ein Programm entstehen, in dem alle Berechnungen innerhalb des Programms ausgeführt werden.
    Was ich nun vorhabe: Ich möchte einen einzigen Punkt teachen, der jedoch nur dazu dienen soll, die Koordinaten für weitere Berechnungen zur Verfügung zu stellen. Der Punkt soll also nicht angefahren werden. Alle weiteren Punkte sollen aus dem Punkt errechnet werden. Es hapert leider gerade bei mir daran, dass der Roboter den Punkt nicht anfährt. Dazu mal ein Codeauszug:
    ;Erste Position anfahren (Kuchenrand)
    TP.Y=TP.Y+KUCHEN_R
    TP.Z=TP.Z+KUCHEN_H
    LIN TP
    Die Deklaration wurde richtig durchgeführt, aber bei LIN TP fehlt doch noch eine ganze Menge, oder? In Beispielprogrammen sehe ich immer, dass hier ganze Folds mit Variablen vorhanden sind. Ebenso sind auch im .dat-file Variablen und Parameter zu jedem Punkt hinterlegt. Wie kann ich jetzt diesen Punkt anlegen?
    P.S.: Fahre ich zuvor den geteachten Punkt an, so wird auch der Punkt TP angefahren. Fahre ich diesen Punkt jedoch nicht an, so wird ein Fehler ausgegeben.
    Ich bin über jede Hilfe dankbar.
    Gruß
    Daniel

    Also, ich habe mich in den letzten Tagen noch ein bisschen mit der Materie beschäftigt. Mittlerweile ist auch die Aufgabenstellung genau definiert, d.h. es geht darum, einen runden Kuchen in acht gleiche Stücke zu portionieren. Dabei soll nur ein einziger Punkt geteacht und die restlichen Punkte anschließend errechnet werden. Ich habe mir das so gedacht, dass die Mitte des Kuchens als Teachpunkt genommen wird. Das habe ich auch schon ausprobiert und den ersten Schnitt gemacht. bei den weiteren Schnitten (gerade die diagonalen) wird's deutlich schwieriger, da gleichzeitig mehrere Achsen bewegt werden und das Messer neu ausgerichtet werden muss. Hier sollte die Lösung doch die Vermessung des Werkzeuges sein, richtig? Wenn dem so ist, so hätte ich an dieser Stelle ein weiteres Problem. Die Werkzeugvermessung ist in der Inbetriebnahme ausgegraut, d.h. ich komme nicht in das entsprechende Menü. Ich habe diverse Benutzergruppen durchgetestet (bis hin zum Admin), die Menüfunktion blieb jedoch leider verwehrt. Wie kann ich es schaffen, in das Menü zu gelangen? Gibt es alternative Lösungen, die zum Ziel führen?
    Ich wäre über Hilfestellungen und gute Tipps sehr dankbar.
    Allen ein schönes Wochenende.
    Daniel

    Danke erst einmal für die schnellen Antworten. Habe mich heute schon durch Work Visual hindurchgewühlt und kann zumindest Programme runter- und hochladen. Was die Aufgabe betrifft, so ist das ganze innerhalb einer Projektarbeit in der FH zu bewältigen. Also nichts kommerzielles ;-). Trotzdem muss ich ja irgendwie 'nen Einstieg finden und hier ist sicher genug Kompetenz.
    Danke auf jeden Fall für die ersten Tipps. Über weitere Denkanstöße würde ich mich natürlich sehr freuen. Zeitgleich werde ich mich durch die Programmierunterlagen wühlen.
    Gruß
    Daniel

    Hallo zusammen,
    innerhalb einer Gruppenarbeit haben wir die Aufgabe, einen Kuka-Roboter dazu zu bringen, entweder ein quadratisches oder ein rundes Objekt in gleiche Teile zu schneiden. Es soll dabei nun ein einziger Punkt geteacht und die restlichen Punkte anschließend berechnet werden. Einige Male habe ich nun schon mit dem Operator Panel hantiert, um ein bisschen Übung zu bekommen (Punkte teachen usw.).
    Wie würde nun die Befehlszeile aussehen, wenn ich z.B. den geteachten Punkt P1 um den Wert für Y=-50mm versetzt anfahren möchte? Wahrscheinlich ist es hier am einfachsten, das Werkzeugkoordinatensystem zu nehmen, oder? Ich würde mich über viele gute Tipps sehr freuen.
    Gruß
    Daniel