practical realization of cnc machine - ernest culaj

47
Fakulteti i Shkencave dhe Teknologjive te Komunikimit Punim Diplome Realizimi praktik i një makine me kontroll kompjuterike Mentor: Agni Dika, PhD Kandidat: Ernest Culaj, 106961 Mentor Hamiti, MSc Xhelal Jashari, 107793 Universiteti i Evropës Juglindore

Upload: nesti86

Post on 10-Apr-2015

1.196 views

Category:

Documents


3 download

DESCRIPTION

Practical Realization of CNC Machine.ElectronicsProgrammingSoftwareNetworkMicrocontroller

TRANSCRIPT

Page 1: Practical Realization of CNC Machine - Ernest Culaj

Fakulteti i Shkencave dhe Teknologjive te Komunikimit

Punim Diplome

Realizimi praktik i një makine me kontroll

kompjuterike

Mentor: Agni Dika, PhD Kandidat: Ernest Culaj, 106961

Mentor Hamiti, MSc Xhelal Jashari, 107793

Universiteti i Evropës Juglindore

Page 2: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

2

Përmbajtje

Përmbajtje ................................................................................................................................ 2

Abstrakt .................................................................................................................................... 4

Abstract .................................................................................................................................... 5

Hyrje .......................................................................................................................................... 7

Detyra e këtij projekti............................................................................................................... 8

Motorët ................................................................................................................................. 8

Elektronika............................................................................................................................. 8

Softueri Ndihmës (VBA)........................................................................................................ 8

Softueri për dirigjim............................................................................................................... 8

Realizimi .................................................................................................................................... 9

Motorët ................................................................................................................................. 9

Motorët e rrymës alternative ........................................................................................... 9

Motorët e rrymës njëkahore ............................................................................................ 9

Motorët unipolar............................................................................................................. 10

Motorët bipolar............................................................................................................... 11

Motorët SERVO ............................................................................................................... 12

Mikrokontrolleri.................................................................................................................... 13

Programimi i mikrokontrollerit......................................................................................... 15

Leximi i të dhënave nga mikrokontrolleri ...................................................................... 15

Dërgimi i komandave..................................................................................................... 16

Sistemi kordinativ kartezian ............................................................................................... 18

Pse të përdorim dirigjimin me rrjete ? ............................................................................... 22

Realizimi Praktik ...................................................................................................................... 24

Si funksionon ndarja e sinjaleve me dritë ? ...................................................................... 26

Page 3: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

3

Softueri ................................................................................................................................ 27

Softueri për gjenerimin e G-Kodit nga CorelDRAW......................................................... 31

Evoluimi i makinave CNC...................................................................................................... 42

Si funksionon lexuesi i pozitës ?.......................................................................................... 43

Ndërprerësit ........................................................................................................................ 44

Bashkangjitur .......................................................................................................................... 45

Përfundimi .............................................................................................................................. 46

Bibliografia.............................................................................................................................. 47

Page 4: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

4

Abstrakt

Ky punim ka për qellim që të demonstrojë mundësitë e kontrollimit të makinerive dhe

proceseve përmes rrjetit duke komunikuar në të njëjtën mënyrë siç komunikojnë

kompjuterët PC të lidhura në rrjetë. Punimi demonstron kontrollimin e tre motorëve me

hap (step Motor) që mund të lëvizin një makinë me tre akse. Është përdorur një mënyre

mjaft origjinale e kalkulimit të kohës se kaluar dT duke përdorur numërimin e cikleve të

procesorit në mënyrë asinkrone dhe integrimin e intervaleve të kaluara për ta njësuar

shpejtësinë përmes akselerimit konstant. Kështu janë eliminuar problemet që ka sistemi

operativ MS Windows kur ka nevojë që të punojë në kohë reale si dhe mungesa e

tajmerit të rezolucionit të lartë në Visual Basic.

Formulat e aplikuara janë ato me të thjeshta të raportit diferencial dhe integral ndërmjet

rrugës S shpejtësisë V dhe akselerimit a në ketë formë:

S = Sp + VdT

V = Vp + adT

Lëvizja simultane në tre akse është kalkuluar si segment S = SQRT( Sx^2 + Sy^2 +

Sz^2) dhe pastaj njësuar në çdo aks veç e veç

Mundësitë të demonstruara në këtë punim të kontrollimit përmes rrjetit të proceseve

mjaft të shpejta si ato të lëvizjes simultane të tre motorëve me hap vërtetohen edhe

përmes punimit praktik të një skemës funksionale elektronike. Softueri i përdorur është i

thjeshtë dhe i qartë dhe përveç kalkulimeve të lëvizjeve mundëson leximin e

instruksioneve të thjeshta të shkruara në një file teksti me komanda të thjeshta të

lëvizjes absolute ose relative të akseve me shpejtësi që mund të ndryshohet po ashtu

me një komandë të thjeshtë.

Programi i realizuar ka një interfejs grafik të thjeshtë dhe intuitiv që lehtëson përdorimin

e tij nga personeli punues. Ai punon në mënyrë automatike dhe manuale sipas nevojës.

Parasheh mundësinë e ndryshimit të shpejtësisë gjatë punës duke e ngritur ose ulur

sipas dëshirës.

Komunikimi me kontrolluesin të rrjetit bëhet sipas protokollit UDP me dërgimin e

paketave ASCII që bartin të dhënat për lëvizjen e motorëve me hap. Këta motorë mund

te lëvizin akset e makinave përpunuese ose të janë pjesë të makinave ose proceseve

me komplekse. Edhe pse në këtë punim nuk trajtohen ka mundësi që të zgjerohet me

hyrje që lexojnë ndërprerësit fundor ose matjet e ndryshme përmes hyrjeve TTL ose

analoge përmes A/D konvertorëve.

Page 5: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

5

Sot kur rrjeti internet lidhe pikat me të largëta të planetit tonë me dhënie të një IP reale

mund të bëhet kontrolli i pajisjeve , makinerive dhe proceseve përmes internetit ose

rrjetit pa tela. Mundësitë kufizohen vetëm me fantazinë tonë.

Abstract

The main goal of this project is to demonstrate the control of machines and other

processes using the network, to communicate in the same way those computers

communicate in network. This project demonstrates the control of three step motors that

can move a machine with three axes. We used a original manner of calculating the past

time dT using the asynchrony counting of cycles of processor and integrating of past

intervals to be able to calculate the constant acceleration speed. In this way we

eliminated the problems of real time work in MS Windows operating system and lack of

high resolution timer in Visual Basic.

The formulas that we applied are the simplest, to calculate the differential and integral

difference between the road S, velocity V and acceleration a in this manner:

S = Sp + VdT

V = Vp + adT

The motion of thee axis is calculated based on segment S = SQRT( Sx^2 + Sy^2 +

Sz^2) and then each of them for each ax.

The options demonstrated in this project to control the motion of motors and other fast

processes through network are available through the functional schematic of

electronics. The software used is simple and clear, and except calculation of motion

there is option reading the simple commands written in the text file, these commands

are the absolute move, the relative move, and the velocity.

The software has a simple graphical interface and intuitive that makes the use of them

simpler. It works in manual and automatic manner, with the ability to change the speed

during the work.

The communication with the microcontroller is based on UDP protocol, and commands

are based on ASCII packets that store the commands for motors. These motors can

move the axis of machines or be a part of other complex processes. Even if in this

project are excluded, there is ability to extend the project to be able to read limit

switches, or make other measurements through TTL inputs or measure analog signals

through A/D converters.

Page 6: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

6

Today that the internet connects the places all over the world, using the public IP

address we can control the equipments, machines and processes through internet. The

abilities are limited in our imagination.

Page 7: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

7

Hyrje

Teknologjia në ditët e sotme ka arritur një zhvillim shumë të madh, dhe pothuajse të

paparashikueshëm.

Mundësia e kontrollit te pajisjeve te ndryshme apo proceseve nga distanca gjithmonë ka

qene një sfide dhe një qëllim për shume kompani të ndryshme botërore.

Ne ketë projekt ne kemi shpjeguar se si mund te kontrollohen makina, pajisje apo

procese te ndryshme nga distanca ne kohë reale. Gjithashtu kemi demonstruar

praktikisht kontrollin e tre motorëve qe mund te jenë pjese e një makine, apo ndonje

procesi tjeter.

Page 8: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

8

Detyra e këtij projekti

Ky projekt përfshinë pjesën elektronike dhe softuerike të një makine CNC (Computer

Numeric Control).

Ideja është që të realizohet një sistem shumë i thjeshtë që mund të përdoret nga

çdokush. Ky sistem si tërësi përfshinë:

Motorët

Motorët dirigjohen nga një pjesë elektronike e cila merr komanda nga kompjuteri me

ane të rrjetit (LAN). Në këtë punim kemi përdorur motorë Step Unipolar me 200 hapa të

plotë ( ose 400 gjysmë hapa ).

Elektronika

Elektronika përbëhet nga një mikrokontroller që lidhet në rrjet, ku nga kompjuteri

dërgojmë komanda te ip-ja e këtij mikrokontrolleri duke përdorur UDP protokollin. Ky

mikrokontrolleri i lexon komandat e dërguara nga kompjuteri dhe gjeneron impulset step

dhe direction që komandojnë drajvat ku lidhen motorët. Ky mikrokontroller ka 24 pina që

mund të programohen si hyrje ose si dalje.

Drajvat janë pjesët ku lidhen motorët. Këto pjesë funksionojnë në atë mënyrë që marrin

sinjalet hyrëse Step dhe Direction dhe në dalje e furnizojnë motorin me rrymë aq sa të

arrije hapat e caktuara në hyrje dhe po ashtu në drejtimin e caktuar.

Softueri Ndihmës (VBA)

Softueri i realizuar në VBA(Visual Basic for Applications) në CorelDRAW që bën

konvertimin e vijave të vizatuara në G-Kod (Kodi standard për dirigjimin e makinave

CNC). G-Kodi është gjuha standarde që komandon makinat CNC. Është e zhvilluar nga

Aleanca e Industrisë Elektronika në vitet e 60-ta.

Softueri për dirigjim

Ky është softueri kryesor që lexon programet e gjeneruara nga softueri ndihmës, e

përpunon secilin rresht dhe i dërgon komandat në formatin e caktuar mikrokontrollerit.

Ky softuer është i shkruar në Visual Basic 6, dhe përdor Winsock për të komanduar

mikrokontrollerin.

Ky sistem është ndërtuar ashtu që të mund ti komandoje 3 motorë.

Page 9: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

9

Realizimi

Motorët

Motor elektrik quhet ajo pajisje që përdor energjinë elektrike për të prodhuar energji

mekanike. Procesi i kundërt, pajisja që nga energjia mekanike prodhojmë energji

elektrike quhet gjenerator ose dinamë.1

Në mënyrë klasike motorët i ndajmë në dy kategori: Motorë të rrymës alternative, dhe

motorë të rrymës njëkahore.

Motorët e rrymës alternative janë motorë elektrik të dizajnuar të punojnë më rrymë

alternative. Përbehet nga dy pjesë kryesore: statori, pjesa e cila nuk lëviz, apo

mbështjellësi dhe rotori pjesa që rrotullohet.

Ekzistojnë dy lloje të motorëve të rrymës alternative të cilët dallojnë së çfarë rotori është

përdorur. I pari është motori asinkron, i cili rrotullohet saktësisht sa është frekuenca. I

dyti është motori induktiv, I cili rrotullohet pak më ngadalë se sa është frekuenca. 2

Motorët e rrymës njëkahore janë motorë elektrik që janë të dizajnuar të punojnë me

rrymë njëkahore. Gjithashtu përbëhet nga statori që është pjesa statike, dhe rototi që

është pjesa që rrotullohet.

Në makinën tonë kemi përdorur motorët më hap (Step Motor). Këta motorë janë motorë

elektrik, pa brusha, të cilët mund të ndajnë rrotullimin e plotë në një numër të madh të

hapave. Pozita e këtyre motorëve mund të kontrollohet në mënyrë precize, por pa

ndonjë informatë kthyese (feedback). Këta motorë punojnë më rrymë njëkahore.

Më poshtë po paraqesim një foto të motorit me hap.

Fig. 1 Motor me hap (Step Motor)

1 http://en.wikipedia.org/wiki/Electric_motor 2 http://en.wikipedia.org/wiki/AC_motor

Page 10: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

10

Ekzistojnë 2 lloje kryesore të motorëve STEP:

Motorët unipolar

Motorët step unipolar kanë logjikisht dy bobina për një fazë, nga një për secilin drejtim.

Në ketë mënyrë të renditjeve polet magnetike mund të ndryshojnë pa e ndryshuar

kahjen e rrymës.

Shembull: Komandimi i pozitës me hap të plotë.

Komanda Pozita

Bobina4 –> 1 (ON)

Bobina 3 –> 0 (OFF)

Bobina 2 –> 0 (OFF)

Bobina 1 –> 0 (OFF)

Bobina 4 –> 0 (OFF)

Bobina 3 –> 1 (ON)

Bobina 2 –> 0 (OFF)

Bobina 1 –> 0 (OFF)

Bobina 4 –> 0 (OFF)

Bobina 3 –> 0 (OFF)

Bobina 2 –> 1 (ON)

Bobina 1 –> 0 (OFF)

Bobina 4 –> 0 (OFF)

Bobina 3 –> 0 (OFF)

Bobina 2 –> 0 (OFF)

Bobina 1 –> 1 (ON)

Page 11: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

11

Shembull: Komandimi i pozitës me gjysmë hap

Komanda Pozita

Bobina 4 –> 1 (ON)

Bobina 3 –> 1 (ON)

Bobina 2 –> 0 (OFF)

Bobina 1 –> 0 (OFF)

Bobina 4 –> 0 (OFF)

Bobina 3 –> 1 (ON)

Bobina 2 –> 1 (ON)

Bobina 1 –> 0 (OFF)

Bobina 4 –> 0 (OFF)

Bobina 3 –> 0 (OFF)

Bobina 2 –> 1 (ON)

Bobina 1 –> 1 (ON)

Bobina 4 –> 1 (ON)

Bobina 3 –> 0 (OFF)

Bobina 2 –> 0 (OFF)

Bobina 1 –> 1 (ON)

Motorët bipolar

Motorët step bipolar kanë logjikisht një bobine për një fazë. Në ketë rast duhet ta

ndryshojmë kahjen e rrymës për të arritur polaritetin e kundërt, kështu që qarku

komplikohet, zakonisht përdorët ura H (H-bridge).

Page 12: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

12

Këtu po japim skemën e urës H (H-bridge)

Fig. 2 Ura H (H bridge)

Motorët SERVO janë pajisje elektromekanike në të cilat sinjalet hyrëse përcaktojnë

pozitën e motorit. Këta lloje të motorëve përdoren në makinat CNC, robotike, në pajisje

që dirigjohen nga largësia, në aeroplanë etj.

Këta motorë punojnë në një sistem të mbyllur përsëritës (closed loop system), në të cilin

puna është ndryshore e kontrollueshme.

Shembull:

Fig. 3 Sistemi i mbyllur perserites

Kontrollori digjital i servo motorit e drejton operacionin e servo motorit duke dërguar

komanda në formë të sinjaleve për shpejtësinë në amplifikatorin (përforcuesin), i cili e

drejton motorin servo. Një rezultat kthyes (feedback) i dërgohet kontrollorit dhe

Page 13: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

13

amplifikatorit. Zakonisht rezultati kthyes është një lexues i pozitës (encoder), që

kontrollohet se a ka arritur motori në pozitën e caktuar.

Fig. 3 Servo motori

Mikrokontrolleri

Mikrokontrolleri (MCU) është një sistem kompjuterik i vendosur në një chip. Përmban

procesorin, memorien dhe njësit hyrëse/dalëse që programohen. 3

Mikrokontrolleri është pajisje e vogël dhe mund të përdoret për kontroll të objekteve,

proceseve apo ngjarjeve.

Sot ekzistojnë një numër shumë i madh i mikrokontrollereve të ndryshëm. Për projektin

tonë në kemi zgjedhur një mikrokontroller nga kompania Elexol, që quhet Ether I/O 24.

Ky mikrokontroller që kemi zgjedhur kontrollohet nga rrjeti (LAN) nëpërmes një IP

adrese dhe protokollit UDP. Ka 24 hyrje/dalje varësisht se si i programojmë secilën.

Këto 24 hyrje/dalje janë të ndara në 3 porte nga 8 bit. Secila nga pinet operon deri në

5V maksimum.

IP adresa mund ti caktohet fikse, ose mund te jete dinamike që të caktohet nga DHCP.

Kur komunikojmë nga kompjuteri duhet të kemi qasje në soketin UDP/IP. Kontrolla

3 http://en.wikipedia.org/wiki/Microcontroller

Page 14: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

14

Winsock në sistemet operative Windows paraqet një mundësi të thjeshtë të komunikimit

në mënyrë efektive.

Për të komunikuar nga ndonjë gjuhë programuese duhet të dimë dy gjera, IP adresën

dhe portin e mikrokontrollerit. Porti që do të përdorët për komunikim dhe programim të

mikrokontrollerit është 2424.

Specifikacioni i mikrokontrollerit:

Konsumi i fuqisë: ~1.1W

Maksimum komanda për paket: Shkruarja në port: 250; lexim nga porti: 32

Furnizimi me tension: 8-32V DC

Ngarkesa maksimale e rrymës në një pin: 35mA

Ngarkesa maksimale totale ne te gjithë pinat: 210mA

Leximi maksimal: ~160000 lexime te portit ne sekond

Shkrimi maksimal: ~500000 shkrime ne port për second

Memorja EEPROM: 1 Kilobit ose 1024 bit

Disa nga karakteristikat e këtij mikrokontrolleri janë:

Koha e përgjigjes kur dërgon vetëm një komandë për lexim në paketë është zakonisht

100 mili sekonda, kurse minimumi është 80 mili sekonda dhe maksimumi është 200 mili

sekonda.

Koha për të shkruar në port brenda një pakete është 1.5 mili sekënd.

Shpejtësia kur shkruan 250 shkrime për paketë është 500000 shkrime për sekënd.

Koha kur shkruajmë 1 shkrim në një paketë është 100 mili sekonda.

Shpejtësia kur lexojmë një hyrje në një paketë është 16500 lexime ne sekënd.

Memorja e këtij mikrokontrolleri është 1024 bit, është e ndarë ne 64 fjalë nga 16 bit. 5

fjalët e para si adresa 0 deri 4 janë pjesë të pandryshueshme për programuesin. Fjalët

5 deri 24 përdoren për të rregulluar konfigurimin e IP, portin, etj. Fjalët 25 deri 47 janë të

rezervuara për përdorim në të ardhmen dhe fjalët 48 deri 63 janë të lira për çfarëdo

përdorimi.

Page 15: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

15

Programimi i mikrokontrollerit

Të gjithë programimin e kemi bazuar në gjuhen programuese Visual Basic 6 duke

përdorur Winsock kontrollin.

Leximi i të dhënave nga mikrokontrolleri

Ekzistojnë dy mënyra se si mund të lexojmë të dhënat nga socket, ato janë: polling dhe

interrupt. Polling është më e mirë për programe të thjeshta. Punon në parimin që secila

pjesë e programit duhet të mbarojë për të filluar pjesa tjetër.

Për të lexuar vlerat nga mikrokontrolleri duhet që të lidhemi në portin e caktuar (2424)

dhe të lexojmë vlerat nga Winsock1 Bytes Received. Mënyra më e thjeshtë është të

përdorim Timerët.

Mënyra e dytë, interrupt, rekomandohet për programim të avancuar sepse lejon

funksionin të mbarojë dhe programi të kalojë në pritje deri sa të arrin ndonjë shënim,

kështu që kursejmë shpenzimet e procesorit, sepse programi nuk kontrollon

vazhdimisht në socket se a ka arritur ndonjë shënim. Kjo metodë përdoret nëpërmjet

Winsock1_Data Arrival.

Page 16: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

16

Fig. 4 Tabela e komandave te mikrokontrollerit

Dërgimi i komandave

Së pari po paraqesim konfigurimin e Wincosk ne Visual Basic 6.

Këtu caktojmë protokollin UDP

CNCForm.Winsock1.Protocol = sckUDPProtocol

Këtu caktojmë IP adresën e mikrokontrollerit

CNCForm.Winsock1.RemoteHost = "10.0.0.8"

Këtu caktojmë portin

CNCForm.Winsock1.RemotePort = "2424"

Page 17: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

17

Pasi ti kemi caktuar të gjitha më sipër mund të fillojmë të dërgojmë komandat

CNCForm.Winsock1.SendData "A" + Chr(0) + "B" + Chr(0) + "C" + Chr(0)

Më poshtë do japim një shembull duke përshkruar se si mund ta gjejmë IP adresën e

mikrokontrollerit kur përdor IP dinamike që një DHCP server ja ka dhënë

mikrokontrollerit.

Private Sub Form_Load()

Winsock1.Protocol = sckUDPProtocol ' E caktojmë UDP protokollin

Winsock1.RemoteHost = "255.255.255.255" ' Bëjmë broadcast në rrjetë

Winsock1.RemotePort = 2424 ' E caktojmë portin e mikrokontrollerit

Winsock1.Bind ' E lidh portin lokal te pranoj të dhëna

Winsock1.SendData "IO24" ' Dërgojmë komandën për identifikim

While Winsock1.BytesReceived = 0 ' Presim të arrijnë të dhënat

Wend ' Bëjmë ciklin dhe presim

N = Winsock1.BytesReceived ' Sa bajt kanë arritur

Winsock1.GetData a$, vbString, N ' I lexojmë dhe i vendosim në bufer

Debug.Print Winsock1.RemoteHostIP ' Na tregon IP adresën

End Sub

Në vazhdim po japim një shembull tjetër se si mund të lexojmë një port të

mikrokontrollerit.

Winsock1.SendData "a" ‘ Dërgojmë komandën për lexim të portit A

While Winsock1.BytesReceived = 0 ' Presim që të arrijnë të dhënat

Wend ' Bëjmë ciklin dhe presim

N = Winsock1.BytesReceived ' Sa bajt kanë arritur

Winsock1.GetData a$, vbString, N ' I lexojmë dhe i vendosim në buffer

If N = 2 And Left$(A$, 1) = "A" Then ‘ Konfirmojmë që shënimet janë valide

PortA = Asc(Right$(A$, 1)) ‘ I ruajmë të dhënat e arritura

Debug.Print Str$(PortA) ‘ Shtypim të dhënat

End If

Page 18: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

18

Sistemi kordinativ kartezian

Sistemi kartezian, apo katërkëndësh, është shpikur nga matematicienti francez Rene’

Descartes. Me ketë sistem secila pikë specifike mund të përshkruhet në mënyrë

matematikore përgjatë tre akseve.

Ky sistem i përshtatet në mënyrë përfekte makinave CNC pasi që konstruksioni i tyre

është i bazuar në tre akse dhe/ose aksin rrotullues.

Fig. 5 Sistemi kordinativ me dy akse

Në ketë figure është paraqitur sistemi kordinativ me dy akse, ku në mes është pika 0,

vija horizontale paraqet aksin X dhe vija vertikale aksin Y. Duke filluar nga pika 0

djathtas është X+ dhe majtas X-, gjithashtu nga pika 0 kur vazhdojmë para është Y+,

ndërsa mbrapa Y-.

Page 19: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

19

Fig. 6 Sistemi kordinativ me tre akse

Këtu është paraqitur sistemi kordinativ me tre akse. Pikërisht ashtu si janë lëvizjet e

akseve të makinave CNC.

Fig. 7 Shembull me sistemin kordinativ

Këtu po paraqesim me konkretisht se si funksionon lëvizja e makinave CNC.

Page 20: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

20

Për të shpjeguar me mire do e ndajmë sistemin kordinativ në 4 pjesë të shënuara me

numra 1 deri ne 4. Kur fillojmë nga pika 0 çdo lëvizje që e bëjmë në fushën 1 është në

X+ dhe Y+. Marrim shembull piken A: pika A gjendet 2 njësi ne X+ dhe 2 njësi ne Y+.

Gjithashtu kur nga pika 0 lëvizim në fushën 4 gjithmonë kemi të bëjmë me X+ dhe Y-.

Marrim një shembull: pika B gjendet 1 njësi ne X+ dhe 2 njësi ne Y-.

Shënim:

Kur përmendim fjalën “njësi” kuptojmë se ndarjet duhet të kenë vlera te caktuara

numerike, që zakonisht në makinat CNC përdoret milimetri, por mund të jetë edhe

ndryshe.

Shembulli në vazhdim paraqet një vizatim konkret

X+X-

Y-

Y+

1

2

3

4

Fig. 5 Shembulli i orientimit ne sistemin kordinativ

Page 21: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

21

Të marrim shembull se njësia e përdorur në këtë vizatim është në milimetra dhe do

përdorim mënyrën relative të lëvizjes.

Si gjithmonë fillojmë nga pika 0. Për të lëvizur tek pika 1 duhet që motori i aksit X të

lëvize 4mm dhe motori i aksit Y të lëvize 4mm. Pastaj nga pika 1 për të lëvizur në pikën

2 duhet që motori i aksit X të lëvizë -7mm dhe motori i aksit Y të lëvizë -2mm. Tani

gjendemi ne piken 2. Për të vazhduar lëvizjen në piken 3 duhet motori i aksit X të lëvizë

2mm dhe motori i aksit Y te lëvizë -6mm. Tani gjindemi ne piken 3, per te vazhduar ne

piken 4 motori i aksit X lëviz 3mm dhe motori i aksit Y 2mm. Dhe në fund për tu kthyer

në piken 0 motori i aksit X duhet të lëvizë -2mm dhe motori i aksit Y të lëvizë 2mm.

Këtu po japim G-Kodin e këtij shembulli me lëvizje relative:

N10 G01

N20 G91 F500

N30 X4 Y4

N40 X-7 Y-2

N50 X2 Y-6

N60 X3 Y2

N70 X-2 Y2

N80 M30

Të njëjtin shembull do ta japim me lëvizje absolute.

Fillojmë nga pika 0. Për të lëvizur tek pika 1 duhet që motori i aksit X të lëvizë 4mm dhe

motori i aksit Y të lëvizë 4mm. Pastaj nga pika 1 për të lëvizur në piken 2 duhet që

motori i aksit X të lëvizë -3mm dhe motori i aksit Y të lëvizë 2mm. Tani gjendemi ne

piken 2. Për të vazhduar lëvizjen në piken 3 duhet motori i aksit X të lëvizë -1mm dhe

motori i aksit Y të lëvizë -4mm. Tani gjendemi në piken 3, për të vazhduar në piken 4

motori i aksit X lëviz 2mm dhe motori i aksit Y -2mm. Dhe në fund për tu kthyer në piken

0 motori i aksit X duhet të lëvizë 0mm dhe motori i aksit Y të lëvizë 0mm.

Këtu po japim G-Kodin e këtij shembulli me lëvizje absolute:

N10 G01

N20 G90 F500

Page 22: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

22

N30 X4 Y4

N40 X-3 Y2

N50 X-1 Y-4

N60 X2 Y-2

N70 X0 Y0

N80 M30

Kur kemi të bëjmë me lëvizje relative gjithmonë nisemi nga pika ku gjendemi.

Ndërsa kur kemi të bëjmë me lëvizje absolute gjithmonë marrim për baze piken 0.

Por si të arrijmë deri te G-Kodi ?

Për ta pasur sa më të lehtë një përdorues për të arritur deri te G-Kodi ne kemi punuar

edhe një softuer në Visual Basic for Applications në CorelDRAW. Ky softuer bën

konvertimin e vijave të vizatuara në Corel në G-Kod. DMTH ashtu si janë vijat e

vizatuara ashtu do të lëviz makina!!!

Si behet konvertimi i vijave në G-Kod?

Për të zgjidhur këtë problem e kemi përdorur një metodë mjaft primitive. Ne e

shfrytëzojmë HPGL fajllin e plotorit, dhe e hapim atë fajll i heqim komandat që janë për

plotter, i marrim koordinatat që duhet të lëviz dhe komandat që janë për manipulim me

lapsa.

Pasi të arrijmë te G-Kodi

Kodin e gjeneruar nga softueri ynë në corel e marrim dhe e hapim në softuerin tonë që

dirigjon makinën. Ai e lexon rresht për rresht dhe ja dërgon komandat mikrokontrollerit.

Pse të përdorim dirigjimin me rrjete ?

Rrjeti është mjaft i përshtatshëm, një teknologji që çdo ditë rritet me një shpejtësi të

madhe, dhe është standard në të gjithë boten. Sot përdoren mbi 50milion pajisje të

ndryshme që përdorin ketë teknologji, që janë të lidhura në rrjetë.

Page 23: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

23

Rrjeti është transportuesi (bartësi) më i zakonshëm që përdor kabllon shumë të lirë

CAT5-UTP, për distanca të gjata ose përgjatë vendeve ku ka interference mund te

përdoret kabulli optik. Gjithashtu pasi kjo teknologji është shumë e përhapur, pajisjet

përcjellëse për rrjetë dhe teknik për përdorimin e kësaj teknologjie ka mjaft. Ketë e

vërteton edhe fakti që kemi një numër shumë të madh të prodhuesve të pajisjeve të

ndryshme që përdoren në rrjetë.

Kur përdorim mikrokontrollerin e lidhur në switch duhet te kemi kujdes me të shtuar,

sepse vonesa prej pranimit të komandës deri te transmetimi i përgjigjes duhet të jetë

me pak se 500 mili sekonda në të gjitha kushtet dhe rastet e mundshme! Rrjeti

(ethernet) lejon që të komandojmë mikrokontrollerin të lexojë 160000 hyrje, ose të

shkruaj 500000 dalje për sekondë.

Page 24: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

24

Realizimi Praktik

Këtu do të përshkruajmë realizimin praktik hap pas hapi të punimit.

Se pari pasi kemi vendosur se cilin punim do ta realizojmë kemi shikuar se çfarë pajisje

na duhen për të realizuar ketë punim.

Pas shumë hulumtimeve në internet kemi vendosur të blejmë 2 pllaka elektronike,

mikrokontrolleri dhe furnizuesi (drajvi) i motorit.

Mikrokontrolleri që kemi vendosur të blejmë dirigjohet me rrjet (LAN). Këtu më poshtë

po paraqesim një foto të këtij mikrokontrolleri.

Fig. 6 Mikrokontrolleri

Ky mikrokontroller i ka 3 porte, ku nga secili port i përdorim nga 4 pina si dalje që i

komandojmë nga softueri për ta komanduar furnizuesin e motorit që ti lëshoj rrymë

motorit dhe sa rrymë ti lëshoj. Me ketë mikrokontroller mund të komandohen deri në 6

Page 25: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

25

motorë nëse i shfrytëzojmë të gjithë pinet si dalje, sepse një step motor komandohet me

4 pina.

Këtu më poshtë po paraqesim një foto të pllakës që e furnizon motorin me rrymë.

Fig. 7 Furnizuesi i motoreve

Për tu shmangur çfarëdo rreziku nga lidhja e këtyre dy pllakave elektronike në mes veti,

kemi përdorur ndarjen me fototranzistorë. Me poshtë po japim një foto të kësaj ndarje.

Fig. 8 Pllaka ndërmjetësuese me fototranzistore

Page 26: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

26

D.m.th në njërën anë lidhen daljet e mikrokontrollerit, ndërsa në anën tjetër lidhet

furnizuesi i motorëve.

Si funksionon ndarja e sinjaleve me dritë ?

Këtu po japim skemën se si funksionon ndarja e sinjaleve me dritë.

Fig. 9 Skema e fototranzistorit

Në hyrje gjendet një LED që kur ka sinjal në hyrje bën dritë dhe ajo drite lexohet nga

fototranzistori. Kur fototranzistori pranon dritë në bazë, ai nga kolektori lëshon rrymë në

emiter.

Ky sistem përdoret për të transmetuar sinjale ndërmjet qarqeve të ndryshme, kur

dyshojmë se lidhja direkte e sinjaleve mund të shkaktoj ndonjë parregullsi.

Page 27: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

27

Softueri

Fig. 10 Softueri

Softueri është i punuar në Visual Basic 6. Në tërësi është i punuar nga fillimi dhe është

mjaft i thjeshtë në përdorim.

Fig. 11 Softueri – pjesa punuese

Ky softuer punon në dy mënyra. Në mënyrë manuale ti komandojmë motorët, d.m.th ti

dërgojmë se sa të ece motori duke shkruar dhe klikuar ne butonin Start, dhe në mënyrë

Page 28: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

28

automatike që programin apo lëvizjet e motorit i lexon nga një fajll i jashtëm. Mënyra

automatike është e rregulluar sapo të starton softueri, për të kaluar në punë manuale

duhet të klikojmë në menynë Rregullime dhe komandën manual.

Fig. 12 Mënyrat e punës se softuerit

Pasi të klikojmë në komandën manual na shfaqen 3 vende për të shkruar, ku mund ta

komandojmë secilin motor se sa te ec.

Fig. 13 Puna manuale

Page 29: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

29

Këtu me poshtë po paraqesim kodin e butonit Start

Private Sub Start_Click()

Vel1.Text = Vel

If IsNumeric(TxtXseg.Text) Then Xseg = Val(TxtXseg.Text)

If IsNumeric(TxtYseg.Text) Then Yseg = Val(TxtYseg.Text)

If IsNumeric(TxtZseg.Text) Then Zseg = Val(TxtZseg.Text) * 2.5

Start1 = True

SegmentMove

End Sub

Si funksionon ky kod?

Së pari e lexojmë shpejtësinë, pastaj e shikojmë se vlera që e kemi shkruar a është

numerike, pastaj këtë vlerë e ruajmë në një variabël, pastaj variabilen Start1 e bëjmë

True për shkak se duhet të dimë kur duhet të bëjmë lëvizje dhe në fund e thërrasim

funksionin SegmentMove.

Më poshtë po japim një pjesë të kodit të funksionit SegmentMove.

If Xseg >= 0 Then DirX = -1 Else DirX = 1

If Yseg >= 0 Then DirY = -1 Else DirY = 1 Në ketë pjesë caktohet drejtimi i motorëve

If Zseg >= 0 Then DirZ = 1 Else DirZ = -1

Segment = Sqr(Xseg ^ 2 + Yseg ^ 2 + Zseg ^ 2) 'ketu kalkulohet gjatesia e segmentit

Sa = Vel ^ 2 / Accl / 2 'pjesa e segmentit ku shpejtohet - acelerimi

Page 30: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

30

If Xseg >= 0 Then If Xa - Xm > Incr / 2 Then Xm = Xm + Incr StepX = True Else StepX = False End If

If StepX = True Then MotorX = h_step(StX) And &HF DigA = DigA And &HF0 DigA = DigA Or MotorX If DirX = 1 Then StX = StX + 1 If StX > 7 Then StX = 0 End If Else StX = StX – 1 If StX < 0 Then StX = 7 End If End If End If

Në vazhdim do të analizojmë punën automatike të softuerit.

Pasi të kemi hapur një program të jashtëm me instruksione për lëvizjen e motorëve për të filluar punën klikojmë në File pastaj Fillo.

Më poshtë do të japim pjesë nga kodi i funksionit CNCOut() që ekzekutohet kur klikojmë Fillo.

Case " SHP" Vel = Overr / 100 * Val(r1(1)) / 1000

Ky kod llogarit nëse lëvizja që duhet të bën

motori a është me e madhe se gjysma e

një hapi të motorit dhe nëse është e lëviz

për një hap, nëse jo nuk e lëviz. Kështu që

gabimi maksimal mund të jetë vetëm një

gjysme hapi I motorit.

Ky kod bën lëvizjen e një hapi të motorit të

caktuar nëse kodi i sipër përmendur jep si

rezultat StepX = True.

Ky kod lexon shpejtësinë nga fajlli dhe e

rregullon në koordinim me tejkalimin e

caktuar.

Page 31: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

31

Case "LABS" Xseg = 0 Yseg = 0 Zseg = 0

For i = 1 To UBound(r1) If Left(r1(i), 1) = "X" Then Xseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 – Xp End If If Left(r1(i), 1) = "Y" Then Yseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 – Yp End If If Left(r1(i), 1) = "Z" Then Zseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 400 – Zp End If Next Start1 = True SegmentMove

Case "LREL" Xseg = 0 Yseg = 0 Zseg = 0

For i = 1 To UBound(r1) If Left(r1(i), 1) = "X" Then Xseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 If Left(r1(i), 1) = "Y" Then Yseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 If Left(r1(i), 1) = "Z" Then Zseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 400 Next Start1 = True SegmentMove

Ngjashëm me kodin e më sipërm edhe ky kod shikon nëse komanda është lëvizje relative, dhe në rast së është llogarit se sa duhet të ecin motorët në këtë rast.

Softueri për gjenerimin e G-Kodit nga CorelDRAW

CorelDRAW është një program për vizatime vektoriale. Është i zhvilluar nga Corel

Corporation nga Otava, Kanada. Gjithashtu njihet edhe me emrin Corel’s Graphics

Suite.

CorelDRAW së pari ishte publikuar nga kompania Microsoft.

Versioni i fundit është X4 i cili është publikuar më datën 23 Janar 2008.

Ky kod lexon nëse komanda e

radhës nga fajlli është lëvizje

absolute, dhe në rast se është

e llogarit se sa duhet të ecin

motorët në këtë rast.

Page 32: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

32

Gjithashtu edhe ky program përkrah VBA (Visual Basic for Applications).

Softueri ynë për gjenerim të G-Kodit është zhvilluar në VBA të CorelDRAW.

Si funksionon ky softuer ?

Së pari e kemi analizuar se si mund ta zgjidhim këtë problem që nga vijat e vizatuara të lexojmë vlerat e dimensioneve dhe pozitën e tyre dhe pastaj ta gjenerojme G-kodin.

Pas hulumtimeve të ndryshme arrijmë deri te një ide e çuditshme! Të përdorim sistemin e plotorit! Nga ky sistem përdorim 4 komanda kryesore që na duhen për komandimin e tre motorëve.

Komandën SP(Select Pen) e përdorim për të caktuar nivelin e aksit Z, pra të motorit të tretë.

Komandën PU (Pen Up) e përdorim për tu pozicionuar te fillimi i detalit që do të punojmë, kjo komandë ka formatin PU x, y.

Komandën PD (Pen Down) e përdorim për të lëvizur motorët X dhe Y nëpër vijat e vizatuara.

Dhe komandën LT (Line Type) e përdorim për të lëvizur motorin Z në lartësi të caktuar për kalim nga detali në detal.

Në vijim po demonstrojmë se si një vizatim i dy katërkëndëshave duket me vija, si duket fajlli për ploter dhe si duket G-Kodi i gjeneruar nga ai fajll.

Fig. 14 Vizatimi ne CorelDRAW

Page 33: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

33

Këtu është kodi i PLT fajllit:

IN; VS32,1; VS32,2; VS32,3; VS32,4; VS32,5; VS32,6; VS32,7; VS32,8; WU0; PW0.350,1; PW0.350,2; PW0.350,3; PW0.350,4; PW0.350,5; PW0.350,6; PW0.350,7; PW0.350,8; LT; SP1; PU-2000 -2000; PD-800 -2000; PD-800 -800; PD-2000 -800; PD-2000 -2000; LT; SP3; PU-341 -341; PD859 -341; PD859 859; PD-341 859; PD-341 -341; SP0;

Këtu është G-Kodi i gjeneruar nga PLT fajlli:

SHP 500 LABS z-5 SHP 2500 LABS x0 y0 SHP 500 LABS z-1 SHP 1000 LABS x30 y0 LABS x30 y30

Page 34: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

34

LABS x0 y30 LABS x0 y0 SHP 500 LABS z-5 SHP 500 LABS z-5 SHP 2500 LABS x41.48 y41.48 SHP 500 LABS z-3 SHP 1000 LABS x71.47 y41.48 LABS x71.47 y71.47 LABS x41.48 y71.47 LABS x41.48 y41.48 SHP 500 LABS z-5 FUND

Tani po paraqesim kodin ne VBA se si gjenerohet G-Kodi nga PLT fajlli:

Case "SP" Select Case s Case "SP1;" z = CNCFreza.black.Value Case "SP2;" z = CNCFreza.blue.Value Case "SP3;" z = CNCFreza.red.Value Case "SP4;" z = CNCFreza.green.Value Case "SP5;" z = CNCFreza.magenta.Value Case "SP6;" z = CNCFreza.yellow.Value Case "SP7;" z = CNCFreza.cyan.Value Case "SP8;" z = CNCFreza.brown.Value End Select

Ky kod cdo rresht te plt fajllit ku gjen te shkruar SP e ndryshon me vleren e caktuar te ngjyres, sepse kjo komande e ben ndrrimin e lapsit me ngjyre tjeter ne plloter.

Page 35: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

35

Case "PD" s = Replace(s, "PD", "") s = Replace(s, ";", "") x1 = Left(s, InStr(s, " ")) * 25 / 1000 + ActiveDocument.MasterPage.CenterX * 25.4 y1 = Right(s, Len(s) - InStr(s, " ")) * 25 / 1000 + ActiveDocument.MasterPage.CenterY * 25.4 s = "LABS " & "x" & Round(x1, 2) & " y" & Round(y1, 2) c = rs.WriteLine(s)

Ky kod cdo rresht te fajllit ku gjen te shkruar PD e lexon vleren x dhe y qe gjindet si argument I kesaj komande. Ato vlera I lexojme dhe I rregullojme per G-Kod.

Case "PU" c = rs.WriteLine("SHP " & V0) s = Replace(s, "PU", "") s = Replace(s, ";", "") x1 = Left(s, InStr(s, " ")) * 25 / 1000 + ActiveDocument.MasterPage.CenterX * 25.4 y1 = Right(s, Len(s) - InStr(s, " ")) * 25 / 1000 + ActiveDocument.MasterPage.CenterY * 25.4 s = "LABS " & "x" & Round(x1, 2) & " y" & Round(y1, 2) c = rs.WriteLine(s) c = rs.WriteLine("SHP " & VZ) s = "LABS z" & Round(z, 2) c = rs.WriteLine(s) c = rs.WriteLine("SHP " & V1)

Ky kod cdo rresht ku gjen te shkruar PU gjithashtu I lexon vlerat x dhe y qe jane si argument I kesaj komande dhe e rregullojme per G-kod.

Case "LT" c = rs.WriteLine("SHP " & VZ) s = "LABS z" & Z0 c = rs.WriteLine(s)

Ky kod cdo rresht qe gjen te shkruar LT e dijme qe duhet te bejme kalim nga detail I punuar ne fillim te detalit tjeter, dhe kete e perdorim per te ngritur motorin e aksit Z.

Page 36: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

36

Ne vazhdim do te japim disa shembuj se si eshte procedura per te bere nje punim, nga vizatimi deri te dirigjimi.

Shembulli1:

Se pari e hapim programin CorelDRAW dhe e rregullojme qe njesia te jete milimetra dhe caktojme dimensioned e faqes punuese.

NjesijaDimensioni Ifaqes

Fig. 15 Rregullimi i njësisë dhe i dimensionit te faqes punuese

Hapi tjeter eshte vizatimi elementeve qe dojme ti punojme, marrim si shembull nje katerkendesh me domensionet a=100 dhe b=200.

Page 37: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

37

Fig. 16 Vizatimi i katerkendeshit

Pasi te kemi vizatuar elementin e deshiruar, duhet ta therrasim programin tone qe e kemi realizuar ne VBA te CorelDRAW dhe ti rregullojme disa parametra.

Fig. 17 Softueri për gjenerim te G-Kodit

Page 38: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

38

Rregullimin e aksit Z e bëjmë duke e caktuar vlerën në milimetra për çdo ngjyrë që kemi përdorur në elementet e vizatuara. Pastaj rregullimet tjera janë opcionale pasi që i kemi vendosur vlerat e zakonshme, por mund të ndryshohen që ti përshtaten llojit të punës.

Z Boshe – caktohet vlera e nivelit të aksit Z kur bëhet kalimi nga një detal në tjetrin.

Shpejtësia Z – caktohet shpejtësia e lëvizjes së aksit Z

Shpejtësia Boshe – caktohet shpejtësia kur makina bën lëvizje boshe, d.m.th nuk përpunon ndonjë material.

Shpejtësia Pune – caktohet shpejtësia kur makina përpunon ndonjë material.

Pritja – caktohen sa sekonda duhet të pret kur fillon të punojë detalin.

Dhe në fund e klikojmë butonin Shkruaj programin, dhe rezultati i këtij shembulli, G-Kodi është ky:

SHP 500 LABS z-5 SHP 2500 LABS x6.82 y8.88 SHP 500 LABS z-1 SHP 1000 LABS x106.82 y8.88

LABS x106.82 y208.88 LABS x6.82 y208.88 LABS x6.82 y8.88 SHP 500 LABS z-5 FUND

Hapi në vazhdim është që ta ruajmë këtë dokument dhe ta hapim softuerin për dirigjim të makinës.

Pasi të hapim softuerin, klikojmë në File – Hape dhe e zgjedhim dokumentin që e kemi ruajtur paraprakisht.

Page 39: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

39

Fig. 18 Puna me softuer

Dhe hapi i fundit është që ta lëshojmë programin duke klikuar në File – Fillo.

Shembulli 2:

Hapi i parë është i njëjtë të caktojmë njësinë e faqes punuese dhe dimensionet.

Në këtë shembull do ti vizatojmë dy elemente me nivele të ndryshme të Z.

Page 40: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

40

Fig. 19 Vizatimi i dy objekteve ne CorelDRAW

Siç po shihet i kemi vizatuar dy elemente, një pesëkëndësh dhe një rreth. Pasi dëshirojmë qe niveli I motorit Z te jete I ndryshem per keto dy elemente njeres I kemi ndryshuar ngjyrën e vijës.

Hapi i ardhshëm është të hapim softuerin në VBA dhe ti caktojmë parametrat.

Fig. 20 Puna me softuerin për gjenerim te G-Kodit

Page 41: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

41

Në pjesën e rregullimeve të aksit Z për ngjyrën e zeze, pra për rrethin kemi caktuar vlerën -5mm ndërsa për pesëkëndëshin -10mm, rregullimet tjera i kemi lënë të zakonshme. Dhe në fund klikojmë në butonin Shkruaj programin dhe do ta fitojmë këtë G-Kod:

SHP 500 LABS z-5 SHP 2500 LABS x62.6 y64.53 SHP 500 LABS z-5 SHP 1000 LABS x69.85 y66 LABS x75.78 y70 LABS x79.78 y75.92 LABS x81.25 y83.18 LABS x79.78 y90.4 LABS x75.78 y96.32 LABS x69.85 y100.32 LABS x62.6 y101.8 LABS x55.38 y100.32 LABS x49.45 y96.32 LABS x45.45 y90.4 LABS x43.97 y83.18 LABS x45.45 y75.92 LABS x49.45 y70 LABS x55.38 y66 LABS x62.6 y64.53 SHP 500 LABS z-5 SHP 2500 LABS x38.83 y56.5 SHP 500 LABS z-10 SHP 1000 LABS x53.65 y47.95 LABS x68.47 y39.4 LABS x62.8 y25.58 LABS x57.15 y11.75 LABS x38.83 y11.75 LABS x20.5 y11.75 LABS x14.85 y25.58 LABS x9.2 y39.4 LABS x24 y47.95 LABS x38.83 y56.5 SHP 500 LABS z-5 FUND

Fillimi i punes se makines –

pozicionimi ne piken fillestare

Ekzekutimi i lëvizjeve per

objektin e pare

Pozicionimi te pika fillestare e

objektit te dyte

Ekzekutimi i lëvizjeve per

objektin e dyte dhe

përfundimi i programit

Page 42: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

42

Evoluimi i makinave CNC

Makinat CNC (Computer Numerical Control) e kanë një histori që nga vitet 1940 – 1950

ku fillet e këtyre makinave u krijuan dhe ato makina quheshin NC (Numerical Control).

Makina e parë NC u krijua pas luftës së dytë botërore nga John Parsons në

bashkëpunim me MIT.

Makinat NC ishin të vështira për punë sepse parametrat e tyre nuk mund të

ndryshoheshin, kishin shumë lidhje të kabllove dhe nuk kishte ndonjë standard për këto

makina.

Një sistem i kompletuar CNC përfshinë kompjuterin i cili ka një softuer që i jep komanda

elektronikës, pastaj elektronika që i pranon sinjalet apo komandat se sa rrymë duhet ti

lëshoj motorëve dhe të kontrollojë se a kanë ecur motorët aq sa duhet, dhe mekanika

ku janë të lidhur motorët që kur motori rrotullohet të vej në lëvizje një aks.

Në kompjuter duhet të jetë një softuer që e lexon G-Kodin dhe në bazë të atij kodi ti jep sinjale mikrokontrollerit nëpërmes një porti të kompjuterit (USB, LAN, Paralel, Serial, etj). Në këtë projekt në kemi zgjedhur që makinën tonë ta dirigjojmë nëpërmjet portit të rrjetit, njëkohësisht mikrokontrolleri duhet të ketë këtë mundësi për tu lidhur në LAN për ti pranuar komandat nga softueri ynë.

Çdo lloj pajisje është sado pak e rrezikshme. Pajisjet e kontrolluara me kompjuter janë paksa më të rrezikshme se ato manuale sepse, p.sh. një kompjuter është në gjendje të rrotullojë një cope çeliku me 3000 rrotullime ne minute, apo edhe më tepër.

Çdo makine CNC duhet të ketë një nivel të sigurisë. Së paku duhet të ketë një tast për ndalje emergjente, që në çfarëdo rasti punëtori të ketë mundësi ta shtypë atë dhe të ndalet puna e makinës. Të ketë ndërprerësit fundorë në çdo aks nga dy ndërpresë fundorë që të mund të ndalet makina para se ta godet fundin.

Rendësi tjetër të madhe ka edhe preciziteti i makinës, dhe kjo kërkon që makina të ketë pikën fillestare apo piken 0 të makinës. Gjithashtu për precizitet sa më të lartë gjatë lëvizjes duhet të përdorim lexuesit e pozitës (Encoders).

Secili aks duhet të ketë një mënyrë që të dijme se sa kemi lëvizur dhe të bëjmë

krahasime se a kemi lëvizur aq sa e kemi dhënë komandën. Për këtë qellim ekzistojnë

pajisje special që bëjnë këtë punë, pra matjen e lëvizjes dhe quhen “lexues të pozitës

apo llogaritës të lëvizjes (ang. Encoder).

Ekzistojnë 2 lloje kryesore të lexuesve të pozitës ose enkodereve që përdorën me

shumë. Rrotullues, që zakonisht gjinden të montuar në motorë, dhe linear që gjinden të

montuar në tavolinën që lëviz aksi.

Page 43: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

43

Zakonisht nëse kemi makine me 3 akse, përdorim 3 lexues të pozitës, për të ditur

pozitën e secilit motor.

Më poshtë po paraqesim fotografitë e dy llojeve të lexuesve.

Lexuesi rrotullues Lexuesi linear

Si funksionon lexuesi i pozitës ?

Ekzistojnë dy lloje të lexuesve në bazë të funksionimit të tyre: absolute dhe inkremental

(relativ).

Lexuesit absolute kanë vlerë unike për secilën pozitë mekanike. Kur lëshohet lexuesi në

punë, menjëherë dihet pozita e saktë se ku gjendet.

Lexuesit inkremental kanë sinjale në dalje që përsëriten gjatë rrotullimit (lëvizjes). Kur

lëshohet në punë, nuk dihet pozita se ku gjendet, për shkak se leximi fillon nga momenti

I lëshimit në punë, dhe nuk ka vlerë unike për secilën pozitë.

Page 44: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

44

Lexuesit punojnë me kanale, secili lexues ka së paku 2 kanale, A dhe B. Zakonisht

secili kanal e ka edhe negacionin e vet (A dhe JO A). Kjo logjike përdoret për të

krahasuar. Nëse A është 1, atëherë JO A duhet të jetë 0.

Zakonisht lexuesit e kane edhe një kanal tjetër që quhet I, i cili e identifikon një rrotullim. D.m.th gjatë një rrotullimi vetëm një herë kanali I mund të ketë vlerën 1.

Për të arritur precizitet sa më të lartë duhet të kemi lexues me sa më shumë ndarje për një rrotullim.

Ndërprerësit

Ndërprerësit zakonisht lidhen në fund të akseve për të parandaluar dëmtimet eventuale të strukturës së makinës. Zakonisht lidhja e këtyre ndërprerësve bëhet në ndonjë qark elektronik që kur ndonjëri nga ndërprerit të kyçet qarku ta ndale furnizimin e motorëve, mënyra tjetër është që softueri ti kontrollojë ndërprerësit dhe në rast se ndonjëri kyçet softueri duhet ta ndalë komandimin e motorëve.

Çka duhet të bëjmë nëse nuk na mjaftojnë hyrjet për ti lexuar secilin ndërprerës ?

Në këtë rast mund të lidhim të gjithë ndërprerësit në seri dhe të përdorim një hyrje të vetme për lexim, që në rast se ndonjëri nga ndërprerësit të kyçet ne mund ta lexojmë atë.

Fig. 21 Vendosja e ndërprerësve fundore

Për të kompletuar sa me shume termin makinë me kontroll kompjuterike, përveç motorëve, elektronikës dhe softuerit, duhet ti kushtojmë kujdes edhe precizitetit duke zgjedhur lexues të duhur, dhe sigurisë duke vendosur ndërprerës fundor dhe tast emergjent.

Page 45: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

45

Bashkangjitur

Pjese elektronike:

1 Mikrokontroller

1 Furnizues i rrymës

1 Ftohës

1 Pllake ndërmjetësuese

3 Furnizues për motorë

3 Motorë

Pjese softuerike:

Softueri për dirigjim

Softueri për gjenerim te G-Kodit

Dokumentimi, version elektronik

Page 46: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

46

Përfundimi

Realizimi praktik për ne ishte një eksperience e veçante, njëkohësisht dhe sfidë e

madhe sepse kishim për qellim t’iu shmangemi rutinave të dirigjimit të makinave në

mënyrat standarde përmes porteve paralele dhe serike. Ne vendosem të bëjmë një

dirigjim duke përdorur rrjetin kompjuterik për të komanduar mikrokontrollerin.

Kur përmendim termin rrjet kompjuterik mendojmë që kjo mënyrë e komunikimit

mikrokontroller – kompjuter nuk limitohet në distanca të shkurtra, kur e dijme se përmes

IP adresave publike mund të kemi qasje nga lokacion, shtet apo kontinent tjetër.

Për funksionimin e këtij projekti ne zhvilluam një softuer që komandon mikrokontrollerin,

me mundësi të përdorimit manual dhe automatik. Manual duke i dhënë vlera për lëvizje

në cilindo aks dhe automatik për lexim të vlerave nga dokumenta të jashtëm të bazuar

në G-Kod.

Shkrimi i një programi në gjuhën G-Kod është një punë e lodhshme, përveç që duhet të

dihen sintaksa e kësaj gjuhe, po ashtu duhet të njihet mirë edhe matematika. Duke u

nisur nga ky problem ne zhvilluam edhe një softuer i cili është pjesë e programit për

dizajn vektorial CorelDRAW, në të cilin thjeshtë mund të vizatohet një figure

gjeometrike, si p.sh. rrethi, katërkëndëshi, etj. Përmes këtij softueri ne e bëmë po aq të

lehtë edhe gjenerimin e G-Kodit.

Duke u nisur nga fakti se ekzistojnë versione të ndryshme të gjuhës G-Kod, edhe ne e

krijuam një version të cilin e përkrahë softueri jonë që e komandon mikrokontrollerin.

Si përfundim ndërlidhja e programimit me pjesë të ndryshme elektronike mund të arrijë

deri te krijimi i një aplikacioni atraktiv në lëmine industriale.

Page 47: Practical Realization of CNC Machine - Ernest Culaj

Punim Diplome

47

Bibliografia

Absolute Beginner's Guide to Building Robots - Gareth Branwyn

The microcontroller idea book - Jan Axelson

Starting Electronics – Keith Brindley

The Resource Handbook of Electronics - Jerry C. Whitaker

Practical Electronics Handbook - IAN R.SINCLAIR AND JOHN DUNTON

Computer Numerical Control Programming Basics - Steve Krar Arthur Gill

Introduction to autonomous mobile robots – Roland Siegwart & Illah R. Nourbakhsh

Intelligent robotic systems design planning and control - George J. Klir

Innovations in robot mobility and control – SrikantaPatnaik

Informatics in control automation and robotics II – Grup autoresh

Geometric fundamentals of robotics – J. M. Selig

Fundamentals of robotics linking perception to action – Ming Xie

Force control of robotic systems – Grup autoresh

Evolutionary robotics from algorithms to implementations – Grup autoresh

EMBEDDED ROBOTICS - Thomas Bräunl

Electronics Projects For Dummies - Earl Boysen and Nancy Muir

Electronics - A First Course – Owen Bishop

electroactive polymers for robotic applications - KwangJ.KimandSatoshiTadokoro

designing sociable robots - Cynthia L. Breazeal

Designing Autonomous Mobile Robots - John Holland

control of robot manipulators in joint space – Grup autoresh

control in robotics and automation – Grup autoresh

concise encyclopedia of robotics - Stan Gibilisco