586.952 aktive Mitglieder*
2.910 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
FANUC Forum

GOTO-Anweisungen, Wiederholungen mit Sprungbefehl

Beitrag 06.10.2004, 21:29 Uhr
balibalu
balibalu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.08.2004
Beiträge: 9

Hallo Leute

Ich möchte nochmals das Thema mit den Sprungbefehlen anreissen.

Ich spanne meistens 4 gleiche Teile auf (G54-G57). Diese haben oft mehrere Gewinde, Konturen, etc.
Jetzt könnte ich die Wiederholung der Bohrpositionen natürlich mit Unterprogrammen lösen. Das möchte ich aber nicht, sondern möglichst alles gut strukturiert im Hauptprogramm unterbringen.
Hier ein vereinfachtes Beispiel:

%
O9999
-----
-----
N10(SENKER )
M6 T1
G40 G49 G80 G90 M08
G0 G43 G54 X50 Y50 Z10 S2500 H1 M3
G99 G81 Z-6 R2 F800
*1. Sprung zu Bohrpositionen (N100)

N20(VHM-BOHRER D8.5 )
M6 T2
G40 G49 G80 G90 M08
G0 G43 G54 X50 Y50 Z10 S2500 H2 M3
G99 G81 Z-20 R2 F800
*2. Sprung zu Bohrpositionen (N100)

N30(GEWINDEBOHRER M10)
M6T3
G40 G49 G80 G90 M08
G0 G43 G54 X50 Y50 Z10 S5000 H3
M54 S400
G84 G99 Z-26 R5 F600
----
----
N9999 M30
%

N100 (1. BOHRBILD / WIRD NACH DEM M30 PLAZIERT)
X0
X-50
Y0
Y-50
X0
X-50
Y0
G55 X50 Y50
X0
X-50
Y0
Y-50
X0
X-50
Y0
*RÜCKSPRUNG ZU N20
*RÜCKSPRUNG ZU N30
---------------------------------------------------
Fragen:
- Wie sehen die *GOTO-Anweisungen in diesem Beispiel aus?
- Wie ist es möglich mehrere Rücksprünge vom gleichen Block aus zu machen?
- Ist es grundsätzlich möglich solche Blöcke nach dem M30 zu plazieren?

thumbs-up.gif Wer könnte mir dazu einige gute Tipps geben?

bis bald und danke
baliblau
TOP    
Beitrag 09.10.2004, 18:39 Uhr
Armageddon
Armageddon
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 09.01.2004
Beiträge: 762

Nur mal so aus dem Bauch heraus etwa auf diese Art müßte es auch gehen:

O1234 (BEISPIEL)

#4=0 (ZAEHLER)
#3=100 (ERSTE BEARBEITUNG)

N1 (ERSTE POS)
#1=10 (X-POS)
#2=10 (Y-POS)
#5=2 (RUECKSPRUNGSATZNUMMER)
GOTO#3

N2 (ZWEITE POS)
#1=10 (X-POS)
#2=50 (Y-POS)
#5=3 (RUECKSPRUNGSATZNUMMER)
GOTO#3

N3 (DRITTE POS)
#1=50 (X-POS)
#2=50 (Y-POS)
#5=4 (RUECKSPRUNGSATZNUMMER)
GOTO#3

N4 (VIERTE POS)
#1=50 (X-POS)
#2=10 (Y-POS)
#5=1 (RUECKSPRUNGSATZNUMMER)
GOTO#3

N100 (ZENTRIEREN)
#4=#4+1 (BEARBEITUNGSZAEHLER HOCHZAEHLEN)
M6 T1
G0 X#1 Y#2 Z5
G1 Z-5 F250
G0 Z5
IF[#4EQ4]THEN #3=200
GOTO#5

N200 (BOHREN)
#4=#4+1 (BEARBEITUNGSZAEHLER HOCHZAEHLEN)
M6 T2
G0 X#1 Y#2 Z5
G1 Z-50 F500
G0 Z5
IF[#4EQ8]THEN #3=300
GOTO#5

N300 (GEWINDE)
#4=#4+1 (BEARBEITUNGSZAEHLER HOCHZAEHLEN)
M6 T3
G0 X#1 Y#2 Z5
G84 Z-35 F1.5
G80
IF[#4EQ12]THEN #5=400
GOTO#5

N400 M30
TOP    
Beitrag 09.10.2004, 21:11 Uhr
Fräserman
Fräserman
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 06.09.2004
Beiträge: 48

Hallo allerseits,

das vorherige Beispiel funktioniert nicht!

#1=A
#2=B
...
#26=Z

Diese können nicht für diese Art verwendet werden.
Es sind direkte Abfragevariablen für den Macroaufruf.


--------------------
Gruss Fräserman
TOP    
Beitrag 10.10.2004, 00:38 Uhr
Armageddon
Armageddon
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 09.01.2004
Beiträge: 762

@Fräserman,

was soll den daran bitteschön nicht gehen? Es werden den Variablen nur Werte zugewiesen!

#1=50 --> der Variable 50 wird der Wert 50.000 zugwiesen!

Was Du meinst mit dem #1=A ist wenn Du ein Custom-Macro schreibst etwa so etwas in der Art:

G65 P8000 A1.0 Z25.0

Das Macroprogramm würde dann Z.B. so aussehen:

O8000 (BLABLABLA)

G0 X#1 Z#26

Was passiert hier? Ganz einfach, der Aufruf G65 P8000 ist nichts anderes als der Aufruf mit M98 P8000 nur das mit dem Aufruf G65 P8000 noch Werte mit übergeben werden können, in diesem Fall erhält die Variable #1 den Wert 1.000 und die Variable #26 den Wert 25.000 !!!

Ausserdem existieren 5 Variablenebenen für die Variablen #1 bis #33 oder noch etwas mehr wenn man die Option für die Erweiterten Varibalen hat.
Und da ich mich nur in der Hauptprogrammebene befinde, sprich in Ebene 0 und nicht in ein Unterprogramm springe müßte mein Beispiel funktionieren. Das einzige was nicht gehen könnte wäre das IF[BLABLA] THEN..... denn nicht alle Fanuc-Steuerungen verfügen über diese Funktion des THEN !!!!

Am besten einfach mal im Fanuc-Handbuch nachlesen da steht alles gut beschrieben drinn. Ich mach das ja nicht zum ersten mal.
TOP    
Beitrag 10.10.2004, 09:47 Uhr
Holger45
Holger45
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 25.04.2004
Beiträge: 1.105

Hallo Leute,
Fräserman hat recht.
Die Variablen von 1 bis 50 sind nur für Macro A.
D.H. Damit werden die Buchstaben für G65 belegt.
( Falls die Funktion freigeschaltet ist.)

Wenn die Optionen freigeschaltet sind ( Makro A und B ) sind die Variablen 100 bis 199 Standart und werden nach dem Ausschalten der Maschine gelöscht. Ist aber kein Problem da sie im Programm ja vorhanden sind.

Desweiteren können die Variablen 500 bis 599 benutzt werden.

Das einfachste ist nun das Du Dein Programm umschreibst.

Gruß
Holger


--------------------
Wenn du heute nur das tust - was du gestern schon getan hast - dann bleibst du auch morgen nur da - wo du heute schon bist

Woran erkennen wir etwas, das noch Technik ist?
Ein guter Fingerzeig: Wenn ein Handbuch dabei ist.


(Douglas Adams 1952-2001)
TOP    
Beitrag 10.10.2004, 10:08 Uhr
Armageddon
Armageddon
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 09.01.2004
Beiträge: 762

Also wenn ich Euch wäre würde ich das erst mal ausprobieren dann würdet ihr nämlich feststellen das ich Recht habe. Probiert es einfach mal an einer Maschine bei Euch aus. Gebt im MDI ein #1=100 und dann G0 auf X#1 und siehe da die Maschine müßte auf X100.000 fahren! Bin doch nicht bescheuert. Das Hauptprogramm gilt schon als Macroprogramm sozusagen. Und wenn Custom Macro A oder B installiert ist müßte das auch gehen.
TOP    
Beitrag 10.10.2004, 12:35 Uhr
GHM
GHM
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 21.12.2002
Beiträge: 112

hallo fräsermann


also es müsst mal richtig heissen
A=#1
B=#2
...
Z=#26

und nicht #1=A

die variablenzuweisung mit buchstaben ist nur im makroaufruf mit G65 aktiv
vorausgestzt es ist freigeschaltet

ansonsten kann ich mit den variblen machen was ich will
probiert bitte mal das beispiel von armageddon aus normal muss das gehen

wengleich ich das ein bischen übersichtlicher programmieren würde ( ist natürlich dan auch aufwendiger) aber funktionieren müsste das

übrigens im fanuc handbuch ist das mit den variabeln genau beschrieben auch die sprunganweisungen findet man da drinnen
les dir das mal durch und mach mal einige übungen dann solltest du das schon hinkriegen

schöne grüße

hermann


--------------------
TOP    
Beitrag 10.10.2004, 13:01 Uhr
Armageddon
Armageddon
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 09.01.2004
Beiträge: 762

@GHM,

klar kann man das auch etwas übersichtlicher Programmieren, was wie Du schon sagst aber etwas aufwendiger werden würde. Komfortabler wäre es sich zwei Macros zu schreiben. Eins für das Zentrieren und für das Bohren und eins für das Gewinden. Was ich der faulheit halber einfach mal so im Hauptprogramm aurufen würde und die Positionen einfach an das Macro übergebe:

(Zentrieren)
M6 T1
G0 Z5.0 S1500
G65 P8000 X10.0 Y10.0 Z-5.0 F250 (ERSTE POS)
G65 P8000 X10.0 Y50.0 Z-5.0 F250 (ZWEITE POS)
G65 P8000 X50.0 Y50.0 Z-5.0 F250 (DRITTE POS)
usw.

(BOHREN)
M6 T2
G0 Z5.0 S2500
G65 P8000 X10.0 Y10.0 Z-25.0 F500 (ERSTE POS)
G65 P8000 X10.0 Y50.0 Z-25.0 F500 (ZWEITE POS)
G65 P8000 X50.0 Y50.0 Z-25.0 F500 (DRITTE POS)
usw.

(GEWINDE)
M6 T3
G0 Z5.0
M54 S400
G65 P8001 X10.0 Y10.0 Z-20.0 R5.0 F1.5 (ERSTE POS)
G65 P8001 X10.0 Y50.0 Z-20.0 R5.0 F1.5 (ZWEITE POS)
G65 P8001 X50.0 Y50.0 Z-20.0 R5.0 F1.5 (DRITTE POS)
usw.

und die Macroprogramme dann halt so mal ganz einfach so, ob die #5003 die Z-Achse beschreibt weiß ich jetzt aber nicht aber ist ja nur ein Beispiel das müßte dann an der Maschine selbst heraus finden:

O8000 (ZENTRIEREN-BOHREN)
#1=#5003 (LETZTER ANFAHRENDPUNKT MASCHINENPOS. Z-ACHSE)
G0 X#24 Y#25
G1 Z#26 F#9
G0 Z#1
M99

O8001 (GEWINDE)
#1=#5003 (LETZTER ANFAHRENDPUNKT MASCHINENPOS. Z-ACHSE)
G0 X#24 Y#25
G84 G99 Z#26 R#18 F#9
G80
G0 Z#1
M99

Natürlich gibt es noch mehr möglichkeiten. Aber diese hier alle auszutüffteln braucht viel Zeit.
TOP    
Beitrag 10.10.2004, 17:23 Uhr
balibalu
balibalu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.08.2004
Beiträge: 9

Hallo zusammen

Danke für die Ideen zur Lösung meiner Problemstellung. wow.gif Upps, das sieht aber komplizierter aus, als ich es mir vorgestellt habe. Das sieht nach enormem Programmieraufwand aus für die Lösung einer kleinen Optimierung. Aber da habt ihr sicher recht, Uebung macht den Meister.

Ich habe den dicken gelben Schunken zur Verfügund, der mehr den Lochstreifenleser beschreibt und wenig praktische Beispiele hergibt.

Frage, gibt es Fachliteratur zur Theamatik Makroprogrammierung mit praktischen Beispielen? Das wäre eine echte Hilfe.

Gruss balibalu
TOP    
Beitrag 10.10.2004, 19:26 Uhr
conni
conni
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 30.09.2002
Beiträge: 366

Hallo Armageddon,

Was ist das für ein Befehl " M 54 " (steht bei Gewinde in der dritten Zeile), kann mir nichts darunter vorstellen. Ist dieser Befehl auch sicher für Fanuc oder kommt er von einer anderen Steuerung? Bin nur neugierig, kannst Du mich oder jemand der bescheid weiß aufklären.
Vielen Dank im Voraus.

Viele Grüsse aus Velbert

Conni

Der Beitrag wurde von conni bearbeitet: 10.10.2004, 22:25 Uhr
TOP    
Beitrag 10.10.2004, 22:59 Uhr
Armageddon
Armageddon
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 09.01.2004
Beiträge: 762

Hi Conni,

das ist ne gute Frage mit dem M54. Stand halt im Beispiel von balibalu drinn. Ich denke mal das es so ist wie auf unseren STAR-Langdrehern das Gewindebohren ohne Ausgleichsfutter. Dort ist es halt das M29.

M29 S500
G84 Z10.0 F1.0
G80

Anderst kann ich mir das grad nicht erklären. Muß uns am besten der Balibalu Auskunft drüber geben. Denke aber schon das es für eine Fanuc ist, so wie man das an den Befehlen bisserl erkennen kann. Oder balibalu?

@balibalu:

Fachliteratur, hmmmm. Auch ne gute Frage. Entweder bei Fanuc was aber wohl bisserl was kostet oder aber die paar Seiten die es im Anwenderhandbuch gibt rausscannen und Dir per email schicken.
TOP    
Beitrag 11.10.2004, 19:26 Uhr
balibalu
balibalu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.08.2004
Beiträge: 9

Hallo Conni

Ja, da hat Armageddon recht. Es ist der Cod zum Gewindeschneiden ohne Ausgleichsfutter. Funktioniert übrigens problemlos von den kleinsten bis zu grossen Gewinden.

Gruss balibalu
TOP    
Beitrag 11.10.2004, 20:18 Uhr
conni
conni
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 30.09.2002
Beiträge: 366

Hallo balibalu und Armageddon,

danke für die Aufklärung. Was ist es für eine Steuerungs-Typ ist das. Bei meiner, eine 18M ist es M29, welcher das starre Geweindeschneiden einleitet. Die Standard G-Befehle sind ja im Grunde kein Problem, nur dei meist Maschinenherstellerbedingten zusätzlichen G-Codes und M-Codes sind dann ein Problem, wenn man sich auf eine Steuerung eingearbeitet hat und dann lustig drauflos tip. Aber das ist ja das Gute an guten Steuerungen, sie geben Fehlermeldungen heraus, wenn ein unbekannter G-oder M-Code eingegeben wurde. Interessanter finde ich nachdem ich hier von Fräsermann, Holger und euch hier gelesen habe. Werde die Sache mit den Macro`s und Variablen hier weiter verfolgen. Mal sehen was da noch so kommt. Man lernt ebend immer dazu und nie aus. Das ist das Schöne am Forum, daß sich auch immer neu Denkanstöße ergeben, welche teilweise als Beispiel dann für irgendwas Ähnliches verwenden lassen. Also machts gut ihr Beiden. Natürlich GHM der hier auch schon Einiges kundgetan hat. Auch die vielen anderen, nicht genannten Mitglieder, damit keiner zu kurz kommt.

Viele Grüsse aus Velbert

Conni

Der Beitrag wurde von conni bearbeitet: 11.10.2004, 20:24 Uhr
TOP    
Beitrag 12.10.2004, 18:38 Uhr
Fräserman
Fräserman
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 06.09.2004
Beiträge: 48

@ GHM

Ja ist schon richtig, A=#1 u.s.w
ich wollte den Beitrag deshalb nicht editieren.

Mit Variablen die zum Macroaufruf gehören (1-33) spiele ich nicht rum.
Zum Verrechnen sind die 100er da und für feste Werte (Tasterversatz u.a.) die 500er Variablen da.

An balibalu's stelle würde ich das mit einem Unterprogramm machen, ist auch für Laien verständlicher.
Selbst ich mit grossem Speicher in den Maschinen mache das auf diese Weise, 50 bis 100 Koordinatenpunkte sind oft dabei.


--------------------
Gruss Fräserman
TOP    
Beitrag 16.01.2005, 19:08 Uhr
FT-Aigner
FT-Aigner
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.12.2004
Beiträge: 5

Hallo Leute ich hätte da auch mal eine Frage ?....... wie kann ich den befehl GOTO eingeben ???..... 0-MD Steuerung ich weis bei der Dialog Steuerung geht das so L1 N100 bis N200 z.B. und wie kann ich dies nun an der Fanuc 0er unsetzten

M.F.G. jürgen
TOP    



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