Programarea mașinilor-unelte cu comandă numerică
G-code | |
programarea mașinilor-unelte cu comandă numerică | |
Extensii fișiere | .mpt, .mpf .nc și alte câteva |
---|---|
Paradigmă | Procedural, Imperativ |
Apărut în | anii 1950 (prima ediție) |
Proiectat de | Massachusetts Institute of Technology |
Implementări majore | multe, în special de la Siemens Sinumerik, FANUC, Haas, Heidenhain, 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 | 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 | Descreștere a ofsetului sculei | M | ||
G47 | Creștere dublă a ofsetului sculei | M | ||
G48 | Descreș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ă]
Abrevieri utilizate de către programatori și operatori
[modificare | modificare sursă]Vezi și
[modificare | modificare sursă]- Mașină-unealtă cu comandă numerică
- Imprimare 3D
- Canned cycle
- LinuxCNC -software liber pentru CNC cu multe resurse pentru documentarea codului G
Extended developments
[modificare | modificare sursă]Concepte similare
[modificare | modificare sursă]Concerns during application
[modificare | modificare sursă]- Cutter location, cutter compensation, offset parameters
- Coordinate systems
Referințe și note
[modificare | modificare sursă]- ^ a b c Smid 2008. .
- ^ a b c Smid 2010. .
- ^ a b c Green 1996, pp. 1162–1226. .
- ^ „copie arhivă”. Arhivat din original la . Accesat în . Parametru necunoscut
|arhivat=
ignorat (ajutor); Mai multe valori specificate pentru|urlarhivă=
și|archive-url=
(ajutor); Mai multe valori specificate pentru|deadurl=
și|dead-url=
(ajutor)
Bibliografie
[modificare | modificare sursă]Legături externe
[modificare | modificare sursă]- CNC G-Code and M-Code Programming Arhivat în , la Wayback Machine.
- 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 Arhivat în , la Wayback Machine. Has several links (including history of MIT Servo Lab)
- Complete list of G-code used by most 3D printer