R&D Steuerungstechnik

Fehlerhafter Vorschub bei Mantelflächenfräsungen

Beitrag 27.03.2024, 22:10 Uhr
Gearhead82
Level 1 = Community-Lehrling
*
Hallo,

Ich bin neu im Bereich der Sinumerik Steuerungen, und dass ich zuletzt an Industrie-CNC Maschinen stand, war vor ca. 20 Jahren in der Ausbildung, da auch überwiegend nur an 3 Achs Fräsen.

Ich habe hier eine gebraucht gekaufte EMCO TURN 365 mit einer 810D powerline Steuerung.

Als eines der ersten Projekte ging es gleich in die Vollen:
Eine 20mm Welle aus 1.4301 mit z.T. schrägverlaufender 4mm Nut, die auch noch in der Tiefe variiert, sodass ich an einer Stelle X,Z und C gleichzeitig verfahren muss.
Angehängte Datei  Nutwelle_einzelnd.png ( 66.97KB ) Anzahl der Downloads: 31

Alles learning by doing.

Das Programm funktioniert im Prinzip wie es soll, ist kamen bisher fast alle Teile in einwandfreier Qualität heraus.
Der erste Ausschuss und Werkzeugbruch ließ glücklicherweise einige Wochen auf sich warten.
Als Oberfläche nutze ich ShopTurn. Ich mache Kleinstserien und Einzelteile, mit ShopTurn geht die Programmierung dann einfach schneller.
Das Varieren der Nuttiefe geht im Kontureditor m.W. nicht, also hab ich das händisch programmiert. Das anschließende Anfasen geht aber sehr gut mit dem Kontureditor.

Bisher habe ich über TRACYL(20) programmiert, also mit Y Koordinaten. Das hat eigentlich auch gut funktioniert, wenn man kleine Bugs von ShopTurn mal außer Acht lässt.
Satzsuchlauf funktioniert dabei leider nur mäßig und etliche nötige An- und Abwahlbefehle von Ebenen, Transformationen und Nullpunkten machen das Programm kompliziert.
Da das Teil immer mal kleine Änderungen erfährt und die radialen Nuten über Winkelangaben vorgegeben sind, habe ich heute das Programm auf Winkelmaße umgeschrieben:

(Werkzeug Fräser 4mm, Werkzeugspindel ist als Masterspindel definiert)
N100 SPOS[1]=0 ;Einschalten und Positionieren der C Achse auf 0°
N110 G95 ; Vorschub in mm/U
N120 FGREF[C]=10 ;Bezugsradius für C Achsenvorschub festlegen
N130 G0 Z2.5
N140 G0 X22
N150 G1 X15 F0.03
N160 Z-60
N 170 C=ACN(180) ;180° Nut in negative Richtung
N180 Z-47
N190 C=IC(-8) X=17 ;8° weiterdrehen, Nuttiefe verringern
N200 C=ACN(140) ;Radial weiterfräsen

N210 G0 X22
N220 G0 C180 Z-60
N230 G1 X15;Positionieren und eintauchen

N240 Z-100.026
N250 C=IC(-8) X=17 Z=-100.446
N260 C=ACN(140) Z=-102.128;

N270 G0 X300

Satz 170 und 200 (also die C-Achs Drehungen ohne Beteiligung einer anderen Achse) werden augenscheinlich mit korrektem Vorschub gefräst.
Bei 190 und 250 sind ja auch andere Achsen beteiligt, aber der Drehweg ist recht kurz, und der Vorschub stimmt augenscheinlich.

Und jetzt passiert etwas (für mich) unvorhersehbares:
Satz 260 fährt gefühlt etwa 3x so schnell wie es soll, da hats meinen ersten Fräser entschärft.
Ich hab danach noch mal alles genauestens mit Einzelsatz inspiziert. Die Vorschubanzeige steht korrekt auf 0.03mm/U, aber die Drehung ist viel zu schnell.
Ein erneutes FGREF[C]=10 vor dem Satz

Im Prinzip habe ich grad durchs hier Schreiben eine vermeintliche Ursache erkannt:
Soll eine Linearachse (hier Z) zusammen mit der C-Achse fahren, so wird wohl der nur Vorschub für den Vektor der Z Achse hergenommen, und C bleibt außen vor.
Z verfährt in Satz 260 ca. 1,7mm; C soll in der gleichen Zeit 32° weiterdrehen, was etwa 5,6mm am Außendurchmesser entspricht. Das ist mehr als 3x soviel, und so resultiert wohl auch der 3x zu schnelle Vorschub...Ich hoffe ihr könnt mir folgen.
In Satz 190 und 250 ist der C-Weg umgerechnet nur 1,4mm, wobei der Fräser um 1mm hochfährt. Hier ist der Vorschub also vermutlich 1,4x vom Sollwert.

Das Verhalten finde ich erstmal unlogisch. Man weist ja nicht umsonst mit FGREF einen Durchmesser zur Vorschubberechnung zu.

Als Workaround kann ich natürlich kleinere Vorschübe an der Problemstelle programmieren.
Aber das muss doch auch irgendwie richtig gehen?

FGROUP(X,Z,C) funktionierte nicht, da kommt eine Fehlermeldung, leider habe ich die nicht notiert.
Keine Ahnung, ob das mein Problem lösen würde.

Den Befehl FL[<Achse>]=<Wert> habe ich nicht verstanden und auch nicht probiert.

Hier ist es beschrieben:
https://www.manualslib.de/manual/158104/Sie...page=109#manual

FGREF mit höheren Werten resultierte in einer langsameren C-Drehung bei G1 Befehlen, das funktioniert also grundsätzlich.

Das war übrigens mein erster Beitrag und ich freue mich auf gut gemeinte Hinweise. Wenn ich weiter eingearbeitet bin und auch einige Fallstricke durch hab, trage ich auch gerne etwas bei!

Beste Grüße aus MV
Stefan
   
Beitrag 28.03.2024, 10:59 Uhr
Andreas1964
Level 4 = Community-Meister
****
Ich bin kein Experte in Sachen Siemens, wir haben jedoch auch eine EMCO und leidvolle Erfahrungen damit.

Es gibt 2 Arten sowas zu machen, das eine ist mit TMC, dann muss man eine Abwicklung programmieren, siehe
;WENDELANFANG SCHRUPPEN

Die andere ist die Achsen zu gruppieren für eine 4-Achs Bewegung, was bei Dir einen Fehler gab, siehe
;WENDEL MITTE SCHRUPPEN

Hier ist mal ein Beispiel für eine Wendel auf einer Welle, Nutgrund ist Ø32.

Andreas.

Angehängte Datei  a.PNG ( 138.59KB ) Anzahl der Downloads: 14


G90
M5
F_HOME

N5 ;SCHAFTFRAESER D10 HM TAX
;X-RICHTUNG
T="SCHAFTFRAESER D10" D1
S3=1910 M3=3
G94
;STIFTFLAECHEN FRAESEN
G19
M70
G0 C0
G0 X52.5 Y11.94 Z-62.49
G19
DIAMOF
M8
G0 X15.4
G1 Y-11.33 F191
G3 X15.4 Y-12.29 Z-63.322 CR=1.275
G3 X15.4 Y-12.163 Z-69.897 CR=9.078
..
F_HOME
M1
N4 ;SCHRUPPFRAESER D10 HSS-PM TIALN
;X-RICHTUNG
T="SCHRUPPFRAESER D10" D1
S3=1256 M3=3
G94
;WENDELANFANG SCHRUPPEN
G19
G0 X52.5 Y0. Z-99.86 C2.819
M8
TRCON(32)
DIAMOF
G1 Y0.787 Z-99.86 F4000
G0 X19.
G1 X16.18 F1000
G1 X16.16 Y0.953 Z-100.051 F417
G1 X16.14 Y1.153 Z-100.206
G1 X16.12 Y1.379 Z-100.318
G1 X16.1 Y1.623 Z-100.384
G1 Y2.402 Z-100.516 F473
G1 Y3.181 Z-100.648
G1 Y3.928 Z-100.774
G1 Y5.119 Z-100.936 F430
G1 Y6.316 Z-101.036
G1 Y7.87 Z-101.12
G1 Y9.426 Z-101.172
G1 Y12.149 Z-101.214 F473
G1 Y14.872 Z-101.235
G1 Y93.223
G1 Y93.568 Z-101.211 F175
G1 Y93.906 Z-101.14 F165
G1 Y94.232 Z-101.023
G1 Y94.537 Z-100.862
G1 Y94.818 Z-100.66
...
G1 X16.127 Y5.423 Z-185.96
G1 X16.14 Y5.503 Z-186.19
G1 X16.153 Y5.637 Z-186.393
G1 X16.167 Y5.817 Z-186.558
G1 X16.18 Y6.031 Z-186.673
G0 X26.25
TMCOFF
DIAMON

;WENDEL MITTE SCHRUPPEN
S3=732 M3=3
G0 X49.862 Y-16.687 Z-99.907 C352.287
G0 X42.056
FGROUP(XC,YC,ZC,C)
FGREF[C]=32
G1 X41.636 Y-16.619 Z-101.314 C=IC(0.79) F56
G1 X40.784 Y-16.006 Z-104.603 C=IC(1.798)
G1 X40.208 Y-14.791 Z-107.629 C=IC(1.584)
G1 X39.926 Y-13.02 Z-110.319 C=IC(1.331)
G1 X39.92 Y-10.751 Z-112.609 C=IC(1.048)
G1 X40.14 Y-8.046 Z-114.444 C=IC(0.742)
G1 X40.5 Y-4.982 Z-115.829 C=IC(0.42)
G1 Y-4.989 Z-115.909 C=IC(1.861)
G1 Y-4.996 Z-115.99 C=IC(1.861)
...
G1 Y-4.989 Z-185.326 C=IC(1.861)
G1 Y-4.996 Z-185.407 C=IC(1.861)
G1 X32.496 Y-5 Z-185.471 C=IC(1.427)
G1 X33.696 Y-3.168 Z-186.015
G1 X34.848 Y-1.464 Z-186.885
G1 X35.904 Y0.036 Z-188.094
G1 X36.826 Y1.271 Z-189.594
G1 X37.576 Y2.194 Z-191.326
G1 X37.722 Y2.36 Z-191.757
G0 X41.722
G0 X59.814
FGROUP
   
Beitrag 28.03.2024, 11:02 Uhr
CNCFr
Level 7 = Community-Professor
*******
Ich kenne mich mit FGREF nicht besonders gut aus, aber ich vermute, dass die Definition der beteiligten Bahnachsen mit FGROUP fehlt.
Das sollte einen Versuch wert sein.
   
Beitrag 03.04.2024, 22:21 Uhr
Gearhead82
Level 1 = Community-Lehrling
*
Okay, dank euch für die Hinweise und das Beispiel.
Ich werde es mal mit FGROUP(XC,ZC,C) versuchen. Ich habe wohl die Syntax zu dem Befehl nicht verstanden.
Warum XC und ZC, und danach nochmal nur C?

Mit TRCON lief es ja gut, aber mit der virtuellen Y Achse programmiert es sich nicht schön.
Macht bei der Stirnflächenbearbeitung mehr Sinn.

Gruss, Stefan

Der Beitrag wurde von Gearhead82 bearbeitet: 03.04.2024, 22:27 Uhr
   
Beitrag 04.04.2024, 08:20 Uhr
CNCFr
Level 7 = Community-Professor
*******
XC und ZC: Das sind wohl die Kanalachsnamen der physikalischen X- und Z-Achsen. Das C steht hier für das C in CHANAX. Das C ist nicht zwingend, man könnte da auch beliebige andere Bezeichnungen wählen. Es hat also mit der C-Achse nichts zu tun.
Überprüfen kannst du das im Maschinendatum MD20080 $MC_AXCONF_CHANAX_NAME_TAB.
Diese Unterscheidung zu den Geometrieachsen X und Z ist notwendig, weil beliebige Linearachsen als Geometrieachsen definiert werden können und bei aktiven Transformationen (z.B. TRANSMIT) die Geometrieachsen rein virtuell sind und deshalb nicht mehr mit realen Achsen identisch sind.
Bei der C-Achse ist das nicht notwendig, weil Rundachsen keine Geometrieachsen sein können.
   
Beitrag 10.04.2024, 20:47 Uhr
Gearhead82
Level 1 = Community-Lehrling
*
Hi,

Ich habe es heute mit FGROUP(XC,ZC,C) versucht und es hat auf Anhieb funktioniert. Das war also die Lösung.
Vielen Dank für die Hilfe und die Erklärung, da wäre ich so nicht drauf gekommen. In der FGREP/FGROUP Doku fehlt auch jeglicher Hinweis auf das entsprechende Maschinendatum.

Nun verstehe ich nicht, warum das nicht standardmäßig eingestellt ist. In welchem Fall möchte man denn, das eine Achse schneller fährt als gewünscht?

Beste Grüsse
Stefan

Der Beitrag wurde von Gearhead82 bearbeitet: 10.04.2024, 20:49 Uhr
   
Beitrag 11.04.2024, 05:53 Uhr
Andreas1964
Level 4 = Community-Meister
****
ZITAT(Gearhead82 @ 10.04.2024, 21:47 Uhr) *
Nun verstehe ich nicht, warum das nicht standardmäßig eingestellt ist. In welchem Fall möchte man denn, das eine Achse schneller fährt als gewünscht?

Hallo Stefan,

da freue ich mich das ich helfen konnte, ich hatte mir das damals auch in mühevoller Kleinarbeit raus gepusselt.

Bei einem G1 bei einem Revolver und einer Spindel müssen alle Achsen interpolieren, das ist klar.... wenn man aus der Sicht des Fräsers schaut, weil wir wollen das der Vorschub am Werkzeug immer gleich bleibt.

Bei einem G0 in der Luft muss aber nicht zwingend eine Interpolation der Achsen stattfinden, da könnte auch jede Achse den kürzesten Weg mit voller Geschwindigkeit fahren. Denk mal an G1 Z-500 C1080 | G0 Z0 C0

Aber was wenn ich 2 Revolver und 2 Spindeln habe?

Ich kann mit beiden Revolvern an Spindel 1 arbeiten und dann müssen XYZ beider Revolver mit C1 "synchron" laufen. Arbeite ich mit R1 an C1 und R2 an C2 dann gilt das nicht. Und denkt mal daran wenn Du mit Spindel 2 das Teil in Spindel 1 abgreifen, Stange rausziehen und abstechen willst.

Bei anderen Steuerungen gibt es dann verschiedene M-Codes die diese Gruppierungen der Achsen zusammenschalten oder eben auch aufheben. Nur kannst Du da nicht die Achsen exakt angeben.

Diese Steuerung hat quasi einfach einen Freiheitsgrad mehr bei der Programmierung. Ob das sinnvoll ist... ich sag mal Geschmackssache.

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