Kuka Zähler, Zählwert speichern vor Programmabwahl (Palettierung)

  • Servus,

    ich bin ein Neuling in der Roboterprogrammierung und habe folgendes Problem!

    Wir haben einen Kuka KRC 4 Kr6 sixx Roboter, mit dem ich Bauteile in eine Gitterbox einpalettiere, das funktioniert jetzt auch alles

    aber nachdem ich das Cell Programm abwähle und wieder anwähle beginnt mein Palettierung von vorne, weil mein letzten Zählwerte nicht mehr vorhanden sind!

    Die Zähler hab ich mit For ..... Endfor realisiert!

    Ich möchte, dass nach dem Abwählen des Programmes und dem anschließenden anwählen, der Zählwert der Zähler dem vorherigen entspricht!

    Wie löse ich dieses Problem am besten?

    Vielen Dank im vorraus für die Hilfe!

  • Schritt für Schritt zum Roboterprofi!
  • Schau dir doch bitte die Deklaration deines Zählers an. Es kommt darauf an, wo und wie du den deklarierst. Sollte in der Programmierdoku zu finden sein, wie man wo Variablen deklariert.

  • Und dann könnte es auch noch sein, dass die Variablen beim Neustart einfach pauschal mal zurückgesetzt werden.

    Oder die For.. End for Schleife ist mit Konstanten realisiert.

    Ohne den Code oder die berühmte Glaskugel ist es schwierig konkrete Hilfe zu geben.

  • ich hoffe hiermit könnt ihr mir weiterhelfen!!!

  • was genau muss ich hier abändern, dass der Zählwert nach dem anwählen, dem Zählwert vor dem abwählen entspricht um beim Palettieren wieder richtig weiter zu fahren??

    Ich wäre dankbar für eine Hilfe!

  • Genau, aber du musst dir etwas überlegen, wie / wo diese Variablen dann für die nächste Palette wieder initialisiert werden. Z. Bsp. am Ende, da wo sie bisher auf die Maximalwert gesetzt werden. Das macht eh keinen Sinn.

    Und ausserdem musst du in der Berechnung der Vorpositionen andere Zählervariablen verwenden, sonst werden die ja dort schon mit neuen Werten überschrieben.

  • Passt es so für die Zählervariablen der Vorposition und in der Whileschleife??

    Kann man die Zählerinitialisierung mit einer if Anweisung durchführen siehe Programm oder macht man das anders??

    Ich habe sowas leider noch nie gemacht!

    Vielen Dank schonmal für die Hilfen!!




  • Weil bei uns heute Feiertag ist:


    Ich habe sowas leider noch nie gemacht!

    Naja, das ist keine richtige Entschuldigung, hoffe mal Du bis noch jung, dann hast ja noch Zeit sowas zu lernen ;). Denn man kann nicht alles schon mal gemacht haben, und dann bei einer Aufgabe die Lösung fertig in der Schublade/Kopf haben. Was man haben kann sind die Kenntnisse und Werkzeuge um eine neue Aufgabe zu lösen, in diesem Fall sind das grundlegende Programmierkenntnisse über Algorithmen, Daten- und Programmstrukturen, logisches Denken, Abstraktionsvermögen, Übung .....

    In diesen Fällen empfehle ich immer einen 'Progammierkurs' (wie auch immer der aussehen mag) in Basic, Pascal, C# oder auch C auf einem PC. Da ist es viel einfacher solche Programmiermethoden zu lernen und zu debuggen, und es gibt sehr viel mehr und ausführlichere Ressourcen als über roboterspezifische Programmiersprachen.

    Denn die Schwierigkeiten die Du da hast sind nicht roboterspezifisch, die stellen sich auch bei den oben genannten Programmiersprachen.

  • Vielen Dank!

    Ja ich bin noch sehr jung und das ist mein erster Roboter den ich selber in Betrieb nehme!

    Sobald es Corona wieder ermöglicht vor Ort eine Schulung zu machen möchte ich das tun!

    Wo empfehlen sie mir eine Schulung für die Programmierung von Kuka Robotern???

  • nach dem

    Bauteiltransport () wird ja die Vorposition und anschließend die Ablegeposition angefahren müssen die dann nicht auch

    LIN Vor_Position[Ebene_vorpos,Reihe_vorpos,Spalte_vorpos]

    LIN Abl_Position[Ebene_vorpos,Reihe_vorpos,Spalte_vorpos]

    heißen oder liege ich da auch falsch??

  • Nicht raten, nachdenken: Du hattest das Programm ablauftechnisch doch schon komplett richtig, das einzige Problem war, dass die Laufvariablen (Ebene,Reihe,Spalte) schon in der Berechnung oberhalb der Hauptschleife verwendet wurden. Dadurch verlieren die ihren Wert, bei dem das Programm evtl. abgebrochen wurde. Um das zu umgehen muss man einfach in der Berechung der Positionen komplett andere Variablen verwenden, die nichts mit der Hauptschleife zu tun haben. Das ist schon der ganze Zauber.

    Noch einfache wäre es nur die gerade benötigten 3 Positionen jedes mal innerhalb der Hauptschleife zu berechnen. Dann bräuchte es kein so großes Punktearray und das Problem mit den Variablen hätte sich auch quasi von selbst erledigt.


    Also z.Bsp. so:


    So, und dann kommen noch roboterspezifische Dinge dazu. Z.Bsp. dass man normalerweise nicht im Base[0] fährt, sondern bei einer Palettierung ein venünftiges Base vermisst, und dann die Punkte auch in diesem Base anfährt. Dann fehlt in dem Programm vor dem Abfahren der berechneten Punkte die Anwahl des richtigen Base! Und es fehlt das Setzen der richtigen Geschwindigkeiten. ....


    Wie schon gesagt: die Programmierung muss nicht an einem Roboter gelernt werden. Meiner Meinung nach ist es viel einfacher erst mal (oder auch parallel) mit der Programmierung am PC anzufangen. Das geht auch während Corona, und es gibt für alle möglichen Entwicklungsumgebungen sehr viele, gute und kostenlose Online Tutorials. Ebenso gibt es kostenlose Entwicklungsumgebungen wie Visual Studio (für Basic, C#) oder Lazarus (für Pascal).

    Empfehlungen für KUKA Roboter Programmierschulungen kann ich persönlich keine geben. Diese grundlegenden Programmiertechniken hatte ich schon einigermassen drauf, als ich mit der Programmierung von Robotern angefangen habe, da gab es noch nicht mal die KRC1.

  • Vielen Dank für deine Tipps!

    ich habe mich im Internet informiert, da gibt es echt gute Tutorials zum Thema Programmiersprachen, mit denen man sehr gut lernen kann!

    Die geschwindigkeit und die eingelernte Base lege ich an sobald das Programm läuft wie ich möchte !

    Ich wünsche Ihnen noch einen schönen Abend!

  • Es funktioniert jetzt alles!

    Ich habe aktuell 26 Reihen/2Spalten/24Ebenen, nun wäre meine Frage, wie kann ich in dieser Schleife z.B. berücksichtigen, dass der Roboter in Spalte 2 die B-Achse auf 0 stellt??

    Kann mir jemand helfen??

  • If könnte dein Helfer sein!

    Code
    If Spalte == 2 THEN
        XDeinePosition.B = 0
    ENDIF

    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

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