Tipuri de programare a masinilor-unelte CNC

– Manuala
– Cu ajutorul unui soft CAM
– Conversationala

Programarea manuala

Este una din cele mai vechi metode utilizate si de altfel cea mai consumatoare de timp. Este necesar ca programatorul sa cunoasca foarte bine modul in care masina va raspunde comenzilor scrise. Se recomanda ca acest tip de programare sa fie utilizat doar pentru piese foarte simple pentru a evita posibilele tamponari ale sculei de masa masinii, de dispozitivul de orientare si fixare sau chiar de catre piesa.
Limbajul de programare CNC este unul standardizat, denumit printre programatori si operatori “cod G”. Denumirea vine de la faptul ca un program tipic de prelucrare contine in mare parte functii de tip G, functii prin care se controleaza traiectoria sculei. Bineinteles, pe langa functiile G, avem si alte functii, printre care M (functii diverse precum pornire/oprire scula rotativa/ arbore, pornire/oprire emulsie de racire), S (viteza/turatia sculei sau a arborelui), T (numarul sculei utilizate), X Y Z (coordonatele de deplasare a sculei pe axele XYZ), etc.
Trebuie mentionat faptul ca atat pentru strunjire, cat si pentru frezare, functiile sunt in esenta aceleasi. Singura diferenta sta in cunoasterea de catre programator a cinematicii de prelucrare, in functie de masina utilizata.

Principalele functii G si M utilizate in programare

In programarea masinilor unelte CNC, se regasesc o multitudine de functii G si M, cu nenumarate utilizari, insa in viata de zi cu zi, urmatoarele functii sunt absolut esentiale, iar un programator si chiar si un operator trebuie sa le cunoasca foarte bine.
G0 – deplasare rapida
G1 – interpolare liniara
G2 – interpolare circulara in sens orar
G3 – interpolare circulara in sens antiorar
G17, G18, G19 – alegerea planului de lucru (XY; XZ; YZ)
G20 – programare in sistem imperial – inch
G21 – programare in sistem metric – mm
G40 – anulare compensare scula
G41 – compensare scula in stanga
G42 – compensare scula in dreapta
G43 – compensare in plus pentru lungime scula
G44 – compensare in minus pentru lungime scula
G49 – anulare compesare lungime scula
G80 – anulare cicluri gaurire
G81 – ciclu gaurire simpla
G82 – ciclu gaurire cu intarziere
G83 – ciclu gaurire in trepte
G84 – ciclu tarodare
G90– programare in coordonate absolute
G91 – programare in coordonate incrementale
G96 – turatie in functie de viteza de aschiere (setata prin codul S)
G97 – turatie constanta (setata prin codul S)
M3 – pornire arbore/scula in sens orar
M4 – pornire arbore/scula in sens antiorar
M5 – oprire arbore/ scula
M6 – schimbare scula
M8 – pornire emulsie
M9 – oprire emulsie
M30 – sfarsit de program

Exemplu de program de frezare CNC

Mai jos se regaseste o secventa de cod pentru o operatie de frezare in care se utilizeaza o freza cilindro-frontala a carei traiectorie se regaseste in imaginea din partea dreapta. Analizand “codul G” rand cu rand, vom definifiecare functie in parte.

In primul rand se declara functiile de siguranta. Ideal este ca acest rand sa fie folosit la toate programele scrise, pentru ca programatorul sa se asigure ca masina va citi programul in modul gandit de el.

G17 – selectarea planului de lucru “XY”
G94 – tip avans “mm/min”
G40 – anulare compensare scula
G80 – anulare cicluri de gaurire
G90 – coordonate absolute

Randul 2 este dedicat alegerii sculei cu care se face prelucrarea.

Tx – nr. sculei din magazia de scule
M6 – functia de schimbare a sculei

In randul 3 se alege sistemul de coordinate al piesei (G54, G55, …, G59)

Functiile G54-G59 sunt functii de atribuire 0 piesa (sistemul de coordinate dupa care se va efectua prelucrarea acesteia). Atunci cand prelucram o singura piesa pe masa masinii, atribuim de obicei functia G54 pentru 0 piesa. In situatia in care vrem sa prelucram mai multe piese pe masa masinii, trei spre exemplu, pentru fiecare piesa vom atribui cate o functie astfel:
Piesa 1 → G54
Piesa 2 → G55
Piesa 3 → G56
Aceste functii sunt foarte utile deoarece programatorul nu va trebui sa calculeze pozitiile fiecarei piese in parte, in raport cu un singur sistem de coordonate. Va calcula o singura data coordonatele, spre exemplu pentru G54, dupa care doar va copia coordonatele pentru celelalte 2 piese. Ramane in sarcina operatorului sa atribuie coordonatele pentru G55 si G56.

Randul 4 este utilizat pentru aducerea sculei intr-o pozitie apropiata fata de piesa.

G0 – deplasare rapida
XYZ – coordonatele deplasarii fata de 0 piesa (G54)
Aici se poate observa ca varful sculei se deplaseaza pe X si Y in pozitia 0, dar la o inaltime de 10 mm fata de piesa.

In randul 5 se declara viteza de aschiere (turatia sculei) si sensul de rotatie a sculei

G97 – tip viteaza de rotatie scula (rpm)
S1500 – valoarea turatiei 1500
M3 – sens rotatie (in sens orar)

In randul 6 se declara compensarea sculei

G43 – comprensare lungime scula (distanta de la varful sculei la fata portsculei)
H1 – apelare numar de ordine al compensarii (T1→H1, T2→H2, ….)

Randul 7 – pornire emulsie M8

Randul 8 – aducerea pe axa Z a sculei in pozitia de aschiere

G1 – interpolare liniara
F150 – valoarea vitezei de avans 150mm/min
In acest rand, scula va intra pentru prima data in contact cu materialul piesei. Din coordonate ne dam seama ca freza va intra pe o adancime 0.5mm in material, cu un avans de 150mm/min.

Randul 10 – aschiere raza de racordare

G2 – interpolare circulara in sens orar
XY – coordnonatele punctului de destinatie a sculei
IJ – coordonatele centrului cercului relativ la pozitia de start a arcului

Randurile 11-14 – deplasari pe axele X si Y

Rand 15 – ridicare scula la 0.5mm deasupra piesei

Rand 16 – deplasare rapida pana la 10mm deasupra piesei

Rand 17 – oprire emulsie M9

Rand 18 – sfarsit program M30

Compensari dimensionale pentru scula

Trebuie mentionat faptul ca in programul de mai sus, traiectoria descrisa de linia albastra este traiectoria descrisa de centrul sculei aschietoare (in cazul nostru o freza cilindro-frontala). Problema este ca daca modificam scula, in sensul ca alegem una cu diametrul mai mare sau mai mic, desi traiectoria centrului sculei va fi aceeasi, piesa noastra va avea variatii dimensionale invers proportionale cu dimensiunile sculei. In imaginea de mai jos se poate observa exact acest lucru.

Cercul verde indica sectiunea unei freze cu diametrul de 5 mm, iar suprafata piesei generate de aceasta este desenata cu verde.
Cercul rosu indica sectiunea unei freze cu diametrul de 10 mm, iar suprafata piesei generate de aceasta este desenata cu rosu.
Totodata, trebuie mentionata si diminuarea razelor la cele doua colturi ale piesei. In cazul frezei mari (de culoare rosie), razele dispar cu desavarsire. Astfel, pe langa diferentele dimensionale, pot aparea si diferente de forma.
Pentru a combate acest fenomen, programatorul fie calculeaza coordonatele tinand cont de dimaterul sculei, fie poate folosi functiile G41 si G42 care compenseaza pentru aceasta diferenta data de raza sculei aschietoare.
In cazul nostru, tinand cont de sensul de deplasare al sculei, apelam la G41 (compensare pe stanga) astfel incat directoarea sculei sa fie mutatacu o raza in stanga traiectoriei albastre (cu 2.5 mm in cazul frezei verzi si cu 5mm in cazul frezei rosii).
Astfel, secventa de cod si miscarile obtinute in cazul utilizarii G41 sunt prezentate mai jos.

Din motive de siguranta, pana sa se faca vreo compensare, scula este directionata undeva in afara piesei de prelucrat (vezi randul 4). Urmeaza apoi compensarea pe lungime G43 si apoi compensarea pe raza (in stanga) G41. Atentie, cand se scriu codurile de compensare pe raza, fie ca e vorba de G41, fie de G42, neaparat trebuie mentionate si coordonatele X si Y in acelasi rand. G41 sau G42, singure in rand nu sunt recunoscute de controller.
G42 (compensare in dreapta) trebuie utilizata cand directia de deplasare a sculei este opusa fata de ceea ce este reprezentat mai sus. Secventa de cod si miscarile obtinute in cazul utilizarii G42 sunt reprezentate mai jos.

Dupa cum poate ati anticipat, functiile de compensare pe raza au o insemnatate foarte mare in programarea masinilor CNC, in special cand vine vorba de operatiuni de frezare. Cu aceste functii programatorul scapa de foarte multe calcule care trebuiau facute pentru a determina coordonatele in functie de diametrul sculei, eliminand totodata si o mare sursa de erori.
Compensarea pe lungime, G43, este insotitaintotdeauna de codul H (vezi randul 6 in secventele de cod de mai sus), care reprezinta valoarea masurata a lungimii sculei de la varf la flansa arborelui principal. Cifra din dreptul literei H ii indica controllerului unde anume sa caute valoarea lungimii sculei (valoare masurata de operator si introdusa in memoria masinii). De obicei literei H i se atribuie numarul aferent sculei, astfel H1 pentru T1, H2 pentru T2, etc.

Exemplu de program de strunjire CNC

Mai jos se regaseste o secventa de cod pentru o operatie de strunjire, iar traiectoria sculei se regaseste in imaginea urmatoare (marcata cu verde). La fel ca in cazul operatiei de frezare, vom analiza “codul G” rand cu rand si vom defini fiecare functie in parte.

La fel ca in cazul frezarii, mai intai se declara randul de siguranta.

G18 – selectarea planului de lucru “XZ”
G95 – tip avans “mm/rot”
G40 – anulare compensare scula
G80 – anulare cicluri de gaurire
G90 – coordonate absolute

Randul 2 este dedicat alegerii sculei cu care se face prelucrarea.

Tx – nr. sculei din magazia de scule
M6 – functia de schimbare a sculei

In randul 3 se alege sistemul de coordonate al piesei (G54, G55, …, G59)

Randul 4 este utilizat pentru aducerea sculei intr-o pozitie apropiata fata de piesa.

G0 – deplasare rapida
XYZ – coordonatele deplasarii fata de 0 piesa (G54)
Aici se poate observa ca varful cutitului de strung se deplaseaza pe Z, la o distanta de 3 mm fata de piesa.

In randul 5 se declara viteza de aschiere (turatia piesei) si sensul de rotatie a piesei

G96 – tip viteza de rotatie piesa (m/min)
S60 – valoarea vitezei de aschiere 60 m/min
M3 – sens rotatie (in sens orar)
Atentie, cand se foloseste G96, turatia piesei va varia in functie de pozitia cutitului de strung fata de axa piesei.

Rand 6 – pornire emulsie M8

Rand 7 – aducerea pe axa Z a sculei in pozitia de aschiere

G1 – interpolare liniara
F 0.05 – valoarea vitezei de avans 0.05 mm/rot

Rand8 – aschiere suprafata frontala dincolo de centrul axei

Se merge dincolo de axa pentru a garanta faptul ca la final piesa nu va prezenta resturi de material neaschiat.

Rand 9 – interpolare liniara pana la pozitia de incepere a razei de racordare

Randul 10 – executie raza de racordare R2

G03 – interpolare circulara in sens antiorar
I, K – coordonatele centrului cercului dupa care se executa raza, in raport cu punctul de plecare

Rand 11 – interpolare liniara pana la cota de 15 pe Z

Rand 12 – executie suprafata tronconica

Rand 13 – interpolare liniara pana la cota de 50 pe Z

Rand 14 – deplasare scula la 2 mm fata de piesa

Rand 15 – oprire emulsie

Rand 16 – sfarsit program M30

In cazul strunjirii se poate observa ca nu am mai apelat la functiile de compensare dimensionala din cauza ca aschierea se face, teoretic, cu o scula cu varf punctiform. Singurul lucru care trebuie neaparat facut in cazul strungurilor, este declararea razei la varf a sculei, raza care este data in specificatia cutitului de catre producator.
Din ce se poate observa mai sus, programarea CNC-urilor intr-un mod eficient, poate fi facuta doar de cineva care pe langa o cunoastere foarte buna a functiilor enumerate mai sus, trebuie sa cunoasa foarte bine si procedeele de aschiere, cinematica masinii, desenul de executie, sculele aschietoare, port sculele utilizate, fortele de strangere ale piesei si rigiditatea masinii in ansamblu. Toate aceste lucruri sunt importante pentru ca in functie de acestea, poate alege intr-un mod cat mai judicious regimurile de aschiere si poate obtine piese de calitate.

Cu ajutorul unui soft CAM

In cazul unor piese cu suprafete complexe, programarea manuala devine foarte complicata. Pe langa o cunoastere foarte buna a masinii si a procedeelor de aschiere, programatorul trebuie sa aiba si cunostinte foarte bune de matematica, pentru a determina coordonatele traiectoriei sculei. Nu in ultimul rand, trebuie facut si un test fizic al modului in care se prelucreaza piesa. In cazul pieselor complexe, intotdeauna testul releva faptul ca trebuiesc facute modificari, care de cele mai multe sunt foarte laborioase. Toate aceste modificari si intarzieri se traduc in costuri foarte mari, necompetitive. Pentru a simplifica programarea unor astfel de piese, computerele ne sar din nou in ajutor prin intermediul soft-urilor CAM (Computer Aided Manufacturing). Cu ajutorul acestor soft-uri, se pleaca de la modelul semifabricatului si sunt simulate toate operatiile de aschiere pana cand se ajunge la dimensiunile si forma piesei finite, definite in soft-ul CAD. Simularea astfel obtinuta va fi tradusa in “cod G” cu ajutorul unui post-procesor specific masinii pe care se va executa prelucrarea. Pe langa simplificarea programarii, soft-urile CAM permit chiar validarea programului piesei prin simularea aschierii in mediul virtual, fara a mai pierde timp cu teste fizice facute pe masina.
Bineinteles, toate aceste beneficii vin cu un cost destul de ridicat. Pe langa costul soft-ului care se ridica la nivelul a catorva mii de euro, este nevoie si de o persoana care sa aibe bune abilitati de lucru cu computerul si care sa cunoasca, asa cum am spus si in paragraful de mai sus, totul despre masina CNC cu care se va executa prelucrarea cat si procedeele de aschiere care se preteaza pentru piesa considerata.

Conversational

Programarea conversationala a aparut din dorinta inginerilor de a permite operatorilor CNC sa execute piese simple, fara interventia unui programator. Cu acest tip de programare, operatorii nici nu trebuie sa cunoasca “codul G”, intrucat acestia nu trebuie decat sa selecteze din meniul masinii tipul de piesa ce va fi prelucrat, apoi sa introduca cotele piesei. Acest tip de programare este specific mai ales routerelor CNC, a masinilor de debitat (plasma,laser, jet abraziv, etc), dar si a centrelor de prelucrat moderne.

Concluzie

In concluzie, activitatea de programare a masinilor-unelte CNC necesita cunoasterea unui numar foarte mare de aspecte privind prelucrarea prin aschiere, insa cu ajutorul echipei Amcatec puteti trece cu usurinta peste aceste obstacole, va putem usura activitatea si va putem ajuta sa deveniti profitabili in cel mai scurt timp.