Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Universiteti i Evropës Juglindore

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


Punim Diplome

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

2
Punim Diplome

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

3
Punim Diplome

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.

4
Punim Diplome

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.

5
Punim Diplome

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.

6
Punim Diplome

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.

7
Punim Diplome

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ë.

8
Punim Diplome

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

9
Punim Diplome

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)

10
Punim Diplome

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).

11
Punim Diplome

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

12
Punim Diplome

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

13
Punim Diplome

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.

14
Punim Diplome

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.

15
Punim Diplome

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"

16
Punim Diplome

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

17
Punim Diplome

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-.

18
Punim Diplome

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.

19
Punim Diplome

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

Y+

X- X+

3
Y-
Fig. 5 Shembulli i orientimit ne sistemin kordinativ

20
Punim Diplome

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

21
Punim Diplome

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ë.

22
Punim Diplome

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ë.

23
Punim Diplome

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

24
Punim Diplome

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

25
Punim Diplome

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.

26
Punim Diplome

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ë

27
Punim Diplome

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

28
Punim Diplome

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

29
Punim Diplome

If Xseg >= 0 Then


Ky kod llogarit nëse lëvizja që duhet të bën
If Xa - Xm > Incr / 2 Then
motori a është me e madhe se gjysma e
Xm = Xm + Incr
një hapi të motorit dhe nëse është e lëviz
StepX = True
Else për një hap, nëse jo nuk e lëviz. Kështu që
StepX = False gabimi maksimal mund të jetë vetëm një
End If gjysme hapi I motorit.

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 Ky kod bën lëvizjen e një hapi të motorit të
StX = 0 caktuar nëse kodi i sipër përmendur jep si
End If rezultat StepX = True.
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" Ky kod lexon shpejtësinë nga fajlli dhe e


Vel = Overr / 100 * Val(r1(1)) / 1000 rregullon në koordinim me tejkalimin e
caktuar.

30
Punim Diplome

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

For i = 1 To UBound(r1)
If Left(r1(i), 1) = "X" Then
Ky kod lexon nëse komanda e
Xseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 – Xp
radhës nga fajlli është lëvizje
End If
If Left(r1(i), 1) = "Y" Then absolute, dhe në rast se është
Yseg = Val(Right(r1(i), Len(r1(i)) - 1)) / 1000 – Yp e llogarit se sa duhet të ecin
End If motorët në këtë rast.
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.

31
Punim Diplome

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

32
Punim Diplome

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

33
Punim Diplome

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.

34
Punim Diplome

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.

35
Punim Diplome

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.

Dimensioni I Njesija
faqes

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.

36
Punim Diplome

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

37
Punim Diplome

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.

38
Punim Diplome

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.

39
Punim Diplome

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

40
Punim Diplome

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
Fillimi i punes se makines –
LABS z-5
SHP 2500 pozicionimi ne piken fillestare
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 Ekzekutimi i lëvizjeve per
LABS x62.6 y101.8 objektin e pare
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 Pozicionimi te pika fillestare e
SHP 2500
objektit te dyte
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 Ekzekutimi i lëvizjeve per
LABS x20.5 y11.75 objektin e dyte dhe
LABS x14.85 y25.58 përfundimi i programit
LABS x9.2 y39.4
LABS x24 y47.95
LABS x38.83 y56.5
SHP 500
LABS z-5
FUND

41
Punim Diplome

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.

42
Punim Diplome

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ë.

43
Punim Diplome

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.

44
Punim Diplome

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

45
Punim Diplome

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.

46
Punim Diplome

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

47

You might also like