FANUC
Ihr Spezialist für Fabrikautomation
IF, WHEN, usw. Anweisungen, Wenn X erfüllt ist dann springe zu Y



Level 2 = Community-Facharbeiter


Gruppe: Mitglied
Mitglied seit: 14.01.2007
Beiträge: 146
Mitglied seit: 14.01.2007
Beiträge: 146
Hi Fanuc'er.
Ich wollte in einem Programm mit Bohrfräsen abeiten. Um nicht immer wieder die selben Sätze schreiben zu müssen hab ich ein Unterprogramm geschrieben und es x-mal aufgerufen. Da die Maschiene nicht die neueste ist hat sie eine sehr Lange Satzverarbeitungszeit nötig um vom Hauptprogramm ins Unterprogramm und wieder zurück zu springen. Die folge ist nicht nur eine längere PRG-Laufzeit sondern auch das sich das Werkzeug an einem Punkt der Kontur länger aufhält und somit freischneidet. Die Folge ist das die Bohrung immer einen Ansatz erhält.
Jetzt hab ich mir gedacht eine Zählfunktion zu schreiben mit einer Abfrage.
z.B. Ist WERT "X" kleiner WERT "Y" dann springe zum Punkt XY
Wie ist so etwas zu realisieren? Ich bin da irgendwie noch ein wenig Planlos.
Bis denne
High Speed
Ich wollte in einem Programm mit Bohrfräsen abeiten. Um nicht immer wieder die selben Sätze schreiben zu müssen hab ich ein Unterprogramm geschrieben und es x-mal aufgerufen. Da die Maschiene nicht die neueste ist hat sie eine sehr Lange Satzverarbeitungszeit nötig um vom Hauptprogramm ins Unterprogramm und wieder zurück zu springen. Die folge ist nicht nur eine längere PRG-Laufzeit sondern auch das sich das Werkzeug an einem Punkt der Kontur länger aufhält und somit freischneidet. Die Folge ist das die Bohrung immer einen Ansatz erhält.
Jetzt hab ich mir gedacht eine Zählfunktion zu schreiben mit einer Abfrage.
z.B. Ist WERT "X" kleiner WERT "Y" dann springe zum Punkt XY
Wie ist so etwas zu realisieren? Ich bin da irgendwie noch ein wenig Planlos.

Bis denne
High Speed

ganz Einfach
Zähler:
#500=#500+1 (eins hochzählen)
Abfrage:
IF[#500 GE 20] GOTO999 (wenn Variable 500 grösser/gleich 20 springe zu Satznummer 999)
...
...
...
N999
Wichtig! am Ende den Zähler rückstellen...
#500=0
Wenns nicht hilft => weiterfragen....
Zähler:
#500=#500+1 (eins hochzählen)
Abfrage:
IF[#500 GE 20] GOTO999 (wenn Variable 500 grösser/gleich 20 springe zu Satznummer 999)
...
...
...
N999
Wichtig! am Ende den Zähler rückstellen...
#500=0
Wenns nicht hilft => weiterfragen....



Level 2 = Community-Facharbeiter


Gruppe: Mitglied
Mitglied seit: 14.01.2007
Beiträge: 146
Mitglied seit: 14.01.2007
Beiträge: 146
@sellerie
für die schnelle hilfe.
Gibt es auch noch andere Sprungmöglichkeiten?
IF[#500 GE 20] GOTO999 (wenn Variable 500 grösser/gleich 20 springe zu Satznummer 999)
IF[#500 EQ 20] GOTO999 (wenn Variable 500 gleich 20 springe zu Satznummer 999)
Diese Varianten kenne ich jetzt.
Was ist mit:
-ungleich
-kleiner ?
Bis denne
High Speed

Gibt es auch noch andere Sprungmöglichkeiten?
IF[#500 GE 20] GOTO999 (wenn Variable 500 grösser/gleich 20 springe zu Satznummer 999)
IF[#500 EQ 20] GOTO999 (wenn Variable 500 gleich 20 springe zu Satznummer 999)
Diese Varianten kenne ich jetzt.
Was ist mit:
-ungleich
-kleiner ?
Bis denne
High Speed

also
EQ gleich
NE ungleich
GT grösser als
GE grösser/gleich
LT kleiner als
LE kleiner/gleich
EQ gleich
NE ungleich
GT grösser als
GE grösser/gleich
LT kleiner als
LE kleiner/gleich



Level 2 = Community-Facharbeiter


Gruppe: Mitglied
Mitglied seit: 14.01.2007
Beiträge: 146
Mitglied seit: 14.01.2007
Beiträge: 146

Super so ne schelle Hilfe!!!!
Bis denne
High Speed

Hallo,
da das Thema nicht Sprungbefehle ist sondern die "If und When usw. Anweisungen !
Lass ich es umbennen in
"IF, WHEN, usw. Anweisungen"
"Wenn X erfüllt ist dann springe zu Y"
Gruß Boern
da das Thema nicht Sprungbefehle ist sondern die "If und When usw. Anweisungen !
Lass ich es umbennen in
"IF, WHEN, usw. Anweisungen"
"Wenn X erfüllt ist dann springe zu Y"
Gruß Boern
--------------------
Das dringendste Problem der Technologie von heute ist nicht mehr die Befriedigung von Grundbedürfnissen und uralten Wünschen der Menschen, sondern die Beseitigung von Übeln und Schäden, welche uns die Technologie von gestern hinterlassen hat.
Dennis Gabor (1900-79), ungar.-brit. Physiker, Entwickler der Holographie, 1971 Nobelpr.

hallo
in der form wie: if then else gibt es bei fanuc keine möglichkeit zu programmieren oder?
mfg
in der form wie: if then else gibt es bei fanuc keine möglichkeit zu programmieren oder?
mfg

hallo
in der form wie: if then else gibt es bei fanuc keine möglichkeit zu programmieren oder?
mfg
in der form wie: if then else gibt es bei fanuc keine möglichkeit zu programmieren oder?
mfg
Wenn du mit Makros programmierst geht das auch.
--------------------
gruß Klaus

und wie schaut das dann aus?
kann ich das alles in eine zeile schreiben?
if [#5=4] then [#6-2] else [#7+1]??
weist du auch wie inkremental eine länge angeben kann?
danke mfg
kann ich das alles in eine zeile schreiben?
if [#5=4] then [#6-2] else [#7+1]??
weist du auch wie inkremental eine länge angeben kann?
danke mfg

So sieht z.B. ein Programm zum Bohren von Lochkreise in der XZ-EBENE
Bsp.
G0 X45 Z2 (Lochkreis Position)
G283 A4. C10. H30. Z-50. K15. F120. Q1. V1.5
A=Anzahl der Bohrungen
C=Start Winkel
H=Vortschritts Winkel
Z=Bohrtiefe
K=Bohr Hub
F=Vorschub
Q=Sicherheitsabstand am Bohrungsgrund
V=Verweilzeit am Entleerungspunkt
Z,F sind SOLL Eingaben bei nicht eingabe erscheint eine Fehlermeldung !
A,C,H,K sind Optional
wird A nicht angegeben wird 1 Bohrung angenommen
wird C nicht angegeben wird bei 0 Grad begonnen !
wird H nicht angegeben wird der Vollkreis durch die Anzahl Bohrungen dividiert
wird K nicht angegeben wird die Bohrtiefe in einem Schitt hergestellt
wird Q nicht angegeben wird der Sicherheitsabstand am Bohrungsgrund von =0.5mm angenommen
wird V nicht angegeben wird die Verweilzeit am Entleerungspunkt mit 0.5 sec angenommen
%
O9017(G283.BOHR.ZYKLUS.STIRNFAECHE)
IF[#26 EQ #0]GOTO10
IF[#1 EQ #0]THEN#1=1
IF[#3 EQ #0]THEN#3=[360/#1]
IF[#9 EQ #0]GOTO10
IF[#11 EQ #0]THEN#11=0
IF[#17 EQ #0]THEN#17=1
IF[#6 EQ #0]THEN#6=#26-#17
IF[#26 EQ #0]GOTO10
IF[[[#1*#3]-#11] GT 360]GOTO10
#1=ABS[#1]
#605=#6
#600=0
G0H#11
G4X.5
G98
N1
#601=0
#602=0
#604=#5002
#600=[#600+1]
#601=#26
GOTO3
N2
G0Z[#602+#17]
N3
G1W-[#6+#17]F#9
#602=#5002
.
.
.
.
.
.
.
.
.
.
M99
%
Bsp.
G0 X45 Z2 (Lochkreis Position)
G283 A4. C10. H30. Z-50. K15. F120. Q1. V1.5
A=Anzahl der Bohrungen
C=Start Winkel
H=Vortschritts Winkel
Z=Bohrtiefe
K=Bohr Hub
F=Vorschub
Q=Sicherheitsabstand am Bohrungsgrund
V=Verweilzeit am Entleerungspunkt
Z,F sind SOLL Eingaben bei nicht eingabe erscheint eine Fehlermeldung !
A,C,H,K sind Optional
wird A nicht angegeben wird 1 Bohrung angenommen
wird C nicht angegeben wird bei 0 Grad begonnen !
wird H nicht angegeben wird der Vollkreis durch die Anzahl Bohrungen dividiert
wird K nicht angegeben wird die Bohrtiefe in einem Schitt hergestellt
wird Q nicht angegeben wird der Sicherheitsabstand am Bohrungsgrund von =0.5mm angenommen
wird V nicht angegeben wird die Verweilzeit am Entleerungspunkt mit 0.5 sec angenommen
%
O9017(G283.BOHR.ZYKLUS.STIRNFAECHE)
IF[#26 EQ #0]GOTO10
IF[#1 EQ #0]THEN#1=1
IF[#3 EQ #0]THEN#3=[360/#1]
IF[#9 EQ #0]GOTO10
IF[#11 EQ #0]THEN#11=0
IF[#17 EQ #0]THEN#17=1
IF[#6 EQ #0]THEN#6=#26-#17
IF[#26 EQ #0]GOTO10
IF[[[#1*#3]-#11] GT 360]GOTO10
#1=ABS[#1]
#605=#6
#600=0
G0H#11
G4X.5
G98
N1
#601=0
#602=0
#604=#5002
#600=[#600+1]
#601=#26
GOTO3
N2
G0Z[#602+#17]
N3
G1W-[#6+#17]F#9
#602=#5002
.
.
.
.
.
.
.
.
.
.
M99
%
--------------------
gruß Klaus

cool danke....
folgendes nproblem hab ich immer noch. wie kann ich ein 6 eck fräsen auf der stirnfläche aber nur mit der angabe A60° und dann inkremental die schenkellänge.
ohne X und C(Y)anzugeben...
mfg
folgendes nproblem hab ich immer noch. wie kann ich ein 6 eck fräsen auf der stirnfläche aber nur mit der angabe A60° und dann inkremental die schenkellänge.
ohne X und C(Y)anzugeben...
mfg
2 Besucher lesen dieses Thema (Gäste: 2)
0 Mitglieder: