586.457 aktive Mitglieder*
3.478 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
FANUC Forum

Eigener Fanuc Bohrzyklus Modal wirksam?

Beitrag 14.09.2012, 16:27 Uhr
User83
User83
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.09.2012
Beiträge: 6

Hallo,

Ich habe mit Macrovaiablen eigene Bohrzyklen geschrieben.
z.B.: G71A-20.B-35.5

G71 ist in diesem Fall ein selbst generierter G-Code, der ein Unterprogramm aufruft.
A und B sind Variablen, die in diesem Unterprogramm verwendet werden.

Meine Frage: Ist es möglich diesen Bohrzyklus modal zu verwenden?

Danke!
TOP    
Beitrag 14.09.2012, 16:59 Uhr
Variabel
Variabel
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 09.02.2006
Beiträge: 393

Hallo User83

QUOTE (User83 @ 14.09.2012, 17:27 Uhr) *
Meine Frage: Ist es möglich diesen Bohrzyklus modal zu verwenden?



Ja. Ist es.

Dafür mußt du aber G66 (modaler Makroaufruf) benutzen.

Was dabei zu beachten ist, das der Aufruf erst nach der nächsten Positionierung aktiv wird.

Beenden geht dann mit G67.


--------------------
Auch wenn deine Steuerung dir sagt, das sie das nicht kann. Gibt es doch immer einen Weg sie von Gegenteil zu überzeugen.

Ach ja. Variabel war früher Speedy1.
TOP    
Beitrag 17.09.2012, 22:06 Uhr
User83
User83
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.09.2012
Beiträge: 6

Das hat so leider nicht funktioniert.
Wenn ich G66 und G71 im selben Satz schreibe, gibt es eine Fehlermeldung: doppelter G-Code Aufruf.
Es funktioniert nur wenn ich statt meinem G-Code direkt mein Makro aufrufe.
z.B. G66 P9010
TOP    
Beitrag 18.09.2012, 03:40 Uhr
Variabel
Variabel
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 09.02.2006
Beiträge: 393

QUOTE
Es funktioniert nur wenn ich statt meinem G-Code direkt mein Makro aufrufe.
z.B. G66 P9010



Ja ja. biggrin.gif

G66 ist ja nun mal die Modale Variante von G65.

Und so was wird nun mal G66 P.... geschrieben.

Hätte vielleicht ein Beispiel mit schreiben sollen.

Aber hast es ja selbst raus gefunden.


Gruß Speedy1


--------------------
Auch wenn deine Steuerung dir sagt, das sie das nicht kann. Gibt es doch immer einen Weg sie von Gegenteil zu überzeugen.

Ach ja. Variabel war früher Speedy1.
TOP    
Beitrag 18.09.2012, 06:09 Uhr
Berlin13409
Berlin13409
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 05.09.2012
Beiträge: 18

Hi,

also, wenn ich es richtig verstehe willst du dann nach Aufruf des Makros noch andere Positionen anfahrne und dann scheidet also die Option mit L aus (Anzahl der Aufrufe).

Du müsstest also dein Makro umbauen:

g71.... übergibt die Argumente an Makro P9010, welches g66 p9011 enthält, genauer:

g71 ABC ---> while [#4009ne80] do1

G66P9011 ABC

end1
g67
m99
..........................


Dann könntest du mit G80 wieder ganz normal deinen Zyklusablauf beenden. Soweit dei Theorie, noch mal kurz erklärt:

Über dein g71 rufst du ein Makro auf welches dem Makro deiner eigentlichen abläufe übergeordnet ist und solange aktiv bleibt bis du g80 ins Programm eingibst.

So wie es da ist wird es noch nicht funktionieren, aber es sollte ein guter Denkansatz sein.


Gruß Basti
TOP    
Beitrag 18.09.2012, 13:09 Uhr
heinzderheinz
heinzderheinz
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 29.10.2011
Beiträge: 920

QUOTE (Berlin13409 @ 18.09.2012, 06:09 Uhr) *
Hi,

also, wenn ich es richtig verstehe willst du dann nach Aufruf des Makros noch andere Positionen anfahrne und dann scheidet also die Option mit L aus (Anzahl der Aufrufe).

Du müsstest also dein Makro umbauen:

g71.... übergibt die Argumente an Makro P9010, welches g66 p9011 enthält, genauer:

g71 ABC ---> while [#4009ne80] do1

G66P9011 ABC

end1
g67
m99
..........................



Dann könntest du mit G80 wieder ganz normal deinen Zyklusablauf beenden. Soweit dei Theorie, noch mal kurz erklärt:

Über dein g71 rufst du ein Makro auf welches dem Makro deiner eigentlichen abläufe übergeordnet ist und solange aktiv bleibt bis du g80 ins Programm eingibst.

So wie es da ist wird es noch nicht funktionieren, aber es sollte ein guter Denkansatz sein.


Gruß Basti

Hallo Berlin 13409
Einen eigenen Zyklus zu programieren über einen Fanuc spezifischen Zyklus ist im normalfall nicht klug bzw. wird nur zum Teil funktionieren.
Kurze erklärung:
Fanuc greift bei den G funktionen auf eigene interne Variablen zurück. Somit wird es immer schwierig sein diesen zu beeinflussen.
Parameter 6050 bis 6059 kannst du dein G Code der die Unterprogramme von 9010 bis 9019 aufruft. Dieser Code darf aber nicht den Standart code entsprechen. Gib zb. im Parameter 6050 den Wert 0815 ein. Bedeutet, wenn du im Programm das Unterprogramm 0815 möchtest schreib G0815.
Nur mal kurz zur definition.

Zu der ursprünglichen frage des Ersteller dieses Themas "wo die variablen zu verfügung stehen? klares Nein!
Sind diese Modal? Kommt darauf an was du im Programm schreibst.
Ich denke es ist vorteilhafter wenn du uns dein Makro sendest inkl.erklärung was du da machen möchtest und dir evtl. einen anderen Lösungsvorschlag geben oder natürlich mit deiner Idee weiter arbeiten.


--------------------
Beste Grüße aus dem Schwarzwald
heinzderheinz
TOP    
Beitrag 18.09.2012, 19:00 Uhr
eckitsch
eckitsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 09.08.2007
Beiträge: 384

Hi User83,

Definition G65/66:
G, L, N, O und P dürfen nicht als Parameter verwendet werden!
Dabei steht das G für G65/66; das L für Anzahl der Wiederholungen; das N für die Zeilennummer; O für die Hauptprogrammnummer und das P für die Unterprogrammnummer.

Wenn du darauf bestehst G71 anstatt G66 P9010 … G67 zu verwenden, musst du ein paar Kompromisse für einen „modal“ anliegenden Befehl eingehen.
Soll heißen, beim 1. Aufruf musst du G71 X.. Y.. A.. B.. (die Position und alle Parameter) definieren, ab dem 2. Aufruf noch G71 mit mindestens X und/oder Y.

Bsp. :

G71 X0 Y0 A-20 B-35.5
G71 X10 Y0
G71 Y30 Y20
G71 X0 A-10 B-30
G71 Y60
..

„Modaler“ geht’s nicht. Und darin besteht dann auch die Schwierigkeit. Um nicht alle Parameter jedes Mal definieren zu müssen, muß zwischengespeichert werden.
Ich habe das so für eine HAAS gelöst, dort gibt es kein G66-G67.

Ich hoffe, daß hilft dir weiter.

Gruß eckitsch.
TOP    
Beitrag 19.09.2012, 05:02 Uhr
Berlin13409
Berlin13409
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 05.09.2012
Beiträge: 18

QUOTE (heinzderheinz @ 18.09.2012, 13:09 Uhr) *
Hallo Berlin 13409
Einen eigenen Zyklus zu programieren über einen Fanuc spezifischen Zyklus ist im normalfall nicht klug bzw. wird nur zum Teil funktionieren.
Kurze erklärung:
Fanuc greift bei den G funktionen auf eigene interne Variablen zurück. Somit wird es immer schwierig sein diesen zu beeinflussen.
Parameter 6050 bis 6059 kannst du dein G Code der die Unterprogramme von 9010 bis 9019 aufruft. Dieser Code darf aber nicht den Standart code entsprechen. Gib zb. im Parameter 6050 den Wert 0815 ein. Bedeutet, wenn du im Programm das Unterprogramm 0815 möchtest schreib G0815.
Nur mal kurz zur definition.

Zu der ursprünglichen frage des Ersteller dieses Themas "wo die variablen zu verfügung stehen? klares Nein!
Sind diese Modal? Kommt darauf an was du im Programm schreibst.
Ich denke es ist vorteilhafter wenn du uns dein Makro sendest inkl.erklärung was du da machen möchtest und dir evtl. einen anderen Lösungsvorschlag geben oder natürlich mit deiner Idee weiter arbeiten.



Hi Heinz und alle anderen,

du hast sicherlich Recht, wie ich auch geschrieben habe gilt dies nur als Denkansatz. Es wäre schön wenn man hier zusammen eine generelle Lösung finden könnte und sein Problem exemplarisch löst, so das es auch für uns Verwendung hat. Bis dato ist es bei uns auch so, das wir in jedem Satz erneut den Zyklus aufrufen müssen. Das wirkt einfach unprofessionell, da es von Fanuc (und auch MoriSeiki) ja auch modale abläufe derartig gibt, und das wissen die Leute an der Maschine auch.


Gruß Basti
TOP    
Beitrag 19.09.2012, 07:53 Uhr
User83
User83
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.09.2012
Beiträge: 6

Ich bin mit dem Ergebnis ganz zufrieden.
Habe jetzt mehrere Bohrzyklen geschrieben.
z.B.
für das Bohren mit Stufenbohrern,
für das Bohren mit Tieflochbohrern mit Pilotierung
für das Bohren mit überlangen HM-Bohrern, die sich selsbt Pilotieren.

Jetzt muss ich zwar an jeder Position meinen Zyklus neu aufrufen, aber das ist immernoch besser
als an jeder Position eine halbe Seite Text zu schreiben, weil ich alles in G1 Sätze zerlegen muss.
Mit den einfachen Bohrzyklen, die im Standart aus der Maschine sind, kommt man in der Serienproduktion ja nicht weit.
TOP    
Beitrag 19.09.2012, 17:01 Uhr
Morph21
Morph21
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 26.11.2005
Beiträge: 63

Arbeitest du an einer Fräsmaschine, denn ich muss sagen auf Drehmaschinen hab ich überhaupt kein Bedarf für spezielle Bohrzyklen.

Wir bearbeiten z.b. viel Edelstahl und dann benutze ich G74/G75 zum Späne brechen und wenn es ein Bohrbild sein soll in Verbindung mit Schleifen, damit ist man sehr flexibel.

Aber das Thema ansich ist interessant weil ich auch schon länger ein Idee im Kopf hab. Wäre es möglich einen Zyklus zu schreiben der Code von bis Satznummer x-mal wiederholt, also ohne diesen Code in ein Unterprogramm zu packen, hat da jemand ne Idee ?
TOP    
Beitrag 21.09.2012, 06:03 Uhr
Berlin13409
Berlin13409
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 05.09.2012
Beiträge: 18

QUOTE (Morph21 @ 19.09.2012, 17:01 Uhr) *
Aber das Thema ansich ist interessant weil ich auch schon länger ein Idee im Kopf hab. Wäre es möglich einen Zyklus zu schreiben der Code von bis Satznummer x-mal wiederholt, also ohne diesen Code in ein Unterprogramm zu packen, hat da jemand ne Idee ?



Du meinst soetwaes wie G71/G72 etc., nich? Nach soetwas suche ich ja auch, aber ich hab bisher noch keine Möglichkeit gefunden, ich schätze das die "application engineers" von Fanuc und MoriSeiki einfach vielmehr Möglichkeiten und Informationen darüber haben als sie - verständlicherweise - preisgeben. Wenn doch jemand eine gute Idee hat - oder Geheiminformationen biggrin.gif - dann echt gerne.

Gruß Basti
TOP    
Beitrag 21.09.2012, 17:09 Uhr
Morph21
Morph21
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 26.11.2005
Beiträge: 63

Obwohl wenn ich darüber nachdenke könnte es sogar ganz einfach gehen, kann es aber die nächsten zwei Wochen nicht testen da ich Urlaub hab.

So stell ich mir das vor, Lochkreis mit 6 Bohrungen...

T101 G0 Z2.0 M13
G0 X30.0 C0.0 G97 S3000 M44
G501 P6 (Unterprogramm 1 Anfang)
G1 G98 Z-1.5 F150
G74 R0.2
G74 Z-20.0 Q2000 F250
G0 Z2.0
G0 H60.0
G500(Unterprogramm 2 Ende)
....weitere Bearbeitung

G501 wäre ein Unterprogramm in dem nur die Anzahl der Wiederholungen zwischen gespeichert wird und von der beginnt dann im Hauptprogramm der erste Durchlauf einer Bohrung.

Beim G500 angekommen geht es in das zweite Unterprogramm, dort wird eine Variable für den aktuellen Durchgang gezählt und wenn die Wiederholungen noch nicht erreicht sind wird ins Unterprogramm G501 gesprungen wo es dann von dort aus wieder ins Hauptprogramm für die nächste Bohrung weitergeht.

Ist P6 erreicht wird von G500 in den Satz nach G500 im Hauptprogramm gesprungen.

Eigentlich müsste das doch funktionieren, fragt sich nur wieviel Zeit das Springen in die Programme kostet und wie es sich mit lokalen Variablen erhält.
TOP    
Beitrag 21.09.2012, 17:39 Uhr
heinzderheinz
heinzderheinz
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 29.10.2011
Beiträge: 920

QUOTE (Morph21 @ 21.09.2012, 18:09 Uhr) *
Obwohl wenn ich darüber nachdenke könnte es sogar ganz einfach gehen, kann es aber die nächsten zwei Wochen nicht testen da ich Urlaub hab.

So stell ich mir das vor, Lochkreis mit 6 Bohrungen...

T101 G0 Z2.0 M13
G0 X30.0 C0.0 G97 S3000 M44
G501 P6 (Unterprogramm 1 Anfang)
G1 G98 Z-1.5 F150
G74 R0.2
G74 Z-20.0 Q2000 F250
G0 Z2.0
G0 H60.0
G500(Unterprogramm 2 Ende)
....weitere Bearbeitung

G501 wäre ein Unterprogramm in dem nur die Anzahl der Wiederholungen zwischen gespeichert wird und von der beginnt dann im Hauptprogramm der erste Durchlauf einer Bohrung.

Beim G500 angekommen geht es in das zweite Unterprogramm, dort wird eine Variable für den aktuellen Durchgang gezählt und wenn die Wiederholungen noch nicht erreicht sind wird ins Unterprogramm G501 gesprungen wo es dann von dort aus wieder ins Hauptprogramm für die nächste Bohrung weitergeht.

Ist P6 erreicht wird von G500 in den Satz nach G500 im Hauptprogramm gesprungen.

Eigentlich müsste das doch funktionieren, fragt sich nur wieviel Zeit das Springen in die Programme kostet und wie es sich mit lokalen Variablen erhält.


Hallo
Bin nicht ganz sicher ob ich das richtig verstanden habe.
Es gibt doch die Möglichkeit über M98P200815 das Unterprogramm 0815 und in diesem Fall 20 mal zu wiederholen. Wenn man nach dem M98 nur einen 4stelligen code eingibt bedeutet das du in das Unterprogramm O0815 springen möchtest. Wenn du jedoch M98P200815 eingibst wird das UnterprogrammO0815 wiederholt um den betrag den du eingibst. in diesem fall 20 mal.
ist etwas kompliziert das zu Beschreiben.
Mit M98P???? (max.4stellen) gebe ich die anweisung welches Unterprogramm ich aufrufen möchte. schreibe ich M98P!!!???? bedeutet das ich mit den!!! anzahl der Wiederholungen meine und mit ???? die 4stellige programmnummer.
Weis jetzt nicht so recht ob ich das Thema verfehlt habe oder evtl.alle Verunsichert habe?
Fakt ist ich kann die ersten 3 Stellen Anzahl der Wioederholungen eingeben und die restlichen 4 Stellen sind die Unterprog.Nr.
Meldet euch wenn was unklar ist oder ob ich das Thema verfehlt habe.


--------------------
Beste Grüße aus dem Schwarzwald
heinzderheinz
TOP    
Beitrag 21.09.2012, 23:25 Uhr
käse
käse
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 29.10.2005
Beiträge: 241

QUOTE (User83 @ 14.09.2012, 17:27 Uhr) *
Hallo,

Ich habe mit Macrovaiablen eigene Bohrzyklen geschrieben.
z.B.: G71A-20.B-35.5

G71 ist in diesem Fall ein selbst generierter G-Code, der ein Unterprogramm aufruft.
A und B sind Variablen, die in diesem Unterprogramm verwendet werden.

Meine Frage: Ist es möglich diesen Bohrzyklus modal zu verwenden?

Danke!


Hallo User83

In unserem Anwenderhandbuch steht das der G-Nummer in den Parametern negativ eingegeben werden muß um die G-Funktion modal zu verwenden.

Gruß käse
TOP    
Beitrag 22.09.2012, 10:06 Uhr
Morph21
Morph21
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 26.11.2005
Beiträge: 63

QUOTE (heinzderheinz @ 21.09.2012, 18:39 Uhr) *
Hallo
Bin nicht ganz sicher ob ich das richtig verstanden habe.
Es gibt doch die Möglichkeit über M98P200815 das Unterprogramm 0815 und in diesem Fall 20 mal zu wiederholen. Wenn man nach dem M98 nur einen 4stelligen code eingibt bedeutet das du in das Unterprogramm O0815 springen möchtest. Wenn du jedoch M98P200815 eingibst wird das UnterprogrammO0815 wiederholt um den betrag den du eingibst. in diesem fall 20 mal.
ist etwas kompliziert das zu Beschreiben.
Mit M98P???? (max.4stellen) gebe ich die anweisung welches Unterprogramm ich aufrufen möchte. schreibe ich M98P!!!???? bedeutet das ich mit den!!! anzahl der Wiederholungen meine und mit ???? die 4stellige programmnummer.
Weis jetzt nicht so recht ob ich das Thema verfehlt habe oder evtl.alle Verunsichert habe?
Fakt ist ich kann die ersten 3 Stellen Anzahl der Wioederholungen eingeben und die restlichen 4 Stellen sind die Unterprog.Nr.
Meldet euch wenn was unklar ist oder ob ich das Thema verfehlt habe.



Bin mir nicht ganz sicher aber gibt man bei M98 die Wiederholungen nicht mit L an ?

Mein Beispiel mit G501 P6 hat damit nix zu tun, war schlecht gewählt kann auch ein andere Buchstabe sein, geht nur darum die Anzahl in das Unterprogramm zu übertragen. Aber ich will kein Bearbeitungscode in einem Unterprogramm haben...um noch mal auf mein Beispiel von oben zurück zu kommen, ich glaub so einfach funktioniert das doch nicht. Wenn vom Unterprogramm G500 wieder in G501 gesprungen wird, wie komme ich dann wieder ins Hauptprogramm, mit M99 würde wieder in G500 gesprungen und es wäre wohl eine Endlosschleife.
Ich könnte zwar vor dem ganzen das aktuelle Programm kommen, aber wie soll man ohne Satznummern dann immer wieder in den Satz nach dem G501 P6 kommen, und Satznummern sind gefährlich falls sie zweimal vorkommen.

Ich weiß nicht ob jemand überhaupt versteht was ich will... smile.gif
TOP    



1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: