Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Berechnungslogik CYCLE800

Beitrag 27.01.2020, 10:32 Uhr
darkvoice666
darkvoice666
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 15.06.2005
Beiträge: 158
An die Mathematik Experten unter euch:

Wie berechnet der CYCLE800 die Achswinkel für die ZWEI vorhandenen Schwenkachsen aus den im Zyklus angegebenen DREI Winkeln? (Siehe Bild) Eulerwinkel und Transformationsmatrix waren die Sachen die ich zu dem Thema gefunden habe, muss allerdings gestehen das ich da nur Bahnhof verstehe. Maschine ist eine DMG CTX-Beta 1250 TC mit B/C Kinematik.

Ich hoffe das ihr mir weiterhelfen könnt!

Angehängte Datei  EULER_3.JPG ( 230.62KB ) Anzahl der Downloads: 68
   
Beitrag 27.01.2020, 12:39 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
Die beliebige Drehung eines Koordinatensystems im Raum hat drei Freheitsgrade, d.h. man wird (abgesehen von Sonderfällen) immer drei Achsen brauchen, um ein Koordinatensystem entprechend drehen zu können.
Beim Cycle800 geht es aber in erster Linie darum, ein rotationssymmetrisches Werkzeug (Boherer, Fräser) parallel zu einer Koordinatenachse (allgemeiner zu einer belibigen Richtung im Raum) auszurichten. Dafür genügen aber zwei Freiheitsgrade, die mit den beiden Rundachsen der Maschine auch gegeben sind.
Dir Drehung des Koordinatensystems um diese beliebig orientierte Achse im Raum ergibt sich dann zwangsläufig und ist nicht mehr frei wählbar, weil eben der dritte Freiheitsgrad fehlt.
Das kann man bei Bedarf abere durch einen zusätzlichen Frame ausgleichen.
Das geht nur dann sinvoll, wenn das Werkzeug rotationssymmetrisch ist, Wenn das nicht der Fall ist (z.B. ein Drehmeisel, oder eine Zange an einem Roboter), braucht man dann tatsächlich eine dritte Rundchse, um das Werkzeug im Raum beliebig orientieren zu können.

Der Beitrag wurde von CNCFr bearbeitet: 27.01.2020, 12:40 Uhr
   
Beitrag 27.01.2020, 17:13 Uhr
darkvoice666
darkvoice666
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 15.06.2005
Beiträge: 158
Danke! Das mit der Dritten Achse hatte ich so gar nicht auf dem Schirm.

Ich sollte wohl erklären was ich eigentlich vorhabe:

Ich habe eine Anwendung (in Visual Basic) geschrieben die das Programm vom Postprozessor in eine "Bessere" Form bringt.
Die Maschine erwartet im Programm ein einschalten der Rundachse C, bevor der CYCLE800 aufgerufen wird:

SPCON(Achsbezeichner)

Danach wird mit SPOS auf Winkel null vorpositioniert. Nur ein SPCON ohne SPOS reicht nicht, leider möchte die Dame das so. Dies
machen wir bei jedem Werkzeugwechsel, und ist für uns auch so weit O.K. Macht uns ein manuelles einspringen ins Programm leichter,
als wenn wir nur einmal am Programm-Anfang die C-Achse einschalten.
Nur erzeugt uns das unnötige Schwenkbewegungen in der C-Achse. Erst auf null und dann durch den CYCLE800 auf Zielwinkel. Ich lese
mit meinem Tool die drei Winkel aus dem Zyklus aus und Speichere sie in Variablen. Jetzt könnte ich den Zielwinkel anhand der Werte ja
berechnen und in meinen SPOS direkt Vorpositionieren. Jetzt müsste ich den Mathematischen Weg wissen, wie der CYCLE800 das auf
die beiden Schwenkachsen umrechnet... Und da hakt es bei mir...

Danke für deine Ausführliche Erläuterung!

Gruß
Christian
   
Beitrag 27.01.2020, 19:56 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Mojen ...
was genau willst denn machen?
Im Standard rechnet CYCLE800 über 3 Winkel.
Da du im Kartesischem Raum 3 Achsen hast um die das Koordinatensystem gedreht werden kann.
Du hast das richtig gelesen mit Euler und Transformationsmatrix.
Cycle800 nutzt Euler für die Berechnung. Daher die Aufeinanderfolgende Schwenkungen.
In deinem Falle ist die Option 57 > Daher wird erst um die X Achse geschwenkt, -5.602 > Danach um die resultierende Y Achse um 3.282 und anschließend um die resultierende Z Achse um 59.731.
mit Hilfe der Transformationsmatrix wird dann der Achswinkel anhand der Kinematik ermittelt.
Da du ja nur 2 Rotationsachsen hast, ergeben sich 2 mögliche Lösungen. Die dann entweder per Softwareendschalter oder deine Auswahl +/- eingegrenzt werden.
Für Drehwerkzeuge gibt es die Möglichkeit über die Drehmitte der B Achse zu der Position der Schneide eine weite Kinematik anzulegen und dann die B Achse anzustellen.
Die Drehspindel kannst auch als C Achse programmieren, diese muss auch über eine Kinematik definiert werden.
Also ausschlaggebend wie die Achsstellung ist, ist deine Kinematik.
Je nach Kinematik ist die Berechnung der Achswinkel auch anders.

Ah noch was, am besten man denkt nicht beim schwenken mit Maschinen Achsen, sondern mit den 3 Winkeln.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 27.01.2020, 21:58 Uhr
darkvoice666
darkvoice666
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 15.06.2005
Beiträge: 158
Das hilft mir evtl. weiter. Ich hoffe das ich dich richtig verstanden habe... Werde mich weiter in das Thema reinlesen müssen. Wäre doch gelacht wenn ich nicht darauf komme. Wie gesagt brauche ich nur eine Formel die mir das selbe Ergebnis bringt wie der CYCLE800.

Ich werde mich hier nochmals melden wenn ich es hinbekommen habe...
   
Beitrag 28.01.2020, 06:01 Uhr
Sokke
Sokke
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 28.01.2017
Beiträge: 93
Guten Morgen,

CYCLE800 sollte an der CTX gar nicht benötigt werden- L705() usw sollten das erledigen.

Ich hab ehrlich gesagt Dein Anliegen nicht 100% verstanden- wenn Du keine unnötige Bewegung erzeugen möchstest, kannst Du als Zielwinkel den ausgelesen IST Zustand der Achse wählen.

Sorry, sollte ich Dich falsch verstanden haben. Grüße!
   
Beitrag 29.01.2020, 07:01 Uhr
darkvoice666
darkvoice666
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 15.06.2005
Beiträge: 158
QUOTE (Sokke @ 28.01.2020, 06:01 Uhr) *
Guten Morgen,

CYCLE800 sollte an der CTX gar nicht benötigt werden- L705() usw sollten das erledigen.

Ich hab ehrlich gesagt Dein Anliegen nicht 100% verstanden- wenn Du keine unnötige Bewegung erzeugen möchstest, kannst Du als Zielwinkel den ausgelesen IST Zustand der Achse wählen.

Sorry, sollte ich Dich falsch verstanden haben. Grüße!

Der L705 schaltet nur die C-Achse ein, den CYCLE800 brauche ich natürlich fürs 3+2 Achsfräsen!
   
Beitrag 29.01.2020, 10:26 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
QUOTE (darkvoice666 @ 27.01.2020, 22:58 Uhr) *
Wie gesagt brauche ich nur eine Formel die mir das selbe Ergebnis bringt wie der CYCLE800.

Ganz so einfach ist es leider nicht.
Ich kann mal skizzieren, wie der Lösungsweg aussieht, Für Drehmatrizen verwende ich Großbuchstaben, für Vektoren Kleinbuchstaben.
Man hat eine durch 3 Winkel (z.B. Eulerwinkel) definierte Drehmatrix K und zwei Drehmatrizen A und B, die die Drehungen der Maschinenachsen beschreiben, so wie eine Framedrehung F.
A und B bedeutet hier nicht, dass es sich um A- bzw. B-Achsen an der Maschine handelt, sondern es sind einfach Namen für Rundachsen mit prinzipiell beliebiger Richtung.
Weiterhin gibt es den Werkzeugvektor t, der die Orientierung des Werkzeugs angibt. Die Drehung F definieren wir so, dass sie eine Drehung um den Werkzeugvektor t dreht, d.h. es gilt
t = F * t
Eine Drehung um einen beliebigen Winkel mit F verändert deshalb die Werkzeugorientierung nicht.
Folgende Gleichung muss jetzt gelöst werden:
K = A * B * F
Die linke Seite (K) ist bekannt, die Drehachsen von A, B und F sind bekannt, die zugehörigen Drehwinkel für A, B und F sollen berechnet werden.
Wir multiplizieren jetzt beide Seiten mit dem Werkzeugvektor t
K * t = A * B * F * t
Aus der Matrizengleichng haben wir jetzt eine Vektorgleichung gemacht, und wegen F * t = t vereinfacht sich die zu
K * t = A * B * t
Daraus muss man jetzt die Drehwinkel alpha (für A) und beta (für B) berechnen.
Wie man das macht hängt davon ab, wie allgemein die Lösung sein soll. Der Cycle800 muss das natürlich für beliebige Achskombinationen- und Achsrichtungen können, auch für Achsen die nicht senkrecht aufeinander stehen.
Wenn du das Ganze nur für eine ganz spezielle Konfiguration lösen willst, bei der alle Achsen und der Werkzeugvektor senkrecht aufeinander stehen, ist die Lösung nicht allzu schwer. Wenn schräge Achsen beteiligt sind, wird es mühsamer.
Die Gleichung ist im Allgemeinen nicht immer lösbar, d.h. es kann Orientierungen geben, die nicht erreichbar sind. Wenn sie aber lösbar ist, gibt es (meistens) zwei Lösungen und du brauchst eine Strategie, mit der du entscheidest welche der beiden Lösungen du auswählst (z.B. welche Lösung ist von der aktuellen Maschinenposition aus auf dem kürzesten Weg erreichbar, oder welche Lösung ist wegen Überschreiten der Achsgrenzen erreichbar / nicht erreichbar usw.).
In Sonderfällen können die zwei Lösungen zu einer Doppellösung zusammenfallen, oder singulär werden, d.h. die Position einer Rundachse ist dann nicht definiert (das ist dann der Fall wenn B so gedreht wird, dass A-Achse und t parallel sind).
Wenn du jetzt die Drehungen für A und B berechnet hast, kannst du noch die Drehung des Frames F berechnen. Dazu nimmt man einen Vektor der nicht parallel zu t ist (am einfachsten einen Vektor der senkrecht auf t steht) und setzt ihn in die Ausgangsgleichung ein:
K * x = A * B * F * x
Dann multipliziert man mit den Inversen von A und B (mit Ai und Bi bezeichnet) von links
Bi * Ai * K * x = F * x
Aus dem Kreuz- oder Skalarprodukt aus dem Vektor auf der linken Seite der Gleichung (Bi * Ai * K * x) und x erhält man dann den Winkel für die Framedrehung F.
   
Beitrag 29.01.2020, 20:09 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Um mal zu zeigen, wie komplex das Thema eigentlich ist...
hier ein Link

https://link.springer.com/content/pdf/bbm%3...12166-4%2F1.pdf

Bei einer einfachen Tisch Kinematik wie AC lässt sich das recht einfach berechnen.
Bei einer Mischkinematik wie BC wird es jedoch wesentlich komplexer.
Die Rechnung in einer Kinematischen Kette, wird im link verdeutlicht.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: