Sonstiges Sinuemrik 840Dsl- GCode und R-Parameter asl Bedingung. While-Schleife gerät in endlosschleife://

Rebecka

Level-2
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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!!!
 
Such mal nach @714 und/oder STOPRE in diesem Forum.
Ich würde mal probeweise in je einer zusätzlichen Zeile vor WHILE und vor ENDWHILE je einen @714 einfügen.

Manchmal ist es hilfreich, mehrere Berechnungen mit R-Parametern NICHT auf mehrere Zeilen aufzuteilen, sondern in ein und dieselbe Zeile zu packen.
Man kann sich nämlich darauf verlassen, dass die Berechnungen von links nach rechts ausgeführt werden.
Man kann sich aber NICHT darauf verlassen, dass mehrere aufeinander folgende Zeilen in der Reihenfolge von oben nach unten ausgeführt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach deinem letzten G Satz schreib mal ein STOPRE
G1 Z50 ...
STOPRE

Dein Problem wird sein das der Vorlaufpuffer zu weit liest und bei der Abfrage
R204 <= R304 nichts brauchbares rauskommt da die R-Parameter nicht für den Vorlauf taugen.

Zu deinen Fragen
zu 1 Ja werden Sie
zu 2 im IPO Takt
zu 3 Besonderheiten wie in jeder andern Sprache
zu 4 Ja kannst Du


aber die NC liest das NC Programm und füllt den Vorlaufspeicher mit den Daten , jetzt kommt es darauf an wie dein System eingestellt ist wie weit voraus gelesen wird , es könnte vorkommen das bei deinem Programm 30 Runden der While Schleife im Puffer stehen da die R Parameter und der Vorlauf nicht so harmonieren .

mit dem STOPRE sagst du dem Vorlauf bis hier und nicht weiter bevor der Puffer leer ist.

hoffe das hilft
 
Bei der 300er Parametern bekomme ich eine Fehlermeldung: unerlaubter Array-Index

Ich habe deine 300er auf 30er geändert:

N10 G17 G90 G94
N20 G510 ; individuelle Nullpunktverschiebung
N30 T="SF_A_D10" M6 D1 ;Werkzeugwechssel
N40 M3 S500

N50 R301=10
N60 R33=0
N70 R34=2

N80 WHILE R33 <= R34
N90 G1 X=20+R31 Y-10 Z50 F1000 ; Sicherheitsposition anfahren
N100 G1 Y260 Z0 F150 ; Nutfräsen
N110 G1 Z50 F1000
N120 R31 = R31+5 ; die nächste Bahn soll 5mm weiter anfangen
N130 R33=R33+1 ; Anzahl Bahnen
N140 ENDWHILE

N150 M30

Bei mir läuft die Simulation an der Maschine wie gewünscht.

LGR
 
Bei diesem Beitrag war ich interessiert. Siehe #5

Eine Frage an Peter Gedöns: Warum läuft das bei mir ohne STOPRE ?

Gruß Rainer
 
Zurück
Oben