• Rezultati Niso Bili Najdeni

Če smo želeli, da bo program istočasno izvajal risanje grafa in izvajanje gibanja batnice smo morali vnesti niti. Nit nam omogoča, da program istočasno izvaja dve stvari. Vsak proces lahko uporablja eno ali več niti izvajanja. Nit je nov proces, ki z ostalimi nitmi souporablja naslovni prostor in globalne spremenljivke, vendar ima svoj ID, dostopa do skupnih datotek in ima pravice dostopa do vsega znotraj procesa. Tako smo z uporabo niti dosegli da se lahko izvaja risanje grafa in izvaja gibanje batnice. Na sliki 4.6 je koda za definiranje in zagon niti. Prvi požene funkcijo start v novi niti, tako da se izvede funkcija start in riše graf, zato je to tudi funkcija ki je vezana na gumb START. Druga nit pa je vezan na gumb START CYCLE in v novi niti požene funkciji startc in startcycle. Funkcija .daemon pa pomeni kadar je True, da se nit preneha izvajati skupaj s programom.

Rezultati in diskusija

V delu kode na sliki 4.7 je definirana velikost grafičnega vmesnika, naslov ki se izpiše na vmesniku in pisava na njem. Pod označbami btn se skrivajo gumbi, tukaj določimo njihov izgled, napis na njih, širino mej, pisavo, barvo ter seveda kateri ukaz naj se izvede ob pritisku na gumb. V nadaljevanju je še postavitev mreže in postavitev gumbov v mreži ( kateri stolpec in vrstica, ter čez koliko stolpcev/vrstic se naj razprostira). Zadnji sklop kode na sliki 4.6 pa je že namenjen grafu, določa njegovo velikost in postavitev na grafičnem vmesniku., spodaj pa sta že dodana prazna seznama xs in ys v katera se nato dodajajo podatki za izris na grafu.

Slika 4.8: Funkcija za risanje grafa.

Na sliki 4.8 je še zadnji del našega programa. Tukaj je definirana funkcija za risanje grafa.

Na y os se rišejo vrednosti tlaka, vrednosti pridobimo iz analognega vhoda, vendar ker na vhod dobimo vrednost v voltih je potrebno ta podatek preko enačbe še spremeniti v vrednost v barih. Naš senzor zaznava vrednosti od 0 do 10 V in tlake od 0 do 100 bar, zato je je enačba za pretvorbo y = 10 x. Zato je potrebno vrednost ki jo dobimo iz senzorja še pomnožiti z 10. Na x os pa se zapisuje realen čas. Ker želimo, da se na grafu prikazuje samo zadnjih 6 podatkov je potrebno preostale brisati, to naredimo v vrstici 94 in 95. V nadaljevanju kode se doda še naslov grafa in označbe osi. V vrstici 104 se kliče še funkcija ani, ki dejansko izvaja animacijo risanja grafa v živo. Na koncu pa se zaključi še glavna zanka knjižnice tkinter.

Rezultati in diskusija

4.4 Zagon sistema

Ko smo imeli vse sprogramirano in hidravlično stiskalnico povezano z RPi je bil čas za prvi preizkusni zagon. Pognali smo hidravlični agregat, na RPi pognali kodo da se nam je odprl grafični vmesnik in so se prikazali gumbi za upravljanje ter graf tlaka. Tako smo lahko prvič preizkusili ali zadeva dejansko deluje kot mora. Pritisnili smo gumb START in spremljali če vse poteka tako kot mora, zadeva se je pravilno izvedla, na grafu pa smo tudi spremljali potek tlaka, težava je le v tem, da je naš RPi malo premalo zmogljiv in se med izvajanjem gibanja batnice graf ne osveži vsako sekundo, temveč včasih tudi komaj na 3 sekunde. Če bi želeli, da bi zadeva dobro funkcionirala bi potrebovali zmoglivejči procesor in večji pomnilnik ram. Preizkusili smo še funkcijo START CYCLE, zadeva je ponovno funkcionirala po pričakovanjih in se je prenehala izvajati ko smo pritisnili na gumb STOP CYCLE. Tako smo preverili da zadeva pravilno funkcionira.

Kot smo že prej večkrat omenili ima hidravlična stiskalnica dve možnosti delovanja, da pritisnemo gumb START in se izvede en cikel ali pa pritisnemo na gumb STRAT CYCLE in se proces ciklično ponavlja dokler ga ne prekinemo z pritiskom na gumb STOP CYCLE.

Kadar stiskalnica opravi le en cikel, to pomeni da se batnica pomakne iz svoje skrajne začetne lege do končne skrajne lege in se na koncu vrne v izhodiščni položaj. Pri cikličnem režimu delovanja pa se batnica ko ponovno doseže izhodiščni položaj ne ustavi, vendar se ponovno začne pomikati proti skrajni končni legi. Ta proces se izvaja toliko časa dokler uporabnik ne želi prekiniti cikličnega izvajanja. Ko pa uporabnik želi prekiniti ciklično izvajanje gibanja batnice pritisne na gumb STOP CYCLE in takrat se bo ne glede na to v kateri fazi cikla je program se bo cikel izvedel do konca in ko bo batnica dosegla izhodiščno točko torej skrajno začetno lego se bo cikel zaustavil.

5 Zaključki

Cilj naloge je bilo obstoječo hidravlično stiskalnico, ki je bila krmiljena z didaktičnimi krmilnimi komponentami nadgraditi z mikrokrmilnikom Raspberry PI. Krmilili smo enostaven cikel za pomik hidravličnega valja iz zgornje lege do spodnje lege pri čemer smo uporabili končna induktivna stikala za zaustavitev hidravličnega valja v končni legi.

V sklopu naloge smo:

1) Pokazali, da je lahko preprost mikroračunalnik kot je RPi v kombinaciji z dodatnimi krmilinimi moduli primeren za avtomatizacijo hidravlične naprave.

2) Pokazali smo da lahko RPi nadomesti industrijske PLK krmilnike ali National Instruments Labview programsko okolje v kombinaciji z didaktičnimi krmilnimi komponentami.

3) Zasnovali smo ohišje za RPi, ki smo ga natisnili s 3D tiskalnikom in ga uporabili za montažo na hidravlično stiskalnico.

4) Zasnovali smo programsko kodo v jeziku Python, ki omogoča krmiljenje in nadzor celotnega procesa in prikaz merjenih veličin na zaslonu na dotik.

5) Izdelali smo grafični vmesnik preko katerega uporabnik rokuje s hidravlično stiskalnico. Izdelali smo gumb za enociklično delovanje, ciklično delovanje, zaustavitev cikla in zaustavitev sistema v sili ter grafični prikaz tlaka merjenega v zgornji komori hidravličnega valja.

6) Hidravlično stiskalnico smo zagnali in testirali vse funkcije grafičnega vmesnika in krmiljenje.

Ugotovili smo da je lahko RPi ob pravilni uporabi in dodatnimi moduli v uporabi za manjše industrijske avtomatizirane procese lahko povsem konkurenčen PLK krmilnikom.

Zaradi njegove odprte platforme programiranja lahko z njim izdelamo poljubna krmiljenja in grafične vmesnike za prikaz merjenih veličin.

Rezultati in diskusija

vmesniku. Glede na to da imamo že vgrajen tlačni senzor bi se lahko stiskalnica nadgradila tako, da bi stiskala do željenega tlaka in bi ob doseženem tlaku prenehala stiskati. Na isti princip bi lahko stiskalnico zavarovali tudi pred preobremenitvijo.

Literatura

[1] R. Harb: Krmilna tehnika, Tehniška založba Slovenije, Ljubljana, 2008.

[2] Jack L. Johnson: Basic electronics for hydraulic motion control, Penton Publishing Inc., Cleveland, 1992.

[3] W. Götz, S. Haack, R. Mertlik: Electrohydraulic Proportional and Control Systems, OMEGON Fachliteratur, Ditzingen, 1999.

[4] J. Pezdirnik, F. Majdič: Pogonsko-krmilna hidravlika, zapiski za predavanja- RRP del hidravlika, Fakulteta za strojništvo, Ljubljana, 2012.

[5] https://www.raspberrypi.org/products/raspberry-pi-3-model-b/, ogled: 22. 3. 2021 [6] https://shop.pimoroni.com/products/automation-hat, ogled: 22. 3. 2021.

[7] N. Herakovič: Hidravlika in pnevmatika, Učno gradivo iz predavanj, Fakulteta za strojništvo, laboratorij za strego, montažo in pnevmatiko. Dostpno na:

https://web.fs.uni-lj.si/lasim/index.php?page=hidravlika-in-pnevmatika, ogled: 4. 3.

2021.

[8] N. Herakovič: Hidravlika in pnevmatika, Učno gradivo iz vaj, Fakulteta za strojništvo, laboratorij za strego, montažo in pnevmatiko. Dostpno na:

https://web.fs.uni-lj.si/lasim/index.php?page=hidravlika-in-pnevmatika, ogled: 4. 3.

2021.

[9] J. Sturtz: Introduction to Python 3. Dostopno na: https://realpython.com/python-introduction/, ogled: 5. 5. 2021.

[10] S. Macdonald: Getting Started with Automation HAT, pHAT and HAT Mini.

Dostopno na: https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-automation-hat-and-phat, ogled: 5. 5. 2021.

[11] D. Amos: Python GUI Programming With Tkinter. Dostopno na:

https://realpython.com/python-gui-tkinter/, ogled: 14. 5. 2021.

[12] J. Anderson: An Intro to Threading in Python. Dostopno na:

https://realpython.com/intro-to-python-threading/, ogled: 25. 8. 2021.