Beiträge von fubini

    Hallo Hinky,


    der geteachte Status des Zielpunkts wird bei LIN bzw. CIRC komplett ignoriert und allein durch den Status des Startpunkts definiert. Ferner ist der Turn ja sowieso automatisch durch den Turn des Zielpunkts festgelegt, da der Weg vom Start zum Zielpunkt immer über kürzesten Weg von Interpolationspunkt zu Interpolationspunkt gefahren wird.


    Prinzipiell lässt sich das Verhalten für den Satus über das Statuswechselbit $POS_SWB[] in den Maschinendaten anpassen. Setzt man dort z.B $POS_SWB[3] = 1 so wird beim Durchfahren von Achse 5 = 0 der Status gewechselt. Allerdings ist Nutzung dieses Feature nur nach Rücksprache mit KUKA erlaubt, da es wenn man nicht exakt durch die Singularität sondern nahe daran vorbei fährt zu Problemen kommen kann. Hier kann es sonst passieren, das je nach Interpolationspunkt mal der Status gewechselt wird und mal nicht. D.h. z.B. kann es vorkommen, dass bei 30% Override der Status nicht gewechselt wird, bei 100% aber schon.


    Gruß
    Fubini

    Hallo Herrmann,


    nur zur Info: Auch bei LIN-Fahren spielt der Status eine Rolle. Es wird nämlich (im Defaultfall) genau so gefahren, dass der Status des Startpunkts der Bewegung beibehalten wird. Das ist dann auch der Grund warum der Roboter z.B. beim Durchfahren der Nullstellung von Achse 5 Achse 4 und 6 um 180° drehen muss. Würde hier ein Statuswechsel gemacht könnte er gerade ohne Verdrehung der Achsen 4 und 6 durchfahren.


    Gruß
    Fubini

    Hallo Movemaster,


    durch das setzen von $DSECHANNEL mapst du nur die Verbindung Grundsystem zu DSE-Regelkreis um. Damit dahiner auch die richtige Roboter Achse steht musst du auch noch $POSINPUT_SENSORCHANNEL[] anpassen. Da steht die Verbindung DSE-Regelkreis zu RDW-Kanal drin.


    Beispiel:


    $DSECHANNEL[1]=5 Grundsystem-Achse 1 wird auf der DSE vom Regelkreis 5 bedient
    $POSINPUT_SENSORCHANNEL[5]=7 DSE-Regelkreis 5 wird von Resolversteckplatz 7 der RDW bedient


    Gruß
    Fubini

    Hallo,


    auch wenn es die nicht weiterhilft D steht für denominator (engl. für Nenner) und N für Numerator (engl. für Zähler).


    Hast du dir auch RAT_MOT_ENC (Übersetzung Inkremente -> Motorumdrehungen) korrekt gesetzt. Dazu sollte auch $AXIS_RESO korrekt gesetzt sein. Bei einem 16 Bit Resolver bedeutet $AXIS_RESO=4096, dass vier Resolverumdrehungen einer Motorumdrehung entsprechen.


    Gruß
    Fubini

    Hallo,


    du solltest dich mal über OfficeLitevon KUKA informieren. Das ist eigentlich die komplette Robotersteuerung nur dass eben kein echter Roboter angeschlossen ist, sondern die Software lokal auf deinem PC installiert wird.


    Gruß
    Fubini

    Hallo Chriko,


    nachdem du zwei verschiedene Einzelachsen hast musst du folgendes setzen:
    $EX_AX_NUM=2 (Anzahl Zusatzachsen)
    $EX_KIN = {ET1 #EASYS, ET2 #EBSYS, ...}


    Jetzt musst du nachdem es zwei Einzelne Kinamatiken sind noch
    $ET1_AX={TR_A1 #E1, TR_A2 #NONE...)
    $ET2_AX={TR_A1 #E2, TR_A2 #NONE...)
    setzen, damit Achse 7 der ersten und Achse 8 der zweiten Zusatzachse zugeordnet ist.


    Dann müssen sowohl $ET1_TA1KR = {X 0.0, ...}, $ET1_TFLA3 = {X 0.0, ...} als auch $ET2_TA1KR = {X 0.0, ...},$ET2_TFLA3 = {X 0.0, ...} mit den Daten deines Zellaufbaus gefüllt werden, d.h. du musst noch die Lage und Orientierung von Achse 7 bzw. 8 in dieses Frames eintragen. Dazu brauchst du den angesprochenen Bezug zum Roboterfußpunktkoordinatensystem. Du kannst mal in R1/$machine.dat nach dem Eintrag $ROBROOT suchen, der beschreibt Lage und Orientierung des Roboterfusses in der Welt. Wahrscheinlich sind bei dir dort alle Einträge Null.


    Ist dass der Fall ist das Roboterfusspnktsystem folgendermassen ausgerichtet: In der HOME-Position 0,-90,90,0,0,0,0 zeigt falls du vor dem Roboterflansch stehst, die x-Achse genau auf dich zu die y-Achse nach rechts und die z-Achse nach oben. In diesem Koordinatensystem muss du dann die Lage deiner Zusatachse beschreiben und in $ET1_TA1KR bzw. $ET2_TA1KR eintragen. Dabei beschreibt die X-Komponente den Versatz in x bezogen auf das Roboterfusssystem, y den Versatz in Y, z den in z-Richtung. Ferner geben die ABC-Winkel die Verdrehung gegenüber dem Roboterfuss an, d.h. in eine dieser Komponenten wirst du wahrscheinlich deine +-45 eintragen müssen. In welche kann man deiner Beschreibung leider nicht entnehmen. Jedenfalls ist A die Verdrehung um die z-Achse des Roboterfusses, B um die y-Achse und c um die x-Achse.


    Mit dem Flansch machst du es dann genauso nur das du die Lage und Orientierung nicht mehr beschreibst im Bezug auf den Roboterfuss sondern auf das Achse 7 bzw. Achse 8 Koordinaten System, dass du ja bereits über $ET1_TA1KR bzw $ET2_TA1KR festgelgt hast.


    Zur Aktivierung des externen Bases musst du dann einfach eine normale Zuweisung an $BASE=... im Programm machen. Ist es ein externes Base aktivierst du damit automatisch die geometrische Kopplung.


    Gruß
    Fubini

    Hallo Chriko,


    falls du etwas genauer sagen kannst was für externe Achsen du hast, kann ich dir vielleicht helfen:


    - Sind das zwei zusätzliche Einzelachsen oder eine externe Kinematik (z.B. ein Dreh-Kipptisch)?
    - Steht dein Roboter auf einer der Zusatzachsen, d.h. ist eine davon z.B. eine Lineareinheit (KL)?
    - Hast du die Einstellung was Motoren usw. angeht schon alles gemacht und es fehlt die nur noch die Trafo?


    Ansonsten muss ich hier zu viele Fälle durchdiskutieren. Falls du selbst schonmal testen willst solltest du in der R1/$machine.dat mal nach folgenden Einträgen schauen, da müsste Einträge so ähnlich wie hier beispielhatf angegeben stehen:


    $EX_AX_NUM=2 (Anzahl Zusatzachsen)


    $EX_KIN = {ET1 #EASYS, ET2 #EBSYS, ...} (Kennung der Kinematik ERSYS im KL-Fall, EASYS,...,EFSYS sonst)


    $ET1_AX={TR_A1 #E1, TR_A2 #E2,...) (Zuordnung der Achse zur Kinematik, z.B. bei Dreh-Kipptisch sind zwei Achsen En zuzuordnen


    $ET1_TA1KR={X 100.0, Y 450.0, ...} Lage und Orientierung der 1. Achse der Kinematik ET1 bezogen auf den Roboterfuß


    $ET1_TA2A1={X 100.0, Y 450.0, ...} Lage und Orientierung der 2. Achse der Kinematik ET1 bezogen auf die 1.Achse
    ...
    $ET1_TFLA3={X 100.0, Y 450.0, ...} Lage und Orientierung des Flansch der Kinematik ET1 bezogen auf die 3. Achse (falls nich vorhanden muss in $ET1_TA3A2 überall Null eingetragen haben, damit man dann an Achse 2 hängt)


    $ET1_TPINFL={X 10.0, Y -765.0, ...} Messpunkt zur Vermessung der externen Kinematik, beschreibt die Lage und Orientierung einesMesspunkts bezüglich des Flansch der Kinematik. Dadurch kann man für Vermessungen einen beliebigen Punkt auf der Kinematik angeben, der nicht genau im Ursprung des Flansch liegt, da dieser Punkt normalerweise nicht bis gar nicht angefahren werden kann.


    Gruß
    Fubini

    Hallo Michel,


    nur zur Info: ja KCP tauschen ist eventuell tatsächlich notwendig. Man braucht nämlich ein KCP bei dem der T1-Modus sicherheitstechnisch redundant verdrahtet (zweikanaliger Eingang auf der SafeRDW für T1-Modus) ist. Das ist bei älteren KCPs nicht der Fall.


    Gruß
    Fubini

    Hallo maxx,


    wenn ihr die Safe-Technologie gar nicht braucht könntet ihr ja überlegen den Schrank auf einen normalen KRC2 umzurüsten. Die Option SafeRobot zu deinstallieren reicht dazu aber leider nicht aus, sondern es müssen dafür einige Hardware-Komponenten getauscht werden (z.B. CI3-Tech, ESC, SafeRDW->RDW2, KCP). Ich würde euch aber nicht empfehlen das selber zu machen. Alternativ könnt ihr ja auch einen passenden unbenutzten KRC2-Schrank verwenden.


    Gruß
    Fubini

    Hallo maxx,


    die Antwort ist ein klares Jein. Der Bremsentest ist ab SafeRobot 2.0.5(?) für jede Achse auf eigenes Benutzerrisiko einzeln abschaltbar. Bei der Justagereferenzierung ist das nicht möglich. Allerdings wäre ich bei so einem Vorgehen vorsichtig, da es sicherheitstechnisch bedenklich ist. Außerdem gehe ich davon aus, dass KUKA, falls was passiert die Verantwortung ablehnen wird.


    Gruß
    Fubini

    Hallo Heager,


    ein bischen mehr Info wäre gut:



    Mit welchem Kriterium willst du überschleifen: C_DIS, C_VEL, C_PTP, C_ORI?
    Von was für einem Satz auf was für einen: PTP -> LIN oder CIRC, LIN oder CIRC -> PTP, Lin oder CIRC -> LIN oder CIRC, PTP -> PTP?
    Wie lang sind die Bewegungungen? KUKA beschränkt auf Bewegunslänge/2, d.h. zum Beispiel bei einem LIN der Länge 100 mm maximal 50mm Überschleifradius. Anderst du dann den Radius auf 75 passiert gar nichts.


    Gruß
    Fubini

    Hallo,


    in der V5.5 gab es vor kurzem einen Fehler bei dem u. a. bei Satzanwahl und MSTEP-> Go Betriebswechsel ein falsches BASE verwendet wurde. Soweit ich weiss ist dass erst in der V5.5.5 behoben, so dass ich empfehle mal auf KUKA zuzugehen und eventuell einen Softwareupdate zu machen.


    Gruß
    Fubini

    Hallo Sebastian,


    hast du daran gedacht im Parametriertool beim SafeRobot den TCP des aktuell aktiven Werkzeugs auch deinen Gebenheiten anzupassen? SafeRobot überwacht die Geschwindigkeit am TCP seinen Werkzeugs nicht am TCP deines gerade aktiven $TOOL deines Bewegungsprogrammes.


    Ist der Eingang ED_V auf der SafeRDW auf low? Die Funktionalität sicher reduzierte Geschwindigkeit wird erst dadurch aktiviert. Insbesondere musst du natürlich aufpassen wann du den Eingang auf low ziehst. Machst du das in einem Augenblick wo der Roboter bereits schneller als die Geschwindigkeitsgrenze ist kann $SR_OV_RED natürlich nichts mehr ausrichten.


    Der $SR_OV_RED-Mechanismus stellt keine 100% Garantie dar dass es immer klappt, sondern ist eher ein Mechanismus der dem Roboter sagt versuch bitte die Geschwindigkeit einzuhalten. Insbesondere zählt er nicht zur Sicherheitsfunktionalität sondern ist ein Feature, das dem Anwender nur erleichtern soll die Geschwindigkeitsgrenzen einzuhalten ohne bei den Bewegungssätzen immer die korrekte Geschwindigkeit zu programmieren (was natürlich bei PTP etwas schwierig ist, da es dort keine programmierbare kartesische Geschwindigkeit gibt). Eventuell reichen aber in deiner Konstellation hier 90% bei $SR_OV_RED im LIN auch nicht aus. Du kannst die Grenze aber auch Satzbezogen aus dem Bewegungsprogramm verringern:


    $SR_OV_RED = 90
    PTP XP1


    $SR_OV_RED = 80
    LIN XP2


    $SR_OV_RED = 90
    ...




    Gruß
    Fubini

    Hallo Rasputin,


    um dir genauer weiterhelfen zu können benötige ich ein paar Zusatzinfos:


    - Welche Softwareversion nutzt du? SafeRobot V2.0 mit KRC v5.5 oder SafeRobot V1.1 mit KRC V5.4.
    - Wie hast du beim Roboter die Achsen 5 und 6 rausgenommen: $AX_SIM_ON? (SafeRobot rechnet intern seine eigene Transformation, so dass selbst wenn es auf der Oberfläche korrekt aussieht die SafeRDW eine andere Trafo rechnen kann und dann der Vergleich der kartesischen Position bei der Justagereferenzierung fehlschlagen kann.)
    - Geht es bei dem Vierachser um einen KUKA Palletierer? Anderenfalls ist SafeRobot nicht einsetzbar, da nur Standard-6-Achser, der KUKA-Jet und eben dieser 4-Achs-Palletierer unterstützt werden können.


    Gruß
    Fubini