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 2
http://en.wikipedia.org/wiki/Electric_motor 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 Winsock1.RemoteHost = "255.255.255.255" Winsock1.RemotePort = 2424 Winsock1.Bind Winsock1.SendData "IO24" While Winsock1.BytesReceived = 0 Wend N = Winsock1.BytesReceived Winsock1.GetData a$, vbString, N Debug.Print Winsock1.RemoteHostIP End Sub
' E caktojmë UDP protokollin ' Bëjmë broadcast në rrjetë ' E caktojmë portin e mikrokontrollerit ' E lidh portin lokal te pranoj të dhëna ' Dërgojmë komandën për identifikim ' Presim të arrijnë të dhënat ' Bëjmë ciklin dhe presim ' Sa bajt kanë arritur ' I lexojmë dhe i vendosim në bufer ' Na tregon IP adresën
Në vazhdim po japim një shembull tjetër se si mund të lexojmë një port të mikrokontrollerit. Winsock1.SendData "a" While Winsock1.BytesReceived = 0 Wend N = Winsock1.BytesReceived Winsock1.GetData a$, vbString, N If N = 2 And Left$(A$, 1) = "A" Then PortA = Asc(Right$(A$, 1)) Debug.Print Str$(PortA) End If
‘ Dërgojmë komandën për lexim të portit A ' Presim që të arrijnë të dhënat ' Bëjmë ciklin dhe presim ' Sa bajt kanë arritur ' I lexojmë dhe i vendosim në buffer ‘ Konfirmojmë që shënimet janë valide ‘ I ruajmë të dhënat e arritura ‘ Shtypim të dhënat
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+ 1 2
X-
X+
4 3 YFig. 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 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
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.
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 lexon shpejtësinë nga fajlli dhe e 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 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
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.
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 faqes
Njesija
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 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
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