CONTROLUL POZIT IEI UNEI MAȘ INI CU COMANDA [627470]

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
201 9

CONTROLUL POZIT IEI UNEI MAȘ INI CU COMANDA
NUMERICA

PROIECT DE DIPLOMĂ

Autor: Ionuț -Dragoș ROMAN

Conducător științific : Prof. dr.ing. Petru DOBRA

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

DECAN
Prof.dr.ing. Liviu MICLEA Vizat,

DIRECTOR DEPARTAMENT AUTOMATICĂ
Prof.dr.ing. Honoriu VĂLEAN

Autor : Ionuț -Dragoș ROMAN

Controlul poziției unei mașini cu comandă numerică

1. Enunțul temei: Se va realiza controlul unei mașini cu comandă numerică folosind
automate programabile , implementând o serie de instrucțiuni din codul G.

2. Conținutul proiectului: Pagina de prezentare , Declarație privind autenticitatea
proiectului, S inteza proiectului , Cuprins, Introducere , Studiu bibliografic, Analiza
sistemului de control a poziției , Implementare, Rezultate, validare și testare,
Concluzii , Bibliografie, Anexa.

3. Locul documentației: Universitatea Tehnic ă din Cluj -Napoca , Departamentul de
Automatică

4. Consultanți : Prof.dr.ing . Petru Dobra

5. Data emiterii temei: 1 Noiembrie 2018

6. Data predării: 12 Iulie 2019

Semnătura autorului

Șemnătura c onducător ului științific

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

Declarație pe proprie răspundere privind
autenticitatea proiectului de diplomă

Subsemnatul(a) Ionuț -Dragoș ROMAN , legitimat(ă) cu CI seria MS nr.
894006 , CNP 1960911 261696 ,
autorul lucrării:
Controlul poziției un ei mașini cu comandă numerică

elaborată în vederea susținerii examenului de finalizare a studiilor de licență la
Facultatea de Automatică și Calculatoare , specializarea Automatică și Informatică
Aplicată , din cadrul Universității Tehnice din Cluj -Napoca, sesiunea Iulie 201 9 a anului
universitar 201 8-201 9, declar pe proprie răspundere, că această lucrare este rezultatul
propriei activități intelectuale, pe baza cercetărilor mele și pe baza informațiilor obținute
din surse care au fost citate, în textul lucrării, și în bibliografie.
Declar, că această lucrare nu conține porțiuni plagiate, iar sursele bibliografice au
fost folosite cu respectarea legislației române și a convențiilor internaționale privind
drepturile de autor.
Declar, de asemenea, că această lucrare nu a mai fost prezentată în fața unei alte
com isii de examen de licență .
In cazul constatării ulterioare a unor declarații false, voi suporta sancțiunile
administrative, respectiv, anularea examenului de licență .

Data Ionuț -Dragoș ROMAN

(semnătura)

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

SINTEZA
proiectului de diplomă cu titlul:
Controlul poziției unei mașini cu comandă numerică

Autor: Ionuț -Dragoș ROMAN
Conducător științific: Prof.dr .ing. P etru DOBRA

1. Cerințele temei: Realizarea controlului poziției unei mașini cu comandă numerică

2. Șoluții alese: Implementarea unor instrucțiun i din codul G cu ajutorul automatelor
programabile

3. Rezultate obținute : Urmărirea unor traiectorii prestabilite ce descriu diverse
forme geometrice și exemplificarea unor comenzi ce se regăsesc printre instrucțiunile din
codul G

4. Testări și verificări: Obținerea formelor geometrice cu dimensiunile dorite

5. Contribuții personale: Realizarea interpolării liniare, circulare și o interfață cu
utilizatorul prin care se comandă toate aplicațiile implementate

6. Surse de documentare: Site-uri ce reprezintă surse primare, cursuri și cărți

Semnătura autorului

Șemnătura conducătorului științific

1
Cuprins
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 2
1.1 CONTEXT GENERAL ………………………….. ………………………….. ………………………….. …………………….. 2
1.2 OBIECTIVE ………………………….. ………………………….. ………………………….. ………………………….. …… 2
1.3 SPECIFICAȚII ………………………….. ………………………….. ………………………….. ………………………….. … 3
2 STUDIU BIBLIOGRAFIC ………………………….. ………………………….. ………………………….. ……………….. 5
2.1 URMĂRIREA UNUI CONTUR DE CĂTRE EFECTORUL FINAL A MAȘINII CNC ………………………….. ………………… 5
2.2 SINCRONIZAREA UNEI MA ȘINI UNEALTĂ CNC BAZATĂ PE MĂSURĂTOR I FĂRĂ SENZORI SUPLI MENTARI …………… 6
2.3 CONTROLUL UNEI MAȘINI CU CO MANDĂ NUMERICĂ FOLO SIND AUTOMATE PROGRA MABILE ……………………… 7
2.4 REALIZAREA OPERAȚIILO R DE GĂURIRE A CIRCU ITELOR ELECTRONICE ………………………….. ……………………… 8
2.5 CONTROLUL NUMERIC AL PLOTTER -ULUI CU TREI AXE PRI N PYTHON ………………………….. ……………………… 9
2.6 URMĂRIREA UNEI TRAIEC TORII ………………………….. ………………………….. ………………………….. ……… 10
2.7 SISTEM CNC INTELIGENT ………………………….. ………………………….. ………………………….. ……………. 11
2.8 SISTEM CNC INTELIGENT UTILIZÂN D BAZE DE CUNOAȘTERE CLOUD ………………………….. …………………….. 12
2.9 CONTROLUL MOTORULUI D E CC UTILIZÂND FILTRUL KALMAN ………………………….. ………………………….. . 14
3 ANALIZA SISTEMULUI D E CONTROL A POZIȚIEI ………………………….. ………………………….. ………… 17
3.1 COMPONENTE UTILIZATE ………………………….. ………………………….. ………………………….. …………….. 17
3.2 MEDII DE DEZVOLTARE U TILIZATE ………………………….. ………………………….. ………………………….. …… 21
4 IMPLEMENTARE ………………………….. ………………………….. ………………………….. ……………………… 22
4.1 SCALARE SENZORI ………………………….. ………………………….. ………………………….. …………………….. 22
4.2 FORME GEOMETRICE ÎN P LAN ȘI DEPLASĂRI ALE AXELOR ………………………….. ………………………….. ……… 27
4.2.1 Mișcarea axelor ………………………….. ………………………….. ………………………….. ………………. 27
4.2.2 Forme rectangulare ………………………….. ………………………….. ………………………….. …………. 30
4.2.3 Forme triunghiulare ………………………….. ………………………….. ………………………….. …………. 37
4.2.4 Forme circulare ………………………….. ………………………….. ………………………….. ……………….. 41
4.2.5 Mișcări continue și schimbarea turației ………………………….. ………………………….. …………… 45
4.3 FORME GEOMETRICE ÎN S PAȚIU ………………………….. ………………………….. ………………………….. …….. 46
4.4 INTERFAȚA CU UTILIZAT ORUL ………………………….. ………………………….. ………………………….. ………… 50
5 REZULTATE, VALIDARE ȘI TESTARE ………………………….. ………………………….. …………………………. 53
6 CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …. 58
6.1 REZULTATE OBȚINUTE ………………………….. ………………………….. ………………………….. ………………… 58
6.2 DIRECȚII DE DEZVOLTAR E ………………………….. ………………………….. ………………………….. …………….. 59
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. ………………………….. …… 61
ANEXA ………………………….. ………………………….. ………………………….. ………………………….. …………….. 63

Introducere
2 1 Introducere
1.1 Context general
În ultimii ani sistemele de fabricație au cunoscut o evoluție a tehnologi ilor și
echipamentelor utilizate impusă de competitivitatea producătorilor . Prin această evoluție
s-a urmărit reducerea pierderilor de materie primă utilizată în cadrul procesului de
fabricație, menținerea unor proprietăți specifice pentru fiecare produs fabri cat și
micșorarea timpului de fabricație făcând pasul către o fabricație modernă bazată pe
procese reconfigurabile folosind o serie de echipamente versatile.
Tot în cadrul tehnici lor de fabricație modernă se încadrează și controlul numeric cu
calculatorul. La ora actuală calculatorul este utilizat în mai toate aplicațiile de control
numeric datorită prețului rezonabil , prin control numeric înțelegându -se implicit control
numeric cu calculatorul.
În lucrarea de față se va prezenta modalitatea controlului po ziției efectorului final
al unui sistem cu comandă numerică fără a folosi cod G așa cum este încetățenit în
controlul numeric tradițional. Șe v or utiliza automate programabile pentru a realiza ace st
scop și implicit diagrame ladder pentru a programa automat ele.
Ștructurată în șase capitole : Introducere, Studiu bibliografic, Analiza sistemului de
control a poziției , Implementare , Rezultate , validare și testare și Concluzii, lucrarea de față
își propune să prezinte controlul poziției unei mașini cu comandă num erică prin
integrarea instrucțiunilor din codul G în realizarea unor anumite forme cu dimensiuni
specifice. În cele ce urmează se va prezenta o descriere a fiecărui capitol. Primul capitol
intitulat ,,Introducere ’’ își propune să ofere cititorului o idee de ansamblu asupra lucrării,
al doilea capitol, ,,Studiu bibliografic ’’, face o trecere în revistă a celor mai relevante
subiecte găsite din sursele primare, stabilind o direcție de pornire pentru implementarea
aplicației, al treilea capitol , ,,Analiza sis temului de control a poziției ’’, prezintă
componentele hardware ale mașinăriei, al patrulea capitol, ,,Implementare ’’, reprezintă
esența acestei lucrări, fiind capitolul ce prezintă contribuțiile personale aduse de către
autorul lucrării prin dezvoltarea unor aplicații de control numeric ce înglobează o serie
de funcții ce se pot regăsi printre instrucțiunile codului G , al cincilea capitol, ,,Rezultate,
validare și testare ’’ oferă informații despre modul cum funcț ionează aplicațiile dezv oltate
în capitolul anterior , iar în ultimul capitol, ,,Concluzi i’’, pe baza capitolului cinci, în care
sunt prezentate rezultatele obținute în urma testării aplicațiilor dezvoltate se face o
analiză a rezultatelor precizând posibilele direcții de îmbunăt ățire și noi idei de aplicații
ce pot fi introduse în cadrul sistemului de control a poziției efectorului final.
1.2 Obiective
Principalul obiectiv al acestei lucrări este acela de a realiza controlul poziției
efectorului final pentru o mașină cu comandă nume rică implementând instrucțiuni din
codul G . Procesul de control a poziție i efectorului final pentru o mașină cu comandă

Introducere
3 numerică se încadrează în tiparul proceselor industriale în cadrul cărora automatele
programabile reprezintă principale sisteme de contr ol ale proceselor, astfel
implementarea instrucțiunilor din cod G a fost realizată cu ajutorul automatelor
programabile.
Un alt obiectiv, care este condiționat de îndeplinirea primului, este realizarea
controlului poziției unui sistem de imprimare 3D. Dez voltând aplicația care realizează
controlul poziției a celor trei axe și combinată cu un sistem de extrudare termoplastică ar
face posibilă realizarea unei imprimante 3D. În contextul sistemului de imprimare 3D se
va imprima o piramidă pentru a exemplifica controlul poziției efectorului final în
realizarea unei forme dorite , procesul de extrudare fiind integrat în sistemul de
imprimare .
Controlul poziției a mașinăriei cu comandă numerică implică în oarecare măsură și
controlul turației servomotoarelor. În c apitolul patru se va vorbi despre ajustarea
turațiilor pe cele trei axe în conformitate cu specificațiile fiecărei aplicație. Realizarea
deplasărilor pe una din cele trei axe poate fi făcută mai rapid dacă se controlează viteza
de deplasare, o viteză mai m are produce un timp de deplasare mai mic până la punctul
destinație. Prin controlul vitezei de deplasare pe o axă se înțelege controlul turației
servomotorului aferent axei respective. Toate ideile prezentate în acest aliniat generează
un alt obiectiv care propune stabilirea unor turații dorite de către utilizator pentru
funcțio narea servomotoare .
Odată cu implementarea aplicați ei ce realizează controlul poziției celor trei axe ,
pentru a putea fi utilizată și de persoane care nu posedă cunoștințe despre metodele de
programare a automatelor programabile , ar fi util dezvoltarea unei interfețe grafice pe
înțelesul acestor categorii de utilizatori . Prin utilizarea interfeței grafice se restricționează
accesul asupra programului responsabil d e controlul poziției ce rulează pe automatul
programabil dând posibilitatea de a alege realizarea unei forme expuse în meniul din
interfață cu posibilitatea de a seta dimensiunile și diferite proprietăți tehnologice ce țin
de sistemul de poziționare. Având în vedere afirmațiile de mai sus se poate deduce că un
nou obiectiv este acela de a crea o interfață grafică ce permite dare în folosință a
aplicațiilor dezvoltate unor categorii de utilizatori care nu posedă cunoștințele despre
programarea automatelor p rogramabile.
1.3 Specifica ții
Automatul programabil folosit în cadrul aplicației pentru control poziției mașinii cu
comandă numerică aparține companiei niponă OMRON , un important producător de
sisteme de automatizare industrială avansate tehnologic, având toto dată și o vastă
experiență în implementarea acestora. Soft -ul folosit este CX -One , în special CX –
Programmer, pentru programarea automatului programabil , și CX -Designer , pentru
realizarea interfeței grafice cu utilizatorul, fiind integrat în pachetul CX -One , ce permite
utilizatorilor să construiască, să configureze și să programeze o mulțime de dispozitive
precum PLC -uri, HMI -uri și sisteme de control a mișcării .

Introducere
4 Pe baza obiectivelor descrise în capitolul 1.2 principal e caracteristic i ale acestei
aplicații sunt implementarea codului G și realizarea unei interfețe grafice cu utilizatorul .
Așa cum s -a amintit mai sus că se folose sc automate programabile , instrucțiunile
dezvoltate în cadrul aplicației vor fi identice cu cel din codul G ca efe cte, unele diferențe
existând în modalitatea lor de apelare sau numărul parametrilor utilizați de instrucțiune .
O parte din instrucțiunile codului G sunt specifice doar operațiilor de strunjire sau frezare ,
instrucțiuni ce nu s-a dorit a fi implement ate pentru că nu sunt primordiale în procesul de
control a poziției celor trei axe, deoarece așa cum s-a spus la punctul anterior , un alt
obiectiv este acela de a controla poziția in cadrul unui sistem de imprimare în 3D. Codurile
G54 (stabilirea coordonatelor d e lucru , a unui punct origine ), G90 (programarea în
coordonate absolute) , G21 (programarea în mm), GO1 (interpolare liniară), G02/G03
(interpolare circulară în sensul acelor de ceasornic sau în sens invers) și G00 (poziționare
rapidă) reprezintă fundamentu l aplicațiilor de control a poziției pentru sistemul de
imprimare 3D și totodată pentru controlul poziției în domeniul industrial , implementarea
lor fiind vitală pentru obiectivele stabilite.
Pentru exemplificarea implementării instrucțiunilor din cod G se propun e realiz area
de divers e forme care integrează utilizarea acestor instrucțiuni . Printre formele ce
exemplifică integrarea acest or instrucțiuni se încadrează următoarele : patrulater,
triunghi, cer c și piramid ă.

Studiu bibliografic
5 2 Studiu bibliografic
În Capitolul 2 se v or prezenta modalități le de comandă a mașinilor cu comandă
numerică și evoluția cunoscută în ultima perioadă. În fiecare subcapitol informațiile și
figurile sunt extrase dintr -un articol științific citat la finalul subcapitolului .
2.1 Urmărirea unui contur de către efectorul final a mașini i CNC
Procesele de fabricație moderne utilizează prelucrarea la viteză foarte mare, ceea ce
face să se ridice următoarea problemă: abilitatea efectorului final să urmărească un
contur stabilit. Tehnicile de control utilizate , bazate pe controlul independent a unei
singure axe din sistemul axial oferă performanțe în urmărirea unui contur doar în cazul
în care perturbațiile provenite de la celelalte axe nu afectează axa controlată.
Metoda controlului încrucișat se dovedește a fi o metodă mai eficientă în urmărirea
conturului, ea compensând fiecare eroare de urmărire provenită de la axe le con trolate
independent prin încorporarea erorilor în proiectarea regulatorului.
Încă o metodă ce îmbunătățește urmărirea unui contur este un control de tip reacție
negativă bazată pe producerea evenimentelor, ce utilizează un eveniment(ex. sosirea unei
noi mă suri) pentru a -i semnaliza regulatorului să actualizeze noi acțiuni de control.
Avantajul acestei metode este că se minimizează utilizarea calculatorului și a
comunicațiil or dintre componentele sistemului, iar principalul dezavantaj este în
proiecta rea regu lator ului , ce se bazează pe producerea unor evenimente , folosind
cunoștințe ce țin de teoria sistemelor.
Pe baza modelului dinamic , ecuația (2.1), a CNC -ului din figura 2.1 , care are trei
grade de libertate, s-a analizat controlul poziției efectorului fina l. Axa Ox s -a definit ca
fiind axa principală de mișcare iar celelalte două fiind secundare, mișcarea lor fiind
relativă la Ox , ecuația (2.2).
𝑚𝑖𝑞̈𝑖+𝑐𝑖𝑞̇𝑖+𝑘𝑖𝑞𝑖=𝑇𝑖(𝑡) (2.1)
𝑞𝑖=𝑞𝑖(𝑞𝑥) (2.2)
În ecuația (2.1) qi reprezintă deplasarea pe una dintre cele celei trei axe, 𝑞̇𝑖este viteza
de deplasare pe axa care se realizează deplasarea, 𝑞̈𝑖 este accelerația pe axa care se
realizează deplasarea, mi este masa sarcinii pe axa pe care se realizează deplasarea, ci este
un parametru care se referă la suma forțelor centrifugale, Coriolis și de greutate, Ti este
cuplul motor, iar ki este un parametru care ține de forța de frecare. În ecuația (2.2)
variabila ,,i’’ se referă doar la axele Y și Z.
Un regulator cu acțiune proporțională derivativă, care acționează în domeniul
poziției , oferă performanțe mai bune în vederea urmăririi unui contur comparativ cu un
regulator proporțio nal derivativ care acționează în domeniul timp, deoarece este o
singură axă principală care se mișcă, ea stabilind totodată și mărimea de referință pentru

Studiu bibliografic
6 celelalte două axe , iar erorile provenite doar de la aceste două axe vor contribui la eroarea
totală în vederea urmăririi conturului prestabilit [1].

Figura 2.1 Structura unei mașini CNC [2]

2.2 Sincronizarea unei mași ni unealtă CNC bazată pe măsurători fără
senzori supli mentari
Performanțele unei mașini unelte CNC sunt date de capacitatea de sincronizare
dintre axe . În procesele de fabricație, scăderea preciziei de sincronizare dintre axe va fi
observată prin abaterea de la un contur prestabilit pentru piesa prelucrată și scăderea
acurateței de fabricare. Erorile de sincronizare provin în principal de la următorii doi
factori : variația vitezei motorului de acționare și vibrațiile mecanice cauzate de
transmisiile mecanice. Pentru aceste probleme s -ar preta folosirea unor senzori
suplimentari, dar uneori folosirea acestor senzori suplimentari este constrânsă de niște
factori precum costul senzorului și spațiul ocupat de acesta. Șistemele care nu au acești
senzori suplimentar i prezintă o serie de avantaje precum : costul lor este mai mic, acest
sistem poate fi folosit la orice valoare a sarcinii și se obțin în mod direct informații despre
componentele participante în sistemul de control .
Această abordare a măsurătorii fără sen zori suplimentari din figura 2.2 nu înseamnă
că sistemul nu are nici un senzor încorporat, în multe sisteme CNC se găsesc codificatoare
rotative, encodere, pentru a stabili poziția unghiulară.

Studiu bibliografic
7 Această metodă se poate folosi atunci când senzori suplimentari au un preț ridicat
sau încorporarea lor în sistem ar fi imposibilă datorită unor incompatibilități ce țin de
mărimea senzorului și spațiul disponibil [3].

Figura 2.2 Schema de principiu pentru metoda obținerii de informații de la
diferite sisteme CNC fără senzori suplimentari [3]
2.3 Controlul un ei mașini cu comandă numerică folosind automate
programabile
Controlul numeric realizat cu ajutorul unui calculator are aplicabilitate în toate
domeniile industriale. În ultima perioadă , principala aplicabilitate este la operațiile de
frezare , în care princ ipalul scop este de a controla deplasarea sculei de frez are sau de
tăiere , ce se va deplasa de-a lungul celor trei axe.
În figura 2.3 este prezentat controlul în buclă deschisă utilizând automate
programabile. Software -ul Mach 3 , dezvoltat de ArtSoft Corp, este un program dedicat
pentru controlul axelor unui CNC, atât în buclă în chisă cât și în buclă deschisă. Controlul
mașinii CNC se poate realiza la distanță datorită faptului că programul Mach 3 este
conectat prin protocolul Modbus TCP/IP cu automatul programabil (PLC) S7-1200.
Această metodă de exploatare a mașinări ei CNC reduce încărcarea automatului
programabil , interfața cu utilizatorul fiind oferită de către programul Mach 3, reducând
totodată și costul echipamentelor , nefiind necesară o interfață om -mașină.
Mișcarea axelor, realizată prin intermediul programului Match 3, se po ate face atât
manual cât și automat, prin programarea în cod G.

Figura 2.3 Controlul în buclă deschisă al unui CNC utilizând automate programabile
[4]

Studiu bibliografic
8 Protocolul Modbus TCP/IP este foarte asemănător cu protocolul Modbus
RTU(Remote Terminal Unit) cu o interfață TCP care rulează prin Ethernet , el combinând
modalitatea de reprezentare standard a datelor prin Modbus cu lucrul în rețeaua TCP/IP
printr -o rețea fizică, Ethernet, comunicația bazându -se pe o relație client -server. În figura
2.4 este prezentat modul de transmitere a informației prin intermediul Modbus TCP/IP.
După stabilirea unei conexiuni serverul răspunde la interogările transmise de către client
până când clientul închide conexiunea [4].

Figura 2. 4 Ciclu de t ransmitere a mesajelor prin Modbus TCP/IP [4]
2.4 Realizarea operațiilor de găurire a circuitel or elect ronice
Fiecare dispozitiv electronic ce îl folosim este rezultatul unor procese tehnologice,
ce pot fi sim ple sau complicate , din punct de vedere a complexității lor. Procesele
tehnologice complicate necesită un nivel de control mai ridicat pentru a asigura calitatea
și pentru ca resturile de material să fie minime. Vizualizarea parametrilor pe tot parcursul
procesului tehnologic reprezintă feedback -ul între procesul tehnologic și operator.
Procesul de găurire a circuitel or electronice se poate încadra în cadrul proceselor
tehnologice complicate. Schema de ansamblu es te prezentată în figura 2.5 . Funcționarea
acestui ansamblu se bazează pe poziționarea CNC -ului conform coordonatelor extrase din
soft-ul EAGLE . Coordonatele ce urmează să fie expediate din soft -ul EAGLE sunt trimise și
compilate în aplicația de vizualizare a datelor CW6 (Control Web 6), apoi trimise PLC -ului,
automatului programabil, care conține algoritmi de control a CNC -ului și a găuririi . În
figura 2.6 s-a reprezentat schematic funcționarea acestor algoritmi de control.
Transmiterea datelor între EAGLE și CW6 se realizează prin protocolul DDE
(Dynamic Data Exchange), între CW6 și PLC prin protocolul OPC (Open P latform
Communication s), iar între PLC și CNC prin semnal unificat [5].

Figura 2.5 Schema ansamblului de găurire în circuitele electronice [5]

Studiu bibliografic
9
Figura 2. 6 Schema ierarhică și funcțională a algoritmilor de control pentru PLC [5]
2.5 Controlul numeric al Plotter -ului cu trei axe prin Python
Cererea calcula toarelor pentru control ul numeric a crescut în ultimul timp, ele fiind
utilizate în tot mai multe aplicații industriale mici, instituții de învățământ și uz personal .
Producători de CNC -uri precum Fanuc Ltd și SINUMERIK oferă aceste calculatoare pentru
controlul numeric la un preț destul de ridicat ceea ce îngrădește accesul c elor trei
categorii de utilizatori menționate mai sus. Datorită acestei constrângeri s -a încercat
implementarea sistemului CNC prin alte metode precum : utilizarea unui interpretator de
cod G pentru Arduino , utilizarea microcontroller -ului pentru a comanda un sistem CNC cu
două grade de libertate, utilizarea microcontroller -ului și un convertor în cod G . Există
mai multe variante software pentru CNC disponibile onl ine, dar fiecare soft este foarte
greu de personalizat, deoarece integrarea cu hardware -ul diferă de la caz la caz.
Python este un limbaj de programare orientat pe obiect , ce poate fi folosit pentru
dezvoltarea mai multor tipuri de programe, el oferind integra rea cu alte limb aje și
instrumente, justificându -se alegerea sa pentru dezvoltarea programului pentru sistemul
CNC. Etapele de proiectare pot fi văzute în figura 2. 7.
Datele geometrice ale unui model CAD (Computer -Aided Design) sunt convertite în
puncte d e coordonate și sunt transmise către unitatea de control a mișcării. Șemnalele
provenite de la unitatea de control a mișcării sunt transmise serial către circuitul de
control a mișcării celor trei axe. Ca intrare în plotter se așteaptă un fișier cu extensi a .dxf
a modelului CAD, iar ca ieșire se v or obține puncte de coordonate, mediul de programare
Python având biblioteca dxfgrabber , care facilitează obținerea acestor puncte [6].
În figura 2. 8 se poate observa modelul CAD, fișier c u extensia dxf, așteptat la intrarea
în plotter, iar în figura 2. 9 este ieșirea în urma citirii fișierului dxf.

Studiu bibliografic
10
Figura 2.7 Diagrama bloc a plotter -ului [6]

Figura 2. 8 Modelul CAD la intrarea în plotter [6]

Figura 2. 9 Ieșirea din cititorul dxf [6]
2.6 Urmărirea unei traiectori i
Pentru procesele de fabricați e, controlul mișcării trebuie să se realizeze cu o precizie
ridicată , ea fiind un factor vital. Precizi a în controlul unui CNC cu trei axe se poate obține
doar atunci când toate axele sunt controlate simultan. Cea mai bună metodă de a
îmbunătăți urmărirea unui contur prestabilit se obține atunci când se îmbunătățește
acuratețea de urmărire pe fiecare axă , urmărind interacțiunea dintre ele. Pentru controlul
de urmărire a traiectoriei se folosește reacția negativă de la fiecare axă combinată cu o
structură feedforward pentru a îmbunătății urmărirea pe fiecare axă. Princ ipala problemă

Studiu bibliografic
11 în urmărirea unei traiectorii este controlul simultan al axelor. În literatura de specialitate,
în ciuda faptului că axele nu sunt conectate între ele, se consideră o conexiune virtuală
între ele și se pot aplica câteva metode precum : contro l încrucișat, control fuzzy, rețele
neuronale și control adaptiv. În cazul controlul încrucișat, amintit și în capitolul 2.1, există
două metode de abordare : prima este o metodă ce se bazează pe o compensare a
semnalului provenit de la axa care este manipulată, iar a doua metodă se bazează pe
controlul semnalului manipulat.
În articolul citit s -au prezentat mai multe strateg ii de control precum : PID classic,
proiectarea observerului de stare Luenberger și regulator PID și control cu feedforward .
Metoda feedforward are cele mai bune rezultate în urmărirea traiectoriei prestabilit e. Ca
și element de comparație cu c elelalte metode de control s-a folosit eroarea medie
pătratică și suma erorilor pătratice. Prin feedforward se compensează comportamentul
neliniar cauzat de forțele de greutate, centrifugale, Coriolis și inerți i la cuplar e [7].
2.7 Sistem CNC inteligent
,,INDU STRY 4.0” este numele noi i revoluții din domeniul industrial. Nucleul acestei
revoluții s -a infiltrarea ușor în industrie, producția și serviciile fiind conectate în rețea.
Pentru a se adapta la o piață flexibilă și cerințelor ridicate de eficiență și ,,mașinări e
verde”, CNC -ul inteligent utilizează o tehnologie de prelucrare care reduce costul ,
îmbunătățește eficiența și asigură calitatea. Globalizarea pieței a făcut ca metodele
tradiționale de fabricație să nu fie îndeajuns. Fabricarea inteligentă presupune metode de
producție bazate pe sisteme de fab ricație agile, sisteme fractale de fabricație și sisteme de
fabricație integrate . Toate aceste sisteme de fabricație folosite în fabricarea inteligentă
utilizează calculatorul pentru a ajuta la procesul de fabricație dar și la distribuirea
resurselor în re țea, transformând conceptul de ,,producție orientată spre produs ” în
,,fabricarea orientată pe servicii ”. Problema sistemelor menționate mai sus este că
formatul datelor poate să difere de la un sistem la altul, iar distribuirea datelor în rețea
cauzează u nele blocaje tehnice, neexistând un format unificat de transmitere a datelor în
cazul distribuirii resurselor în rețea.
În viziunea noii tendințe de fabricare , mașina CNC este un proces complex , în care
inteligența umană și echipamentele de automatizare su nt combinate cu ajutorul
calculatorului , prin care se conectează la rețea pentru a facilita integrarea informației și
fabricarea colectivă. Factorii care determină calitatea suprafeței prelucrate, în cazul
utilizării unui CNC, sunt starea mașinii unelte, p rocesul dinamic și parametrii de tăiere.
În figura 2.10 este ilustrată structura unui CNC inteligent. Până în prezent, datorită
lipsei bazelor de date cu parametr ii mașinilor distribuiți în rețea, ajustarea acestor
parametrii se f ăcea pe baza experiențel or anterioare, prin realizarea unei operații de
probă, consumându -se timp și irosindu -se material prin această încercare de probă. Odată
cu schimbarea sculei trebuie identificați noi parametrii. O identificare empirică a acestor
parametri nu s -ar preta deo arece ei sunt factorii care stabilesc eficiența și acuratețea
realizării procesului tehnologic. Un sistem CNC inteligent conectat la rețea poate rezolva

Studiu bibliografic
12 probleme precum problema parametrilor necorespunzători, stocarea necorespunzătoare
și analiza parametri lor de prelucrare.

Figura 2.10 Structura unui sistem CNC inteligent [8]
Caracteristicile unui sistem CNC inteligent sunt prezentate în figura 2.10. Baza de
date a parametrilor de tăiere a CNC -ului este platforma de bază pentru fabricația
orientată pe servicii, oferind : o stocare sigură a datelor, modalități de efectuare a
interogărilor rapide și distribuirea datelor între diferite procese tehnologic e.
Caracteristica ,,performanță ridicată și un sistem CNC deschis ” se referă la faptul că se
oferă portabilitate și interschimbare, ceea ce este un element nou față de sistemul
tradițional. Șistemul de monitorizare a parametrilor online utilizează mai mulți senzori
pentru a măsura zgomotul, accelerația și semnalele curente, reflectând în mod real
caracteristicile mașinii CNC, ceea ce un sistem tradițional nu o poate face întrutotul.
Sistemul de optimizare a parametrilor este format din trei module : simularea for ței de
tăiere, simularea domeniului de stabilitate și optimizarea parametrilor de prelucrare.
Șistemul de analiză a eficienței se referă la raportul dintre producția efectivă ș i cantitatea
de energie necesară. Șistemul de diagnoză poate achiziționa informații despre starea
sistemului în timp real, care sunt analizate și interpretate de server, apoi sunt trimise
centrului de monitorizare la distanță. Rezultatele analizelor se vor folosi pentru a prezice
momentul când poate să apară un defect în sistem [8].
2.8 Sistem CNC inteligent utilizând baze de cunoaștere cloud
Odată cu dezvoltarea tehnologiei informațiilor și tehnologiilor de rețea, fabricarea
inteligentă câștigă teren față de cea tradițională, tendința pe viitor fiind orientarea
industriei către fabricația inteligentă care se anunță a fi foarte promițătoare. Controlul
numeric cu calculatorul reprezintă ultima etapă în ceea ce privește tehnologiile de

Studiu bibliografic
13 fabricație numerice, care se ocupă direct cu prelucrare a și producți a, fiind echipamentul
pe care se va baza fabricarea inteligentă.
Pentru scurtarea timpului de pregătire, în cazul proceselor de fabricație este
necesară o îmbunătățire adusă controller -ului CNC, în special la zona de planificare a
proceselor de prelucrare, care ocupă o mare parte din ciclul de pregătire a producției. Este
necesară multă experiență în cadrul proceselor de prelucrare, fiind dificil să se realizeze
o planificare automată a pr oceselor de prelucrare doar în funcție de diverși algoritmi.
Datorită expansiunii tehnologiilor pe care se bazează fabricarea inteligentă,
computerizarea cloud a fost aplicată în domeniul fabricației, ea oferind posibilitatea de a
stoca și prelucra volume mari de date cu caracteristica de eficientă și flexibilitate ridicată,
indicând o nouă direcție de planificare a proceselor de prelucrare. Bazele de cunoaștere
cloud , bazate pe computerizare cloud , fac posibilă integrarea planificării automate a
proceselor de prelucrare în controller -ul CNC -ului.
Modelul inițial de prelucrare a datelor IȘO 6983, codul G, a fost folosit de către
controller -ul CNC încă din anul 1950 . Acest tip de controller nu poate fi compatibil cu
cerințele operațiilor de prelucrare intelige ntă, problemă care se presupune a fi rezolvat ă
prin implementarea noului standard ISO 14649, STEP -NC. Ștudiile în acest domeniu arată
posibila implementare a unui CNC inteligent care adoptă metode de convertire a datelor
din formatul STEP -NC în cod G , prin intermediul mecanismelor de mapare.
În figura 2.11 este prezentată structura controller -ului inteligent, ce poate fi
împărțită pe două nivele. Nivelul de sus conține în cloud un sistem de planificare a
procesului de prelucrare bazat pe baze de cunoașter e. Indiferent de ce algoritmi se
utilizează nu poate să se ocupe de date de cunoaștere masive și mereu în creștere. O altă
problemă a planificării realizate de către sistemul de planificare a procesului de
prelucrare a controller -ul inteligent ar fi planif icarea off -line și furnizarea ei în timp util,
nefiind cunoscute starea reală a mașinii -unelte în cadrul procesului de fabricație.
Cunoștințele de prelucrare sunt stocate într -o structură de date conform ȘTEP pentru a
garanta schimbul de informații în amon te. Nivelul de jos este o metodă modulară cu o
caracteristică scalabilă, responsabil de comunicarea între baza de cunoaștere din cloud și
controlul -mașinii unelte în cadrul procesului pe care îl realizează. Informațiile furnizate
controller -ului nu sunt do ar instrucțiuni de mișcare, ele având o structură de date mai
complicată și nu sunt utilizate în mod direct de către nucleul de control numeric, fiind
necesară conversia la ȘTEP [9].

Studiu bibliografic
14
Figura 2.11 Structura unui controller CNC i nteligent [9]
2.9 Controlul motorului de CC utilizând filtrul Kalman
Componenta cheie a unei mașini CNC , folosită în aplicațiile de birou , este motorul de
curent continuu, el fiind utilizat și în majoritatea aplicațiilor de robotică și diferite
dispozitive automate. Pe lângă motorul de curent continuu , sistemul cuprinde
următoarele elemente pentru fiecare axă : cuplaje mecanice, șurubul cu bile, rulmenți
liniari și senzori de poziție. Șenzori i de poziție, encoderele, cu o precizie ridica tă sunt de
dorit în aplicațiile în care se intenționează controlul poziției, dar prețul lor este foarte
ridicat, ceea ce nu justifică investiția pentru aplicațiile de birou. În aceste aplicații de
birou, controlul poziției se bazează pe controlul motorului de curent continuu fără a
utiliza senzori. Metodele pentru controlul motorului de curent continuu , care nu necesită
traductoare de măsură , sunt : controlul robust, controlul neliniar și metode de estimare.
Metoda de estimare bazată pe FK reduce costul, eliminând folosirea senzorilor de
poziție. FK este un filtru recursiv care rezolvă problema de filtrare liniară a datelor
discrete prin estimarea st ărilor măsurabile și nemăsurabile. În cazul motorului de CC, el
estimează viteza unghiulară prin măsurarea curentului de zgomot pe motorul de CC, rolul
regulatorului fiind acela de a modifica tensiunea de alimentare pentru a obține viteza și
poziția dorită .
Motorul de CC este format din stator, rotor și perii, circuitul echivalent fiind ilustrat
în figura 2.12, unde raportul dintre R și L semnifică constanta de tim p a motorului.

Studiu bibliografic
15 Ecuațiile de bază ale motorului de CC sunt descrise în ecuațiile (2.3) și (2.4), din acestea
obținându -se modelul în spațiul stărilor din ecuațiile (2.5) și (2.6).
𝐽𝛼+𝑏𝜔=𝐾𝑏𝑖 (2.3)
𝐿𝑑𝑖
𝑑𝑡+𝑅𝑖=𝑉−𝐾𝑏𝜔 (2.4)

unde J este inerția rotorului, α este accelerația unghiulară a motorului, b este
constanta frecării vâscoase, ω este viteza unghiulară , K b este constanta tensiunii
electromotoare și V tensiunea de alimentare.
Cum α este accelerația unghiulară a motorului , iar ω este viteza unghiulară a
motorului , rezultă că 𝛼=𝑑𝜔
𝑑𝑡.
(𝑑𝑖
𝑑𝑡
𝑑𝜔
𝑑𝑡)=(−𝑅
𝐿−𝐾𝑏
𝐿
𝐾𝑏
𝐽−𝑏
𝐽)(𝑖
𝜔)+(1
𝐿
0) (2.5)
𝑦= (1|0)(𝑖
𝑤) (2.6)

Figura 2.12 Modelul motorului de curent continu [10]
FK conduce către rezultate optime de estimare a stărilor în prezența zgomotului de
proces și zgomotului de măsură. Modelul unui FK pentru un sistem liniar este cel din
ecuațiile (2.7) și (2.8).
x(k)=Fx (k-1)+Gu (k)+w(k-1) (2.7)
Z(k)=Hx (k)+𝜌 (2.8)
unde w și ρ sunt variabile aleatorii reprezentând zgomotul de proces (w (k-1)) și
zgomotul de măsură (ρ). Condițiile în care se poate aplica KF sunt atunci când cele două
zgomote sunt și necorelate unul cu celălalt.
KF și observerul Luenburger sunt la fel, în figura 2.13 este prezent ată structura sa,
iar ecuația (2.9) ilustrează ecuația observerului de stare.

Studiu bibliografic
16 𝑥̇̂=(𝐴−𝐿𝐶)𝑥̂+𝐵𝑢+𝐿𝑦 (2.9)
unde 𝑥̂ reprezintă valoarea estimată a stărilor și L este matricea de amplificare a
reacției de la stare [10] .

Figura 2.13 Structura Observerului Luenburger [10]

Analiza sistemului de control a poziției
17 3 Analiza sistemului de control a poziției
3.1 Componente utilizate
Componentele sistemul ui de control a poz iției mașinii cu comandă numerică se po t
împărți în două ansamble : electric și mecanic. Principalele componente ce constituie
ansamblul electric sunt : PLC -ul CJ2M -CPU11 , Modul ul I/O MD 211 și Drivere le R7D –
BP01H pentru servomotoare, iar pentru sistemul mecanic avem : ansamblu șurub cu bile,
cuplaje cu burduf și Servom otoare R 88M -G10030H -S2.
În figura 3.1 sunt prezentate principalele componente ale ansamblului mecanic
pentru direcția de deplasare pe axa Y, pentru celelalte axe, X și Z, fiind identic, singura
diferență fiind că șurubul cu bile de pe axa Z are un pas mai mic decât omolo agele d in
axele X și Y.

Figura 3.1 Ansamblul mecanic
În cele ce urmează se va prezenta pe scurt principalele componente ale ansamblului
mecanic. Șervomotorul este elementul de execuție ce poate realiza mișcări de rotație în
sensul acelor de ceasornic, producând o i ncrementare a poziției pe axa respectivă și invers
acelor de ceasornic , producând o decrementare a poziției pe axa care acționează . Abatere
de la această regulă face axa Z, unde rotația motorului în sensul acelor de ceasornic
produce o decrementare și rota ția în sens trigonometric produce o incrementare, din
pricina faptului că servomotorul este poziționat la fel ca pe celelalte două axe, axa Z

Analiza sistemului de control a poziției
18 reprezentând o rotire a axei Y sau axei X cu 𝜋
2, respectiv −𝜋
2 . Principalele caracteristici ale
servomotorului u tilizat sunt : alimentare a la tensiune alternativă (de la rețea), viteza
maximă de rotație 3000 RPM și cuplul maxim instantaneu de 900 mNm. Cuplajul cu
burduf are rolul de a transmite mișcarea de rotație de la servomotor către șurubul cu bile ,
având următoare a serie de avantaje : transmiterea exactă a momentului, rigiditate a
torsionar ă maximă până la 300 de grade , capacitate a de compensare a necoaxialității
arborilor și durata mare de viață [11] . Șurubul cu bile este elementul care are bila în
mișcare de rostogolire între axa șurubului și piuliță , stabilind poziția efectorului final.
În figura 3.2 se prezintă ansamblul electric , pe lângă componentele amintite mai sus
acest ansamblu înglobează un r eleu așa cum se poate observa și în figura de mai jos, unde
releul are rolul de a conecta drivere -le pentru fiecare axă la modul de intrări/ieșiri
digitale. Un Releul conține conexiunile pentru două drivere, mai jos s -a prezentat doar
pentru axa X și Y, pe ntru axa Z fiind identic. Numerele din capetele chenarului ce
reprezintă releul sunt pinii acestuia , notați de la 0 la 19 pentru linia de jos și de la 20 la 39
pentru linia de sus. Pinul 0 reprezintă masa și pinul 20 valoarea de Vcc, de 24 de volți ,
provenită de la modul de MD211.
În această aplicație se utilizează senzori de capăt de cursă și senzori inductivi , ca în
figura 3. 3. Cone xiunea dint re senzori și modulul de intrări/ieșiri digitale se realizează prin
intermediul releului. Între pinul 22, X -axis CW l imit, și masă (common) se realizează
conexiunea senzorului de capăt de cursă pentru axa X când se realizează o incrementare
pe axă , senzorul dând valoarea de 0 logic când se ajunge la capăt ; în mod analog pe pinul
31, Y -axis CW limit, doar că incrementarea se realizează pe axa Y. Pentru conectarea
senzorilor ce stabilesc dacă efectorul final a ajuns în celălalt capăt al axei , pe sensul de
decrementare, între pinii 23, X -axis CCW limit, și masă (common) , se conectează senzorul
pentru axa X și între pinii 32 și masă (common) senzorul pentru axa Y. Senzorii inductivi
se conectează între pinii 24, X -axis origin proximity, și masă (common) pentru axa X și
pentru axa Y între pinii 33, Y -axis origin proximity și masă (common). Alte caracteristici
important e ce se observă printre conexiunile existente pe releu sunt semnalele de pe pinii
24, X -axis RUN, valoarea de 1 lo gic semnifică pornirea motorului de pe axa X și pe pinul
34, Y -axis RUN, valoarea de 1 logic a acestui semnifică pornirea motorului de pe axa Y.
Motivația folosirii senzorilor inductiv i este dată de faptul ei stabilesc originea sistemului
de axe, iar cea a senzorilor de capăt de cursă este dată de necesitatea de a ști dacă se
ajunge la capăt de axă , pentru a nu mai forța motorul. Șenzorii de capăt d e cursă sunt de
tipul normal închis, dau valoarea de 1 logic dacă nu sunt anclanșați, iar la anclanșare dau
valoarea de 0 logic, ei funcționând invers decât cei inductivi , care sunt de tipul normal
deschi s.
În următoarele rânduri se v or prezenta pe scurt princi palele componente ale
ansamblului electric. Automatul programabil CJ2M -CPU11, figura 3.4 stânga, reprezintă
sistemul de comandă al procesului de control a poziției și modului de intrări/ieșiri CJ2M –
MD211, figura 3. 4 dreapta, folosit în procesul de control a poziției, ajutând la conectarea
senzorilor și utilizarea driverelor pentru servomotoare. Ultima componentă a sistemului
electric este reprezentată de driverele pentru servomotoare, figura 3. 5, fiind componenta

Analiza sistemului de control a poziției
19 de bază în controlul poziției. La aceste dri vere se conectează si traductoarele de poziție
rotative, encoderele.

Figura 3.2 Ansamblul electric

Figura 3.3 Senzor de capăt de cursă (stânga) [12] și senzor inductiv (dreapta) [13]

Figur a 3.4 PLC OMRON CJ2M -CPU11 [14] și modulul de intrări/ieșiri digitale CJ2M –
MD211 [15]

Analiza sistemului de control a poziției
20
Figura 3. 5 Servo Driver -ul R7D -BP01H [16]
O ultimă schemă ce încheie subcapitolul 3.1 este prezentată în figura 3. 6. Această
schemă semnifică conexiunile ce trebuie realizate între sursa de alimentare, d rivere,
servomotoare și traductori de poziție incrementali. U, W, W reprezintă fazele motoarelor ,
iar G este masa . Semnalel e de E5V, E0V, +S, -Ș, G reprezintă conexiunea traductoarelor de
poziție incrementale între driver și servomotor , unde E5V reprezintă alimentarea
senzorului , E0V semnalul de mas ă pentru alimentarea senzorului cu tensiunea de 5V
(E5V), S+ faza cu plus , prove nită de la semnalul furnizat de senzor, S – faza cu minus ,
provenită de la semnalul furnizat de senzor și G semnalul de masă între conexiunea
traductorului de poziție incremental la driver.

Figura 3.6 Schema de conectare a driverelor și motoarelor

Analiza sistemului de control a poziției
21 3.2 Medii de dezvoltare utilizate
Mediile de dezvoltare utilizate sunt în concordanță cu automatul programabil, ele
fiind furnizate de aceeași compani e care a produs automatul programabil OMRON. Din
setul de programe furnizate în pachetul CX -One se folosește CX -Programmer pentru
programarea automatului în diagrame ladder și CX -Designer pentru realizarea interfeței
cu utilizatorul.
Transmiterea datelor între CX -Programmer și CX -Designer se realizează printr -o
relație de tipul client -server. În momen tul rulării aplicației CX-Designer se deschide o
conexiune cu PLC -ul, prin intermediul computerului . Portul de transmitere a datelor din
aplicația grafică către calculator este COM, iar de la interfață la PLC este RȘ -232C.
Implementarea interfeței grafice în CX -Designer face posibilă transmiterea datelor într-
un mod simplu, dezvoltatorul aplicației e scutit de asigurarea unui anumit format pentru
trimiterea datelor, el trebuie să specifice adresele zonelor de memorie unde dorește să se
scrie.
Implementarea unor funcții , ce nu se găsesc în mediul de programare CX –
Programmer sau nu mulțumesc dorințele dezvoltatorului , se poate realiza în limbajul
Structured Text (ST sau STX). În capitolul următor se vor prezenta mai multe blocuri cu
diverse funcționalități, în c onformitate cu aplicația dezvoltată , implementate în acest
limbaj.

Implementare
22 4 Implementare
4.1 Scalare senzor i
Traductoarele de poziție incrementale operează cu impulsuri , mărime ce nu spune
prea multe când se dorește a se impleme nta controlul poziției dacă nu se realizează o
scalare a impulsurilor într-o unitate de măsură a distanței. Acești senzori de poziție
funcționează pe baza principiului optoelectronic : un disc cu fante întrerupe impulsul
luminos , generând un tren de impulsuri . O schemă de principiu se prezintă în figura 4.1.
Senzorul fotoelectric este o diodă fotoelectrică ce recepționează semnalul emis de sursa
de radiație (LED) printr -un disc cu fante. Distribuția zonelor transparente și opace este
uniformă. La trecerea unui impuls printr -o zonă transparentă , fotodioda generează un
impuls cu ajutorul circuitului de generare impuls de valoare nenulă, de obi cei 5V. În cazul
în care radiația luminoasă emanată de LED lovește zona opacă a discului, fotodioda nu
transmite semnal către circuitul de generare impuls, deci valoarea de ieșire va fi de 0 V. Pe
baza acestui semnal se stabilește dacă numărătoarea este în sus sau în jos, la ieșire
traductorul furnizând un număr de pulsuri [17] .

Figura 4.1 Traductor de poziție incremental [18]
În această aplicație se folosesc traductoare de poziție incrementale ce s unt conectate
la driver conform figurii 3.5 pe canalul CN2. Conexiunile ce trebuie realizate pentru ca
senzorul să furnizeze pulsuri sunt cele prezentate în figura 3.6 la conectarea en coder -ului
între driver și servomotor. Canalul de intrare CN2 conține c inci fire prin care se transmit
semnalele E5V, E0V, S+, S – și G, cu semnificația descrisă în capitolul 3.1 , cu precizarea că
encoder -ul este alimentat în tensiune de la driver (semnalele E5V și E0V). Acest senzor de
poziție este încorporat în servomotor , conform figurii 4.2.
Pentru a realiza scalarea senzo rilor din impulsuri într -o unitate de măsură cu care
se operează uzual , se realizează procedura ce se descrie în cele ce urmează. Deplasările
pe cele t rei axe sunt asigurate de rotațiile servomotoarelor, identice pe fiecare axă,
singura diferență este , așa cum s -a mai prezentat , că șurubul cu bilă de pe axa Z are un pas
mai mic decât omoloagele sale de pe axele X și Y , ceea ce ar stabili o primă ipoteză că

Implementare
23 numărul de impulsuri furnizate per unitatea de măsură pe axele X și Y ar trebui să fie egal,
iar pe axa Z dife rit de celelalte două.

Figura 4.2 Encoder servomotor R88M -G10030H -S2
Un alt pas în procedur a de scalare ține mai mult de natură software. Furnizarea
impulsurilor ce descriu poziția pe o axă se calc ulează față de un punct de origine , deci
trebuie setat a cel punct de origine. Stabilirea punctului de origine se face cu ajutorul
senzorilor inductivi care semnalizează prezența e fectorului final în origine, mai precis
spus a bilei ce face parte din ansamblul șurub cu bilă. În soft -ul CX -Programmer stabilirea
punctului de origine se realizează cu ajutorul instrucți unii ORG , dar înainte de toate
această instrucțiune necesită configurarea unor setări , exemplificate în figura 4.3. Pe
fiecare modul de intrare/ieșire (IN00 -IN09 IN10 -IN19 pentru intrări și OUT00 -OUT05
OUT10 -OUT15 pentru ieșiri) se poate seta doar o funcție de intrare/ieșire. Șetarea
funcțiilor necesare pentru instrucțiunea ORG se face din meniul de jos , alegând opțiunea
,,Pulse Outputs and Origin Șearches” , totodată se poate preciza și o serie de parame tri în
vederea căutării originii , precum : curba vitezei, direcția de rotire a motorului când se
realizează căutarea originii, viteza maximă, viteza la apropiere de origine, rata de
accelerare și decelerare, viteza dorită, modul de operare și al ți parametri prezentați în
figura 4.3 (dreapta) . Viteza de apropiere este folosită doar când se dorește revenirea în
punctul de origine, după ce originea a fost setată în prealabil, apropierea efectorului final
de origine produce o modificare a vitezei, din viteza dorită în vite za de apropiere față de
origine. Șe poate ca pe o axă efectorul final să ajungă mai repede în origine decât pe
celelalte două, situație motivată de faptul că distanța ce a avut -o de parcurs a fost mai
mică, anclanșând senzorul inductiv . Originea se va seta doar când și ceilalți doi senzori au
anclanșat.
În figura 4.4 se prezintă modul cum se utilizează instrucțiunea ORG , ce are doi
operanzi , ,,Port specifier ’’, primul operand ce așteaptă valoare a portur ilor pe care se af lă
axele X (port 0) , Y (port 1) și Z (port 3) și al doilea operand , ,,Control data ’’, #0 pentru
operațiunea de căutare a origin ii și valoarea #1000 când se dorește întoarcerea în origine.
Șistemul este împărțit în trei porturi cu ajutorul releului din figura 3.2. Utilizarea acestor
porturi delimitează senzori i, driverele și servomotoarele pentru fiecare axă. Pentru a avea
controlul asupra operațiuni i de căutare a originii și pentru a ști tot timpul statusul ei ,
setată sau nu, se utilizează doi biți înregistrați în memorie cu numele ,,Cautare Origine’’ și
,,SetareOrigine ’’. Biți i ,,NuOrigineAxaX ’’, ,,NuOrigineAxaY’’, ,,NuOrigineAxaZ’’ se folosesc
pentru a semnaliza dacă efectorul final a ajuns în origine, valoarea lor de 1 logic înseamnă

Implementare
24 îndeplinirea obiectivului de a ajunge în origine, ei re zultând din alegerea opțiun ii păstrare
origine ce se configurează la setările neces are instrucțiunii ORG , anclanșarea și
declanșarea senzorilor inductivi fiind principala cauză ce stabilește valorile de 1 și 0 .
Procesul de căutare a originii este menținut câ t timp cel puțin unul din cei trei biți ce
semnifică o consecință a activității senzorilor inductivi furnizează valoarea de zero logic ,
în digrama ladder prezentată în figura 4.4 operându -se cu valorile negate a biților. Când
toți cei trei biți au valoarea de 1 logic , s-a fixat originea sistemului și bitul ,,ȘetareOrigine ’’
are valoarea de 1 logic, iar cel de ,,CautareOrigine ’’ are valoarea de 0 logic.

Figura 4.3 Configurări pentru setarea origin ii

Figura 4.4 Instrucțiunea ORG

Implementare
25 Odată setată orig inea se pot determina numărul de impulsuri provenite de la
traductoarele de poziție incrementale atunci când se realizează o
incrementare/decrementare a efectorului final pe cele trei axe. Pentru a realiza o
incrementare/decrementare pe una sau pe mai mult e axe simultan se folosește
instrucțiunea PLȘ2, mai multe detalii despre utilizarea ei se prezintă în capitolul 4.2 .1.
Înregistrarea în memorie a pulsurilor provenite de la senzori se implementează conform
figurii 4.5 , unde PRV este instrucțiunea din CX -Programmer folosită pentru a putea salva
impulsurile. Această instrucțiune are trei operanzi : ,,Port spec ifier’’, pentru a preciza axa
de pe care să se furnizeze impulsuri le, al doilea, ,,Control data ’’, valoarea #0 este folosită
pentru a preciza că se doreșt e să se furnizeze impulsuri le corespunzătoare poziției și
,,First destination word ’’ semnifică adresa din zona de memorie unde se salvează numărul
impulsurilor. Datele sunt memorate în formatul DINT , pe doi octeți, impus de către
instrucțiunea PRV. Î n ,,First destination word ’’ se precizează adresa primului octet , pentru
al doilea octet adresa va fi următoarea . PRVPozitiaX, PRVPozitiaY, PRVPozitiaZ sunt
numele variabilelor unde se salvează impulsurile provenite de l a senzori pentru deplasări
pe axa X, Y și Z.

Figura 4.5 Impulsurile aferente poziției provenite de la senzor i pentru cele trei axe
Având numărul de impulsuri ce semnifică deplasările pe fiecare axă trebuie realizat
o scalare a acestuia , convertind numărul de impulsuri în milimetri pentru a dezvolta
aplicația de control al efectorului final. În vederea convertirii impulsurilor în milimetri s –
a realizat mai multe deplasări pe fiecare axă și s -a notat numărul pulsurilor și s -a măsurat
deplasarea realizată. Co nform acestor măsurători s -a ajuns la ecuațiile (4.1), (4.2), (4.3).
Ipoteza că numărul de impulsuri per milimetru pentru o deplasare pe axa X și o deplasare
pe axa Y este egal ă a fost demonstrată , conform ecuațiilor (4.1), (4.2). Semnul minus de la

Implementare
26 ecuația (4.3) provine din cauza faptului că nu se pot realiza deplasări peste punctul
origine, de zero , în domeniul pozitiv al impulsurilor deoarece ar intra în eroare driverul
corespunzător motorului de pe axa Z datorită imposibilit ății de a mai urca pe ax ă, așa cum
nu se pot realiza decrementări în domeniul negativ al impulsurilor pe celelalte două axe.
𝑥[𝑚𝑚 ]=𝑥[𝑖𝑚𝑝 ]
500 (4.1)
𝑦[𝑚𝑚 ]=𝑦[𝑖𝑚𝑝 ]
500 (4.2)
𝑧[𝑚𝑚 ]=𝑥[𝑖𝑚𝑝 ]
−1225 (4.3)
Tot cu ajutorul instrucțiunii PRV se po t achiziționa și pulsurile aferente vitezelor
pentru cele trei axe. Pentru aceasta , al doilea operand al instrucțiuni i PRV va primi
valoarea #3. Numărul de impulsuri este salvat în memorie pe același format DINT,
asemănător cu cazul poziției. Realizarea conversiei din impulsuri în rotații pe minut se
realizează conform ecuațiilor (4.4), (4.5) și (4.6). Ecuațiile au fost deduse din măsurători
pentru fiecare axă, cronometrând timpul de realizare a unei deplasări , măsurân d
lungimea ei și cu ajutorul unui șubler s -a determinat pasul șurubului cu bile pe fiecare axă .
Așa cum era de așteptat , formula de conversie a vitezei pentru axa X și Y este aceeași,
deoarece deplasările se calculează cu aceeași formulă, viteza fiind deriv ata deplasării .
𝑣𝑥[𝑅𝑃𝑀 ]=𝑣𝑥[𝑖𝑚𝑝 ]
1000∗60 (4.4)
𝑣𝑦[𝑅𝑃𝑀 ]=𝑣𝑦[𝑖𝑚𝑝 ]
1000∗60 (4.5)
𝑣𝑧[𝑅𝑃𝑀 ]=𝑣𝑧[𝑖𝑚𝑝 ]
1225∗60 (4.6)
Cu toate detaliile prezentate până acum la partea de implementare , se poate afirma
faptul că s -a realizat implementarea instrucțiunilor G54, salvarea unui punct de origine și
G21, utilizarea unui sistem de măsură metric.
În figura de mai jos, 4.6, se prezintă blocul ce realizează conversia vitezelor din
impulsuri în rotații pe minut si a deplasărilor din impul suri în milimetrii. Pentru sensul
de rotire invers acelor de ceasornic am stabilit semnul cu minus în fața valorilor ce
reprezintă rotațiile pentru a realiza o distincție între rotirea în sensul acelor de ceasornic
și cea trigonometrică. În partea stângă a figurii este prezentat blocul ce prezintă un număr
de zece intrări și șase ieșiri (fără a mai ține cont de ENO) , iar în partea dreaptă este codul
în limbajul ,,Structured text ’’ ce stă la baza realizării conversiei impulsurilor în mărimile
cu care se va opera în continuare. Intrării EN i se alocă bitul P_On, care are valoarea de 1
logic când automatul programabil este în funcțiune. Această intrare are rolul de a specifica
când să înceapă conversia, echivalentă cu structura ..IF EN=TRUE THEN……………..END_IF ’’
din partea dreaptă. În aplicația de față conversia este setată să înceapă odată cu intrarea
automatului programabil în modul RUN. Celelalte intrări PRVPozitiaX, PRVPozi tiaY,
PRVPozitiaZ, PRV_VitezaX, PRV_VitezaY , PRV_VitezaZ, IncrementareX, IncrementareY și
IncrementareZ sunt corespunzătoare următoarelor variabile cu care se operează în codul
din partea dreaptă : ImpX, ImpY, ImpZ, VitezaXImp, VitezaYImp, VitezaZImp, X_CW, Y_CW

Implementare
27 și Z_CW. Ieșirile X_mm, Y_mm, Z_mm, VxRPM, VyRPM și VzRPM sunt corespunzătoare cu
următoarele variabile : Xmm, Ymm, Zmm, VitezaXRPM, VitezaYRPM și VitezaZRPM . Tot în
partea dreaptă se poate observa și schimbarea semnului pentru valorile rotațiilor pe
minut în funcție de incrementare sau decrementare , nefiind necesară ca intrare și bitul ce
reprezintă decrementarea deoarece incrementarea și decrementarea sunt
complementare, neputând avea loc simultan pe un servomotor . Pentru axa Z s -a ales
semnul plus î n fața valorilor ce reprezintă rotațiile pe minut pentru sensul trigonometric
de rotire a servomotorului , deoarece este în concordanță cu incrementarea .

Figura 4.6 Blocul de conversie a impulsurilor
4.2 Forme geometrice în plan și deplasări ale axelor
4.2.1 Mișca rea axelor
Mișcarea axelor se realizează cu ajutorul instrucțiunii PLȘ2 din CX -Programmer ce
necesită următorii patru parametrii : Port specifier (axa pe care se dorește a se realiza
deplasarea (#0 pentru axa X, #1 pentru axa Y și #3 pentru axa Z) ), Control data (sensul de
rotație al servomotoarelor (#0 pentru sensul acelor de ceasornic și #10 pentru sensul
trigonometric), First parameter word (adresa primului parametru pentru această
instrucțiune) și First start frequency word (adresa primului oct et pentru frecvența de
start). În figura 4.7 se prezintă instrucțiunea PLȘ2 pentru operația de realizare a
incrementării pe axa X, pentru decrementa re se procedează la fel , cu precizarea că se
schimbă valoarea pentru al doilea parametru , conform celor prezenta te mai sus . Bitul
salvat în memorie cu numele IncrementareX are o adresă prestabilită, adresa găsindu -se
în manualul [16]. Această adresă se regăsește în zona de memorie printre adresele de

Implementare
28 intrări/ieșiri digitale , ea fiind o intr are digitală. Biț ii DecrementareX, IncrementareY,
DecrementareY, Incrementare Z și DecrementareZ au o denumire ce semnifică activitatea
ce o realizează, adresa lor fiind precizată în manualul amintit mai sus.

Figura 4.7 Mișcarea axelor folosind instrucți unea PLS2
Parametrii necesari acestei instrucțiuni sunt prezentați în figura 4.8 iar în figura 4.9
se prezintă profilul vitezei ce se poate seta folosind această instrucțiune cu parametrii
doriți. În D100 și în D101 se reține valoarea ratei de accelerare r espectiv de decelerare
până la frecvența dorită (numărul de impulsuri dorit) , memorată pe doi octeți (D102 și
D103). Contactele negate prezente pe ramura instrucțiuni MOV care mută valoarea #1388
în zona de memorie la adresa D102, pe un octet, nu sunt nece sare acestei aplicații de
realizare a unei simple incrementări sau decrementări, ele sunt prezente atunci când se
dorește schimbarea vitezei. Aplicațiile ce necesită schimbarea vitezei se vor trata în
următoarele subcapitole. Zonele de memorie cu adresele D104 și D105 semnifică numărul
de impulsuri furnizat la ieșire, care este pe doi octeți, o zonă de memorie de genul D104
este de un octet. Printre parametrii folosiți mai avem frecvența de start (numărul de
impulsuri de start) care ocupă în memorie doi oc teți pe D110 și D111. Pentru setarea
vitezei și pe celelalte axe se urmărește același procedeu, doar că pentru axa Z se pot utiliza
parametrii axei X, alegere motivată de eficientizarea ladder -ului și inexistența unei
posibile interacțiuni negative între d eplasările ce se realizează pe cele două axe.
Profilul de viteză din figura 4. 9 poate fi modificat în diferite forme în funcție de
parametrii amintiți mai sus. O rată de accelerare și de decelerare mare ar duce la
schimbarea profilului de viteză într -o formă aproape dreptunghiulară. Forma
dreptunghiulară s -ar obține numai dacă rata de accelerare și de decelerare ar fi infinit sau
suficient de mare ca să ajungă la numărul de impulsuri dorit foarte repede. În practică nu
se utilizează o rată de accelerare/decelerare mare deoarece ar supune servomotorul
asupra unor șocuri , ceea ce i -ar crea o uzură mare și implicit posibilitatea de a nu mai
funcționa în parametrii normali sau chiar deloc .
Având originea setată și posibilitatea de a realiza incrementări și decrementări pe
fiecare axă , urmează să se dezvolte și celelalte obiective menționate la începutul lucrării,
acelea de a realiza o mișcare liniară și una circulară, obiective similare unor inst rucțiuni
din codul G.

Implementare
29

Figura 4.8 Parametrii necesari instrucțiunii PL S2

Implementare
30
Figura 4.9 Profilul vitezei
4.2.2 Forme rectangulare
Realizarea unei forme rectangulare necesită decrementări și incrementări pe toate
cele trei axe. Înainte de implementarea diagramei ladder , aferente formei rectangulare ,
s-a realizat o diagramă graf cet pentru a urmări secvența logică a realizării activităților ce
necesită a fi efectuate pentru controlul efectorului final. Având diagrama grafcet, figura
4.11, este mult mai ușor de implementa t în mediul CX -Programmer a structurii ce
realizează forme rectangulare deoarece producând o greșeală în implementarea în
diagrame ladder se poate reveni la modelul grafcet și repara destul de ușor acea greșeală.
În această aplicație , efectorul final constă într-un creion care este prins într -o mandrină
ca în figura 4.10. Creionul desenează forma rectangulară pe o foaie de hârtie.

Figura 4.10 Efectorul final
Diagrama grafcet de mai jos este realizată cu ajutorul editoarelor puse la d ispoziție
pe site -ul www.creately.com . Această diagramă grafcet este alcătuită din nouă stări. În
prima stare , a doua stare și ultima stare nu se pornește nici un servomotor, ele fiind stări
în care se realizează operații care pot fi numite statice , datorită inactivității
servomotoarelor . Aceste operații statice sunt : trecerea automatului programabil în modul
RUN (starea 0), inițializarea dimensiunilor ce trebuie realizate pe fiecare latură (starea 1)
și realizarea formei (starea 8). Celelalte șase st ări pot fi numite stări dinamice , datorită

Implementare
31 activități i servomotoarelor ce se realizează în fiecare stare. Activitatea realizată în fiecare
din cele șase stări dinamice este notată sugestiv în dreptul fiecăr ei stări. Tot sugestiv s -a
notat și ce servo motor este în funcțiune în cele șase stări, în plus s -a notat și sensul de
rotație a servomotoarelor (CW -sensul acelor de ceasornic și CCW -invers sensul ui acelor
de ceasornic). Condițiile de trecere dintr -o stare în alta sunt : Start_Patrulater, Dimensiuni
citite, L1, L2, L3, L4 și Ridicare terminată. Condiția ,,Start_Patrulater ’’ este un bit care
specifică să înceapă desenul formei rectangulare. Pentru a nu intra într -o buclă infinită ,
acest bit va fi resetat după alocarea în memorie a dimensiunilor ce trebuie realizate
pentru fiecare latură, adică resetarea va avea loc când bitul ,,Dimensiuni citite ’’ devine 1
logic, care este activ pentru puțin timp . Cât timp durează citirea dimensiunilor. ,,L1’’, ,,L2’’,
,,L3’’ și ,,L4’’ sunt condiții ce semnifică realizarea prim ei, a doua, a tre ia și ultim ei latur i.
,,Dimensiunea dorită pe Z ’’ și ,,Ridicare terminată ’’ sunt condițiile care reprezintă
coborârea efectorului final până la înălțimea potrivită pentru a scrie pe foaie, respectiv
ridicarea efectorului final de pe fo aia de lucru atunci când s -a desenat forma patrulateră.
O altă precizare importantă ce necesită amintită este că trecerea într -o stare nouă
resetează starea precedentă.

Figura 4.11 Diagrama grafcet aferentă formei rectangulare

Implementare
32 Realizarea formei de pătrat se bazează pe form a rectangulară , cu precizarea că se va
seta ca lungime a și lățimea să fie egale.
Mai jos, în figura 4.12 , se p ot observa două blocuri realizate în limbajul ȘT, limbaj de
care s -a amintit în capitolul 3.2. Primul bloc, cel din partea de sus a figurii, are scopul de a
converti dimensiuni le, precizate în milimetri, în impulsuri. Blocul din partea de jos are
menirea de a schimb a turațiile servomotoarelor corespunzătoare fiecărei axe în
conformitate cu dist anța ce rămâne de parcurs pe fiecare axă atunci când se realizează
forma dorită. O distanță mare rămasă de parcurs produce o turație mai mare a
servomotoarelor decât în mod nor mal. Turația și distanța rămasă de parcurs sunt două
mărimi proporționale.

Figura 4.12 Blocurile de realizare a conversiei din milimetri în impulsuri și setare a
turației în funcție de distanță

Implementare
33 Primul bloc din figura 4.12 are cinci intrări și cinci ieșiri. Cele cinci intrări au asignate
următoarele semnificații : condiția de începere a conversiei (Ștart_Patrulater) din
milimetri în impulsuri, conversie ce se realizează doar o sigură dată, lungimea laturii pe
axa Y ( Lungimea_pe_Y_sens_CW – numele acestei variabile nu se vede complet în figura
4.12 pentru că este destul de lung ), lungimea laturii pe axa X
(Lungime_latura_pe_X_sens_CW ), poziția actuală pe axa X în impulsuri (PRVPozitiaX) și
poziția actuală pe axa Y în impulsuri (PRVPozitiaY). Ieșiri le blocului sunt memorate în
următoarele variabile : SetareParamPatrulater, Imp_X_CW, Imp_Y_CW, Imp_X_CCW și
Imp_Y_CCW. Variabila ,,SetareParamPatrulater ’’ este un bit care are valoarea de 1 logic
pentru o scurtă durată de timp, el oprind conversia prin res etarea bitului
,,Sta rt_Patrulater ’’. O altă semnificație asociată acestuia este aceia că s -a terminat
conversia milimetrilor în impulsuri și se poate trece la următoarea stare. Celelalte patru
variabile , ce memorează ieșirile blocului se utilizează la înregistrarea numărului de
impulsuri ce se obțin în urma conversiei pentru cele două axe (Imp_X_CW și Imp_Y_CW)
și reținerea poziției de start pe cele două axe ( Imp_X_CCW și Imp_Y_CCW). Reținerea
poziției de start este necesară deoarece se d orește să se lucreze în coordonate absolute
față de origine și relative față de poziția de start.
În figura 4.13 se evidențiază ,,codul ’’ implementat în limbaj ladder pentru resetarea
bitului ,,Start_Patrulater ’’ și condiția de trecere din a doua stare, c oborârea pe Z până la
înălțimea optimă de scriere, în următoarea stare, desenarea primei laturi realizată printr –
o incrementare pe axa Y. Pentru a realiza coborârea pe Z până la înălțimea optimă de
scriere se folosește instrucțiunea de comparație din mediu l CX -Programmer ,, <=’’, ce
compară poziția actuală pe axa Z cu valoarea memorată în variabila ,,Imp_Z’’. Unitatea de
măsură pentru ambele variabile ce se compară este impulsul. Conversia înălțimii până la
care trebuie să coboare efectorul final în impulsur i este realizată cu ajutorul blocului din
figura 4.14 , unde se poate observa că efectorul final, creionul prins în mandrină , trebuie
să coboare cu 35 de milimetri față de punctul de origine al axei Z. Punctul optim de scriere
are valoarea pe Z de -35 de mil imetrii, valoarea este negativă din considerentele
menționate în capitolul 4.1. Intrările negate pentru blocul de conversie nu necesită să fie
prezentate aici, ele vor fi prezentate în capitolul 4. 3. Șe folosește blocul de comparare ,, <=’’
în locul egalită ți între cele două variabile deoarece traductoarele de poziție nu pot să
asigure că furnizează exact acel număr de impulsuri. Folosind blocul ,, <=’’ condiția de
oprire a decrementării pe axa Z este realizată, existând unele erori, mai mici decât 0,4
milimetri, ce nu afectează în mod deosibit aplicația de control a poziției. Pentru realizarea
celor patru laturi se folosește aceeași tactică, doar că atunci când se desenează o latură
prin incrementarea pe o axă se folosește blocul de comparație ,, >=’’ și se setează doar
acțiunea ce trebuie realizată, fie că e decrementare sau incrementare , pe una din axele X
sau Y, conform diagramei grafcet din figura 4.11. În plus de stările necesare realizării
formei rectangulare , în figura 4.13 , se poate observa o stare suplime ntară, starea cu
adresa W120.09. Această stare, ca toate stările de altfel, reprezintă un bit din memorie.
Valoarea de 1 logic are semnificația, așa cum se poate observa din comentariul asociat ,
figura 4.13, că s -a început desenarea unui patrulater și e menținută pe toată durata
realizării formei de patrulater pentru a putea modifica viteza , conform valorilor din figura
4.12, blocul de jos. Valorile vitezei, care sunt calculate în conformitate cu distanța ce a

Implementare
34 rămas de parcurs, sunt scrise direct în parametr ii necesari instrucțiuni PRV, amintită în
capitolul 4.2.1. În figura 4.8 se observă că bitul ce reprezintă că se lucrează la patrulater
este negat din necesitatea de a schimba vitezele în aplicația de realizare a formei
patrulatere. La încheierea realizări fo rmei rectangulare acest bit va fi resetat.

Figura 4.13 Porțiuni din diagrama ladder pentru realizarea formei rectangulare

Implementare
35
Figura 4.14 Setarea înălțimii la care trebuie să se afle efectorul final și conversia ei în
impulsuri
Exemplificarea codurilor din spatele blocurilor prezentate în figuril e 4.12 , blocul de
sus și figura 4.14 nu necesită a fi analizate deoarece sunt foarte identice cu codul din figura
4.6, realizându -se operația inversă de convers ie a milimetrilor în impulsuri. Singurul
element de noutate ce trebuie amintit este că la acea conversie se adună și impulsurile
care reprezintă poziția actuală pe axa X și pe axa Y.
În figura 4.15 se prezintă codul din spatele blocului din figura 4.12, bl ocul de jos.
Condiția de activare a blocului (EN) este dată de aflarea într -una din stările în care se
realizează laturile patrulaterului ( adresele acestor stări sunt W0.00, W0.01, W0.02,
W0.03, W0.04 și W50.00 conform figurii 4.12). Pentru a calcula turaț ia în funcție de
distanță este necesar mai întâi să se calculeze distanțele pe axele X și Y , notate cu dx și dy ,
ce reprezintă variabile interne în acest bloc. Calcularea acestor distanțe necesită
cunoașterea poziției de start pentru axa X și Y și poziția a ctuală pentru aceste axe, fapt ce
motivează că blocul din figura 4.12 (jos) are ca intrări variabilele ce memorează toți acești
parametrii ce sunt transpuși în codul ce definește blocul de schimbare a vitezelor în
variabilele cu denumirea de PozXstart, PozYs tart, PozX și PozY. Atunci când se realizează
o incrementare din poziția de start distanțele dx și dy sunt 0. Aceste distanțe pe sensul de
incrementare pot fi considerate ca mărimi complementare distanței rămase de parcurs,
valoarea de 0 însemn ând că distanța de parcurs este maximă, deci turația
servomotoarelor ar trebui să aibă o valoare mai mare decât cea normală, de aici
argumentându -se folosirea ca intrări a biților ce semnifică incrementarea pe axa X și Y. În
conformitate cu cele spuse mai sus, în lin iile de cod 4 -13 din figura 4.15 , se calculează
turația pentru servomotorul de pe axa X atunci când se realizează operațiunea de
incrementare . La fel se calculează și turațiile servomotorului de pe axa Y . Din codul
prezentat în liniile 4 -13 se deduce că tur ația servomotorului este de trei ori mai mare
decât cea inițială , până când se realizează o deplasare egală cu 40 de milimetri, care ar
însemna o primă treaptă de turație. O a doua treaptă a turație i o reprezintă setarea ei la
valoarea nominală , care este men ținută până când distanța ajunge la 50 de milimetri. A
treia și ultima treaptă de turație i o reprezintă reducerea ei la jumătate din valoarea
inițială , dacă distanța calculată este mai mare decât 50 de milimetri. Pentru trasarea
laturilor prin operațiunea de decrementare pe axe , ,,dx’’ și ,,dy’’ reprezintă exact distanța
ce a rămas de parcurs . La începutul decrementării , turația este de trei ori mai mare decât

Implementare
36 cea nominală , până când mai rămân 20 de milimetri din distanța ce trebuie parcursă. A
doua treaptă de turație și a treia treaptă de turație au valorile identice cu cele folosite
pentru incrementare, treapta a doua este menținută până când mai rămân 10 milimetri
de parcurs, iar a treia treaptă este activată în ultimii 10 milimetri. Viteza nominală este
setată în impulsuri la valoarea de #1234 , adică de 4660 de impulsuri , echivalent cu 279,6
de rotații pe minut. Această strategie de modificare a vitezei se realizează doar pentru
forme rectangulare cu dimensiunile mai mari sau egale cu 50 de milimetrii, în caz de
egalitate se observă doar două trepte de turație a servomotoarelor. Reliefarea celor trei
trepte este pusă în evidență doar când se realiză forme cu dimensiunile de peste 50 de
milimetrii.

Figura 4.15 Cod în limbajul ST pentru modificarea turațiilor atu nci când se
realizează un patrulater
În acest subcapitol se poate spune că s -a exemplificat o implementare a codurilor
G90 și G91 , deoarece fiecare impuls este măsurat față de origine și fiecare formă are

Implementare
37 dimensiunile specificate din diagrama ladder sau din interfața grafică relativ e la poziția
sa curentă. Esența capitolul următor prezintă realizarea unei interpolări liniare.
4.2.3 Forme triunghiulare
În procesul de trasare a forme lor triunghiulare , accentul cade asupra realizării unei
interpolări liniare . Se propu ne a se realiza un triunghi dreptunghic pentru a exemplifica
realizarea interpolării liniare, scopul principal n efiind acela de a realiza o formă
triunghiulară ci de a exemplifica implementarea interpolării. Diagrama grafcet aferentă
triunghiului dreptungh ic este prezentată în figura 4.16 . Cele opt s tări ce alcătuiesc
diagrama grafcet din figura de mai jos se pot clasifica în stări statice și dinamice . Ștările
dinamice sunt stările în care se realizează pornirea servomotoarelor și cele statice sunt
cele de inițiere și de citire a dimensiunilor , așa cum s -a amintit și în subcapitolul anterior.
Această diagramă grafcet nu prezintă foarte multe elemente de noutate față de cea din
subcapitolul trecut , pentru realizarea unei forme rectangulare , dat totuși trebuie a mintite
câteva. Printre elementele de noutate aduse în diagrama grafcet aferentă realizării unui
triunghi dreptunghic se numără : condițiile de trecere dint -o stare în alta , care s-au notat
cu ,,Start_Triunghi ’’, ,,Dimensiuni citite’’, ,,Dimensiunea dorit ă pe Z’’, ,,C1’’, ,,C2’’, ,,I’’ ,
,,Ridicare terminată’’ și faptul că sunt pornite două servomotoare în același timp într -o
stare. Ștările statice au aceeași semnificație ca și în capitolul anterior, semnificație ce nu
s-a mai prezentat și aici deoarece s -a considerat a f i redundantă. Dintre stările dinamice ,
singura neredundantă la cele anterioare , din subcapitolul trecut, este starea a cincea . unde
sunt pornite în același timp servomotoarele de pe axa X și Y. Șingura condiție de trecere
dintr -o stare în alta ce nu este redundan tă la diagrama grafcet din figura 4 .11 este ,,I ’’, ce
reprezintă că s -a realizat trasarea ipotenuz ei triunghiului dreptunghic, deci s-a putut
săvârși o interpolarea liniară , celelalte fiind identice , doar că poa rtă alt nume. Echivalentul
între condițiile de trecere dintr -o stare în alta între cele două diagrame grafcet ar fi
următoarea : Start_Patrulater cu Start_Triunghi, L1 cu C1, L2 cu C2 și restul de trei condiții
rămase au același nume și efecte în ambele aplicații . Trecerea într -o stare nouă produc e
resetarea stării precedente.
În vederea realizării ipotenuzei trebuie modificate turațiile pe ntru cele două
servomotoare a axelor X și Y conform ecuațiilor (4.7) și(4.8). Ecuația (4.8) este derivată
din ecuația (4.7) scrisă sub o altă formă. Condiția de realizare a ipotenuzei este dată de
considerentul următor : timpul în care se efectuează decrementarea pe axa X trebuie să fie
egal cu timpul în care se realizează decrementarea pe axa Y. Cu mărimea timp nu se poate
opera în mod direct atunci când se doreș te schimbarea vitezei pe o axă, așa că s-a
transformat ecuația (4.7) în ecuația (4.8). În ecuația (4.8) dx înseamnă distanța ce se află
pe axa X între a doua catetă și punctul de start , pentru d y la fel doar că axa este Y, v x
reprezintă turația/viteza pe a xa X și v y reprezintă turația/viteza pe axa Y. În această
lucrare , când se aduce în discuție cuvântul viteză se înțelege turația servomotorului ,
deoarece o valoare a turației mai mare produce o incrementare sau decrementare într-un
timp mai scurt . Un singur caz ce nu necesită modificarea vitezelor îl constituie realizarea
unui triunghi dreptunghic isoscel, deoarece se păstrează viteze/turații constate pe tot
parcursul realizării formei triunghiulare, distanțele d x și d y fiind egale indiferent de
valoarea vit ezei, dacă este aceeași pentru ambele axe. Cu toate cele afirmate mai sus se

Implementare
38 poate concluziona că în cazul unui triunghi dreptunghic isoscel valorile rapo artelor din
ecuația (4.8) sunt egale, indiferent de valoarea vitez elor, ele trebui nd să fie egale.
𝑡𝑑𝑒𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑎𝑟𝑒𝑋 =𝑡𝑑𝑒𝑐𝑟𝑒𝑚𝑒𝑛𝑡𝑎𝑟𝑒𝑌 (4.7)
𝑑𝑥
𝑣𝑥=𝑑𝑦
𝑣𝑦 (4.8)

Figura 4.16 Diagrama grafcet aferentă realizării unui triunghi dreptunghic
Programul dezvoltat prin programarea folosind diagrame ladder pentru realizarea
formei triunghiulare respectă aceleași cerințe ca cel dezvoltat pentru desenarea formei
rectangulare. În figura 4 .17 se prezintă blocul ce realizează ajustarea vitezelor atunci când
se trasează ipotenuza triunghiului dreptunghic. Acest bloc are ca intrări variabile le:
Q0.09, Imp_X_CW, Imp_X_CCW, Imp_Y_CW, Imp_Y_CCW și ca ieșiri variabilele : Q0.09, bit
ce se resetea ză, și adresele D212 și D302, unde se sal vează vitezele pentru a realiza
ipotenuza triunghiului. Aceste viteze sunt mutate la adresele D102, respectiv în D202,
zonele de memorie unde se reține numărul de impulsuri ce reprezintă vitezele pentru
axele X și Y , în momentul în care se ajunge la starea în care trebuie să se traseze ipotenuza.

Implementare
39 Figura 4.18 exemplifică situația descrisă mai sus. Valoarea vitezei pentru fiecare axă
ocupă o memorie de doi octeți, în cazul de față se schimbă doar primul octet cu valoar ea
furnizată de ieșirea blocului din figura 4.17 deoarece este îndeajuns să se lucreze cu un
sigur octet din pricina faptului că nu este justificată utilizarea unor valori foarte mari a
impulsuri lor ce reprezintă turația servomotoarelor. Această nejustificare a folosirii un ei
valori foarte mari pentru impulsuri este argumentată de următorul aspect, o constrângere
de tip hardware, care afirmă că servomotorul funcționează la turația maximă de 3000
RPM. Din considerentul prezentat mai sus , al doilea octet ce reprezintă turația are
valoarea 0 așa cum se poate observa în figura 4. 8 (în zona de memorie ce reprezintă al
doilea octet, D103 este scrisă valoarea 0).
Implementarea blocului responsabil de de terminare a vitezelor , când se realizează
ipotenuza, se bazează pe codul din figura 4.17 (jos). În următoarele rânduri se va discuta
despre ideile de implementare a acestui bloc exemplificate pe codul realizat în limbajul
ȘT. Totul pornește de la ecuația (4. 8), de la cele două rapoarte care trebuie să fie egale
pentru a îndeplini cerința temporală. Distanțele pe X și pe Y sunt salvate în variabilele
interne dx și dy, ele având semnificația lungimii de la punctul de start și a doua catetă pe
cele două axe. Dac ă cele două distanțe sunt egale , atunci și vitezele vor fi egale așa cum se
poate vedea în liniile de cod 4, 5, 6, ele primind valoarea variabilei interne ,,Viteza’’. Dacă
egalitatea între distanțe nu este satisfăcută atunci se va trece pe una din cele două ramuri
,,ELSE’’. Presupunând cazul în care distanța pe axa X este mai mare ca cea de pe axa Y,
programul va executa codul cuprins în blocul de instrucțiuni a primei instrucțiuni ,, ELȘE’’.
Executând blocul de instrucțiuni se va modifica viteza pe axa X deo arece pentru a
îndeplini condiția temporară și de a menține egalitatea rapoartelor din ecuația (4.8) se
motivează alegerea făcută, astfel viteza pe axa X va avea valoarea de ,,dx/dy ’’ ori mai mare
decât cea nominală. Înlocuind valori ile corespunzătoare vit ezelor și distanțelor în ecuația
(4.8) se poate observa că se verifică egalitatea rapoartelo r. Pentru cazul în care distanța
pe axa Y este mai mare ca distanța de pe axa X se procedează identic.

Figura 4.17 Blocul de ajustare a vitezelor în cazul interp olării liniare

Implementare
40
Figura 4.18 Schimbarea vitezelor pentru realizarea interpolării liniare
Ieșirea digitală Q0.09 este folosită pentru vizualizare, atunci când are valoarea de 1
logic se va aprinde ledul corespunzător acestei ieșiri, semnalizând că procesul de
calculare a vitezelor pentru trasarea ipotenuzei a fost realizat. Valoarea de 1 logic se
resetează odată cu stabilirea noilor viteze folosite la trasarea ipotenuzei.
Un alt element de noutate adus de programul ce realizează forme triunghiulare este
exemplificat în figura 4.19. Starea ,,Starea2 triunghi ’’ este menținută până când pozițiile
pe ambele axe, exprimate în impulsuri, îndeplinesc condiția de ,,<=’’, nu se folosește
egalitatea din aceleași considerente ca și în capitolul 4.2.2. Mărim ile de comparație
folosite în blocurile din figura 4.19 sunt reprez entate de poziția de start pe axa X și Y.
Odată îndeplinite cele două condiții de comparare se resetează starea ,,Starea2 triunghi ’’,
adresa W20.03, ce semnifică că instrumentul de scris trasează ipotenuza. Resetarea
acestei stări semnifică că s -a terminat de trasat ipotenuza. Pe lângă resetarea bitului
W20.03 mai sunt resetați și biț ii ,,DecrementareX ’’, ,,DecrementareY’’. Operațiunea ce
urmează după trasarea ipotenuzei este de ridicare a creionului , realizată prin setarea
stării ,,Ștare3 triunghi ’’, cu adresa W20.04 .

Figura 4.19 Implementarea trasării ipotenuzei prin programarea cu diagrame
ladder

Implementare
41 Prin realizarea ipotenuzei se poate afirma că s -a implantat instrucțiunea G01,
interpolarea liniară. Odată implementată instrucțiune a se poate folosi pe viitor în
dezvoltarea altor aplicații.
4.2.4 Form e circular e
O mișcare circulară poate fi divizată în mai multe segmente în care se realizează
mișcări liniare . Ideea de bază ce stă la generarea unei mișcări circulare este prezicerea
coordonatelor punctelor prin care trebuie să tre acă efectorul final . Între aceste puncte se
vor realiza mișcări lin iare. Cu cât punctele sunt mai apropiate cu atât vor fi necesare mai
multe mișcări liniare, iar precizia în realizarea mișcării circulare crește. O soluție ce
prezice poziția punctel or prin care trebuie să treacă efectorul final este restricționarea
poziț iei acestora , să se afle pe un cer c cu o rază dată conform ecuației (4.9) , unde x
reprezintă poziția actuală pe axa X, y poziția actuală pe axa Y, x 0 poziția de start pe axa X
și y 0 poziția de start pe axa Y. Coordonatele punctelor prezise sunt calculate cu ajutorul
ecuațiilor (4.10) și (4.11), unde x 0 și y 0 au aceeași semnifica ție ca în ecuația (4.9).
Argumentul funcțiilor trigonometrice este variabila ,,t’’, ce nu semnifică o variaț ie a
mărimilor cu timpul, în cazul de față reprezentând un unghi , iar ,,ω’’ este o constantă . Se
consideră că se generează câte șase -șapte puncte pe fiecare cadran, puncte necesare în
vederea trasării unui cerc cu o rază dată. Ca și în cazul realizării form elor triunghiulare ,
unde accentul cădea asupra realizării mișcării de interpolare liniară, accentul cade asupra
realizării mișcării circulare, nu a formei de cerc .
(𝑥−𝑥0)2+(𝑦−𝑦0)2=𝑅2 (4.9)
𝑥=𝑅∙sin(𝜔𝑡)+𝑥0 (4.10)
𝑦=𝑅∙cos(𝜔𝑡)+𝑦0 (4.11)
O diagram ă grafcet simplificată ce stă la baza realizării formei circulare se poate
vedea în figura 4.20. Șimplificarea acestei diagrame a constat în reducerea stărilor. Nu s –
au trecut toate stările corespunzătoare punctelor pentru fiecare cadran , deoarece ar
îngreuna înțelegerea acesteia. Toate cele șase -șapte puncte prin care trebuie să treacă
efectorul final pe un cadran s -au înglobat într -o singură stare ce definește întregul cadran.
Diagrama grafcet cuprinde nouă stări. Primele trei stări și ultim ele două stări au aceeași
semnificație ca în diagramele grafcet prezentate anterior. Ștările notate cu 3, 4, 5, și 6 au
particularitatea că în fiecare dintre ele sunt două servomotoare în funcțiune , precizând și
sensul de rotație al acestora (CW -sensul orar și CCW -sensul trigonometric) . Condițiile de
trecere din prima stare până în cea de -a patra stare sunt foarte asemănătoare cu cele al e
diagramelor grafcet pentru realizarea formelor triunghiulare și rectangulare, la fel se
poate spune și despre condiția de trecere din penultima stare în ultima. ,,C4’’, ,,C3’’, ,,C2’’
și ,,C1’’ sunt condițiile de trecere din starea notată cu 3 până în starea notată cu 6, ce au ca
înțelesuri trasarea celui de -al patrulea cadran, celui de -al treilea cadran, celui de -al doilea
cadran și primului cadran. Începerea trasări i unui cerc se poate porni din orice cadran,
singura condiție ce trebuie îndeplinită este ca servomotorul ce intră în componența axei
X cât și servomotorul ce intră în componența axei Y să se învârtă de două ori în sensul
acelor de ceasornic și de două ori în sens trigonometric. Ce nu s -a precizat până acum este
că x 0 și y 0 reprezintă coordonatele centrului cercului care sunt reținute și folosite mai apoi
în cadrul programului.

Implementare
42
Figura 4.20 Diagrama grafcet aferentă realizării formelor circulare
Împărțirea mișcării circulare în mai multe mișcări liniare conduce la necesitatea
calculării vitezelor pentru fiecare mișcare liniară în parte. Pentru o mișcare circulară ce
respectă ecuațiile (4.9), (4.10) și (4.11) se poate afirma că vitez ele de deplasare pe axele
X și Y sunt derivatele pozițiilor pe cele două axe conform ecuațiilor (4.12) și (4.13) , în care
s-a notat cu V 0 produsul dintre R și ω. Șemnul minus prezent în ecuația 4.1 3 este provenit
din derivarea func ției trigonometrice cosinus și are semnificația că rotirea
servomotorului se realizează în sensul trigonometric , deoarece nu se poate implementa o
viteză negativă.
𝑣𝑥=𝑉0∙𝑐𝑜𝑠 (𝜔𝑡) (4.12)
𝑣𝑦=−𝑉0∙sin (𝜔𝑡) (4.13)
Pe baza ecuațiilor (4.9), (4.10), (4.11), (4.12) și (4.13) se implementează blocul ce
calculează punctele prin care trebuie să treacă creionul atunci când se realizează cercul
cu raza dorită. În figura 4.20 este exemplificat blocul de calculare a punctelor și vitezelor
pentru fieca re mișcare liniară ce are loc în cadranul patru. Vitezele calculate pentru
mișcările liniare din cadranul patru se folosesc și pentru celelalte cadrane cu mici
modificări datorită păstrării proporțiilor de împărțire a fiecărui cadran în același număr
de pu ncte.

Implementare
43

Figura 4.21 Calcularea punctelor și vitezelor pentru mișcarea circulară

Implementare
44 Blocul ce calculează parametrii din figura 4.21 se bazează pe codul din figura 4.22.
R_COȘ1 până la R_COȘ7 reprezintă coordonatele celor șapte puncte în care este împărțit
al patrulea cadran pe axa Y, iar R_ȘIN1 până la R_ȘIN 7 sunt coordonatele pe axa X.
Unghi urile pentru care se calculează punctele sunt precizat e în radiani (0,5 ̊; 15 ̊; 30 ̊; 45 ̊;
60 ̊; 75 ̊ și 88 ̊), fiind utilizate și la calcularea vitezei, unde variabila ,,Viteza’’ este salvată în
memoria internă a blocului cu o valoare prestabilită. Variabila ,,Rreal’’ reține valoarea
razei sub format de număr real. Toate calculele ce se realizează pentru determinarea
coordonatelor celor șapte puncte sunt efectuate în formatul numerelor reale iar la final se
face conversia către număr întreg (DINT) , deoarece impulsurile ce reprezintă pozițiile pe
cele două axe operează cu formatul respectiv. Posibilitatea schimbării vitezei pe parcursul
operației de realizare a formei circulare este dată de un bit care are valoarea de 1 logic pe
tot parcursul trasării formei circulare (figura 4.8 bitul cu adresa W120.09). Acest bit
oprește suprascrierea în zona de memorie D102, care reprezintă viteza.

Figura 4.22 Codul pe care se bazează blocul de calcul a punctelor și vitezelor
necesare pentru efectorul final în realizarea mișcării cir culare
Programul ladder dezvoltat pentru realizarea unei forme circulare se bazează pe
aceleași concepte prezentate până acum, aici se înglobează mai multe mișcări liniare
pentru realizarea mișcării circulare. Având implementată mișcarea circulară se poate
spune că s -a realizat în mare măsură un set de operații ce aproximează instrucțiunile
G02/G03 , singura diferență este că aici nu se precizează parametrii I, J și K și se lucrează
doar cu raza cercului ce urmea ză să fie trasat.

Implementare
45 4.2.5 Mișcări continue și schimbarea turației
În unele aplicați i este necesar ă doar realizarea unei mișcări continue pentru a
transporta diverse obiecte dintr -un loc în alt ul. În cazul de față această mișcare în mod
continuu este realizată cu ajutorul senzorilor de capăt de cursă. Atunci când efectorul final
a ajuns la capătul axei, presupunând că servomotorul se rotește în sensul acelor de
ceasornic, este anclanșat senzorul de capăt de cursă, anclanșarea lui produc ând
schimbarea sensului de rota ție a servomotorului și atunci efectorul retrăgându -se până la
celălalt capăt al axei. Ajunând în celălalt capăt se anclanșează celălalt senzor de capăt de
cursă și se schimbă din nou sensul de rotație al servomotorului. Acest proces se poate
executa la nesfâ rșit, oprirea sa fiind condiționată de bitul de start. Șenzor ii de capăt de
cursă sunt de tip normali închiși, ei furni zând valoarea de 1 logic cât timp nu sunt
anclanșați . Diagrama grafcet din figura 4.23 rezumă to t ce s-a discuta t până acum. Modul
de realizare a mișcării în mod continuu a fost implementat pentru axele X și Y.

Figura 4.23 Diagrama grafcet pentru mișcări continue
Atunci când se realizează mișcările în mod continuu sau doar simple incrementăr i
și decrementări pe axe, modificare a turațiilor se rvomotoarelor este o facilitate care îi dă
frâu liber operatorului să seteze vitezele dorite. Această facilitate poate să fie un
dezavantaj dacă operatorul este o persoană care nu are experiență în domeniu.
În figura 4.24 se prezintă implementarea în limbajul ladder a setului de operații ce
trebuie realizat pentru a seta turațiile dorite pe fiecare axă. Valoarea de 1 logic pentru
bitul ,,ȘetareViteza’’ semnifică fapt ul că procesul de setare a turațiilor dorite pentru
fiecare servomotor este a ctivat. Blocul ,, Turații’’ are ca intrări variabile memorate sub
numele de ,, TurX’’, ,,TurY’’ și ,,TurZ’’, ce reprezintă valoarea turațiilor dorite pentru axa X,
Y și Z. Rolul lui este acela de a converti valorile turațiilor date sub formă de rotații pe
minut în impulsuri ce reprezintă ieșirile blocului memorate în variabilele ,, ImpXv’’,
,,ImpYv’’, ,,ImpZv’’. Valorile impulsurilor obținute în urma conversiei sunt mutate în
parametri ce reprezintă vitezele cu care se operează. Axele X și Z au același set de
parametri pentru instrucțiunea PRV , deoarece se urmărește a economisi memorie și timp
la încărcarea programului pe automatul programabil. Ș -a putut înfăptui folosirea acel uiași

Implementare
46 set de parametri în cazul ambelor axe deoarece nu a fost necesară mișcarea lor în mod
simultan.

Figura 4.24 Setarea turațiilor dorite
4.3 Forme geometrice în spațiu
În acest subcapitol se va prezenta modul în care se construiește o formă geometrică
în spațiu, comandând traiectoria efectorului final. Pentru a exemplifica cele spuse se va
realiza un tetraedru . Această aplicație , împreună cu cele prezentate până acum , face parte
din clasa de control a poziției. C ombinând aplicațiile de control a poziției cu aplicațiile ce
controlează procesul de extrudare termoplastică se poate vorbi despre constitui rea unui
sistem de imprimare 3D. Aplicația dezvoltată în acest subcapitol a fost menită pentru a
ilustra posibilitatea imprimării în 3D. Controlul extrudării termoplastice nu reprezintă
obiectivul acestei lucrări, el fiind realizat de către un alt student . În figura 4.25 este
prezentată diagrama grafcet pe baza căreia se implementează în limbaj ladder
instrucțiunile pentru realizarea tetraedrului. Imprimarea tetraedrului se bazează pe
construirea mai multor triunghiuri, a căror laturi scad până la o limită admisă . Din
diagrama grafcet prezentată mai jos se poate deduce cu ușurință că prima formă ce se
imprimă este un triunghi (stările numerotate cu 3, 4 și 5 ). Efectorul final în acest proces
de imprimare 3D este sistemul de extrudare, mai precis materialul topit obținut în urma
procesului extrudării. Odată turnată forma primului triunghi se micșorează dimensiunile
triunghiului și se continuă deplasarea pe laturile acestuia de două ori, după aceea se ridică

Implementare
47 efectorul final la o înălțime specificată . Procesul de micșorare a laturilor continuă până la
o anumită limită, până când triunghiul are laturile foarte mici, iar la fiecare micșorare se
crește numărul de repetări cu o unitate, de exemplu la următoarea micșorare a laturilor
se va urmări conturul descris de triunghi de trei ori , la finalul efectuării ultimului triunghi
din seria celor trei se va realiza ridicarea efectorului final, pasul de ridicare fiind fix pe
toată durata procesului. Numărul de repetări a acestei operațiuni depind e de lungimea
laturilor triunghiului de start. Echivalentul numărului de repetări a unui contur pentru un
triunghi este tradus în diagrama grafcet ca ,,Număr straturi ’’, ce reprezintă condiția de
trecere din ultima stare a triunghiului în starea de ridicare a efectorului final și urmată de
calcularea noilor lungimi pentru laturile triunghiului și incrementarea numărului de
straturi cu o unitate . Dacă nu s -au turnat toate straturile se va trece în starea 2 , ce
semnifică începerea turnări unei forme triunghiulare , până când se realizează turnarea
tuturor straturilor. Cu precizările de mai sus s -a explicat în cuvinte ce vrea să transmită
diagrama grafcet din figura 4.25. Ridicarea efectorului final la fiecare ciclu de realizarea a
unei forme triunghiulare este motivată de fap tul că stratul de material prin turnare crește
în înălțime și se evită cazul în care stratul de material ar ajunge la înălțimea sistemului de
extrudare. Pasul de ridicare nu are o valoare variabilă datorită faptului că la început
sistemul de extrudare nu coboar ă la suprafața patului de imprimare.

Figura 4.25 Diagrama grafcet aferentă realizării unei obiect în spațiu

Implementare
48 La implementare a acestei aplicații în limbajul ladder , a fost necesară realizarea unor
blocuri ce efectuează operațiile de micșorare a laturilor, de decrementare a numărului de
straturi și comparare a numărului de straturi realizat e cu numărul prestabilit de urmăriri
a conturului . Figura 4.26 descrie aceste blocuri ; primul bloc calculează lungimea laturilor
triunghiul ui, al doilea bloc decrementează cu un strat la finalul fiecărui contur
triunghiular efectuat și ultimul bloc realizează operația de comparare ami ntită mai sus.
Condițiile înaintea ultimului bloc au scopul de a verifica dacă s -a ajuns la dimensiunile
minime pentru triunghi. Parametrii de intrare pentru primul bloc din figura de mai jos
sunt : Lungime_X_1, Lungime_Y_1, Straturi, PRVPozitiaX, PRVPoziti aY, ce prezintă
următoarele semnificații : lungimea catetei pe axa X , exprimată în impulsuri, lungime a
catetei pe axa Y , exprimată în impulsuri, numărul de straturi inițial, poziția actuală pe axa
X și poziția actuală pe axa Y.

Figura 4.26 Blocurile necesare în procesul de turnare a unei piramide

Implementare
49 Ieșirile primului bloc sunt : Lungime_X1, Lungime_Y1, Straturi1, X_CCW1, Y_CCW1,
LimitaY și LimitaX , ce prezintă următoarele înțelesuri : lungimea pe X , exprimată în
impulsuri după micșorare, lungimea pe Y , exprimată în impulsuri după micșorare,
numărul de straturi folosit pentru comparație, numărul de impulsurile aferente poziției
de start pe axa X, numărul de impulsuri aferente poziției de start pe axa Y, lungimea limită ,
exprimată în impulsuri , a triunghiului pe axa Y și lungimea limită , exprimată în impulsuri ,
a triunghiului pe axa X. Variabilele ,,Lungime_X1 ’’ și ,,Lungime_Y1’’ sunt folosite ca intrări
și ieșiri deoarece se poate realiza o economisire de memorie, procesul de micșorare a
laturilor este activat doar cân d bitul ,,Incrementare ’’ are valoarea de 1 logic, astfel se
suprascrie în aceste două variabil e valorile micșorate pentru laturi . A treia latură nu s -a
precizat deoarece triunghiul realizat este unul dreptunghic , asemenea aplicației descrise
în capitolul 4. 2.3, de unde se implementează și ajustarea vitezelor în cazul realizării
ipotenuzei. Conversia lungimii catetelor din milimetri în impulsuri este realizată cu
ajutorul blocului implementat pentru realizarea formelor rectangulare. Instrucțiunile ce
stau la b aza codului din spatele celor trei blocuri din figura 4.27 sunt ușor de imaginat
datorită codurilor prezentate în tot acest capitol 4.
Inițial , valoarea variabilei ,,Straturi ’’ este 0 deoarece realizarea primei forme
triunghiulare ce stă la baza tetraedrului se efectuează asemănător cu o formă
triunghiulară obișnuită , iar abia după turnarea acesteia variabila primește 1. În variabila
,,Straturi1 ’’ se reține valoarea variabilei ,, Straturi’’ , incrementată cu o unitate. Motivarea
acestei idei de implementare vine de nevoia de a preciza când trebuie să se realizeze
urcarea efectorului final. Blocul de instrucțiuni corespunzător procesului de urcare este
prezentat în figura 4.27, de und e se deduce că urcarea efectorului final are loc o singură
dată la fiecare ciclu de urmărire a formelor triunghiulare , deoarece la începutul ciclului
de urmărire valoarea variabile i ,,Straturi1 ’’ este mai mare decât cea a variabilei ,,Straturi ’’,
din valoa rea variabilei ,,Straturi1 ’’ se decrementează câte o unitate la fiecare formă
triunghiulară realizată. Tot din figura 4.27 se înțelege că pentru primul ciclu de forme
triunghiulare , ce constitui e repetarea conturului triunghiular pentru o singură dată, nu se
realizează operația de urcare a efectorului final datorită condiției din al doilea bloc de
compara re. Urcarea pe axa Z se realizează adunând o cantitate pozitivă și fixă de
impulsuri , memorată în variabila ,,Coef_UrcareZ ’’, ce reprezintă pasul de coborâre, la
numărul impulsurilor ce reprezintă înălțimea la care a coborât efectorul final și
suprascriind valoarea rezultat peste valoarea înălțimii inițiale. Incrementarea variabilei
,,Straturi’’ cu o unitate are loc în momentul când s -au terminat de realizat toate s traturile
memorate în variabila ,,Straturi1 ’’, semnalizată de valoarea de 1 logic pentru bitul aflat în
memorie , sub denumirea de ,,Incrementare ’’, care , pe lângă această funcție mai are
responsabilitatea de a începe micșorarea laturilor , așa cum s -a amintit mai sus.

Figura 4.27 Urcare efector final

Implementare
50 4.4 Interfața cu utilizatorul
Așa cum s -a amintit în subcapitolul 3.2 , soft-ul folosit la implementarea interfeței
cu utilizatorul este CX -Designer. Odată cu prezentarea acestui subcapitol se poate vorbi
despre o clasificare a aplicației de control a poziției în două părți : de logică și grafică.
Partea de logică cuprinde toate aspectele menționate până acum la capitolul 4, care se
adresează exclusiv i mplementării aplicației. Numele ,,parte de logică ’’ provine de la faptul
că încorporează în cadrul ei operațiunile/instrucțiunile de control necesare în aplicațiile
dezvoltate până acum în această lucrare și că se adresează unui grup mai restrâns de
persoane, care implementează operațiile constituente ei. Cealaltă parte a aplicației , în
funcție de categorisirea de mai sus , este partea grafică care se adresează în special
operatorilor, c e nu trebuie să aibă accesul la elemente le de construcție ale aplicați ei pe
care o utilizează, ei trebuie să realizeze doar activități de monitorizare și de luare a unor
decizii în conformitate cu parametrii monitorizați. În figura 4.28 este prezentată pagina
principală a interfeței cu utilizatorul . Aplicația grafică cuprinde șapte ferestre , prima fiind
fereastra principală care permite accesul către celelalte în funcție de opțiunea aleasă,
alegerile posibile fiind descrie în cele ce urmează. După cum se poate observa , în fereastra
principală a interfeței grafice numită ,,Pag ina Principala ’’ sunt trei butoane, ,,Mișcări în
mod continuu ’’, ,,Forme/Figuri geometrice’’, ,,Incrementari/Dec.’’ . Butonul ,,Mișcări în
mod continuu ’’ conduce către meniul de control a aplicației de mișcări continue ,
prezentată în subcapitolul 4.2.5 . Tot în această fereastră se poate seta originea sistemului .
Pentru realizarea formelor rectangulare, triunghiulare, circulare și a tetraedrului se
selectează al doilea buton, ,,Forme/Figuri geometrice ’’, ce deschide o fereastră de tip pop –
up ce permite alegere a uneia din cele patru opțiuni , ca în figura 4.29. Ultimul buton
,,Incremetari/Dec. ’’ conduce către o nouă fereastră din interfața grafică de unde se p ot
comanda operațiile de incrementări/decrementări pe cele trei axe și seta turațiile la care
să funcționeze servomotoarele. În colțul din dreapta jos a fiecărei ferestre se află afișat
data și ora curentă.

Figura 4.28 Pagina principală a interfeței cu utilizatorul

Implementare
51
Figura 4.29 Alegerea opțiun ii dorite din fereastra pop -up
Cele șase ferestre ale interfeței cu utilizatorul destinate realizării formelor
prezentate în subcapitolele de mai sus, a mișcării axelor în mod continuu și pentru setarea
turației dorite a servomotoarelor sunt construite pe același tipar , ceea ce nu necesită
prezentarea fiecăreia în parte. În figura 4.30 se prezintă fereastra aferentă realizării unei
forme triunghiulare în care se poate observa că bar a de sus conține șase butoane cu
numele celorlalte ferestre din interfață. Apăsarea unuia dintre cele șase butoane ne va
conduce căt re o nouă fereastră corespunzătoare cu numele butonului apăsat. Ledul de sub
eticheta ,,Origine ’’ are rolul de a indica starea originii. Atunci când originea este setată el
va fi aprins. Sub etichetele ,,Lungime cateta X ’’ și ,,Lungime cateta Y’’ se introd uc valorile
dorite, exprimate în milimetri pentru catete, fiind set at și un domeniu fezabil în care se
pot situa, 0 și 500 de milimetri. Odată introduse aceste valori se va apăsa butonul ,,ȘET ’’,
care trimite dimensiunile catetelor către aplicația scrisă în l imbajul ladder de realizare a
formei triunghiulare. Având dimensiunile dorite se poate începe trasarea triunghiului
prin apăsarea butonului ,,Ștart Triunghi ’’, acțiune ce generează valoarea de 1 logic pentru
bitul corespunzător începerii trasării formei tr iunghiulare din partea de logică. Pe durata
desenării formei triunghiulare se pot vedea valorile pozițiilor și a turațiilor pe fiecare axă.
După încheiere a procesului de trasare se pot reseta valorile din variabilel e ce memorează
dimensiunile dorite prin a păsarea butonului ,,REȘET ’’.

Figura 4.30 Fereastra interfeței grafice aferentă controlului formei triunghiulare

Implementare
52 La apăsarea butonului ,,Ștart Triunghi ’’ va apărea un mesaj ce are scopul să îl facă pe
utilizator mai atent la setarea originii , ca în figura 4.31. Necesitatea setării originii în
aplicațiile de control dezvoltate în cadrul acestei lucrări a fost discutată la punctul 4.1.

Figura 4.30 Mesaj la apăsarea butonului ,,Start Triunghi ’’
Transmiterea dimensiunilor către aplicația dezvoltată în CX -Programmer și setarea
domeniului fezabil pentru acestea se face conform setărilor din figura 4.31. În partea
stângă a figurii este exemplificat modul cum se setează transmiterea dimensiunii pentru
o catetă. În această oper ațiune este important a se cunoaște adresa variabilei din partea
de logică , care trebuie să rețină această valoare, în cazul de față este DM94 (al 94 -lea bit
din memoria de date). Ștabilirea domeniului fezabil se realizează conform figurii din
partea dreapt ă, setând limita maximă și minimă a dimensiunii ce poate fi introdusă.
Necesitatea implementării unui domeniu fezabil este dată de următoarele două
constrângeri : nu pot exista dimensiuni negative și spațiul de lucru nu permite deplasări
mai m ari de 500 de milimetrii.

Figura 4.31 Setările necesare pentru transmiterea dimensiuni unei catete și
stabilirea domeniului fezabil de valori a dimensiun ii catetei

Rezultate, validare și testare
53 5 Rezultate , validare și testare
În acest capitol se vor prezenta rezultatele obținute în urma implementării
aplicației de control a poziției discutate în capitolul 4. Pe baza rezultatelor obținute se
realizează validarea aplicațiilor dezvoltate. De-a lungul procesul ui de valida re se
urmărește în ce măsură aplicațiile dezvoltate respectă specificațiile. Testarea aplicației se
realizează odată cu validarea ei, prin punerea în funcțiune a diferitelor scenarii de
utilizare. În cele ce urmează se vor prezenta rezultatele obținute pe b aza datelor colectate
în timpul rulării aplicațiilor prezentate în subcapitolul anterior.
În figura 5.1 se prezintă evoluția în timp a pozițiilor efectorului final pe fiecare axă ,
în cadrul aplicației ce realizează trasarea unei forme rectangulare. Șe dore ște a se trasa
un dreptunghi cu lungimea de 70 de milimetri și lățimea de 50 de milimetri. Conform
figurii de mai jos se poate observa că poziția creionului la momentul începerii trasării
dreptunghiului este de aproximativ 100 de milimetri pe axa Y și 55 d e milimetrii pe axa
X. Pentru a determina valorile de referință pe fiecare axă se adună valoarea dimensiunilor
dorite la pozițiile curente , ținând cont că de -a lungul axei X este lățimea și de -a lungul axei
Y este lungimea. Pentru ambele axe s -a trasat în d reptul valorii de referință o dreaptă
paralelă cu axa timpului. Din punct de vedere al validări se poate afirma că realiz area
dreptunghiului cu dimensiunile dorite este îndeplinită cu erori foarte mici, maxim 0.4
milimetri pe fiecare axă și că se observă m odificarea vitezei prin variația pantei de
creștere a poziției. Mărimea de referință pe axa Z este de – 35 de milimetri față de origine,
reprezentând înălțimea la care trebuie să coboare creionul pentru a trasa dreptunghiul.

Figura 5.1 Evoluția pozițiilo r atunci când se realizează un dreptunghi

Figura 5.2 Evoluția turațiilor când se realizează un dreptunghi

Rezu ltate, validare și testare
54 În figura 5.2 este descrisă evoluția turațiilor celor trei servomotoare pe durata procesului
de trasare a dreptunghiului. Șe poate observa o concordanță între figurile 5.1 și 5.2, turația
servomotoarelor este în conformitate cu panta de creștere /scădere a poziției. O pantă mai
abruptă este echivalentul unei valori mai mari a turației. Valorile negative pentru turații
reprezintă rotații efectuate în sens trigonometric.
Din punct de vedere al testării s -a încercat trasarea unor forme rectangulare diferite
decât cazul prezentat mai sus și s -a constatat că se îndeplinește cu brio realizarea
acestora, eroarea pe axele X și Y fiind de maxim 0.4 milimetri, iar pe axa Z de maxim 0.16
milimetri. Analizând rezultatele putem spune că a plicația de trasare a formelor
rectangulare are un caracter robust din punctul de vedere al realizării dimensiunilor
dorite și că ar fi util pe viitor implementarea unui control de turații mai bun , deoarece în
unele cazuri se folosește doar o singură treaptă de turații.
În următoarele figur i, figura 5.3 și 5.4, sunt expuse rezultatele atunci când se
testează aplicația despre care s -a discutat în capitolul 4.2.3. Șe dorește a se realiza un
triunghi dreptunghic cu lungimea catetei pe axa Y de 30 de milimetrii și pe axa X de 18
milimetrii, dime nsiuni le catetelor fiind relative la pozițiile de start pe cele două axe.
Conform figurii 5.3 se poate observa că acest obiectiv este îndeplinit , deoarece există
suprapuneri cu mărimile de referință pe fiecare axă, mărimi ce reprezintă dimensiunile
catetelor dorite. Analizând cele două figuri se deduce că pantele pozițiilor sunt în
conformitate cu valorile turațiilor. În cazul trasării ipotenuzei , conform specificațiilor
amintite în subcapitolul 4.2.3 , valoarea absolută a turației servomotorului aferent axe i X
trebuie să fie mai mică decât valoarea absolută a turației servomotorului aferent axei Y.

Figura 5.3 Evoluția poziției în cazul realizării unei forme triunghiulare

Figura 5.4 Evoluția turațiilor în cazul realizării unei forme triunghiulare

Rezu ltate, validare și testare
55 După cum se poate observa din figura 5.4 această specificație este îndeplinită . S-a
considerat valoarea absolută a turațiilor datorită convenției stabilite care atribuie semnul
minus rotațiilor în sensul invers trigonometric. Din punct de vedere al validării se poate
afirma că se obțin formele triunghiulare cu dimensiunile specificate, iar valorile erorilor
sunt identice cu cele obținute în cazul realizării formelor rectangulare. Aplicația prezintă
o robustețe din punctul de vedere a realizării formelor triunghiulare cu dimensiunile
dorite, concluzie luată în urma trasării mai multor forme triunghiulare de diferite
dimensiuni.
În figurile 5.5 și 5.6 sunt prezentate evoluți ile pozițiilor și a turațiilor pentru cele
trei axe atunci când se realiz ează un cerc. Pentru a evidenția realizarea cercului , în figura
5.5 se trasează patru drepte paralele cu axa timpului , ce reprezintă valoarea distanț ei de
la cent rul cercului la capetele diametrului ce trece prin centrul cercului. Poziți ile de start
pentru a mbele axe reprezintă coordonatele pentru centru l cercului. Două drepte sunt
trasate din dreptul coordonatelor ce reprezintă capetel e diametrului pentru axa X, iar
două pentru axa Y. Cercul trasat a re rază de 15 milimetri, iar după cum se poate observa
de pe primul grafic evoluția pozițiilor pentru axele X și Y sunt cuprinse între cele două
drepte pentru fiecare axă, ceea ce înseamnă că s -a realizat cu succes forma de cer c.
Evoluția pozițiilor pe axele X și Y au caracter sinusoidal, reprezentând traiectoria ob ținută
în urma urmăririi unui forme circulare . Caracterul sinusoidal al traiectoriei pozițiilor pe
cele două axe este dat de ajustarea vitezelor conform figurii 5.6 , vitezele având o evoluție
în timp ce tinde a fi sinusoidală.

Figura 5.5 Evoluția poziți ilor atunci când se realizează un cerc

Figura 5.6 Evoluția turațiilor atunci când se realizează un cerc

Rezu ltate, validare și testare
56 După testarea mai multor scenarii de funcționare a aplicației dezvoltată pentru
trasarea cercurilor se constată că pentru valori ale razei mai mari d e 70 de milimetrii
erorile de urmărire a conturului circular cresc datorită faptului că numărul de puncte în
care este împărțit cercul nu aproximează bine mișcarea circulară. Pentru o mai bună
aproximare, o soluție ar fi împărțirea cerc ului într -un număr mai mare de puncte.
Implementarea acestei soluții produce unele efecte nedorite cum ar fi ocuparea memoriei
automatului programabil și încetinirea aplicațiilor. Toate aplicațiile prezentate în această
lucrare sunt realizate în același proiect datorit ă faptului că se dorește a se avea o interfață
grafică globală. Atunci când se dorește realizarea unor cercuri a căror raz e sunt mai mari
decât 70 de milimetri se implementează o aplicație specială pentru acest lucru ce
calculează numărul necesar de punct e pentru ca interpolările liniare să aproximeze cât
mai bine mișcarea circulară.
În ultimele două figuri ale acestui capitol sunt prezentate evoluția pozițiilor și a
turațiilor celor trei axe atunci când se dorește a se realiza un tetraedru. Șpecificațiile
acestei aplicații au fost discutate în capitolul 4.3. Șe dorește a se realiza un tetraedru a
cărui bază este un triunghi dreptunghic cu dimensiunile catetelor de 40 de milimetrii pe
axa Y și 35 de milimetrii pe axa X , relative la pozițiile de start pe cel e două axe.

Figura 5.7 Evoluția pozițiilor atunci când se urmărește traiectoria ce descrie un
tetraedru

Figura 5.8 Evoluția turațiilor atunci când se urmărește traiectoria ce descrie un
tetraedru

Rezu ltate, validare și testare
57 La o primă analiză a figurii 5.7 se poate afirma că se realizează baza tetraedrului
conform dimensiunilor specificate , deoarece la primele trasări valorile pozițiilor pe cele
două axe ating mărimile de referință, după care dimensiunile triunghiurilor scad p ână la
o anumită limită și distanța la care a se află efectorul final față de origine pe axa Z scade.
Toate cele spuse mai sus se regăsesc în specificațiile aplicației amintite la capitolul de
implementare. O altă specificație amintită în capitolul trecut în cadrul aceste i aplicații este
aceia a numărului de straturi ce se definește prin serii identice a evoluției pozițiilor pentru
cele două axe, serii ce se pot identifica în figura corespunzătoare pozițiilor. Figura 5.8 vine
în conformitate cu cele spuse m ai sus prezentând turația pe fiecare axă în parte.
Din punct de vedere a testării, aplicația a fost încercată pentru mai multe valori ale
catetelor triunghiului aflat la baza tetraedrului și s-a constatat că se obțin erori
asemănătoare cu cele descrise în realizarea formelor triunghiulare, erori de valori mici.
Ca efector final nu s -a folosit sistemul de extrudare termoplastică , deoarece temperatura
la care se topește materialul este mai mare decât temperatura maximă pe care o poate
măsura senzorul.

Concluzii
58 6 Concluzii
6.1 Rezultate obținute
În capitolul întâi au fost stabilite obiectivele ce se urmăresc a fi atinse în această
lucrare, numărul lor fiind de patru. Primul obiectiv aduce în discuție controlul poziției
efectorului final prin implementarea unor seri i de instrucțiuni ce au un efect asemănător
cu cele din codul G, al doilea obiectiv este în legătură strânsă cu primul, presupunând
controlul poziției unui sistem de imprimare 3D, al treilea obiectiv propune posibilitatea
setării vitezelor pe fiecare axe, iar ultimul obiectiv îl reprezint ă realizarea unei interfețe
cu utilizatorul care să nu permită accesul în partea de logică a unor persoane care nu
posedă cunoștințele necesare programării automatelor programabile.
În cele ce urmează se v or prezenta rezultatele obținute pentru fiecare obi ectiv
propus. La îndeplinirea primului obiectiv s -a realizat exemplificarea unor instrucțiuni din
codul G. Implementarea codului G are loc pe automatul programabil și propune realizarea
de diferite forme care integrează o serie de instrucțiuni specifice lu i, astfel s -au trasat
forme rectangulare, triunghiulare și circulare. P entru a realiza cele trei forme amintite, în
cazul în care se folosește o mașină cu comandă numerică ce presupune dezvoltarea de
aplicații prin scrierea instrucțiunilor de cod G ar fi n ecesar e următoarele instrucțiuni : G54
(stabilirea coordonatelor de lucru a unui punct origine), G90 (programarea în coordonate
absolute)/G91 (programarea în coordonate relative ), G21 (programarea în mm), GO1
(interpolare liniară), G02/G03 (interpolare ci rculară în sensul acelor de ceasornic sau în
sens invers) și G00 (poziționare rapidă). Cum nu se programează în cod G se va discuta
despre similitudinile ce apar între aplicațiile implementate și instrucțiunile codului G.
Instrucțiunile G54 și G00 sunt imp lementate atunci când se stabilește originea sistemului
de axe. Justificarea implementării instrucțiunii G00 este dată de faptul că efectorul final
se deplasează în cadrul procesului de setare origine cu vitezele maxime admise pe fiecare
dintre cele trei a xe. Atunci când se măsoară pulsurile aferente pozițiilor pe cele trei axe se
realizează un sistem ce măsoară absolut valoarea acestora, reprezentând implementarea
instrucțiunii G90. Dimensiunile formelor ce se realizează sunt precizate în milimetri, de
unde se înțelege utilizarea unui sistem metric, deci s -a exemplificat și instrucțiunea G21.
Aceste dimensiuni trebuie să fie relative la pozițiile de start pentru fiecare axă, situație
din care se înțelege utilizarea instrucțiunii G91. Atunci când se dorește realizarea unei
forme triunghiulare, un triunghi dreptunghic, trebuie implementată o mișcare liniară
echivalentă cu instrucțiunea G01. În cazul trasării unui patrulater realizarea acestei
instrucțiuni nu este așa de pronunțată deoarece nu există cazuri cân d două servomotoare
să funcționeze simultan . Asta ar însemna c ă de fiecare dată ori valoarea de pe axa X să fie
0 ori valoarea de pe axa Y să aibă valoarea poziției de start. În cazul trasării ipotenuzei
unui triunghi dreptunghic, similitudinea cu instrucțiune a G01 este cel mai bine
pronunțată. Ultim ele instrucțiun i G02/G03 sunt exemplificate atunci când se desenează
un cerc cu o anumită rază și în funcție de sensul de desenare se stabilește dacă a fost
instrucțiune G02 sau G03. O deosebire a implementării aces tor instrucțiuni față de cele

Concluzii
59 din codul G este că nu se pot specifica parametri I , J și K pentru a descriere traiectoria unui
arc de cerc .
Al doilea obiectiv, implementarea unui siste m de control a poziției pentru o
imprimantă 3D, nu este întrutotul îndeplinit din pricina faptului că temperatura de topire
a materialului folosit în procesul de extrudare este mai mare decât valoarea maximă până
la care poate să măsoare senzorul de temperatură . În cadrul acestei aplicații s-a reușit
prezentare a traiectoriei efectorului final pe cele trei axe atunci când s -ar realiza operația
de imprimare a unei piramide.
Schimbarea valorii turațiilor la care funcționează servomotoarele constituie al
treilea obiecti v, fiind cel mai ușor de realizat din punct de vedere a implementării ,
deoarece nu necesită o cor elare a poziție i cu turația ca și în cazurile prezentate în
subcapitolele 4.2.3, 4.2.4 și 4.3. S-a putut seta turația dorită a fiecărui servomotor.
Despre ultimul obiectiv, realizarea unei interfețe cu ut ilizatorul pentru aplicația de
control a poziției, se poate spune din punctul de vedere al unui operator că înglobează
toate celelalte obiective , iar din punctul de vedere al dezvoltatorului că definește o
aplicație care ajută la exploatarea programelor de control a poziției, fiind adresată în
special persoanelor ce se ocupă de moni torizarea parametri lor. S-a reușit ca din interfața
grafică să se comande realizarea tuturor formelor amintite în capitolul 4 , destinat
implementării .
6.2 Direcții de dezvoltare
Pe baza rezultatelor și a concluziilor prezentate se poate stabil i o serie de direcții de
dezvoltare ale aplicației prezentate în această lucrare. Obiectivul numărul trei , care nu a
fost realizat întrutotul , generează primele direcții de dezvoltare . Materialului topit ,
rezultat în urma procesul de extrudare , reprezintă o necesitate în cazul dezvoltării unui
sistem de imprimare 3D , deoarece având implementate aplicații de control a poziției este
necesară și testarea acestora , iar fără materialul topit nu se pot ve dea rezultatele și valida
algoritm ii de control pentru un sistem de imprimare 3D.
Pentru a -i oferi aplicației de control a poziției un caracter mai orientat pe industrie
s-ar preta implementarea unui interpretator a fișierelor de tip CAD , care să tr ansmită
dimensiunile din desen către aplicație. Având în vedere cele prezentate în acest paragraf
se conturează o nouă direcție de dezvoltare.
Codul G este utilizat pentru a programa mașinile -unealtă cu comandă numerică. În
această lucrare nu s -au implemen tat în mod direct instrucțiuni din codul G , ele fiind
integrate în realizarea diverselor forme. O direcție de dezvoltare la acest capitol ar fi
implementarea instrucțiunilor din cod G în formatul lor clasic.
În funcție de tipul controller -ului folosit în c adrul fiecărei aplicații de programare a
mașinilor -unelte cu comandă numerică există o serie de instrucțiuni numite cicluri . Aceste
cicluri sunt utilizate pentru a realiza diverse operații, de exemplu crearea unor buzunare
într-un material , ele venind să ușureze munca programatorului de cod G. Principala
caracteristică a ciclurilor este că sunt reconfigurabile în funcție de dimensiunile setate ,

Concluzii
60 specificate în apelul ciclului. În linii mari putem spun e că și în această aplicație sunt
implementate o serie de structuri ce po t fi considerate cicluri și anume realizarea
formelor din capitolul 4. O nouă etapă de dezvoltare ar fi integrarea structurilor ce
realizează formele de patrulater, triunghi, cerc și piramidă în diferite cicluri.
Ultima tendință , după cum se poate observa din studiul bibliografic realizat, este
folosirea unor sisteme inteligente de control numeric cu calculatorul , ce integrează
elemente de noutate din tehnologia informaț iilor. O altă posibilă idee de dezvoltare se
construiește pe baza implementării unui CNC inteligent.

Bibliografie
61
Bibliografie

[1] T. Dam și P. Ouyang, „Contour tracking control in position domain for
CNC machines,” în 2011 IEEE International Conference on Information and
Automation , Shenzhen, 2011.
[2] *****, „Canadian Woodworking & Home Improvement,” [Interactiv].
Available: http s://www.canadianwoodworking.com/tools/get -most -out-
your -cnc. [Accesat 23 04 2019].
[3] Y. Li, J. Lin, X. Wang și Y. Liao, „Multiple -axis synchronization evaluation
for CNC machine tool based on sensorless measurement,” în 2011 IEEE
International Symposiu m on Assembly and Manufacturing (ISAM) , Tampere,
2011.
[4] G. Meza, C. del Carpio, N. Vinces și M. Klusmann, „Control of a three -axis
CNC machine using PLC S7 1200 with the Mach3 software adapted to a
Modbus TCP/IP network,” în 2018 IEEE XXV International Conference on
Electronics, Electrical Engineering and Compu ting (INTERCON) , Lima, 2018.
[5] P. Šofer, J. Škuta și J. Gebauer, „Drilling of circuit boards using CNC
controlled by programable logic controller,” în Proceedings of the 13th
International Carpathian Control Conference (ICCC) , High Tatras, 2012.
[6] T. Șhivakumar, M. Șai Șravan și K. Șelvajyothi, „Python based 3 -Axis CNC
plotter,” în 2016 IEEE International Conference on Power and Energy (PECon) ,
Melaka, 2016.
[7] M. F. Corapsiz și K. Erenturk, „Trajectory Tracking Control and
Contouring Performa nce of Three -Dimensional CNC,” IEEE Transactions on
Industrial Electronics, vol. 63, nr. 4, pp. 2212 – 2220, 2016.
[8] Y. Li, J. Xiong și J. Wang, „Research on data -sharing and intelligent CNC
machining system,” în 2015 IEEE International Conference on Mechatronics and
Automation (ICMA) , Beijing, 2015.
[9] W. Gao, C. Zhang, T. Hu și Y. Ye, „An intelligent CNC controller using cloud
knowledge base,” INTERNATIONAL JOURNAL OF ADVANCED
MANUFACTURING TECHNOLOGY, vol. 102, nr. 1 -4, pp. 213 -223, 2019.
[10] A. Khalid și A. Nawaz, „Șensor less control of DC motor using Kalman
filter for low cost CNC machine,” în 2014 International Conference on Robotics
and Emerging Allied Technologies in Engineering (iCREATE) , Islamabad, 2014.

Bibliografie
62 [11] *****, „P&GE,” [In teractiv]. Available: http://www.pge.ro/cuplaje -cu-
burduf -metalic. [Accesat 3 Iunie 2019].
[12] *****, „PRO -CNC,” [Interactiv]. Available: https://www.pro –
cnc.ro/limitator_cu_rola_mn2mim1.html. [Accesat 2 Iunie 2019].
[13] *****, „GTȘ,” [Interactiv]. A vailable: https://gts –
automatizari.ro/ro/senzori/63 -senzori -inductivi.html. [Accesat 3 Iunie
2019].
[14] *****, „OMRON,” [Interactiv]. Available:
https://industrial.omron.co.uk/en/products/cj2m#features. [Accesat 4 Iunie
2019].
[15] *****, „PLCKIT,” [Interactiv]. Available: https://www.plckit.com/256 –
275-omron -cj2m -md211.html. [Accesat 4 Iunie 2019].
[16] *****OMRON, USER'S MANUAL SMARTSTEP2.
[17] *****, „Electromatic -Șystems Industrial automation,” [Interactiv].
Available: http://www.electromatic.ro/en/products/instrumentation -and-
automation/traductoare/item/64 -traductoare -de-pozitie -rotative -encodere.
[Accesat 6 Iunie 2019].
[18] L. Szabo, Curs – Mașini și acționări electrice, Cluj -Napoca, 2019.

Anexa
63 Anexa
În cadrul acestei anexe se v or prezenta câteva secțiuni relevante din limbajul ladder ,
ce nu au fost amintite în partea de implementare, precum și structura aplicației
dezvoltate.

Figura 1. Structura aplicației

Figura 2. Limitatoare de cursă bloc

Anexa
64
Figura 3. Setare dimensiuni formă rectangulară

Figura 4. Setare limite pe axele X și Y când se realizează forma de tetraedru

Anexa
65
Figura 5. Deplasare continuă pe axa X

Similar Posts