Siemens
Digital Industries, Motion Control, Machine Tool Systems
Koordinate vom ENS (z.B. G54) ins MKS transformieren
13.12.2024, 07:55 Uhr
Hallo!
Ich stehe vor folgender Herausforderung:
Ich habe einen theoretischen Punkt XYZ, dessen Koordinaten im G54 angegeben sind.
Ich will nun zu einem bestimmten Zeitpunkt im Programm bei eingeschwenkten Achsen wissen, wo dieser Punkt im MKS liegt.
Im Klartext: Transformation eines Punktes aus dem G54 ins MKS bei eingeschwenkten Achsen.
Das geht bestimmt mit Frames.
Allerdings ist mir das Thema neu und ich komme nicht weiter.
Über diesen (https://de.industryarena.com/siemens/forum/traori-frame--69332.html) Thread bin ich auf $P_TRAFRAME_P gekommen.
Siemens Doku:
"With the system variables $P_TRAFRAME_T or $P_TRAFRAME_P, frames can be read out which describe the offset and the rotation of a coordinate system secured at the tool reference point or at the workpiece reference point, compared to the zero point of the world coordinate system."
Allerdings gibt diese Variable z.B. für X immer 0 aus, wenn TRAORI nicht aktiv ist ($P_TRAFRAME_P[X,TR]).
Wenn TRAORI aktiv ist, gibt er für X negative Werte aus, was jedoch nicht stimmen kann, da X an unserer Maschine nur in PLUS verfahren kann.
Ich hoffe, ich habe das Problem verständlich beschrieben.
Kann mir hier jemand weiterhelfen?
Danke!
Der Beitrag wurde von ES100 bearbeitet: 13.12.2024, 08:00 Uhr
Ich stehe vor folgender Herausforderung:
Ich habe einen theoretischen Punkt XYZ, dessen Koordinaten im G54 angegeben sind.
Ich will nun zu einem bestimmten Zeitpunkt im Programm bei eingeschwenkten Achsen wissen, wo dieser Punkt im MKS liegt.
Im Klartext: Transformation eines Punktes aus dem G54 ins MKS bei eingeschwenkten Achsen.
Das geht bestimmt mit Frames.
Allerdings ist mir das Thema neu und ich komme nicht weiter.
Über diesen (https://de.industryarena.com/siemens/forum/traori-frame--69332.html) Thread bin ich auf $P_TRAFRAME_P gekommen.
Siemens Doku:
"With the system variables $P_TRAFRAME_T or $P_TRAFRAME_P, frames can be read out which describe the offset and the rotation of a coordinate system secured at the tool reference point or at the workpiece reference point, compared to the zero point of the world coordinate system."
Allerdings gibt diese Variable z.B. für X immer 0 aus, wenn TRAORI nicht aktiv ist ($P_TRAFRAME_P[X,TR]).
Wenn TRAORI aktiv ist, gibt er für X negative Werte aus, was jedoch nicht stimmen kann, da X an unserer Maschine nur in PLUS verfahren kann.
Ich hoffe, ich habe das Problem verständlich beschrieben.
Kann mir hier jemand weiterhelfen?
Danke!
Der Beitrag wurde von ES100 bearbeitet: 13.12.2024, 08:00 Uhr
16.12.2024, 10:12 Uhr
Hallo nochmal,
man könnte die Frage auch so formulieren:
Ich möchte zu gegebenem Zeitpunkt im NC-Programm wissen, wo sich der Nullpunkt des G54 aktuell befindet (in MKS-Koordinaten) und in welche Richtung die Achsen des Koordinatensystems zeigen.
Danke!
man könnte die Frage auch so formulieren:
Ich möchte zu gegebenem Zeitpunkt im NC-Programm wissen, wo sich der Nullpunkt des G54 aktuell befindet (in MKS-Koordinaten) und in welche Richtung die Achsen des Koordinatensystems zeigen.
Danke!
20.12.2024, 10:41 Uhr
Hallo,
mir ist schon klar, dass das kein alltägliches Thema ist.
Gibt es dennoch irgendwelche Ideen?
Mir würde ein Anhaltspunkt reichen, von da aus kann ich dann selber weiter recherchieren.
Aber mir sind die Ideen leider schon ausgegangen...
Danke und schöne Feiertage schonmal!
mir ist schon klar, dass das kein alltägliches Thema ist.
Gibt es dennoch irgendwelche Ideen?
Mir würde ein Anhaltspunkt reichen, von da aus kann ich dann selber weiter recherchieren.
Aber mir sind die Ideen leider schon ausgegangen...
Danke und schöne Feiertage schonmal!
27.12.2024, 09:36 Uhr
Hallo Es100
theoretisch könntest du deine aktuellen Position im Wks (geschwenkt) abspeichern R10=$AA_IW[X] davon die differenz zum Zielpunkt berechnen und danach diese differenz von deiner aktuellen Position im MKS abziehen $AA_IM[X]. Beim rechnen mit aktueller achsposition Sicherheitshalber ein STOPRE davor programmieren.
Bsp.
R1=30 ; Zielkoordinate im X
STOPRE
R10=$AA_IM[X]-($AA_IW[X]-R1)
Bin mir nicht sicher ob die Rechnung so passt, bin aktuell in den Ferien, aber soll ja nur ein rascher Lösungsansatz sein. Und wenn das so klappt musst du dich nicht in frames einarbeiten.
Direkt mit Frames rechnen ist mit sicherheit eine elegantere Lösung aber das müsste ich auch zuerst testen.
Gruss Querox
Der Beitrag wurde von Querox bearbeitet: 27.12.2024, 09:38 Uhr
theoretisch könntest du deine aktuellen Position im Wks (geschwenkt) abspeichern R10=$AA_IW[X] davon die differenz zum Zielpunkt berechnen und danach diese differenz von deiner aktuellen Position im MKS abziehen $AA_IM[X]. Beim rechnen mit aktueller achsposition Sicherheitshalber ein STOPRE davor programmieren.
Bsp.
R1=30 ; Zielkoordinate im X
STOPRE
R10=$AA_IM[X]-($AA_IW[X]-R1)
Bin mir nicht sicher ob die Rechnung so passt, bin aktuell in den Ferien, aber soll ja nur ein rascher Lösungsansatz sein. Und wenn das so klappt musst du dich nicht in frames einarbeiten.
Direkt mit Frames rechnen ist mit sicherheit eine elegantere Lösung aber das müsste ich auch zuerst testen.
Gruss Querox
Der Beitrag wurde von Querox bearbeitet: 27.12.2024, 09:38 Uhr
09.01.2025, 07:06 Uhr
Hallo Querox,
danke für deinen Beitrag!
Das klingt vielversprechend, ich werde es demnächst ausprobieren.
danke für deinen Beitrag!
Das klingt vielversprechend, ich werde es demnächst ausprobieren.
10.01.2025, 13:11 Uhr
Hatten dieses Problem mal einer Maschine mit C,B,und A Achse . Und haben über mehere Punkte schwenken müssen . Das klappte aber nicht . Passte nie zusammen . Haben dass dann so gelöst und eine direkte Verschiebung machen können auf diesen Punkt , den wir so ermittelt haben !
G54 ; Nullpunkt anwählen
G0 x150 y150 , ( soll Position anfahren )
G500 ; Basis Nullpunkt anwählen
R123=$AA_IW[X] ; Aktueller istwert X MKS in R- schreiben
R124=$AA_IW[Y] ; Aktueller istwert Y MKS in R- schreiben
Stopre
G55 ; 2. Nullpunkt anwählen
Stopre
$P_UIFR[2,x,tr]=R123 ; Wert schreiben von R. Param. In NP X-Achse
$P_UIFR[2,y,tr]=R124 ; Wert schreiben von R. Param. In NP y-Achse
stopre
G55 ; NP erneut anwählen
; von hier aus Schwenken und Position anfahren !
M17
Weiss nicht ob das bei deinem Problem hilft !
G54 ; Nullpunkt anwählen
G0 x150 y150 , ( soll Position anfahren )
G500 ; Basis Nullpunkt anwählen
R123=$AA_IW[X] ; Aktueller istwert X MKS in R- schreiben
R124=$AA_IW[Y] ; Aktueller istwert Y MKS in R- schreiben
Stopre
G55 ; 2. Nullpunkt anwählen
Stopre
$P_UIFR[2,x,tr]=R123 ; Wert schreiben von R. Param. In NP X-Achse
$P_UIFR[2,y,tr]=R124 ; Wert schreiben von R. Param. In NP y-Achse
stopre
G55 ; NP erneut anwählen
; von hier aus Schwenken und Position anfahren !
M17
Weiss nicht ob das bei deinem Problem hilft !
6 Besucher lesen dieses Thema (Gäste: 6)
0 Mitglieder: