Programarea mașinilor-unelte cu comandă numerică

De la Wikipedia, enciclopedia liberă
Sari la navigare Sari la căutare
G-code
Extensii fișiere.mpt, .mpf .nc și alte câteva
ParadigmăProcedural, Imperativ
Apărut înanii 1950 (prima ediție)
Dezvoltat deMassachusetts Institute of Technology
Implementări majoremulte, în special de la Siemens Sinumerik, FANUC, Haas, Heidenhain, Mazak. Există și o implementare standard descrisă în ISO 6983.

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 1000


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 Definește viteza de avans. Se măsoară în inci pe minut sau inci pe rotație
G Adresa funcțiilor pregătitoare De obicei comenzile G 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 Servește ca parametru adrese pentru diferite coduri G și M dată auxiliară, timp de î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.
Cod Descriere Frezare
( M )
Strunjire
( T )
Note
G00 Poziționare rapidă M T 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 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 acelor de ceas M T
G03 Interpolare circulară, elicoidală în sens invers acelor de ceas M T
G04 Întârziere M T
G05 P10000 Controlul conturului de înaltă precizie - High-precision contour control (HPCC) M  
G05.1 Q1. Modul multi bufer activ. AI Advanced Preview Control M  
G06.1 Prelucrare NURBS M  
G07 Desemnarea axei imaginare M    
G07.1 Interpolare cilindrică M    
G09 Oprire precisă (în blocul dat), non-modal M T Versiunea sa modală este G61.
G10 Impunere dată programabilă M T [4]
G11 Anulare impunere dată programabilă M T  
G12.1 Interpolarea în coordonate polare activată M  
G13.1 Interpolarea în coordonate polare dezactivată M  
G17 Comandă de coordonate polare. Selectare plan XY M    
G18 Selectare plan ZX M T
G19 Selectare plan YZ M    
G20 Programare în inchi M T
G21 Programare în milimetri (mm) M T
G28 Întoarcere programată în punctul de referință M T
G30 Întoarcere programată la al doilea punct de referință M T
G31 Funcția de salt M    
G32 Un singur punct de filetat, stilul longhand (dacã nu se utilizează un ciclu, ex, G76)   T
G33 Filetare cu pas constant M    
G33 Filetare   T
G34 Filetare cu pas variabil M    
G39 Compensarea sculei la arcele de colț M    
G40 Anulare compensare a razei sculei M T Anulează G41 ori G42. -->
G41 Compensare a razei sculei la stânga M T
G42 Compensare a razei sculei la dreapta M T
G43 Compensare negativă a lungimii sculei M  
G44 Compensare pozitivă a lungimii sculei M  
G45 Creștere a ofsetului sculei M    
G46 Desreștere a ofsetului sculei M    
G47 Creștere dublă a ofsetului sculei M    
G48 Desreștere dublă a ofsetului sculei M    
G49 Anulare compensare a lungimii sculei M   Anulează G43 ori G44.
G50 Anulare modificare la scară   T
G52 Sistem de coordonate local - local coordinate system (LCS) M  
G53 Sistemul de coordonate al mașinii M T
G54 - G59 Selectare sisteme de coordonate de lucru 1-6 M T
G54.1 P1 - P48 sisteme extinse de coordonate de lucru M T
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 precisă) M T Anulează G61.
G70 Ciclu fix, multiplu ciclu repetitiv, pentru finisare (inclusiv contururi)   T  
G71 ciclu fix, multiple ciclu repetitiv, pentru rugozitate (axa Z)   T  
G72 ciclu fix, multiple ciclu repetitiv, pentru rugozitate (axa X)   T  
G73 ciclu fix, multiplu ciclu repetitiv, pentru rugozitate, cu model de repetiție   T  
G73 Ciclu de găurire cu viteză mare și retrageri pentru ruperea șpanului M  
G74 Ciclu de filetare în sens invers al acelor de ceasornic   T  
G74 Ciclu de filetare în sensul acelor de ceasornic M  
G75 Ciclu de strunjire caneluri   T  
G76 Ciclu de alezare fină M  
G76 Ciclu filetare, ciclu repetitiv multiplu   T  
G80 Anulare ciclu memorat M T
G81 Găurire, ciclu de alezare parțială M  
G82 Găurire, ciclu de alezare la retragere M  
G83 Ciclu de găurire cu retrageri (pentru ruperea șpanului) M  
G84 Ciclu de filetare cu tarod, direcția axului M03 M  
G84.2 Ciclu de filetare rigidă cu tarod, direcția axului M03, suport rigid de unelte M  
G84.3 Ciclu de filetare rigidă cu tarod în sens invers acelor de ceasornic, direcția axului M04, suport rigid de unelte M  
G85 Ciclu de alezare M  
G86 Ciclu de alezare cu retragerea sculei cu avans rapid M  
G87 Ciclu de alezare, ciclu de alezare la retragere M  
G88 boring cycle, feed in/spindle stop/manual operation M    
G89 boring cycle, feed in/dwell/feed out M  
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). Schimbare coordonate de lucru, impunere turație maximă arbore M T (B)
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 surface speed (CSS)   T
G97 Viteza arborelui constantă M T
G98 Revenirea sculei la nivelul Z inițial după execuția ciclului memorat M    
G98 Avansul pe minut (grup tip A)   T (A)
G99 Revenirea sculei la nivelul punctului R după execuția ciclului memorat M    
G99 Avansul pe rotație (grup tip A)   T (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.
Cod   Descriere Frezare
( M )
Strunjire
( T )
Note
M00 Oprire obligatorie programată. M T Mașina-non-opțională se va opri întotdeauna la atingerea M00 în execuția programului.
M01 Oprire condiționată M T Mașina se va opri la M01 dacă operatorul apasă butonul opțional de oprire.
M02 Sfârșitul programului M T
M03 Rotire arbore (în sensul acelor de ceas) M T
M04 Rotire arbore (în sens invers acelor de ceas) M T
M05 oprire ax M T  
M06 schimbare automatică a sculei (ATC) M T (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 ceas) cu răcire (aburi) M  
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ă OFF   T  
M30 Sfârșitul programului, cu revenire la începutul programului M T
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 - permisă M T  
M49 Suprascriere viteză de avans - NU este permisă M T
M52 Descărcare ultimul instrument de pe arbore M T
M60 Schimbare automatică a paleților - Automatic pallet change (APC) M  
M98 Apelare subprogram M T
M99 Sfârșit subprogram M T

Exemplu de program[modificare | modificare sursă]

Tool Path for program


Abrevieri utilizate de către programatori și operatori[modificare | modificare sursă]

Vezi și[modificare | modificare sursă]

Extended developments[modificare | modificare sursă]

Concepte similare[modificare | modificare sursă]

Concerns during application[modificare | modificare sursă]

Referințe și note[modificare | modificare sursă]

Bibliografie[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]

  • CNC G-Code and M-Code Programming
  • Tutorial for G-code
  • Kramer, T. R.; Proctor, F. M.; Messina, E. R. (), The NIST RS274NGC Interpreter – Version 3, NIST, NISTIR 6556 
  • http://museum.mit.edu/150/86 Has several links (including history of MIT Servo Lab)
  • Complete list of G-code used by most 3D printer

Format:Prelucrarea metalelor