Siemens
Digital Industries, Motion Control, Machine Tool Systems
R-Parameter als Bedingung im G-Code, Schleifen steuern
02.08.2024, 11:16 Uhr
Hallo an alle,
ich bin neu in der CNC-Programmierung und teste zurzeit mehrere Codes in einer Sinumerik 840Dsl Steuerung. Leider hab ich jedoch keinen großen Erfolg.
Ich habe eine While Schleife programmiert, mit der ich eine vordefinierte Anzahl an Fräsbahnen durchführen möchte. Hierfür benutze ich R-Paramter als Bedingung.
Im folgenden hab ich den kurzen Code reinkopiert. Ich möchte insgesamt drei Bahnen verfahren, alle im Abstand von 5mm.
Leider stoppt er aber nicht den Prozess und endet in einer Endlosschleife. Der R-Paramter 303 ändert auch stehts seinen Wert manchmal bis zu 350 etc. also weit über R304 =2, dennoch endet der Versuch nicht.
Ich verstehe wirklich nicht, was ich falsch mache. Ich denke mir fehlt erstmal generell basic Wissen zur CNC-Programmierung.
Fragen:
1) Werden R-Parameter im G-Code gecheckt und auf ihren Wert untersucht?
2) Wenn ja, in welchem Takt?
3) Hat die While Schleife eine Besonderheit bzw. fällt euch ein Fehler auf?
4) Können R-Parameter synchron verändert werden? also kann ich während eines G-Code-Ablauf im HMI den R-Wert manuell setzen, der dann widerrum im Code berücksichtigt wird?
---nur drei mal verfahren
N10 G17 G90 G94
N20 G510 ; individuelle Nullpunktverschiebung
N21 T="ED_M1" M6 D1 ;Werkzeugwechssel
M3 S500
R301=10
R303=0
R304=2
WHILE R303<=R304
G1 X=20+R301 Y-10 Z50 F1000 ; Sicherheitsposition anfahren
G1 Y260 Z0 F150 ; Nutfräsen
G1 Z50 F1000
R301 = R301+5 ; die nächste Bahn soll 5mm weiter anfangen
R303=R303+1 ; Anzahl Bahnen
ENDWHILE
M30
Ich würde mich sehr über eure Hilfe freuen!!!
ich bin neu in der CNC-Programmierung und teste zurzeit mehrere Codes in einer Sinumerik 840Dsl Steuerung. Leider hab ich jedoch keinen großen Erfolg.
Ich habe eine While Schleife programmiert, mit der ich eine vordefinierte Anzahl an Fräsbahnen durchführen möchte. Hierfür benutze ich R-Paramter als Bedingung.
Im folgenden hab ich den kurzen Code reinkopiert. Ich möchte insgesamt drei Bahnen verfahren, alle im Abstand von 5mm.
Leider stoppt er aber nicht den Prozess und endet in einer Endlosschleife. Der R-Paramter 303 ändert auch stehts seinen Wert manchmal bis zu 350 etc. also weit über R304 =2, dennoch endet der Versuch nicht.
Ich verstehe wirklich nicht, was ich falsch mache. Ich denke mir fehlt erstmal generell basic Wissen zur CNC-Programmierung.
Fragen:
1) Werden R-Parameter im G-Code gecheckt und auf ihren Wert untersucht?
2) Wenn ja, in welchem Takt?
3) Hat die While Schleife eine Besonderheit bzw. fällt euch ein Fehler auf?
4) Können R-Parameter synchron verändert werden? also kann ich während eines G-Code-Ablauf im HMI den R-Wert manuell setzen, der dann widerrum im Code berücksichtigt wird?
---nur drei mal verfahren
N10 G17 G90 G94
N20 G510 ; individuelle Nullpunktverschiebung
N21 T="ED_M1" M6 D1 ;Werkzeugwechssel
M3 S500
R301=10
R303=0
R304=2
WHILE R303<=R304
G1 X=20+R301 Y-10 Z50 F1000 ; Sicherheitsposition anfahren
G1 Y260 Z0 F150 ; Nutfräsen
G1 Z50 F1000
R301 = R301+5 ; die nächste Bahn soll 5mm weiter anfangen
R303=R303+1 ; Anzahl Bahnen
ENDWHILE
M30
Ich würde mich sehr über eure Hilfe freuen!!!
03.08.2024, 19:07 Uhr
Hallo,
grundsätzlich sollte das funktionieren.
Ich würde hinter "WHILE" die Bedingung in Klammern setzen, laut Siemens Doku muss das aber nicht sein.
Ich würde hier vor dem ENDWHILE eine Zeile mit "STOPRE" einfügen. (="Stopread", d. h. die Steuerung liest nicht mehrere Zeilen voraus)
Zudem würde ich zwischen den (Vergleichs-) Operanten "=" bzw. "<=" und den Variablen ein Leerzeichen setzen (also hinter "WHILE" und in der Zeile vor "ENDWHILE".
Da ich Deine Fragen fachlich nicht sicher beantworten kann, lass ich das lieber bleiben Aber grundsätzlich habe ich einige NC Programme genau mit solchen Parameter-Verarbeitungen erstellt und genutzt.
GL
grundsätzlich sollte das funktionieren.
Ich würde hinter "WHILE" die Bedingung in Klammern setzen, laut Siemens Doku muss das aber nicht sein.
Ich würde hier vor dem ENDWHILE eine Zeile mit "STOPRE" einfügen. (="Stopread", d. h. die Steuerung liest nicht mehrere Zeilen voraus)
Zudem würde ich zwischen den (Vergleichs-) Operanten "=" bzw. "<=" und den Variablen ein Leerzeichen setzen (also hinter "WHILE" und in der Zeile vor "ENDWHILE".
Da ich Deine Fragen fachlich nicht sicher beantworten kann, lass ich das lieber bleiben Aber grundsätzlich habe ich einige NC Programme genau mit solchen Parameter-Verarbeitungen erstellt und genutzt.
GL
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: