Documente Academic
Documente Profesional
Documente Cultură
Manual Programare PDF
Manual Programare PDF
NCT 2000M
Comenzi numerice pentru maini de frezat
i centre de prelucrare
Manualul programatorului
Cuprins
1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Programul pies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cuvnt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de adrese. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bloc (linie de program) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numr de program i Nume de program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
nceput de program i Sfrit de program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatul programului n memorie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatul programului n comunicaia cu dispozitivele externe. . . . . . . . . . . . . . .
Program principal i subprogram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Canal DNC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Termeni fundamentali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
9
9
10
10
10
10
10
10
11
12
2 Axele controlate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Numele axelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Sistemul de uniti i incremente ale axelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
17
19
4 Interpolarea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Poziionarea (G00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Interpolarea liniar (G01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Interpolarea circular i spiral (G02, G03) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Interpolarea elicoidal (G02, G03) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Filetarea cu pas constant (G33). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Interpolarea n coordonate polare (G12.1, G13.1) . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 Interpolarea cilindric (G7.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
22
22
24
27
29
31
35
38
38
38
40
40
41
6 Avansul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Avansul rapid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Valoarea avansului de prelucrare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Avansul pe minut (G94) i avansul pe rotaie (G95) . . . . . . . . . . . . . . . . . .
6.2.2 Limitarea superioar a avansului de prelucrare. . . . . . . . . . . . . . . . . . . . . . .
6.3 Accelerarea/frnarea automat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Funciile de control a avansului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Oprire precis (G09) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Modul tiere precis (G61) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.3 Modul tiere continu (G64). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.4 Modul inhibare corecie i stop (filetare) (G63) . . . . . . . . . . . . . . . . . . . . . .
6.4.5 Corecia automat la col (G62) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
45
45
46
47
48
49
49
49
50
50
50
3
51
7 ntrzierea (G04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
8 Punctul de referin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 Revenirea automat n punctul de referin (G28) . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Revenirea automat n punctele de referin 2, 3, 4 (G30) . . . . . . . . . . . . . . . . . . .
8.3 Revenirea automat din punctul de referin (G29) . . . . . . . . . . . . . . . . . . . . . . . .
53
53
54
54
56
56
56
56
57
57
58
59
59
60
62
64
64
64
65
65
66
66
66
67
67
70
70
70
72
72
73
73
74
74
74
74
74
75
77
14 Compensarea sculei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.1 Referirea la valorile de compensare a sculei (H i D). . . . . . . . . . . . . . . . . . . . . .
14.2 Modificarea valorilor de compensare a sculei din program (G10) . . . . . . . . . . . .
14.3 Compensarea lungimii sculei (G43, G44, G49) . . . . . . . . . . . . . . . . . . . . . . . . . .
14.4 Ofsetul sculei (G45G48). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.5 Compensarea sculei (G38, G39, G40, G41, G42) . . . . . . . . . . . . . . . . . . . . . . . .
14.5.1 Pornirea compensrii sculei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.5.2 Reguli de compensare a sculei n modul ofset. . . . . . . . . . . . . . . . . . . . . . .
14.5.3 Anularea modului ofset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.5.4 Schimbarea direciei ofsetului n modul ofset. . . . . . . . . . . . . . . . . . . . . . .
14.5.5 Programarea reinerii vectorului (G38) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.5.6 Programarea arcelor de col (G39) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.5.7 Informaii generale privind executarea compensrii sculei. . . . . . . . . . . . .
14.5.8 Interferene la compensarea sculei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.6 Ofsetul tridimensional al sculei (G41, G42) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.6.1 Programarea ofsetului tridimensional al sculei (G40, G41, G42)
14.6.2 Vectorul de ofset tridimensional
78
78
79
80
81
85
87
91
95
97
99
100
101
107
112
112
113
15 Transformri speciale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.1 Rotaia sistemului de coordonate (G68, G69) . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.2 Modificarea la scar (G50, G51) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15.3 Imagine n oglind programabil (G50.1, G51.1) . . . . . . . . . . . . . . . . . . . . . . . .
15.4 Reguli de programare a transformrilor speciale. . . . . . . . . . . . . . . . . . . . . . . . . .
114
114
116
117
118
120
120
121
131
131
124
127
129
131
132
138
138
139
140
141
141
142
143
144
145
148
149
150
152
153
153
158
158
159
160
20 Macro utilizator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.1 Apelul macro simplu (G65) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2 Apel macro modal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.1 Apel macro modal n fiecare comand de micare (G66) . . . . . . . . . . . . .
20.2.2 Apel macro modal din fiecare bloc (G66.1) . . . . . . . . . . . . . . . . . . . . . . . .
20.3 Apelul macro utilizator folosind codul G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.4 Apelul macro utilizator folosind codul M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.5 Apelul de subprogram cu codul M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.6 Apelul de subprogram cu codul T. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.7 Apelul de subprogram cu codul S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.8 Apelul de subprogram cu codurile A, B, C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.9 Diferene ntre apelul unui subprogram i apelul unui macro. . . . . . . . . . . . . . . .
20.9.1 Apeluri multiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.10 Formatul corpului macro utilizator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.11 Variabile ale limbajului de programare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.11.1 Identificarea unei variabile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.11.2 Referirea la o variabil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.11.3 Variabile vacante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.11.4 Formatul numeric al variabilelor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.12 Tipuri de variabile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.12.1 Variabile locale (de la #1 la #33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.12.2 Variabile comune (de la #100 la #199, de la #500 la #599) . . . . . . . . . . .
20.12.3 Variabile de sistem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13 Instruciuni ale limbajului de programare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13.1 Definiie, nlocuire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13.2 Operaii aritmetice i funcii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13.3 Operaii logice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13.4 Ramificare necondiionat: GOTOn. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.13.5 Ramificare condiionat: IF[<expresia condiiei>] GOTOn. . . . . . . . . . .
20.13.6 Instruciune condiionat: IF[<expresia condiiei>] THEN. . . . . . . . . . . .
20.13.7 Iteraie: WHILE[<expresia condiiei>] DOm ENDm . . . . . . . . . . . . .
20.13.8 Comenzi de ieire date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.14 Instruciuni NC i instruciuni macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.15 Desfurarea n timp a execuiei instruciunilor NC i macro. . . . . . . . . . . . . . .
20.16 Afiarea macro i a subprogramelor n modul automat . . . . . . . . . . . . . . . . . . .
20.17 Folosirea butonului STOP n timpul execuiei unei instruciuni macro . . . . . . .
20.18 Ciclul macro de frezare n adncime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
161
161
162
162
163
164
164
165
166
166
166
167
167
169
169
169
169
170
170
171
171
171
172
180
180
181
184
185
185
185
185
188
191
191
192
192
193
Note. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
197
198
27 Noiembrie 2001
1 Introducere
1 Introducere
1.1 Programul pies
Programul pies este un set de instruciuni care pot fi interpretate de ctre comanda numeric
pentru a putea controla operarea mainii.
Programul pies const din blocuri, care sunt compuse din cuvinte.
Cuvnt: Adres i Dat
Fiecare cuvnt este alctuit din dou pri o adres i o dat. Adresa are unul sau mai multe
caractere, data este o valoare numeric (un ntreg sau o valoare zecimal). Anumitor adrese li
se poate da un semn sau un operator I.
Lista de adrese:
Adresa
Semnificaie
numr program
bloc opional
numrul blocului
funcie pregtitoare
X, Y, Z, U, W
A, B, C
R
I, J, K
Limitele valorii
0001 - 9999
1-9
1 - 99999
*
lungimile coordonatelor
coordonate unghiulare, lungimile coordonatelor, funcii
auxiliare
I, -, *
I, -, *
I, -, *
-, *
coordonat auxiliar
-, *
vitez de avans
funcii diverse
1 999
numr scul
1 9999
H, D
1-99
numr de repetri
-, *
dat auxiliar
-, *
,C
distan de teire
-, *
,R
raza de filetare
-, *
,A
-, *
comentariu
1 - 9999
1 Introducere
/1N12345G1X0Y... /
)
G2Z5... /
)
10
.... /
)
1 Introducere
Procedura de prelucrare a unei piese este descris n programul principal. Dac pe parcursul
prelucrrii trebuie executate aceleai operaii n diverse locuri, nu este necesar ca acele
seciuni de program care descriu operaiile respective s fie scrise de mai multe ori n
programul principal, ci trebuie scris un subprogram, care poate fi apelat din orice loc (chiar
i din alt subprogram). Utilizatorul poate reveni din subprogram n programul care a fcut
apelul.
Canal DNC
Se poate executa i un program care se afl memorat pe o unitate extern (de exemplu pe un
calculator PC), fr ca programul s se memoreze n comanda numeric. n acest caz
comanda numeric n loc s citeasc programul din memoria proprie l va citi din mediul de
stocare extern prin intermediul interfeei RS232C. Se face referire la aceast legtur ca fiind
Canal DNC. Aceast metod este folositoare ndeosebi atunci cnd se execut programe
prea mari pentru a fi coninute n memoria comenzii numerice.
Canalul DNC este un canal de transfer de date controlat cu protocol, dup cum se arat mai
jos.
Comand:
Echipament:
11
1 Introducere
1.2 Termeni fundamentali
Interpolarea
Sistemul de control poate deplasa scula n
timpul prelucrrii de-a lungul unor linii
drepte sau a unor arce. n continuare se va
face referire la aceste activiti ca fiind
interpolare.
Micarea sculei pe o linie dreapt:
Program:
G01 Z___
X__ Z___
Punct de referin
Punctul de referin este un punct fix de pe maina unealt. Dup cuplarea la reea a mainii,
12
1 Introducere
axele trebuie s fie deplasate n punctul de referin. Dup aceea sistemul de control va fi
capabil s interpreteze i datele de coordonate absolute.
Sistem de coordonate
Dimensiunile indicate n desenul piesei
sunt msurate dintr-un anumit punct al
piesei. Acel punct este originea sistemului
de coordonate al piesei. Aceste date
dimensionale trebuie s fie scrise la adresa
coordonatei n programul pies. De
exemplu X340 nseamn un punct cu
coordonatele 340 mm n sistemul de
coordonate al piesei.
Sistemul de coordonate
specificat n care
comanda numeric
interpreteaz poziiile
este diferit de sistemul
de coordonate al piesei.
Pentru executarea unei
piese corecte, trebuie
impus aceeai origine
pentru cele dou sisteme
de coordonate n
comanda numeric.
Aceasta se poate face de
exemplu prin deplasarea
centrului sculei ntr-un
punct al piesei cu poziie
cunoscut i impunerea sistemului de coordonate al comenzii numerice la acea valoare.
13
1 Introducere
Specificarea coordonatei absolute
Cnd sunt specificate coordonate
absolute, scula se deplaseaz pe o
distan msurat de la originea
sistemului de coordonate, adic ntrun punct a crui poziie a fost
specificat prin coordonate.
Codul specificrii de dat absolut
este G90.
Blocul
G90 X50 Y80 Z40
va deplasa scula n punctul din
poziia de mai sus, indiferent de
poziia sa nainte de a se da aceast
comand.
1 Introducere
N16 X30
N17 Y100
codul G90 (specificare de dat absolut) i valoarea F (avans), specificate n blocul N15, vor
fi modale n blocurile N16 i N17. Astfel nu mai este necesar s se specifice aceste funcii n
fiecare dintre blocurile urmtoare.
Funciile cu o singur execuie (nemodale)
Anumite coduri sau valori sunt active doar n blocul n care sunt specificate. Acestea sunt
funcii cu o singur execuie.
Comanda vitezei arborelui
Viteza arborelui poate fi specificat la adresa S. Este denumit i funcia S. Instruciunea
S1500 impune o rotire a arborelui la viteza de 1500 rot/min.
Funcia Schimbare scul
n decursul prelucrrii, pentru operaiile executate trebuie folosite diverse scule. Sculele sunt
difereniate prin numere. Se face referire la scule folosind codul T. Instruciunea T25 n
program, nseamn c trebuie schimbat scula nr.25. Schimbarea sculei se poate face
manual sau automat, funcie de construcia mainii.
Funcii diverse
n decursul prelucrrii trebuie executate un numr de operaii de pornire sau oprire. De
exemplu pornirea arborelui principal sau pornirea lichidului de rcire. Aceste operaii pot fi
executate cu funciile M (diverse). Ca exemplu n irul de instruciuni
M3 M8
M3 semnific rotire arbore n sens orar iar M8 semnific pornirea lichidului de rcire.
Compensarea lungimii sculei
n cursul prelucrrii sunt folosite
scule de diferite lungimi pentru
operaii diferite. Pe de alt parte, n
producia de serie, o anumit
operaie se poate executa cu scule
de lungimi diferite (de exemplu
cnd se rupe scula). n scopul de a
face micrile descrise n programul
pies independente de lungimea
sculei, trebuie impuse n comanda
numeric diversele lungimi ale
sculelor. Dac prin program se
impune deplasarea vrfului sculei
ntr-un punct specificat, trebuie s fie apelat valoarea lungimii sculei respective. Aceasta se
face la adresa H. De exemplu instruciunea H1 face referire la data de lungime nr.1. Apoi
comanda numeric deplaseaz vrful sculei n punctul specificat. Aceast procedur este
referit ca impunere a modului compensare a lungimii sculei.
15
1 Introducere
Compensarea uzurii
n decursul prelucrrii sculele se uzeaz. Se poate stabili o relaie ntre uzur i modificrile
dimensionale ale sculei (n lungime ca i n raz). Se poate impune uzura sculei n comanda
numeric. Pentru fiecare grup de compensare (la care se face referire la adresele H sau D)
avem o valoare a geometriei, adic lungimea i raza iniial a sculei, i o valoare a uzurii.
Cnd se impune compensarea, comanda numeric va compensa micarea cu suma celor dou
valori.
16
2 Axele controlate
2 Axele controlate
Numrul de axe (n configuraia de baz)
3 axe
n configuraie extins
17
2 Axele controlate
Sistemul de increment de intrare al comenzii numerice este considerat ca fiind cea mai
mic unitate care poate fi introdus. Aceasta poate fi selectat ca un parametru. Sunt
disponibile trei sisteme de incremente IS-A, IS-B I IS-C. Sistemele de incremente nu pot fi
combinate pentru axele aceleeai maini.
Dup ce a procesat datele de intrare, comanda numeric va furniza noua traiectorie pentru
deplasarea axelor. Rezoluia lor este ntotdeauna dublul incrementului sistemului de intrare
ales. Acesta este denumit sistemul de increment de ieire al comenzii numerice.
Practic sistemul de increment de intrare al comenzii numerice este determinat de ctre
rezoluia codorului de poziie.
Sistemul de increment
IS-A
IS-B
IS-C
18
0.01 mm
999999.99 mm
0.001 inci
99999.999 inci
0.01 grade
999999.99 grade
0.001 mm
99999.999 mm
0.0001 inci
9999.9999 inci
0.001 grade
99999.999 grade
0.0001 mm
9999.9999 mm
0.00001 inci
999.99999 inci
0.0001 grade
9999.9999 grade
Grupa
G00*
Funcia
Pagina
Poziionare
22
Interpolare liniar
22
24
G03
24
G04
ntrziere
51
G05.1
G01*
G02
G07.1
01
Interpolare cilindric
35
48
G10
58, 78
G11
G09
G12.1
G13.1
G15*
G16
00
26
17
G17*
G18*
02
G19
G20
G21
G22*
G23
G25*
G26
06
04
8
G28
G29
G30
G31
G33
01
G37
G38
G39
00
31
31
38
38
61
61
61
Intrare n inci
40
Intrare n metric
40
157
157
66
66
52
53
53
Funcia de salt
154
Filetare
29
155
99
99
19
Grupa
G40*
G41
Funcia
Anularea compensrii razei / tridimensionale a sculei
07
G42
G43*
.
Pagina
84
84, 87
84, 87
79
79
G45
80
G46
80
G47
80
G48
80
79
115
Modificare la scar
115
116
116
59
56
G54*
57
G55
57
57
57
G58
57
G59
57
G61
48
49
Inhibare corecii
49
G64*
Tiere continu
49
G65
160
G66
161
G66.1
162
G67
161
114
114
137
139
140
141
G44*
G49*
G50*
G51
G50.1*
G51.1
G52
G53
G56
G57
G62
G63
G68
G69*
08
08
11
18
00
14
15
16
G73
G74
G76
G80*
20
01
Grupa
Funcia
Pagina
G81
141
G82
142
G83
143
G84
144
G84.2
145
G84.3
145
G85
Ciclu de alezare
148
G86
149
G87
150
G88
152
G89
153
Comand absolut
38
Comand incremental
38
58
Avans pe minut
45
Avans pe rotaie
45
64
64
133
133
G90*
G91*
G92
G94*
G95*
G96
G97*
G98*
G99
03
00
05
13
10
Note:
Semnul * care marcheaz codurile G dintr-un grup, reprezint starea n care trece
comanda numeric la punerea sub tensiune.
Dac ntr-un grup sunt marcate cu * mai multe coduri, se poate impune printr-un
parametru codul care va fi activat la punerea sub tensiune. Acestea sunt: G00, G01;
G17, G18; G43, G44, G49; G90, G91; G94, G95.
La punerea sub tensiune, dintre G20 i G21 va fi activ cea care era impus n
momentul decuplrii de la reea.
Interpretarea implicit a comenzii G05.1 dup punerea sub tensiune poate fi
specificat cu parametrul MULBUF.
Codurile G din grupul 00 nu sunt modale; restul codurilor sunt.
ntr-un bloc se pot scrie mai multe coduri G cu restricia ca s fie folosit doar unul
din grupul cu aceeai funcie.
Referirea la un cod G ilegal sau specificarea mai multor coduri G care aparin
aceluiai grup n acelai bloc va produce un mesaj de eroare 3005 ILLEGAL G
CODE (cod G incorect).
21
4 Interpolarea
4 Interpolarea
4.1 Poziionarea (G00)
Seria de instruciuni
G00 v
se refer la poziionarea n sistemul de coordonate curent.
Deplasarea se face la coordonata v. Indicaia v (vector) se refer aici (i pe mai departe) la
toate axele controlate folosite pe maina-unealt. (Ele pot fi X, Y, Z, U, V, W, A, B, C).
Poziionarea se realizeaz de-a lungul unei linii drepte implicnd micrile simultane ale
tuturor axelor specificate n bloc. Coordonatele pot fi date absolute sau incrementale.
Viteza de poziionare nu poate fi comandat
n program deoarece se realizeaz cu valori
diferite pentru fiecare ax, valori impuse de
constructorul mainii ca parametri. Atunci
cnd sunt micate simultan mai multe axe,
este calculat de ctre comanda numeric
rezultanta vectorial a vitezei astfel nct s
se execute poziionarea n intervalul minim
de timp, iar viteza s nu depeasc nicieri
parametrul de avans rapid impus pentru
fiecare ax.
n execuia instruciunii G00, comanda
numeric execut accelerri i frnri la
nceputul i respectiv sfritul micrilor. La terminarea micrii, comanda numeric va
verifica semnalul poziie atins atunci cnd parametrul POSCHECK din cmpul
parametrilor este1, sau nu-l va verifica dac parametrul este pus pe 0. Se va atepta apariia
semnalului poziie atins timp de 5 secunde i, dac nu ajunge acest semnal se va afia
mesajul 1020 POSITION ERROR (eroare de poziie). Deviaia maxim acceptabil de la
poziie poate fi specificat n parametrul INPOS.
Fiind un cod modal, G00 rmne activ pn cnd este renscris de ctre o alt comand de
interpolare. Dup punerea sub tensiune, este activ G00 sau G01, funcie de valoarea impus
n grupul de parametri CODES.
4.2 Interpolarea liniar (G01)
Seria de instruciuni
G01 v F
va selecta un mod de interpolare liniar. Data scris pentru v poate fi valoare absolut sau
incremental, interpretat n sistemul de coordonate curent. Viteza de deplasare (avansul)
poate fi programat la adresa F.
Avansul programat la adresa F va fi realizat invariabil de-a lungul traiectoriei programate.
Componentele sale axiale sunt:
Avansul pe axa X este
22
4 Interpolarea
avansul pe B
23
4 Interpolarea
Fiind un cod modal, G01 este activ pn cnd se nscrie cu o alt comand de interpolare. La
punerea sub tensiune, este activ fie G00 fie G01, funcie de valoarea impus parametrilor n
grupul CODES din cmpul parametrilor.
4.3 Interpolarea circular i spiral
24
4 Interpolarea
Alte date pentru cerc pot fi specificate ntr-unul din urmtoarele dou moduri.
Cazul 1
La adresa R, unde R este raza cercului. Acum comanda numeric va calcula automat
coordonatele centrului cercului din coordonatele punctului de start (punctul n care se afl
comanda numeric n momentul n care s-a introdus blocul pentru cerc), coordonatele
punctului de sfrit (valorile definite la adresele Xp, Yp, i Zp) i din raza cercului programat,
R. Deoarece se pot desena dou cercuri diferite cu
raza R ntre punctele de nceput i cel de sfrit
pentru o direcie de parcurgere dat (G02 sau
G03), comanda numeric va interpola un arc mai
mic sau mai mare de 180 cnd raza cercului este
specificat ca numr pozitiv sau respectiv numr
negativ. De exemplu:
Seciunea de arc 1: G02 X50 Y40 R40
Seciunea de arc 2: G02 X50 Y40 R-40
Seciunea de arc 3: G03 X50 Z40 R40
Seciunea de arc 4: G03 X50 Z40 R-40
Cazul2
Centrul cercului este specificat la adresele I, J, K pentru axele Xp, Yp, i Zp. Valorile
specificate la adresele I, J, K sunt interpretate ntotdeauna ca incrementale de ctre comanda
numeric, astfel c vectorul definit cu valorile punctelor I, J, K este ndreptat din punctul de
nceput ctre centrul cercului. De exemplu:
Cu G17: G03 X10 Y70 I-50 J-20
Cu G18: G03 X70 Z10 I-20 K-50
Cu G19: G03 Y10 Z70 J-50 K-20
25
4 Interpolarea
Avansul pe traiectorie poate fi programat la adresa F,
fiind ndreptat n direcia tangentei la cerc i
meninndu-se constant la parcurgerea traiectoriei.
Note:
- I0, J0, K0 pot fi omise:
G03 X0 Y100 I-100
- Cnd Xp, Yp, i Zp sunt omise toate, sau
coordonatele punctului final coincid cu cele ale
punctului de start, atunci:
a. dac coordonatele centrului cercului sunt
programate la adresa I, J, K, comanda
numeric va interpola un cerc complet de
360 . Exemplu : G03 I-100
b. dac este programat raza R, comanda numeric afieaz eroarea 3012
ERRONEOUS CIRCLE DEF. R (raza cercului R definit eronat).
- Cnd blocul cercului fie
a. nu conine nici raza (R) nici I, J, K ,
b. face referire la adresa I, J, K n afara planului selectat, comanda numeric afieaz
eroarea 3014 ERRONEOUS CIRCLE DEF. ( cercul definit eronat).
Exemple: G03 X0 Y100, sau (G18) G02 X0 Z100 J-100.
- Comanda numeric afieaz mesajul 3011 RADIUS DIFFERENCE (diferen de raz)
de cte ori diferena pe raz ntre punctul de pornire i punctul final al cercului definit n
blocurile G02, G03 depete valoarea definit n parametrul RADDIF.
De cte ori diferena de raz
este mai mic dect valoarea
specificat n parametrul de
mai sus, comanda numeric va
deplasa scula de-a lungul unei
traiectorii spirale n care raza
variaz liniar funcie de
unghiul central.
Viteza unghiular, i nu cea
tangenial la traiectorie va fi
constant la interpolarea unui
arc de cerc cu raz variabil.
26
4 Interpolarea
27
4 Interpolarea
Avansul specificat la adresa F este activ
doar pentru traiectoria circular.
Componenta Fq de-a lungul axei q este
obinut din relaia:
Unde:
Lq: deplasare de-a lungul axei q,
Larc: lungimea arcului circular,
F: avansul programat,
Fq: avansul de-a lungul axei q.
De exemplu:
G17 G03 X0 Y100 Z20 R100 F150
Seria de instruciuni
28
4 Interpolarea
29
4 Interpolarea
Un exemplu de programare a filetrii:
N50
N55
N60
N65
N70
N75
N80
N85
N90
...
G90 G0 X0 Y0 S100 M4
Z2
G33 Z-100 F2
M19
G0 X5
Z2 M0
X0 M4
G4 P2
G33 Z-100 F2
Explicaii:
N50, N55 Deplasarea sculei n centrul gurii, pornirea
rotirii arborelui n sens antiorar,
N60 Primul ciclu de filetare, (pas 2mm),
N65 Oprire orientat a arborelui (arborele este oprit
ntr-o poziie determinat)
N70 Retragerea sculei pe axa X,
N75 Retragerea sculei la nceputul gurii, oprire
programat, operatorul ajusteaz scula pentru
urmtorul ciclu de filetare,
N80 Revenire n centrul gurii, repornire arbore,
N85 Ateptarea atingerii turaiei de ctre arbore,
N90 Al doilea ciclu de filetare.
Note:
Se va afia mesajul de eroare 3020 DATA DEFINITION ERROR G33 (eroare la
definirea datei pentru G33) dac au fost specificate mai mult de dou coordonate
simultan n blocul de filetare, sau sunt specificate simultan ambele adrese F i E.
Se va afia mesajul de eroare 3022 DIVIDE BY 0 IN G33 (divizare prin 0 n G33)
dac s-a specificat 0 pentru adresa E n blocul de filetare.
Pentru a putea executa comanda G33 trebuie ca pe arbore s fie montat un codor de
poziie.
Pe parcursul execuiei comenzii G33, comanda numeric va considera n mod
automat valorile coreciilor pentru avansuri i rotire arbore ca fiind 100%; de
asemenea tasta stop va avea efect doar dup ce se execut blocul n curs.
Cu scopul de a obine un pas constant al filetului pe toat piesa prelucrat, trebuie
asigurat curs liber pentru scul la ambele capete ale piesei de prelucrat.
n cursul filetrii avansul (n mm/min) nu poate depi valoarea selectat n grupa de
parametri FEEDMAX.
n cursul filetrii viteza arborelui (n rot/min) nu poate depi valoarea maxim
admis pentru codorul de poziie, att din punct de vedere mecanic ct i electric
(frecvena maxim la ieire).
30
Comanda
G17 X_ C_
selecteaz axa X ca ax liniar i axa C ca ax de rotaie. n desen este indicat cu C axa
virtual, a crei programare este executat prin definirea msurilor lungimii.
Prin intermediul comenzilor
G18 Z_ C_
G19 Y_ C_
se pot selecta alte perechi de axe liniare i de rotaie n modul prezentat mai sus.
Ofsetul punctului de zero al piesei n decursul interpolrii n coordonate polare
n cazul folosirii interpolrii n coordonate polare originea sistemului de coordonate al piesei
trebuie aleas astfel nct s coincid cu axa de rotaie a axei circulare.
Poziia axelor n momentul activrii interpolrii n coordonate polare
nainte de activarea interpolrii n coordonate polare (comanda G12.1) asigurai-v c poziia
31
axei circulare este la 0. Poziia axei liniare poate fi pozitiv sau negativ dar nu poate fi pe
0.
Programarea coordonatelor lungimii n cursul interpolrii n coordonate polare
n starea activ a interpolrii n coordonate polare, data coordonatei lungimii poate fi
programat pe ambele axe care aparin planului selectat. Axa de rotaie n planul selectat
funcioneaz ca a doua ax (virtual). Dac de exemplu axele X i C au fost selectate cu
ajutorul comenzii G17 X_C_ , adresa C poate fi programat ca i axa Y n cazul selectrii
planului G17 X_Y_.
Programarea primei axe fiind ca diametru, nu influeneaz programarea axei virtuale, data de
coordonat trebuind s fie introdus ntotdeauna ca raz pentru axa virtual. Dac de
exemplu este executat interpolare n coordonate polare n planul X C, valoarea scris la
adresa C trebuie specificat ca raz, independent dac adresa X este dat ca diametru sau ca
raz.
Deplasarea pe axele care nu iau parte la interpolarea n coordonate polare
Deplasarea pe aceste axe se desfoar normal, independent de starea activat a interpolrii
n coordonate polare.
Programarea interpolrii circulare n cursul interpolrii n coordonate polare
Definirea unui cerc n modul de interpolare n coordonate polare este posibil dup cum se
tie cu ajutorul razei sau prin programarea coordonatelor centrului cercului. n cel de al
doilea caz adresele I, J, K trebuie s fie folosite n acord cu planul selectat dup cum se vede
mai jos:
G17 X_ C_
G12.1
...
G2 (G3) X_ C_ I_ J_
G18 Z_ B_
G12.1
...
G2 (G3) B_ Z_ I_ K_
G19 Y_ A_
G12.1
...
G2 (G3) Y_ A_ J_ K_
33
34
35
36
37
38
n acest bloc s-a specificat o elice cu dou ture n direcie antiorar. La programarea unui
cerc cu mai multe ture trebuie avut n vedere c trebuie programat un unghi polar negativ sau
pozitiv pentru direciile G2 sau respectiv G3.
Note:
Adresele folosite n urmtoarele instruciuni nu
vor fi considerate ca polare:
- G 10 coordonatele folosite la impunerea
instruciunii,
- G 52 ofset ccordonate,
- G 92 impunere coordonate,
- G 53 poziionare n sistemul de coordonate al
mainii
- G 68 rotire coordonate
- G 51 modificare la scar,
- G 50.1 imagine n oglind.
39
40
Unitate de
ieire
Sistemul de
increment
IS-A
mm
mm
IS-B
0.001 - 99999.999
IS-C
0.0001 - 9999.9999
IS-A
0.001 39370.078
IS-B
0.0001 - 3937.0078
IS-C
0.00001 - 39370.078
IS-A
0.001 - 99999.999
IS-B
0.0001 - 9999.9999
IS-C
0.00001 - 999.99999
IS-A
0.01 - 999999.99
IS-B
0.001 - 99999.999
IS-C
0.0001 - 9999.9999
inci
mm
inci
inci
mm
inci
Valoarea gamei
lungimilor coordonatelor
0.01 - 999999.99
Unitatea de
msur
mm
inci
inci
mm
IR-A
0.01 - 999999.99
IR-B
0.001 - 99999.999
IR-C
0.0001 - 9999.9999
Unitatea de msur
grade
41
42
C=0
0246 ABSHORT_C=0
deplasarea se face
ntotdeauna n direcia
semnului programat la
adresa C
G90 C450
90
C=90
G90 C0 (0 este un
numr pozitiv!)
270
C=0
G90 C-90
-90
C=270
G90 C-360
-270
C=0
C=0
0246 ABSHORT_C=1
deplasarea se face
ntotdeauna pe drumul
cel mai scurt
Poziia la sfritul
blocului
G90 C450
90
C=90
G90 C0
-90
C=0
G90 C-90
-90
C=270
G90 C-360
90
C=0
43
Deplasarea executat
prin acest bloc
C=0
G91 C450
450
C=90
G91 C0
C=90
G91 C-90
-90
C=0
G91 C-360
-360
C=0
C=0
44
Poziia la sfritul
blocului
G91 C450
90
C=90
G91 C0
C=90
G91 C-90
-90
C=0
G91 C-360
C=0
6 Avansul
6 Avansul
6.1 Avansul rapid
G00 comand o poziionare cu avans rapid.
Valoarea avansului rapid pentru fiecare ax este impus prin parametru de ctre
constructorul mainii. Valoarea avansului rapid poate fi diferit pentru fiecare ax.
Atunci cnd mai multe axe se deplaseaz simultan cu avans rapid, rezultanta avansului va fi
calculat astfel nct componenta vitezei pe fiecare ax s nu depeasc valoarea particular
a avansului rapid pentru acea ax (impus ca parametru) i poziionarea s se realizeze n
minimul de timp.
Valoarea avansului rapid este modificat cu comutatorul de corecie a avansului rapid care
poate avea treptele:
F0: definit prin parametrul RAPOVER n %,
i 25%, 50%, 100%.
Valoarea avansului rapid nu poate depi 100%.
Deplasarea cu avans rapid se va opri dac comutatorul de corecie avans este pe poziia 0%.
n lipsa unui punct de referin valid, sunt valabile valorile reduse ale avansurilor rapide
definite de constructorul mainii pentru fiecare ax pn cnd se execut ntoarcerea n
punctul de referin.
Valorile de corecie ale avansului rapid pot fi conectate cu cele ale comutatorului de corecie
avans.
Dac se deplaseaz axele cu butoanele de JOG, viteza de avans rapid este diferit fa de
avansul rapid cu G00, i de asemeni se poate selecta prin parametri pentru fiecare ax.
De obicei viteza de deplasare cu butoanele de JOG este mai mic dect viteza de poziionare
i corelat cu timpul de rspuns al omului.
6.2 Valoarea avansului de prelucrare
Avansul este programat
la adresa F.
Avansul programat este
realizat n blocuri de
interpolare liniar (G01)
i circular (G02, G03).
Avansul este realizat
tangenial de-a lungul
traiectoriei programate.
F avans tangenial
(valoare programat)
Fx component a avansului pe direcia X
Fy - component a avansului pe direcia Y
Cu excepia strilor de inhibare corecie i stop (G63), valoarea avansului programat poate fi
modificat n gama de la 0 la 120% cu comutatorul de corecie a avansului.
45
6 Avansul
Valoarea avansului (F) este modal. Dup punerea sub tensiune va fi activ valoarea
avansului impus cu parametrul FEED.
6.2.1 Avansul pe minut (G94) i avansul pe rotaie (G95)
Unitatea de avans poate fi specificat n program cu codurile G94 i G95:
G94: avansul pe minut
G95: avansul pe rotaie
Termenul avans/minut se refer la avansul specificat n unitile mm/min, inci/min sau
grade/min.
Termenul avans/rotaie se refer la avansul realizat ntr-o rotaie a arborelui, specificat n
unitile mm/rot, inci/rot sau grade/rot. Nu poate fi programat G95 dect dac arborele este
echipat cu un codor de poziie.
G94 i G95 sunt valori modale. Dup punerea sub tensiune va fi selectat una dintre strile
G94 sau G95 funcie de parametrii din grupul CODES. Avansul rapid se execut invariabil n
mm/min, deci starea G94/G95 nu l va afecta.
46
6 Avansul
Tabelul urmtor prezint gama maxim a valorilor programabile la adresa F, pentru diferite
cazuri.
Uniti de
intrare
mm
inci
inci
mm
Uniti de
ieire
mm
mm
inci
inci
Sistem de
increment
IS-A
0.001 - 250000
IS-B
0.0001 25000
IS-C
0.00001 2500
IS-A
0.0001 5000
IS-B
0.00001 500
IS-C
0.000001 50
IS-A
0.0001 9842.5197
IS-B
0.00001 - 984.25197
IS-C
0.000001 - 98.425197
IS-A
0.00001 196.85039
IS-B
0.000001 19.685039
IS-C
0.0000001 1.9685039
IS-A
0.0001 25000
IS-B
0.00001 2500
IS-C
0.000001 250
IS-A
0.00001 500
IS-B
0.000001 50
IS-C
0.0000001 5
IS-A
0.001 - 250000
IS-B
0.0001 25000
IS-C
0.00001 2500
IS-A
0.0001 5000
IS-B
0.00001 500
IS-C
0.000001 50
Unitate
mm sau
grade/min
mm sau
grade/rot
inci sau
grade/min
inci sau
grade/rot
inci sau
grade/min
inci sau
grade/rot
mm sau
grade/min
mm sau
grade/rot
6 Avansul
De asemenea, separat, se poate limita superior valoarea maxim a avansului pentru JOG prin
parametrii pentru timpii de rspuns uman.
6.3 Accelerarea/frnarea automat
La deplasarea cu avans rapid, comanda
numeric va executa n mod automat o
accelerare liniar la nceputul micrii i o
frnare liniar la sfritul micrii.
Mrimea acceleraiei este definit de ctre
constructorul mainii n parametrul ACCn,
n funcie de dinamica mainii.
48
6 Avansul
Comanda numeric monitorizeaz modificrile vitezelor tangeniale. Aceasta este necesar
pentru a atinge viteza comandat ntr-un proces de accelerare continu, dac este necesar,
prin cteva blocuri. Accelerarea la noul
avans (mai mare dect cel precedent) este
nceput de ctre comanda numeric n
mod invariabil n execuia blocului
respectiv, n care este specificat noua
valoare a avansului. Dac este necesar,
acest proces se poate prelungi pe cteva
blocuri. Frnarea la o valoare nou a
avansului (mai mic dect cea
precedent) va fi nceput de ctre
comanda numeric n blocul precedent
celui n cauz, astfel ca prelucrarea s
porneasc cu viteza programat n blocul
n care este specificat noua valoare a avansului. Accelerarea /frnarea liniar este folosit i
la deplasarea manual n modul JOG sau cu roata de mn. Valorile pentru acest caz vor fi
definite pentru fiecare ax prin parametrii de la ACC1 la ACC8.
6.4 Funciile de control a avansului
Funciile de control a coreciei sunt necesare atunci cnd trebuie prelucrate coluri, i/sau
cnd o tehnologie particular necesit anularea comutatorului de corecie i a butonului de
stop. Cnd se prelucreaz coluri cu
aplicarea tierii continue, axele, datorit
ineriei lor, nu sunt capabile s
urmreasc traiectoria comandat de
ctre comanda numeric. Astfel, scula va
rotunji colurile, mai mult sau mai puin,
funcie de avans. Dac piesa de prelucrat
necesit coluri ascuite, trebuie
specificat reducerea avansului la
sfritul blocului, s se atepte pn cnd axele se opresc, i numai dup aceea s se
porneasc urmtoarea micare.
6.4.1 Oprirea precis (G09)
G09 nu este o funcie modal, deci nu este activ dect n blocul n care a fost programat.
La sfritul blocului n care a fost specificat G09, comanda numeric ncetinete dup
executarea interpolrii, i ateapt apariia semnalului atingere poziie. Dac acest semnal
nu este primit n 5 secunde, se afieaz mesajul 1020 POSITION ERROR (eroare de poziie).
Aceast funcie poate fi utilizat pentru prelucrarea precis a colurilor ascuite.
6.4.2 Modul tiere precis (G61)
Este o funcie modal anulat cu comenzile G62, G63 sau G64.
Comanda numeric va ncetini pn la finalizarea fiecrei interpolri i va atepta apariia
semnalului atingere poziie. Urmtoarea interpolare va fi pornit numai dup apariia
49
6 Avansul
semnalului Dac acest semnal nu este primit n 5 secunde, se afieaz mesajul 1020
POSITION ERROR (eroare de poziie).
6.4.3 Modul tiere continu (G64)
Funcie modal. Comanda numeric va activa aceast stare la punerea sub tensiune. Ea va fi
anulat de unul din codurile G61, G62 sau G63.
n acest mod nu se ateapt terminarea interpolrii, axele nu vor ncetini. n loc de aceasta,
va fi nceput imediat interpolarea urmtorului bloc.
n acest mod nu pot fi prelucrate coluri ascuite, deoarece ele vor fi rotunjite.
6.4.4 Modul inhibare corecie i stop (filetare) (G63)
Este o funcie modal anulat cu comenzile G61, G62 sau G64.
n acest mod sunt inhibate coreciile pentru avans i arbore i stopul avansului. Valorile
coreciilor sunt considerate 100% (indiferent de poziia comutatorului). La terminarea
interpolrii, comanda numeric nu va ncetini, ci va ncepe imediat urmtorul ciclu de
interpolare.
Acest mod este aplicabil la filetarea cu cuit sau cu tarod.
6.4.5 Corecia automat la col (G62)
Este o funcie modal anulat cu comenzile G61, G62 sau G64.
Atunci cnd se prelucreaz interiorul unui
col, asupra sculei acioneaz fore mai
mari nainte i dup col. Pentru a preveni
suprancrcarea sculei i apariia
vibraiilor, comanda numeric - atunci
cnd este comandat G62 - va reduce n
mod automat avansul nainte i dup un
col interior.
Corecia de col este activ n urmtoarele
condiii:
- cnd este activ compensarea sculei
(G41, G42).
- ntre blocurile G0, G1, G2, G3.
- n deplasrile n planul selectat.
- cnd este prelucrat interiorul colului.
- cnd unghiul unui col este mai mic dect un anumit unghi definit printr-un parametru.
- pe o distan nainte i dup col, definit prin parametri.
Funcia de corecie de col va fi activ ntre fiecare din urmtoarele perechi de blocuri:
liniar la liniar, liniar la circular, circular la
liniar i circular la circular.
Interiorul unghiului poate fi selectat
ntre 1 i 180 prin parametrul
CORNANGLE.
50
6 Avansul
Frnarea i accelerarea vor fi ncepute la
distanele L1 i Lg nainte i respectiv
dup col. n cazul arcelor de cerc,
distanele L1 i Lg, vor fi calculate de
ctre comanda numeric de-a lungul
arcului. Distanele L1 i Lg vor fi definite
n parametrii DECDIST i respectiv
ACCDIST
Valoarea coreciei poate fi selectat ca un procent n parametrul CORNOVER.. Corecia va
deveni activ la distana L1 nainte de col i va continua s fie activ pe distana Lg dup
col. Comanda numeric va ine cont att de corecia avansului ct i de corecia de col.:
F* corecia avansului * corecia de col.
G09 se scrie ntr-un anumit bloc pentru a programa o oprire precis n starea G62.
6.4.6 Corecia tierii circulare interioare
Dac este activ compensarea sculei (G41, G42)
comanda numeric va reduce automat avansul de
prelucrare la interiorul suprafeei unui arc astfel ca
avansul s aib valoarea programat de-a lungul razei
de tiere. Avansul n centrul razei sculei este
Unde:
Fc este avansul corectat al centrului razei
sculei
R este raza cercului programat
Rc este raza cercului corectat
F este avansul programat.
Limita inferioar a reducerii automate a avansului este impus prin parametrul CIRCOVER,
n care poate fi specificat ca procent corecia minim. nainte de a se transmite mai departe,
corecia pentru raza cercului este multiplicat cu valorile coreciei avansului i coreciei de
col.
51
7 ntrzierea
7 ntrzierea (G04)
Comanda
(G94) G04 P
va programa o ntrziere n secunde.
Domeniul pentru P este de la 0.001 la 99999.999 secunde.
Comanda
(G95) G04 P
va programa o ntrziere n numr de rotaii ale arborelui.
Domeniul pentru P este de la 0.001 la 99999.999 rotaii.
Funcie de parametrul SECOND, ntrzierea poate fi considerat n secunde indiferent de
starea G94 sau G95.
ntrzierea implic invariabil ntrzierea executrii urmtorului bloc. Ea nu este o funcie
modal.
Pe durata ntrzierii, se afieaz pe ecran, n cmpul 5 care indic interpolarea, mesajul DWL
care atrage atenia operatorului de ce s-a oprit prelucrarea.
52
8 Punctul de referin
8 Punctul de referin
Punctul de referin este o poziie
distinct la o main unealt, n care se
poate reveni cu uurin. Poziia
punctului de referin poate fi definit ca
un parametru n sistemul de coordonate al
mainii.
Sistemul de coordonate al piesei poate fi
msurat i se poate face poziionarea
absolut dup executarea ntoarcerii n
punctul de referin. Poziiile limitelor de
curs introduse prin parametri i funcia
de verificare a cursei sunt active numai
dup ntoarcerea n punctul de referin.
53
8 Punctul de referin
8 Punctul de referin
referin i nainte de instruciunea G29, punctul intermediar va fi luat n consideraie n noul
sistem de coordonate.
n a doua etap se va deplasa din punctul intermediar n punctul v definit n instruciunea
G29. Dac coordonata v are o valoare incremental, deplasamentul va fi msurat din punctul
intermediar.
Atunci cnd este impus compensarea sculei, deplasarea n punctul final se va face innd
cont de vectorul de compensare.
Codul nu este modal.
Exemplu de utilizare a G30 i G29:
...
G90
...
G30 P1 X500 Y200
G29 X700 Y150
...
...
55
Poziia sculei este exprimat cu attea date de coordonat diferite, cte axe are maina.
Datele de coordonat se refer invariabil la un sistem de coordonate dat.
Comanda numeric va face diferen ntre trei sisteme de coordonate diferite:
1. sistemul de coordonate al mainii
2. sistemul de coordonate al piesei
3. sistemul de coordonate local
9.1 Sistemul de coordonate al mainii
Punctul de zero al mainii, adic originea
sistemului de coordonate al mainii, este
un punct de pe maina unealt, care de
obicei este definit de ctre constructor.
Comanda numeric va defini sistemul de
coordonate al mainii n momentul
ntoarcerii n punctul de referin. Dup
ce a fost definit sistemul de coordonate
al mainii, el nu va mai fi modificat de
schimbarea sistemului de coordonate de
lucru (G54 G59) sau de alt
transformare de coordonate (G52, G92),
ci doar de oprirea comenzii numerice.
56
57
Mai mult, se poate impune un ofset cu valoare comun pentru toate sistemele de coordonate
de lucru. Aceasta se face tot n modul de impunere.
9.2.2 Selectarea sistemului de coordonate de lucru
Se poate selecta unul dintre sistemele de coordonate de lucru cu instruciunile G54 G59:
G54. sistem de coordonate de lucru 1
G55. sistem de coordonate de lucru 2
G56. sistem de coordonate de lucru 3
G57. sistem de coordonate de lucru 4
G58. sistem de coordonate de lucru 5
G59. sistem de coordonate de lucru 6
Acestea sunt funcii modale. Selectarea lor nainte de o ntoarcere n punctul de referin nu
are efect. Dup o ntoarcere n punctul de referin, va fi selectat automat sistemul de
coordonate de lucru 1 (G54).
Datele de coordonat absolut ale
blocurilor de interpolare vor fi considerate
de ctre comanda numeric n sistemul de
coordonate de lucru curent.
De exemplu instruciunea
G56 G90 G00 X60 Y40
58
59
Note:
- ofsetul sistemului de coordonate de lucru impus cu instruciunea G92 va fi ters prin
execuia instruciunilor de sfrit de program (M2, M30) i prin resetarea programului.
- instruciunea G92 va terge datele ofseturilor sistemului de coordonate local (programat cu
instruciunea G52) pe axele incluse n instruciune.
- Instruciunea G92 ofer o cale comod pentru indicarea poziiei ciclice a indexrii mesei
rotative care execut cteva rotaii. Dac de exemplu axa B a fost rotit n poziia 360,
axa poate fi deplasat n poziia 0 fr s se efectueze o micare fizic prin programarea
G92 B0.
9.3 Sistemul de coordonate local
Atunci cnd se scriu programele-pies, este mult mai la ndemn s se specifice datele
coordonatelor ntr-un sistem de coordonate local n locul sistemului de coordonate de
lucru.
60
61
63
Viteza periferic constant trebuie s fie specificat n funcie de unitatea de intrare pe baza
urmtorului tabel:
64
Unitatea de intrare
mm (G21 metric)
m/min
- Calculul vitezei periferice constante este de asemenea activ n starea G94 (avans/min).
- Dac controlul vitezei periferice constante este anulat prin intermediul comenzii G97 i
nu se specific o nou vitez, rmne activ ultima vitez pe care a avut-o arborele
n starea G96.
G96 S100 (100 m/min sau 100 picioare/min)
.
.
.
G97
(viteza de rotaie corespunztoare diametrului X)
- n cazul poziionrii cu avans rapid (bloc G00), viteza periferic constant nu este calculat
continuu, dar se va calcula viteza de rotaie corespunztoare poziiei finale. Aceasta
pentru a se evita schimbri inutile ale vitezei de rotaie a arborelui.
- Pentru a se calcula viteza periferic constant, trebuie impus la axa de rotaie a arborelui
punctul zero al axei, presupunnd c viteza de rotaie a arborelui se modific.
10.2.2 Limitarea vitezei periferice constante (G92)
Prin intermediul comenzii
G92 S
se poate impune cea mai mare vitez de rotaie a arborelui n cazul n care e activ controlul
vitezei periferice constante. n timpul calculului vitezei periferice constante, comanda
numeric limiteaz viteza de rotaie a arborelui la aceast valoare. n acest caz unitatea
pentru S este rot/min.
- Dup punerea sub tensiune, la fel ca n cazul n care valoarea lui S nu a fost limitat cu
comanda G92, limita superioar a vitezei de rotaie a arborelui n cazul controlului
vitezei periferice constante este valoarea maxim permis pentru acea treapt a cutiei
de viteze.
- Valoarea maxim a vitezei de rotaie a arborelui este modal pn cnd este programat o
nou valoare sau pn ce se oprete comanda numeric.
65
66
parametru
5001 TIME
5002 SCERR
5003 FLUCT%
5004 FLUCTW
unitate
valoare
limit
100 ms
65535
1-50
1-50
rot/min
65535
semnificaie
timpul care a trecut de la lansarea unei noi
comenzi pentru viteza arborelui pn la
nceperea verificrii
67
68
69
70
.Tnnnn
M06 Tmmmm
M06 Tpppp.
Explicaii
cutarea sculei Tnnnn
continu executarea programului pies, cutarea sculei se execut n
fundal
scula Tnnnn este plasat pe arbore,
scula folosit anterior este reintrodus n magazie
se pornete cutarea sculei Tmmmm, n timp ce maina execut
prelucrare
scula Tmmmm este plasat pe arbore
scula Tnnnn este reintrodus n magazie, se pornete cutarea sculei
Tpppp
n acest timp se execut prelucrare
71
Schimbare scul:
Apel scul:
Selectare treapt turaie:
Turaie arbore:
Control arbore:
Rcire:
Alte funcii M:
Indexare arbore:
Funcia A:
Funcia B:
Funcia C:
Coduri de control program:
M06
T
M11, ,M18
S
M03, M04, M05, M19
M07, M08, M09
Mnnn
Cu funcii M
A
B
C
M00, M01, M02, M30, M96, M97, M98, M99
Dac succesiunea de mai sus nu satisface cerinele, blocul trebuie mprit n alte cteva
blocuri, cu funciile M scrise n succesiunea dorit n fiecare bloc.
73
74
subprogram
O0010
execuia programului
(principal) O0010
.....
.....
M98 P0011
---->
blocul urmtor
<----
....
....
comentariu
O0011
.....
.....
.....
M99
revenirea n programul
apelant
reluarea programului O0010
Seria de instruciuni
M98 P. L.
va apela subprogramul (specificat la adresa P) n mod repetat n succesiunea specificat la
adresa L. Limitele pentru adresa L sunt 1 i 9999. Dac nu se d o valoare pentru L,
subprogramul va fi apelat o singur dat, comanda numeric interpretnd L=1.
Instruciunea M98 P11 L6 semnific faptul c subprogramul 011 trebuie apelat n mod
repetat de ase ori.
Este posibil de asemenea s se apeleze un subprogram din alt subprogram. Apelurile de
subprograme din subprograme pot merge pn la nivelul 4.
program principal
subprogram subprogram subprogram subprogram
O0001
------>O0011
--->O0012
--->O0013
---> O0014
|
.
|
.
|
|
.
|
..
|
|
..
M98P11_____ |
M98P12__| M98P13__| M98P14__|
.
. <---- <--- <--- . <--.
.
|
|
|
.
|
.
M02
| _____ M99
|__ M99
|___M99
|___ M99
Note:
- dac este depit numrul de patru apeluri de subprograme din subprograme, este afiat
mesajul de eroare 3069 LEVEL EXCESS (depire nivel).
- dac este depit valoarea de 9999 pentru adresa P sau aceasta lipsete, este afiat mesajul
de eroare 3017 MISSING OR FAULTY P (P lips sau greit).
- dac valoarea pentru L este incorect, este afiat mesajul de eroare 3072 DEFINITION
ERROR L (eroare de definire L).
- dac este specificat cu un identificator la adresa P un program inexistent n memorie, este
afiat mesajul de eroare 3073 NOT EXISTING PROGRAM (program inexistent).
13.3.2 Revenirea dintr-un subprogram
Utilizarea instruciunii
M99
ntr-un subprogram semnific sfritul acelui subprogram i revenirea execuiei n programul
principal, la blocul urmtor celui din care s-a fcut apelul.
75
N102 ....
subprogram
.
comentariu
executarea programului O0010
----> O0011
....
....
....
<---- M99
....
....
Utilizarea instruciunii
M99 P
ntr-un subprogram nseamn sfritul acelui subprogram i execuia programului revine la
blocul programului apelant specificat la adresa P. n acest caz valoarea limit pentru P este
99999.
program principal
O0010
...
...
...
N101 M98 P0011
N250 ...
...
...
subprogram
comentariu
executarea programului O0010
----> O0011
....
....
....
<---- M99 P250
Instruciunea
M99 (P.) L.
va renscrie numrtorul de cicluri al programului apelant. Dac se scrie pentru L valoarea 0,
subprogramul va fi apelat numai o dat. Dac, de exemplu, subprogramul O0011 este apelat
cu instruciunea M98 P11 L20 i se face o revenire cu instruciunea M99 L5, subprogramul
O0011 va fi apelat de 6 ori. (Valorile limit pentru L sunt de la 1 la 9999.)
Not:
- Se afieaz un mesaj de eroare 3070 NOT EXISTING BLOCK NO. P (nu exist blocul
nr. P) cnd numrul blocului de revenire (P) nu este gsit n programul apelant.
76
Folosirea instruciunii
M99 P.
va produce un salt necondiionat la blocul specificat la adresa P a programului principal i
execuia programului va fi continuat de acolo. Folosirea acestei instruciuni poate produce
un ciclu fr sfrit:
O0011
...
...
N128... <---...
|
...
|
M99 P128 ____|
O0011
...
M99 P225 __
...
|
...
|
N225 <----...
77
14 Compensarea sculei
14 Compensarea sculei
14.1 Referirea la valorile de compensare a sculei (H i D)
Se poate face referire la
compensarea lungimii sculei la adresa H,
compensarea razei sculei la adresa D.
Numrul care urmeaz adresa (numrul de compensare a sculei) indic valoarea de
compensare particular care s fie aplicat. Valorile limit ale adreselor H i D sunt cuprinse
ntre 0 i 999.
Tabelul urmtor prezint mprirea memoriei de compensare:
numr compensare
01
02
.
.
.
Cod H
geometrie
-350.200
830.500
uzur
0.130
-0102
.
.
.
Cod D
geometrie
uzur
-32.120
0.012
52.328
-0.008
.
.
.
Numrul compensrii 00 nu este inclus n acest tabel, valorile compensrilor fiind n acest
caz ntotdeauna zero.
Valoarea geometriei lungimea respectiv raza sculei. Este un numr cu semn.
Uzura uzura sculei care apare n decursul prelucrrii. Este un numr cu semn.
De cte ori se face referire n program la o compensare la adresele H sau D , comanda
numeric va lua n calcul pentru compensare suma dintre valoarea geometriei i uzur. Dac
de exemplu, se face referire n program la H2, mrimea compensrii va fi conform tabelului
de mai sus 830.500+(-0.102)=830.398.
Adresele H i D sunt modale, deci comanda numeric va ine cont o anumit valoare pentru
compensare pn cnd se d o alt comand pentru D sau H. Cu alte cuvinte, dup ce s-a citit
valoarea compensrii cu comanda D sau H, valoarea respectiv nu va fi afectat de o
modificare n tabelul valorilor de compensare (de exemplu prin programarea G10).
Valorile de compensare se vor pstra n memorie i dup deconectarea de la reea.
Memoria de compensare poate fi salvat n memorie ca un program pies.
78
14 Compensarea sculei
Mrimea limitelor pentru valorile ofsetului pentru geometrie i pentru uzur sunt:
uniti de
intrare
uniti
de ieire
mm
mm
inci
mm
inci
inci
mm
inci
sistem
increment
valoare geometrie
valoare uzur
IR-A
IR-B
IR-C
IR-A
IR-B
IR-C
IR-A
IR-B
IR-C
IR-A
IR-B
IR-C
0.0199999.99
0.0019999.999
0.0001999.9999
0.0019999.999
0.0001999.9999
0.0000199.99999
0.0019999.999
0.0001999.9999
0.0000199.99999
0.0199999.99
0.0019999.999
0.0001999.9999
0.01163.80
0.00116.380
0.00011.6380
0.0016.448
0.00010.6448
0.000010.06448
0.00116.380
0.00011.6380
0.000010.16380
0.01416.05
0.00141.605
0.00014.1605
unitate
de
msur
mm
inci
inci
mm
Compensrile sculei pot fi selectate i/sau modificate fie de la panoul operatorului din
ecranul OFFSET fie prin program folosind instruciunea G10. Dac se modific
compensarea curent cu comanda G10, trebuie s se fac din nou referire la registrul de
compensare curent D sau H, altfel valoarea modificat nu va fi luat n considerare.
Valorile limit ale adreselor H sau D pentru un anumit sistem de control, adic numarul
compensrilor de lungime sau raz care s fie specificate n comanda numeric, sunt
determinate de ctre configuraia memoriei comenzii numerice. n cazul unei configuraii de
memorie minime, numrul de compensri este 99, adic valorile limit ale adreselor H i D
sunt ntre 0 i 99.
14.2 Modificarea valorilor de compensare a sculei din program (G10)
Instruciunea:
G10 R L P
poate fi folosit pentru modificarea compensrilor sculei din program. G10 este o
instruciune cu o singur aciune. Adresele i valorile lor au urmtoarele semnificaii:
Valoarea compensrii este specificat la adresa R. n cazul G90 (comand de specificare de
dat absolut), valoarea introdus la adresa R va fi transferat registrului de compensare
corespunztor. n cazul G91 (comand de specificare de dat incremental) sau cnd este
aplicat operatorul I, data nscris la adresa R va fi adunat la coninutul registrului de
compensare corespunztor.
Valoarea compensrii care s fie modificat este specificat la adresa L:
L=10: se aplic valorii geometriei la compensarea lungimii (cod H),
L=11: se aplic uzurii la compensarea lungimii (cod H),
L=12: se aplic valorii geometriei la compensarea razei (cod H)
L=13: se aplic uzurii la compensarea razei (cod H).
Numrul valorii compensrii care s fie modificat este precizat la adresa P.
79
14 Compensarea sculei
Cnd ntr-un bloc sunt selectate cteva axe, compensarea lungimii sculei va fi luat n
consideraie pentru fiecare ax selectat:
G44 X120 Z250 H27
Cnd valoarea de compunere este modificat prin apelarea unei noi adrese H, valoarea
anterioar va fi tears i noua valoare va deveni efectiv:
H1=10, H2=20
G90 G00
G43 Z100 H1.......deplasare la Z=110
G43 Z100 H2.......deplasare la Z=120
Efectele instruciunilor G43 i G44 sunt modale pn cnd este primit o nou comand din
acel grup.
Comanda
G49 sau
H00
va anula compensarea lungimii sculei pe fiecare ax cu deplasare dac n bloc a fost
80
14 Compensarea sculei
programat o comand de micare sau cu transformare dac nu este comand de micare.
Diferena dintre cele dou comenzi este c H00 va terge doar compensarea lsnd strile
G43 sau G44 neafectate. Dac n continuare se va face referire la o adres H alta dect 0, se
va impune noua compensare de lungime a sculei n funcie de starea G43 sau G44.
Dac este folosit instruciunea G49, orice
referire la adresa H nu va avea efect pn
cnd nu se va programa G43 sau G44.
La punerea sub tensiune, valoarea definit
n grupul de parametri CODES decide care
cod va fi activ (G43, G44, G49).
Exemplul de mai jos prezint o operaie
simpl de gurire n care se ine cont de
compensarea lungimii sculei:
lungimea sculei de gurire, H1=400
N1
N2
N3
N4
N5
N6 X-800 Y-300
(poziionare n planul X, Y)
(deplasare la Z410 cu H1 compensare de lungime)
(gurire pn la Z100 cu avans F180)
(ntrziere pentru 2 secunde)
(ndeprtarea sculei i anularea compensrii
lungimii; vrful sculei este n punctul x700)
(revenirea cu avans rapid n planul X, Y)
81
14 Compensarea sculei
82
14 Compensarea sculei
Cu programarea G47 (cretere cu dublul valorii ofsetului)
a. comand de deplasare: 20
cazurile b, c, d sunt similare cu cele de la G45
compensare: 5
n cazul n care dup comanda G45G48 n bloc se afl comenzi de deplasare pentru cteva
axe, compensarea rezultant va fi activ pentru fiecare ax programat separat cu valoarea
specificat la D (generat non vectorial).
Dac de exemplu D1=30, comanda G91 G45 G1 X100 Y40 D1 va produce deplasrile
x=130, y=70.
Compensrile rezultante nu pot fi terse cu
o comand G comun (de exemplu G49
pentru compensarea lungimii) sau prin
programarea D00, ci doar cu o comand
G45G48 cu semnificaie opus.
n folosirea G45G48, se poate aplica
doar un cod D, altfel se va afia mesajul de
eroare 3008 ERRONEOUS G45G48
(cod G45G48 eronat).
Dac este programat o deplasare
incremental 0 mpreun cu o comand
G45G48, un semn precednd zeroul va
fi de asemenea interpretat de ctre
comanda numeric dup cum urmeaz:
dac D1=12
83
14 Compensarea sculei
Comand NC
G45 XI0 D1
G46 XI0 D1
G45 XI-0 D1
G46 XI-0 D1
deplasament
x=12
x=-12
x=-12
x=12
O compensare a razei sculei aplicat cu unul din codurile G45G48 este de asemenea
aplicabil la i din cercuri, n cazul n care centrele cercurilor sunt specificate la adresele
I, J sau K.
Un exemplu: D1=10
N1 G91 G46 G0 X40 Y40 D1
N2 G47 G1 Y100 F180
N3 G47 X40
N4 Y-40
N5 G48 X60
N6 Y40
N7 G47 X20
N8 G45 Y0
N9 G46 G3 X40 Y40 I40
N10 G45 G1 X0
N11 G45 Y20
N12 G45 G2 X40 Y40 I40
N13 G45 G1 X120
N14 G46 G0 X40 Y40
84
14 Compensarea sculei
14.5 Compensarea sculei (G38, G39, G40, G41, G42)
Pentru a se putea freza
conturul unei piese cu dou
dimensiuni specificnd n
program punctele acelui contur
la fel ca n desen (indiferent de
dimensiunea sculei folosite),
comanda numeric trebuie s
conduc centrul sculei pe o
traiectorie paralel cu conturul
programat i distanat cu
mrimea razei sculei.
Comanda numeric va
determina distana dintre
traiectoria centrului sculei i
conturul programat n
concordan cu valoarea de
compensare a razei sculei la
care se face referire prin
numrul de compensare D.
Vectorul de compensare este un vector cu dou dimensiuni, calculat de ctre comanda
numeric n fiecare bloc, modificndu-se deplasrile programate cu vectorii de compensare
calculai la nceputul i sfritul fiecrui bloc. Lungimea i direcia fiecrui vector de
compensare obinut variaz cu valoarea de compensare (apelat la adresa D) i cu geometria
de tranziie dintre cele dou blocuri.
Vectorii de compensare sunt calculai n planul selectat cu instruciunile G17, G18, G19.
Acesta este planul de compensare a sculei. Deplasrile n afara acestui plan nu sunt
influenate de compensare. Dac, de exemplu, este selectat planul X, Y n starea G17,
vectorii de compensare vor fi calculai n acest plan. n acest caz orice micare n direcia Z
nu va fi afectat de compensare.
Planul de compensare nu poate fi schimbat n timpul calculrii unei compensri de raz.
Orice ncercare de a face aceasta va determina afiarea mesajului de eroare 3010 PLANE
SELECT. IN G41, G42 (selectare de plan n G41, G42).
Dac trebuie definit un plan de compensare cu axele adiionale,acestea trebuie definite ca axe
paralele n parametri. Dac, de exemplu, U este presupus ca ax paralel i compensarea
razei sculei trebuie aplicat n planul Z, U , planul poate fi selectat prin specificarea
G18 U_Z_.
G40: anulare compensare scul
G41: compensare scul la stnga
G42: compensare scul la dreapta
Comanda G41 sau G42 va impune
calcularea compensrii. n starea G41 sau
G42 contururile programate vor fi urmrite
din partea stng sau respectiv din partea
dreapt (vzut din direcia de micare).
Numrul de compensare al razei sculei
trebuie s fie specificat la adresa D.
85
14 Compensarea sculei
Specificarea D00 este ntotdeauna echivalent cu apelarea valorii zero a razei. Calculele
compensrilor sunt executate pentru micrile de interpolare G00, G01, G02, G03.
Punctele de mai sus se refer la specificarea compensrii pozitive a razei sculei, dar valoarea
ei poate fi i negativ. Aceasta are o semnificaie practic dac, de exemplu, un anumit
subprogram trebuie s fie utilizat pentru definirea conturului unei piese cuprinztoare
(mam) i a piesei cuprinse (tat), care sunt mperecheate. Un mod posibil de a face
acest lucru este s se prelucreze piesa cuprinztoare cu G41 i piesa cuprins cu G42.
Totui, aceast conversie poate fi omis din program atunci cnd piesa cuprinztoare este
prelucrat cu o compensare de raz pozitiv i piesa cuprins cu o compensare de raz
negativ. Acum traiectoria centrului sculei este inversat n raport cu cea programat cu G41
sau G42.
Compensarea razei: Pozitiv
G41
n partea stng
n partea dreapt
G42
n partea dreapt
n partea stng
Not:
- pentru simplificare, descrierile i figurile care urmeaz se vor referi ntotdeauna la
compensare de raz pozitiv.
Comanda G40, sau D00 va anula compensarea de ofset. Diferena ntre cele dou comenzi
este c D00 terge numai vectorul de compensare, lsnd starea G41 sau G42 neschimbat.
Dac dup aceea se face o referire la o adres D diferit de 0, vectorul de compensare va fi
calculat cu noua raz a sculei ca rezultat al funciei strii G41 sau G42.
Dac se folosete instruciunea G40, orice referire la adresa D nu va avea efect pn cnd nu
se programeaz G41 sau G42.
Procedura de impunere i anulare a compensrii de raz este detaliat n paragrafele care vor
urma.
Comenzile G40, G41, G42 sunt modale. Comanda numeric va trece n starea G40 dup
punerea sub tensiune, la terminarea programului sau n eventualitatea resetrii programului,
i n aceste condiii vectorul de compensare este ters.
Instruciunile de compensare a razei vor fi executate de ctre comanda numeric doar n
modul automat. Ele nu sunt active la programarea unui bloc singular n modul manual.
Motivul pentru aceasta este dup cum urmeaz. Pentru a putea calcula vectorul de
compensare n punctul final al blocului (interpolare), comanda numeric trebuie s citeasc
i blocul urmtor care conine micarea n planul selectat. Vectorul de compensare depinde
de tranziia ntre cele dou interpolri. n consecin, trebuie s fie pre-procesate cteva
blocuri (interpolri) pentru calculul unui vector de compensare.
86
14 Compensarea sculei
nainte de a ncepe discuia asupra
detaliilor calculului compensrii,
trebuie introdus o dat auxiliar.
Este vorba de , unghiul de col
ntre dou blocuri consecutive, vzut
dinspre partea piesei. Direcia lui
este funcie de sensul n care merge
scula mprejurul colului: de la
stnga sau de la dreapta.
Comanda numeric va selecta
strategia de a merge n jurul
punctelor de intersecie n funcie de
unghiul . Dac >180 , adic
scula lucreaz n interior, comanda
numeric va calcula un punct de intersecie ntre cele dou interpolri. Dac <180 , adic
scula se mic prin exterior, comanda numeric poate aduga n continuare seciuni drepte.
87
14 Compensarea sculei
(G40)
G40 G01 X_Y_D_
G2 X_Y_R_
88
14 Compensarea sculei
Mergnd prin exteriorul unui col cu unghi obtuz 90 < <180
14 Compensarea sculei
...
G91 G17 G40
...
N110 G42 G1 X-80 Y60 I50 J70 D1
N120 X100
...
Atunci cnd se impune compensarea printr-un bloc special n care nu este programat nici o
micare n planul selectat, compensarea va fi impus fr nici o deplasare, lungimea calculat
a vectorului de compensare este 0. Vectorul de compensare este calculat la sfritul
urmtorului bloc de micare, funcie de strategia corespunztoare compensrii n modul ofset
(vezi capitolul urmtor).
...
N10
N15
N20
N25
...
90
G40 G17 G0 X0 Y0
G42 D1
G1 X80
X110 Y60
14 Compensarea sculei
Dac este programat deplasament 0 (sau acesta rezult) n blocul care conine activarea
compensrii (G41, G42), comanda numeric nu va efectua nici o micare ci va continua
prelucrarea conform cu strategia mai sus menionat.
...
N10
N15
N20
N25
...
G40 G17 G0 X0 Y0
G91 G42 D1 X0
G1 X80
X30 Y60
G40 G17 G0 X0 Y0
G91 G42 D1 X80
G1 X0
X30 Y60
Y60
91
14 Compensarea sculei
14.5.2 Reguli de compensare a sculei n modul ofset
n modul ofset, vectorii de compensare vor fi calculai n mod continuu ntre blocurile de
interpolare G00, G01, G02, G03 (vezi situaiile de baz) pn cndva fi inserat cel puin un
bloc care nu conine deplasamente n planul selectat. Aceast categorie include un bloc
coninnd ntrziere sau funcii.
Situaiile de baz ale modului ofset
Calculul punctului de intersecie pentru col interior 180 <<360
92
14 Compensarea sculei
Se poate ntmpla s nu se obin un punct
de intersecie cu anumite valori ale razei
vrfului sculei. n acest caz comanda
numeric se oprete din execuia
interpolrii precedente i afieaz mesajul
de eroare 3046 NO INTERSECTION G41,
G42 (G41, G42 nu se intersecteaz).
Mergnd prin exteriorul unui col cu unghi obtuz 90 < < 180
93
14 Compensarea sculei
94
14 Compensarea sculei
14.5.3 Anularea modului ofset
Comanda G40 va anula calculul compensrii razei sculei. O astfel de comand se poate da
numai pentru interpolarea liniar. Dac se ncearc programarea G40 ntr-o interpolare
circular comanda numeric va afia mesajul de eroare 3042 G40 IN G2, G3.
Situaii de baz de anulare a modului ofset
(G42)
G01 X_Y_
G40 X_Y_
(G42)
G02 X_Y_R_
G40 G1 X_Y_
Mergnd prin exteriorul unui col cu unghi obtuz 90 < < 180
95
14 Compensarea sculei
96
14 Compensarea sculei
Dac nu este gsit un punct de intersecie, comanda
numeric se va deplasa, n unghi drept, n punctul final
al precedentei interpolri.
97
14 Compensarea sculei
G41
stnga
dreapta
G42
dreapta
stnga
Direcia ofsetului poate fi inversat chiar n timpul calculului compensrii razei sculei.
Aceasta se poate realiza prin programarea G41 sau G42, sau prin apelarea unei compensri a
razei sculei de semn opus la adresa D. Cnd se inverseaz direcia ofsetului, comanda
numeric nu va face verificarea dac aceasta este n afar, va calcula ntotdeauna un punct
de intersecie n primii pai. Figurile urmtoare presupun valori pozitive pentru raza sculei i
treceri de la G41 la G42.
98
14 Compensarea sculei
Dac nu este gsit un punct de intersecie
pentru o tranziie liniar-la-liniar, traiectoria
sculei va fi conform figurii alturate:
99
14 Compensarea sculei
14 Compensarea sculei
Punctele de nceput i de sfrit ale arcului
vor fi date de un vector de lungimea razei
sculei, perpendicular n punctul final al
traiectoriei interpolrii precedente i
respectiv de un vector de lungimea razei
sculei, perpendicular n punctul iniial al
traiectoriei interpolrii urmtoare. G39
trebuie programat ntr-un bloc separat.
...G17 G91 G41...
N110 G1 X100
N120 G39
N130 G3 X80 Y-80 I80
...
Pentru comenzile de imagine n oglind sau rotire selectate anterior este n vigoare vectorul
definit de I, J sau K. De fapt, comanda de modificare la scar nu va afecta direcia. n blocul
G39 nu poate fi programat nici o comand de micare. Comanda numeric va afia mesajul
de eroare 3036 G39 CODE IN G40 ( cod G39 n bloc G40) dac se da o comand G39 n
starea G40 sau n modul de compensare 3D.
101
14 Compensarea sculei
Atunci cnd comanda numeric insereaz una sau mai multe linii drepte ntre dou
interpolri cnd se deplaseaz n jurul unui col, orice alt bloc fr deplasare sau cu
deplasare n afara planului selectat, programat ntre interpolri va fi executat la punctul
final al primei interpolri (indicat cu S n figuri).
Atunci cnd sunt scrise n program dou
interpolri n afara planului selectat sau dou
blocuri care nu conin interpolri, comanda
numeric va impune un vector de ofset
perpendicular n punctul final al ultimei
interpolri executate n planul selectat i
traiectoria va fi distorsionat:
...G17 G42 G91...
N110 G1 X50 Y70
N120 G4 P2
N130 S400
N140 X60
...
102
14 Compensarea sculei
Dac nu se poate face o prelucrare pe direcia Z fr ca s fie
impus compensarea razei, se poate adopta urmtoarea
procedur:
...G17 G91...
N110 G41 G0 X50 Y70 D1
N120 G1 Z-40
N130 Y40
...
n continuare se va descrie traiectoria sculei atunci cnd ntre dou interpolri se insereaz
instruciunile:
G22, G23, G52, G54-G59, G92
G53
G28,G29,G30
103
14 Compensarea sculei
Atunci cnd se programeaz comanda G22, G23, G52, G54-G59 sau G92 n modul ofset
ntre dou blocuri de interpolare, vectorul de compensare va fi ters la punctul final al
interpolrii anterioare, comanda va fi executat i vectorul va fi reconstituit la punctul final
al urmtoarei interpolri. Dac interpolarea anterioar sau cea care urmeaz este o interpolare
circular, va fi afiat mesajul de eroare 3041 AFTER G2, G3 ILLEG. BLOCK (bloc nepermis
dup G2, G3).
De exemplu:
...G91 G78 G41...
N110 G1 X80 Y-50
N120 G92 X0 Y0
N130 X80 Y50
...
Dac este programat comanda G53 n modul ofset ntre dou interpolri, vectorul de
compensare va fi ters la punctul final al blocului anterior, se va executa poziionarea n G53
i vectorul va fi reconstituit la punctul final al urmtoarei interpolri (alta dect G53). Dac
interpolarea anterioar sau cea care urmeaz este o interpolare circular, va fi afiat mesajul
de eroare 3041 AFTER G2, G3 ILLEG. BLOCK (bloc nepermis dup G2, G3).
De exemplu:
...G91 G17 G41...
N110 G1 X80 Y-50
N120 G53 Y80
N130 G53 Y0
N140 X80 Y50
...
Dac este programat comanda G28 sau G30 (urmat de G29) ntre dou blocuri n modul
ofset, vectorul de compensare va fi ters la punctul final al blocului care poziioneaz scula
n punctul intermediar, scula se va mica n punctul de referin i vectorul va fi reconstituit
la punctul final al blocului de revenire G29.
De exemplu:
...G91 G17 G41...
N110 G1 X80 Y-50
N120 G28 Y80
N130 G29 Y0
N140 X80 Y50
...
104
14 Compensarea sculei
n modul ofset se poate de asemenea
apela o valoare nou de compensare
la adresa D. n eventualitatea
inversrii semnului razei, direcia de
micare de-a lungul conturului va fi
inversat (vezi i mai nainte). Altfel,
va fi aplicabil urmtoarea procedur.
Vectorul de compensare va fi calculat
cu noua valoare a razei la punctul
final al interpolrii, n care a fost
programat noua adres D. Deoarece
vectorul de compensare a fost
calculat cu valoarea anterioar a razei n punctul de nceput al acelui bloc, traiectoria
centrului sculei nu va fi paralel cu traiectoria programat.
De asemenea, o valoare nou pentru compensarea razei poate fi apelat la adresa D i ntr-o
interpolare circular, totui, de aceast dat, centrul sculei se va deplasa de-a lungul unui arc
cu raz variabil.
Un caz special pentru cele discutate anterior este anularea sau impunerea compensrii cu
D00 sau respectiv Dnn, atunci cnd suntem n modul ofset. Avei n vedere diferena ntre
traiectoriile sculei cu referire la urmtorul exemplu, n care compensarea este impus cu G41
sau G42 i anulat cu G40, sau cnd compensarea este impus i anulat prin programarea D.
105
14 Compensarea sculei
Se poate folosi de asemenea i un detaliu de program sau subprogram pentru a prelucra una
din piesele unui ansamblu: cea cuprins folosind compensare de raz pozitiv, respectiv
piesa cuprinztoare folosind
compensare de raz negativ, i
viceversa. S revedem urmtorul
detaliu de program:
...
N020
N030
N040
N050
N060
...
G42 G1 X80 D1
G1 Z-5
G3 I-80
G1 Z2
G40 G0 X0
106
14 Compensarea sculei
Cnd modul ofset este anulat prin programarea I,
J, K, va rezulta o condiie similar:
...G18 G90 G41...
N090 G1 X30
N100 G2 J-60
N110 G40 G1 X120 Y180 I-60 J-60
...
107
14 Compensarea sculei
n cazul prezentat n figur, dup ce s-au calculat
punctele de intersecie, se va obine o traiectorie a sculei
invers fa de cea programat n execuia interpolrii
N2. Aria haurat indic faptul c scula taie din pies.
Pentru a se evita aceasta, comanda numeric execut o verificare a interferenei atunci cnd
parametrul INTERFER este impus 1. Acum comanda numeric va verifica dac condiia
-90 < < +90 este ndeplinit pentru unghiul cuprins ntre deplasamentul programat i
cel compensat cu raza. Cu alte cuvinte comanda numeric va verifica dac vectorul de
deplasament compensat are
sau nu o component
opus vectorului de
deplasament programat.
Dac parametrul ANGAL este impus 1, dup verificarea unghiului comanda numeric va
afia un mesaj de eroare de interferen 3048 INTERFERENCE ALARM cu un bloc nainte
de apariia problemei.
108
14 Compensarea sculei
Dac parametrul ANGAL este impus 0, comanda numeric nu va afia mesajul de eroare, dar
va ncerca n mod automat s corecteze conturul pentru a evita tierea din pies. n
continuare se va descrie procedura de compensare.
Fiecare din blocurile A, B i C sunt n modul ofset. Vectorii calculai ntre blocurile A i B
sunt
mesaj de eroare.
Este evident din cele de mai sus c vectorii de compensare sunt mperecheai la nceputul i
la sfritul punctelor de interpolare B i vor fi ignorai n perechi. Dac numrul de vectori
de compensare pe o parte este 1 (sau se reduce la 1), vor fi omii doar vectorii de pe cealalt
14 Compensarea sculei
.
109
parte. Procedura de omitere va fi executat att timp ct interferena persist. Primul vector
de compensare din punctul de pornire al interpolrii B i ultimul vector din punctul final nu
pot fi ignorai. Dac, drept rezultat al omisiunii, este eliminat interferena, nu se va afia un
mesaj de eroare, dar n celelalte cazuri se va afia mesajul 3048 INTERFERENCE ALARM.
Vectorii de compensare rmai dup fiecare omisiune vor fi interconectai ntotdeauna prin
linii drepte chiar dac interpolarea B este circular.
Este evident din exemplul de mai sus c execuia interpolrii A nu va fi nceput pn cnd
nu s-a verificat pentru interferene interpolarea B. Pentru aceasta, i blocul C trebuie introdus
n bufer i trebuie calculai i vectorii de compensare pentru tranziia B C.
Mai jos se vor descrie cteva cazuri tipice de interferen:
Frezarea unei trepte mai mici dect
raza sculei. Comanda numeric
afieaz mesajul de eroare 3048
INTERFERENCE ALARM sau altfel
va tia din pies.
14 Compensarea sculei
110
Uneori scula nu va tia efectiv din pies, dar verificarea de interferen indic o eroare.
Dac se prelucreaz un canal mai mic dect
raza de compensare, nu se va tia din pies
mai mult (vezi figura), totui comanda
numeric va afia mesajul de eroare 3048
INTERFERENCE ALARM deoarece
direcia de deplasare n lungul traiectoriei
de interpolare compensate B este opus
celei programate.
14 Compensarea sculei
.
111
14 Compensarea sculei
112
Comanda
G40 sau
D00
va anula compensarea de ofset tridimensional.
Diferena ntre cele dou comenzi este c D00 va terge doar compensarea, pstrndu-se
starea G41 sau G42 neschimbat. Dac dup aceea se face referire la o nou adres D
(alta dect zero), noua compensare a sculei va fi impus n funcie de starea G41 sau G42.
Dac este folosit instruciunea G40, orice referire la adresa D nu va avea nici un efect pn
cnd nu se va programa G41 sau G42.
Calculul compensrii poate fi impus (G41, G42) sau anulat (G40 sau D00) numai ntr-un
bloc de micare liniar (G00 sau G01).
Strile G40, G41, G42 sunt modale. La punerea sub tensiune comanda numeric trece n
starea G40.
14.6.2 Vectorul de ofset tridimensional
Comanda numeric va genera componentele vectorilor de compensare n modul urmtor:
Trecerea din starea G41 n G42 sau invers se poate face numai ntr-un bloc de interpolare
liniar.
Valorile anterioare vor fi modale dac fiind impus compensarea tridimensional a sculei
ntr-o interpolare I, J i K sunt toate omise.
Nu este posibil impunerea simultan a compensrii tridimensionale i a compensrii de raz
bidimensionale.
15 Transformri speciale
114
15 Transformri speciale
15.1 Rotaia sistemului de coordonate (G68, G69)
O form programat poate fi rotit n planul selectat cu G17, G18, G19 prin folosirea
comenzii
G68 p q R
Coordonatele centrului de rotaie vor fi specificate la
adresa p i q. Comanda numeric va interpreta doar
data scris la coordonatele p i q ale planului selectat.
Datele de coordonat p i q sunt interpretate ca i
coordonate rectangulare chiar i atunci cnd este
impus specificarea de coordonate polare. Folosind
G90, G91 sau operatorul I, coordonatele p i q ale
centrului de rotaie pot fi specificate ca date absolute
sau incrementale.
n cazul n care una sau ambele valori pentru p i q nu
sunt introduse, va fi considerat ca centru de rotaie
poziia instantanee a axei.
15 Transformri speciale
.
115
Exemplu:
N1 G17 G90 G0 X0 Y0
N2 G68 X90 Y60 R60
N3 G1 X60 Y20 F150
(G91 X60 Y20 F150)
N4 G91 X80
N5 G3 Y60 R100
N6 G1 X-80
N7 Y-60
N8 G69 G90 X0 Y0
15 Transformri speciale
116
Exemplu:
N1 G90 G0 X0 Y0
N2 G51 X60 Y140 P0.5
N3 G1 X30 Y100 F150
(G91 X30 Y100 F150)
N4 G91 X100
N5 G3 Y60 R100
N6 G1 X-100
N7 Y-60
N8 G50 G90 X0 Y0
15 Transformri speciale
.
117
Exemplu:
subprogram
O0101
N1 G90 G0 X180 Y120 F120
N2 G1 X240
N3 Y160
N4 G3 X180 Y120 R80
N5 M99
program principal
O0100
N1 G90 (specificare de coordonat absolut)
N2 M98 P101 (apel de subprogram)
N3 G51.1 X140 (imagine n oglind aplicat unei axe paralele cu axa
Y la coordonata X=140)
N4 M98 P101 (apel de subprogram)
N5 G51.1 Y100 (imagine n oglind aplicat unei axe paralele cu axa
X la coordonata Y=100)
N6 M98 P101 (apel de subprogram)
N7 G50.1 X0 (anulare imagine n oglind pe axa paralel cu Y)
N8 M98 P101 (apel de subprogram)
N9 G50.1 Y0 (anulare imagine n oglind pe axa paralel cu X)
modificare la scar-rotaie
N1 G90 G17 G0 X0 Y0
N2 G68 X80 Y40 R60
N3 G51 X130 Y70 P0.5
N4 X180 Y40
N5 G1 Y100 F200
N6 X80
N7 Y40
N8 X180
N9 G50
N10 G69 G0 X0 Y0
N1 G90 G17 G0 X0 Y0
N2 G51 X130 Y70 P0.5
N3 G68 X80 Y40 R60
N4 X180 Y40
N5 G1 Y100 F200
N6 X80
N7 Y40
N8 X180
N9 G69
N10 G50 G0 X0 Y0
15 Transformri speciale
118
Este evident din figura de mai sus faptul c ordinea de aplicare a diferitelor transformri are
importan.
Imaginea n oglind programat este un caz diferit. Ea poate fi activat doar n strile G50 i
G69 adic n absena comenzilor de modificare la scar i de rotaie.
Pe de alt parte, n starea activ a comenzii de imagine n oglind se pot activa att comanda
de modificare la scar ct i cea de rotaie.
Imaginea n oglind nu se poate suprapune peste comenzile de modificare la scar i de
rotaie.
n consecin trebuie anulate n ordinea corect mai nti rotaia i apoi modificarea la scar,
iar apoi dezactivat imaginea n oglind:
G51.1
G51
G68
G69
G50
G50.1
(dezactivare rotaie)
(dezactivare modificare la scar)
(dezactivare imagine n oglind)
.
119
G1 Y40 ,C10
X60 ,R22
G3 X20 Y80 R40 ,C10
G1 Y110
120
n formulele de mai sus Xp, Yp, Zp indic axele X, Y, Z sau pe cele paralele cu acestea, n
timp ce q reprezint o ax opional n afara planului selectat. Specificaiile de la adresa ,A
pot fi folosite i dup codurile G0 i G1. Unghiul este msurat de la prima ax a planului
selectat i direcia pozitiv este antiorar. Valoarea ,A poate fi att pozitiv ct i negativ,
mai mare de 360 sau mai mic de 360 .
121
Exemplu:
G17 G90 G0 X57.735 Y0 ...
G1 G91...
X100 ,A30 (aceast specificaie
este echivalent cu
X100 Y57.735 unde
7.735=100*tg30)
Y100 ,A120 (aceast specificaie
este echivalent cu
X-57.735 Y100 unde
-57.735=100/tg120)
X-100 ,A210 (aceast specificaie
este echivalent cu
X-100 Y-57.735 unde
-57.735=-100*tg30)
Y-100 ,A300 (aceast specificaie
este echivalent cu
X57.735 Y-100 unde
57.735=-100/tg120)
Note.
- Se poate defini ntr-un bloc o linie dreapt prin unghi, mpreun cu o teitur sau o rotunjire
de col. Exemplu:
X100 ,A30 ,C5
Y100 ,A120 ,R10
X-100 A210
- Specificarea unghiului la adresa ,A se poate aplica i la ciclurile de gurire. n acest caz este
recunoscut n cursul executrii poziionrii n planul selectat.
De exemplu blocul:
G81 G91 X100 ,A30 R-2 Z-25
122
Intersecia este calculat ntotdeauna n planul selectat de G17, G18, G19. Primul bloc (N1)
este specificat fie cu ajutorul unghiului su (,A1), n acest caz este dus o linie dreapt n
unghiul respectiv din punctul iniial pn n punctul de intersecie, sau printr-un poziie
opional, alta dect punctul iniial al liniei drepte (X1, Y1; X1, Z1; sau Y1, Z1). n acest caz
intersecia este calculat cu linia dreapt care trece prin ambele puncte. Coordonatele date n
al doilea bloc (N2) sunt interpretate ntotdeauna de ctre comanda numeric ca date absolute
(G90).
123
De exemplu:
(G17) G90 G41 D0...
G0 X90 Y10
N10 G1 ,A150
N20 X10 Y20 ,A225
G0 X0 Y20
...
De notat c n acest caz coordonata X, Y (X50 Y33.094) dat n blocul N10 nu e recunoscut
de comanda numeric drept punct final, ci ca punct de tranziie care unete linia dreapt cu
punctul iniial.
Calculul interseciei poate fi combinat de asemenea cu specificare de teire sau rotunjire de
col. Exemplu:
n exemplele de mai sus mrimea teirii este msurat de la intersecia calculat, iar
rotunjirea este inserat n intersecia calculat.
124
Intersecia se calculeaz ntotdeauna n planul selectat cu G17, G18, G19. Primul bloc (N1)
este specificat fie prin unghiul su (,A), n acest caz este dus o linie dreapt din punctul
iniial n punctul de intersecie sub unghiul corespunztor, sau prin specificarea unui punct
opional, altul dect punctul iniial al liniei drepte (X1, Y1; X1, Z1; sau Y1, Z1). n acest caz
este calculat intersecia cu linia dreapt care trece prin ambele puncte. Coordonatele date n
al doilea bloc (N2) i de asemeni coordonatele I, J, K care definesc centrul arcului, sunt
interpretate ntotdeauna de ctre comanda numeric ca date absolute (G90). Se poate
specifica la adresa Q care dintre cele dou intersecii rezultante s fie calculat.
Dac valoarea adresei este mai mic dect zero (Q<0), este calculat cea mai apropiat
intersecie n direcia liniei drepte, iar dac valoarea adresei este mai mare dect zero
(Q>0), este calculat cea mai ndeprtat intersecie n direcia liniei drepte. Direcia de
micare de-a lungul liniei drepte este determinat de ctre unghi.
125
%O9981
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N20 G1 X-30 Y-20
N30 G3 X20 Y40 I20 J-10 R50 Q-1
N40 G40 G0 Y60
N50 X120
N60 M30
%
%O9982
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N20 G1 X-30 Y-20
N30 G3 X20 Y40 I20 J-10 R50 Q1
N40 G40 G0 Y60
N50 X120
N60 M30
%
Blocul circular N30 G3 este determinat, fiind specificate att coordonatele centrului (I20
J-10 n valoare absolut) ct i raza cercului (R50), comanda numeric va calcula intersecia
liniei drepte date n blocul N20 cu cercul dat n blocul N30. n programul O9981 se
calculeaz cea mai apropiat intersecie n direcia liniei drepte deoarece este dat Q-1 n
blocul circular N30.
Calcului interseciei liniar circular poate fi combinat cu specificarea teirii sau rotunjirii
colului. Exemplu:
%O9983
N10 G17 G42 G0 X100 Y20 D0 S200 M3
N20 G1 X-30 Y-20 ,R15
N30 G3 X20 Y40 I20 J-10 R50 Q-1
N40 G40 G0 X60
N50 X120
N60 M30
%
126
Intersecia se calculeaz ntotdeauna n planul selectat cu G17, G18, G19. n primul bloc
(N1) este specificat cercul fie printr-un punct opional (X1, Y1; X1, Z1; sau Y1, Z1) i
coordonatele punctului de centru (I J; I K; sau J K) fie prin coordonatele punctului de centru
i a razei (R). n al doilea bloc (N2) este determinat linia dreapt, adic sunt date
coordonatele punctului final (X2, Y2; X2, Z2; sau Y2, Z2) i unghiul (,A) liniei drepte.
Coordonatele punctului final al liniei drepte sunt interpretate ntotdeauna de ctre comanda
numeric ca date absolute (G90). La adresa ,A trebuie specificat unghiul vectorului liniei
drepte ndreptat de la intersecia rezultant ctre punctul final, pentru c altfel pot apare
micri inverse fa de cele programate. Se poate specifica la adresa Q care dintre cele dou
intersecii rezultante s fie calculat.
Dac valoarea adresei este mai mic dect zero (Q<0, de exemplu Q-1), este calculat
cea mai apropiat intersecie n direcia liniei drepte, iar dac valoarea adresei este mai
mare dect zero (Q>0, de exemplu Q1), este calculat cea mai ndeprtat intersecie n
direcia liniei drepte. Direcia de micare de-a lungul liniei drepte este determinat de
ctre unghi.
127
%O9983
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50
N40 G1 X-50 Y42.857 ,A171.87 Q-1
N50 G40 G0 Y70
N60 X90
N70 M30
%
%O9984
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50
N40 G1 X-50 Y42.857 ,A171.87 Q1
N50 G40 G0 Y70
N60 X90
N70 M30
%
Blocul liniar N40 este complet definit, deoarece sunt specificate att coordonatele punctului
final (X-50 Y42.875) ct i unghiul ( ,A171.87). Prin urmare coordonatele X-50 Y0 ale
cercului programat n blocul anterior N30 nu sunt referite ca i coordonate ale punctului
final, ci doar ca punct care este intersectat de ctre cerc i punctul final este intersecia
calculat. n programul nr. O9983 se calculeaz cea mai apropiat intersecie n direcia liniei
drepte (Q-1), iar n O9984 este specificat cea mai ndeprtat intersecie (Q1)
Calcului interseciei liniar circular poate fi combinat cu specificarea teirii sau rotunjirii
colului. Exemplu:
%O9983
N10 G17 G0 X90 Y0 M3 S200
N20 G42 G1 X50 D0
N30 G3 X-50 Y0 R50 ,R15
N40 G1 X-50 Y42.875 ,A171.87 Q-1
N50 G40 G0 Y70
N60 X90
N70 M30
%
128
Intersecia este calculat ntotdeauna n planul selectat de G17, G18, G19. Primul bloc (N1)
este specificat fie prin coordonatele centrului (I1 J1; I1 K1; sau J1 K1) fie cu raza cercului (R1).
n acest bloc interpretarea coordonatei centrului corespunde specificrii implicite a cercului,
adic este distana relativ de la punctul de pornire. Coordonatele date n cel de al doilea bloc
(N2), adic coordonatele I, J, K care definesc centrul cercului, sunt interpretate
ntotdeauna de ctre comanda numeric ca date absolute (G90). Se poate specifica la adresa
Q care dintre cele dou intersecii rezultante s fie calculat. Dac valoarea adresei este mai
mic dect zero (Q<0, de exemplu Q-1), este calculat prima intersecie, iar dac valoarea
adresei este mai mare dect zero (Q>0, de exemplu Q1), este calculat cea de a doua.
Prima intersecie este aceea care este intersectat prima mergnd n sens orar
(independent de direcia programat G2, G3).
129
%O9985
N10 G17 G54 G0 X200 Y0 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50
N40 X90 Y87.446 I50 J50 R70 Q1
N50 G40 G0 Y100
N60 X200
N70 M30
%
%O9986
N10 G17 G54 G0 X200 Y10 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50
N40 X90 Y87.446 I50 J30 R70 Q1
N50 G40 G0 Y100
N60 X200
N70 M30
%
Blocul circular N40 este definit, deoarece sunt specificate att coordonatele centrului (I50
J30 n valoare absolut) ct i raza cercului (R70). Prin urmare coordonatele X-80 Z130 ale
cercului programat n blocul anterior N30, nu sunt referite ca i coordonate ale punctului
final, ci doar ca punct care este intersectat de ctre cerc i punctul final este intersecia
calculat. n programul nr. O9985 este specificat cea mai apropiat intersecie n sens orar
(Q-1), iar n O9986 este specificat cea mai ndeprtat intersecie (Q1)
Calculul interseciei circular circular poate fi combinat cu specificarea teirii sau rotunjirii
colului. Exemplu:
%O9986
N10 G17 G54 G0 X200 Y10 M3 S200
N20 G42 G1 X180 D1
N30 G3 X130 Y-40 R-50 ,R20
N40 X90 Y87.446 I50 J30 R70 Q1
N50 G40 G0 Y100
N60 X200
N70 M30
%
130
%O9984
N10 G17 G54 G0 G42 X230 Y20 D1 F300 S500 M3
N20 G1 X170 Y50
N30 G3 X110 Y10 I150 J40 R50 Q-1
N40 X60 Y70 I100 J70 R40 Q1
N50 G1 X80 Y60 ,A135 Q1
N60 X10 Y108 ,A180
N70 G40 G0 Y130
N80 X240
N90 M30
%
n exemplul de mai sus, blocurile N30, N40, N50, N60 sunt determinate. Blocul liniar N20
nu este dus n punctul su final programat (X170 Y50) deoarece blocul circular N30 este
definit, adic adresele I, J, R sunt completate i intersecia care trebuie cutat este dat la
adresa Q. Nici blocul N30 nu este dus n punctul su final programat (X110 Y10) deoarece
blocul circular N40 este de asemenea definit. Ultimul bloc determinat n program este blocul
liniar N60. Deoarece urmtorul bloc liniar N70 nu este definit, coordonatele X10 Y108
programate n blocul N60 nu sunt referite ca punct de intersecie al liniei drepte ci ca punct
de coordonate final al blocului N60.
n general este adevrat c punctele de coordonate al blocurilor liniare i circulare
determinate n planul selectat sunt referite de ctre comanda numeric ca puncte de
coordonate finale doar dac nu sunt urmate de un bloc definit.
131
Operaiile de mai sus dau o vedere general asupra ciclului de gurire; n anumite
circumstane anumite operaii se pot omite.
Un ciclu de gurire are un plan de poziionare i o ax de gurire. Planul de poziionare i
axa de gurire vor fi selectate cu instruciunile de selectare a planului G17, G18, G19.
Cod G Plan de poziionare Axa de gurire
132
G17
Planul Xp Yp
Zp
G18
Planul Zp Xp
Yp
G19
Planul Yp Zp
Xp
de gurire.
Punct iniial:
Punctul iniial este poziia axei selectate pentru gurire; el va fi nregistrat
- Cnd este impus modul ciclu. De exemplu, n cazul
N1 G17 G90 G0 Z200
N2 G81 X0 Y0 Z50 R150
N3 X100 Y30 Z80
135
ntruct datele de gurire au fost specificate n blocul N2 i sunt folosite neschimbate n N3,
nu mai trebuie completate din nou, adic se poate omite G81, Z_, R_, F_. Poziia gurii este
variat doar n direcia X, scula se mic n acea direcie i va guri aceeai gaur ca n
blocul N2.
N4 G82 Y_ Z_
P_
Modul ciclu i variabilele modale ale ciclului (cu excepia F) vor fi terse.
N6 G85 Y_ Z_ R_ P_ M3
Deoarece datele de gurire au fost terse n blocul N5 cu comanda G80, trebuie specificate
din nou valorile Z, R i P.
N7 G0 X_ Y_
Modul ciclu i variabilele modale ale ciclului (cu excepia F) vor fi terse.
136
137
138
Acest ciclu poate fi folosit doar cu un tarod cu resort. Variabilele utilizate sunt:
G17 G74 Xp__ Yp__ Zp__ R__ (P__) F__ L__
G18 G74 Zp__ Xp__ Yp__ R__ (P__) F__ L__
G19 G74 Yp__ Zp__ Xp__ R__ (P__) F__ L__
nainte de a se porni ciclul, arborele trebuie pornit sau programat s se roteasc n direcia lui
M4 (sens antiorar).
Valoarea avansului trebuie specificat n conformitate cu pasul filetului tarodului.
- n starea G94 (avans pe minut):
F=P*S
unde
139
Ciclul G76 este aplicabil doar cnd maina unealt este prevzut cu facilitatea de orientare
arbore. n aceste caz parametrul ORIENT1 trebuie s fie impus 1, altfel este afiat mesajul
ERROR IN G76.
ntruct n punctul de fund ciclul execut orientarea arborelui i ndeprteaz scula de pe
suprafaa prelucrat cu valorile specificate la I, J i K, piesa nu va fi zgriat atunci cnd
scula se retrage.
Variabilele folosite n ciclu sunt:
G17 G76 Xp__ Yp__ I__ J__ Zp__ R__ P__ F__ L__
G18 G76 Zp__ Xp__ K__ I__ Yp__ R__ P__ F__ L__
G19 G76 Yp__ Zp__ J__ K__ Xp__ R__ P__ F__ L__
Comanda M3 trebuie transmis nainte de pornirea ciclului.
Operaiile ciclului sunt:
1.
poziionare cu avans rapid n planul selectat
2.
3.
deplasare cu avans rapid n punctul R
4.
5.
gurire pn n punctul Z, cu avansul F
6.
- ntrziere cu valoarea specificat la adresa P
- orientare arbore (M19)
- retragere scul cu avans rapid cu valorile I, J, K n planul selectat
7.
cu G99, retragere n punctul R, cu avans rapid
8.
cu G99,
- retragere scul cu avans rapid n planul selectat, invers fa de valorile
specificate la I, J, K
- arbore repornit n direcia M3
9.
cu G98, retragere n punctul iniial, cu avans rapid
10.
cu G98,
- retragere scul cu avans rapid n planul selectat, invers fa de valorile
specificate la I, J, K
- arbore repornit n direcia M3
140
141
142
144
145
147
148
149
150
151
152
153
P_
I_ Q_
154
18 Funcii de msurare
18 Funcii de msurare
18.1 Funcia de salt (G31)
Instruciunea
G31 v (F) (P)
pornete interpolarea liniar ctre punctul cu coordonata v. Micarea se execut pn cnd se
primete un semnal extern de salt (de exemplu cel de la un sesizor de atingere) sau se ajunge
la poziia final specificat la coordonata lui v. Comanda numeric va ncetini i apoi va opri
micarea dup sosirea semnalului de salt.
Adresa P specific o intrare de semnal de salt dintre cele patru disponibile, care s fie
folosit n timpul micrii:
P0: Folosete semnalul de salt 0
P1: Folosete semnalul de salt 1
P2: Folosete semnalul de salt 2
P3: Folosete semnalul de salt 3
Dac adresa P nu este specificat, comanda numeric preia semnalul de salt 1.
G31 nu este o instruciune modal, ea se aplic doar n blocul n care a fost programat. Dac
instruciunea G31 conine o eroare de sintax se afieaz mesajul de eroare:
3051 G22, G28, G31, G37.
Viteza de micare este:
- valoarea F specificat sau modal dac parametrul SKIPF=0
- valoarea avansului preluat din G31FD dac parametrul SKIPF=1.
n momentul n care sosete semnalul
extern, se va memora poziia axelor n
variabilele de sistem specificate mai jos:
# 5061..poziia axei 1
# 5062..poziia axei 2
.
.
# 5068..poziia axei 8
18 Funcii de msurare
Interpolarea poate fi executat doar n starea G40. Programarea G31 n starea G41 sau G42
produce afiarea mesajului de eroare 3054 G31 IN INCORRECT STATE (G31 n stare
incorect). Acelai mesaj de eroare este afiat cnd este activ una dintre strile G95, G51,
G51.1, G68 sau G16.
Valoarea specificat la coordonatele v poate fi incremental sau absolut. Dac comanda de
micare care urmeaz dup blocul G31 este specificat n coordonate incrementale, micarea
va fi calculat din punctul unde a sosit semnalul de salt i s-a oprit micarea.
De exemplu:
N1 G31 G91 X100
N2 X30 Y50
18 Funcii de msurare
n afara domeniului ALADIST (specificat n parametri) al poziiei q prevzute.
Dac msurtoarea este ndeplinit cu succes i semnalul sesizorului de atingere a sosit n
punctul de coordonat Q, comanda numeric va executa:
- adunarea diferenei Q-q la registrul de compensare a uzurii selectat anterior la adresa H
(dac parametrul ADD=1), sau
- scderea diferenei din acesta (dac parametrul ADD=0)
Anterior nceperii msurtorii trebuie impus valoarea H corespunztoare i compensarea
lungimii.
- G37 este o instruciune cu o singur aciune.
- Ciclul G37 va fi executat n mod invariabil n sistemul de coordonate al piesei n lucru.
- Parametrii RAPDIST i ALADIST au ntotdeauna valori pozitive.
Condiia RAPDIST > ALADIST trebuie satisfcut pentru cei doi parametri.
- n cazul unei erori de sintax va fi afiat mesajul de eroare 3051 G22, G28, G31, G37.
- Codul G referitor la lungimea de compensare (G43, G44, G49) nu poate fi specificat n
blocul G37, altfel va fi afiat mesajul de eroare 3055 G37 IN INCORRECT STATE (G37
n stare incorect).
- Acelai mesaj de eroare va fi afiat dac este activ una din strile G51, G51.1, G68 sau
G16.
- Mesajul de eroare 3103 OUT OF RANGE (depire domeniu) este afiat pe durata execuiei
funciei G37 dac semnalul sesizorului de atingere sosete n afara domeniului ALADIST al
poziiei finale programate n interpolarea G37.
157
19 Funcii de siguran
19 Funcii de siguran
19.1 Verificarea programabil a cursei (G22,G23)
Instruciunea
G22 X Y Z I J K P
va interzice intrarea sculei n aria interzis. Semnificaiile adreselor sunt:
X:
Limita pe axa X n direcia pozitiv
I:
Limita pe axa X n direcia negativ
Y:
Limita pe axa Y n direcia pozitiv
J:
Limita pe axa Y n direcia negativ
Z:
Limita pe axa Z n direcia pozitiv
K:
Limita pe axa Z n direcia negativ
Pentru datele specificate trebuie ndeplinite urmtoarele condiii:
X>I, Y>J, Z>K
La adresa P se poate selecta dac aria este interzis n interior sau n exterior.
P=0, aria selectat este interzis n interior.
P=1, aria selectat este interzis n exterior.
Instruciunea
G23
va anula funcia de verificare programabil a cursei, scula putnd s intre n aria selectat
anterior. Instruciunile G22, G23 vor rescrie direct parametrii respectivi.
Instruciunile G22 i G23 vor impune parametrul STRKEN la 1, respectiv la 0.
Instruciunile G22 P0 i G22 P1 vor impune parametrul EXTER la 1, respectiv la 0.
Coordonatele X, Y, Z n instruciunea G22 vor scrie parametrii LIMP2n referitori la axele
respective, coordonatele I, J, K vor impune parametrii LIMP2n referitori la axele respective.
nainte de a fi nscrise la parametrii respectivi, coordonatele din instruciunea G22 vor fi
convertite n sistemul de coordonate al mainii, avnd incluse i compensrile de ofset
selectate. Astfel, de exemplu, dac este impus compensarea de lungime pe direcia Z atunci
cnd este specificat instruciunea G22, datele limit ale coordonatelor specificate pentru
158
19 Funcii de siguran
acea ax vor limita micarea oprind vrful sculei la limit. Dac totui nu este impus
compensarea, punctul de referin al suportului sculei nu va fi admis n aria interzis. Este
recomandabil s impunem marginea ariei interzise la axa sculei, pentru cea mai lung scul.
- Funcia de verificare programabil a cursei nu este disponibil pentru axele adiionale.
- Instruciunile G22, G23 trebuie s fie specificate n blocuri independente.
- Funcia de verificare programabil a cursei va fi efectiv dup efectuarea ntoarcerii n
punctul de referin.
- Dac maina intr ntr-o arie interzis dup efectuarea ntoarcerii n punctul de referin sau
ca rezultat al programrii G22 i aria este interzis la interior, interdicia trebuie s fie
ridicat manual prin programarea G23; axa/axele trebuie s fie deplasate manual cu JOG
i trebuie impus din nou verificarea cursei prin programarea G22. n cazul unei arii
interzise extern, procedura de ieire din arie va fi la fel ca aceea care se face pentru
acionarea limitatorilor de fine curs.
- Dac pe o ax se atinge marginea ariei interzise n micare, se poate executa retragerea de
acolo prin deplasare manual (ntr-unul din modurile manuale).
- Dac X=I, Y=J, Z=K i E=0 atunci este disponibil ntreaga arie.
- Dac X=I, Y=J, Z=K i E=1 atunci este interzis ntreaga arie.
- Dac aria este interzis interior i axele intr n aria interzis sau i ating marginea, se
afieaz mesajul de eroare 1400 INTERNALLY FORBIDEN AREA (arie interzis interior).
- Dac aria este interzis exterior i axele intr n aria interzis sau i ating marginea, se
afieaz mesajul de eroare FORBIDEN AREA t+ sau FORBIDEN AREA t- (arie interzis)
unde t este numele axei.
19.2 Poziiile de sfrit de curs parametrice
Folosind parametrii comenzii numerice, constructorul mainii unealt poate defini pentru
fiecare ax poziiile de sfrit de curs care sunt limitele de curs permise pentru o anumit
main. La atingerea marginii acelei arii, comanda numeric va afia un mesaj de eroare ca i
cnd ar fi clcat un limitator.
- Funcia de sfrit de curs parametric
este executat numai dup ce s-a fcut
ntoarcerea n punctul de referin.
- Funcia de sfrit de curs parametric
va interzice ntotdeauna o arie extern.
- Ariile de verificare programabil a
cursei i de funcie de sfrit de curs
se pot suprapune parial.
159
19 Funcii de siguran
160
20 Macro utilizator
20 Macro utilizator
20.1 Apelul macro simplu (G65)
Ca rezultat al instruciunii
G65 P(numr program) L(numr de repetri) <atribuire argument>
corpul de macro utilizator (program) specificat la adresa P (numr program) va fi apelat de
attea ori ct este specificat la adresa L.
Corpului macro i pot fi atribuite argumente. Acestea sunt valori numerice atribuite adreselor
definite, care sunt stocate n variabilele locale respective n timpul unui apel macro. Aceste
variabile locale pot fi folosite de ctre corpul macro, adic apelul macro este un apel de
subprogram special n care programul principal poate s transfere valori (parametri) la
subprogram.
Pot fi selectate urmtoarele dou atribuiri de argumente:
irul de adrese ale atribuirii de argumente nr.1 este
ABCDEFHIJKMQRSTUWXYZ
La oricare dintre adresele G, L, N, O, P nu poate fi transferat la corpul macro nici o
valoare. Adresele pot fi completate n orice secven arbitrar, nu neaprat n ordine
alfabetic.
irul de adrese ale selectrii atribuirii de argumente nr.2 este
A B C I1 J1 K1 I2 J2 K2 I10 J10 K10
n plus la adresele A, B, C, se pot atribui maxim 10 argumente diferite pentru adresele I, J,
K. Adresele pot fi completate n orice secven arbitrar. Dac sunt selectate cteva
argumente pentru o anumit adres, variabilele vor lua valorile respective n ordinea
selectrii.
lv
1. aa
A
#1
B
#2
C
#3
I
#4
J
#5
K
#6
D
#7
E
#8
F
#9
(G)
#10
H
#11
2. aa
A
B
C
I1
J1
K1
I2
J2
K2
I3
J3
lv
1. aa
(L)
#12
M
#13
(N)
#14
(O)
#15
(P)
#16
Q
#17
R
#18
S
#19
T
#20
U
#21
V
#22
2. aa
K3
I4
J4
K4
J5
J5
K5
I6
J6
K6
I7
lv
1. aa
W
#23
X
#24
Y
#25
Z
#26
#27
#28
#29
#30
#31
#32
#33
2. aa
J7
K7
I8
J8
K8
I9
J9
K9
I10
J10
K10
20 Macro utilizator
bloc. Se va afia un mesaj de eroare cnd se ncearc s se fac referire de dou ori la o
variabil cu un anumit numr. De exemplu:
G65 A2.12 B3.213 J36.9 J-12 E129.73 P2200
( 1 ) ( 2 ) ( 3 ) (4) ( 5 )
variabila
(1) #1=2.12
(2) #2=3.213
(3) #5=36.9
(4) #8=-12
(5) #8= eroare
n exemplul de mai sus, variabilei #8 i-a fost deja atribuit o valoare la a doua adres J
(valoarea -12), i deoarece valoarea adresei E este de asemenea atribuit variabilei #8, se
afieaz mesajul de eroare 3064 BAD MACRO STATEMENT (declaraie macro greit).
La adrese se pot transfera i un punct zecimal sau un semn.
20.2 Apel macro modal
20.2.1 Apel macro modal n fiecare comand de micare (G66)
Ca rezultat al instruciunii:
G66 P(numr program) L(numr de repetri) <atribuire argument>
corpul de macro specificat la adresa P (numr program) va fi apelat dup executarea fiecrei
comenzi de micare, de attea ori ct este numrul specificat la adresa L. Interpretrile
adreselor P i L i regulile de atribuire a argumentului sunt identice cu cele descrise pentru
instruciunea G65.
Macro selectat va fi apelat pn cnd este anulat apelul cu comanda:
G67
Exemplu: ntr-un anumit segment al programului pies trebuie executat o gaur dup fiecare
micare:
program principal:
...
G66 P1250 Z-100 R-1 X2 F130
G91 G0 X100----- -|
Y30
|
|-se execut gurirea dup fiecare
| poziionare
X150-------------|
...
G67
corp macro:
%O1250
G0 Z#18
162
20 Macro utilizator
20.2.2 Apel macro modal din fiecare bloc (G66.1)
Ca rezultat al instruciunii:
G66.1 P(numr program) L(numr de repetri) <atribuire argument>
toate blocurile care urmeaz vor fi interpretate ca atribuiri de argumente, va fi apelat macro
cu numrul specificat la adresa P i va fi executat de attea ori ct este numrul specificat la
adresa L.
Comanda produce acelai efect ca i cum n fiecare bloc ar fi fost un apel de macro G65:
G66.1 P L
X Y Z---------|
|------ G65 P L X Y Z
M S
|- = -|
G65 P L M S
X ------------|
|-------G65 P L X
G67
(1)
(2)
(3)
(4)
numrul de bloc
#24=12.3
#25=32.6
#14=250
Dac adresa N este n mijlocul blocului (precedat de oricare adres n afar de /),
adresa N va fi interpretat ca un argument:
X34.263
( 1 )
N320
(2)
(1) #24=34.236
(2) #14=320
163
20 Macro utilizator
20 Macro utilizator
macro. Trebuie scris seria de instruciuni:
Nn Mm <atribuire argument>
Codul M nu va fi transferat ctre PLC, ci va fi apelat macro cu numrul de program
respectiv.
Numrul particular de program care s fie apelat prin apelul codului M trebuie s fie selectat
prin parametri.
M(9020)=cod M de apel program O9020
M(9021)=cod M de apel program O9021
:
M(9029)=cod M de apel program O9029
Codul M poate specifica invariabil un tip de apel G65 (adic apel ne-modal).
Dac se face referire din nou la acelai cod M n mijlocul corpului macro, nu se va mai apela
din nou acelai macro, ci codul M va fi transferat la PLC.
Dac n mijlocul corpului macro se face un apel utilizator de tipul G, S, T, A, B, C sau de tip
M, atunci pentru
FGMAC=0, apelul nu este permis (se execut codurile simple M, S, G)
FGMAC=1, apelul este permis, adic se genereaz un apel nou.
Un cod M selectat prin parametri pentru a iniia un apel macro poate fi precedat n bloc doar
de / i de adresa N.
Un bloc care conine un apel macro iniiat printr-un cod M poate s includ doar un singur
cod M.
Setul de argumente nr.1:
ABCDEFGHIJKLPQRSTUVWXYZ
Setul de argumente nr.2 se poate folosi de asemenea cu funcia M.
20.5 Apelul de subprogram cu codul M
Prin parametri se pot selecta maximum 10 coduri M, prin care se pot iniia apelurile de
subprogram. n locul instruciunii
Nn Gg Xx Yy M98 Pp
Se poate specifica
Nn Gg Xx Yy Mm
Codul M selectat nu va fi transferat la PLC, ci va fi apelat subprogramul respectiv.
Numrul particular de program care s fie apelat prin codul M poate fi selectat prin urmtorii
parametri:
M(9000)=cod M de apel program O9000
M(9001)=cod M de apel program O9001
:
M(9009)=cod M de apel program O9009
Dac se face referire din nou la acelai cod M n subprogram, acesta din urm nu va mai
apela din nou acelai subprogram, ci codul M va fi transferat la PLC.
Dac n subprogram se face un apel utilizator de tipul G, S, T, A, B, C sau de tip M, atunci
pentru
FGMAC=0, apelul nu este permis (se execut codurile simple M, S, G)
FGMAC=1, apelul este permis, adic se genereaz un apel nou.
165
20 Macro utilizator
166
20 Macro utilizator
Dac se face referire din nou la aceeai adres n subprogramul pornit cu codul A, B sau C,
subprogramul nu va fi apelat din nou, ci valoarea adresei va fi transferat ctre PLC sau
interpolator.
Dac n subprogram se face un apel utilizator de tipul G, M, S, T atunci pentru
FGMAC=0, apelul nu este permis (se execut codurile simple M, S, G)
FGMAC=1, apelul este permis, adic se genereaz un apel nou.
20.9 Diferene ntre apelul unui subprogram i apelul unui macro
- Apelul de macro poate include atribute, cel de subprogram nu.
- Apelul unui subprogram se poate ramifica n subprogram numai dup executarea celorlalte
comenzi programate n bloc; un apel de macro doar se va ramifica.
- Apelul de macro modific nivelurile variabilelor locale, pe cnd un apel de subprogram nu.
De exemplu valoarea #1 nainte de apelul G65 este diferit de cea din mijlocul
corpului macro. Valoarea #1 nainte de M98 este identic cu cea din subprogram.
20.9.1 Apeluri multiple
Dintr-un macro se poate apela un alt macro. Apelurile de macro se pot face n patru nivele de
ramificare, incluznd apeluri simple i modale. Incluznd i apelurile de subprograme,
nivelul maxim de ramificare a apelurilor poate fi de 8 nivele.
n cazul apelurilor multiple de macro modale (tip G66), dup executarea fiecrui bloc de
interpolare se va apela la nceput ultimul macro specificat, din care va fi apelat macro
specificat anterior ntr-o secven care merge napoi. S examinm exemplul urmtor:
%O0001
...
N10 G66 P2
N11 G1 G91 Z10
N12 G66 P3
N13 Z20
N14 G67
N15 G67
N16 Z5
...
%O0002
N20 X4
N21 M99
%
%O0003
N30 Z2
N31 Z3
N32 M99
%
(111)
(113)
(anularea apelului G66 P3...)
(anularea apelului G66 P2 ...)
(116)
(220)
(330)
(331)
167
20 Macro utilizator
Primul numr din parantez reprezint numrul programului iar al doilea numrul blocului
executat.
Instruciunea G67 specificat n blocul N14 va anula apelul de macro din blocul N12
(O0003); cea specificat n blocul N15 va anula apelul de macro din blocul N10 (O0002).
n cazul apelurilor multiple de macro tip G66.1, primul va fi apelat ultimul macro specificat
la nceputul fiecrui bloc (considernd adresele blocului respectiv ca argumente), apoi va fi
apelat macro specificat anterior, introducnd blocurile acelui macro i considerndu-le ca
argumente.
Dac un alt macro este apelat din nou din macro, nivelele variabilelor locale vor crete odat
cu nivelele de macro.
program principal
nivel 0
macro
nivel 1
O____
macro
nivel 2
O____
macro
nivel 3
O____
G65 P
G65 P
G65 P
G65 P
M99
M99
M99
M99
nivel 1
#1
:
#33
nivel 2
#1
:
#33
nivel 3
#1
:
#33
nivel 4
#1
:
#33
variabile locale
nivel 0
#1
#33
macro
nivel 4
O____
Cnd este apelat primul macro, variabilele locale ale programului principal vor fi stocate (de
la #1 la #33), i variabilele locale de nivel 1 vor lua valorile argumentelor specificate n apel.
Dac este apelat un alt macro de pe primul nivel, variabilele locale ale primului nivel vor fi
stocate (de la #1 la #33), i variabilele locale de nivel 2 vor lua valorile argumentelor
specificate n apel. n cazul apelurilor multiple, variabilele locale ale nivelului anterior vor fi
stocate i variabilele locale ale urmtorului nivel vor lua valorile argumentelor specificate n
apel. n cazul lui M99, revenirea din macro apelat n programul care a fcut apelul,
variabilele locale stocate pe nivelul anterior vor fi restaurate n aceleai stri n care erau n
momentul n care au fost stocate pe timpul apelului.
168
20 Macro utilizator
20.10 Formatul corpului macro utilizator
Formatul de program al unui macro utilizator este identic cu cel al unui subprogram:
O (numr program)
:
comenzi
:
M99
Numrul de program este fr importan, dar numerele de program cuprinse ntre O9000 i
O9034 sunt rezervate pentru apeluri speciale.
20.11 Variabile ale limbajului de programare
n programele principale, subprograme i macro, pot fi atribuite adreselor variabile n locul
valorilor numerice specifice. O valoare poate fi atribuit pentru fiecare variabil n interiorul
domeniului permis. Folosirea variabilelor va permite proceduri de programare mult mai
flexibile.
O anumit dat poate fi transformat n parametru prin folosirea variabilelor comune n
programele principale i n subprograme, astfel nu va mai fi necesar s se scrie programe noi
pentru piese similare dar cu dimensiuni diferite. Pentru aceasta operatorul va scrie din nou
doar variabilele comune corespunztoare .
Folosirea variabilelor poate face un macro mult mai flexibil dect un subprogram
convenional. n timp ce argumentele nu pot fi transferate la un subprogram, ele pot fi ataate
la un macro prin intermediul variabilelor locale.
20.11.1 Identificarea unei variabile
Se poate folosi un numr de variabil astfel ca fiecare variabil s fie identificat prin
numrul ei. O variabil este compus din codul # i un numr. De exemplu:
#12
#138
#5106
Se poate folosi de asemenea o formul pentru a se face referire la o formul - #[<formul>].
De exemplu:
#[#120] nseamn c variabila 120 conine numrul de serie al variabilei la care se
face referire;
#[#120-4] nseamn c numrul de variabil referit este obinut scznd 4 din
numarul coninut n variabil.
20.11.2 Referirea la o variabil
Adresele diferite din cuvintele unui bloc de program pot lua valori de variabile la fel ca i
valori numerice. Semnul minus (-) sau operatorul I poate fi folosit, atunci cnd este permis
pentru valori numerice, i atunci cnd se face referire la o variabil dup o adres.
De exemplu:
G#102
dac #102=1.0, aceast referire este echivalent cu G1
XI-#24
dac #24=135.342, aceast referire este echivalent cu XI-135.342
- Nu este permis referirea la un numr de program O, numr de bloc N sau bloc condiional
169
20 Macro utilizator
dac #1=0
170
dac #1=<vacant>
dac #1=0
#2=#1
|
#2=<vacant>
#2=#1
|
#2=0
#2=#1*3
|
#2=0
#2=#1*3
|
#2=0
#2=#1+#1
|
#2=0
#2=#1+#1
|
#2=0
20 Macro utilizator
Diferena ntre o variabil vacant i una cu valoare 0 ntr-o expresie condiional va fi:
dac #1=<vacant>
dac #1=0
#1 EQ #0
|
ndeplinit
#1 EQ #0
|
nendeplinit
#1 NE 0
|
ndeplinit
#1 NE 0
|
nendeplinit
#1 GE 0
|
ndeplinit
#1 GE 0
|
nendeplinit
#1 GT 0
|
#1 GT 0
|
ndeplinit
nendeplinit
20 Macro utilizator
Dac de exemplu trebuie protejate variabilele de la #530 la #540, trebuie impui parametrii
WPROT1=530 i WPROT2=540.
20.12. 3 Variabile de sistem
Variabilele de sistem sunt fixate si asigur informaie despre strile sistemului.
Semnale de intrare interfa - #1000-#1015, #1032
Pot fi determinate 16 semnale de intrare interfa, unul cte unul, prin citirea variabilelor de
sistem de la #1000 la #1015.
Numele variabilelor de sistem
#1000
#1001
#1002
#1003
#1004
#1005
#1006
#1007
#1008
#1009
#1010
#1011
#1012
#1013
#1014
#1015
unde CONST=I_LINE*10 i I_LINE este un parametru. Deci se poate citi oricare intrare
interfa.
Valorile variabilelor de mai sus sunt:
0= dac contactul de la intrare este deschis,
1= dac contactul de la intrare este nchis.
Cele 16 intrri de mai sus se pot citi simultan la variabila #1032. Funcie de atribuirea
variabilelor de sistem pentru citirea una cte una, valoarea va fi:
Prin urmare, cu 24V aplicai la intrrile de la #1002 la #1010, restul intrrilor fiind deschise,
valoarea variabilei #1032 va fi:
Variabilele intrrilor interfa sunt numai citire, i nu pot fi folosite n partea stng a unei
instruciuni definiie.
172
20 Macro utilizator
Semnale de ieire interfa - #1100-#1115, #1132
Pot fi transmise 16 semnale de ieire interfa, unul cte unul, prin atribuirea valorilor
variabilelor de la #1100 la #1115.
Numele variabilelor de sistem
#1100
#1101
#1102
#1103
#1104
#1105
#1106
#1107
#1108
#1109
#1110
#1111
#1112
#1113
#1114
#1115
Y[CONST+000]
Y[CONST+001]
Y[CONST+002]
Y[CONST+003]
Y[CONST+004]
Y[CONST+005]
Y[CONST+006]
Y[CONST+007]
Y[CONST+010]
Y[CONST+011]
Y[CONST+012]
Y[CONST+013]
Y[CONST+014]
Y[CONST+015]
Y[CONST+016]
Y[CONST+017]
unde CONST=O_LINE*10 iar O_LINE este un parametru. Deci se poate transmite sau citi
oricare cuvnt ieire interfa.
Valorile variabilelor de mai sus pot fi:
0= dac contactul de la ieire este deschis,
1= dac contactul de la ieire este nchis.
Cele 16 ieiri de mai sus se pot citi simultan la variabila #1132. Funcie de atribuirea
variabilelor de sistem pentru fiecare ieire, valoarea va fi:
Prin urmare, cu ieirile de la #1102 la #1109 active, restul ieirilor fiind inactive, valoarea
variabilei #1132 va fi:
geometrie
uzur
geometrie
uzur
#10001
#10002
.
.
#10999
#11001
#11002
.
.
#11999
#12001
#12002
.
.
#12999
#13001
#13002
.
.
#13999
173
20 Macro utilizator
valoarea variabilei
#5201
#5202
:
#5208
#5221
#5222
:
#5228
#5241
#5242
:
#5248
#5261
#5262
:
#5268
#5281
#5282
:
#5288
#5301
#5302
:
#5308
#5321
#5322
:
#5368
sistemul de coordonate
al piesei
comun pentru toate
sistemele de coordonate
Numrul axei se refer la axele fizice. Relaia dintre numerele i numele axelor va fi definit
de ctre constructorul mainii unealt prin parametrii din grupul AXIS. De obicei axele
174
20 Macro utilizator
1,2 i 3 sunt atribuite la adresele X, Y i respectiv Z, dar sunt permise i alte specificaii.
Alarma - #3000
Prin definirea
#3000=nnn(ALARM)
se poate afia un mesaj numeric de eroare (nnn= maxim trei cifre zecimale) i textul
mesajului de eroare. Textul trebuie pus ntre paranteze rotunde ( ). Mesajul nu poate fi mai
lung de 25 de caractere. Dac macro conine o eroare, adic programul ruleaz ctre o
ramur n care o valoare a fost definit la variabila #3000, programul va fi executat pn la
blocul anterior, apoi se suspend execuia i sunt afiate pe ecran un mesaj de eroare i codul
su (4nnn). Numrul mesajului este suma numrului specificat n variabila #3000 i 4000.
Dac nu a fost specificat nici un numr, codul mesajului va fi 4000 iar dac nu a fost
specificat nici un text, cmpul mesajului este gol. Starea de eroare se poate terge cu butonul
RESET.
Cronometru (timer) n milisecunde - #3001
Valoarea variabilei #3001 se poate citi i nscrie.
Intervalul dintre dou momente de timp poate fi msurat n milisecunde, cu o acuratee de
circa 20 milisecunde. Numrtorul #3001 se va umple la 65536. Valoarea variabilei #3001
va ncepe de la 0 n momentul cuplrii la reea, i va numra cresctor. Numrarea continu
ct timp este pornit comanda numeric.
Cronometru (timer) principal - #3002
Valoarea variabilei #3002 se poate citi i nscrie.
Intervalul dintre dou momente de timp poate fi msurat n milisecunde, cu o acuratee de
circa 20 milisecunde.
n momentul cuplrii la reea, valoarea variabilei #3002 va fi cea din momentul decuplrii, i
va numra cresctor.
Numrarea se face att timp ct lumineaz START, adic este msurat ct timp st comanda
numeric n condiia de start. Este localizat la ceasul CUTTING2 din memoria de parametri.
Suprimarea execuiei bloc cu bloc - #3003
Dac #3003=1, comanda numeric nu se va opri la sfritul unui bloc (n starea de mod bloc
singular) pn cnd variabila nu ia valoarea 0.
Valoarea variabilei este 0 la deconectarea alimentrii sau dup resetarea programului la
nceput.
#3003 execuie bloc cu bloc
0= nesuprimat
1= suprimat
175
20 Macro utilizator
Stop precis
0
0
0
0
1
1
1
1
Corecie avans
0
0
1
1
0
0
1
1
Stop avans
0
1
0
1
0
1
0
1
(1) prima ax
(2) a doua ax
(3) a treia ax
:
( 8) a opta ax
20 Macro utilizator
Numrul axei se refer la o ax fizic, parametrul definind numele particular al axei referitor
la un numr de ax fizic.
Numrul de piese prelucrate, numrul de piese de prelucrat - #3901, #3902
Comanda numeric memoreaz numrul de piese prelucrate n numrtorul #3901.
Coninutul numrtorului va fi incrementat cu unu dup executarea fiecrei funcii M02,
M30 sau a funciilor M selectate n parametrul PRTCNTM. Cnd numrul de piese prelucrate
devine egal cu numrul necesar de piese (numrtorul #3902), comanda numeric
semnalizeaz ctre PLC printr-un flag.
Numrul de piese prelucrate
#3901
Numrul de piese de prelucrat
#3902
Numrtoarele #3901 i #3902 se afl la parametrii PRTTOTAL i respectiv PRTREQRD.
Informaie modal de la #4001 la #4130, i de la #4201 la #4330
Valorile modale eficace n blocul anterior pot fi stabilite prin citirea variabilelor de sistem de
la #4001 la #4130.
Comenzile modale active n blocul aflat n execuie pot fi stabilite prin citirea variabilelor de
la #4201 la #4330.
variabila
de sistem
#4001
:
#4020
#4101
#4102
#4103
#4107
#4108
#4109
#4111
#4113
#4114
#4115
#4119
#4120
177
20 Macro utilizator
Informaie poziional
Poziii la sfrit de bloc
Variabil de sistem
informaie de poziie
#5001
#5002
:
#5008
posibil
coordonata pe axa 8 la sfritul blocului
#5021
#5022
:
#5028
nu e posibil
coordonata instantanee pe axa 8 (G53)
#5041
#5042
:
#5048
nu e posibil
coordonata instantanee pe axa 8
178
20 Macro utilizator
Poziia in care apare semnalul de salt
Variabil de sistem
#5061
#5062
:
#5068
posibil
coordonata semnalului de salt pe axa 8 (G31)
#5081
#5082
:
#5088
nu e posibil
lungimea compensrii pe axa 8
Valoarea care poate fi citit a compensrii lungimii sculei este cea care este activ n blocul
aflat n execuie.
179
20 Macro utilizator
Decalajul Servo
Variabil de sistem
#5101
#5102
:
#5108
nu e posibil
decalaj servo pe axa 8
Valoarea care poate fi citit a decalajului servo este o valoare cu semn, n milimetri.
20.13 Instruciuni ale limbajului de programare
Expresia
#i = <formul>
este folosit pentru descrierea diferitelor instruciuni. Expresia <formul> poate s includ
operaii aritmetice, funcii, variabile sau constante.
n general, referirile n <formul> se fac la variabilele #i i #k.
Termenul <formul> nu e obligatoriu s se afle n partea dreapt a unei instruciuni definiie,
se poate atribui o formul i pentru diferitele adrese n blocul NC, n locul unei anumite
valori numerice sau variabile.
20.13.1 Definire, nlocuire: #i =#j
Codul instruciunii este =.
Ca rezultat al instruciunii, variabila #i va lua valoarea variabilei #j, adic valoarea variabilei
#j va fi introdus n variabila #i.
180
20 Macro utilizator
20.13.2 Operaii aritmetice i funcii
Operaii cu un singur operand
Minus cu un singur operand: #i = - #j
Codul operaiei este -.
Ca rezultat al operaiei, variabila #i va avea o valoare identic cu variabila #j n
valoare absolut dar cu semn schimbat.
Negaie aritmetic: #i = NOT #j
Codul operaiei este NOT.
Ca rezultat al operaiei, variabila #j este convertit mai nti ntr-un numr de 32 de
bii cu virgul fix. Se afieaz mesajul de eroare 3091 ERRONEUS OPERATION
WITH # (operare incorect cu #) dac numrul nu poate fi reprezentat n 32 de bii.
Apoi valoarea numrului binar va fi negat bit cu bit i numrul rezultat astfel va fi
reconvertit ntr-unul cu virgul mobil i pus n variabila #i.
Operaii aritmetice de sumare
Adunarea: #i = #j + #k
Codul operaiei este +.
Ca rezultat al operaiei, variabila #i va deveni suma dintre valoarea variabilei #j i
valoarea variabilei #k.
Scderea: #i = #j - #k
Codul operaiei este -.
Ca rezultat al operaiei, variabila #i va deveni diferena dintre valoarea variabilei #j i
valoarea variabilei #k.
Suma logic, SAU: #i = #j OR #k
Codul operaiei este OR (SAU logic).
Ca rezultat al operaiei, suma logic dintre variabilele #j i #k se va introduce n
variabila #i pentru fiecare din cei 32 de bii. Se va introduce 0 atunci cnd poziiile
similare din cele dou numere au valoarea 0 (altfel se introduce 1).
SAU exclusiv: #i = #j XOR #k
Codul operaiei este XOR (SAU exclusiv).
Ca rezultat al operaiei, variabilele #j i #k vor fi adunate pentru fiecare din cei 32 de
bii n variabila #i de o aa manier c se va introduce 0 atunci cnd poziiile similare
din cele dou numere au valori identice (i 1 cnd valorile sunt diferite).
Operaii aritmetice de multiplicare
nmulirea: #i = #j * #k
Codul operaiei este *.
Ca rezultat al operaiei, variabila #i va deveni produsul dintre valoarea variabilei #j i
valoarea variabilei #k.
181
20 Macro utilizator
mprirea: #i = #j / #k
Codul operaiei este /.
Ca rezultat al operaiei, variabila #i va deveni raportul variabilelor #j i #k. Valoarea
lui #k nu poate fi 0, pentru c dac este 0 se afieaz mesajul de eroare 3092
DIVISION BY 0 # (mprire prin 0).
Restul: #i = #j MOD #k
Codul operaiei este MOD.
Ca rezultat al operaiei, variabila #i va deveni restul raportului variabilelor #j i #k.
Valoarea lui #k nu poate fi 0, pentru c dac este 0 se afieaz mesajul de eroare 3092
DIVISION BY 0 # (mprire prin 0).
Exemplu:
Pentru #120 = 27 MOD 4, valoarea variabilei #120 va fi 3.
Produs logic, I: #i = #j AND #k
Codul operaiei este AND (I logic).
Ca rezultat al operaiei, produsul logic dintre variabilele #j i #k se va introduce n
variabila #i pentru fiecare din cei 32 de bii. Se va introduce 1 atunci cnd poziiile
similare din cele dou numere au valoarea 1 (altfel se introduce 0).
Funcii
Rdcin ptrat: #i = SQRT #j
Codul operaiei este SQRT.
Ca rezultat al operaiei, variabila #i va deveni rdcina ptrat a variabilei #j.
Valoarea lui #j nu poate fi un numr negativ.
Sinus: #i = SIN #j
Codul operaiei este SIN.
Ca rezultat al operaiei, variabila #i va deveni sinusul variabilei #j. Valoarea lui #j se
msoar n grade.
Cosinus: #i = COS #j
Codul operaiei este COS.
Ca rezultat al operaiei, variabila #i va deveni cosinusul variabilei #j. Valoarea lui #j
se msoar n grade.
Tangenta: #i = TAN #j
Codul operaiei este TAN.
Ca rezultat al operaiei, variabila #i va deveni tangenta variabilei #j. Valoarea lui #j
se msoar n grade. Valoarea lui #j nu poate fi (2n+1)*90, unde n=0, 1, 2,
Arcsinus: #i = ASIN #j
Codul operaiei este ASIN.
Ca rezultat al operaiei, variabila #i va deveni arcsinus de variabila #j n grade.
Condiia 1<#j<1 trebuie s fie adevrat. Rezultatul, adic valoarea lui #i este
cuprins ntre +90 i 90.
182
20 Macro utilizator
Arccosinus: #i = AcIN #j
Codul operaiei este ACOS.
Ca rezultat al operaiei, variabila #i va deveni arccosinus de variabila #j n grade.
Condiia 1<#j<1 trebuie s fie adevrat. Rezultatul, adic valoarea lui #i este
cuprins ntre 0 i 180.
Arctangent: #i = ATAN #j
Codul operaiei este ATAN.
Ca rezultat al operaiei, variabila #i va deveni arctangent de variabila #j n grade.
Rezultatul, adic valoarea lui #i, este cuprins ntre +90 i 90.
Funcie exponenial cu baza e: #i = EXP #j
Codul operaiei este EXP.
Ca rezultat al operaiei, variabila #i va deveni e (numrul natural) la puterea #j.
Logaritm natural: #i = LN #j
Codul operaiei este LN.
Ca rezultat al operaiei, variabila #i va deveni logaritmul natural al numrului #j.
Valoarea lui #j nu poate fi 0 sau un numr negativ.
Valoare absolut: #i = ABS #j
Codul operaiei este ABS.
Ca rezultat al operaiei, variabila #i va deveni valoarea absolut a variabilei #j.
Conversie din binar n zecimal codat binar: #i = BCD #j
Codul funciei este BCD.
Ca rezultat al operaiei, variabila #i va deveni valoarea BCD a variabilei #j. Valoarea
variabilei #j este cuprins ntre 0 i 99999999.
Conversie din zecimal codat binar n binar: #i = BIN #j
Codul funciei este BIN.
Ca rezultat al operaiei, variabila #i va deveni valoarea binar a variabilei #j.
Valoarea variabilei #j este cuprins ntre 0 i 99999999.
Ignorarea zecimalelor: #i = FIX #j
Codul funciei este FIX.
Aceast operaie va ignora zecimalele variabilei #j i acea valoare va trece n
variabila #i.
De exemplu:
#130 = FIX 4.8 = 4
#131 = FIX 6.7 = -6
183
20 Macro utilizator
ordinea operaiilor
#i EQ #j
diferit
#i NE #j
mai mare
#i GT #j
mai mic
#i LT #j
#i GE #j
184
20 Macro utilizator
20.13.4 Ramificare necondiionat: GOTOn
Ca rezultat al instruciunii GOTOn, execuia programului se va continua n mod
necondiionat la blocul cu numrul de secven n din acelai program. Numrul de secven
n poate fi nlocuit cu o variabil sau o formul. Numrul blocului la care se face saltul prin
instruciunea GOTO trebuie s fie pus la nceputul blocului respectiv. Dac nu este gsit
numrul blocului selectat se afieaz mesajul de eroare 3070 NOT EXISTING BLOCK NO.P
(nu exist bloc cu nr. p).
20.13.5 Ramificare condiionat: IF[<expresia condiiei>] GOTOn
Dac [<expresia condiiei>], aflat obligatoriu ntre paranteze ptrate, este ndeplinit,
execuia programului se va continua n mod necondiionat la blocul cu numrul de secven n
din acelai program.
Dac [<expresia condiiei>] nu este ndeplinit, execuia programului se va continua la
blocul urmtor.
Se afieaz mesajul de eroare 3091 ERRONEOUS OPERATION WITH # (operare eronat
cu #) n cazul n care IF nu este urmat de expresia condiiei. Dac expresia condiiei are o
eroare de sintax, se afieaz mesajul de eroare 3064 BAD MACRO STATEMENT
(declaraie macro greit).
20.13.6 Instruciune condiionat: IF[<expresia condiiei>] THEN
Dac (IF) [<expresia condiiei>] este ndeplinit, va fi executat instruciunea care urmeaz
dup THEN (atunci).
Dac [<expresia condiiei>] nu este ndeplinit, execuia programului se va continua la
blocul urmtor.
Cuvntul THEN se poate omite, instruciunea:
IF[<expresia condiiei>] instruciune
va fi executat cu acelai rezultat.
20.13.7 Iteraie: WHILE[<expresia condiiei>] DOm ENDm
Att timp ct (WHILE) [<expresia condiiei>] este ndeplinit, blocurile care urmeaz DOm
(execut m) pn la blocul ENDm (sfrit m) vor fi executate repetat. n instruciune,
comanda numeric va verifica dac este ndeplinit condiia; dac este, poriunea de program
cuprins ntre DOm i ENDm va fi executat; apoi ca rezultat al instruciunii ENDm,
programul se va ntoarce pentru a verifica din nou expresia condiie de dup WHILE.
Dac [<expresia condiiei>] nu este ndeplinit, execuia programului se va continua la
blocul de dup ENDm.
Dac se omite WHILE[<expresia condiiei>], adic ciclul este descris de instruciunea DOm
ENDm, poriunea de program cuprins ntre DOm i ENDm va fi executat la nesfrit.
Valorile posibile pentru m sunt 1, 2, 3. Dac se specific orice alt valoare se afieaz
mesajul de eroare 3091 ERRONEOUS OPERATION WITH # (operare eronat cu #). Dac
WHILE nu este urmat de o expresie de condiie se afieaz mesajul de eroare 3091
ERRONEOUS OPERATION WITH # (operare eronat cu #). Dac expresia condiiei are o
eroare de sintax, se afieaz mesajul de eroare 3064 BAD MACRO STATEMENT
(declaraie macro greit).
185
20 Macro utilizator
fals
sau
:
DO1
:
END1
:
END1
:
fals
corect
corect
186
20 Macro utilizator
:
DO1
:
DO2
:
:
:
END1
:
END2
fals
corect
sau
:
GOTO150
:
DO1
:
:
:
N150
:
END1
:
fals
:
DO1
:
N150
:
:
:
END1
:
GOTO150
:
fals
- Un subprogram sau un macro poate fi apelat din interiorul unui ciclu. Ciclurile din
interiorul unui subprogram sau a unui macro utilizator pot la rndul lor s cuprind pn la
trei nivele de alte cicluri.
:
DO1
:
M98
:
G65
:
G66
:
corect
corect
corect
187
20 Macro utilizator
G67
:
END1
:
.
corect
#b
[c]
]
unde a
= caracter
#b = variabil
[c] = numrul de cifre de dup punctul zecimal
Comanda numeric va trimite caracterele n cod ISO sau ASCII (funcie de impunerea
parametrilor); variabilele vor fi transmise n form binar.
- Caracterele vor fi transmise n cod ISO sau ASCII. Caracterele de transmis sunt:
caractere alfabetice (A, B, , Z)
numere (1, 2, ,0)
caractere speciale (*, /, +, -)
Comanda numeric va trimite n locul codului ISO pentru * codul pentru spaiu (A0h).
- Valorile variabilelor vor fi transmise n 4 bytes (adic n 32 de bii), ncepnd cu cel mai
semnificativ byte. Numrul variabilei trebuie urmat de numrul de zecimale ntre paranteze
ptrate. Comanda numeric va converti valoarea n virgul mobil a variabilei n valoare cu
virgul fix, n care numrul de cifre zecimale semnificative este egal cu valoarea pus ntre
parantezele ptrate. Valorile posibile pentru c sunt 1, 2, , 8.
Dac, de exemplu # 120 = 258.647673 i [3] -------- va fi transmis 258648 = 0003F258h
- O variabil vacant va fi transmis cu codul binar 00000000h.
- La sfritul transmisiei de date, comanda numeric va trimite automat caracterul Line Feed
(sfrit de rnd).
De exemplu:
188
20 Macro utilizator
BPRNT [ C*/ X#110 [3]
#110=318.49362
#120=0.723415
#112=23.9
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
---C
---Spaiu
---/
---X
---00
---04
---DC
---1E
---Y
---00
---00
---02
---D3
---M
---00
---00
---00
---18
---Line Feed(sfrit de rnd)
#b
[ c d ] ]
unde a
= caracter
#b = variabil
d = numr de cifre dup punctul zecimal
c = numr de cifre nainte de punctul zecimal
Toate caracterele i cifrele vor fi trimise n cod ISO sau ASCII, funcie de impunerea
parametrilor.
- Pentru regulile de trimitere a caracterelor vezi instruciunile de la BPRNT.
- Pentru ieirea valorilor variabilelor, trebuie precizate numerele ntregilor zecimali i ale
fraciilor, n care trebuie pus variabila. Cifrele trebuie specificate ntre paranteze ptrate.
Pentru specificarea cifrelor trebuie ndeplinit condiia 0 < c + d < 9. Procedura de
transmitere la ieire a cifrelor ncepe cu cea mai semnificativ cifr. La transmiterea la ieire
a cifrelor, semnul negativ ( - ) i punctul zecimal ( . ) vor fi transmise folosindu-se codurile
ISO respective. Dac parametrul PRNT=0, pentru semnul + i pentru zerourile din faa
ntregilor se va transmite un cod de spaiu; dup punctul zecimal fiecare 0 (dac exist) se va
transmite cu codul de 0. Dac parametrul PRNT=1, semnul + i zerourile din faa ntregilor
nu vor fi transmise; dac este definit punctul zecimal, zerourile aflate dup el vor fi
transmise. n caz contrar nu se vor transmite nici punctul zecimal nici zerourile.
- Dac d=0, va fi transmis punctul zecimal; dac este specificat doar c, nu va fi transmis nici
punctul zecimal.
- O variabil vacant va fi transmis cu codul 0.
189
20 Macro utilizator
- La sfritul transmisiei de date, comanda numeric va trimite automat caracterul Line Feed
(sfrit de rnd).
De exemplu:
DPRNT [ X#130 [53] Y#500 [53] T#10 [2] ]
#130=35.897421
-------- 35.897
#500=150.8
-------- 150.8
#10=214.8
-------- 15
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
---X
---Spaiu
---Spaiu
---Spaiu
---Spaiu
---3
---5
---Punct zecimal (.)
---8
---9
---7
---Y
---Semnul minus ()
---Spaiu
---Spaiu
---1
---5
---0
---Punct zecimal (.)
---8
---0
---0
---T
---Spaiu
---1
---5
---Line Feed (LF)(sfrit de rnd)
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
190
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
---X
---3
---5
---Punct zecimal (.)
---8
---9
---7
---Y
---Semnul minus ()
---1
---5
---0
---Punct zecimal (.)
---8
---0
---0
20 Macro utilizator
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
---T
---1
---5
---Line Feed (LF)(sfrit de rnd)
191
20 Macro utilizator
Exemplu:
SBSTM=0
%O1000
...
N10 #100=50
N20 #101=100
N30 G1 X#100 Y#101
N40 #100=60 (definire dup N30)
N50 #101=120 (definire dup N30)
N60 G1 X#100 Y#101
.
SBSTM=1
%O1000
...
N10 #100=50
N20 #101=100
N30 G1 X#100 Y#101
N40 #100=60 (definire n timpul N30)
N50 #101=120 (definire n timpul N30)
N60 G1 X#100 Y#101
Concluzii:
Concluzii:
- execuia programului este mai lent,
- execuia programului este mai rapid,
- dac execuia blocului N30 este
- dac execuia blocului N30 este
ntrerupt i apoi prelucrarea este pornit,
ntrerupt i apoi prelucrarea este pornit,
prelucrarea continu deoarece variabilele
prelucrarea nu poate continua, dect dac
blocului N30 nu au fost modificate de
se d cutare de bloc pentru blocul N30
ctre blocurile N40, N50.
deoarece variabilele blocului N30 sunt deja
modificate de ctre blocurile N40, N50.
20.16 Afiarea macro i a subprogramelor n modul automat
Blocurile de macro i subprogramele vor fi afiate de ctre comanda numeric n modul
automat. Dac parametrul MD8 este impus 0, blocurile de subprogram i macro numerotate
de la 8000 la 8999 nu vor fi listate atunci cnd sunt executate. Dac parametrul MD8 este
impus 1, vor fi listate i aceste blocuri.
Dac parametrul MD9 este impus 0, blocurile de subprogram i macro numerotate de la 9000
la 9999 nu vor fi listate atunci cnd sunt executate. Dac parametrul MD9 este impus 1, vor
fi listate i aceste blocuri.
20.17 Folosirea butonului STOP n timpul execuiei unei instruciuni macro
Apsarea butonului STOP, adic suspendarea execuiei programului va avea efect
ntotdeauna la terminarea instruciunii macro aflate n execuie.
192
20 Macro utilizator
20.18 Ciclul macro de frezare n adncime
Instruciunea
G65 P9999 X Y Z I J K R F D E Q M S T
va porni un ciclu de frezare n adncime. Pentru executarea ciclului, macro cu numr de
program O9999 trebuie adus n memorie din memoria PROM a comenzii numerice.
Anterior apelrii ciclului, scula trebuie adus deasupra centrului geometric al prelucrrii n
planul selectat, la o distan de siguran deasupra piesei. La sfritul ciclului scula va fi
retrasa n acelai punct.
Adresele n bloc trebuie s aib
urmtoarea semnificaie:
X = mrimea prelucrrii n
direcia X
Y = mrimea prelucrrii n
direcia Y
Z = mrimea prelucrrii n
direcia Z
Instruciunile G17, G18, G19
vor defini lungimea, limea i
adncimea prelucrrii pentru
cele trei coordonate. De
exemplu, n cazul lui G17, Z va
fi adncimea prelucrrii, cea mai
lung dintre X i Y va fi
lungimea prelucrrii, iar cea mai
scurt limea. Aceste valori
trebuie s fie introduse n valori
absolute ca numere pozitive.
R = raza colurilor prelucrrii.
Rotunjirea colurilor prelucrrii
(dac exist) trebuie specificat
la adresa R. Dac nu se
completeaz adresa R, colurile
prelucrrii se vor rotunji cu raza
sculei.
I = distana de siguran pe
direcia adncimii prelucrrii n
cazul lui G19.
J = distana de siguran pe direcia adncimii prelucrrii n cazul lui G18.
K = distana de siguran pe direcia adncimii prelucrrii n cazul lui G17.
n funcie de planul selectat, distana de siguran pe direcia sculei trebuie s fie specificat
n bloc la adresele I(G19), J(G18) sau K(G17). Cnd este pornit ciclul, comanda numeric
consider c vrful sculei este localizat la acea distan fa de suprafaa piesei. n timpul
prelucrrii, dup ce s-a ndeprtat materialul de la un nivel, scula va fi ridicat la acea
distan astfel nct s fie adus n punctul de pornire pentru frezarea nivelului urmtor.
D = adresa registrului care conine compensarea razei sculei.
Numrul de compensare al razei sculei folosite n program trebuie specificat obligatoriu la
adresa D. n plus, frezarea n adncime trebuie s fie executat n starea G40.
193
20 Macro utilizator
194
20 Macro utilizator
Dac nu s-au specificat limea prelucrrii i razele de rotunjire a colurilor, se va considera
ca lime diametrul sculei folosite (canal).
Dac nu s-au specificat nici lungimea nici limea prelucrrii, ci s-a programat numai adresa
R, se va obine o frezare circular de raz R.
Dac nu sunt specificate nici lungimea nici limea nici raza, ciclul va degenera n gurire.
Mesaje de eroare n cursul frezri n adncime:
MACRO ERROR 1 (eroare macro 1) specificare fals a blocului. Cauze posibile:
- adncimea prelucrrii nespecificat
- raza sculei nespecificat
- adncimea de tiere nespecificat
MACRO ERROR 2 (eroare macro 2) eroare de definire n dimensiunile
specificate. Cauze posibile:
195
20 Macro utilizator
- mrimea specificat pentru lungimea sau limea prelucrrii este mai mic dect dublul
razei prelucrrii.
- lungimea sau limea prelucrrii este mai mic dect diametrul sculei apelate la adresa D.
- valoarea specificat pentru limea de tiere este 0 sau raza sculei apelate este 0.
- valoarea adncimii de tiere este 0, adic s-a programat 0 la adresa Q.
196
Note
Note
197
M(9001) . . . . . . . . . . . . . . . . . . . . . . . . . .164
M(9020) . . . . . . . . . . . . . . . . . . . . . . . . . .164
M-NUMB1 . . . . . . . . . . . . . . . . . . . . . 66
MD8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
MD9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
MODGEQU . . . . . . . . . . . . . . . . . . . . . . .163
MULBUF . . . . . . . . . . . . . . . . . . . . . . . . . .21
O_LINE. . . . . . . . . . . . . . . . . . . . . . . . . . .172
ORIENT1 . . . . . . . . . . . . . .65, 139, 149, 150
POSCHECK . . . . . . . . . . . . . . . . . . . . . . . .22
PRNT . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
PRTCNTM. . . . . . . . . . . . . . . . . . . . . 71, 177
PRTREQRD . . . . . . . . . . . . . . . . . . . . . . .177
PRTTOTAL . . . . . . . . . . . . . . . . . . . . . . .177
RAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
RADDIF . . . . . . . . . . . . . . . . . . . . . . . . . . .26
RAPDIST . . . . . . . . . . . . . . . . . . . . .155, 156
RAPID6. . . . . . . . . . . . . . . . . . . . . . . . . . . 66
REFPOS . . . . . . . . . . . . . . . . . . . . . . . . . . .53
RETG73. . . . . . . . . . . . . . . . . . . . . . 135, 137
S(9033) . . . . . . . . . . . . . . . . . . . . . . . . . . .165
SECOND. . . . . . . . . . . . . . . . . . . . . . . . . . 51
SKIPF . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
STRKEG. . . . . . . . . . . . . . . . . . . . . . . . . .157
T(9034) . . . . . . . . . . . . . . . . . . . . . . . . . . 165
TAPDWELL . . . . . . . . . . . . . . . . . . 138, 143
TEST FEED. . . . . . . . . . . . . . . . . . . . . . . . 30
WRPROT1 . . . . . . . . . . . . . . . . . . . . . . . .170
plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
plan de poziionare . . . . . . . . . . . . . . . . . .131
plan principal . . . . . . . . . . . . . . . . . . . .62
poziia unei guri . . . . . . . . . . . . . . . . . . . 133
prelucrarea colurilor . . . . . . . . . . . . . . . . . 48
program pies . . . . . . . . . . . . . . . . . . . . . . . .9
program principal . . . . . . . . . . . . . . . . . . . .10
punct de referin . . . . . . . . . . . . . .13, 52, 53
punct iniial . . . . . . . . . . . . . . . . . . . 131, 133
punct intermediar . . . . . . . . . . . . . . . . .53
punct R . . . . . . . . . . . . . . . . . . . . . . . . . . .131
punct zecimal . . . . . . . . . . . . . . . 40, 188-191
ramificare condiionat . . . . . . . . . . . . . . 184
ramificare necondiionat . . . . . . . . . . . . .184
rcire . . . . . . . . . . . . . . . . . . . . . . . 15, 71, 72
Reacie de poziie . . . . . . . . . . . . . . . . . . . .65
reducere avans . . . . . . . . . . . . . . . . . . . . . . 50
reprezentri numerice . . . . . . . . . . . . . . . .169
retragere . . . . . . . . . . . . . . . . . . . . . .131
reinere vector . . . . . . . . . . . . . . . . . . . . . . 99
199
200