Siemens
Digital Industries, Motion Control, Machine Tool Systems
8832
Follower:innenFOR SCHLEIFE / Label MIT INT VARIABLE
04.05.2017, 14:17 Uhr
Guten Tag zusammen
Ich habe eine Frage bezüglich FOR SCHLEIFE und Label mit einer Integer Variable.
Ich möchte mit einem R-Parameter definieren, wie viele Teile ich bearbeite.
In den Label 1-4 definiere ich jeweils die Nullpunkte. Anschliessend möchte ich mit einer FOR SCHLEIFE und der Integer Variable ANZAHL jeweils zu den entsprechenden Labeln springen. Jedoch funktioniert der Befehl mit dem REPEAT LABELANZAHL nicht.
Hat jemand eine Idee, wie ich dieses Problem lösen kann?
Hier ein Teil des Programms:
N10 DEF INT ANZAHL ; Definition fuer Wiederholungen
N20 R100=4 ; Anzahl Teile fertigen
N80 LABEL1:
xxxNullpunkt 1xxx
N100 ENDLABEL:
N110 LABEL2:
xxxNullpunkt 2xxx
N130 ENDLABEL:
N140 LABEL3:
xxxNullpunkt 3xxx
N160 ENDLABEL:
N170 LABEL4:
xxxNullpunkt 4xxx
N190 ENDLABEL:
N710 LABEL100:
xxxBearbeitungxxx
N840 ENDLABEL:
N850 FOR ANZAHL=1 TO R100
/N860 REPEAT LABELANZAHL
/N870 REPEAT LABEL100
N880 ENDFOR
Vielen Dank.
Gruess Roman
Ich habe eine Frage bezüglich FOR SCHLEIFE und Label mit einer Integer Variable.
Ich möchte mit einem R-Parameter definieren, wie viele Teile ich bearbeite.
In den Label 1-4 definiere ich jeweils die Nullpunkte. Anschliessend möchte ich mit einer FOR SCHLEIFE und der Integer Variable ANZAHL jeweils zu den entsprechenden Labeln springen. Jedoch funktioniert der Befehl mit dem REPEAT LABELANZAHL nicht.
Hat jemand eine Idee, wie ich dieses Problem lösen kann?
Hier ein Teil des Programms:
N10 DEF INT ANZAHL ; Definition fuer Wiederholungen
N20 R100=4 ; Anzahl Teile fertigen
N80 LABEL1:
xxxNullpunkt 1xxx
N100 ENDLABEL:
N110 LABEL2:
xxxNullpunkt 2xxx
N130 ENDLABEL:
N140 LABEL3:
xxxNullpunkt 3xxx
N160 ENDLABEL:
N170 LABEL4:
xxxNullpunkt 4xxx
N190 ENDLABEL:
N710 LABEL100:
xxxBearbeitungxxx
N840 ENDLABEL:
N850 FOR ANZAHL=1 TO R100
/N860 REPEAT LABELANZAHL
/N870 REPEAT LABEL100
N880 ENDFOR
Vielen Dank.
Gruess Roman
04.05.2017, 14:20 Uhr
"Funktioniert nicht" ist keine Fehlerbeschreibung.
04.05.2017, 14:43 Uhr
"Funktioniert nicht" ist keine Fehlerbeschreibung.
Die Maschine findet das Sprungziel nicht. Ich kriege einen Fehler "Sprungziel LABELANZAHL nicht gefunden".
Ich möchte den Label-Sprung ja auf den Variablen-Wert "ANZAHL" machen.
Muss ich beim REPEAT LABELANZAHL etwas anders definieren?
04.05.2017, 14:56 Uhr
Ich sehe auch kein Label dieses Namens in deinem Programmstück.
04.05.2017, 15:00 Uhr
04.05.2017, 22:14 Uhr
Die Maschine findet das Sprungziel nicht. Ich kriege einen Fehler "Sprungziel LABELANZAHL nicht gefunden".
Ich möchte den Label-Sprung ja auf den Variablen-Wert "ANZAHL" machen.
Muss ich beim REPEAT LABELANZAHL etwas anders definieren?
Ich möchte den Label-Sprung ja auf den Variablen-Wert "ANZAHL" machen.
Muss ich beim REPEAT LABELANZAHL etwas anders definieren?
Mit REPEAT LABELANZAHL sucht die Steuerung nach dem Label 'LABELANZAHL' das es nicht gibt.
'LABEL' und ANAHL müsste verkettet in einem Stringparameter abgelegt werden.
Dieser kann dann bei REPEAT angegeben werden.
Gruß
cgTNC
05.05.2017, 07:19 Uhr
Mit REPEAT LABELANZAHL sucht die Steuerung nach dem Label 'LABELANZAHL' das es nicht gibt.
'LABEL' und ANAHL müsste verkettet in einem Stringparameter abgelegt werden.
Dieser kann dann bei REPEAT angegeben werden.
Gruß
cgTNC
'LABEL' und ANAHL müsste verkettet in einem Stringparameter abgelegt werden.
Dieser kann dann bei REPEAT angegeben werden.
Gruß
cgTNC
Vielen Dank für die Antwort.
Das LABELANZAHL nicht vorhanden ist war mir klar. Jedoch weiss ich nicht, wie ich diese Int-Variable mit dem LABEL verknüpfen kann.
Wie sieht das mit dem verketten genau aus?
Ich habe vorher ein paar Versuche gemacht, jedoch hat das nicht geklappt. Irgendwo stimmt etwas im Format nicht.
Zuerst definiere ich ja mal die Strings:
DEF INT ANZAHL ; Definition fuer Wiederholungen
DEF STRING[20] WIED
DEF STRING[20] LAB = "LABEL"
R100=10 ; Anzahl Teile fertigen
Anschliessend möchte ich diese in der FOR - Schleife aufrufen:
FOR ANZAHL=1 TO R100
WIED=LAB<<ANZAHL
REPEAT WIED <----- in dieser Zeile stimmt die Formatierung nicht. Wie muss ich das WIED genau aufrufen?
REPEAT LABEL100
ENDFOR
Vielen Dank.
Gruess Roman
05.05.2017, 08:08 Uhr
REPEAT "LABEL"<<ANZAHL
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
05.05.2017, 10:26 Uhr
05.05.2017, 10:51 Uhr
REAPEAT geht damit auch nicht
musst es so machen
Der Beitrag wurde von Hexogen bearbeitet: 05.05.2017, 10:53 Uhr
musst es so machen
CODE
DEF INT ANZAHL
GOTOF TESTEN
LABEL_1:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_2:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_3:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_4:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_5:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_6:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_7:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
TESTEN:
M0
STOPRE
FOR ANZAHL=1 TO 6
GOTOB "LABEL_"<<ANZAHL
INFOR:
ENDFOR
M0
M30
GOTOF TESTEN
LABEL_1:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_2:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_3:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_4:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_5:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_6:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
LABEL_7:
MSG("TEST_"<<ANZAHL)
M0
GOTOF INFOR
TESTEN:
M0
STOPRE
FOR ANZAHL=1 TO 6
GOTOB "LABEL_"<<ANZAHL
INFOR:
ENDFOR
M0
M30
Der Beitrag wurde von Hexogen bearbeitet: 05.05.2017, 10:53 Uhr
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
05.05.2017, 13:03 Uhr
Vielen Dank für die Antwort.
Mit diesem Programmaufbau funktioniert es. Wunderbar
Gruess Roman
Mit diesem Programmaufbau funktioniert es. Wunderbar
Gruess Roman
06.05.2017, 13:49 Uhr
Guest_guest_*
Themenstarter
Gast
Wie wär's denn in diesem Fall mit "Unterprogrammtechnik"?
Ein geradezu klassischer Fall !!
Wird "zaehler" als GUD definiert, oder eine R-Variable verwendet, bliebe auch die Position des aktuellen Werkstücks nach PowerOn Reset erhalten.
Ein geradezu klassischer Fall !!
CODE
def int anzahl,zaehler
anzahl=5
gotof "Teil"<<zaehler
Teil0:
G54
gotof Bearbeitung
Teil1:
G55
gotof Bearbeitung
Teil2:
G56
gotof Bearbeitung
...
Teil10:
G510
gotof Bearbeitung
Bearbeitung:
Teileprogramm;UP als eigentliches Teileprogramm
zaehler=zaehler+1
if zaehler<anzahl
gotob "Teil"<<zaehler
endif
zaehler=0
M5
M30
anzahl=5
gotof "Teil"<<zaehler
Teil0:
G54
gotof Bearbeitung
Teil1:
G55
gotof Bearbeitung
Teil2:
G56
gotof Bearbeitung
...
Teil10:
G510
gotof Bearbeitung
Bearbeitung:
Teileprogramm;UP als eigentliches Teileprogramm
zaehler=zaehler+1
if zaehler<anzahl
gotob "Teil"<<zaehler
endif
zaehler=0
M5
M30
Wird "zaehler" als GUD definiert, oder eine R-Variable verwendet, bliebe auch die Position des aktuellen Werkstücks nach PowerOn Reset erhalten.
06.05.2017, 15:03 Uhr
Hi
So wie guest schon sagte das ist mehr als nur ein klassischer Fall für eine übersichtliche Unterprogrammtechnik
Ich weiss zwar nicht warum man dieses LABEL getue, wie es bei Heidenhain üblich ist, nun auch bei Siemens versucht so konsequent umzusetzen. Es ist eigentlich nur hinderlich. Man erzeugt Ellen langen Code, der kaum noch überschaubar ist, noch ein editieren besonder komfortabel gestallten lässt.
Wenn du auch für die Unterbrechungssituation ein Programmeinstieg benötigst, dann steht es dir frei, auch den Zähler als R- Parameter, oder als GUD Variable zu verwenden.
Du kannst die Zeile G[08] auch durch folgenden Code ersetzen
Das klappt allerdings nur bis G57
Vor dem ersten Aufruf müsste im Menü Parameter - R- Parameter der Parameter R101 auf 1 gesetzt werden.
Damit kann bei einer Programmunterbrechung das Programm ab der Spannstelle fortgesetzt werden, an welchem diese Unterbrechung stattgefunden hat.
Die Bearbeitung selber steht nun um Unterprogramm "UP_BEARBEITUNG".
So wie guest schon sagte das ist mehr als nur ein klassischer Fall für eine übersichtliche Unterprogrammtechnik
Ich weiss zwar nicht warum man dieses LABEL getue, wie es bei Heidenhain üblich ist, nun auch bei Siemens versucht so konsequent umzusetzen. Es ist eigentlich nur hinderlich. Man erzeugt Ellen langen Code, der kaum noch überschaubar ist, noch ein editieren besonder komfortabel gestallten lässt.
Wenn du auch für die Unterbrechungssituation ein Programmeinstieg benötigst, dann steht es dir frei, auch den Zähler als R- Parameter, oder als GUD Variable zu verwenden.
CODE
%HAUPTPROGRAMM.MPF
R100 = 4; Anzahl der Spannstellen
IF R101 == 1 GOTOF SCHLEIFE:
R101 = R102
SCHLEIFE:
FOR R102 = R101 TO R100
G[08] = R102; NP aufrufen
UP_BEARBEITUNG
ENDFOR
R101 = 1; Startzähler wird wieder auf NP = 1 gesetzt
M30
R100 = 4; Anzahl der Spannstellen
IF R101 == 1 GOTOF SCHLEIFE:
R101 = R102
SCHLEIFE:
FOR R102 = R101 TO R100
G[08] = R102; NP aufrufen
UP_BEARBEITUNG
ENDFOR
R101 = 1; Startzähler wird wieder auf NP = 1 gesetzt
M30
Du kannst die Zeile G[08] auch durch folgenden Code ersetzen
CODE
EXECSTRING("G"<<53+R102)
Das klappt allerdings nur bis G57
Vor dem ersten Aufruf müsste im Menü Parameter - R- Parameter der Parameter R101 auf 1 gesetzt werden.
Damit kann bei einer Programmunterbrechung das Programm ab der Spannstelle fortgesetzt werden, an welchem diese Unterbrechung stattgefunden hat.
Die Bearbeitung selber steht nun um Unterprogramm "UP_BEARBEITUNG".
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
06.05.2017, 17:41 Uhr
Guest_guest_*
Themenstarter
Gast
....
Du kannst die Zeile G[08] auch durch folgenden Code ersetzen
QUELLTEXT
EXECSTRING("G"<<53+R102)
Das klappt allerdings nur bis G57 wink.gif
...
Du kannst die Zeile G[08] auch durch folgenden Code ersetzen
QUELLTEXT
EXECSTRING("G"<<53+R102)
Das klappt allerdings nur bis G57 wink.gif
...
Das lässt sich natürlich auch auf die Spitze treiben...
Die Variante mit execstring lässt sich aber auch einfach lösen:
R10=Nullpunktnummer:
CODE
if R10<5
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
Der Beitrag wurde von guest bearbeitet: 06.05.2017, 17:43 Uhr
06.05.2017, 17:42 Uhr
Das lässt sich natürlich auch auf die Spitze treiben...
Die Variante mit execstring lässt sich aber auch einfach lösen:
R10=Nullpunktnummer:
Die Variante mit execstring lässt sich aber auch einfach lösen:
R10=Nullpunktnummer:
CODE
if R10<5
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
Wird bloss nicht bei DMG funktionieren
Der Beitrag wurde von Andy742000 bearbeitet: 06.05.2017, 17:48 Uhr
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
06.05.2017, 19:42 Uhr
Guten Abend,
-guest
Ich würde Dir jetzt einmal die Frage stellen wollen warum Du diesen Programm-Code hier so bereit stellst ?
Dir müsste auf Grund deiner Erfahrung bekannt sein, dass diese Auflösung G5xx nicht nach Handbuch fest- oder vorgeschrieben ist !
Damit kann ich auch für die Maschinenhersteller sprechen, für diese Maschinen die auch bei uns stehen, dass dieses CODE -Konzept nicht aufgeht ! Oder sehen Sie das anders ?
Zum Programm-Code für einen fragenden Forenteilnehmer sollte nicht eine unerkennbare / Unerkenntliche Mischform gewählt werden. Wo und Wie kommt Jetzt Ihr R10 in diese Verbindung mit einem Zähler ?
Schönen Abend
-guest
Ich würde Dir jetzt einmal die Frage stellen wollen warum Du diesen Programm-Code hier so bereit stellst ?
Dir müsste auf Grund deiner Erfahrung bekannt sein, dass diese Auflösung G5xx nicht nach Handbuch fest- oder vorgeschrieben ist !
Damit kann ich auch für die Maschinenhersteller sprechen, für diese Maschinen die auch bei uns stehen, dass dieses CODE -Konzept nicht aufgeht ! Oder sehen Sie das anders ?
Zum Programm-Code für einen fragenden Forenteilnehmer sollte nicht eine unerkennbare / Unerkenntliche Mischform gewählt werden. Wo und Wie kommt Jetzt Ihr R10 in diese Verbindung mit einem Zähler ?
Schönen Abend
Das lässt sich natürlich auch auf die Spitze treiben...
Die Variante mit execstring lässt sich aber auch einfach lösen:
R10=Nullpunktnummer:
Die Variante mit execstring lässt sich aber auch einfach lösen:
R10=Nullpunktnummer:
CODE
if R10<5
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
execstring("G"<<53+R10)
else
execstring("G"<<500+R10)
endif
06.05.2017, 21:22 Uhr
Man muss mal die Kirche im Dorf lassen
Ich denk hier mit EXECSTRING was anzufangen wäre so wie mit Dynamit fischen zu gehen.
Allein schon die Variante mit "in die Forschleife zu springen" ist recht "abenteuerlich"
Und ohne genau Randbedienungen zu kennen kann man auch nicht viel zum aktuellen Programm sagen.
Ich denk hier mit EXECSTRING was anzufangen wäre so wie mit Dynamit fischen zu gehen.
Allein schon die Variante mit "in die Forschleife zu springen" ist recht "abenteuerlich"
Und ohne genau Randbedienungen zu kennen kann man auch nicht viel zum aktuellen Programm sagen.
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
06.05.2017, 22:40 Uhr
An Anfang war das Programm ja gut strukturiert.
Man braucht eigentlich nur diese 2 Sätze einfügen:
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
Gruß
cgTNC
Man braucht eigentlich nur diese 2 Sätze einfügen:
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
Gruß
cgTNC
CODE
N10 DEF INT ANZAHL; Definition fuer Wiederholungen
N20 R100=4; Anzahl Teile fertigen
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
N80 LABEL1:
xxxNullpunkt 1xxx
N100 ENDLABEL:
N110 LABEL2:
xxxNullpunkt 2xxx
N130 ENDLABEL:
N140 LABEL3:
xxxNullpunkt 3xxx
N160 ENDLABEL:
N170 LABEL4:
xxxNullpunkt 4xxx
N190 ENDLABEL:
N710 LABEL100:
xxxBearbeitungxxx
N840 ENDLABEL:
N850 FOR ANZAHL=1 TO R100
/N860 REPEAT LABELANZAHL
/N870 REPEAT LABE100
N880 ENDFOR
N20 R100=4; Anzahl Teile fertigen
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
N80 LABEL1:
xxxNullpunkt 1xxx
N100 ENDLABEL:
N110 LABEL2:
xxxNullpunkt 2xxx
N130 ENDLABEL:
N140 LABEL3:
xxxNullpunkt 3xxx
N160 ENDLABEL:
N170 LABEL4:
xxxNullpunkt 4xxx
N190 ENDLABEL:
N710 LABEL100:
xxxBearbeitungxxx
N840 ENDLABEL:
N850 FOR ANZAHL=1 TO R100
/N860 REPEAT LABELANZAHL
/N870 REPEAT LABE100
N880 ENDFOR
07.05.2017, 09:34 Uhr
Guest_guest_*
Themenstarter
Gast
Guten Abend,
-guest
Ich würde Dir jetzt einmal die Frage stellen wollen warum Du diesen Programm-Code hier so bereit stellst ?
Dir müsste auf Grund deiner Erfahrung bekannt sein, dass diese Auflösung G5xx nicht nach Handbuch fest- oder vorgeschrieben ist !
Damit kann ich auch für die Maschinenhersteller sprechen, für diese Maschinen die auch bei uns stehen, dass dieses CODE -Konzept nicht aufgeht ! Oder sehen Sie das anders ?
Zum Programm-Code für einen fragenden Forenteilnehmer sollte nicht eine unerkennbare / Unerkenntliche Mischform gewählt werden. Wo und Wie kommt Jetzt Ihr R10 in diese Verbindung mit einem Zähler ?
Schönen Abend
-guest
Ich würde Dir jetzt einmal die Frage stellen wollen warum Du diesen Programm-Code hier so bereit stellst ?
Dir müsste auf Grund deiner Erfahrung bekannt sein, dass diese Auflösung G5xx nicht nach Handbuch fest- oder vorgeschrieben ist !
Damit kann ich auch für die Maschinenhersteller sprechen, für diese Maschinen die auch bei uns stehen, dass dieses CODE -Konzept nicht aufgeht ! Oder sehen Sie das anders ?
Zum Programm-Code für einen fragenden Forenteilnehmer sollte nicht eine unerkennbare / Unerkenntliche Mischform gewählt werden. Wo und Wie kommt Jetzt Ihr R10 in diese Verbindung mit einem Zähler ?
Schönen Abend
Es war ein Vorschlag, der zugegeben nicht bedingungslos auf jeder Version funktionieren muß...
Hier also eine Version die sehr kurz und übersichtlich ist.
CODE
def int anzahl,zaehler
anzahl=5
zaehler=2;Index von G54
Nullpunkt:
G[8]=zaehler
Bearbeitung:
Teileprogramm;UP als eigentliches Teileprogramm
zaehler=zaehler+1;Zaehler
if zaehler<=anzahl+2 gotob Nullpunkt
zaehler=0
M5
M30
anzahl=5
zaehler=2;Index von G54
Nullpunkt:
G[8]=zaehler
Bearbeitung:
Teileprogramm;UP als eigentliches Teileprogramm
zaehler=zaehler+1;Zaehler
if zaehler<=anzahl+2 gotob Nullpunkt
zaehler=0
M5
M30
Hier wird der Nullpunkt mit seinem Index in der
G-Code-Gruppe 8 aufgerufen (PG-"Liste der G-Funktionen").
Der Syntax ist in PGA "Indirekte Programmierung" beschrieben.
Der Beitrag wurde von CNCFanatiker bearbeitet: 28.07.2017, 11:42 Uhr
07.05.2017, 22:50 Uhr
An Anfang war das Programm ja gut strukturiert.
Man braucht eigentlich nur diese 2 Sätze einfügen:
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
Man braucht eigentlich nur diese 2 Sätze einfügen:
N40 LABELANZAHL:
N41 GOTOF "LABEL"<<ANZAHL
man siehts viele wege führen nach rom ...
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
10.05.2017, 10:11 Uhr
Hi
Das mit dem EXECSTRING ist wirklich nur eine Lösung die schon weit weit weit naja es Funktioniert auf jeden Fall
Ich glaube nicht, dass ich mit einer Variable direkt "in" eine Schleife gesprungen bin.
Hier hat die FOR- Schleife gegenüber der Zähler und IF - GOTO Methode wirklich den Nachteil, dass man einen Programmeinstieg nach einer Abbruch- Situation nur sehr umständlich bewerkstelligen kann, wenn man nicht wieder bei der ersten Spannstelle beginnen möchte.
Aber auch die von guest aufgezeigte Methode bedarf eines manuellen Eingriffs, direkt in die Variablen / R-Parameter, wenn man nicht mit der ersten Spannstelle beginnen will.
Schöne Woche noch
Man muss mal die Kirche im Dorf lassen
Ich denk hier mit EXECSTRING was anzufangen wäre so wie mit Dynamit fischen zu gehen.
Allein schon die Variante mit "in die Forschleife zu springen" ist recht "abenteuerlich"
Und ohne genau Randbedienungen zu kennen kann man auch nicht viel zum aktuellen Programm sagen.
Ich denk hier mit EXECSTRING was anzufangen wäre so wie mit Dynamit fischen zu gehen.
Allein schon die Variante mit "in die Forschleife zu springen" ist recht "abenteuerlich"
Und ohne genau Randbedienungen zu kennen kann man auch nicht viel zum aktuellen Programm sagen.
Das mit dem EXECSTRING ist wirklich nur eine Lösung die schon weit weit weit naja es Funktioniert auf jeden Fall
Ich glaube nicht, dass ich mit einer Variable direkt "in" eine Schleife gesprungen bin.
Hier hat die FOR- Schleife gegenüber der Zähler und IF - GOTO Methode wirklich den Nachteil, dass man einen Programmeinstieg nach einer Abbruch- Situation nur sehr umständlich bewerkstelligen kann, wenn man nicht wieder bei der ersten Spannstelle beginnen möchte.
Aber auch die von guest aufgezeigte Methode bedarf eines manuellen Eingriffs, direkt in die Variablen / R-Parameter, wenn man nicht mit der ersten Spannstelle beginnen will.
Schöne Woche noch
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: