Siemens
Digital Industries, Motion Control, Machine Tool Systems
8840
Follower:innenIF/GOTO bei mehreren NP, Programmwiederholung mit verschiedenen NP
02.12.2021, 19:41 Uhr
Wäre es möglich ein einfaches Programm, welches in einer 5 Fach aufspannung gefertigt wird mittels dieser GOTO Befehle zu fertigen an einer Sin840D Steuerung zu fertigen?
%TEST
;$PATH=/_N_WKS_DIR/_TEST
;TEST
R910=1
GOTO Bearbeitung
STOPRE
START:
IF R910==2 GOTO NP2
NP2: G55 GOTO Bearbeitung
STOPRE
IF R910==3 GOTO NP3
NP3: G56 GOTO Bearbeitung
STOPRE
IF R910==4 GOTO NP4
NP4: G57 GOTO Bearbeitung
STOPRE
IF R910==5 GOTO NP5
NP5: G501 GOTO Bearbeitung
Bearbeitung:
G0 Z100
G0 Z20
G0 Z100
R910=R910+1
IF R910>5 GOTO START
M31
M30
%TEST
;$PATH=/_N_WKS_DIR/_TEST
;TEST
R910=1
GOTO Bearbeitung
STOPRE
START:
IF R910==2 GOTO NP2
NP2: G55 GOTO Bearbeitung
STOPRE
IF R910==3 GOTO NP3
NP3: G56 GOTO Bearbeitung
STOPRE
IF R910==4 GOTO NP4
NP4: G57 GOTO Bearbeitung
STOPRE
IF R910==5 GOTO NP5
NP5: G501 GOTO Bearbeitung
Bearbeitung:
G0 Z100
G0 Z20
G0 Z100
R910=R910+1
IF R910>5 GOTO START
M31
M30
02.12.2021, 23:59 Uhr
Die Zeile
NP2: G55 GOTO Bearbeitung
wird so nicht funktionierenIch würde es anders machen, z.B. so:
Du könntest natürlich auch mit indirekter Programmierung arbeiten:
Dann brauchst du keine Sprünge. Ich bin jetzt mal davon ausgegangen, dass bei R490 == 1 G54 aktiv sein soll. Wenn das nicht so sein sollte, müsstest du den Fall noch speziell behandeln.
Außerdem, sollte man einen Fehler ausgeben, für den Fall, dass in dem R-Parameter unerwartete Werte stehen,
NP2: G55 GOTO Bearbeitung
wird so nicht funktionierenIch würde es anders machen, z.B. so:
CODE
IF R910 == 2
G55
Goto Bearbeitung
ENDIF
usw.
G55
Goto Bearbeitung
ENDIF
usw.
Du könntest natürlich auch mit indirekter Programmierung arbeiten:
CODE
IF R910 <= 4)
G[8] = 53 + R910
ELSE
G[8} = 496 + R910
ENDIF
;Bearbeitungsbeginn:
G0 Z100
G0 Z20
G0 Z100
G[8] = 53 + R910
ELSE
G[8} = 496 + R910
ENDIF
;Bearbeitungsbeginn:
G0 Z100
G0 Z20
G0 Z100
Dann brauchst du keine Sprünge. Ich bin jetzt mal davon ausgegangen, dass bei R490 == 1 G54 aktiv sein soll. Wenn das nicht so sein sollte, müsstest du den Fall noch speziell behandeln.
Außerdem, sollte man einen Fehler ausgeben, für den Fall, dass in dem R-Parameter unerwartete Werte stehen,
03.12.2021, 09:32 Uhr
Die Zeile
NP2: G55 GOTO Bearbeitung
wird so nicht funktionierenIch würde es anders machen, z.B. so:
[code]IF R910 == 2
G55
Goto Bearbeitung
ENDIF
NP2: G55 GOTO Bearbeitung
wird so nicht funktionierenIch würde es anders machen, z.B. so:
[code]IF R910 == 2
G55
Goto Bearbeitung
ENDIF
So funktioniert es bis zu dem Punkt.
Am Ende allerdings wenn ich zurück springen möchte gibt es Verschachtelungsfehler.
R910=R910+1
IF R910 >= 4
GOTO START
ENDIF
M17
03.12.2021, 10:50 Uhr
Das sieht so aus, als ob irgendwo davor im Programm ein ENDIF fehlen würde.
Zu jedem IF muss es auch ein ENDIF geben, sonst stimmt die Verschachtelung nicht.
Zu jedem IF muss es auch ein ENDIF geben, sonst stimmt die Verschachtelung nicht.
06.12.2021, 08:27 Uhr
Das Wort "START" als Sprungmarke zu verwenden ist nicht möglich da es ein Schlüsselwort in der Siemenswelt ist. Mit START werden aus dem eigenen Kanal Programme in andern Kanälen gestartet. Einfach mal eine andere Spungmarke definieren z.B. "Proganfang" oder so.
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: