Posts by Jonas315

    Moin

    sicherlich hattest du bei deiner Bewegung im World auch den externen TCP aktiv? Genau wie bei einem "internen" TCP an deinem Roboter, orientiert sich dieser dann im World System.

    Wenn du keine Bewegung in Bezug auf den externen TCP fahren möchtest, kannst du auch wie gewohnt mit Tool 0 (Roboterflansch) fahren.
    Man kann in der Konfiguration vom Roboter übrigens auch die Orientierung von Robroot ändern (bspw wenn der Roboter Überkopf oder an einer Wand montiert wurde). Evtl. steht diese nicht mehr auf 0° ?

    Hier ein schnelles Beispiel wenn du nur den Interrupt verwenden möchtest:


    Interrupt definieren:
    Def MoTrg 1, ((P_FsCurD.Z >= 5) And (P_Curr.Z < 722.5)) Or (P_FsCurD.Z > 10)
    Def Act 1,M_MoTrg(1)=1 GoSub *Pick,F


    Hier wird dann der Interrupt aktiviert und mit reduzierte Geschwindigkeit über ein MVS die gewünschte Position agefahren, bis diese über den Interrupt unterbrochen wird:

    SetMoTrg 1
    Act 1 = 1
    Spd 150
    Dly 0.05
    Mvs p_01
    '
    *Pick


    Direkt nach dem Mvs könnte man zb noch eine Fehlerlogik einbauen (Position erreicht, ohne das die gewünschte Kraft erreicht wurde). Nach dem Interrupt Einsprung (*Pick) kommt dann der Ablauf den du nach dem erreichen der Kraft brauchst.

    Mittlerweile kann ich das Thema auch selbst beantworten :)

    Letztendlich gibt es 2 Möglichkeiten den Kraftsensor zu integrieren:

    1 Die Funktion ForceSenseControl nutzen
    Hierbei wird über von dir vorgegebene Parameter eine automatische Roboterbewegung angestartet. Bspw "Fahre solange in Z bis Kraft X erreicht ist". Vorteil ist hier das es in der Funktion FSC mehrere Parameter gibt um den gewünschten Bewegungsablauf zu definieren. Im Handbuch gibt es hier auch mehrere Beispielprogrammabläufe.

    2 Standardbewegungsablauf mit Interrupt Anweisung
    Hier würdest du bspw eine normale MVS Bewegung definieren und währenddessen auf die Kraft des Sensors über einen Interrupt (ACT 1) reagieren. Ist ein wenig schmaler und wenn man die FSC Funktion nicht kennt auch leichter umzusetzen. Durch die Begrenzung des Interrupts auf (ich meine 6 Bedingungen?) allerdings nicht empfehlenswert bei komplexen Anwendungen.

    Bei Mitsubishi gibts ansonsten auch sehr viel Doku direkt in der RTToolBox, viele Systemparameter sind direkt in der Parameterliste beschrieben und ansonsten kommst du (mit dem Cursor direkt im Befehl oder Parameter) mit F1 direkt in eine sehr ausführliche Hilfe.

    Was die sichere Überwachung angeht, finde ich nur den Systemparameter

    $SAFE_FS_STATE

    Beschreibung:
    Zustand der Sicherheitssteuerung
    Die Variable zeigt an, ob die Sicherheitssteuerung fehlerfrei läuft. Wenn
    die Variable TRUE wird, hat die sichere Überwachung den fehlersicheren
    Zustand aktiviert und die Sicherheitssteuerung ist nicht mehr lauffähig.


    Gibt es seit der Version 3.2 vom SafeOp evtl. genau in diesem Bereich weitreichende Änderungen? Die jüngste Version ist es ja nun nicht. Falls hier sonst keine Antwort kommt, solltest du vielleicht mal die entsprechende Doku zu dieser Version überfliegen.

    Eine De- und Neuinstallation des Optionspaketes sollte das Ganze ansonsten auch wieder auf Default Einstellungen zurücksetzen.


    Viel Erfolg!

    Von deiner Fragestellung weiß ich gerade nicht zu 100% was du machen möchtest :/

    Zur Frage wie du zusammenhängende Bauteile "trennen" kannst:
    In dem Reiter "Modellieren" (oder so ähnlich? Müsste der 2. von Links sein, neben "Start") musst du die entsprechenden Bauteil Markieren und dann kannst du diese mit einem Rechtsklick und "Komponente extrahieren" in eine neue Baugruppe verschieben.

    Diese kannst du dann beliebig umbenennen, positionieren, ausblenden, etc.


    Falls du das in der Zwischenzeit nicht schon selber herausgefunden hast :)

    Hi, ein Frame wäre die einfachste Lösung. Bei den einzelnen Punkten kannst du dann entscheiden ob es auf das Tool oder die Base bezogen angewendet werden soll

    Damit ist dann wohl gemeint das du dir ein Frame (eine X,Y,Z,A,B,C Koordinate) als Grundlage zur Berechnung der Position definieren könntest.


    Also sowas wie:

    DECL E6POS CalcPos
    DECL FRAME OffsFrame = {X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0}

    Mit dem Frame und deiner Ursprungsposition kannst du dann beliebig in den Koordinaten rechnen, also

    CalcPos = Position01

    OffsFrame.X = 100
    OffsFrame.Y = -50

    CalcPos= CalcPos:OffsFrame

    ...als Unterfunktion und dann im eigentlichen Programmteil die Fahrt


    SLIN CalcPos


    Denke als Grundlage kann man das so nachvollziehen :)

    Klingt danach als ob in dem Programmaufruf noch einzelne Initialisierungen fehlen.

    Bei der "Basistech ini" welche standardmäßig von Kuka bei neuen Programmen zu Anfang eingefügt werden sind alle Default Initialisierungen enthalten (Achsgeschwindigkeiten/beschleunigungen, etc.) "BAS ...":

    ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
      BAS (#INITMOV,0 )
    ;ENDFOLD (BASISTECH INI)


    Füg mal die Zeile zu Beginn des Programmaufrufs (vor der "PTP $POS_ACT") bei dir ein. Ein PTP $POS_ACT hätte ich aber auch als erstes Vorgeschlagen :saint:

    Deklariere mal deine M1,M2,etc als Integer zu beginn des Programms, ich vermute mal das er deswegen Probleme macht :)


    Sehe gerade das du deine Merker als integer Variable (für die For Schleifen) und als Sprung mit GoTo verwendest, daher kommt das Problem.

    Du musst das also trennen, also einmal ein Sprungziel *Schleife1 / *Schleife2 / etc
    Und einmal deine Integer für die FOR also Counter1 / Counter2 / etc

    Für Variablen oder Funktionen kannst du "Trigger Distance/Path" verwenden.

    Sind Kuka Funktionen, Beschreibung findest du ausführlich in der Doku.


    Beispiel:

    TRIGGER WHEN DISTANCE=0 DELAY=0 DO XXX //Aktion beim verlassen des Startpunktes
    TRIGGER WHEN DISTANCE=1 DELAY=0 DO XXX //Aktion beim erreichen des Zielpunktes

    Hallo Zusammen,

    hin und wieder fällt es mir bei Vorlageprojekten auf, das noch eine alte/vorherige Steuerung in der Zellkonfiguration von WorkVisual abgelegt ist. Bisher habe ich noch keine Möglichkeit gefunden diese zu entfernen.

    "Löschen" selbst ist bei den ausgegrauten Steuerungen nicht verfügbar und auch wenn ich "fehlende Steuerungen" nach Lade und diese dann Lösche, bleibt die Steuerung immer noch ausgegraut in der Konfiguration :/

    Moin Jan,

    direkt zu mxautomation kann ich dir nicht viel sagen, da wir hierfür eine eigene Variante entwickelt haben.

    Das was du in dem Bild zeigst sind die sog. "Langtexte" (bspw im Projekt über WoV editierbar). Eine Bedienungsanleitung zu mxautomation findest du auch im Verzeichnis deiner Optionspakete als PDF oder unter my.kuka bei "Kuka Xpert".

    Moin Zusammen,

    ich suche nach einer Möglichkeit, eine Quittier Meldung (MSGQuitt von Kuka) an eine externe Steuerung (Siemens SPS) zu übergeben. Eigentlich dachte ich, dass dies automatisch über das Signal $STOPMESS passiert (Allgemeines Signal "In Störung, etc." wäre vollkommen ausreichend, muss also nicht das ganze als String sein).

    Arbeite mit einer KRC5 mit V8.7.6


    Danke schon mal Vorab! :)

    Kenne solche Fehler auch häufig sobald man mit dem Mercedes Template arbeitet. Dort gibt es eine Benutzeranwahl über den EKS, was nicht so zu 100% sauber läuft.

    Du kannst bei der Installation über WoV auch einfach über "Weiter" durchtickern solange bis das Projekt übertragen wurde, die Aktivierung kannst du dann normalerweise auch einfach über den Projektmanager am Panel durchführen.

    Da musst du vermutlich einmal kurz rumprobieren. Ist bei mir auch schon länger her mit der indirekten Vermessung...

    Ich meine du musst deinen indirekten Punkt anfahren, den dann über TouchUp übernehmen und denn entsprechenden Offset dann auch im selben Feld addieren.

    Also TouchUp X 356.4 mit einem Offset von 100mm dann ändern zu X 456.4

    Viel Erfolg!