Universitatea Politehnica Bucureşti
Facultatea de Automatică şi Calculatoare
Departamentul de Automatică şi Ingineria Sistemelor
Absolvent
Tiberius Mihai
Coordonator
Conf.dr.ing Cătălin Petrescu
București 2013
LUCRARE DE LICENŢĂ
Sistem de tăiere 2D cu comandă numerică
2
Cuprins
1. Introducere ................................................................................................................ 3
2. Mașini cu control numeric ....................................................................................... 4
2.1 Scurt istoric ................................................................................................... 4
2.2 Caracteristici generale ................................................................................... 5
2.3 Axele unei mașini unelte cu comandă numerică ........................................... 7
2.4 Principalele părți componente ....................................................................... 8
2.5 Tipuri de operații executate ......................................................................... 10
2.6 Comanda numerică ...................................................................................... 11
2.6.1 Fabricarea asistată de calculator .......................................................... 11
2.6.2 Formatul dxf ........................................................................................ 12
2.6.3 Limbajul Gcode ................................................................................... 13
2.6.4 Mecanismul de interpolare .................................................................. 14
2.6.4.1 Interpolarea circulară ................................................................. 15
2.6.4.2 Algoritmul Bresenham ............................................................... 16
3. Soluția dezvoltată .................................................................................................... 18
3.1 Mașina de decupare ..................................................................................... 18
3.1.1 Componentele mecanice ale dispozitivului ......................................... 19
3.1.2 Componentele electrice ....................................................................... 21
3.2 Dispozitivul de control ................................................................................ 27
3.2.1 Driverul motoarelor pas-cu-pas ........................................................... 27
3.2.2 Circuitul de comandă ........................................................................... 39
3.3 Algoritmul de comandă ............................................................................... 41
3.3.1 Principalele funcții ale programului .................................................... 41
3.3.2 Interfața grafică a programului ............................................................ 42
3.3.3 Algoritmul de generare al comenzii .................................................... 44
3.3.4 Algoritmul de interpretare Gcode ........................................................ 45
4. Concluzii .................................................................................................................. 47
Bibliografie .................................................................................................................... 48
3
1. Introducere
Mașinile cu comandă numerică au apărut ca răspuns la necesitatea realizării de profile
complexe cu un grad mare de precizie și cu costuri de fabricație cât mai scăzute. Acestea sunt
întâlnite în mai multe ramuri ale industriei precum industria constructoare de mașini, industria
prelucrării materialelor metalice si nemetalice, industria aerospațială.
Principala caracteristică prin care se diferențiază aceste mașini este rapiditatea trecerii
de la etapa de proiectare la realizarea piesei, aceasta fiind realizată precis și în conformitate
cu specificațiile de proiectare.
Această lucrare prezintă o modalitate de realizare unui sistem de decupare 2D, de
dimensiuni reduse. Prin intermediul acestuia va fi prezentat modul de funcționare al unui
astfel de dispozitiv cu comandă numerică. Sistemul propus este o mașina cu 2.5 axe, doar
axele X și Y fiind folosite în prelucrarea piesei, axa Z fiind folosită doar pentru ridicarea și
coborârea capului de prelucrare.
Pentru a comanda dispozitivul am folosit un program bazat pe citirea modelului stocat
într-un fișier DXF și traducerea acestuia în comenzi Gcode care sa poată fi apoi executate de
către acesta.
Lucrarea este structurata în patru capitole astfel:
Capitolul 2 prezintă noțiuni de bază despre mașinile cu control numeric
incluzând o prezentare generală a structurii unui astfel de dispozitiv, principalele
operații care se pretează la astfel de prelucrări precum și definirea unei
modalități de comandă a dispozitivului.
Capitolul 3 prezintă modul de realizare al mașinii 2D din punct de vedere al
ansamblului mecanic, al circuitului electronic de comandă al motoarelor și al
programului software.
Capitolul 4 prezintă rezultatele obținute în urma punerii în funcțiune a
dispozitivului precum și îmbunătățiri ulterioare care vor fi aduse dispozitivului.
4
2. Mașini cu control numeric
2.1 Scurt istoric
Comanda numerică reprezintă executarea unui set de instrucțiuni stocate pe un dispozitiv
extern. Prin raportare la aceasta definiție prima mașina cu comandă numerică este considerată
a fi mașina de țesut inventată J.M. Jacquard la începutul secolului XIX.
Sistemele cu control numeric au apărut la sfârșitul anilor ’40 și începutul anilor ’50 și erau
bazate pe poziționarea capului de prelucrare în anumite puncte a căror poziție era citită de pe
cartele perforate.
Termenul de control numeric a luat naștere odată cu John T. Parsons. Compania acestuia a
construit o mașina automată de debitare în care liniile care trebuiau realizate erau definite ca o
succesiune de puncte, stocate pe cartele. Această metodă nu a avut succes deoarece
componentele mecanice nu răspundeau liniar la comenzile date, liniile rezultate având
neregularități indiferent de numărul punctelor.
Soluția a venit în urma colaborării cu MIT (Massachusetts Institute of Technology) prin
introducerea unui sistem de control în bucla închisă. MIT a îmbunătățit designul lui Parsons
prin introducerea unui mecanism de interpolare; mașina nu mai decupa numai în punctele A
și B, ci se mișca printr-o tranziție lină între acestea, realizând o linie fină iar numărul de
puncte necesar realizării modelului a scăzut foarte mult - mașina tăia linii netede în loc să
simuleze o linie printr-o mulțime de puncte.
De asemenea au fost dezvoltate programe de generare automată a cartelelor de control
prin intermediul unor programe rulate pe computer, reducându-se substanțial timpul de
realizare a acestora.
Comenzile pentru piesele prototip erau programate manual pe cartele perforate acestea
fiind folosite pentru comandarea mișcărilor mașinii. Odată cu dezvoltarea computerului
Whirlwind al MIT, au fost realizate programe pentru realizarea cartelelor în mod automat.
Utilizatorul introducea o listă de comenzi și viteze iar programul calcula punctele necesare
realizării profilului și genera automat cartela. Acest program a mărit eficiența micșorând
substanțial timpul de realizare al decupării.
Odată cu apariția microprocesoarelor s-au redus costurile de implementare a sistemelor și
astăzi aproape toate mașinile cu comandă numerică sunt dotate cu un astfel de dispozitiv.
Introducerea acestor mașini în procesele de producție pe scară largă a mărit
productivitatea și a redus costurile de fabricație. Creșterea gradului de automatizare în
procesul de fabricație a dus la creșterea calității și a preciziei fiind în conformitate cu cerințele
impuse prin proiectare. De asemenea procesele în care este necesară intervenția operatorului
uman au scăzut considerabil.
In momentul actual exista programe de comandă a acestor utilaje care sunt puse gratuit la
dispoziția utilizatorilor fapt ce a condus la răspândirea dispozitivelor de acest fel, acestea
putând fi construite și utilizate de persoane fără o pregătire strict specializată în domeniu.
5
Metodele de transfer și stocare a programelor de comandă sunt reprezentate de discurile
floppy, memoriile de tip flash sau rețelele LAN.
Cel mai popular limbaj de programare al acestor dispozitive este reprezentat de Gcode. Cu
toate acestea nu există un limbaj standardizat de programare, fiecare producător venind în
ajutorul clienților cu propria soluție.
Mașinile CNC s-au impus în toate domeniile de activitate industrială, atât în cazul
producției de serie cât și în cazul prototipurilor reprezentând o modalitate eficientă de
realizare a unor produse de o calitate superioară și precizie ridicată cu costuri reduse.
2.2 Caracteristici generale
Mașinile cu comandă numerică sunt folosite pentru prelucrarea unor piese din materiale
solide: metal, lemn, plastic.
Echipamentele de tip CNC sunt întâlnite în general în cazul următoarelor tipuri de
mașini:
Mașini de găurit
Mașini de frezat
Mașini de rectificat
Strunguri
Mașini de stanțat
Mașini de prelucrat prin electroeroziune cu fir
Mașini de prelucrat prin eroziune electrică și chimică
Mașini de prelucrat cu plasmă
Echipamentele cu control numeric se clasifică în funcție de următoarele caracteristici:
A. tipul dispozitivului de comandă
B. modul de deplasare al mașinii
C. existenta elementelor de măsură a poziției
A. În funcție de tipul dispozitivului de comandă, se clasifică în dispozitive cu control
numeric și dispozitive cu control numeric asistat de calculator.
B. În funcție de modul de deplasare al mașinii, se clasifică în sisteme punct-la-punct și
sisteme cu traiectorie continuă.
Sistemul de deplasare punct-la-punct este folosit pentru deplasarea uneltei de la un punct
la alt punct. Acest tip de deplasare este folosit în cazul operației de găurire. Deplasarea se
poate realiza în trei moduri:
6
Deplasare de-a lungul axelor (Fig. 2.1): se comandă deplasarea pe axa X din
punctul inițial până se ajunge la coordonata dorită apoi se comandă deplasarea
pe axa Y până se ajunge la punctul final.
Deplasare la un unghi de 45 de grade (Fig. 2.2): se comandă deplasarea atât pe
axa X cât și pe axa Y până la atingerea uneia dintre coordonatele punctului
final (mișcarea 1) și apoi se continuă deplasarea de-a lungul axei
corespunzătoare până la atingerea punctului final dorit (mișcarea 2).
Deplasare în linie (Fig. 2.3): deplasarea se realizează astfel încât distanța între
cele două puncte să fie minimă - de-a lungul liniei descrise de cele două puncte.
Punct
Initial
Punct
Final Punct
Final
Punct
Final
Punct
Initial
Punct
Initial
y
x
Miscarea 1
Miscarea 2
Miscarea 1
Miscarea 2
Fig. 2.1 Fig. 2.2 Fig. 2.3
Sistemul cu traiectorie continuă este folosit în cazul în care se dorește trasarea unor linii
sau a unor curbe și presupune capacitatea sistemului de a controla viteza de deplasare pe cele
două axe a capului mașinii de prelucrat. În cazul liniilor curbe, pentru a se asigura
continuitatea traiectoriei este necesară realizarea operației de interpolare.
C. În funcție de existența elementelor de măsurare a poziției, se clasifică în sisteme de
control în buclă deschisă și sisteme de control în buclă închisă.
Sistemele de control în buclă deschisă (Fig. 2.4) au avantajul unui cost și a unei
complexități a controlerului mai reduse. Acestea sunt folosite în special în cazul sistemelor de
deplasare punct-la-punct deoarece în cazul acestui tip de sistem precizia nu reprezintă un
factor la fel de important. Principalul dezavantaj al acestei configurații este reprezentat de
faptul ca erorile de poziție nu pot fi măsurate iar în cazul deplasării pe distante mari acestea
pot fi însemnate. Tot acest tip de control poate fi folosit și în cazul sistemelor cu deplasare
continuă dar numai în cazul în care viteza de deplasare este mică iar rezistența la înaintare și
forțele de frecare din sistem sunt mici.
Sistemele de control în buclă închisă (Fig. 2.5) presupun existența unui traductor de
poziție aferent fiecărei axe în funcție de care se măsoară poziția capului de prelucrare. Aceste
sisteme au avantajul unei precizii ridicate dar crește complexitatea controlerului și prețul
aferent dispozitivului. Aceasta configurație este folosită în cazul sistemelor cu traiectorie
continuă pentru a se asigura gradul de precizie indicat în condițiile unei rezistente mari a
materialului și a unei viteze de deplasare ridicate a uneltei.
7
Fig. 2.4
Sistem de comandă în buclă deschisă
Fig.2.5
Sistem de comandă în buclă închisă
2.3 Axele unei mașini unelte cu comandă numerică
Modelul teoretic pentru o mașină-unealtă cu comandă numerică are 6 axe: 3 axe
corespunzătoare mișcării de translație fiecare dintre acestea fiind perpendiculară pe planul
determinat de celelalte doua notate cu X, Y și Z și trei axe de rotație suprapuse peste axele de
rotație.
Fig. 2.6 Sistem de axe pentru mașină cu comandă numerică
Mașinile unelte întâlnite în general în industrie sunt mașini cu 3 axe corespunzătoare
mișcării de translație.
8
Axa Z este orientată pe o direcție paralelă cu axa arborelui principal al mașinii, aceasta
diferind în funcție de tipul mașinii. În cazul în care mașina nu are un arbore principal direcția
axei Z va fi perpendiculară pe suprafața determinată de axele X și Y. Sensul de deplasare
pozitiv pentru această axă este cel prin care se mărește distanța dintre capul ce prelucrare și
piesa prelucrată.
Axa X este în general localizată în planul orizontal și este paralelă cu suprafața de
montare a piesei. Aceasta este axa principală în funcție de care se face deplasarea piesei
prelucrate.
Axa Y are întotdeauna direcția perpendiculară pe celelalte 2 axe rezultând astfel un
sistem ortogonal de deplasare.
Obținerea formelor dorite se realizează prin combinația dintre mișcarea piesei prelucrate
și mișcarea sculei. Aceasta mișcare reprezintă atât mișcarea de translație în cazul mașinilor
unelte uzuale cât și cea de rotație în cazul în care aceasta dispune de mai mult de 3 axe.
In cazul în care cele 3 axe (X ,Y, Z) sunt comandate simultan mașina este considerata o
mașină cu 3 axe. În cazul în care doar axele X și Y sunt folosite pentru realizarea formelor,
axa Z având doar rolul de a ridica sau coborî scula mașina se numește mașină cu 2.5 axe
(două axe și jumătate).
2.4 Principalele părți componente
Mașinile unelte cu comandă numerică sunt într-o mare varietate de forme și variante
constructive. Indiferent de tipul lor toate aceste mașini cuprind următoarele componente:
Mecanismul de ghidaj liniar reprezintă una din componentele principale dintr-o
mașină de prelucrare cu comanda numerică. Acesta are rolul de a asigura o
mișcare liniară precisă cu frecări foarte mici între părțile componente și de a
susține greutatea pieselor așezate pe acesta. Cele mai întrebuințate categorii de
astfel de sisteme sunt:
a. cu bare metalice și rulmenți liniari
b. cu șine și patine.
Axele de antrenare au rolul de a transforma mișcările de rotație preluate de la
motoare în mișcări de translație corespunzătoare fiecărei axe în parte. Acest
lucru se realizează prin intermediul unui mecanism de tip șurub-piuliță. Pentru a
se reduce jocul dintre șurub și piuliță se folosesc în general piulițe cu profil
trapezoidal. O altă soluție este reprezentată de mecanismul ax cu bile-piuliță
care oferă cele mai bune performante dar costurile unui astfel de sistem sunt mai
ridicate.
Elementele de acționare pot fi electrice, hidraulice sau pneumatice dar cele mai
utilizate sunt cele de electrice. La rândul lor motoarele electrice folosite în
mașinile cu control numeric se împart în motoare pas-cu-pas și servomotoare.
Motoarele pas-cu-pas convertesc intrările digitale primite în mișcări de rotație
și au avantajul faptului ca sunt ușor de controlat. Acest tip de motoare este
folosit în general în cazul controlului în buclă deschisă dar poate fi folosit și
9
în cazul controlului în bucla închisă. Există două tipuri de motoare pas-cu-pas în
funcție de modul de conectare al bobinelor acestora: unipolare și bipolare.
Avantajele acestui tip de motor le reprezintă:
a. posibilitatea de a funcționa și în regim de frână eliminând în general
necesitatea unor dispozitive de blocare auxiliare
b. atingerea cuplului maxim pentru frecvențe mici ale impulsurilor de
comandă
c. acuratețea crescută
d. comanda este digitală și nu analogică eliminând astfel dotarea
sistemului cu regulatoare suplimentare
e. gradul de uzură este scăzut.
Dezavantajele cuprind:
a. scăderea cuplului odată cu creșterea vitezei
b. posibilitatea ca motorul să se blocheze în cazul în care sarcina
conectată la axul motorului depășește cuplul maxim admisibil
c. lipsa posibilității de detecție a erorilor în cazul controlului în buclă
deschisă.
Fig. 2.7 Motor pas-cu-pas
Servomotoarele sunt folosite în special în sistemele de control în buclă
închisă, unde viteza de deplasare, puterea furnizată de motoare reprezintă factori
importanți. Pentru a se asigura precizia deplasării sunt necesare traductoare de
deplasare. Cele mai utilizate tipuri de servomotoare sunt:
a. servomotoare de curent continuu cu perii
b. servomotoare de curent continuu fără perii
c. servomotoare de curent alternativ.
10
Fig. 2.8 Servomotoare
Traductoarele de poziție au rolul de a furniza dispozitivului de control poziția
exactă a capului de prelucrare pe fiecare axă de deplasare. Acestea se clasifică în
funcție de modul de determinare a poziției în: dispozitive incrementale și
absolute iar în funcție de mișcarea codificată în traductoare de poziție
unghiulară și traductoare de deplasare liniară.
În cazul sistemelor de control în buclă deschisă traductoarele vor fi înlocuite de
limitatoare de capăt de cursă.
Mașina de prelucrare este folosită pentru obținerea pieselor specificate prin
program. Capul de prelucrare folosit depinde de tipul de material utilizat pentru
realizarea pieselor precum și de operația realizată. Astfel se pot folosi burghie,
freze, jet de plasmă, jet de apă, laser.
Controlerul sistemului are rolul de a prelua instrucțiunile de la calculatorul de
proces, de a le interpreta și de a genera comenzile necesare către elementele de
execuție. În funcție de tipul acestor elemente comenzile pot fi numerice sau
analogice. Comenzile date de către acest dispozitiv se elaborează de către un
program stocat în memoria internă controlerului în funcție de instrucțiunile
primite precum și a datelor de la senzori.
Calculatorul de proces reprezintă calculatorul pe care se rulează programul care
interpretează modelul CAD (Computer Aided Design) și care transmite
comenzile necesare către controlerul sistemului de prelucrare astfel încât
operația de prelucrare să se realizeze la parametrii optimi, iar modelul să
respecte cerințele de proiectare.
2.5 Tipuri de operații executate
Principalele operații de prelucrare mecanică prin așchiere sunt:
Strunjirea reprezintă prelucrarea piesei prin așchiere efectuată pe strung cu
ajutorul cuțitelor de strung. Mișcarea principală de rotație este executată de piesa
fixată în dispozitivele de prindere iar mișcarea secundară de avans rectilinie sau
11
curbilinie, este executată de cuțitele de strung. Mișcarea rectilinie poate fi
paralelă cu arborele principal al strungului (avans longitudinal), perpendiculară
pe arborele principal (avans transversal), sau înclinată față de axa arborelui
principal pentru obținerea suprafețelor conice.
Găurirea reprezintă o altă operație de prelucrare prin așchiere având ca scop
obținerea de găuri străpunse sau înfundate în piesa prelucrată. Găurile se obțin
cu ajutorul burghielor în cazul prelucrării piesei pe mașini de găurit sau strung
sau cu ajutorul frezelor în găuririi cu ajutorul frezelor.
Frezarea reprezintă procedeul de prelucrare prin așchiere a piesei în care scula
are o mișcare de rotație iar mișcarea de avans pe cele trei direcții (longitudinală,
transversală sau verticală) este executată fie de către piesa fie de către sculă.
Acest tip de procedeu este folosit în cazul prelucrării pieselor tridimensionale
cat și în cazul prelucrării în două dimensiuni. Freza execută un număr mare de
tăieturi în material la o singură trecere acest lucru realizându-se prin folosirea
unei freze cu un număr mare de dinți, o turație mare a frezei sau o viteză de
așchiere mică. În general se folosește o combinație intre cele 3 metode.
Alezarea este folosită în prelucrarea metalelor și unealta cu ajutorul cărora se
realizează se numește alezor. Alezoarele de precizie sunt folosite pentru mărirea
ușoară unei găuri cilindrice sau conice date în prealabil pentru îmbunătățirea
formei geometrice, a netezimii și a preciziei dimensionale. Există și alezoare
care nu sunt destinate netezirii, acestea fiind folosite pentru lărgirea găurilor sau
pentru îndepărtarea bavurilor.
Alte operații realizate de către mașinile cu control numeric includ tăierea cu arc electric,
tăierea cu plasmă și tăierea cu jet de apă.
2.6 Comanda numerică
2.6.1 Fabricarea asistată de calculator
Datorită evoluției rapide și a lărgirii domeniilor de aplicație a calculatoarelor acestea au
devenit indispensabile în procesul de fabricație. Fabricația asistată de calculator (eng.
Computer Aided Manufacturing - CAM) se realizează prin utilizarea unui software dedicat
care comandă mașina-unealtă cu comandă numerică pe baza unui model al piesei care se
dorește a fi obținută generat într-un program de tip CAD.
Software-ul are rolul de a interpreta fișierul CAD, de a planifica traseul pe care se va
deplasa scula de prelucrare astfel încât distanța parcursă și pierderile de material să fie
minime și de a transmite comenzile într-un format în care sa poată fi interpretate de
controlerul mașinii.
O modalitate simplă de a asigura compatibilitatea între fișierul CAD și software-ul
CAM este salvarea fișierului în formatul dxf, specificațiile acestui format fiind disponibile
gratuit pe site-ul Autodesk.
12
2.6.2 Formatul dxf
Formatul dxf a fost dezvoltat de compania Autodesk pentru a permite schimbul de date
între AutoCAD și programe dezvoltate de terțe părți. Datele modelelor realizate în AutoCAD
sunt salvate sub forma de text codificate prin cod ASCII.
Informațiile unui fișier dxf pot fi citite cu ajutorul oricărui editor de text. Această
opțiune oferă o modalitate rapidă de transfer a datelor, interpretarea acestora făcându-se pe
baza modului de organizare a fișierului dxf.
Structura unui fișier dxf standard este:
Secțiunea HEADER conține informații despre model. Fiecare din parametrii incluși în
această secțiune are asociat un nume și o valoare.
Secțiunea CLASSES conține informații despre clasele modelului aflate în
secțiunile BLOCKS, ENTITIES și OBJECTS ale fișierului.
Secțiunea TABLES conține definițiile obiectelor din fișier care au un nume
asociat. Aceasta secțiune poate conține mai multe tabele, fiecare din acestea
conținând un număr variabil de entități. Printre tabelele conținute de aceasta
secțiune se număra: Application ID, Block Record, Dimension Style, Layer,
Linetype, s.a.
Secțiunea BLOCKS conține definițiile obiectelor aferente fiecărui bloc din
din model
Secțiunea OBJECTS conține datele aferente obiectelor care nu sunt grafice.
Acestea sunt folosite în cadrul aplicațiilor AutoLISP și ObjectARX.
Secțiunea THUMBNAILIMAGE conține detalii despre imaginea asociată
fișierului pentru previzionare. Aceasta secțiune nu există întotdeauna în fișier ea
fiind inclusă numai în cazul în care o imagine de acest tip a fost salvată odată cu
fișierul.
Eticheta EOF care marchează sfârșitul fișierului
Principalele figuri geometrice folosite în cadrul unui desen cu două dimensiuni sunt
definite în secțiunea ENTITIES. Acestea sunt arce, cercuri și linii.
Liniile sunt codificate prin:
10/20/30 + valoare - coordonatele X / Y / Z ale punctului de început
11 / 21 / 31 30 + valoare - coordonatele X / Y / Z ale punctului de final
39 + valoare - grosimea liniei (opțional)
Arcele sunt codificate prin:
10/20/30 + valoare - coordonatele X / Y / Z ale punctului de centru
40 + valoare - raza arcului
50 + valoare - valoarea unghiului de început
51 + valoare - valoarea unghiului de final
39 + valoare - grosimea liniei
13
Unghiurile de început și de final sunt măsurate în sens trigonometric fata de 0.
Cercurile sunt codificate prin:
10/20/30 + valoare - coordonatele X / Y / Z ale punctului de centru
40 + valoare - raza arcului
39 + valoare - grosimea liniei
Mașinile CNC nu pot să lucreze cu formatul dxf deoarece acestea pot procesa în general
doar comenzi simple precum realizarea de linii între 2 puncte și interpolare circulară. Pentru
realizarea unor forme mai complexe, acestea trebuie descompuse într-o listă ce comenzi care
să poată fi înțeleasă de către mașină. Unul dintre principalele limbaje de programare pentru
mașinile cu control numeric este reprezentat de Gcode.
2.6.3 Limbajul Gcode
Gcode reprezintă cel mai răspândit limbaj de programare a mașinilor-unelte cu control
numeric întâlnit astăzi. Prin intermediul codurilor Gcode mașinii îi sunt furnizate date despre
punctul în care trebuie să ajungă, viteza de deplasare și traseul pe care trebuie sa îl urmeze
pentru a ajunge la punctul respectiv.
Principalele coduri întâlnite sunt:
G00 - deplasare rapidă - este folosită în cazul poziționării capului de prelucrare
într-un nou punct. Deplasarea se face, în general prin mișcarea pe fiecare dintre
axe, cu viteza maximă, până se ating coordonatele punctului dorit. Traiectoria
acestei mișcări poate varia în funcție de existența unor obstacole între punctul
curent și punctul țintă.
G01 - interpolare liniară - comanda specifică punctul în care se dorește să se
ajungă iar controlerul calculează comanda necesară pentru deplasarea pana la
punctul respectiv în linie dreaptă. Datorită preciziei mari a motoarelor linia
rezultată va avea o precizie mare.
G02 - interpolare circulară în sensul acelor de ceasornic - în acest caz traiectoria
descrisă de capul de prelucrare va fi un arc de cerc. Acest cod va fi urmat de I, J,
K, fiecare dintre aceste litere fiind urmată de o valoare. Aceste valori reprezintă
coordonatele centrului arcului care va fi decupat.
O altă metodă este metoda prin care se specifica raza R. Avantajul metodei IJK
îl reprezintă verificarea coordonatelor centrului cercului prin compararea
distanței dintre punctul curent și centrul arcului cu distanța dintre punctul
destinație și centru.
Pentru realizarea unor cercuri complete punctul destinație conținut de comandă
trebuie sa conțină coordonatele punctului curent.
14
G03 - interpolare circulară în sens trigonometric - la fel ca și în cazul G02 cu
diferența că mișcarea se execută în sens trigonometric.
G04 – temporizare – mașina stă în așteptare un anumit interval de timp.
G28 – reîntoarcere la origine – comanda de întoarcere la punctul de coordonate
(0,0,0)
X,Y,Z + valori reprezintă coordonatele punctului destinație
F + valoare reprezintă rata de avans – viteza cu care se deplasează capul de
prelucrare pe fiecare dintre cele 3 axe
2.6.4 Mecanismul de interpolare
În general mașinile CNC nu pot procesa decât comenzi de tipul linie și arc circular. În
cazul în care se dorește realizarea unor curbe mai complexe, acestea trebuie descompuse într-
un set de segmente care sunt transmise apoi controlerului mașinii cu comandă numerică.
Sistemele de tip CAD actuale realizează interpolarea curbelor prin divizarea acestora
într-un număr mare de segmente care aproximează curba respectiva și apoi transmit aceasta
listă de segmente către mașina cu control numeric în vederea prelucrării piesei. Determinarea
numărului de linii optim se face pe baza unui compromis între precizia dorita în realizarea
piesei și rata de avans a sculei.
Majoritatea mașinilor cu comandă numerică nu au o viteză constantă pe tot parcursul
parcurgerii segmentului deoarece necesită o perioadă de timp pentru a accelera până la viteza
maximă și o perioada pentru decelerare. Astfel în cazul în care se dorește o rata de avans
ridicată, numărul de segmente trebuie sa fie cât mai mic pentru ca întârzierile provocate de
accelerare și decelerare să fie minime.
Pentru a se găsi punctele intermediare care aproximează curba se poate folosi un criteriu
integral de forma:
∑ ∫ ) ))
(1)
unde :
) {
(2)
15
ui reprezintă coordonata punctului pe axa X
N reprezintă numărul de segmente
Variabilele și ̅̅ ̅̅ ̅ se vor calcula prin metoda celor mai mici pătrate.
2.6.4.1 Interpolarea circulară
Acest tip de interpolare presupune împărțirea unui arc de cerc într-un număr de
segmente curbe de lungime egală, lungimea segmentelor fiind aleasă astfel încât eroarea de
aproximare sa fie minimă.
Deoarece puterea de calcul a controlerului este limitată, calculul punctelor nu este
posibil prin metoda prezentată mai sus. În acest caz lungimea segmentelor va fi aleasa ca fiind
constantă indiferent de parametrii arcului.
Pentru calculul punctelor aflate pe circumferința cercului se vor defini următoarele
mărimi:
r - raza cercului din care face parte arcul
l - lungimea arcului folosit ca bază pentru segmentare
L - lungimea arcului care trebuie segmentat
xc , yc - coordonatele centrului cercului
a - valoarea unghiului corespunzător punctului de început al arcului
b - valoarea unghiului corespunzător capătului arcului
Numărul de segmente obținute în urma acestei operații va fi:
[
] (3)
unde operatorul „[ ] ” denotă parte întreagă.
Coordonatele punctelor ̅̅ ̅̅ ̅ se pot deduce cu ajutorul formulelor:
{ )
)
)
)
(4)
16
{ )
)
)
)
(5)
Relația (4) este folosită în cazul în care deplasarea se face în sensul trigonometric iar
relația (5) este folosită în cazul în care deplasarea se face în sensul acelor de ceasornic.
Pentru realizarea liniilor se va folosi algoritmul lui Bresenham.
2.6.4.2 Algoritmul Bresenham
Acest algoritm este folosit pentru aproximarea unei linii drepte între 2 puncte date.
Principalul domeniu în care acest algoritm este întâlnit este grafica, fiind folosit pentru
afișarea liniilor pe ecranul calculatorului. Este unul dintre primii algoritmi dezvoltați în
grafica computațională.
Acest algoritm reprezintă o variantă îmbunătățită a algoritmului DDA (Digital
Differential Analzyer - Analizor Diferențial Digital). Avantajul major al algoritmului este
reprezentat de faptul că folosește numai operații cu numere întregi (adunări, scăderi, deplasări
pe biți) în timp ce DDA folosește operații cu numere în format virgula mobilă.
Prin folosirea numerelor întregi timpul în care instrucțiunile sunt efectuate este foarte
scurt conferind algoritmului simplitate și rapiditate. Datorită acestor caracteristici acesta este
implementat la nivel firmware în majoritatea procesoarelor grafice și a imprimantelor.
Algoritmul compară valoarea întreaga „y” corespunzătoare pixelului cu centrul cel mai
apropiat de valoarea y reală pentru același x. Astfel între 2 pași succesivi ai algoritmului
valoarea poate rămână aceeași sau poate fi incrementată cu 1 în funcție de valoarea erorii -
mai mică sau mai mare decât 0,5.
Fig. 2.9 Reprezentarea unei linii prin folosirea algoritmului Bresenham
Algoritmul poate fi reprezentat prin următoarea schema logică:
17
x0,y0,x1,y1
abs(y1-y0)>abs(x1-x0)
x0 ↔y0x1 ↔y1
inv=1deltax=abs(x1-x0)deltay=abs(y1-y0)eroare=deltax/2
y=y0x=x0
x0<x1
inc=1 inc=-1
eroare<0
deseneaza_punct(y,x) deseneaza_punct(y,x)
x<x1
eroare=eroare-deltayx=x+1
y=y+inceroare=eroare+deltax
inv==1
DA NU
DA NU
DA NU
DA
DA
NU
stop
NU
Fig.2.10 Schema logică a algoritmului Bresenham
Acest algoritm poate fi folosit și în cazul mașinilor-unelte cu comandă numerică prin
înlocuirea pixelilor cu pătratele formate prin mișcarea cu un pas a sculei pe direcțiile X și Y.
18
3. Soluția dezvoltată
3.1 Mașina de decupare
Mașinile de decupat cu control numeric sunt disponibile într-o mare varietate de
modele constructive. Fiecare dintre modele are propriile avantaje și dezavantaje legate de
putere, precizie și preț.
Pentru a putea construi mașina a trebuit sa selectez un model care sa poată fi
implementat practic cu costuri rezonabile și cu ajutorul unor componente disponibile în
magazine specializate.
Modelul selectat este un model cu trei axe de translație în care masa de lucru se afla pe
axa X iar pe axa Z va fi montată o mașină de găurit care va avea rolul de unealtă de
prelucrare.
Pentru realizarea fizică a mașinii de decupare a fost necesară în prealabil o etapă de
proiectare a parții mecanice.
Prin realizarea unui model 3D, este posibilă ajustarea dimensiunilor modelului astfel
încât produsul final să îndeplinească cerințele impuse prin proiectare. Modelul 3D a fost
realizat în Autocad și poate fi observat în figura de mai jos:
Fig. 3.1 Model CNC 3D
Componentele care formează ansamblul pot fi observate în figura de mai sus, acestea
fiind evidențiate prin culori diferite pentru a facilita distingerea lor.
Dimensiunile maxime ale pieselor care pot fi prelucrate cu ajutorul acestui sistem sunt
120 mm lungime și 50 mm lățime.
19
3.1.1 Componentele mecanice ale dispozitivului
Componentele mecanice utilizate în construcția dispozitivului sunt reprezentate de :
Cadrul de susținere – a fost realizat din placi de PAL melaminat cu grosimea de
15 mm. Dispozitivul are un cadru dreptunghiular cu dimensiunile 260x450 mm.
Pe cele 2 laturi care reprezintă lățimile s-au montat suporturile de capăt pentru
fixarea axelor pentru ghidare longitudinală. Pe celelalte 2 laturi (lungimile
cadrului) au fost fixate 2 plăci cu profil trapezoidal fixate perpendicular pe
suprafața de așezare.
Acestea au rolul de a susține sistemul de ghidare pentru axa Y aferentă mișcării
transversale, suporturile de capăt fiind montate pe acestea.
Pentru ridicarea și coborârea mașinii de găurit a fost realizat un cărucior care
este montat pe axa Y. Pe cărucior se află o palcă mobilă pe care practic se
montează mașina de găurit.
Sistemul de ghidare - a fost realizat cu ajutorul a câte 2 axe metalice (bare) de
ghidare pentru fiecare direcție de deplasare. Pe fiecare bară sunt montați câte 2
rulmenți cu ajutorul cărora se realizează culisarea parților mobile. Folosirea
rulmenților are avantajul realizării unui ghidaj precis. Totodată coeficientul de
frecare dintre piesele aflate în mișcare este redus substanțial. Pentru a reduce și
mai mult frecarea am folosit ulei pentru mecanisme fine, acesta fiind aplicat pe
axele de ghidare.
Fig. 3.2 Rulmenți în carcasă si axe de ghidare
Suportul de capăt al ghidajelor liniare - asigură prinderea axelor de ghidare de
cadrul de susținere. Dimensiunea găurii pentru fixarea axului în suport a fost
astfel aleasă încât sa împiedice deplasarea sau rotirea axului.
Fig. 3.3 Suporturi de capăt pentru ghidaje liniare
20
Mecanismul de antrenare – realizează transformarea mișcării de rotație în
mișcare de translație. Transformarea se realizează prin intermediul unui
mecanism de tip șurub-piuliță. Șurubul și piulița au un profil trapezoidal,
conferind sistemului un raport preț-precizie foarte bun. Piulița este realizată din
poliamidă iar șurubul conducător este metalic, ajustajul astfel obținut fiind unul
cu joc mic. Pasul șurubului este de 3 mm. Rezultă că o rotație completă a
șurubului (360°) se traduce într-o mișcare de translație de 3 mm a părții mobile
atașate.
Fig. 3.4 Mecanism șurub-piuliță și carcasă piuliță trapezoidală
Cuplajele – au rolul de asamblare a capătului șurubului conducător cu axul
motorului, urmărindu-se ca axele geometrice ale acestora să formeze o linie
dreaptă. Cuplajele utilizate în cadrul proiectului sunt cuplaje liniare rigide care
leagă capetele arborilor fără joc. Acestea realizate din aluminiu iar piesa de
cauciuc din mijlocul acestora are rolul de a absorbi șocurile și de a elimina jocul
dintre cele 2 capete.
Fig. 3.5 Cuplaj elastic
Elemente de fixare
Șuruburile - pentru fixarea suporturilor de capăt și a motoarelor au fost folosite
șuruburi cu dimensiunea M5x30mm, pentru fixarea rulmenților și a carcasei
piuliței au fost folosite șuruburi autofiletante iar pentru îmbinarea
componentelor din PAL au fost folosite șuruburi cu cap înecat de 6x40mm.
Plăcute metalice cu profil L au fost folosite pentru fixarea limitatoarelor de
cursă.
Sistemul realizat poate fi observat în figura de mai jos:
21
Legenda
1. Cadru
2. Sistem ghidare
3. Suport de capăt
4. Mecanism antrenare
5. Cuplaj
6. Plăcuță profil L
7. Motor pas-cu-pas
8. Microîntrerupător
Fig. 3.6 Sistemul de decupare realizat
3.1.2 Componentele electrice
Componentele electrice utilizate în construcția dispozitivului sunt:
Elementele de acționare – reprezentate de motoarele pas-cu-pas. Aceste motoare
sunt ușor de controlat în condițiile utilizării unui sistem de conducere în buclă
deschisă, precizia este foarte bună iar costurile au fost reduse prin eliminarea
elementelor de măsurare a poziției (traductoare de poziție).
Limitatoarele de cursă - reprezentate de microîntreruptoare cu lamelă, având un
contact normal închis și un contact normal deschis. Microîntreruptoarele sunt
folosite pentru a indica atingerea limitei minime sau maxime, în cazul fiecăreia
dintre cele 3 axe evitând astfel distrugerea elementelor mecanice și electrice.
22
Motoare pas-cu pas
Un motor pas-cu pas reprezintă un convertor electromecanic care realizează
transformarea unui tren de impulsuri într-o mișcare de rotație a axului său. Această mișcare
este direct proporțională cu lungimea trenului.
Unghiul de pas reprezintă unghiul cu care se deplasează rotorul la aplicarea unui impuls
de comandă și este dependent de modul de construcție al acestuia. În cazul unui motor pas-
cu-pas cu N faze și p dinți rotorici, unghiul de pas este dat de formula:
(6)
Nu este recomandată folosirea acestui tip de motoare pentru deplasarea unor sarcini
mari cu viteze foarte ridicate deoarece cuplul care poate fi dezvoltat de motor scade odată cu
creșterea vitezei. În figura 2. Este prezentată caracteristica cuplu-viteza a motorului pas cu
pas.
Cu
plu
[N
m]
Viteză[pps]
Vitezămaximă
Fig. 3.7 Caracteristica cuplu-viteză a motorului pas-cu-pas
În funcție de modul de construcție motoarele pas-cu-pas acestea se împart în:
Motoare cu magnet permanent
Motoare cu reluctanță (rezistență magnetică) variabilă
Motoare hibride
Motoarele cu magnet permanent au rotorul realizat dintr-un magnet permanent.
Principalul avantaj al acestui tip de motor îl reprezintă costul redus de fabricație. Un alt
avantaj este reprezentat de faptul ca rotorul nu necesită dinți. Acest tip de motor este întâlnit
în cadrul sistemului de poziționare al capului de citire al CD-ROM-ului sau al imprimantelor.
Motoarele cu reluctanța variabilă se caracterizează prin faptul ca rotorul cât și statorul
nu sunt confecționate din magneți permanenți. Rotorul este confecționat din fier moale sub
forma unei roti dințate. Statorul este realizat din același material iar numărul de poli statorici
este un multiplu par al numărului de faze al motorului. Numărul minim de faze al motorului
pentru a se permite un control bidirecțional este de 3.
23
In figura 3.8 este prezenta un motor pas-cu-pas cu rezistenta variabila având 3 faze cu
12 poli statorici și 8 poli rotorici.
Fig. 3.8 Motor cu reluctanță variabilă
În momentul în care una dintre faze este alimentată cu curent electric rotorul se mișca
astfel încât dinții rotorului să se alinieze cu dinții statorului. Datorită faptului ca numărul de
dinți ai statorului este diferit de cel al rotorului, numai 4 dintre dinții rotorului sunt aliniați cu
cei ai statorului (corespunzători fazei alimentate), ceilalți 4 fiind localizați între dinții
corespunzători fazelor nealimentate.
Prin alimentarea în ordine a fazelor A,B,C rotorul se va învârti în sensul acelor de
ceasornic, iar prin alimentarea în ordinea A,C,B sensul de rotație se schimba.
Motoarele hibride (Fig. 3.9) reprezintă o combinație între motoarele cu magneți
permanenți și motoarele cu reluctanță variabilă. Aceste motoare au poli statorici dințați iar
rotorul este reprezentat de 2 magneți permanenți cu dinți. Cei doi magneți sunt poziționați
astfel încât dinții primului magnet sa fie decalați cu un dinte fața de dinții celui de-al doilea
magnet.
STATOR ÎNFĂȘURARE
MAGNET POL SUD
MAGNET POL NORD
MAGNET POL SUD
MAGNET POL NORD
Fig. 3.9 Structura unui motor hibrid
Avantajele motoarelor pas-cu-pas hibride sunt reprezentate de faptul că pasul motorului
este mic (1.8° în general) în fiind ideal în cazul aplicațiilor în care se cere o precizie mare și
cuplul mare dezvoltat de acestea.
24
În cazul motoarelor pas-cu-pas cu reluctanță variabilă avantajele sunt reprezentate de
necesitatea efectuării unui număr mai mic de pași pentru a se realiza o rotație completă și
faptul ca momentul de inerție este redus, aceste proprietăți fiind utile atunci când se dorește
deplasarea rapidă unui obiect pe o distanță mare.
Pentru a simplifica structura dispozitivului de comandă majoritatea motoarelor pas-cu-
pas au 2 faze. În cazul acestui tip de motoare exista 2 tipuri de realizare a configurației
bobinelor: unipolare și bipolare.
Motoarele unipolare (Fig. 3.10) se caracterizează prin faptul ca bobina asociată fiecărei
faze are un, fiecare bobină fiind împărțită în 2 secțiuni. Acest fir este legat de obicei la
tensiunea de alimentare. Cele doua secțiuni ale unei bobine vor fi dispuse la 180° una față de
cealaltă. Fiecare dintre cele 4 secțiuni ale bobinelor va fi conectată succesiv la masă, astfel
fiind realizată mișcarea de rotație a motorului. Dispozitivul de control în acest caz va fi foarte
simplu necesitând un singur tranzistor pentru fiecare secțiune. În cazul acestor motoare
curentul circula prin înfășurare într-un singur sens.
Motoarele bipolare (Fig. 3.11) se caracterizează prin faptul ca exista o singura bobina
pentru fiecare fază. Sensul curentului prin bobina se poate schimba pentru a schimba
polaritatea perechii de poli. Dispozitivul de comanda va fi mai complicat, în general fiind
reprezentat de o punte H. Deoarece în cazul motoarelor bipolare este folosită întreaga bobină,
acestea pot dezvolta un cuplu mai mare daca un motor unipolar având aceeași masa.
Motoarele unipolare pot fi folosite și în configurație bipolara prin ignorarea firului
central. Montajul realizat astfel va fi identic cu cel al unui motor bipolar.
Fig. 3.10 Motor unipolar Fig. 3.11 Motor bipolar
Secvențe de comandă ale motoarelor pas-cu-pas
Deoarece un motor pas-cu-pas poate fi văzut ca o mașina de curent alternativ sincronă
formele de undă indicate pentru comanda unui astfel de motor sunt sinusoidale. Deoarece
impulsurile dreptunghiulare nu aproximează foarte bine o sinusoidă motorul va începe sa
vibreze.
Secvențele folosite în comanda motoarelor pas-cu-pas sunt:
Comanda în secvența simplă – se va alimenta numai una dintre fazele statorice.
Pentru a se realiza mișcarea de rotație fazele vor fi alimentate succesiv
25
(alimentarea unei faze se realizează simultan cu deconectarea fazei precedente)
până la atingerea poziției dorite. În cazul motoarelor pas-cu-pas bifazate
comanda are 4 pași. Acest tip de comandă se utilizează atunci când se dorește
un consum de energie minim
Comanda în secvență dublă - presupune alimentarea simultană a 2 faze pentru
rotirea cu un pas. Acest tip de comandă este folosit în cazul în care se dorește
obținerea cuplului maxim al motorului. În acest caz puterea consumată de motor
se dublează față de cazul precedent datorită alimentarii a 2 faze în locul uneia
singure.
Comanda mixtă(în jumătăți de pas) reprezintă o combinație între cele 2 metode
de mai sus. Comenzile din secvența simplă sunt alternate cu cele din secvență
dubla rezultând un ciclu cu 8 pași în cazul motoarelor bifazate. Unghiul de
rotație rezultat în acest caz este jumătate din pasul motorului astfel dublându-se
precizia mișcării. Dezavantajul acestui tip de comandă îl reprezintă cuplul
variabil dezvoltat de motor, acesta fiind mai mare decât în cazul secvenței
simple dar mai mic decât în cazul celei duble.
Comanda prin micropășire este asemănătoare comenzii în secvența dublă cu
diferența că curenții prin cele 2 faze au valori diferite de cea nominală, iar suma
lor este constantă și egala cu curentul nominal. Prin această metodă se pot
realiza poziționări până la1/32 din pasul motorului iar forma undei de comand«ă
este foarte apropiată de cea a unei sinusoide.
Secvențele de biți prin care se comandă motoarele în cazul rotației în sensul acelor de
ceasornic sunt prezentate în tabelul de mai jos:
Nume comandă
Nr.pas Valori logice
intrare
1a 1b 2a 2b
Comandă în secvență
simplă
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1
Comandă în secvență
dublă
1 1 0 0 1
2 0 1 1 0
3 0 0 1 1
4 1 1 0 0
Comanda mixtă
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1
26
Forțele care acționează asupra mecanismului șurub piuliță sunt reprezentate în figura de
mai jos.
Sarcină
Piuliță
Fig. 3.12 Distribuția forțelor în cazul mecanismului șurub-piuliță
Pentru a calcula cuplul motoarelor necesar pentru a ridica mașina de găurit au fost
utilizate următoarele formule:
) (7)
) (8)
) (9)
(10)
unde:
rm - raza medie a șurubului
μs – coeficientul de frecare dintre șurub și piuliță Fn – forța normală W – forța de apăsare a șurubului m - masa obiectului care trebuie ridicat g – accelerație gravitațională θn – unghiul la vârf al filetului α – unghiul de înclinare al spirei
Cuplul necesar rotirii șurubului rezultat în urma efectuării calculelor din relațiile (7) –
(10) pentru o masa de 2.5 kg este de 0.5 Nm. Acest calcul a fost efectuat pentru cazul ridicării
pe verticală a unei mașini de găurit și reprezintă cazul cel mai defavorabil de deplasare
necesitând cuplul cel mai mare pentru acționare.
27
Motoarele alese pentru acest proiect au următoarele caracteristici:
Cuplu[Nm] Tensiune [V] R[Ω] L(mH) I(A)
1,9 4,5 1,3 3,8 2,8
Valorile pentru rezistentă, inductanța și curent sunt corespunzătoare fiecărei bobine în
parte.
Cuplul motorului ales este mult mai mare decât cel necesar rotirii șurubului pentru a
putea fi folosit și la frecvente mai mari ale impulsurilor de comandă.
3.2 Dispozitivul de control
Controlul dispozitivului de prelucrat se realizează prin intermediul unor circuite
electronice controlate de către o placa Arduino. Prin intermediul controlerului astfel realizat
sunt este controlat modul de funcționare al motoarelor pas-cu pas aferente celor 3 axe de
deplasare.
3.2.1 Driverul motoarelor pas-cu-pas
Acest circuit are rolul de a transforma semnalul de ceas provenit de la plăcuța Arduino
în semnale de comandă, energizând bobinele motoarelor pas cu pas.
Pentru alimentarea motoarelor semnalele primite trebuie amplificate pentru a transmite
motorului o putere adecvată pentru a deplasa sarcina. În cazul aplicațiilor unde necesarul de
putere este mic se folosesc tranzistoare bipolare.
În cazul în care sunt necesare puteri mari pentru acționarea motoarelor, datorita faptului
ca tranzistoarele bipolare au un factor de amplificare scăzut, se folosesc tranzistoare
Darlington.
U+
Rm
Lm
T1
i(t)
Fig. 3.13 Schema de comandă a unei înfășurări
28
Principala problemă care apare în care se folosește o comandă cu o frecvență mare
constă în faptul că la întreruperea sau conectarea tensiunii de alimentare inductanța Lm a
înfășurării generează supratensiuni care se opun schimbării valorii curentului (element
inerțial).
În figura 3.13 se poate observa faptul ca singurul element de limitare al curentului este
reprezentat de rezistența Rm a înfășurării. Din această cauză tensiunea de alimentare trebuie
aleasă astfel încât valoarea acesteia să nu depășească curentul maxim admisibil prin înfășurare
și tranzistor.
Curentul care trece prin înfășurarea motorului variază după legea:
) (
) (11)
unde:
In = Un/Rm reprezintă curentul nominal al fazei
Te = Lm/Rm reprezintă constanta de timp a motorului
Lm – este inductivitatea fazei
Rm – este rezistența fazei
Un – este tensiunea nominala de alimentare
Pentru a se putea utiliza frecvențe de comandă mari ale motoarelor pas-cu-pas, este
necesar ca timpul de stabilizare a curentului t = [4÷5]Te la o valoare de [98÷99]% din
valoarea de regim staționar sa aibă o valoare cât mai mică.
Constanta de timp are în general valori destul de mari (uzual 3ms), rezultând frecvențe
de comandă mici – [67÷84]Hz.
Procedeele prin intermediul cărora se asigura creșterea rapidă a curentului se numesc
procedee de forțare. Reducerea timpului de creștere a curentului prin înfășurările unei faze se
realizează prin următoarele tehnici:
Forțarea prin introducerea unei rezistențe serie
Forțarea în tensiune prin alimentarea cu două tensiuni
Forțarea în tensiune de tip chopper
Forțarea prin rezistentă se bazează pe montarea în serie cu faza motorului a unei
rezistențe R, astfel micșorându-se constanta de timp a motorului.
Pentru a se păstra curentul nominal în al fazei tensiunea de alimentare va trebui mărită
de la valoarea Un = RmIn la valoarea Un = (Rm+R)In.
În figura este reprezentată forma de unda a curentului în cazul în care nu este conectată
rezistența serie (1) și în cazul conectării rezistentei (2).Pantele la conectare și respectiv la
deconectare sunt notate prin Te1 și Te2 și au valorile Te1 = Te2 = Lm/(Rm+R)
29
Fig. 3.14 Forma de undă a curentului în cazul forțării prin rezistență
Se observa faptul ca forțarea prin rezistență serie oferă un timp de comutație mai mic
decât în cazul neforțării dar randamentul montajului este slab datorită faptului ca o mare parte
din puterea furnizată de sursă se pierde, fiind disipată sub forma de căldură de către rezistența
R.
În cazul motoarelor unipolare, pentru a se economisi spațiu, numărul de rezistoare se
poate reduce la unul singur prin conectarea rezistentei între borna + a sursei de alimentare și
punctul comun al fazelor. Acest lucru este posibil datorită faptului ca în acest caz curentul
circulă într-un singur sens. În cazul motoarelor bipolare, datorită faptului ca sensul curentului
este reversibil, este necesară cate o rezistența pentru fiecare înfășurare în parte.
Forțarea prin alimentarea cu două tensiuni constă în aplicarea a unei tensiuni înalte U1
pe fiecare fază a motorului pas-cu-pas pe durata creșterii curentului până la valoarea
nominală, iar apoi motorul se alimentează cu tensiunea U2 , aceasta având rolul de a menține
curentul la valoarea nominală. Un model de schemă pentru această metoda este prezentat în
figura de mai jos:
U1
Lm
Rm
T1
D2
T2 D1
U2
Fig. 3.15 Forțarea prin alimentarea cu două tensiuni
30
În momentul începerii alimentării atât tranzistorul T1 cât și T2 sunt deschise astfel încât
tensiunea aplicată la bornele înfășurării este egală cu suma celor doua tensiuni (U1+U2), iar
dioda D1 este blocată. Deoarece nu există o rezistență serie care să limiteze curentul, acesta va
crește până la atingerea curentului nominal. După un timp scurt tranzistorul T2 este blocat iar
traseul curentului va fi de la sursa U1 prin dioda D2, înfășurarea fazei respective și tranzistorul
T1 și înapoi la sursă. Tensiunea U2 se alege astfel încât în In = U2/Rm. La sfârșitul unui impuls
de comandă se oprește și tranzistorul T1 curentul circulând prin diodele D1 și D2 și înfășurare.
Scăderea rapidă a curentului este asigurată prin intermediul prezentei în circuit a sursei de
alimentare U1.
Forma de undă pentru o perioadă de alimentare a bobinei este prezentată în figura 3.
.Timpii de creștere t1 și de scădere t2 pot fi calculați ușor în funcție de constanta de timp a
înfășurării.
i
t1 t2
U2/Rm
creștere către
(U1+U2)/Rm
timp
Fig. 3.16 Forma de undă a curentului în cazul alimentării cu două tensiuni
Formula de calcul pentru timpii t1 și t2 este:
[
)]
(12)
Raportul U1/U2 = K se numește factor de forțare. Prin introducerea în relația de mai sus
se obține:
(13)
Se poate observa faptul că timpii de creștere și de scădere se micșorează odată cu
creșterea lui K, deci odată cu mărirea lui U1.
Această tehnică prezintă dezavantaje cu privire la complicarea schemei de comandă,
necesitatea a două surse de alimentare și un număr mai mare de tranzistoare având tensiunea
maximă aplicabilă între colector și emitor UCEmax ridicată.
Forțarea de tip „chopper” - alimentara înfășurării se realizează cu o singură sursă
tensiune de alimentare U1 de valoare mare, aceasta fiind aplicată la bornele bobinei ori de câte
ori curentul scade sub valoarea nominală In. În figura de mai jos este prezentată o schema de
principiu pentru această variantă.
31
U1
Lm
Rm
Rc
T1
D2
T2
D1
uc
Fig. 3.17 Forțarea de tip chopper
Dacă semnalul de comandă pentru energizarea fazei este prezent tranzistorul T1 va fi
deschis iar comanda tranzistorului va fi făcută în funcție de valoarea tensiunii uc .
La începutul intervalului de energizare a tranzistorul T1, este saturat iar comparatorul
de tensiune din cadrul montajului este pornit. Deoarece curentul prin rezistența Rc este la
început zero, căderea de tensiune uc va fi zero iar tranzistorul T2 va fi deschis. Astfel la
bornele înfășurării este aplicată tensiunea de alimentare U1.
Deoarece tensiunea U1 are o valoare mare curentul prin înfășurare crește rapid până la
depășirea ușoară a valorii nominale. Tensiunea de control uc ia valoarea uc=RcIn+ε cu ε > 0,
aceasta valoare fiind suficientă pentru a comanda închiderea tranzistorului T2.
Circuitul format în acest caz cuprinde înfășurarea, tranzistorul T1, dioda D1, și rezistența
Rc. Curentul prin acest circuit va scădea încet datorită rezistenței mici a circuitului. În
momentul atingerii unei tensiuni de control uc=RcIn-ε tranzistorul T2 va fi din nou saturat.
Acest ciclu se repetă pe toată perioada în care este activ semnalul de comandă pentru
alimentarea fazei.
La finalul perioadei de comandă ambele tranzistoare sunt oprite iar curentul circulă prin
circuitul format de diodele D1,D2, sursa de tensiune și înfășurare. Deoarece sensul curentului
prin înfășurare este opus sursei de alimentare valoarea acestuia va scădea foarte rapid.
Datorită acestui fapt o mare parte din energia stocată în înfășurare va fi recuperată rezultând
un randament ridicat al montajului.’
În figura 3. Sunt evidențiate formele de unda în cazul acestui montaj precum și
perioadele de comutație ale tranzistoarelor T1 și T2.
32
Fig. 3.18 Forma de undă a curentului în cazul forțării de tip chopper
Montajul de tip ”chopper” are o structură mai complicată necesitând o structură de tip
„trigger Schmitt” pentru conectarea și deconectarea tensiunii de alimentare. Valorile pentru
tensiunea de control în cazul conectării și în cazul deconectării trebuie sa fie diferențiate
printr-un prag pentru a se scădea frecvența de comutare a tranzistorului T2.
Avantajul major al acestui tip de montaj este faptul că sursa de tensiune este utilizată la
potențial maxim, astfel viteza de funcționarecare poate fi obținută este cea maxima,
rezidentele de forțare serie sunt eliminate evitându-se pierderile de putere iar curentul prin
înfășurări este controlat precis.
Pentru comanda motoarelor am ales forțarea de tip „chopper” deoarece există avantajul
folosirii unei singure tensiuni de alimentare pentru motoare, iar pierderile de putere sunt
minime. Pentru realizarea acestui montaj am ales o schemă de montaj bazată pe combinația de
circuite L297+L298.
Circuitul L297
Circuitul L297 este un controler pentru motoare pas-cu-pas, prin intermediul căruia se
generează semnale de comandă pentru motoare bipolare bifazate sau motoare unipolare cu
patru faze. Acest circuit poate genera comenzi în secvență simplă, secvență dublă sau
secvență mixtă.
Numărul semnalelor de comandă de la microcontroler este limitat la două – un semnal
de ceas și un semnal stabilire a direcției de rotație al motorului(sens trigonometric sau sens
orar). Prin aceasta numărul de pini folosiți pentru comandă scade la jumătate, pinii
microcontrolerului putând fi folosiți pentru comanda sau monitorizarea altor dispozitive. De
asemenea procesorul va fi degrevat de calculul comenzilor, acesta trebuind numai sa genereze
un semnal de ceas în locul a patru semnale de comandă.
Principalele caracteristici ale circuitului L297 sunt:
Tensiunea de alimentare maximă: 7V
Tensiunea de intrare maximă aferentă nivelului logic „0”: 0.6V
Tensiunea de intrare minimă aferentă nivelului logic „1”: 1V
Tensiunea de intrare maximă aferentă nivelului logic „1”: Vs
Tensiunea de ieșire maximă aferentă nivelului logic „0”: 0.6V
33
Tensiunea de ieșire minimă aferentă nivelului logic „1”: 3.9V
Frecvența maximă a ceasului: 20 MHz
Configurația pinilor este prezentată în figura de mai jos:
Fig. 3.19 Circuitul L297
Circuitul L297 are la baza un translator care generează semnale de comandă pentru cele
trei tipuri de secvențe de comandă. Translatorul este alcătuit dintr-un numărător pe 3 biți
combinat cu un circuit de logică combinațională prin intermediul căruia se generează un cod
Grey aferent semnalelor de ieșire. Aceste semnale se generează pe baza semnalelor de intrare
CW/CCW și HALF/FULL.
În cazul utilizării valorii „1” a semnalului HALF/FULL secvența generată este de tip
mixtă și are 8 stări, corespunzătoare celor 8 combinații posibile ale semnalelor de ieșire. În
cazul utilizării valorii „0” logic pentru semnalul de intrare diferențierea între secvența simplă
și cea dublă se face în funcție de starea în care se afla numărătorul la momentul în care se
setează valoarea „0” a semnalului. Ambele comenzi din acest caz se bazează pe incrementarea
cu 2 a stării curente. Astfel dacă starea în care se află numărătorul reprezintă un număr par
secvența va fi simplă iar în cazul în care numărul este impar secvența va fi dublă.
O metodă de determinare a tipului de secvență care va fi selectată este prin intermediul
semnalului de ieșire HOME care indică poziția 1 a numărătorului (semnalul de comandă are
valoarea 0101). Dacă semnalul este activ prin selectarea modului FULL secvența va fi dublă.
Un alt mod de obținere a secvenței duble este prin oprirea și repornirea circuitului cu ajutorul
semnalului ENABLE. Pentru obținerea secvenței simple se verifică dacă semnalul HOME
este activ, iar apoi cu circuitul în poziția HALF se efectuează un pas și apoi se va trece la
poziția FULL.
În figura de mai jos este prezentată secvența generată de către numărător:
34
Fig. 3.20 Secvența de comandă generată de circuitul L297
Circuitul L297 oferă posibilitatea de a controla valoarea intensității curentului prin
intermediul a două circuite „chopper PWM”. Acestea pot fi folosite atât în cazul motoarelor
unipolare cât și în cazul celor bipolare.
Un circuit de tip „chopper” este alcătuit dintr-un comparator de tensiune și un circuit
basculant bistabil. La acestea se mai adăugă și o rezistentă pentru măsurarea curentului care
circulă prin înfășurare. Circuitul basculant este setat la fiecare impuls al oscilatorului intern al
circuitului. Astfel curentul prin înfășurări va crește până la ușoară depășire a tensiunii de
referința furnizată prin intermediul pinului de referința Vref. În acest moment circuitul
basculant este resetat pana la aplicarea următorului impuls de la oscilator.
Circuitul L298
Acest circuit este un circuit de tip „full H bridge”(punte H completă) folosit pentru
comanda unor sarcini de tip inductiv precum relee și motoare pas-cu-pas. Numele de „punte
H” vine de la modul de amplasare a al tranzistoarelor față de înfășurarea motorului.
În figura este prezentat un exemplu de punte H completă:
Fig. 3.21 Punte H
Atunci când tranzistoarele T1 și T4 sunt deschise curentul va circula de la sursa de
alimentare prin cele două tranzistoare și înfășurare. Prin închiderea tranzistoarelor și
deschiderea tranzistoarelor T2 și T3 se realizează schimbarea polarității înfășurărilor statorice.
Principalele caracteristici ale circuitului integrat L298 sunt:
35
Tensiunea maximă pentru alimentarea înfășurărilor motorului: 50V
Tensiunea maximă alimentare circuit: 7V
Tensiunea pe pinii de intrare: între -0.3 și 7 V
Căderea de tensiune pe rezistentele de măsurare a curentului: max. 2.3V
Schema electronică a driverului este următoarea:
Fig. 3.22 Schema electronică driver
36
Driverul este alcătuit din următoarele componente:
un circuit L297
un circuit L298
doi condensatori de 100μF
trei condensatori de 100nF
un condensator de 3.3nF
o rezistența de 22KΩ
patru rezistențe de 1Ω
o rezistența variabilă de 10 KΩ
trei rezistențe de 560 Ω
opt diode Schottky de 2A
un LED roșu
două led-uri bicolore roșu/verde
un comutator
terminale bloc
Condensatorii de 100μF sunt folosiți pentru a compensa fluctuațiile tensiunii de
alimentare iar condensatorii de 100nF sunt folosiți pentru a filtra zgomotele de frecvență
înaltă.
Frecvența oscilatorului intern al circuitului L297 se obține prin conectarea unui circuit
RC la pinul OSC al integratului. Frecvența se obține prin intermediul formulei:
(14)
Pentru ca circuitul să nu deranjeze persoanele din jur frecvența pentru circuit a fost
aleasă 20KHz aceasta frecvență fiind imperceptibilă urechii umane. Obținerea acesteia se face
cu ajutorul unei rezistențe de 22KΩ și al unui condensator de 3.3μF.
Pentru semnalizarea funcționarii corecte a circuitului au fost folosite 3 LED-uri. Un Led
de culoare roșie a fost folosit pentru semnalizarea prezentei tensiunii de alimentare. Pentru
semnalizarea prezenței curentului în înfășurările motorului precum și a sensului acestuia au
fost folosite LED-uri bicolore roșu/verde. Pentru a se limita curentul prin acestea au fost
folosite rezistențe de 560Ω.Valoarea acestora a fost calculată cu ajutorul formulei R =(Vss-
Ud)/Id, unde Vss este tensiunea de alimentare a înfășurărilor,Ud este tensiunea de alimentare a
diodei iar Id este curentul care trece prin diodă. Valorile pentru care a fost calculată rezistența
sunt Vss=12V, Ud=2V iar Idmax=20mA rezultând o rezistență de 500Ω. Deoarece această
valoare nu există a fost folosită următoarea valoare disponibilă.
Pentru a se proteja circuitul L298 în momentul întreruperii alimentarii sau a schimbării
de sens într-o înfășurare au fost folosite diode Schottky deoarece acestea au un timp de
comutație mic trr<200ns.
Comutatorul este folosit pentru a se selecta între modurile „HALF/FULL step”.
37
Pentru monitorizarea stării logice a limitatoarelor de cursă sunt folosite rezistențe de
ridicare care sunt montate între tensiunea de alimentare și întrerupătorul monitorizat. În cazul
în care întrerupătorul este deschis tensiunea la ieșirea montajului este egala cu Vs, iar în
momentul închiderii întrerupătorului ieșirea montajului este conectată la masă. Acest montaj a
fost folosit deoarece în cazul apariției unei întreruperi a firului de semnal dispozitivul se va
opri datorită semnalului logic „0” de la ieșirea montajului.
Pentru măsurarea curentului printr-o înfășurare se recomandă utilizarea unei rezistențe
de 0.5Ω. Deoarece nu am găsit rezistențe cu această valoare am recurs la utilizarea a două
rezistențe cu valoarea de 1Ω montate în paralel.
Plăcuțele imprimate
Pentru realizarea driverelor motoarelor am recurs la varianta cablajelor imprimare (eng.
Printed Circuit Board - PCB) deoarece acestea oferă avantaje precum:
Dimensiunea – deoarece plăcile de test sunt făcute pentru a fi reutilizate, acestea
în general nu se taie în timp ce cablajele imprimare sunt destinate unui scop
precis și au exact dimensiunea dorită. Această dimensiune este dată în momentul
în care se realizează designul plăcii, forma plăcii depinzând de spațiul în care
aceasta trebuie să încapă.
Rezistența în timp – traseele plăcilor de test sunt realizate în general prin lipirea
unor cabluri între punctele de conexiune în timp ce în cazul PCB-urilor traseele
sunt imprimate direct pe placă. Punctele de prindere ale firelor în cazul plăcilor
de test se pot desprinde în timp datorită vibrațiilor. Cablajele imprimate au
componentele lipite pe placă, acest lucru contribuind la durata de viață a
acestora.
Timpul de realizare – este mult mai redus în cazul PCB-urilor deoarece nu mai
este necesară realizarea de trasee între componente. Prin aceasta se reduce mult
timpul de lucru deoarece, în acest caz, componentele se vor lipi în puncte
prestabilite, acest lucru realizându-se rapid.
Aspectul – deoarece designul pentru astfel de placi se realizează în programe
specializate, componentele se pot aranja într-o configurație cat mai favorabilă.
Traseele realizate într-un astfel de program sunt uniforme și au aceeași
dimensiune iar spațierea între componente este egală.
Pentru realizarea PCB-urilor am folosit următoarele materiale:
Folii transparente pentru retroproiector
Imprimantă laser
Cablaj fotorezistiv
Soluție de clorură ferică
Soluție de sodă caustică
Dispozitiv de expunere cu lămpi cu ultraviolete
Geam de sticlă
Freză și burghie
38
Într-o primă etapa am realizat schema programului în Egale. După ce am realizat
schema electronică și am amplasat componentele în pozițiile dorite, am printat schema pe o
folie transparentă cu ajutorul unei imprimante laser. Deoarece plăcuța are trasee imprimate pe
ambele parți am printat mai întâi partea superioară și apoi partea inferioară.
Următoarea etapa constă în decuparea plăcii fotorezistive la dimensiunile
corespunzătoare, pentru aceasta fiind folosită o freză disc.
După îndepărtarea foliilor de protecție, a urmat etapa de expunere la ultraviolete. Mai
întâi a fost așezat pe geamul dispozitivului de expunere circuitul imprimat de pe fața 1.
Deasupra a fost așezată plăcuța fotorezistivă, iar peste aceasta a fost așezat circuitul de pe fața
2. Pentru alinierea circuitelor de pe cele 2 parți la marginile circuitelor imprimate a fost
desenate niște cercuri de aliniere. La final peste acestea a fost așezat un geam pentru a nu lăsa
lumina sa pătrundă intre traseele desenate și cablaj. Plăcuța a fost expusă luminii ultraviolete
timp de 4 minute.
Placa este acoperită cu o substanță sensibilă la lumina ultravioletă. Prin scufundarea
plăcii în soluția de sodă caustică substanța din zonele expuse la ultraviolete se va dizolva,
rămânând doar traseele dorite. Timpul de menținere în soluție depinde de concentrația
acesteia dar menținerea un timp îndelungat va dizolva toată substanța, inclusiv cea care nu a
fost expusă. Pentru a îndepărta resturile de soluție placa a fost spalată cu apă.
În a 5-a etapa plăcuța a fost introdusă în soluția de clorură ferică. În timpul corodării
cuprul se depune pe fundul băii de clorură ferică. Pentru a ajuta procesul de corodare soluția
este agitată cu ajutorul unei pompe. Procesul de corodare durează aproximativ 15-20 de
minute. Procesul de corodare se poate accelera prin încălzirea soluției la aproximativ 70°C
procesul durând în acest caz numai 3-5 minute. După corodare plăcuta se spală pentru a
îndepărta urmele de clorură ferică.
Ultima etapă a constat în găurirea plăcuței în punctele unde urma să fie amplasate
componentele. Dimensiunea găurilor variază în funcție de grosimea pinilor componentelor
care urmează sa fie montate. Pentru realizarea acestei operații am folosit burghie de 0.5mm și
1mm.
Ulterior pentru a proteja și garanta rezistența în timp a circuitului am aplicat peste trasee
un strat de fludor. În urma acestei operații am trecut la lipirea componentelor .Pentru lipire am
utilizat fludor cu diametrul de 0.75mm, decapant, ciocan de lipit, pompă pentru îndepărtarea
fludorului în cazul unor lipituri greșite și un multimetru pentru verificarea continuității
circuitelor.
Pentru evita încălzirea circuitului L298 datorita curenților mare care circulă prin acesta
a fost necesară montarea unui radiator pe spatele circuitului. Pentru realizarea transferului
termic între circuit și radiator a fost folosită pastă termoconductoare iar pentru prinderea
mecanică a celor două componente am folosit un șurub cu diametrul de 3mm.
Driverul rezultat în urma realizării cablajului imprimat și a lipirii componentelor poate
fi observat în figura 3.23 de mai jos.
39
Fig. 3.23 Driver motor pas-cu-pas
3.2.2 Circuitul de comandă
Pentru comanda driverelor am folosit o placa Arduino Mega 2560v3.Aceasta este o
platforma destinata realizării de prototipuri, componentele hardware și software-ul oferite
fiind flexibile și ușor de folosit pentru o mare varietate de proiecte.
Fig. 3.24 Arduino Mega 2560v3
Specificațiile pentru această placă sunt următoarele:
Microcontroler ATmega2560
Tensiune de lucru 5V
40
Tensiune alimentare: 7-12V
Intrări digitale: 54
Intrări analogice: 16
Curent maxim ieșire digitala: 40mA
Memorie SRAM: 8KB
Memorie EEPROM: 4KB
Frecvență ceas: 16MHz
Arduino Mega 2560 este construită în jurul microcontrolerului ATmega2560 și este
capabilă sa preia date din mediul înconjurător prin intermediul senzorilor analogici și digitali
atașați la aceasta și poate comanda elemente de acționare cu comanda numerică precum
motoare pas-cu-pas și servomotoare prin intermediul ieșirilor digitale. Comunicația cu
calculatorul precum și programarea plăcii se realizează prin intermediul interfeței seriale iar
conexiunea se realizează prin intermediul unui cablu USB de tip AB.
Alimentarea se poate realiza fie prin intermediul cablului USB fie prin intermediul
unei surse de curent continuu cu ajutorul unui conector de alimentare cu diametrul de
2.1mm.
Programarea este foarte ușoară fiind bazata pe limbajul de programare C/C++.
Pinii folosiți în controlul fiecăruia dintre motoarele pas-cu-pas sunt prezentați în
tabelul de mai jos:
Motorul axei X
Pini ieșire:
pin 22 conectat la pinul CLOCK al driverului axei X
pin 24 conectat la pinul DIR al driverului axei X
Pini intrare:
pin 26 conectat la limitatorul de cursa pentru distanța minimă a
axei X
pin 28 conectat la limitatorul de cursa pentru distanța maximă a
axei X
Motorul axei Y
Pini ieșire:
pin 32 conectat la pinul CLOCK al driverului axei Y
pin 34 conectat la pinul DIR al driverului axei Y
Pini intrare:
pin 36 conectat la limitatorul de cursa pentru distanța minimă a
axei Y
pin 38 conectat la limitatorul de cursa pentru distanța maximă a
axei Y
Motorul axei Z
Pini ieșire:
pin 42 conectat la pinul CLOCK al driverului axei Z
pin 44 conectat la pinul DIR al driverului axei Z
41
Pini intrare:
pin 46 conectat la limitatorul de cursa pentru distanța minimă a
axei Z
pin 48 conectat la limitatorul de cursa pentru distanța maximă a
axei Z
Pentru alimentarea driverelor și a plăcii Arduino am folosit o sursa de calculator cu
puterea maxima de 105W și cu tensiuni de ieșire de 5 și 12 V curent continuu.
3.3 Algoritmul de comandă
Pentru ca sistemul să poată funcționa pe baza principiilor descrise mai sus, a fost
necesară dezvoltarea unei aplicații software. Rolul acestei aplicații este de a identifica formele
conținute de către fișierul DXF și de a trimite comenzile necesare decupării acestor forme. În
același timp softul dezvoltat comunică cu mașina de decupat semnalând utilizatorului apariția
eventualelor probleme.
Dezvoltarea aplicației a fost făcută în Microsoft Visual Studio 2010, utilizând limbajul
de programare C# deoarece acesta oferă o mare flexibilitate în scrierea codului, iar
dezvoltarea de interfețe grafice este ușoară și intuitivă. Un alt avantaj major al acestui mediu
de dezvoltare este funcția de autocompletare oferită prin intermediul căruia timpul de scriere
al codului este redus foarte mult iar erorile de scriere sunt evitate.
Tipul de proiect selectat a fost Windows Forms, acesta permițând realizarea rapidă a
unei interfețe prin utilizarea unor elemente grafice predefinite conținute în framework-ul
.NET de la Microsoft.
3.3.1 Principalele funcții ale programului
Pentru a simplifica procesul de decupare și a permite în același timp utilizatorului să
controleze procesul, programul de control îndeplinește următoarele funcții:
Încărcarea fișierului DXF
Identificarea figurilor geometrice conținute de model
Definirea parametrilor legați de procesul de taiere
Elaborarea comenzilor în format Gcode și transmiterea acestora
Monitorizarea stării mașinii
În program nu pot fi încărcate decât fișiere de tip DXF deoarece modelele salvate în
acest format pot fi citite ușor de programe dezvoltate de terțe părți, salvarea făcându-se sub
forma de text cu codificare ASCII.
42
Pentru identificarea figurilor conținute în fișier, acesta se va citi linie cu linie,
elementele modelului fiind adăugate într-o lista la sfârșitul acesteia. Deoarece figurile
geometrice conținute în model sunt figuri bidimensionale cu forme neregulate este necesară o
rearanjare a elementelor listei astfel încât elementele care au un punct de capăt comun să se
afle în poziții consecutive în listă. Astfel operația de taiere va fi continuă iar distanța parcursa
de capul de prelucrare va fi minimă.
Pentru a se asigura faptul ca mașina va funcționa în parametrii nominali este necesară
cunoașterea următorilor parametrii:
Înălțimea burghiului
Lungimea piesei
Lățimea piesei
Înălțimea piesei
Adâncimea de prelucrare
Rata de avans
Lungimea și lățimea piesei sunt folosite pentru a determina dacă este posibilă
prelucrarea piesei – dacă dimensiunile nu depășesc cursele maxime pentru axele X și Y. În
cazul în care modelul depășește dimensiunile maxime admisibile acest lucru va fi semnalizat
prin apariția unui mesaj în care se indică depășirea limitei corespunzătoare.
Înălțimea piesei este utilizată pentru a determina la ce distanța fata de placa pe care este
fixată piesa trebuie ridicat capul de prelucrare în cazul în care se dorește deplasarea între două
puncte fără prelucrarea piesei.
Adâncimea de prelucrare va fi folosită pentru a determina cat de mult va fi coborât
capul de prelucrare în momentul în care se dorește deplasarea între două puncte cu decuparea
simultană a piesei. Aceasta va rămâne fixa pe toata perioada prelucrării.
Rata de avans va specifica viteza de deplasare a capului de prelucrare. În cazul în care
aceasta nu este specificată operația de taiere va fi efectuată cu viteza prestabilită.
3.3.2 Interfața grafică a programului
Interfața are rolul de a facilita interacțiunea utilizatorului cu aplicația software. Pentru a
ușura aceasta interacțiune, interfața trebuie să fie intuitivă, cu un design simplu și funcțional,
cu un aspect plăcut.
În realizarea designului interfeței au fost luate în considerare următoarele:
Gruparea elementelor în funcție de scopul acestora
Denumirea clară a elementelor interfeței vizuale
Atractivitatea aspectului interfeței
Limba folosită în denumirea diferitelor elemente ale interfeței este limba engleză
datorită faptului ca aceasta este limba cea mai răspândită la nivel mondial. Deoarece
43
majoritatea interfețelor mașinilor cu control numeric folosesc această limba utilizatorii sunt
deja familiarizați cu denumirile în engleză.
Elementele utilizate pentru realizarea interfeței sunt reprezentate de:
Butoane
Casete text
Etichete
Câmpuri numerice
Caseta imagine
Caseta de grupare
Parametrii care pot fi modificați au fost grupați pentru a putea fi identificați mai ușor de
utilizator în cadrul etapei de configurare a dispozitivului de prelucrare.
Fig. 3.25 Parametrii sistemului configurabili prin interfață
După cum se poate vedea în imaginea de mai sus parametrii referitori la lungimea
burghiului, adâncimea de prelucrare, înălțimea piesei și rata de avans pot fi setați prin
înscrierea valorilor corespunzătoare în casetele aferente. Valorile pentru aceste mărimi sunt
exprimate în mm, sub forma de numere întregi cu excepția ratei de avans care se măsoară în
mm/min.
Cea de-a doua secțiune conține elementele legate de afișarea modelului și a
dimensiunilor acestuia. Pentru deschiderea fișierului DXF care conține modelul se folosește
butonul Browse. În acel moment se deschide o fereastră de dialog prin intermediul căreia se
selectează fișierul dorit. În urma apăsării butonului Open numele și calea fișierului sunt
salvate în program și în același timp în caseta text alăturată este afișată calea întreaga către
fișierul dorit și imaginea modelului. Imaginea din caseta va reprezenta un model la scară al
modelului real astfel încât utilizatorul sa poată observa forma finală a piesei. Pentru ca
imaginea să poată fi afișata modelul trebuie să fie mai întâi salvat sub forma de fișier .bmp.
Alături de acestea vor fi afișate dimensiunile modelului valorile fiind exprimate în mm.
Acestea vor fi exprimate fața de punctul de origine și se vor calcula prin identificarea celui
mai îndepărtat punct care trebuie prelucrat(colțul dreapta sus al modelului).
Ultima secțiune cuprinde butoanele Start și Stop prin intermediul cărora se pornește și
se oprește aplicația.
44
Interfața realizata poate fi observata în figura de mai jos.
Fig. 3.26 Interfața aplicației software
3.3.3 Algoritmul de generare al comenzii
In momentul încărcării fișierului în aplicație, acesta este citit iar figurile geometrice sunt
stocate într-o structură de tip listă .
Prin apăsarea butonului Start prin intermediul liniei de comunicație seriala se va începe
trimiterea de comenzi către modulul de control. Deoarece acest modul nu poate interpreta
decât comenzi Gcode mai este necesară o procedura care sa citească fiecare element din listă
și sa transmită către controler comanda corespunzătoare tipului elementului respectiv. De
asemenea această procedură trebuie sa comande deplasarea capului de prelucrare între figurile
geometrice care nu se intersectează.
Prima comandă emisa de program la începutul unei noi prelucrări va fi comanda de
revenire în origine asigurându-se astfel ca prelucrarea se va face corect.
Comenzile vor fi trimise către controler într-o manieră secvențială, după trimiterea unei
comenzi programul așteptând confirmarea execuției acesteia înainte de trimiterea unei noi
comenzi.
În cazul în care se va primi un mesaj de atingere a capului de cursă din partea
controlerului, programul se va opri și, pe ecran, va fi afișat un mesaj de avertizare
corespunzător.
45
Prin utilizarea butonului Stop se comandă oprirea imediată a programului și a
dispozitivului. Acest buton este folosit numai în cazul apariției unei situații de avarie.
3.3.4 Algoritmul de interpretare Gcode
În momentul alimentarii plăcii Arduino cu energie se execută o etapa de inițializare în
care se setează pinii de comanda ca intrări sau ieșiri digitale si inițiază comunicația serială.
Pentru comunicație am ales o rata de 9600 de baud, cadru de date de 8 biți, fără bit de paritate
și un bit de stop.
Programul așteaptă apoi primirea unei comenzi de la calculator pe linia de comunicație
seriala. Sfârșitul unei comenzi este marcat prin intermediul caracterului „\n”.
La primirea unei comenzi complete se trece la execuția comenzii. Pentru aceasta
comanda va trebui mai întâi identificată prin intermediul codului Gcode asociat. Soft-ul creat
acceptă următoarele comenzi:
G01 - interpolare liniară.
G02 - interpolare circulară în sensul acelor de ceasornic
G03 - interpolare circulară în sens trigonometric
G04 – temporizare
G28 – reîntoarcere la origine
In cazul în care codul are valoarea 01 după setarea punctului țintă se trece la funcția de
interpolare liniară.
Daca codul este 02 sau 03 se calculează unghiurile formate de punctul curent și punctul
ținta prin intermediul funcției atan2. Apoi arcul de cerc este împărțit în segmente, numărul
acestora fiind calculat prin intermediul formulei:
[
] (15)
unde „[]” denota operatorul parte întreagă iar:
L – lungimea arcului
As – lungimea segmentului de arc predefinit în program
Pentru fiecare segment în parte se va apela funcția de interpolare liniară.
În cazul în care codul este 04 mașina va aștepta o perioadă de timp egală cu durata de
timp conținută în comandă. Perioada trebuie specificată în ms pentru ca programul să
funcționeze corect.
Comanda cu codul 28 va genera deplasarea capului de prelucrare în punctul de origine.
Aceasta este folosită în general la începutul unui program pentru a se asigura ca prelucrarea
va începe de la poziția (0,0,0).
46
Procedura de interpolare liniară se bazează pe algoritmul lui Bresenham. Aceasta
conține următorii pași:
Stabilirea direcției de deplasare
Calcularea numărului de pași
Calcularea întârzierii între pași
Analiza posibilității efectuării unui pas
Efectuarea pașilor
Stabilirea direcției de deplasare se face pe baza coordonatelor punctului curent și a
punctului țintă pentru fiecare axă în parte. În cazul în care valoarea coordonatei punctului
curent este mai mică decât coordonata punctului țintă axul motorului se va roti în sensul
acelor de ceasornic iar în caz contrar rotația va fi în sens trigonometric.
Numărul de pași se calculează prin împărțirea distanței care trebuie parcursă pe fiecare
axa la numărul de pași care se efectuează pentru deplasarea cu 1mm pe fiecare axă. În cazul
proiectului realizat numărul de pași este de 133.32 pași/mm.
Întârzierea între doi pași consecutivi se calculează cu ajutorul formulei:
) (16)
unde:
D este distanța între punctul curent și punctul țintă
Ra este rata de avans specificata de aplicația de control
px, py reprezintă numărul de pași pe axele X și Y
Pentru a se stabili dacă un pas se poate efectua se verifică daca unul dintre capetele de
cursa a fost atins. Pentru ca citirea stării logice a microîntreruptorului să nu fie eronata,
evaluarea stării logice se va face prin doua citiri consecutive cu o perioada de întârziere între
acestea și efectuarea operației de „ȘI” logic între acestea .
Efectuarea sau nu a unui pas se face pe baza algoritmului Bresenham astfel încât
distanța de la centrul pătratului în care se face prelucrarea până la linia care ar trebui să rezulte
sa nu fie mai mare de 0.5·lungimea pasului.
La terminarea prelucrării programul care rulează pe calculator va trimite către
interpretorul Gcode o comanda cu codul 101 prin intermediul căreia se comandă oprirea
driverelor.
47
4. Concluzii
În cadrul acestei lucrări am prezentat o modalitate de realizare a unei sistem de decupare
2D cu comandă numerică, bazat pe citirea unui model generat de Autocad și salvat sub forma
de fișier DXF, transmiterea comenzilor către mașina de decupat făcându-se în formatul
Gcode.
Acest sistem reprezintă o variantă ieftină si ușor de construit de către o persoană fără
cunoștințe de specialitate avansate, fiind utilă în realizarea pieselor 2D destinate în special
producției de serie mică, cu cheltuieli de fabricație reduse.
Sistemul a fost realizat prin construirea unui dispozitiv mecanic de tăiere și realizarea
mai multor circuite electronice de comandă a motoarelor, acestea fiind comandate prin
intermediul aplicației software dezvoltată. Pentru a micșora costurile de realizare a sistemului,
mașina de găurit a fost înlocuită în această fază cu un creion care doar trasează forma
geometrică dorită. Mașina adăugată ulterior pentru realizarea decupării.
Rezultatele obținute în urma punerii în funcțiune a sistemului au arătat ca acesta are o
eroare medie de 0.4mm în cazul unei linii diagonale de 30mm și o eroare de 0.3 în cazul unui
cerc cu diametrul de 30mm.
Precizia va fi îmbunătățită prin adăugarea unor traductoare de poziție, astfel încât
poziția reală a capului de prelucrare să poată fi măsurată precis. De asemenea actuala sursă de
alimentare va fi înlocuită cu o sursă care poate furniză tensiuni de ieșire mai mari pentru a se
putea creste viteza de prelucrare.
48
Bibliografie
1. V.V.Athani, Stepper Motors: Fundamentals, Applications and Design, New Age
International, 1997
2. G.S.Georgescu, Îndrumător pentru ateliere mecanice, Editura Tehnică, 1978
3. Wikipedia: Numerical control, http://en.wikipedia.org/wiki/Numerical_control
4. Wiklipedia: Stepper motor, http://en.wikipedia.org/wiki/Stepper_motor
5. Patrick Hood-Daniel, James Floyd Kelly, Build Your Own CNC Machine, Apress,
2009
6. MyDIYCNC Book, www.MyDIYCNC.com
7. Paul Acarnley, Stepping Motors a guide to theory and practice, The Institution of
Engineering and technology, 2002
8. L297 Datasheet: http://www.st.com/st-web-ui/static/active/en/resource/technical/
document/datasheet/CD00000063.pdf
9. L298 Datasheet: http://www.st.com/st-web-ui/static/active/en/resource/technical/
document/datasheet/CD00000240.pdf
10. Alexandru Morar, Comanda inteligentă a motoarelor pas cu pas, Mediamira, 2009
11. Power screws: http://www.roymech.co.uk/Useful_Tables/Cams_Springs/Power_
Screws_1.html
12. XY Interpolation Algorithms, http://goldberg.berkeley.edu/pubs/XY-Interpolation-
Algorithms.pdf
13. Arduino Mega 2560 Presentation http://arduino.cc/en/Main/arduinoBoardMega2560