Aus Dat Datei Frame Daten auslesen

  • Hallo Leute!


    Ein paar Fragen zum KUKA:


    1. Wenn ich einen Fahrbefehl erstelle (PTP, LIN), dann sind die Punkte (geteacht) in einer .dat datei Abgespeichert.
    Bestehen die gespeicherten Daten nur aus einem FRAME? Also wird nur X,Y,Z, A,B,C gespeichert?


    2. Ich brauche aus einer .dat datei die Daten des FRAMEs. Wie kann ich die auslesen? Die .dat Datei sieht sehr verwirrend aus. :bawling:


    Gruß
    Happyman0815

  • Schritt für Schritt zum Roboterprofi!
  • Normalerweise ist ein über Inlineformular angelegter Punkt immer E6POS.
    z. B.
    E6POS XP1 = {x 0, y 0, z 0, a...e1 0.0 e2...e6}


    wenn Du nur das Frame brauchst, also xyzabc dann schreib dir ne Funktion
    DEFFCT FRAME E6PosToFrame(E6POS :IN)
    DECL FRAME fTMP
    fTMP.X = E6POS.X
    .
    .
    .
    fTMP.C = E6POS.C
    ENDFCT

    Als Ergebnis bekommst Du bei
    fNewFrame = E6PosToFrame(XP1)
    ein Frame was Du benutzen kannst wie Du willst.

  • Hallo,
    du kannst auch einfach im *.dat folgendes deklarieren


    DECL E6POS XP1_={X -117.0,Y 409.839996,Z 381.480011,A 84.8600006,B 89.8300018,C -80.2099991,S 6,T 51,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    DECL FRAME XFRAME_={X -245.961151,Y 434.515778,Z 311.496582,A -175.196121,B 0.0278869271,C -179.455948}


    und im *.src machst du dann einfach


    XFRAME_=XP1_


    bis dann cu Christian ... .

  • Danke schonmal für die Antworten!


    Sind in einem geteachten Fahrbefehl denn noch mehrere Befehle enthalten?


    Der Sinn:


    --> Ich entwickle ein C++ Programm der dem Roboter Fahrbefehle zusendet. Es gibt einige Fahrbefehle die im Roboter derzeit geteacht sind. Diese Inforamtionen brauche ich im C++ Programm um dem Roboter von dort aus zu sagen wo er hin soll.


    Gruß
    Happyman0815

  • Bei einem E6POS Typ sind noch S und T (Status, TURN) dabei, diese beiden Byte's definieren die genaue Orientierung der Achsen da du ja einen POS Typ mit einer anderen Achskonfiguration anfahren könntest!


  • Bei einem E6POS Typ sind noch S und T (Status, TURN) dabei, diese beiden Byte's definieren die genaue Orientierung der Achsen da du ja einen POS Typ mit einer anderen Achskonfiguration anfahren könntest!


    Ich denke was Titan72 noch dazu schreiben wollte ist: du musst diese Status und Turn Werte ebenfalls mitübermitteln, sonst weiss der Roboter nicht eindeutig wie er fahren muss. (Erklärung für Status und Turn in der Doku im Anhang ab 8.4 bzw Seite 213)


    mal eine andere Frage: Warum lässt du die Steuerung "Dumm Sterben" und übermittelst die Zielpositionen von Extern?

  • Hallo!


    Der Roboter hat recht viel Bewegungsfreiraum.
    In der Doku in deinem Anhang steht, das nur einmal eine genaue Position angefahren werden muss (mit S und T).
    Das wäre dann bei mir die SAK fahrt. Von da aus kann er ruhig immer den kürzesten Weg selber wählen.


    Die Steuerung bleibt dumm, weil es Programmtechnisch einfacher wird. Der KUKA verfügt über einer Objekterkennung via. Kamera, die dazu noch Koordinatensysteme so verdreht, das der KUKA mit dem Objekt arbeiten kann. Das alles lässt sich (wie ich finde) besser direkt im C Programm abwickeln.


    Gibt es eigentlich auch eine Möglichkeit sich die Framedaten auf dem KUKA Pannel ausgeben zu lassen?
    Wie gesagt ich muss die Daten einfach nur abschreiben und ins C++ Programm eintragen.



    Gruß
    Happyman0815

  • Hallo Happyman,
    mit ausgeben meinst Du anzeigen, ja. Das mit S & T kenne ich auch so, einmal definiert klappt das auch erst mal ich bin mir nur nicht sicher wie es sich verhalten würde wenn eine andere Achskonfig. notwendig wäre...


    Gruß, robots

  • Die steuerung entscheidet da aber unter Umständen nicht immer so wie du es dir Wünschen würdest. Also gut und vor allem langsam Testen was er macht. Sollte aber logisch sein ;)


    ok, bei Objekterkennung kann es schon evtl leichter sein mit C. Glaub ich würd das aber auch am Roboter machen, in dem du die X,Y,Z,A,B,C Werte der Kamera an die Steuerung übergibst.


    ja, die möglichkeit gibts. Das ist dann im Variablenmonitor den du über "Anzeige -> Variable -> Übersicht" findest. Falls du mit dem Variablenmonitor nicht ganz zurecht kommst schau dich mal in der Doku schlau oder frag hier nochmal nach. ist aber ziemlich selbsterklärend.
    Der Variablenmonitor ist allerdings nicht gerade das Komfortabelste für den Bediener. Der ist eben leider etwas versteckt im Bedienpanel.

  • Anzeige, Istposition, Kartesisch 'Position und Orientierung' sind dann dein Frame. Kann nur ganz gefählich werden für dein Schlauchpaket bei vielen Bewegungen und nur einmal S und T!!!

  • Hmm ja da wirst du wohl recht haben. Ich werde dann nach jedem Auftrag eine Ausgangsposition anfahren die S und T enthält. Die Arbeitspunkte sind nicht sehr weit von diesem Punkt entfernt entfernt, daher sollten dann wohl keine Probleme auftreten.

  • Du solltest ihn nur immer in eine Orientierung zwingen über E6POS und ist alles gut mit FRAME oder POS!

  • Hallo,


    das mit dem Auslesen der Positionen ist die kleinste Schwierigkeit.
    Es gibt nur ein paar Typen von Positionsvariablen.


    1. AXIS
    2. E6AXIS
    3. E6POS
    4. POS
    5. FRAME


    Die Typen E6pos und E6Axis sind nicht von Interesse, wenn du keine externen Achsen hast.
    Axis und Frame sind unabhaengig von der Achskonfiguration.
    E6pos und pos dagegen schon, da kann eine Verschiebung bei PTP-Punkten schon mal zu "komischen Bewegungen" fuehren.


    Das manipulieren vom Dat selber bringt nix. Weisst du, wie du das File auf die Steuerung bekommst??


    Gruss Stefan

  • Ich habe vor alle Punkte mit LIN Bewegungen anzufahren. Das komische PTP Bewegungen verhindern.


    Zitat

    Das manipulieren vom Dat selber bringt nix. Weisst du, wie du das File auf die Steuerung bekommst??


    Weiß nicht genau wie du das meinst... Wenn du damit meinst wie die Kommunikation zwischen KUKA und C++ Software abläuft, ==> der Datenaustausch wird über XML Files via. Ethernet realisiert.

  • Ok mit ethernet xml gehts.


    Mit allen Punkten als lin wirst du nicht gluecklich werden. Zumidest als erster Punkt im Programm ist eine PTP-Bewegung noetig ("Meldung unzulaessige Startbewegung").


    Du koenntest als erste Bewegung PTP $pos_act oder PTP $axis_act fahren.


    Alles linear zu machen hat nur zur Folge, das dem Roboter die Konfiguration wurscht ist.
    Darauf musst du dann selber aufpassen - wenn sich die Konfiguration nach mehreren Linearbewegungen aendert, fahrt dir der Roboter irgendwann in die Software-Endschalter.


    Gruss Stefan

  • Schon klar, allerdings arbeitet bei uns der Roboter in einem kleinen Arbeitsraum, selbst wenn sich die Achdenkonfiguration ändern sollte, ist das kein Problem, da um ihn herum nichts ist.



    Gruß
    Happyman0815

  • Wie gesagt, denk nur an dein Schlauchpaket, wenn ab dann ab ... .

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden