Professional Documents
Culture Documents
Cursus VDAB Fanuc
Cursus VDAB Fanuc
chte
opleiding
VDAB
FANUC
iz Mandeldal
L. de Raetlaan 59
B-8870 Izegem
Germond nv.
T 051 31 06 72
F 051 31 21 69
info@germond.be
www.germond.be
INHOUDSOPGAVE
1) INLEIDING............................................................................ 4
2) CNC PROGRAMMERING.........................................................5
2.1) ALGEMEEN.........................................................................5
2.2) LIJST VAN GEBRUIKTE LETTERS............................................5
2.3) G-CODE SYSTEMEN.............................................................6
2.4) M-FUNCTIES.......................................................................8
2.5) G CODE GROEPEN...............................................................9
2.5.1) Groep 0............................................................................................................. 9
2.5.2) Groep 1........................................................................................................... 11
2.5.3) Groep 2........................................................................................................... 13
2.5.4) Groep 3........................................................................................................... 13
2.5.5) Groep 5........................................................................................................... 13
2.5.6) Groep 7........................................................................................................... 14
2.5.7) Groep 8........................................................................................................... 14
2.5.8) Groep 9........................................................................................................... 15
2.5.9) Groep 10......................................................................................................... 15
2.5.10) Groep 11....................................................................................................... 15
2.5.11) Groep 14....................................................................................................... 16
2.5.12) Groep 15....................................................................................................... 16
2.5.13) Groep 22....................................................................................................... 16
3) VARIABELEN.......................................................................17
3.1) WAT ZIJN VARIABELEN.......................................................17
3.2) WAAROM MAKEN WE GEBRUIK VAN VARIABELEN.................17
3.3) VERSCHILLENDE TYPES VARIABELEN..................................17
3.3.1)
3.3.2)
3.3.3)
3.3.4)
3.3.5)
Types variabelen.............................................................................................17
Systeem variabelen........................................................................................18
stukkenteller................................................................................................... 19
nulpuntsverschuiving......................................................................................19
positie............................................................................................................. 19
Algemeen........................................................................................................ 20
Prioriteit van operaties....................................................................................21
Nesting bij gebruik van haakjes......................................................................21
onvoorwaardelijke sprong GOTO.....................................................................21
voorwaardelijke sprong IF...............................................................................21
Herhaling WHILE.............................................................................................22
Germond nv.
Germond nv.
1)
Inleiding
Het doel van deze cursus is het kunnen schrijven van een steekcyclus,
dit aan de hand van parameterprogrammatie en door gebruik te
maken van variabelen.
Meer en meer worden in klein en middelgrote bedrijven machines
aangekocht waarbij op een eenvoudige maar snelle manier een
afgewerkt werkstuk wordt bekomen. Hiervoor wordt er op de sturing
een extra software pakket geplaatst, dat in dialoog de in te vullen
parameters afvraagt en via hulpbeelden een visuele ondersteuning
biedt. Deze hulpbeelden houden de instapdrempel laag voor de
bedienaar en zo kan men met een relatief kleine opleidingstijd, toch
snel een werkstuk afwerken. Kennis van snijsnelheden en voedingen
kunnen ook worden verwerkt in de dialoogsturing, doch is enige
kennis ter zake onontbeerlijk.
Echter is het zo dat niet alles te programmeren valt via de
standaardcycli die in de software te vinden zijn. Soms kom je voor
zaken of vormen te staan, die niet met een eenvoudige
voorgeprogrammeerde cyclus, te programmeren zijn. In dit geval
biedt parameterprogrammering soms een oplossing. Wanneer ook dit
niet voldoende resultaat biedt, kan een CAM systeem de oplossing
leveren.
Het is in deze cursus niet de bedoeling een volledige en welomlijnde
uiteenzetting te geven van G-code programmering, M-codes en
parameterprogrammatie. Doch worden de meest voorkomende en
meest gebruikte zaken behandeld en besproken. Een volledige
uiteenzetting van G-code programmering, M-codes en
parameterprogrammering kan in de handboeken van de sturings- of
machineleverancier teruggevonden worden.
Germond nv.
2)
CNC programmering
2.1) Algemeen
De G-Functies worden in groepen ingedeeld. In iedere
programmaregel kan uit iedere groep maar 1 G-functie staan. De GFuncties zijn ofwel modaal of niet modaal (alleen in de regel zelf
geldig). De volledige en correcte beschrijving van de G-Functies is in
het programmeerhandboek van Fanuc terug te vinden.
MODAAL Dit wil zeggen dat een G-functie actief blijft totdat een andere Gfunctie uit dezelfde groep wordt geprogrammeerd.
NIET MODAAL Dit wil zeggen dat dit G-Functies zijn, die alleen in de regel
actief zijn waarin ze worden geprogrammeerd (gemarkeerd met #).
Germond nv.
Germond nv.
Germond nv.
2.4) M-functies
M-functies, ook wel hulpfuncties genoemd, zijn dus machinebevelen of
machinefuncties.
M-functies zijn machineafhankelijk. Dit wil zeggen dat deze door de
constructeur worden vastgelegd en geprogrammeerd in het PLC
programma van de machine. De volledige en correcte lijst van M-functies
vind je terug in de machinehandleiding van de constructeur.
Toch bestaan er onderling overeenkomsten om bepaalde M-codes overal
gelijk te nemen:
M00
M01
M02
M03
M04
M05
M06
M07
M08
M09
M19
M30
M98
M99
programmeerbare stop
optionele stop
programma eind
spindel rechts draaien
spindel links draaien
spindel stop
gereedschapswissel
koelmiddel 1 aan
koelmiddel 2 aan
koelmiddel uit
spindelorintatie
programma-einde met reset
springen naar subprogramma
terugkeren naar hoofdprogramma
Germond nv.
G04 Wachttijd #
Hierna komt een van volgende adressen:
"P" in 1/1000 sec.(bvb. P2000 = 2 sec.) of door "X" in sec (bvb. X1.5 =1.5
sec).
In een regel waarin een G04 wordt geprogrammeerd mogen
geen andere G- functies geprogrammeerd worden.
G09 Exact stop
Om de doelpositie te bereiken wordt de voedingssnelheid verminderd naar de
doelpositie.
G10 Programmeerbare data # ( optioneel bij Fanuc )
Om dergelijke optie aan te kopen, moet men kijken bij de
Datasheets van de machine of dergelijke optie weliswaar aanwezig
is.
Hoe kan men dit controleren:
NAME
Programmable data input
SPECIFICATION
A02B-0xxx-J872
Germond nv.
10
2.5.2) Groep 1
G00 Ijlgang
Germond nv.
11
Germond nv.
12
Germond nv.
13
Germond nv.
14
2.5.3) Groep 2
15
2.5.6) Groep 7
Germond nv.
16
2.5.8) Groep 9
2.5.9) Groep 10
2.5.10) Groep 11
Germond nv.
17
2.5.11) Groep 14
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
1
2
3
4
5
6
18
3)
Variabelen
Nummer
van de
variabele
#0
Type van
de
variabele
Altijd 0
#1 - #33
Lokale
Variabele
n
#100 #149
(#199)
#500 #531
(#999)
Algemen
e
variabele
n
Germond nv.
19
#1000 of
erachter
Systeem
variabele
n
Nummer van de
variabele
#1000 - # 1015
#1032
#1100 - #1115
#1132
#1133
Germond nv.
20
3.3.3) Stukkenteller
3.3.4) Nulpuntsverschuiving
3.3.5) Positie
Positie
informatie
#5001 #5008
blok einde
punt
#5021 #5028
huidige
positie
machine
#5041 #5048
#5061 #5068
#5081,
#5082
huidige
positie
positie skip
signaal
gereedscha
ps
correctie
afwijking
werkstuk
Cordinat Waarde
en
Gereedscha
systeem
ps
compensati
e
werkstuk niet
inbegrepen
Lezen
tijdens
beweging
uitgeschak
eld
inbegrepen
ingeschak
eld
uitgeschak
eld
21
#5108
Germond nv.
servopositie
22
functie
Definitie
Som
Verschil
Produkt
Deling
Sinus
Boogsinus
Cosinus
Boogcosinus
Tangens
Boogtangens
Vierkantswortel
Absolute waarde
Afronden
Afronden naar
beneden
Afronden naar
boven
Natuurlijk
logaritme
Exponentile
functie
OR
XOR
AND
formaat
#i=#j
#i=[#j+#k];
#i=[#j-#k];
#i=[#j*#k];
#i=[#j/#k];
#i=SIN[#j];
#i=ASIN[#j];
#i=COS#j];
#i=ACOS[#j];
#i=TAN[#j];
#i=ATAN[#j];
#i=SQRT[#j];
#i=ABS[#j];
#i=ROUND[#j];
#i=BIN[#j];
opmerkingen
#i=FIX[#j];
#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];
#i=#j OR #k;
#i=#j XOR #k;
#i=#j AND #k;
#i=BCD[#j];
a) functies
b) operaties zoals vermenigvuldiging en deling (*,/,AND,MOD)
c) operaties zoals optelling en verschil (+,-,OR,XOR)
vb.: #1=#2+#3*SIN[#4];
vb.: #1=SIN[[[#2+#3]*#4+#5]*#6];
Opm.:
haakjes plaatsen beperkt tot 5 niveaus
Indien 5 niveaus overschreden wordt, volgt alarm 118.
Uitleg
Gelijk aan
Niet gelijk aan
Groter dan
GE
LT
LE
Uitdrukking is vervult
END m;
:
De identificatienummers 1
tot 3 kunnen zoveel keer als
nodig worden gebruikt
De controle kan
getransfereerd worden naar
buiten de loop
1) druk offset
setting
2) druk
3) druk macro
Macrotabel
SPECIFICATION
A02B-0xxx-J872
Waar xxx staat komen nog andere cijfers, afhankelijk van het type
Fanuc sturing
4.2.1)Parameter schrijven.
Structuur
G10L50;
programmeerbare parametercorrectie
N_P_R_;
..
G11;
programmeerbare parametercorrectie
afleggen
Betekenis van de commandos
N_: parameter nummer
R_: nieuwe waarde die we toeschrijven aan de parameter
P_: as nummer 1 tot 8
Met G10L50 kunnen we in een programma de waarde van een
parameter overschrijven.
Op die manier kunnen we dus de waarde die toegekend is aan de
spindelorintatie ( M 19 ) elke keer overschrijven en zo de spindel
op een andere plaats laten stoppen.
Voorbeeld:
Parameter 4031 of 4077 worden bij Fanuc gebruikt om de M19 uit te
voeren. Wanneer we die parameter oproepen en een andere waarde
ernaar toe schrijven, dan zal de spindel op een andere plaatst
orinteren.
Op die manier kunnen we de spindel laten positioneren telkens op
een andere plaatst, zelfs op een draaibank waar we geen C-as
hebben.
G10 L50;
N4077 P1 R255;
G11;
S100M03;
G4X2;
M19;
Deze functie wordt gebruikt voor een specifieke stop positie met een
absolute positie binnen een rotatie.
De waarde die toegekend wordt aan de M functie kun je gewoon in graden
uitdrukken.
Voorbeeld: M100A20: spindel orinteren naar 20.
De spindelorintatie (functie M19) wordt gecontroleerd door gebruik te
maken van encoderpulsen. Aan de hand van het gevraagde aantal graden
past de sturing volgende formule toe.
1 =
b. Druk op de toets
Afhankelijk van welke optie vrijgegeven is op de machine,
kunnen we de spindel laten roteren. Dus ofwel doen we dit
met M19 ofwel bvb met de M100 functie van de
constructeur.
c. Geef het volgende in op het programmatiescherm. Bvb:
M100A30.;
d. Druk op de toets
e. Druk op de toets
De spindel zal nu orinteren naar een bepaalde positie. We
moeten nu kijken of de neusblokjes al dan niet ongeveer
evenwijdig staan met de X-as.
Niet
evenwijdig
Ongeveer
evenwijdi
g
Een programma bij Fanuc heeft altijd een nummer. Commentaar kan
er vrijblijvend aan toegevoegd worden.
Onderprogramma (bv.
O0002;
N10____;
N20____;
N100___;
M99; terugspringen naar
hoofdprogramma
N60____;
N70____;
M30;
Opdracht: een programma maken waar men juist een aantal parameters
moet aan toekennen zodat de machine het gevraagde aantal gleuven op
de gevraagde positie gaat gaan steken.
1. Men moet zich dus afvragen wat men allemaal moet weten om
dergelijke spiebaan te steken.
Elke factor kennen we toe aan een variabele.
Opdracht: probeer volgende tabel te vervolledigen met de factoren
die we nodig hebben om dergelijke gleuf te bekomen.
#600=?;
#601=?;
#602=?;
#603=?;
#604=?;
#605=?;
#606=?;
#607=?;
#608=?;
#609=?;
#610=?;
#611=?;
#612=?;
#613=?;
#622=?;
Programma
O5000
#600=?;
#601=?;
#602=?;
#603=?;
#604=?;
#605=?;
#606=?;
#607=?;
#608=?;
#609=?;
#610=?;
#611=?;
#612=?;
#613=?;
#622=?;
M98P9001;
Commentaar
voeding steken
center asgat in X
center asgat in Y
diepte van de gleuf
startwaarde steken in Z
diameter asgat
hoekwaarde gleuf 1
hoekstap
aantal gleuven
startwaarde gleuf t.o.v.
center asgat**
Pasdiepte
starthoek orintatie
Z waarde gleuf bovenkant
aantal keer steken
radius schacht + breedte
plakket (waarde f1 volgens
handboek)***
steekgereedschap
Aslijn is center
2. Na het toekennen van een aantal factoren kan men het programma
schrijven.
Het is zinloos om dergelijk programma in 1 keer te willen schrijven.
Dergelijk programma wordt stap per stap opgebouwd.
We beginnen met een steekcyclus te schrijven voor 1 gleuf
evenwijdig met de X-as.
Steekcyclus:
#621=0;
G0X#601Y#602;
M100A30;
G0Z [#612+2 ];
#623=[#609-#622 ];
#614= [#623+#610 ];
N10;
G0X#614;
startwaarde om te steken
diepte om te steken in
voeding
G0Z [#604+2 ];
G1G91F#60OZ [#6032 ];
G0G90X#623;
#614= [#614+#610 ];
IF [#621NE#613 ]
GOTO10;
#621=0;
terugtrekken naar
startwaarde
pasdiepte bijtellen
voorwaarde aantal steken ok
teller terug op 0
O9001
#621=0
G0X#601Y#602
M100A[[360+67.8]-#606]
G0Z[#612+2]
#623=[#609-#622 ];
#614=[COS[#606]*#623]
+#601
#615=[SIN[#606]*#623]
+#602
#620=[#623+#610]
#616=[COS[#606]*#620]
+#601
commentaar
teller aantal steken
voorpositioneren naar het center
Hoekverdraaiing uitrekenen
voorpositioneren in Z +veiligheid
hulp voor startwaarde
terugtrekwaarde in X
terugtrekwaarde in Y
pasdiepte bijtellen
startwaarde steken in Y
#617=[SIN[#606]*#620]
+#602
N10
G0X#616Y#617;
G0Z[#604+2];
G1G91G98F#600Z[#6032];
G0G90X#614Y#615;
G0Z[#604+2];
#616=[COS[#606]*#620]
+#601;
#617=[SIN[#606]*#620]
+#602;
IF[#621NE#613]GOTO10;
#621=0;
M98P9000
startwaarde steken in Y
O9000
#619=0;
#621=0;
G0X#601Y#602;
N20;
#623=[#609-#622 ];
M100A[[360+67.8]#606]
G0Z[#612+2];
#614=[COS[#606]*#623
]+#601;
#615=[SIN[#606]*#623]
+#602;
#620=[#623+#610];
#616=[COS[#606]*#620
]+#601;
#617=[SIN[#606]*#620]
+#602;
N10;
G0X#616Y#617;
G0Z[#604+2];
G1G91G98F#600Z[#603
-2];
G0G90X#614Y#615;
G0G90Z[#604+2];
#621=[#621+1];
#620=[#620+#610];
#616=[COS[#606]*#620
]+#601;
#617=[SIN[#606]*#620]
+#602;
IF[#621NE#613]GOTO10 voorwaarde aantal steken
;
#621=0;
#619=[#619+1];
G0X#601Y#602;
#606=[#606+#607];
IF[#619NE#608]GOTO20
;
G0Z100;
M99;
teller gleuven
nieuwe hoekwaarde
voorwaarde aantal gleuven
O1000
O5000
O9000
GOG40G80G90; #600=?;
#619=0;
GOG28G91Z0;
#602=?;
#621=0;
T01M06D01;
#603=?;
GOX#601Y#602;
S0M03;
#604=?;
N20
G0G43G90Z100H02; #605=?;
#623=[#609-#622];
M98P5000;
#606=?;
M100A[[360+67.8]-#606];
G0G28G91Z0;
#607=?;
G0Z[#612+2];
G0G28G91Y0;
#608=?;
#614=[COS[#606]*#609]+#601;
M30
#609=?;
#615=[SIN[#606]*#609]+#602;
#610=?;
#620=[#609+#610];
#611=?;
#616=[COS[#606]*#620]+#601;
#612=?;
#617=[SIN[#606]*#620]+#602;
#613=?;
N10
#623=?;
GOX#616Y#617;
M98P9000
G0Z[#604+2];
G1G91G98F#600Z[#603-2];
G0G90X#614Y#615;
G0G90Z[#604+2];
#621=[#621+1];
#620=[#620+#610];
#616=[COS[#606]*#620]+#601;
#617=[SIN[#606]*#620]+#602;
IF[#621NE#613]GOTO10
#621=0;
#619=[#619+1];
GOX#601Y#602;
#606=[#606+#607];
IF[#619NE#608]GOTO20;
G0Z100;
M99
a. Men moet zich dus afvragen wat men allemaal moet weten om
dergelijke spiebaan te steken.
Elke factor kennen we toe aan een variabele.
Opdracht: probeer volgende tabel te vervolledigen met de factoren
die we nodig hebben om dergelijke gleuf te bekomen.
#603=?;
#604=?;
#605=?;
#607=?;
#608=?;
#609=?;
#610=?;
#6011=?;
O0401
#603=?;
#604=?;
#605=?;
#607=?;
#608=?;
#609=?;
#610=?;
#6011=?;
M98P402;
hoekstap in graden
startwaarde Z steken
startwaarde X in diameter
pasdiepte
voeding
diepte van de gleuf
aantal steken
aantal gleuven
b. Na het toekennen van een aantal factoren kan men het programma
schrijven.
We beginnen met een steekcyclus te schrijven voor 1 gleuf.
Steekcyclus:
#601=0;
G0X0Z2;
G10L50;
N4077P1R#602;
G11;
S100M03;
G4X2;
M19;
G0Z[#604+2];
#606=#605;
N10;
#606=[#606+#607];
G0X#606;
G0W[#609-2];
G0X#605;
G0Z[#604+2];
#601=[#601+1];
IF[#601 NE
#610]GOTO10;
#601=0;
G0Z2;
G0X0;
spindel orinteren
start steken in Z
hulp om een vergelijking te
maken
pasdiepte uitrekenen
incrementeel de diepte Z
verplaatsen
terugtrekken in X
teller steken
voorwaarde om te steken
teller steken terug op 0
M99
C. Na het schrijven van de steekcyclus, breiden we het programma
uit zodoende we meerdere gleuven kunnen gaan steken.
O0402
#600=0;
#601=0
G0X0Z2 ;
#612=#603;
N20;
#602=[[4096/360]*#61
2];
#602=ROUND[#602];
G10L50;
N4077P1R#602;
G11;
S100M03;
G4X2;
M19;
G0Z[#604+2];
#606=#605;
N10
#606=[#606+#607];
G0X#606;
G0W[#609-2];
G0X#605;
G0Z[#604+2];
#601=[#601+1];
IF[#601 NE
#610]GOTO10;
#601=0;
#600=[#600+1];
G0Z2;
G0X0;
#612=[#612+#603];
IF[#600 NE
#611]GOTO20;
M99;
pasdiepte uitrekenen
hoekstap aanpassen
voorwaarde voor het aantal
gleuven
6)Spien
6.1) Algemene richtlijnen-keuze van spien
De meest gebruikte spien zijn conform DIN 6885 A. Z = twee ronde
uiteinden in materiaal K ( 60 kg ) of RVS 1.4571.
De courante toleranties zijn B = h9 en H = h11.
tolerantie.
6.3)
Toleranties naven-spien