G-code
programarea mașinilor-unelte cu comandă numerică
Extensii fiș
.mpt, .mpf .nc și alte câteva
iere
Paradigmă Procedural, Imperativ
Apărut în anii 1950 (prima ediție)
Proiectat
Massachusetts Institute of Technology
de
Implement multe, în special de
ări majore la Siemens Sinumerik, FANUC, Haas, Heide
nhain, Mazak. Există și o implementare
standard descrisă în ISO 6983.
Modifică date / text
Programarea mașinilor-unelte cu comandă numerică reprezintă secvențe de instrucțiuni utilizate
pentru a controla mașina-unealtă CNC. Această programare este în prezent foarte automatizată
datorită proiectării asistată de calculator (CAD).
Codul G (de asemenea denumit RS-274), care are mai multe variante, este numele comun pentru
cele mai utilizat limbaj de programare de control numeric (CNC). Acesta este utilizat în principal la
fabricația asistată de calculator pentru a controla mașinile-unelte automate. Codul G este uneori
denumit limbajul de programare G, care nu trebuie confundat cu limbajul de programare
G LabVIEW.
Codul G este un limbaj în care oamenii spun mașinilor - unelte informatice cum să facă ceva. "Cum"
este definit prin diferite instrucțiuni cu privire la unde să se miște, cât de repede să se miște și pe ce
direcție să se miște.
Implementări[modificare | modificare sursă]
Prima implementare a unui limbaj de programare de control numeric a fost dezvoltată la laboratorul
de Servomecanisme al MIT la sfârșitul anilor 2000
Coduri specifice[modificare | modificare sursă]
Codurile G sunt denumite și coduri/funcții pregătitoare. Acestea sunt orice cuvânt dintr-un program
de CNC care începe cu litera G urmat de un număr. În general, este un cod care spune mașinii
unelte ce tip de acțiune trebuie să efectueze, cum ar fi mișcarea rapidă (duce unealta cât mai
repede posibil prin spațiu la locul unde va avea loc tăierea).
Există și alte coduri; codurile-tip poate fi gândite ca regiștrii dintr-un calculator.
Termenul "Cod-G" este imprecis, acesta provine de la sensul literal al termenului, referindu-se la o
singură adresă literă și codurile specifice care pot fi formate cu ea (de exemplu, G00, G01, G28).
Dar, fiecare literă a alfabetului este folosită undeva în limbaj. Cu toate acestea, "Codul-G" este
numele comun al limbajului. [necesită citare]
Adrese litere[modificare | modificare sursă]
Unele adrese-litere sunt folosite doar la frezare sau doar la strunjire; cele mai multe sunt folosite în
ambele cazuri. Cele cu text aldin sunt cele mai folosite în programe.
Surse: Smid 2008;[1] Smid 2010;[2] Green et al. 1996.[3]
Variabilă Descriere Note
A Poziția absolută sau incrementală a axei A (axa de rotație în jurul
axei X)
B Poziția absolută sau incrementală a axei B (axa de rotație în jurul
axei Y)
C Poziția absolută sau incrementală a axei C (axa de rotație în jurul
axei Z)
D Definește numărul de compensare a razei D care este folosit
pentru adâncimea de tăiere pe strunguri.
E Coordonată auxiliară de precizie pentru filetarea pe strunguri
F Se măsoară în inci pe minut sau
Definește viteza de avans.
inci pe rotație
G De obicei comenzile G
Adresa funcțiilor pregătitoare precizează ce fel de mișcare
este dorită
H Definește numărul celulei de compensare a lungimii;
axa incrementală corespunzătoare axei X (ex: la o freză)
I Definește coordonatele centrului cercului pe axa X pentru funcțiile
pregătitoare de interpolare circulară elicoidală G02 sau G03.
De asemenea, utilizat ca un parametru în cadrul unor cicluri fixe.
J Definește coordonatele centrului cercului pe axa Y pentru funcțiile
pregătitoare de interpolare circulară elicoidală G02 sau G03.
De asemenea, utilizat ca un parametru în cadrul unor cicluri fixe.
K Definește coordonatele centrului cercului pe axa Z pentru funcțiile
pregătitoare de interpolare circulară elicoidală G02 sau G03.
De asemenea, utilizat ca un parametru în cadrul unor cicluri fixe.
L Stabilește numărul de repetări
M Funcții diverse
N Numărul blocului (liniei) din program
O Numărul programului
P dată auxiliară, timp de
Servește ca parametru adrese pentru diferite coduri G și M
întârziere, etc
Q dată auxiliară
R Definește raza de filetare
S Definește viteza a de rotire a arborelui
T Numărul sculei
U Axa incrementală corespunzătoare axei X
V Axa incrementală corespunzătoare axei Y
W Axa incrementală corespunzătoare axei Z
X Poziția absolută sau incrementală a axei X.
Y Poziția absolută sau incrementală a axei Y
Z Poziția absolută sau incrementală a axei Z
Lista de coduri G[modificare | modificare sursă]
Surse: Smid 2008;[1] Smid 2010;[2] Green et al. 1996.[3] Într-un bloc, tipul de comandă este determinat
de adresa G și de numărul care urmează după aceasta. Tabelul de mai jos conține codurile G
interpretate de comanda numerică, grupele și funcțiile pe care le conțin.
Notă: Modal înseamnă că un cod rămâne în vigoare până la înlocuirea sau anularea sa de către un alt cod permis. Non-
Modal înseamnă că se execută doar o singură dată. Vedeți, de exemplu, codurile G09, G61 și G64 de mai jos.
Frezare Strunjire
Cod Descriere Note
(M) (T)
G00 G00 v - deplasare la coordonata v. La
mișcările pe 2 sau 3 axe, în mod
tradițional, G00 (spre deosebire de G01)
nu se mișcă pe o singură linie dreaptă între
punctul inițial și punctul final. Se mișcă cu
valori diferite pe fiecare axă la viteza
Poziționare rapidă M T maximă până când se obține vectorul.
Programatorul trebuie să ia în considerare
ce obstacole pot fi în apropiere, pentru a
evita un accident. Unele mașini de oferta
vârtejuri interpolate ca o caracteristică
pentru ușurința de programare (în condiții
de siguranță să-și asume o linie dreaptă).
G01 Interpolare liniară M T G00 v F - deplasare la coordonata v cu
viteza de deplasare (avansul) F. Cel mai
comun cod pentru avans în timpul unei
tăieri. Programul specifică punctele de
început și de sfârșit, iar controlul
calculează automat ( interpolează)
punctele intermediare prin care trebuie să
treacă pentru a se produce o linie dreaptă
(de aici denumirea de "liniară"). Controlul
apoi calculează vitezele unghiulare la care
să se transforme axa șuruburilor
conducătoare prin intermediul
servomotoarelor sau a motoarelor cu
mișcare sacadată. Computerul efectuează
mii de calcule pe secundă, iar motoarele
trebuie să reacționeze rapid la fiecare
intrare. Astfel, traiectoria efectivă a
prelucrării are loc cu viteza de avans dată
pe o traiectorie cu o acuratețe liniară având
o precizie în limite foarte mici.
G02 Interpolare circulară,
spirală, elicoidală în sensul M T
acelor de ceas
G03 Interpolare circulară,
elicoidală în sens invers M T
acelor de ceas
G04 Întârziere M T
G05 P10000 Controlul conturului de
înaltă precizie - High-
M
precision contour control
(HPCC)
G05.1 Q1. Modul multi bufer activ. AI
M
Advanced Preview Control
G06.1 Prelucrare NURBS M
G07 Desemnarea axei imaginare M
G07.1 Interpolare cilindrică M
G09 Oprire precisă (în blocul
M T Versiunea sa modală este G61.
dat), non-modal
G10 Impunere dată [4]
M T
programabilă
G11 Anulare impunere dată
M T
programabilă
G12.1 Interpolarea în coordonate
M
polare activată
G13.1 Interpolarea în coordonate
M
polare dezactivată
G17 Comandă de coordonate
M
polare. Selectare plan XY
G18 Selectare plan ZX M T
G19 Selectare plan YZ M
G20 Programare în inchi M T
G21 Programare
M T
în milimetri (mm)
G28 Întoarcere programată în M T
punctul de referință
G30 Întoarcere programată la al
M T
doilea punct de referință
G31 Funcția de salt M
G32 Un singur punct de filetat,
stilul longhand (dacã nu se
T
utilizează un ciclu,
ex, G76)
G33 Filetare cu pas constant M
G33 Filetare T
G34 Filetare cu pas variabil M
G39 Compensarea sculei la
M
arcele de colț
G40 Anulare compensare a razei
M T Anulează G41 ori G42. -->
sculei
G41 Compensare a razei sculei
M T
la stânga
G42 Compensare a razei sculei
M T
la dreapta
G43 Compensare negativă a
M
lungimii sculei
G44 Compensare pozitivă a
M
lungimii sculei
G45 Creștere a ofsetului sculei M
G46 Desreștere a ofsetului
M
sculei
G47 Creștere dublă a ofsetului
M
sculei
G48 Desreștere dublă a ofsetului
M
sculei
G49 Anulare compensare a
M Anulează G43 ori G44.
lungimii sculei
G50 Anulare modificare la scară T
G52 Sistem de coordonate local
- local coordinate system M
(LCS)
G53 Sistemul de coordonate al
M T
mașinii
G54 - G59 Selectare sisteme de
M T
coordonate de lucru 1-6
G54.1 P1 - sisteme extinse de
M T
P48 coordonate de lucru
G61 Tăiere precisă, modal M T Poate fi anulat cu G64. Versiunea sa non-
modală este G09.
G62 Corecție automată la colț M T
G64 Tăiere continuă prestabilită
(anulează modul Tăiere M T Anulează G61.
precisă)
G70 Ciclu fix, multiplu ciclu
repetitiv, pentru finisare T
(inclusiv contururi)
G71 ciclu fix, multiple ciclu
repetitiv, T
pentru rugozitate (axa Z)
G72 ciclu fix, multiple ciclu
repetitiv, pentru rugozitate T
(axa X)
G73 ciclu fix, multiplu ciclu
repetitiv, pentru rugozitate, T
cu model de repetiție
G73 Ciclu de găurire cu viteză
mare și retrageri pentru M
ruperea șpanului
G74 Ciclu de filetare în sens
invers al acelor de T
ceasornic
G74 Ciclu de filetare în sensul
M
acelor de ceasornic
G75 Ciclu de strunjire caneluri T
G76 Ciclu de alezare fină M
G76 Ciclu filetare, ciclu
T
repetitiv multiplu
G80 Anulare ciclu memorat M T
G81 Găurire, ciclu
M
de alezare parțială
G82 Găurire, ciclu de alezare la
M
retragere
G83 Ciclu de găurire cu
retrageri (pentru ruperea M
șpanului)
G84 Ciclu de filetare cu tarod,
M
direcția axului M03
G84.2 Ciclu de filetare rigidă cu
tarod, direcția axului M03, M
suport rigid de unelte
G84.3 Ciclu de filetare rigidă cu
tarod în sens invers acelor
de ceasornic, direcția M
axului M04, suport rigid de
unelte
G85 Ciclu de alezare M
G86 Ciclu de alezare cu
retragerea sculei cu avans M
rapid
G87 Ciclu de alezare, ciclu de
M
alezare la retragere
G88 boring cycle, feed
in/spindle stop/manual M
operation
G89 boring cycle, feed
M
in/dwell/feed out
G90 Programare absolută M T (B)
G91 Programare incrementală M T (B)
G92 registru de poziție
(programarea vectorului de
la zero la tool tip).
M T (B)
Schimbare coordonate de
lucru, impunere turație
maximă arbore
G92 Ciclu filetare, ciclu simplu T (A)
G94 Avansul pe minut M T (B)
G95 Avansul pe rotație M T (B)
G96 Viteza de suprafață
constantă - Constant T
surface speed (CSS)
G97 Viteza arborelui constantă M T
G98 Revenirea sculei la nivelul
Z inițial după execuția M
ciclului memorat
G98 Avansul pe minut (grup tip
T (A)
A)
G99 Revenirea sculei la
nivelul punctului R după M
execuția ciclului memorat
G99 Avansul pe rotație (grup tip
T (A)
A)
Lista de coduri M (diverse) și auxiliare[modificare | modificare sursă]
Codul M are o valoare numerică de maxim 3 cifre. Surse: Smid 2008;[1] Smid 2010;[2] Green et
al. 1996.[3]
M00, M01, M02, M30, M96, M97, M98, M99: coduri de control program
M03, M04, M05, M19: coduri rotire arbore
M06: cod de schimbare sculă
M07, M08, M09: coduri utilizare răcire
de la M11 - la M18: coduri schimbare treaptă de turație arbore.
Frezare Strunjire
Cod Descriere Note
(M) (T)
M00 Mașina-non-opțională se va opri
Oprire obligatorie programată. M T întotdeauna la atingerea M00 în execuția
programului.
M01 Mașina se va opri la M01 dacă operatorul
Oprire condiționată M T
apasă butonul opțional de oprire.
M02 Sfârșitul programului M T
M03 Rotire arbore (în sensul acelor de
M T
ceas)
M04 Rotire arbore (în sens invers
M T
acelor de ceas)
M05 oprire ax M T
M06 schimbare automatică a sculei T
M
(ATC) (uneori)
M07 utilizare răcire (intern) M T
M08 utilizare răcire (extern) M T
M09 oprire utilizare răcire M T
M10 Clemă paleți ON M
M11 Clemă paleți OFF M
M13 Rotire arbore (în sensul acelor de
M
ceas) cu răcire (aburi)
M19 orientarea axului M T
M21 Mirror ON, axa X M
M21 Înaintare păpușa mobilă T
M22 Mirror, axa Y M
M22 Retragere păpușa mobilă T
M23 Mirror OFF M
M23 Înlăturare Filetare progresivă ON T
M24 Înlăturare Filetare progresivă
T
OFF
M30 Sfârșitul programului, cu revenire
M T
la începutul programului
M41 Selecție viteză – viteza 1 T
M42 Selecție viteză – viteza 2 T
M43 Selecție viteză – viteza 3 T
M44 Selecție viteză – viteza 4 T
M48 Suprascriere viteză de avans -
M T
permisă
M49 Suprascriere viteză de avans -
M T
NU este permisă
M52 Descărcare ultimul instrument de
M T
pe arbore
M60 Schimbare automatică a paleților
M
- Automatic pallet change (APC)
M98 Apelare subprogram M T
M99 Sfârșit subprogram M T
Exemplu de program