584.879 aktive Mitglieder*
5.311 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
FANUC Forum

IF, WHEN, usw. Anweisungen, Wenn X erfüllt ist dann springe zu Y

Beitrag 23.04.2009, 18:58 Uhr
High Speed
High Speed
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
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. wacko.gif


Bis denne
High Speed
TOP    
Beitrag 23.04.2009, 19:14 Uhr
sellerie
sellerie
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 26.09.2006
Beiträge: 34

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....
TOP    
Beitrag 23.04.2009, 19:20 Uhr
High Speed
High Speed
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.01.2007
Beiträge: 146

@sellerie danke.gif 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
TOP    
Beitrag 23.04.2009, 19:41 Uhr
sellerie
sellerie
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 26.09.2006
Beiträge: 34

also

EQ gleich
NE ungleich
GT grösser als
GE grösser/gleich
LT kleiner als
LE kleiner/gleich
TOP    
Beitrag 23.04.2009, 20:24 Uhr
High Speed
High Speed
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.01.2007
Beiträge: 146

danke.gif sellerie


Super so ne schelle Hilfe!!!!

Bis denne
High Speed
TOP    
Beitrag 24.04.2009, 08:34 Uhr
Boern
Boern
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 27.11.2004
Beiträge: 2.484

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


--------------------

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.
TOP    
Beitrag 04.11.2009, 15:51 Uhr
Rucksack81
Rucksack81
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.03.2004
Beiträge: 32

hallo

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

mfg
TOP    
Beitrag 04.11.2009, 16:31 Uhr
bullet01
bullet01
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 04.05.2009
Beiträge: 1.390

QUOTE (Rucksack81 @ 04.11.2009, 16:51) *
hallo

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
TOP    
Beitrag 04.11.2009, 16:38 Uhr
Rucksack81
Rucksack81
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.03.2004
Beiträge: 32

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
TOP    
Beitrag 04.11.2009, 16:43 Uhr
bullet01
bullet01
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 04.05.2009
Beiträge: 1.390

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
%


--------------------
gruß Klaus
TOP    
Beitrag 04.11.2009, 18:32 Uhr
Rucksack81
Rucksack81
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.03.2004
Beiträge: 32

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
TOP    



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