Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 56

Praktijkgeri

chte
opleiding
VDAB

FANUC

28-29 oktober 2010

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

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

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

3.4) LOGISCHE EN BEREKENFUNCTIES MET VARIABELEN.............20


3.4.1)
3.4.2)
3.4.3)
3.4.4)
3.4.5)
3.4.6)

Algemeen........................................................................................................ 20
Prioriteit van operaties....................................................................................21
Nesting bij gebruik van haakjes......................................................................21
onvoorwaardelijke sprong GOTO.....................................................................21
voorwaardelijke sprong IF...............................................................................21
Herhaling WHILE.............................................................................................22

4) PRAKTISCH GEDEELTE FANUC SLEUFSTEKEN.........................24


4.1) VARIABELEN.....................................................................24
4.1.1) Waar vinden we die variabelen terug?............................................................24

4.2) INSTRUCTIES BIJ FANUC OPTIONEEL...................................25


4.2.1) Parameter schrijven........................................................................................26
4.2.2) M-functie......................................................................................................... 28

4.3) STEKEN MET HORN GEREEDSCHAP......................................29

4.3.1) Hoe gaat men te werk?...................................................................................29

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

4.3.2) Hoe roept men een subprogramma op bij Fanuc?...........................................33


4.3.3) Programmatie met variabelen.........................................................................34

5) FANUC DRAAIEN (STEKEN MET HORN GEREEDSCHAP)............42


5.1) STEKEN MET HORN GEREEDSCHAP.....................................42
5.1.1) Programmatie met variabelen.........................................................................42

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

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.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

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 #).

2.2) Lijst van gebruikte letters


Een programma voor een CNC machine bestaat uit een
opeenvolging van instructies. De machinebewegingen worden aan
de hand van instructies uitgevoerd in een bepaalde volgorde.
Daartoe dienen volgende letters als programmeeradressen:

A = 4de NC As (draait rond X-as)


B = 5de NC As (draait rond Y-as)
C = 6de NC As (draait rond Z-as)
D = Radiuscorrectienummer
F = voeding
G = voorbereidende Gfunctie
H = correctienummer voor gereedschapslengte
I = hulpparameter voor cirkelinterpolatie ( X-as )
J = hulpparameter voor cirkelinterpolatie ( Y-as )
K = hulpparameter voor cirkelinterpolatie ( Z-as )
M = machinebevelen, hulpfuncties
N = regelnummer
S = hoofdspindeltoerental
T = gereedschapsnummer
X = eerste hoofdas
Y = tweede hoofdas
Z = derde hoofdas
U = incrementele Programmatie volgens X-as
V = incrementele Programmatie volgens Y-as
W = incrementele Programmatie volgens Z-as
# = Teken gebruikt voor het programmeren van variabelen

Niet alle bovenvermelde letters worden in ieder G-code systeem van


Fanuc gebruikt. Voor een volledige lijst van wat in welk G-code
Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

systeem wordt gebruikt, verwijzen we naar de handleiding van Fanuc


zelf.

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

2.3) G-code systemen

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

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.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

2.5) G code groepen


2.5.1) Groep 0

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

Met G10 kunnen in een programma de gereedschapscorrecties veranderd


worden of de werkstuknulpunten verschoven. Het onderscheid en de keuze
tussen de gereedschapscorrecties en werkstuknulpunten wordt gemaakt door
het adres L te programmeren.
L2 = Nulpuntverschuiving
Voorbeeld: N 50 G10 G90 L2 P3 X-301. Y-250. Z-451.
N50= Regelnummer
G10= Programmeerbare data
G90= Absolute maatgeving
L2= Nulpuntverschuiving
P= Adres ( P1=G54/P2=G55/P3=G56/P4=G57/P5 =G58/P6=G59 )
XYZ= Waarde die in de NPV (hier G56) geschreven wordt

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

10

L10 = Gereedschapscorrectie lengte


Voorbeeld: N10 G10 G90 L10 P2 R122.12
N10= Regelnummer
G10= Programmeerbare data
G90= Absolute maatgeving
L10= Gereedschapscorrectie
P= Nummer van de gereedschapscorrectie
R= Waarde van de correctie
L11 = Gereedschapscorrectie slijtage op lengte.
Voorbeeld:N10 G10 G90 L11 P2 R-0.15
N10= Regelnummer
G10= Programmeerbare data
G90= Absolute maatgeving
L11= Gereedschapscorrectie
P= Nummer van de gereedschapscorrectie
R= Waarde van de gereedschapscorrectie
L12 = Gereedschapscorrectie radius
Voorbeeld: N10 G10 G90 L12 P2 R10.
N10= Regelnummer
G10= Programmeerbare data
G90= Absolute maatgeving
L12= Gereedschapscorrectie
P= Nummer van de gereedschapscorrectie
R= Waarde van de gereedschapscorrectie
L13 = Gereedschapscorrectie slijtage op radius
Voorbeeld: N10 G10 G90 L13 P2 R-0.12
N10= Regelnummer
G10= Programmeerbare data
G90= Absolute maatgeving
L13= Gereedschapscorrectie
P= Nummer van de gereedschapscorrectie
R= Waarde van de gereedschapscorrectie

2.5.2) Groep 1

G00 Ijlgang

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

11

Ijlgangbewegingen (snel) worden met behulp van G00 en hun


doelpositie in n of meerdere assen geprogrammeerd. (Het eindpunt
kan zowel in absolute of incrementele maatgeving worden
geprogrammeerd)
G01 Rechtlijnige interpolatie * (* = Inschakeltoestand)
De rechtlijnige interpolatie of beweging gebeurt vanaf het startpunt
tot het in de lijn geprogrammeerde punt met een bepaalde voeding in
mm/min. (Het eindpunt kan zowel in absolute of incrementele
maatgeving worden geprogrammeerd)
G02 Cirkelinterpolatie in uurwijzerzin
De cirkelbeweging wordt vanaf het startpunt tot het
geprogrammeerde eindpunt uitgevoerd in uurwijzerzin met een
bepaalde voeding in mm/min. Het cirkelmiddelpunt kan met "l", "J" of
"K" ingegeven worden. l en J kan echter ook vervangen worden door R.
R = Wordt positief ingegeven als de cirkelhoek kleiner is dan 180.
R- = Wordt negatief ingegeven als de cirkelhoek tussen de 180 en
360 ligt.
(Cirkelinterpolatie met R is optie)
G03 Cirkelinterpolatie in tegenuurwijzerzin
De cirkelbeweging wordt vanaf het startpunt tot het
geprogrammeerde eindpunt uitgevoerd in tegenuurwijzerzin met een
bepaalde voeding in mm/min. Het cirkelmiddelpunt kan met "l", "J" of
"K" ingegeven worden. l en J kan echter ook vervangen worden door R.
R = Wordt positief ingegeven als de cirkelhoek kleiner is dan 180.
R- = Wordt negatief ingegeven als de cirkelhoek tussen de 180 en
360 ligt.
(Cirkelinterpolatie met R is optie)

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

12

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

13

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

14

2.5.3) Groep 2

G17 Vlakselectie X-Y * (*=Inschakeltoestand)


Er zijn cirkelinterpolaties mogelijk met de X- en Y-as.
G18 Vlakselectie Z-X
Er zijn cirkelinterpolaties mogelijk met de Z- en X-as.
G19 Vlakselectie Z-Y
Er zijn cirkelinterpolaties mogelijk met de Z- en Y-as.
2.5.4) Groep 3

G90 Absolute maatgeving * (*=Inschakeltoestand)


Bij de absolute maatgeving worden alle punten of cordinaten
ingegeven vanaf een vaststaand nulpunt, dat meestal het
werkstuknulpunt is.
G91 Incrementele maatgeving
Bij de incrementele maatgeving wordt de geprogrammeerde waarde
gezien als een af te leggen weg vanaf de plaats waar het gereedschap
zich bevindt. Met behulp van het voorteken (+ of -) wordt de richting
gekozen voor de af te leggen weg.
2.5.5) Groep 5

G94 Voeding, geprogrammeerd met F in mm/min of inch/min *


Bvb. N10 G1 G94 X100 F100
De voeding bedraagt hier 100 mm/min en is onafhankelijk van het
toerental.
G95 Voeding, geprogrammeerd met F in mm/omw of inch/omw
Bvb. N10 G1 G95 X100 F0.1
De voeding is hier afhankelijk van het toerental. (F0.1 wil zeggen een voeding
van 0.1 mm per omwenteling van de spindel)
Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

15

2.5.6) Groep 7

G40 Geen radiuscompensatie* (*=Inschakeltoestand)


Het afleggen van de radiuscompensatie kan alleen gebeuren in een
programmaregel waarin een beweging met G00 of G01
geprogrammeerd wordt.
G41 Linkse radiuscompensatie
Het aanleggen van deze linkse radiuscompensatie gebeurt met G41
en een gereedschapscorrectienummer "D". Het aanleggen ervan kan
enkel in een programmaregel waarin een beweging met G00 of G01
geprogrammeerd wordt. In het gereedschapscorrectienummer D
bevindt zich het bedrag dat moet gecorrigeerd worden (radius van het
gereedschap).
Bvb.
G1 G41 X20 D31
De inhoud van gereedschapscorrectienummer 31 wordt verrekend.
G42 Rechtse radiuscompensatie
Het aanleggen van deze rechtse radiuscompensatie gebeurt met G42
en een gereedschapscorrectienummer "D". Het aanleggen ervan kan
enkel in een programmaregel waarin een beweging met G00 of G01
geprogrammeerd wordt. In het gereedschapscorrectienummer D
bevindt zich het bedrag dat moet gecorrigeerd worden (radius van het
gereedschap).
Bvb.
G1 G42 X20 D31
De inhoud van gereedschapscorrectienummer 31 wordt verrekend.
2.5.7) Groep 8

De gereedschapslengtecorrectie kan op de sturing op verschillende


manieren verrekend en geprogrammeerd worden. Daartoe wordt de
effectieve of absolute lengte van het gereedschap in de
gereedschapslengtecorrectie van de machine ingegeven.
G43 Gereedschapslengtecorrectie in Z positief verrekenen
G44 Gereedschapslengtecorrectie in Z negatief verrekenen
G49 Gereedschapslengtecorrectie in Z annuleren *
(*=Inschakelstoestand)

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

16

2.5.8) Groep 9

G73 Diepgatboren met spaanbreken


G74 Draadsnijcyclus-linkse draad
G76 Kottercyclus-finiseren
G80 Boorcyclus annuleren
G81 Boorcyclus
G82 Boorcyclus met wachttijd op diepte
G83 Diepgatboren met ontspanen
G84 Draadsnijcyclus-rechtse draad
G85 Ruimcyclus (in voeding terug)
G86 Boorcyclus met terugtrekking in ijlgang en
stilstaande spindel
G87 Achterwaarts kotteren
G88 Boren met manuele terugtrekking
G89 Boorcyclus met wachttijd op diepte (in voeding
terug)

2.5.9) Groep 10

G98 Terugtrekken na de boorcyclus naar het initile


niveau
G99 Terugtrekken na de boorcyclus naar de
terugtrekafstand R

2.5.10) Groep 11

G50 Schaalfactor uitschakelen


G51 Schaalfactor inschakelen

Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

17

2.5.11) Groep 14

G53 Onderdrukken van de nulpuntverschuiving #


Alle geprogrammeerde posities worden dan berekend vanaf het
machinenulpunt.
(#=G53 enkel in de regel actief waar hij staat geprogrammeerd )
Bvb. N10 G53 G0 Z0 G49
G54
G55
G56
G57
G58
G59

Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving
Nulpuntverschuiving

1
2
3
4
5
6

Een nulpuntverschuiving is de afstand van het werkstuknulpunt naar


het machinenulpunt.
2.5.12) Groep 15

G61 exacte stop mode * ( *= Inschakeltoestand)


Om de doelpositie te bereiken, wordt naar de doelpositie toe de
voeding gereduceerd zodat de doelpositie exact bereikt wordt.
G62 baansturingsmode, regelovergang met voedingsreductie
Met G62 wordt de voeding op het einde van de interpolatie
gereduceerd tot een bepaalde waarde. Deze waarde wordt in een
machineparameter ingegeven.
G64 baansturingsmode, regelovergang zonder
voedingsreductie
G64 wordt geprogrammeerd, wanneer er bij de overgang van n
beweging naar de andere geen voedingsreductie mag optreden.
2.5.13) Groep 22

G50.1 Programmeerbare asspiegeling uitschakelen


G51.1 Programmeerbare asspiegeling inschakelen
Germond nv.

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

18

3)

Variabelen

3.1) Wat zijn variabelen


Een variabele is een opslagruimte die een waarde kan bevatten. Je
kan een variabele zien als een plaats in het geheugen die je een
naam hebt gegeven. Deze geheugenplaats bevat informatie die
gewijzigd kan worden in de loop van het programma. In Fanuc is het
zo dat er verschillende bereiken zijn waarbinnen je variabelen kan
programmeren.

3.2) Waarom maken we gebruik van variabelen


Variabelen houden waarden vast. Een variabele heeft vele
verschillende types van waarden die het kan opslaan en verwerken:
gehele getallen (integers), kommagetallen (floating-point numbers),
tekst (strings), tekens (character), ...

3.3) Verschillende types variabelen


Verschillende types van variabelen kunnen gebruikt worden voor
verschillende toepassingen. Hieronder een overzicht van alle
mogelijkheden.
3.3.1) Types 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.

Functie van de variabele


Deze variabele is altijd 0. Er kan aan deze variabele geen
waarde toegeschreven worden
Lokale variabelen kunnen alleen in een macro gebruikt
worden om resultaten van berekeningen bij te houden.
Wanneer de machine uitgeschakeld wordt, worden deze
lokale variabelen terug op 0 gezet. Wanneer een macro
opgeroepen wordt, worden de waarden aan deze lokale
variabelen toegekend
Algemene variabelen kunnen tussen verschillende macro
programmas uitgewisseld worden. Als de machine wordt
uitgeschakeld, worden de variabelen #100 tot #149 terug
op 0 gezet. De variabelen #500 tot #531 behouden hun
data, zelfs als de machine wordt uitgeschakeld. Optioneel
zijn de algemene variabelen #150 tot #199 en #532 tot
#999 ook beschikbaar. Hoe er echter rekening mee dat
wanneer deze variabelen worden vrijgegeven, dat dan de

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

19

lengte voor het opslaan van programmas vermindert met


8.5 m

#1000 of
erachter

Systeem
variabele
n

Systeem variabelen worden gebruikt om een variteit aan


NC data te lezen en te schrijven. NC data zijn bijvoorbeeld:
huidige machinepositie, gereedschapscorrecties,

3.3.2) Systeem variabelen

Nummer van de
variabele
#1000 - # 1015
#1032

#1100 - #1115
#1132

#1133

Germond nv.

Functie van de variabele


Een 16-bit signaal kan vanuit de PLC naar een macro
programma gestuurd worden. Variabelen #1000 tot #1015
worden gebruikt om een signaal te lezen bit per bit. Variabele
#1032 wordt gebruikt om de 16-bits in n keer te lezen. Dit
zijn signalen van de PLC naar het macroprogramma om een
bepaalde toestand van de machine af te vragen binnen een
macro programma.
Een 16-bit signaal kan vanuit het macro programma naar de
PLC gestuurd worden. Variabelen #1100 tot #1115 worden
gebruikt om een signaal te schrijven bit per bit. Variabele
#1132 wordt gebruikt om de 16-bits in n keer te schrijven.
Dit zijn signalen van het macro programma naar de PLC. Dit zijn
signalen die je vanuit een macro programma naar PLC kan
sturen om iets door de PLC te laten uitvoeren.
Variabele #1133 wordt gebruikt om alle 32 bits van een
signaal in n keer te schrijven van een macro programma naar
de PLC. Merk het volgende op: waarden van -99999999 tot
+99999999 kunnen gebruikt worden voor #1133

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

20

3.3.3) Stukkenteller

Het aantal benodigde stukken en het actuele aantal bewerkte


stukken kan via een variabele worden gelezen of geschreven met de
hieronder vermelde parameters
Nummer van de
variabele
#3901
#3902

Functie van de variabele


actuele aantal bewerkte stukken
aantal benodigde stukken

3.3.4) Nulpuntsverschuiving

De waarde van een nulpuntverschuiving kan worden gelezen en


geschreven via de variabelen die hieronder vermeld staan
Nummer van de
variabele
#2501
#2601

Functie van de variabele


X-as
Z-as

3.3.5) Positie

Positie informatie kan niet worden geschreven maar wel worden


gelezen.
Nummer
van de
variabele

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

#5101 Germond nv.

Cordinat Waarde
en
Gereedscha
systeem
ps
compensati
e
werkstuk niet
inbegrepen

Lezen
tijdens
beweging
uitgeschak
eld

inbegrepen

ingeschak
eld
uitgeschak
eld

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

21

#5108

Germond nv.

servopositie

| VDAB Praktijkgerichte opleiding 28-29 oktober 2010

22

3.4) Logische en berekenfuncties met


variabelen
3.4.1) Algemeen

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];

BCD naar BIN


conversie
BIN naar BCD
conversie

#i=BIN[#j];

opmerkingen

Hier wordt een hoek


gedefinieerd in graden.
90 graden en 30
minuten wordt
weergegeven als 90.5
graden

#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];

Een logische operatie


die uitgevoerd wordt op
binaire getallen bit per
bit
Wordt gebruikt voor
uitwisselen van
signalen van en naar
PLC

3.4.2) Prioriteit van operaties

a) functies
b) operaties zoals vermenigvuldiging en deling (*,/,AND,MOD)
c) operaties zoals optelling en verschil (+,-,OR,XOR)
vb.: #1=#2+#3*SIN[#4];

3.4.3) Nesting bij gebruik van haakjes

vb.: #1=SIN[[[#2+#3]*#4+#5]*#6];

Opm.:
haakjes plaatsen beperkt tot 5 niveaus
Indien 5 niveaus overschreden wordt, volgt alarm 118.

3.4.4) onvoorwaardelijke sprong GOTO

Hiermee gebeurt een sprong naar regelnummer N. Wanneer een


regelnummer
buiten het bereik van 1 tot 99999 wordt gebruikt, komt het alarm
P/S128.
Vb: GOTO N;
N is hierbij het regelnummer naar waar gesprongen
wordt.

3.4.5) voorwaardelijke sprong IF

Bij een voorwaardelijke sprong wordt een voorwaarde afgewogen


tussen 1 of 2
variabelen. Hierna volgt een lijst met de mogelijk bruikbare
operatoren.
Operat
or
EQ
NE
GT

Uitleg
Gelijk aan
Niet gelijk aan
Groter dan

GE
LT
LE

Groter dan of gelijk


aan
Kleiner dan
Kleiner dan of gelijk
aan

3.4.6) Herhaling WHILE

WHILE [voorwaardelijke uitdrukking] DO m; (m=1,2 of 3)


Uitdrukking niet vervult

Uitdrukking is vervult

END m;
:

Terwijl de voorwaardelijke uitdrukking is vervuld, wordt het


programma van DO tot END na de WHILE uitgevoerd. Als aan de
voorwaardelijke uitdrukking niet meer voldaan wordt, dan loopt het
programma verder op de lijn naar waar de END staat. M kan nummer
1, 2 of 3 hebben. Dit wil zeggen dat je een nesting kan hebben tot
niveau drie. Als voor m een nummer geprogrammeerd wordt buiten
1, 2 of 3, dan komt alarm P/S126.

De identificatienummers 1
tot 3 kunnen zoveel keer als
nodig worden gebruikt

DO bereiken kunnen niet


overlappen

DO loops kunnen tot 3


niveaus diep genest worden

De controle kan
getransfereerd worden naar
buiten de loop

Er kan geen sprong gemaakt


worden naar binnenin een
loop

4) Praktisch gedeelte Fanuc


sleufsteken
4.1) Variabelen
Wanneer een NC-programma niet voor een eenmalig vastgelegde
waarde geldt, of er moeten waarden berekend worden, dan kunnen
ze met variabelen gezet worden.
4.1.1) Waar vinden we die variabelen terug?

Vooraleer er gewerkt kan worden met die variabelen, of vooraleer we


waarden gaan wegschrijven ernaar, moeten we er ons goed bewust
van zijn dat de machineconstructeur er geen gebruikt.
Anders bestaat het gevaar dat we die waarden overschrijven, wat
kan resulteren in grote problemen.

1) druk offset
setting

2) druk
3) druk macro

Macrotabel

4.2)Instructies bij Fanuc optioneel.


Om dergelijke optie aan te kopen, moet men kijken bij de
Datasheets van de machine of dergelijke optie weliswaar aanwezig
is.
Men moet controleren of volgende specificatie aanwezig is.
NAME
Programmable data input

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;

Programmeerbare parameter ingave


wordt aangelegd
De waarde 255 wordt
weggeschreven in parameter 4077
Programmeerbare parameter ingave
wordt afgelegd
We laten de spindel draaien
Een wachttijd zodoende de spindel
tijd krijgt om de nieuwe
encoderwaarde over te nemen
De spindel orinteert zich op een
andere plaats

Opmerking: Bij het gebruik van deze functie moet je ervoor


zorgen dat bij het onderprogramma voor de M06 de juiste
waarde naar de parameter teruggeschreven wordt!

Bij een gereedschapswissel


dienen de neusblokjes mooi
in lijn te staan met de lippen
van de
gereedschapswisselaar

4.2.2) M-functie (constructeurafhankelijk)

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 =

4096(encoderpulsen voor 1omwenteling)


360 (aantal graden voor 1 omwenteling)

Voorbeeld: bij A20 orinteert de spindel naar:


4096( encoderpulsen voor 1omwenteling)
20 =227.55 encoderpulsen
360 ( aantal graden voor 1 omwenteling )
Opmerking: het is mogelijk met dergelijke functie de spindel te laten
roteren 2 cijfers na de komma.

4.3) Steken met Horn gereedschap.


Steken met Horn gereedschap wil zeggen dat we gaan werken met een
niet roterende spindel.
Telkens men in een stuk een gleuf wil steken, al dan niet op een
andere positie, moet men de spindel laten orinteren naar een andere
positie.
Allereerst moet men weten wat de waarde van de spindelorintatie is
wanneer de neusblokjes evenwijdig staan met de X-as. Die waarde zal
gelijkgesteld worden aan 0.
Dit omdat we altijd hoeken berekenen t.o.v. de X-as centerlijn.

4.3.1) Hoe gaat men te werk?

a. Draai de knop mode select naar MDI

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

f. Indien de neusblokjes van de spindel niet evenwijdig staan,


dan moeten we stap a tot e herhalen tot dit wel het geval
is. Tel een zeker aantal graden bij de 1e keer.

Ongeveer
evenwijdi
g

g. Beweeg nu de X-as en controleer met een meetklok of de


neusblokjes perfect evenwijdig staan met de X-as.

h. indien dit niet het geval is, herhaal stap a tot g


i. Wanneer de neusblokjes perfect evenwijdig staan met de Xas, dan onthouden we die waarde. Die zullen we straks
nodig hebben in het programma.

4.3.2)Hoe roept men een subprogramma op bij Fanuc?

Een programma bij Fanuc heeft altijd een nummer. Commentaar kan
er vrijblijvend aan toegevoegd worden.

Hoofdprogramma (bv. O0001)


O0001;
N10____;
N20____;
N30____;
N40____;
N50 M98 P0002;
O0002)

Onderprogramma (bv.
O0002;
N10____;
N20____;

N100___;
M99; terugspringen naar

hoofdprogramma

N60____;
N70____;
M30;

4.3.3) Programmatie met variabelen.

De programmatie wordt uitgelegd aan de hand van een voorbeeld:

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=?;

Het programma wordt dus:

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)***

**startwaarde bepalen in X-richting: hoe bepaal ik de startwaarde?


Hoe we de startwaarde bepalen wordt uitgelegd aan de hand van
een voorbeeld.

steekgereedschap

Wanneer men zou beginnen steken onmiddellijk op de volledige


diameter, namelijk X15, dan zou de steekplakket onverbiddelijk
breken. De hoekjes zouden veel te veel belast worden.
Dit kan je duidelijk zien op de figuur. We kunnen dus die startwaarde
berekenen met de welgekende Stelling van Pythagoras.

Stelling van Pythagoras:

In een rechthoekige driehoek noemen we de rechthoekszijden (de


zijden die aan de hoek van 90 liggen) a en b. De schuine zijde, de
zijde die niet aan de rechte hoek grenst, noemen we c. De stelling
van Pythagoras geeft nu een verband tussen de lengtes van de
rechthoekszijden (a en b) enerzijds en de lengte van de schuine zijde
( c ) anderzijds:

"In een rechthoekige driehoek is het

kwadraat van de lengte van de


hypotenusa gelijk aan de som van
de kwadraten van de lengtes van de
rechthoekszijden".
In de bekende wiskundige vorm:

***Radius schacht + breedte plakket


Wanneer we positioneren naar het center van de cirkel, dan staan we met
het center van de spindel in het center van de cirkel.

Wanneer we geen rekening zouden houden met


de waarde f1, dan zou dit resulteren in een
botsing.
Het center van de spindel zou namelijk de
gevraagde waarde opschuiven (startwaarde
t.o.v. het center).
Om dit te vermijden moeten we die startwaarde
in het programma herrekenen en de waard f1
vermideren.

Parameter f1 volgens tabel handboek.

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;

teller aantal steken


voorpositioneren naar het
center
spindel laten orinteren
voorpositioneren in Z +
veiligheid
hulp voor startwaarde
startwaarde uitrekenen

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

Na het schrijven van de steekcyclus, breiden we het programma uit


zodoende dat we ook kunnen gaan steken op andere posities dan
enkel evenwijdig met de X-as. We moeten gebruik maken van de SIN
en COS regels.

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

startwaarde wordt opnieuw


uitgerekend
startwaarde wordt opnieuw
uitgerekend
voorwaarde aantal steken
teller aantal steken terug op 0

3. Het programma moet nu nog verder uitgebreid worden zodoende we


meerdere gleuven kunnen steken.

O9000
#619=0;
#621=0;
G0X#601Y#602;
N20;
#623=[#609-#622 ];
M100A[[360+67.8]#606]
G0Z[#612+2];

Teller aantal gleuven


Teller aantal steken
voorpositioneren naar het
center
hulp voor startwaarde
hoekverdraaiing uitrekenen
voorpositioneren in Z
+veiligheid

#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

4. Het definitief programma zal er dus al volgt uitzien:

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

5) Fanuc draaien (steken met


Horngereedschap)
Het grote verschil bij het steken met Horngereedschap tussen een
draaibank en een freesmachine is dat er totaal geen rekening moet
gehouden worden met de waarde voor de spindelorintatie ( M19).
Voor het overige is dit volledig gelijklopend met een freesmachine.
Afhankelijk van welk optie vrijgegeven is, kunnen we een macroprogramma schrijven om te steken.

5.1) Steken met Horn gereedschap


5.1.1) Programmatie met variabelen.

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 steken.

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=?;

Het programma wordt dus:

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;

teller om steken te tellen


voorpositioneren
programmable data input AAN
hoekwaarde wegschrijven
programmable data input UIT

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;

teller om gleuven te tellen


teller om steken te tellen
hulp om orintatie uit te
rekenen
orintatie uitrekenen
waarde orintatie afronden
programmable data input AAN
hoekwaarde wegschrijven
programmable data input UIT

pasdiepte uitrekenen

voorwaarde voor het aantal


steken
teller aantal gleuven

hoekstap aanpassen
voorwaarde voor het aantal
gleuven

d)Het definitief programma zal er dus al volgt uitzien:


O0400
O5000
O0402
G56;
#603=?(HOEKSTAP GRADEN);
#600=0(TELLER
GLEUVEN);
G0G40G80;
#604=?(START Z STEKEN) ;
#601=0(TELLER STEKEN);
M46;
#605=?(START X IN DIA);
G0X0Z2 ;
M48;
#607=?(PASDIEPTE) ;
#612=#603;
G0G28U0; #608=?(VOEDING) ;
N20;
G0G53Z-250;
#610=?(AANTAL STEKEN);
#602=[[4096/360]*#612];
T0404;
#611=?(AANTAL GLEUVEN);
#602=ROUND[#602];
M98P401; M98P402;
G10L50;
G0G28U0;
N4077P1R#602;
G0G28W0;
G11;
M30
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

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.

6.2) Algemene richtlijnen-keuze van spien

tolerantie.

6.3)

Toleranties naven-spien

You might also like