Siemens
Digital Industries, Motion Control, Machine Tool Systems
Verschleifen in einer Zählschleife
24.11.2023, 14:20 Uhr
Hallo zusammen,
ich habe ein kleines Programm zum Plan-Spiralfräsen mit X und C geschrieben und würde die Maschine gerne dazu bringen, die Zählschleife durchlaufen zu lassen, ohne dass sie nach jedem Durchlauf anhält, bzw. den Genauhalt berücksichtigt.
Der Abschnitt sieht wie folgt aus:
…
FOR R920=R920+1 TO R908
FGREF[C]=$$AA_IW[X]
G1 X=IC(R909) C=IC(360)
ENDFOR
G1 X=IC(360) G60
…
Mit G64, G641 und G645 bin ich nicht weiter gekommen, oder habe es falsch angewendet.
Vllt. hat ja jemand einen Tipp für mich
Viele Grüße
ich habe ein kleines Programm zum Plan-Spiralfräsen mit X und C geschrieben und würde die Maschine gerne dazu bringen, die Zählschleife durchlaufen zu lassen, ohne dass sie nach jedem Durchlauf anhält, bzw. den Genauhalt berücksichtigt.
Der Abschnitt sieht wie folgt aus:
…
FOR R920=R920+1 TO R908
FGREF[C]=$$AA_IW[X]
G1 X=IC(R909) C=IC(360)
ENDFOR
G1 X=IC(360) G60
…
Mit G64, G641 und G645 bin ich nicht weiter gekommen, oder habe es falsch angewendet.
Vllt. hat ja jemand einen Tipp für mich
Viele Grüße
24.11.2023, 14:57 Uhr
Ich vermute, dass die Zeile
FGREF[C]=$$AA_IW[X]
für den Problem sorgt. Weshalb musst du die X-Position lesen? Die wird doch in deinem Programm definiert angefahren.
Ich würde vorschlagen zusätzlich eine Variable für die absolute X-Position einzuführen und diese dann für das Beschreiben von FGREP zu verwenden, also etwa so:
Alternativ kannst du die aktuelle X-Position ja auch aus R920 und R909 berechnen und ohne Zwischenvariable FGREF zuweisen,
FGREF[C]=$$AA_IW[X]
für den Problem sorgt. Weshalb musst du die X-Position lesen? Die wird doch in deinem Programm definiert angefahren.
Ich würde vorschlagen zusätzlich eine Variable für die absolute X-Position einzuführen und diese dann für das Beschreiben von FGREP zu verwenden, also etwa so:
QUELLTEXT
DEF REAL X_ABS
.
.
.
X_ABS = $AA_IW[X] ; Oder besser hier die wahrscheinlich bekannte X-Position einsetzen
FOR R920=R920+1 TO R908
FGREF[C]=X_ABS
X_ABS = X_ABS + R909
G1 X=IC(R909) C=IC(360)
ENDFOR
.
.
.
X_ABS = $AA_IW[X] ; Oder besser hier die wahrscheinlich bekannte X-Position einsetzen
FOR R920=R920+1 TO R908
FGREF[C]=X_ABS
X_ABS = X_ABS + R909
G1 X=IC(R909) C=IC(360)
ENDFOR
Alternativ kannst du die aktuelle X-Position ja auch aus R920 und R909 berechnen und ohne Zwischenvariable FGREF zuweisen,
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: