Software pentru masini cu control numeric (CNC)

Controlul numeric (eng. NC – Numerical Control) reprezinta un mod de operare al unor masini-unelte sau roboti industriali, prin automatizarea intregului proces cu ajutorul unui set de instructiuni ce controleaza miscarile masinii. In mod frecvent, setul de instructiuni este interpretat de un computer, de unde si denumirea de CNC (Computer Numerically Controlled).
Sarcinile masinilor-unelte sunt foarte variate, de taiere, gaurire, frezare etc., totul facandu-se automat, dupa o schema (model) prestabilita si incarcata in software-ul de pe computerul care comanda.
Masina dispune de obicei de 2 axe de deplasare (XY) pe care se deplaseaza un cursor (care reprezinta unealta ce indeplineste sarcina efectiva (taiere, decupare etc). Cursorul poate avea 2 stari (sus/jos sau activ/inactiv): in starea activa se produce operatia efectiva asupra materialului, pe cand starea inactiva reprezinta doar o stare de tranzitie intre doua stari active (cursorul este deplasat catre urmatoarea pozitie utila).
Controlul cursorului se face in mod riguros, cu o viteza precisa de inaintare si pe un anumit traseu. Deasemenea, miscarile individuale ale cursorului sunt controlate precis. De exemplu, in cazul in care cursorul reprezinta o scula de gaurire sau frezare, viteza sa de rotatie este deasemena controlata; daca in schimb, taierea se face prin laser, jet de apa sau termic, se va controla intensitatea jetului.
Mai multe despre masinile CNC, aici.

Detalii de implementare
Proiectul este inca in faza de dezvoltare, implementarea a fost facuta in C++ (Microsoft Visual Studio 2010)  si contine doar partea de incarcare de fisiere PLT (generate din Corel Draw) si modulul de randare si afisare a modelului incarcat.

Pentru randarea (desenarea) modelului am folosit un engine grafic minimal (pe care l-am implementat separat, ca librarie DLL), ce suporta operatii de transformare de baza: trasare model, translatie, zoom.
Pentru mecanica si deplasarea efectiva a cursorului masinii, programul trimite serial comenzi catre un cip ce comanda doua motoare tip stepper (unul pentru fiecare din cele doua axe). Comanda facandu-se la nivel de pas, fiecare directie de deplasare (la nivel de model, directia de deplasare reprezinta o linie dreapta intre doua puncte) trebuie descompusa in punctele componente. Pentru asta, am utilizat algoritmul Bresenham.
Totodata, pe langa informatiile despre deplasarea celor doua steppere, programul trimite si informatia despre pozitia cursorului (sus/jos sau activ/inactiv) in timpul deplasarii (liniile rosii care se observa in filmulet reprezinta starea inactiva iar cele albastre, starea activa).

In loc de nota de subsol

1 comment for “Software pentru masini cu control numeric (CNC)

  1. May 5, 2014 at 13:12

    interesant articolul

Leave a Reply