Danke.
Die Schreibweise stimmt. Ich habe das bestimmt schon 20 mal überprüft. Das war auch erst mein Gedanke ...
Danke.
Die Schreibweise stimmt. Ich habe das bestimmt schon 20 mal überprüft. Das war auch erst mein Gedanke ...
Oh Gott, wie doof kann man eigentlich sein
Ich habe in der dat-file das GLOBAL vor XGRUNDPOSITION vergessen ...
Varum ist Greifpos etc. eigentlich ein Array ohne Werte im *.dat , wenn die Variable doch in jedem Schleifendurchgang neu berechnest? Da reicht doch 'ne POS-Variable in der Prozedur....
Grüße,
Michael
Varum ist Greifpos etc. eigentlich ein Array ohne Werte im *.dat , wenn die Variable doch in jedem Schleifendurchgang neu berechnest? Da reicht doch 'ne POS-Variable in der Prozedur....
Grüße,
Michael
Nun, da ich mehrere Regale habe, aus denen zu unterschiedlichen Zeiten unterschiedliche viele Sachen entnommen werden müssen. Ich habe gehofft, dass er sich so merkt, wie viele im jeweiligen Regal fehlen.
Ist das falsch?
Tool und Base?
Vielleicht solltest Du dafür sorgen, dass die richtig sitzen, denn im INIT -Fold werden die genullt...
Tool und Base?
Vielleicht solltest Du dafür sorgen, dass die richtig sitzen, denn im INIT -Fold werden die genullt...
Es tut mir leid, ich kann mit deinem Kommentar nichts anfangen. Kannst du mir das nochmal genauer erklären, was du meinst?
Im INIT-Fold am Beginn eines vom System erstellten Programms kommt ein Aufruf des Unterprogramms BAS vor. Dadurch werden Tool und Base auf 0 gesetzt. Der Robot ist also in WORLD und das Tool ist Flansch.
Leider hast Du nur einen kurzen Programmauszug gezeigt. Daher hielt ich es für angebracht, Dich dahingehend zu warnen, dass Du plötzlich in anderen Koordinatensystemen fahren könntest...
Ist das falsch?
Viele Wege führen nach Rom... nur ist es ja so, dass Du offensichtlich einfach ein Array von Zählern brauchst, für jedes Regal einen Zähler, wenn ich Dich recht verstehe. Anhand des Zählers berechnest Du dann durch Multiplikation mit einem Abstand die Positionen. Die Positionen werden aber nur im jeweiligen Durchgang gebraucht und müssten nicht auch noch gespeichert werden, das war nur mein Gedanke.
Aber ich seh' gerade, dass Du die Positionen alle vorher berechnen willst und dann hinterher in einem Rutsch abfahren... ich warne allerdings vor dieser Vorgehensweise. Wenn das Programm zwischendurch abbricht und neu angewählt werden muss, bekommst Du ein heilloses Durcheinander.
Meine Empfehlung wäre:
- Zählvariablen im *.dat speichern mit Wert, dadurch weiß der Roboter auch nach 'nem Programmreset, was er tun muss
- Verschiebung nur für den Durchgang berechnen, der aktuell gefahren wird
- Verschiebung nicht auf die Position anwenden, sondern auf das BASE. Dadurch kannst Du dann an JEDER verschobenen Position die eigentliche Bewegung nachteachen (extrem hilfreich im täglichen Leben!), und Du brauchst nur einen Frame zu berechnen und nicht mehrere.
Grüße,
Michael
Dann muss ich doch SP*100 in Klammern setzen, oder? - Also GREIFPOS[SZ].X = GREIFPOS[SZ].X + (SP *100) oder?
Nur mal so am Rande. Auch wenn die Multiplikation eh falsch ist (hast du ja schon erkannt) gilt auch in KRL: Punktrechnung geht vor Strichrechnung. Also ist die Klanmmer unnötig. Ich persönlich klammere trotz dieser Regeln immer gerne ein, da es die Berechnung übersichtlicher hält.
Ansonsten empfehle ich mal einen KUKA Lehrgang. In "Programmierung Fortgeschrittene" werden genau diese Berechnung eines 2-demensionalen Arrays in Schleifen gerlehrt. ist bei mir zwar schon etwas her, aber ich denke das hat sich nicht geändert.
Danke, für eure Hilfe!
Ein Lehrgang wird wohl nicht möglich sein, dass es eine FH-interne Bachelorarbeit ist. Da hilft nur learning by doing ...
Schick mir doch per PN deine Mailadresse.
Ich lass dir ein kleines Musterprogramm zukommen.
Hallo Herr Keller,
ich versuche gerade mit einem Fanuc Roboter ein Palettierprogramm zu erstellen und möchte mich hierbei in die Logik bzw. Mathematik bei eben diesem Programm einarbeiten. Könnten Sie mir hierzu netterweise ein kleines Musterprogramm mit Erklärung zukommen lassen?
Lieben Dank im Voraus und mit freundlichem Gruß
Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können