Toolmanipulation in Echtzeit???

  • Hallo ihr die ihr schlauer seid als ich,


    ich habe ein kleines Problem!!!


    Wollt eine analogwertgestützte Abstandskontrolle für eine Kleberapplikation programmieren und komm nicht weiter. Das Problem ist, dass der geliebte KUKA nur alle 12ms den Analogwert einliest. Das bedeutet, dass bei 350mm/s nur alle 4,2mm der Analogwert rein flattert. Dann muss die ganze Sache ja noch umgerechnet und auf ein Frame geschrieben werden
    (bin mir da auch nicht ganz sicher ob das so einfach geht :denk:). Das muss aber, so nehm ich an, in der SPS.sub passieren, da die aber nur zweitrangig arbeitet und auch noch andere Sachen zu tun hat(monitoring von Vacuum und Endlage), wird die Zykluszeit noch länger. :lol:


    hab mal versucht das convtech von kuka nach zu vollziehen, bin da aber auch nicht schlauer geworden :uglyhammer_2:, ausser das Kuka das irgend wie über das AMI macht und da denk ich mal kommt man nicht ran :( , ausser dem arbeiten die mit resolver oder encoder und nicht mit Analogwert oder irre ich da???


    Also wenn jemand ne Idee hat....

  • Um eine Abstandskontrolle zu programmieren, kannst du normalerweise den Funktionsgenerator verwenden.


    Mittels einer Reglerkurve und ein paar Parametern kannst du die Regelcharakteristiken einstellen, der Rob korrigiert dann automatisch den Abstand ohne das weiteres zutun in SPS.Sub o.ä. nötig ist.


    Das mit den 12ms ist zwar korrekt, der Roboter selber regelt aber auch nur in diesem Takt - selbst wenn du die Einleserate auf 1ms drücken könntest, würde der Roboter trotzdem nur alle 12ms nachregeln.


    Aber eigentlich sollte die Höhenregelung ja auch nur korrigieren, ich denke mal, dass die Abweichungen auch bei 12ms im Rahmen bleiben sollten :huh:

  • Hier erstmal ein Link zur Doku:


    http://www.roboterforum.de/rob…eg_und_sinus-t2069.0.html


    Mit dem Funktionsgenerator kannst du z.B. Pendeln oder eine Bandsychronisation realisieren.


    Man kann es (glaub ich) ganz gut zusammenfassen, dass das Ding dir erlaubt, auf Roboterbewegungen andere Bewegungen zu überlagern.


    Am besten erstmal die Doku studieren, und dann hier nach Funktionsgenerator zu suchen. Die Doku ist, na ja, na ja eben :P

  • Ganz ehrlich....


    die Doku is ne Katastrophe für ne Abstandskontrolle. Wozu brauche ich die Stüzpunkte(CPS), ich will doch nicht pendeln und wie verhält sich das überhaupt mit der parametrierung??? Ich hab Kopfschmerzen :wallbash: und schlechte Laune :eviltongue: bekommen, als ich das Bsp. versucht habe um zu setzen. Kuka Dokus sind einfach mal Null im vergleich zu COMAU.

  • Code
    1. Wozu brauche ich die Stüzpunkte(CPS), ich will doch nicht pendeln und wie verhält sich das überhaupt mit der parametrierung???


    Na ja, ganz so einfach würde ich mirs da nicht machen.


    Was ist, wenn dein Sensor eine nichtlineare Funktion beschreibt? Beim Schweissen z.B. passiert das schon mal, das ein Lichtbogensensor im Arbeitsbereich linear arbeitet und in den Grenzbereichen nichtlinear wird. Dann kannst Du das über die frei parametrierbare Regelkurve ausgleichen. Also schon sehr praktisch.
    Solltest Du nur eine lineare Regelung benötigen, definierst du einfach nur zwei Punkte, die deine Regelgerade beschreiben. So z.B. bei dem Beispiel in der Doku.


    Wie das Ganze auf der VKRC läuft, weiss ich aber auch nicht. Ich kenn nur KUKA pur....

  • von kuka gibt es (fast) genau das Technolgiepaket welches du benötigst. den genauen Namen weiß ich jetzt nicht mehr, plasma_tech o.s.ä. .Es wird für das plasmaschneiden verwendet.
    Zuerst wird der gewünschte Bahnabstand geteacht oder über eine Suchfahrt exakt eingestellt. Der Plasmastrahl liefert für diesen Abstand einen bestimmten Analogwert.
    Beim Abfahren der Bahn hält die SW (basierend auf den FG) nun diesen Analogwert, d.h in Folge den Bahnabstand, konstant.

  • Quote


    von kuka gibt es (fast) genau das Technolgiepaket welches du benötigst. den genauen Namen weiß ich jetzt nicht mehr, plasma_tech o.s.ä. .Es wird für das plasmaschneiden verwendet.


    Das Paket heisst "Plasmacut HR" und kostet über 1000€. Wenn es einem so viel wert ist - ok.
    Aber für genau diesen Anwendungsfall kann man auch fast das Beispiel aus der Doku abtippen und kommt auch ans Ziel.
    Wenn man einen Robi ein paar Tage zum testen hat oder Office Lite sein eigen nennt und ein bischen Erfahrung im programmieren hat, sollte man meiner Meinung nach probieren, was selber zu stricken.

  • 1. Habe die Regelkurve angelegt(CPS.1[x0;y0],CPS.2[x0,5;y0,5],CPS.3[x1,y1]).
    2. SCALE_IN =1(egal was ich hier eintrage, versteh die Änderung nicht???)
    3. SCALE_OUT =120(weil Arbeitsbereich = 120mm(zum test volle Auslenkung))
    4. OFFSET_IN =60(weil Anfangswert von Sensor = 60mm)
    5. OFFSET_OUT =0(das muß wohl bleiben)


    ANIN ON $TECHIN[1] = FAKTOR * SIG_1 + OFFSET


    was ist der FAKTOR und wozu das OFFSET???


    Selbst wenn ich als FAKTOR 0 annehme steigt $TECHVAL[1] stetig an??? Das ergibt doch keinen Sinn wenn in Abhänigkeit von #SENSOR geregelt werden soll. Für mich sollte ,wenn $TECHIN[1] == 0 dann $TECHVAL[1] = 0,oder nicht??? und wenn nicht warum dann nicht???


    werd jetzt erstmal alles an nen KRC schrauben und da nochmal testen, vieleicht ligt es ja einfach an dem V(wie vollkommen behindert) vor dem KRC.


    P:S:: der Unterschied zwischen meinem Versuchsaufbau und dem HB Bsp. ist, dass ich einen Analogin von 0-10V nutze. Dachte ich kann dem FG das über die Stützpunkte beibringen(siehe oben), ging aber nicht :( .

    Edited once, last by daweed4 ().

  • Quote


    Für mich sollte ,wenn $TECHIN[1] == 0 dann $TECHVAL[1] = 0,oder nicht??? und wenn nicht warum dann nicht???


    a) nicht :pfeif:
    b) weil deine Regelkurve bei 0.0 nicht den Wert 0.0 hat


    Würde folgendes empfehlen:


    Nimm mal das Beispiel aus der Doku so wie es ist und reduzier die Anzahl der Punkte mal auf 2.
    Punkt 1 setzt du auf bei 0,-1, Punkt 2 auf 1,1, also eine schöne Gerade von links unten nach rechts oben.


    Offset In und Out setzt du auf 0.0.
    Scale In und Scale Out auf 10.0.


    Nun die Masterfrage: :denk:
    Welchen Wert muss nun dein Sensor liefern, damit die Regelung nicht mehr nachregelt?
    Nein, nicht 0.0.
    Dazu muss der X-Wert der Kurve ermittelt werden, bei dem die Linie durch den Nullpunkt geht.
    Und die geht bei meinem Beispiel bei 5.0 durch den Nullpunkt (-> Scale In / 2.0)


    Wenn du nun also in der ANIN ON- Zeile einen Faktor von 0.0 wählst und einen Offset von 5 ist das Ergebnis 5.0. Tataaaa......
    Wenn du jetzt mit dem Offset rumspielst und kleiner als 5.0 wirst, wird die Z-Achse nach unten korrigiert, wirst du größer als 5.0, wird nach oben hin ausgeregelt.


    Wenn das so läuft (sollte eigentlich :icon_rofl:) kannst du ja mal mit den Werten für Offset In/Out spielen.


    Wenn du immer noch nicht klarkommst, schreib noch mal, dann poste ich mal mein Beispiel was ich unter OfficeLite laufen habe.


    Hätte ich ja auch jetzt gemacht, hab hier zuhause aber nicht die entsprechenden Möglichkeiten :down:


    Dann mal viel Erfolg.....

  • Hallo Grubba,


    danke für deine Antwort. Werd das heut mal testen. Vieleicht versteh ich dann, welche Variable für was da ist und wie das alles zusammen spielt. werd dann mal nach Feierabend meine Resultate posten...


    mfg

  • :merci:


    :beerchug:


    :danke:


    Es funzt, FREUDE FREUDE!!!


    Interessant ist für eine lineare Funktion ist also nur SCALE_IN=20 und SCALE OUT=20 und der sich daraus ergebende Nulldurchgang(10).
    Wenn mein Sensor als Grundwert 5V($ANIN=0,5) aus gibt, ist mein Faktor=SCALE_IN, damit der Robi sich immer schön auf X meines Regeldiagramms bewegt.
    Faktor ist also SCALE_IN.
    SCALE_OUT ist der gültige Regelbereich.


    Das mit den Offsets werd ich mir ein andernmal anschauen(brauch ich zur Zeit nicht).
    Werd höchstens nochmal über einen Hochgeschwindigkeitseingang nachdenken, weil die Änderung doch eher langsam ist...


    FETTES :merci: