Beiträge von TobiLo

    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}


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

    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.

    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.

    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?

    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.

    Ich versuche mal zu erklären:


    Der Roboter fährt eine Kontur ab. Diese Kontur wiederholt sich x mal. Entsprechend sind die Punkte zum Umfahren der Kontur immer gleich und unterscheiden sich relativ zum Base nur um ein delta in X (Abstand der Konturen). Die Punktnamen sind zum Beispiel Kontur01Punkt01 (K01P01).


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


    Alle Punkte stehen einfach in dem Programm. Es ist nicht erwünscht z.B. die Kontur einmal abzufahren und anschließend das Base zu verschieben.


    Jetzt möchte ich beim nachteachen der Programme die Änderungen, welche ich per Touchup an K01P01 mache auch direkt an alle anderen P01 übertragen. Dafür war mein Gedanke, könnte man sich ja vielleicht einen eigenen TouchUp-Knopf basteln, welcher eben diese Aufgabe übernimmt.


    Ich hoffe das Problem ist verständlich :D

    Meine Probleme bleiben dabei ja bestehen. Ob ich ein Array, oder nur die E6POS suche, oder

    Folgende Probleme kann ich aktuell nicht Lösen:


    - Name / E6POS des aktuell angewählten, oder zuletzt erreichten Punktes auslesen
    - Name / E6POS aller in der *.dat gespeicherten Punkte durchsuchen und vergleichen

    Du willst also ein Usertech Projekt erstellen, und bezeichnet das als Skript!?

    Ich würde das nicht wirklich als Skript bezeichnen.

    Naja, in der UserTech Doku wird ja klar von Scripten gesprochen, die ausgeführt werden. Wie nennt man das denn?


    Also Programme aus Programmen manipulieren wäre mir neu, dass das gehen sollte. Aber Daten kann man schon ändern, alles andere wäre dann auch komisch.

    Allerdings scheint es mir in diesem Fall wieder mal darauf rauszulaufen, dass anhand von Variablennamen, die in Strings gespeichert sind, auf die entsprechenden Daten zugegriffen werden soll

    Das geht so m. W. nicht.

    Da würde ich mir ein Konzept mit einer Textdatei, in der die Daten gespeichert werden überlegen. Textdateien kann man seit der KRC4, per KRL halbwegs komfortabel einlesen und beschreiben. Die landen auch auf der Festplatte, so dass man sie notfalls mit externen Programmen/Skripten bearbeiten kann.

    Wenn ich dich richtig verstehe, wäre also der Weg, die Variablen (angewähltes Modul und zuletzt erreichter Punkt) in eine Textdatei zu schreiben und extern (auf der Computerseite) zu verarbeiten, indem ich mir ein Programm schreibe, dass die Änderungen wie gewünscht vornimmt und die Programme entsprechend manipuliert. Gibt es dann einen einfachen weg, die Programme von Computer in das Echtzeitsystem zu bekommen, oder hilft da nur ein Neustart?


    So hätte ich die Anfrage jetzt verstanden. Er will die Koordinaten überschreiben. Oder nicht Tobilo?

    Ja, es sollen konkret die E6POS manipuliert werden. Stellt euch das wie einen "eigenen TouchUp" Knopf vor. Ich möchte meine aktuelle Position im aktuell angewählten Punkt speichern und bei anderen Punkten mit gleichem Suffix eine verrechnete E6POS entsprechend ebenfalls speichern.

    Hallo zusammen,

    ich suche eine Möglichkeit, mehrere Punkte, per Script zu manipulieren.
    Ähnlich der Funktion "TouchUp" sollen Punkte mit ähnlicher Bezeichnung (Suffix) mit der aktuellen Position überschrieben werden.

    Ich weiß, mehrere Punkte mit gleicher Koordinate klingt komisch, ist aber in diesem Fall nicht zu vermeiden.


    Folgende Probleme kann ich aktuell nicht Lösen:


    - Name / E6POS des aktuell angewählten, oder zuletzt erreichten Punktes auslesen
    - Name / E6POS aller in der *.dat gespeicherten Punkte durchsuchen und vergleichen


    Vielleicht hat jemand eine Idee zu den bestehenden Problemen.


    Danke.