Manipulation mehrerer E6POS via Script

  • Zitat

    von Sebastian T


    Für sowas brauchst du kein Usertech.

    Ok, er braucht kein Usertech. :)

    Zitat

    von Sebastian T


    Im Submit auf ein Ereigniss warten, was dein Usertech auslöst

    Er braucht das UserTech doch? :/

    Zitat

    von Sebastian T


    Eventuell besuchst du bei KUKA die Programmieren 2 Schulung - das dürfte dir einige graue Haare ersparen

    Vielleicht solltest du dich mit solchen Beurteilungen und Ratschlägen etwas zurückhalten.


    Die einfachste Lösung wäre das Schieben der Base. Aber wie Hermann schon geschrieben hat. Man kann es auch verkomplizieren.

    Mit UserTech könnte das gehen. Positionen zu Manipulieren ist auf jeden Fall möglich. Wird aber alles viel Zeit und einige Nerven kosten denke ich.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Schritt für Schritt zum Roboterprofi!
  • Von Punktemanipulation im Sps.sub halte ich nicht viel. Aber so würde es schon gehen.

    Allerdings hängt so eine Idee nicht unbedingt vom Besuch einer Kuka Schulung ab, hat eher was mit Fantasie, Ideenreichtum .... zu tun 😉

  • Für sowas brauchst du kein Usertech.

    • Einfach die zu manipulierenden Punkte Global halten - DECL GLOBAL K09P01
    • Im Submit auf ein Ereigniss warten, was dein Usertech auslöst - das könnte ein freier Ausgang sein, der den Zustand ändert If $out[1895] == TRUE THEN ..
    • dort dann die einzelnen Aggregate korrigieren K09P01.x=K09P01.x + 1 ; +1[mm]

    Eventuell besuchst du bei KUKA die Programmieren 2 Schulung - das dürfte dir einige graue Haare ersparen :) .

    Globale Punkte sind leider auch nicht möglich, da die Punktbezeichnung in anderen Programmen mit teilweise unterschiedlichen Koordinaten verwendet werden. Das habe ich vorher nicht erwähnt, sorry.


    Weiterhin erfüllt das ja nicht wirklich meine Funktion, wenn ich immer nur um einen Fixwert korrigiere.


    Danke für den Tipp mit der Schulung.

  • So wie ich dich verstehe, verrechnest Du ja jetzt schon die Positionen der weiteren Konturen von der Ursprungsposition her. Prinzipiell wäre ja das nichts anderes, als diese Berechnung nochmals ablaufen lassen nach dem Touchup via "Deine Taste".

    Kannst Du mal posten, wie Du dies aktuell exakt handelst (Code).


    Oder gleich die weiteren Konturen über einen Versatz mit dem geometrischen Operator koppeln an die Ursprungspunkte. Wäre Ja die andere einfache Versatzmöglichkeit, wenn Base-Verschiebung nicht erwünscht und wird so automatisch übernommen.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • So wie ich dich verstehe, verrechnest Du ja jetzt schon die Positionen der weiteren Konturen von der Ursprungsposition her. Prinzipiell wäre ja das nichts anderes, als diese Berechnung nochmals ablaufen lassen nach dem Touchup via "Deine Taste".

    Kannst Du mal posten, wie Du dies aktuell exakt handelst (Code).


    Oder gleich die weiteren Konturen über einen Versatz mit dem geometrischen Operator koppeln an die Ursprungspunkte. Wäre Ja die andere einfache Versatzmöglichkeit, wenn Base-Verschiebung nicht erwünscht und wird so automatisch übernommen.

    Kanz klares Jain :D ja, ich errechne mir die Punkte relativ zu der ersten Kontur, allerdings außerhalb von Kuka, mit einem selbstgeschriebenen Tool, welches mir die Programme erstellt. Die Punkte sind einfach fix in der Dat. im Roboter wird aktuell nichts verrechnet.


    Meine Überlegung war, die E6POS mit Variablen zu Füllen, das stelle ich mir ca so vor:


    DECL E6POS K01P01={X {VARP01X} + {Abstand},Y {VARP01Y},...usw.


    würde sowas denn funktionieren, oder ist das hinfällig, sobald man Touchup drückt?


    Diese Lösung ist zwar auch nicht erwünscht, man könnte aber ja ein solches Programm zum teachen nehmen, und sobald die Programme stehen, das ganze "übersetzen".



    Ist das das, was du mit dem geometrischen Operator koppeln meinst?

  • Kanz klares Jain :D ja, ich errechne mir die Punkte relativ zu der ersten Kontur, allerdings außerhalb von Kuka, mit einem selbstgeschriebenen Tool, welches mir die Programme erstellt.

    Okay.........

    Sonst noch eine Überraschung ?

    Irgendwie habe ich das Gefühl, Du bist "Programmierer" oder hast ein Talent dazu. Dann solltest Du doch auch Wissen, wie wichtig solche Infos sind um Dich zu Unterstützen !

    Steuerungsvariante ? / Softwarestand ? / Softwareoptionen ?

    Wie überträgst Du aktuell Dein extern generiertes Programm / holst Dein geteachtes Programm raus aus der KRC zum PC ?

    DECL E6POS K01P01={X {VARP01X} + {Abstand},Y {VARP01Y},...usw.

    Sowas geht in Deklarationen nicht.



    Geometrischer Operator mal so:

    VERSÄTZE DER KONTUREN WIE DU SIE EXTERN DEN POSITIONEN AUFRECHNEST

    Decl Frame Kontur_2, Kontur_8,

    Kontur_2 = { X 100,Y 0, Z 0,A 0,B 0,C 0}

    ...

    Kontur_8 = { X 200,Y 0, Z 0,A 0,B 0,C 0}

    ;URSPRUNGSKONTUR, DIE GANZ NORMAL GETEACHT WIRD

    PTP K01P01

    ....

    PTP K01P09

    ;FOLGEKONTUREN, DIE IMMER ZU AKTUELLER URSPRUNGSKONTUR ENTSPRICHT

    PTP Kontur_2:K01P01

    ....

    PTP Kontur_2:K01P09

    ;WEITERE KONTUREN

    PTP Kontur_8:K01P01

    ....

    PTP Kontur_8:K01P09

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Okay.........

    Sonst noch eine Überraschung ?

    Irgendwie habe ich das Gefühl, Du bist "Programmierer" oder hast ein Talent dazu. Dann solltest Du doch auch Wissen, wie wichtig solche Infos sind um Dich zu Unterstützen !

    Steuerungsvariante ? / Softwarestand ? / Softwareoptionen ?

    Wie überträgst Du aktuell Dein extern generiertes Programm / holst Dein geteachtes Programm raus aus der KRC zum PC ?

    Mir war nicht klar, dass es für meine Frage wichtig ist, wo die Programme her kommen. Das tut mir leid.


    Die Programme sollen auf einer KRC5 Steuerung laufen, Softwarestand ist 8.7.6. Übertragungen laufen über WorkVisual.

  • Falls es genügen würde das die Position nur nach jedem "Teilezyklus" angepasst wird, würde ich in jedem Upro ein Berechnungsteil aufrufen(vor dem Ablauf) . In diesen Berechungsteil werden die Punkte wie folgt berechnet:


    p1=p1tmp

    p1.x=p1tmp.x + variableX

    p1.y=p1tmp.y + variableY

    p1.z=p1tmp.z + variableZ


    Dies muss für alle Punkte gemacht werden.




    Fürs Teachen kannst du p1tmp teachen.




    Falls ich etwas überlesen habe und dies nicht der Lösung entsprechen kann tuts mir Leid.

  • Poste doch mal einen kurzen Codeschnipsel.



    Auch noch nicht beantwotet. ;)

    Von was genau möchtest du denn einen Codeschnipsel? Von dem externen Tool, welches nichts mit Kuka, oder meinem Problem zu tun hat, oder von der *.dat, die, wie beschrieben, einfach nur aus E6POS, LDAT und FDAT besteht ?




    Was sind denn Softwareoptionen? Ich habe einen nackten KRC5 Roboter und möchte die Funktion dafür einfügen. Das ganze wollte ich über UserTech realisieren. Bedeutet also, dass das installierte Optionspaket (falls du das meinst) UserTech wäre.

  • Löst leider das Problem nicht, trotzdem vielen Dank :-).

  • Von was genau möchtest du denn einen Codeschnipsel? Von dem externen Tool, welches nichts mit Kuka, oder meinem Problem zu tun hat, oder von der *.dat, die, wie beschrieben, einfach nur aus E6POS, LDAT und FDAT besteht ?




    Was sind denn Softwareoptionen? Ich habe einen nackten KRC5 Roboter und möchte die Funktion dafür einfügen. Das ganze wollte ich über UserTech realisieren. Bedeutet also, dass das installierte Optionspaket (falls du das meinst) UserTech wäre.

    Mensch leute......


    es geht hier einfach da drum, dass du mehr infos geben sollst damit man sich ein bild machen kann.


    Es geht nur hin und her ohne auf den grünen zweig zu kommen , das macht die sache nicht leichter. Du erwartest hier Hilfe von kompetente personen und man muss sich hier alles aus der nase ziehen.


    Hierzu zählen Programmdateien ,Softwarestände, Archive, Projekte, Bilder, Tools etc......


    Einfach mal paar infos posten ....

  • Okay, ich versuche nochmal alles an Infos zusammen zu fassen. Die Antwort "Poste doch mal ein paar Infos" auf meine Frage, welche Infos genau benötigt werden, finde ich zwar etwas komisch, aber ich möchte ja weiter kommen.



    Der Ursprüngliche Gedanke war folgender:


    Ist es möglich mittels UserTech eine Art eigenen Touchup Knopf zu gestalten, welcher nicht nur die E6POS des aktuell angewählten Punktes, sondern auch E6POS von Punkten mit gleichem Suffix ändert? Das ganze wollte ich mittels Script - wie in dem UserTech.pdf beschrieben ausführen. Dabei beschrieb ich im ersten Post folgende Probleme:


    - Name / E6POS des aktuell angewählten, oder zuletzt erreichten Punktes auslesen

    - Name / E6POS aller in der *.dat gespeicherten Punkte durchsuchen und vergleichen



    Erklärung der Gegebenheiten:


    Eine Kontur wird mittels Roboter linear umfahren. Die Kontur wird entlang der X-Achsae des Vermessenen Bases wiederholt. Jede Kontur hat allerdings ihre eigenen Punkte, weswegen eine Baseverschiebung weder funktioniert, noch durch Anpassung erwünscht wäre. Globale Punkte sind ebenfalls nicht möglich, da gleiche in anderen Programmen gleiche Punktnamen mit leicht anderen Koordinaten verwendet werden.


    Beispiel Kontur01Punkt01 (K01P01).


    Bedeutet K01P01 und K09P01 unterscheiden sich nur in X um den Abstand der Konturen.

    (siehe angehangene Dateien)S_6000_ON1.dat.txtS_6000_ON1.src.txt


    Weitere Infos:


    Laufen soll das ganze auf KRC5 (KSS8.7.5)

    Roboter ist ein KR300 R2700-2

    Der Roboter steht auf einer 7. Achse


    Ich weiß leider immer noch nicht was genau mit Softwareoptionen gemeint ist. Es ist kein VKRC oder sowas, ein ganz normaler, nackter Kuka-Roboter. Optionspakete werden auch nur Installiert, wenn für die Lösung des Problems hilfreich (z.B. UserTech)


    Auf dem Roboter berechne ich bis jetzt nichts. Die Punkte/Programme werden offline erstellt und per WorkVisual auf den Roboter übertragen.


    Das sind soweit alle Infos. Ich hoffe das ist alles, was für die Lösung oder Hilfe benötigt wird.


    Die bisher hilfreichste Antwort kam von SJX mit der Beschreibung von geometrischen Operatoren. Das Löst zwar mein Problem nicht, bietet aber eine gute alternative, welche zumindest das Teachen sinnvoll vereinfachen kann.


    Vielen Dank dafür!


    woodys ich finde es toll, dass auch du bei der Lösung meines Problems helfen möchtest. Ich würde dich nur bitte, anstelle deiner Analyse des bisherigen Verlaufes mit dem Fazit "Einfach mal paar infos posten" konkrete Fragen zu stellen. So weiß ich leider nicht was ich dir geben kann, um deine Hilfe zu ermöglichen. Vermutlich ist das aber auch gar nicht dein Ziel.


    Programmdateien hängen an

    Softwarestände -> von was? vom Roboter?

    Archive -> gibt es noch nicht, kann ich dir erstellen, liegt aber auch nur das angehangene Programm drin


    Projekte --> WoV Projekt? gleiche Antwort wie Archive

    Bilder -> Leider nicht erlaubt

    Tools --> Meinst du das eingemessene Tool? das wäre

    TOOL_DATA[1]={X 225.070,Y -226.460,Z 603.350,A 0.0,B 0.0,C 0.0}


  • Okay, ich versuche nochmal alles an Infos zusammen zu fassen. Die Antwort "Poste doch mal ein paar Infos" auf meine Frage, welche Infos genau benötigt werden, finde ich zwar etwas komisch, aber ich möchte ja weiter kommen.

    ....

    Schau mal da: https://www.robot-forum.com/ro…/thread/19970-read-first/ oder noch präziser: https://www.robot-forum.com/ro…t/?postID=85266#post85266

    da wird einiges lang und breit erklärt, ist zwar englisch, sollte aber hoffentlich kein Problem sein.


    Von was genau möchtest du denn einen Codeschnipsel? Von dem externen Tool, welches nichts mit Kuka, oder meinem Problem zu tun hat, oder von der *.dat, die, wie beschrieben, einfach nur aus E6POS, LDAT und FDAT besteht ?


    Was sind denn Softwareoptionen? Ich habe einen nackten KRC5 Roboter und möchte die Funktion dafür einfügen. Das ganze wollte ich über UserTech realisieren. Bedeutet also, dass das installierte Optionspaket (falls du das meinst) UserTech wäre.

    Ok, da hab' ich mich etwas unpräzise ausgedrückt, hatte mal angenommen, dass es klar ist, dass da das src File gemeint ist (und zu jedem Src gehört auch ein .dat file). Ist ja jetzt vorhanden. Da gibt es extreme Unterschiede, denn man kann die Folds verwenden, oder so wie beim Beispiel von SJX die Expertenbefehle verwenden. Zum Teachen der Experten Befehle benötigt man schon mal die Option ExpertTech. Die meisten Offline Programmierungstools verwenden die Expertenbefehle daher die Frage nach dem Codeschnipsel).


    Allerdings bin ich jetzt raus, denn meine Meinung dazu habe ich hier kundgetan, mehr fällt mir dazu nicht ein. Besser wird's nicht, wenn man alles noch ein paar mal wiederholt. Lies dir halt mal die Doku zum UserTech durch, dann kannst vielleicht selber sehen, ob es damit geht oder nicht.

  • Ich glaube ja, die Verständnisprobleme hier beruhen einfach darauf, dass Tobi eine Salatschüssel voller klassisch (mit FOLDs) geteachter Unterprogramme hat, behalten will und muss, während die Antwortenden alle mehr den programmiertechnisch logischen Ansatz verfolgen, das Problem vom Beginn her zu lösen - wo es einen ganzen Sack voller guter Möglichkeiten gäbe.


    Aber Tobi versucht jetzt, aus dem angerichteten Salat zielsicher die Gurkenstückchen rauszufischen, um sie an gleicher Stelle durch gleich geformte Tomatenstückchen zu ersetzen, sozusagen, ein eher überambitionierter Plan.


    Der Ansatz, das Programm nach dem Umteachen (in KRL!) parsen zu wollen und die "XP... " in den *.DAT zu manipulieren ist m. E. gleichermaßen overengineered wie instabil, wenngleich vielleicht möglich.

    Vorstellbar wäre für mich eher was, was dann eingreift, wenn man "die Gurke auf der Gabel hat". Da schießt einem allerdings die olle KUKA-Syntax quer, einfacher wär's, wenn "LIN" ein regulärer Routinenaufruf wäre. Vielleicht kann man stattdessen irgendeinen Übersetzer mit in die Folds schmuggeln (sozusagen mit UserTech "eigene" LIN-Folds kreieren), aber dann wäre man wohl immer noch genötigt, die einen umgeteachten Punkte zu den anderen noch-nicht-manipulierten Punkten irgendwie in Beziehung zu setzen. Stelle ich mir gleichermaßen instabil vor.


    Ich denke nicht, dass es unter den gegebenen (und wirklich dummen) Einschränkungen eine tatsächlich brauchbare Lösung gibt.

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