Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

IF/GOTO bei mehreren NP, Programmwiederholung mit verschiedenen NP

Beitrag 02.12.2021, 19:41 Uhr
Binqo
Binqo
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.02.2018
Beiträge: 32
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
   
Beitrag 02.12.2021, 23:59 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.928
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

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


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,
   
Beitrag 03.12.2021, 09:32 Uhr
Binqo
Binqo
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.02.2018
Beiträge: 32
QUOTE (CNCFr @ 02.12.2021, 23:59 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


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
   
Beitrag 03.12.2021, 10:50 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.928
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.
   
Beitrag 06.12.2021, 08:27 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
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: