Upload
nguyendieu
View
216
Download
0
Embed Size (px)
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA STROJNIŠTVO
Matej KOSEDNAR
UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA KRMILJENJE
OBDELOVALNIH STROJEV
Diplomsko delo
visokošolskega strokovnega študijskega programa 1. stopnje
Strojništvo
Maribor, marec 2018
UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA
KRMILJENJE OBDELOVALNIH STROJEV
Diplomsko delo
Študent: Matej KOSEDNAR
Študijski program: visokošolski strokovni študijski program 1. stopnje Strojništvo
Smer: Proizvodno strojništvo
Mentor: doc. dr. Simon Klančnik
Maribor, marec 2018
II
I Z J A V A
Podpisani Matej KOSEDNAR, izjavljam, da:
• je diplomsko delo rezultat lastnega raziskovalnega dela,
• predloženo delo v celoti ali v delih ni bilo predloženo za pridobitev kakršnekoli izobrazbe
po študijskem programu druge fakultete ali univerze,
• so rezultati korektno navedeni,
• nisem kršil-a avtorskih pravic in intelektualne lastnine drugih,
• soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet ter
Digitalni knjižnici Univerze v Mariboru, v skladu z Izjavo o istovetnosti tiskane in
elektronske verzije zaključnega dela.
Maribor,_____________________ Podpis: ________________________
III
ZAHVALA
Zahvaljujem se mentorju doc. dr. Simonu Klančniku za
pomoč in vodenje pri opravljanju diplomskega dela.
Zahvaljujem se tudi staršem in vsem najbližjim za
podporo med študijem in pri izdelavi diplomskega
dela.
IV
UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA KRMILJENJE OBDELOVALNIH
STROJEV
Ključne besede: EMC2, Python, Lakos 150 G, CNC, CAD, CAM
UDK: 004.4:621.7-52(043.2)
POVZETEK
V diplomskem delu je predstavljena uporaba odprtokodnega sistema EMC2 na obdelovalnih
strojih, s konkretnim primerom delovanja na obdelovalnem stroju Lakos 150 G. Predstavljena
je tudi uporaba programskega jezika Python v programu EMC2.
Najprej so v diplomskem delu opisani odprtokodni sistemi, ki se uporabljajo za krmiljenje
obdelovalnih strojev, v tem poglavju je predstavljen tudi programski jezik Python. Nadalje je
opisan program EMC2, njegova uporabnost ter delovanje. Predstavljena je tudi uporabnost
obdelovalnega stroja Lakos 150 G, programiranje in upravljanje tega stroja, prav tako pa tudi
CAD/CAM-programiranje. V diplomskem delu je naveden tudi primer obdelave, s programom
EMC2 na obdelovalnem stroju Lakos 150 G, ter postopek konstruiranja izdelka, programiranja
ter same izdelave izdelka na obdelovalnem stroju. Opisan je še primer programa, napisanega
v Pythonu, in dva primera Pythonovih skript, ki poenostavijo delo s programom EMC2.
V
USING OPEN SOURCE SYSTEMS EMC2 FOR CONTROL OF MACHINE TOOLS
Key words: EMC2, Python, Lakos 150 G, CNC, CAD, CAM
UDK: 004.4:621.7-52(043.2)
ABSTRACT
The thesis presents the use of an open source EMC2 system on CNC machine tools, with a
concrete example of controlling the Lakos 150 G machine tool. The use of the Python
programming language in the EMC2 software is also presented.
At first, the thesis describes the open source systems used for control of CNC machine tools.
This section also introduces the Python programming language. Further, the EMC2 software is
described, with its usefulness and performance. The applicability of the Lakos 150 G processing
machine is also presented, including the programming and operation of this machine and a
sample of brief CAD / CAM programming. The thesis also presents an example of processing
work with the EMC2 software on the Lakos 150 G machine tool, representing the whole
process from the construction of the product, through the programming to the very
manufacture of the product on the machine tool. And further, another example of a program
written in Python and two examples of Python scripts that simplify the work with the EMC2
software, are described.
VI
KAZALO VSEBINE
1 UVOD ................................................................................................................................. 1
1.1 Opis splošnega področja dela .................................................................................... 1
1.2 Opredelitev dela ......................................................................................................... 1
1.3 Struktura diplomskega dela ...................................................................................... 2
2 ODPRTOKODNI SISTEMI ZA OBDELOVALNE STROJE ..................................... 3
2.1 Odprtokodna programska oprema .......................................................................... 3
2.2 Odprtokodni programi za upravljanje CNC-obdelovalnih strojev ...................... 5
2.3 Programski jezik Python ........................................................................................... 5
2.4 Programiranje CNC-obdelovalnega stroja s Pythonom ........................................ 6
3 PREDSTAVITEV ODPRTOKODNEGA SISTEMA EMC2 ....................................... 9
3.1 Opis in namen programske opreme EMC2 ............................................................. 9
3.2 Razvoj programskega sistema EMC2 .................................................................... 10
3.3 Delovanje programa EMC2 .................................................................................... 11
4 3D CNC-GRAVIRNI STROJ LAKOS 150 G .............................................................. 14
4.1 Opis naprave LAKOS 150 G .................................................................................. 14
4.2 Upravljanje naprave ................................................................................................ 16
4.3 Programiranje CNC-stroja Lakos 150 G .............................................................. 17
5 CAD/CAM-RAČUNALNIŠKO PODPRTO PROGRAMIRANJE ............................ 20
6 IZDELAVA IZDELKA IN PRIMER PROGRAMA Z UPORABO
PROGRAMSKEGA JEZIKA PYTHON ............................................................................. 22
6.1 Modeliranje CAD-izdelka ....................................................................................... 22
6.2 Programiranje izdelka CAM v programu Edgecam ............................................ 24
6.3 Izdelava izdelka na gravirnem stroju Lakos 150 G s programskim sistemom
EMC2 ......................................................................................................................... 26
6.4 Primer CNC-programa z uporabo programskega jezika Python ....................... 29
7 SKLEP .............................................................................................................................. 34
8 LITERATURA ................................................................................................................ 36
VII
KAZALO SLIK
Slika 2.1: Logotip odprte kode ................................................................................................... 3
Slika 2.2: Logo Python ............................................................................................................... 6
Slika 2.3: Skripta za izračun hitrosti vrtanja............................................................................... 7
Slika 2.4: Pythonova skripta za nasprotne vijake ....................................................................... 8
Slika 2.5: Skripta za graviranje napisa ....................................................................................... 8
Slika 3.1: Simbol za EMC2 ........................................................................................................ 9
Slika 3.2: Logotip LinuxCNC .................................................................................................. 10
Slika 3.3: Obrazložitev gumbov ............................................................................................... 13
Slika 4.1: Shema Lakos 150 G ................................................................................................. 14
Slika 4.2: LPT-vmesnik z označenimi priklopi. ....................................................................... 15
Slika 4.3: Okno uporabniškega vmesnika ................................................................................ 16
Slika 6.1: Začetek konstruiranja izdelka................................................................................... 22
Slika 6.2: 3D-model .................................................................................................................. 23
Slika 6.3: 3D-model izdelka ..................................................................................................... 23
Slika 6.4: Uvožen CAD-model ................................................................................................. 24
Slika 6.5: Izbira obdelovalnega stroja ...................................................................................... 24
Slika 6.6: Izbira obdelave, določitev mej na obdelovancu ....................................................... 25
Slika 6.7: Simulacija izdelka .................................................................................................... 26
Slika 6.8: Pripravljena NC-koda v EMC2 ................................................................................ 27
Slika 6.9: Skica orodja .............................................................................................................. 28
Slika 6.10: Prikaz obdelave v EMC2........................................................................................ 28
Slika 6.11: Program, napisan v Pythonu, in potek izdelave ..................................................... 29
Slika 6.12: Primer preprostega CNC-programa Python ........................................................... 30
VIII
Slika 6.13: Skripta za graviranje napisa ................................................................................... 31
Slika 6.14: Izbira dxf.-modela .................................................................................................. 32
Slika 6.15: Nastavitve parametrov za obdelavo ....................................................................... 32
Slika 6.16: Izsek izpisanega programa ..................................................................................... 33
IX
UPORABLJENE KRATICE
CNC – Computer Numerical Control
NC – Numerical Control
EMC2 – Enhanced Machine Controller
CAD – Computer Aided Design
CAM – Computer Aided Manufacturing
DXF – Drawing Exchange Format
GNU – General public license
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
1
1 UVOD
1.1 Opis splošnega področja dela
CNC-obdelovalni stroji so vodeni preko računalniškega krmilja, ki ga sestavljata računalnik in
programska oprema. Za delovanje računalnika potrebujemo operacijski sistem, kot sta npr.
Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2,
ki je odprtokodna, namenjena krmiljenju obdelovalnih strojev, kar pomeni, da jo lahko
uporablja vsak, je brezplačna, prav tako pa predstavlja program za prosto programiranje.
Odprtokodni sistemi so namenjeni programiranju, z njimi lahko prosto programiramo, licenca
programa pa mora biti dostopna vsakemu, ki želi odprtokodni program. Prednost takih
sistemov je, da lahko sam programski sistem po potrebi popravimo ali spremenimo, prav tako
pa so ti sistemi tudi brez stroškov nabave. Slabost le-teh pa se kaže v kompatibilnosti z
operacijskim sistemom računalnika. Krmilnik, kot je EMC2, se poveže na obdelovalne stroje
preko vmesnika, na obdelovalnem stroju potem izvajamo operacije, ki jih sam obdelovalni
stroj in programski krmilnik premoreta. Za proučevanje delovanja odprtokodnega sistema, kot
je EMC2, je najlažje, da se izdelata CAD in CAM-model ter ju nato testiramo na obdelovalnem
stroju. Za testiranje delovanja lahko uporabljamo obdelovalne stroje, eden izmed takih je tudi
3D CNC-gravirni stroj Lakos 150 G. Od programske opreme se pričakuje, da je z njo možno
doseči kvalitetno ter čim bolj enostavno uporabo. Poleg klasičnih NC-programov lahko v
programu EMC2 uporabimo tudi programe, napisane v programskem jeziku Python. K
poenostavljenemu delu s programom EMC2 pa pripomorejo tudi skripte, napisane v Pythonu.
1.2 Opredelitev dela
Namen diplomske naloge je raziskati odprtokodni sistem EMC2 za krmiljenje obdelovalnih
strojev ter njegovo uporabnost. Naloga vsebuje opis programske opreme EMC2 in delovanje
le-te na obdelovalnem stroju 3D CNC-gravirni stroj Lakos 150 G. Vsebuje tudi programski jezik
Python in njegovo uporabnost na EMC2. V nalogi je uporabnost programa prikazana tudi na
praktičnem izdelku, izdelanem na obdelovalnem stroju 3D CNC-gravirni stroj Lakos 150 G.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
2
V diplomskem delu bomo preverjali naslednji hipotezi:
• Osebni računalnik in primerno programsko opremo lahko uporabimo za namen
vodenja CNC-rezkalnega stroja.
• Odprtokodni sistemi so primerni in dovolj zmogljivi za uporabo na realnih CNC-
obdelovalnih strojih.
1.3 Struktura diplomskega dela
Diplomska naloga je razdeljena na teoretični in praktični del. V teoretični del so vključena štiri
poglavja, kjer poleg uvoda predstavimo odprtokodne programe in Python, program EMC2,
obdelovalni stroj Lakos 150 G ter CAD in CAM-programiranje. Drugi del diplomskega dela pa
zajema praktični primer obdelave z EMC2 na obdelovalnem stroju Lakos 150 G ter primer
programa za EMC2, ki je napisan v Pythonu. V nalogi sta predstavljena tudi dva primera
Pythonovih skript. Diplomska naloga je zaključena s sklepom.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
3
2 ODPRTOKODNI SISTEMI ZA OBDELOVALNE STROJE
2.1 Odprtokodna programska oprema
Odprtokodna programska oprema je programska oprema, pri kateri ne veljajo zelo stroge
licenčne omejitve, če predpostavimo, da gre za način uporabe, kopiranje, spreminjanje kode
in distribucije, ki veljajo za lastniško programsko opremo. [4]
Programska koda pri odprtokodnem programu je prosto dostopna za vsakogar, le-ta jo lahko
ureja, dogradi in izboljša. Izraz odprta koda je postal priljubljen, ko se je začel vzpon interneta,
kateri je omogočil dostop do različnih modelov produkcije, komunikacije in interaktivne
skupnosti. [4,14]
Slika 2.1: Logotip odprte kode [14]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
4
Prednosti odprte programske opreme:
• Kodo lahko spreminjamo in popravljamo,
• izogib slabostim enega razvijalca,
• ni omejitev pri podpori programske in komercialne opreme,
• fleksibilnost oz. svoboda programske opreme,
• ni stroškov nabave programske opreme,
• možnost virusov je manjša, manj je varnostnih lukenj, posledično pa tudi manj napadov
nanjo. [4,14]
Slabosti odprtokodne programske opreme:
• Največja slabost odprtokodne programske opreme so nedokončani izdelki, saj dosti
programske opreme ostane v beta fazi razvoja in ne doseže končnega izdelka,
• kompatibilnost programa z operacijskim sistemom,
• neprijazen uporabniški vmesnik, ki oteži delo s programom,
• podpora je lahko tudi slabost, ker ni zagotovljena od nikoder oz. je lahko slabo
izvedena,
• težak začetek projekta, saj se mora najti zadostno število razvijalcev, ki so
zainteresirani končati projekt. [4,14]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
5
2.2 Odprtokodni programi za upravljanje CNC-obdelovalnih strojev
Za samo delovanje obdelovalnega stroja moramo imeti primerno in kompatibilno programsko
opremo, s katero lahko obdelovalnemu stroju zagotovimo normalno delovanje. Poleg
programske opreme potrebujemo računalnik, na katerem se izvajajo programi. Računalnik za
svoje delovanje nujno potrebuje operacijski sistem, med odprtokodnimi operacijskimi sistemi
je to največkrat Linux. [8]
Linux je odprtokodni operacijski sistem Unixove družine, ki je znan po zanesljivem delovanju
in podpori dela na medmrežju, prav tako je prijazen do uporabnika. Linux lahko vsakdo
spreminja in dograjuje. Zaščiten je z določili licence General Public License, krajše GNU. Sistem
GNU je sestavljen iz množice programov in je v devetdesetih postal velika uspešnica. [8]
Za CNC-obdelovalne stroje je znano, da za svoje krmiljenje uporabljajo računalnik, na katerem
je potrebno imeti program, ki krmili obdelovalni stroj, med računalnikom in strojem pa
vmesnik, ki pretvarja stroju želene vrednosti in ga tako krmili. Eden izmed takih odprtokodnih
sistemov za krmiljenje obdelovalnih strojev je EMC2. Za ta program je potrebno vnaprej
izdelati tudi NC-program za želeni proizvod, ki pa ga lahko napišemo v urejevalniku besedila
(beležnica) ali pa tudi v odprtokodnem programu za programiranje Python. Program lahko
napišemo, če imamo CAD-model želenega izdelka. Iz CAD-modela lahko napišemo program
ročno ali pa s CAM-programi naredimo simulacijo ter izpišemo NC-program. Za samo CAD-
modeliranje obstaja več odprtokodnih programov, kot so: QCAD, progeCAD, FreeCAD, itd.
2.3 Programski jezik Python
Python je skriptni jezik. Programi, napisani v Pythonu, so lepo berljivi, kar je bil tudi cilj pri
sestavi tega jezika. Jezik je primeren za začetnike, ker ne vsebuje sintaktične navlake. Tako se
ga je lažje naučiti in ga razumeti kot programer. [5]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
6
Slika 2.2: Logo Python [10]
Zaradi lepe berljivosti hitrost programiranja ne trpi, saj je programiranje v Pythonu zelo hitro,
ker ima visokonivojske podatkovne strukture, ki so tesno vdelane v jezik. V pomoč pa so mu
tudi že napisani moduli, ki spremenijo programiranje v Pythonu v lepljene tuje kode. [5]
Slabost Pythona pa je počasnost izvajanja, ker se prevaja v kodo za navidezni stroj. Tako se ne
more kosati z Javo, kjer je navidezni stroj običajno hitrejši. Še manj pa se Python v hitrosti ne
more kosati s C-jem, ki teče na pravem stroju. Kljub vsemu pa omenjena počasnost izvajanja
ni resna pomanjkljivost Pythona, ker moramo prostorsko in časovno zahtevnejše delo
sprogramirati v C-ju, ki se lepo povezuje s Pythonom. [5]
Python je široko uporaben, saj se v njem pišejo mnoge sistemske skripte za Linux. Python je
bil tudi eden od jezikov Googla poleg JavaScripta in C-ja. Nekdo, ki ve vsaj en imperativni jezik,
se bo Pythona naučil zelo hitro. [5]
Python se lahko uporablja na veliko različnih sistemih. Dobimo ga v obliki ukazne lupine,
python (ali python.exe), ki pa za praktično rabo ni prikladna, jo pa uporabljamo za izvajanje že
napisanih programov. Nekoliko boljša je alternativa ipython, ki ponuja pomoč pri vpisovanju
ukazov. To okolje je zelo uporabno, kot razvojno okolje pa težko za začetnika. [5]
Za začetnike je primernejše bolj preprosto okolje. V MS Windows je to PythonWin ali
PyScripter. Za Linux in Mac Os X je prikladno okolje Eric. [5]
2.4 Programiranje CNC-obdelovalnega stroja s Pythonom
Ročno programiranje v Pythonu je zahtevnejše od pisanja NC-kode v programu za urejanje
besedila, saj je potrebno znanje programiranja s Pythonom, prav tako pa tudi znanje za pisanje
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
7
NC-kode. So pa lahko programi, ki so napisani v Pythonu, preprostejši, v krajši obliki kot NC-
program v beležnici.
Za delovanje CNC-krmilnikov za obdelovalne stroje se najpogosteje uporabljata programska
jezika C ali C++, ki se izvajata v operacijskem okolju Windows. Python, ki mu pravimo tudi
visoko-sodobni programski jezik, se uporablja za izvajanje programov na operacijskih sistemih
Linux. S Pythonom lahko s pravo programsko opremo in tehnologijo krmilimo tudi najbolj
zahtevne procese. Eden izmed programov za krmiljenje je PyCNC, ki je namenjen krmiljenju
CNC/3D-tiskalnika. S tem programom in ločenim modulom DMA (Direct Memory Access) lahko
obdelovalni stroj krmilimo z operacijskim sistemom Linux v realnem času. [6]
Za programski paket EMC2 oziroma LinuxCNC obstaja kar nekaj skript, napisanih v Pythonu, ki
poenostavijo delo s programom in predhodno konstruiranje ter programiranje.
Pythonove skripte za program EMC2:
- Drilling Speeds-n-Feeds: s to skripto si pomagamo pri izračunavi hitrosti in virov za
vrtanje.
V programu izberemo material, premer, vrtljaje, nato izberemo Calculate. Na desni
strani se izpišejo hitrosti za vrtanje za želeni material in želene parametre. [12]
Slika 2.3: Skripta za izračun hitrosti vrtanja [12]
- Counterbore Software: Ta skripta nam pomaga ustvariti G-kodo za nasprotne vijake.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
8
V program vstavimo podatke o vijaku in o orodju, nato generiramo. Izpiše se nam G-
koda, ki jo lahko direktno prenesemo v programsko okno AXIS. [12]
Slika 2.4: Pythonova skripta za nasprotne vijake [12]
- Text Engraving Software: Ta programska oprema je namenjena graviranju teksta.
V skripti nastavimo želen napis in obliko, katero prenesemo v AXIS okolje. [12]
Slika 2.5: Skripta za graviranje napisa [12]
Predstavljene so samo tri skripte. Poznamo pa še več Pythonovih skript, s katerimi
poenostavimo programiranje v programskem paketu EMC2, kot so na primer: Bezel Engraving
Software, Grill Drilling Software, Arc Generator idr.
Poznamo tudi program PyCAM, ki ustvari 3D-model G-kode iz modelov DXF ali SVG, ki jo nato
uporabimo na EMC2 ali drugih strojnih krmilnikih. Podoben program je tudi Dxf2gcode, ki pa
G-kodo ustvari direktno iz DXF-formata. [12]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
9
3 PREDSTAVITEV ODPRTOKODNEGA SISTEMA EMC2
3.1 Opis in namen programske opreme EMC2
Odprtokodna programska oprema EMC2, danes poznana tudi kot Linux CNC, je namenjena
numeričnemu krmiljenju obdelovalnih strojev, kot so rezkalni stroji, stružnice, stroji za razrez,
robote ter druge CNC-obdelovalne stroje. Krmili lahko do 9 osi obdelovalnega CNC-stroja, z
uporabo G-kode na vhodu. Na operacijskem sistemu, kot je Windows, program EMC2 ne bo
deloval pravilno, ker za svoje delovanje potrebuje okolje v realnem času. Zato je primeren
operacijski sistem Linux, ki je znan po svoji stabilnosti in učinkovitosti. EMC2 je brezplačna
programska oprema, brez strožjih licenčnih omejitev. [9,11,15]
Slika 3.1: Simbol za EMC2 [9]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
10
3.2 Razvoj programskega sistema EMC2
Programsko opremo EMC Public Domain je razvil oddelek za inteligentne sisteme na
Nacionalnem inštitutu za standarde in tehnologijo v ZDA, imenoval se je EMC (Enhanced
Machine Controller). Predstavljal je referenčno izvedbo industrijskega standardnega jezika za
numerično kontroliranje obdelovalnih operacij RS-274D (G-koda), ki je nevtralna za
prodajalce. Programska oprema je vključevala tolmača RS274, ki je pognal gonilnike motorja
v realnem času, načrtovalca gibanja in uporabniški vmesnik. Leta 2003 je programska oprema
dobila prenovljene in poenostavljene dele, nato pa tudi novo ime EMC2. EMC2 se še vedno
razvija. Licenciranje je pod splošno javno licenco GNU. Leta 2011 se je ime iz EMC2 spremenilo
v LinuxCNC. Za to so se odločili v družbi EMC Corporation in ob soglasju vodstva projekta.
[9,15]
Slika 3.2: Logotip LinuxCNC [15]
EMC2 je bil nameščen na mnogih strojih tako s servo kot tudi s koračnimi motorji. Med prve
obdelovalne stroje s programsko opremo EMC2 spada 3-osni namizni rezkalni stroj, ki se
uporablja za razvoj prototipov, ter tudi 4-osni horizontalni obdelovalni center
Kearney&Trecker. [9]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
11
3.3 Delovanje programa EMC2
EMC2 je več kot samo CNC-program. Lahko nadzoruje tudi strojna orodja, robote in druge
avtomatske naprave. Poleg servo in koračnih motorjev lahko nadzoruje tudi releje in druge
naprave, povezane s strojnimi orodji. Računalnik, ki za svoje delovanje uporablja operacijski
sistem Limux, dejansko nadzoruje pogone obdelovalnega stroja s pošiljanjem signalov. Ti
signali ali impulzi naredijo koračni pogon za premikanje koračnih motorjev. Servo motorje
lahko EMC2 upravlja z vmesnimi karticami ali z uporabo razširjenega vzporednega priključka
za povezavo z zunanjimi nadzornimi ploščami. [9]
Programska oprema EMC2 ima štiri glavne komponente:
• Krmilnik gibanja (EMCMOT),
• diskretni I/O-krmilnik (EMCIO),
• izvajalca nalog, ki jih usklajuje (EMCTASK)
• in zbirko besedilnih in grafičnih uporabniških vmesnikov. [9]
1. Krmilnik gibanja (EMCMOT) nadzira gibanje in vzorčenje položaja osi, ki ga je potrebno
nadzorovati. Njegova funkcija je še računanje naslednje točke na poti, interpoliranje
med točkami poti ter računanje izhodov na motorje. Krmilnik gibanja je napisan dokaj
generično.
2. Diskretni I/O-krmilniki so visoko strojno specifični in se v splošnem ne dajo prilagoditi
z uporabo tehnike INI-datoteke, ki se uporablja pri bolj generičnem krmilniku gibanja
za konfiguriranje. EMC2 vsebuje logični krmilnik, ki je programabilen in se lahko
uporablja za zelo zapletene scenarije. EMC2 vsebuje samo en velik I/O-kontroler, ki
nadzira strojno opremo in zagotavlja podporo za vse vrste ukrepov.
3. Izvajalec nalog (EMCTASK) ima nalogo, da tolmači programe G- in M-kode, katere se
med stroji bistveno ne razlikujejo.
4. Grafični uporabniški vmesnik je del EMC2, ki sodeluje z operaterjem strojnega orodja.
Poznamo več vrst uporabniških vmesnikov:
- Interaktivni program ukazne vrstice z imenom Emcpanel.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
12
- Grafični program z zaslonom na dotik, imenovan Keystick 1.3.
- X Windows-programi, imenovani Xemc 1.6 in Yemc.
- Java- based GUI z imenom Emcgui.
- 2. grafična kartica Tcl/Tk, imenovana Tkemc 1.5 in mini 1.4.
- GUI na osnovi Open GL, interaktivnim predogledom G- kod, imenovan AXIS 1.2. [9]
Tkemc in Mini lahko zaženemo na Linuxu, Microsoft Windowsu in Macu, če imamo nameščen
programski jezik Tcl/Tk. Različica Mac in Microsoft Windows se lahko poveže z EMC2, ki se
izvaja na napravi Linux v realnem času, preko omrežne povezave. Tako je omogočen nadzor
naprave z oddaljenosti. [9]
Glede na način delovanja obstajajo trije različni načini za vnos ukazov. To so ročni, samodejni
ter MDI. Razlika med njimi se kaže v obnašanju EMC2 in je velika. Nekatere zadeve lahko
naredimo samo v posameznem načinu, medtem ko v drugem niso možne. Tako lahko samo v
ročnem načinu postavimo vse osi v referenčno lego. V avtomatskem ali samodejnem načinu
lahko operater povzroči, da se v celoti izvede datoteka z G-kodo, kar v ostalih dveh načinih ni
možno. V ročnem načinu se vsi ukazi vnesejo ločeno. V načinu MDI se lahko blok G-kode vnese
v program in operater napravi tako rekoč pove, da se naj izvede s pritiskom na določen gumb
(return ali enter). Vsi trije imajo iste ukaze za ESTOP, ABORT, FEDERATE OVERRIDE, le-ti pa
morajo biti samoumevni. [9]
EMC vsebuje datoteke, ki so konfigurirane z berljivimi besedili. Vse datoteke je mogoče urediti
v urejevalniku besedil.
Grafični vmesnik AXIS, ki ponuja predogled v živo, je napisan v Pythonu in uporablja Tk in
OpenGL za prikaz uporabniškega vmesnika. [9]
Tipična seja z grafičnim vmesnikom AXIS deluje sledeče oz. po naslednjih točkah:
1. Zagon EMC2 in izbira datoteke,
2. sprostitev stanja ESTOP in vklop stroja,
3. postavitev vseh osi v referenčno lego,
4. izbira programske datoteke za obdelavo,
5. predogled programa,
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
13
6. vpenjanje surovca na obdelovalno mizo,
7. izvedba izravnave z joggingom in uporabo gumba Touch Off,
8. zagon programa,
9. ob ponovitvi programa se ponovno izbere točka 6, ob spremembi programa točka 4,
ob opravljenem delu je nato potrebno samo zapreti AXIS. [9]
Pomen gumbov v grafičnem vmesniku:
Slika 3.3: Obrazložitev gumbov [13]
1. Zasilna ustavitev (E-Stop). 9. Povečaj.
2. Vključi stroj. 10. Oddalji.
3. Odpri datoteko. 11. Pogled od zgoraj (Z).
4. Ponovno naloži odprto datoteko. 12. Pogled od zgoraj – obrnjen (Z).
5. Poženi program. 13. Pogled od spredaj (X).
6. Poženi naslednjo vrstico programa. 14. Pogled s strani (Y).
7. Pavza. 15. Pogled iz perspektive (P).
8. Ustavi program. 16. Počisti. [9]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
14
4 3D CNC-GRAVIRNI STROJ LAKOS 150 G
4.1 Opis naprave LAKOS 150 G
Lakos 150 je triosni frezalni stroj, s katerim se lahko freza, gravira in vrta. Sestavljen je iz
ogrodja, delovne mize ter na ogrodje nameščenega gravirnega stroja. Premika se s tremi
koračnimi motorji, v smereh X,Y, in Z, ki jih nadzira LPT-vmesnik. Resolucija, ki jo stroj premore,
je 0.05 mm. Glavno delovno gibanje opravlja gravirnik, ki se vrti z 20000 obrati na minuto.
Naprava ima gumb za zasilno zaustavitev, EMERGENCY STOP, ki ga je potrebno pritisniti v
nujnih primerih. [13]
Slika 4.1: Shema Lakos 150 G [13]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
15
Naprava se priklopi na računalnik preko LPT-vmesnika. Iz LPT-vmesnika povežemo motorje za
za krmiljenje X-,Y- in Z-osi. Stroj še povežemo s priključkom MCHN in SPINDL, ki daje gravirniku
vir energije za delovanje. Z računalnikom povežemo vmesnik na priključek PC. [13]
Slika 4.2: LPT-vmesnik z označenimi priklopi. [13]
Za zagon naprave prižgemo računalnik in LPT-vmesnik. Na računalniku odpremo program
EMC2, ki deluje, če je na računalniku naložen operacijski sistem Linux. Naprava je v E-Stop-u.
Pred pričetkom delovanja naprave je potrebno sprostiti gumb EMERGENCY STOP, v primeru,
da je ta pritisnjen. E-Stop se izključi tako, da najprej v programu kliknemo gumb E-Stop, nato
pa kliknemo še gumb Vklop. Tako je naprava pripravljena za delovanje. [13]
Za graviranje je namenjen električni gravirnik PROXXON-20000 RPM; 100 W, ki je pritrjen na
ogrodje obdelovalnega stroja. Za izdelavo prižgemo stroj in zaženemo program EMC2.
Naložimo program za graviranje ali frezanje, nastavimo potrebne parametre za izdelavo ter
poženemo proizvodnjo izdelka v programu. Delovni prostor, ki ga premore obdelovalni stroj
Lakos, je: v smeri koordinatne osi X – 205 mm, v smeri koordinatne osi Y – 177 mm, v smeri
koordinatne osi Z – 130 mm. Hitrost pa lahko nastavimo od 0–600 mm/min. [13]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
16
4.2 Upravljanje naprave
Za upravljanje naprave se uporablja program EMC2, ki omogoča tri uporabniške vmesnike. To
so: AXIS, TkEMC in MINI.
Slika 4.3: Okno uporabniškega vmesnika [13]
Položaj koordinatne mize je zapisan na ekranu s koordinatami X, Y, Z.
Glede na način upravljanja lahko izbiramo med MANUAL in MDI, t. i. Manual Data Input ali
ročni vnos podatkov.
Če imamo izbran način MANUAL, mizo premikamo z naslednjimi tipkami na tipkovnici:
• X os v + smeri: smerna tipka desno,
• X os v – smeri: smerna tipka levo,
• Y os v + smeri: smerna tipka gor,
• Y os v – smeri: smerna tipka dol. [13]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
17
• Če želimo inkrementalne premike, to nastavimo v meniju, ki se nahaja nad gumbom
Home All. Vrednost inkrementalnega premika je v enotah milimetri.
Napravo Lakos 150 G lahko upravljamo s programi, ki imajo končnico .ngc ali .nc., lahko pa tudi
s programom, napisanim v Pythonu, kjer je končnica programa py. G-kodo, ki je napisana v
programu, lahko ustvarimo z beležnico, nato pa pri shranjevanju spremenimo končnico. Za
odpiranje programa v EMC2 pritisnemo na gumb Odpri in poiščemo program ter ga odpremo.
Program lahko zaženemo v načinu Manual v Axis ali pa v Auto v TkEMC.
Za popravljanje programa spet odpremo beležnico, popravimo želeno vsebino, program pa
shranimo ter ponovno naložimo v EMC2. Pred začetkom uporabe je potrebno napravo
postaviti v začetno lego, to storimo s klikom na gumb Home All. [13]
4.3 Programiranje CNC-stroja Lakos 150 G
Ko se je v proizvodnjah začelo uvajati NC-stroje, se je močno povečal tudi obseg dela v pripravi,
sploh pri modernejših strojih. Zaradi zmogljivih NC-strojev je danes mogoče narediti tudi
najbolj zahtevne izdelke. Danes zaradi kompliciranih konstrukcij priprava dela zavzame že 1/3
proizvodnih stroškov. [1]
Programiranje zajema naslednje aktivnosti:
• izdelavo osnovnega zaporedja operacij,
• izdelavo podrobnega delovnega načrta,
• programiranje in cifriranje,
• izdelavo nosilca informacij.
Glede na način programiranja poznamo ročno programiranje, programiranje s pomočjo
računalnika in avtomatsko programiranje.
Pri ročnem programiranju programer na osnovi strojnih, orodnih kartonov in tabel rezalnih
pogojev ročno sestavi program. [1]
Pri programiranju s pomočjo računalnika računalniku prepustimo izračun geometrijskih
informacij.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
18
Avtomatsko programiranje danes pozna že veliko sistemov za avtomatsko projektiranje.
Nekateri sistemi rešujejo samo geometrijo, nekateri zraven geometrije delno tudi tehnologijo,
imamo pa sisteme, ki v celoti obdelajo geometrijske in tehnološke informacije.
Sisteme za strojno programiranje razdelimo na štiri podsisteme:
• Podsistem za oblikovanje vhodnih informacij,
• banka podatkov kot informacijska osnova celotnega procesa,
• procesor,
• prilagajanje izhodnih informacij, oblikovanje dokumentacije (poprocesor). [1]
Obdelovalni CNC-stroj Lakos 150 G upravljamo s programskim sistemom EMC2. Pred izdelavo
izdelka je potrebno v programski sistem EMC2 vnesti podatke, ki jih potrebujemo za celotno
izdelavo. Te razdelimo na orodne, tehnološke in geometrijske.
Orodni podatki nam povedo vse o uporabljenih orodjih na obdelovalnem stroju, dolžini, številu
rezalnih robov in obliki.
Tehnološki podatki nam opredelijo način gibanja po poteh, ki jih določijo geometrijski podatki.
V tehnoloških podatkih določamo tudi odrezovalne parametre ter vrsto drugih pomožnih
gibanj, ki jih mora stroj opraviti. Geometrijske podatke, podatke o poteh, položaju orodja in
smereh gibanja po poteh vnesemo v krmilje programskega sistema. [1]
Vsak NC-program je sestavljen iz NC-stavkov, stavke pa napišemo s kodami, ki imajo svoj
pomen. V NC-stavku pomeni N številko stavka, G pomeni delovno funkcijo, M pomožno
funkcijo, informacije o koordinatah pa so označene s črkami ( X, Y, Z, I, J, K, R, W). F predstavlja
velikost podajanja, S vrtilno hitrost, informacije o orodju pa označimo s črko T. [1]
Najpogosteje uporabljeni ukazi za obdelovalni stroj Lakos 150 G so:
- G kode:
• G0 (X Y Z) – hitri premik na želeno lokacijo.
• G1 (X Y Z F) – linearna interpolacija.
• G2 (X Y Z I J) – krožna interpolacija v smeri urinega kazalca.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
19
• G3 (X Y Z I J) – krožna interpolacija v nasprotni smeri urinega kazalca.
• G4 – postanek.
• G10 (X Y Z) – nastavljanje koordinatnih sistemov.
• G17 – izbira ravnine XY za krožno interpolacijo.
• G18 – izbira ravnine XZ za krožno interpolacijo.
• G19 – izbira ravnine YZ za krožno interpolacijo.
• G54 – G59, G59.1, G59.2, G59.3 – izbira koordinatnega sistema (»offsetov«).
• G90 – izbira absolutnega načina.
• G91 – izbira inkrementalnega načina.
- M kode – pomožne funkcije:
• M0 – prekinitev programa.
• M2 – zaustavitev programa.
• M30 – zaustavitev programa in reset.
- Koda F je namenjena nastavitvi hitrosti. [13]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
20
5 CAD/CAM-RAČUNALNIŠKO PODPRTO PROGRAMIRANJE
Programiranje strojev podprto s strani računalnika poznamo že več kot 20 let. CAD/CAM-
sistemi nam omogočajo danes bolj natančno in hitrejše programiranje CNC-strojev v
primerjavi z ročnim programiranjem. Ker imamo danes že tako kompleksne izdelke, je skoraj
nemogoče izdelati izdelek brez teh tehnologij. Pojem CAD/CAM označuje vse postopke
računalniško podprte izdelave dokumentacije, ki vključuje modeliranje, delovne risbe, risanje,
sestavne risbe ter vse do CNC-krmilnih informacij. [2]
CAD, računalniško podprto konstruiranje, je načrtovanje izdelkov za katero je potreben
računalnik in CAD-program. Prvi začetki le-tega so nastali leta 1950/51, takrat so v ZDA na MIT-
u razvili programski jezik APT. Ta jezik omogoča definirat geometrijske elemente in njihovo
izdelavo na NC-obdelovalnih strojih. Leta 1960 pa so na MIT-u predstavili možnost kreiranja in
manipulacije slik na zaslonu. S tem se je začela interaktivna računalniška grafika, katera pa se
iz leta v leto nadgrajuje. Najpomembnejša prednost sistema CAD je večja produktivnost pri
konstruiranju. To je odvisno od tega kar zahteva načrt, stopnje detajlov, ki so potrebni pri
načrtih, stopnje ponovljivosti konstruiranih delov, stopnje simetrije ter obsežnost knjižnice
splošno rabljenih celot. Če se omenjeni faktorji povečajo, se s tem poveča produktivnost
sistema CAD. [1]
Za razvijanje CAD-tehnik je pomembno, da se razvijajo računalniške grafike in s tem tudi
računalniki. Za CAD-sisteme pa je pomembna sodobna interaktivna računalniška grafika. Hiter
razvoj računalniških sistemov in predvsem grafike, je v zadnjem času pripomogel k razvijanju
novega načina grafične interakcije, ki se imenuje navidezna resničnost (VR). Ta se počasi
uveljavlja tudi v CAD-sisteme in bo omogočala novo 3D-izkušnjo v modeliranju. [3]
Računalniško podprta proizvodnja CAM je definirana kot uporaba računalniških sistemov, ki
se uporabljajo za načrtovanje, upravljanje in kontroliranje operacij v proizvodnem sistemu z
neposredno ali posredno računalniško povezavo. Računalnik in proizvodni proces imata dve
možni povezavi, in sicer direktna, kjer ima računalnik, ki nadzira proces direktno povezavo s
proizvodnim procesom ter posredna, kjer je računalnik namenjen za podporo proizvodnih
operacij (povezava med računalnikom in proizvodnim procesom ni direktna). [3]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
21
Računalniški nadzor in krmiljenje delimo na nadzor aplikacij ter krmiljenje aplikacij.
Računalniško nadziranje zajema računalniško povezavo, ki je direktno povezana s procesom
proizvodnje, to pomeni, da podatke iz procesa spremlja in jih zbira. Krmiljenje procesa ostane
v rokah operaterja. Za računalniško krmiljeni proces ni pomembno samo spremljanje procesa,
temveč tudi v krmiljenje posnetih podatkov. [3]
CAM-sistem se uporablja za: Programiranje NC strojev, pripravo proizvodnje podprto z strani
računalnika, kontrolo kvalitete, prilagodljive obdelovalne sisteme, robote ter planiranje
proizvodnje. Z CAM sistemom se tudi spremlja naročila in planira sredstva, prav tako pa se
tudi spremlja proizvodnjo ipd. [3]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
22
6 IZDELAVA IZDELKA IN PRIMER PROGRAMA Z UPORABO PROGRAMSKEGA
JEZIKA PYTHON
6.1 Modeliranje CAD-izdelka
Preden želimo izdelati določen izdelek, moramo najprej proučiti, če je želeni izdelek sploh
možno izdelati na obdelovalnem stroju. To pomeni, da preverimo obdelovalni prostor stroja,
vpenjanje in tolerance. Te informacije potem kasneje uporabimo pri programiranju, nakar
lahko začnemo konstruirati želeni izdelek.
Za konstruiranje izdelka lahko uporabimo programe, kot so: SolidWorks, Catia, Pro/ENGINEER,
AutoCAD ter mnogi drugi.
V našem primeru začnemo modelirati tako, da v programu SolidWorks najprej izberemo
želeno ravnino modeliranja, v našem primeru je to ravnina Front oz. sprednji pogled, nato pa
z ukazom Sketch skiciramo želeno obliko modela, kot prikazuje slika 6.1.
Slika 6.1: Začetek konstruiranja izdelka
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
23
V nadaljevanju skiciran model spremenimo v 3D-model z ukazom Extruded. Na ta model nato
modeliramo še utor, katerega kasneje graviramo z obdelovalnim strojem. Utor, ki ga skiciramo
na model, spremenimo v 3D-obliko z ukazom Extrude Cut. 3D-model prikazuje slika 6.2.
Slika 6.2: 3D-model
Na model dodamo še en preprosti utor, s tem je naš 3D-model za preizkus končan. Na sliki 6.3
je prikazan naš končni izdelek.
Slika 6.3: 3D-model izdelka
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
24
6.2 Programiranje izdelka CAM v programu Edgecam
Za programiranje v programu Edgecam najprej potrebujemo CAD-model. Naš CAD-model
uvozimo, pri tem izberemo okolje za frezanje – Milling, nakar določimo še meje surovca
našega modela z ukazom Fit Stock ter ničelno točko (slika 6.4).
Slika 6.4: Uvožen CAD-model
Ko imamo nastavljeno ničelno točko, izberemo obdelovalni stroj z ukazom Create Sequence. V
našem primeru je obdelovalni stroj Lakos 150 G na seznamu obdelovalnih strojev, ker je za
njega narejen postprocesor (slika 6.5).
Slika 6.5: Izbira obdelovalnega stroja
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
25
Naslednja faza programiranja je določitev obdelave, in sicer z ukazom Find Features, ki nam
sam prepozna vse geometrijske značilnosti našega CAD-modela.
Po teh postopkih sledi izbira obdelovalnih orodij, v meniju izberemo Tool store. Za naš primer
uporabljamo samo eno orodje. To je stebelno rezkalo premera fi = 3 mm. Ob izbiri orodja še
nastavimo število vrtljajev, podajanje, mesto orodja v skladišču obdelovalnega stroja, ki pa ga
pri obdelovalnem stroju Lakos ni, zato lahko izberemo kar T01, po potrebi pa še druge
parametre.
Nato sledi izbira obdelovalnega postopka, ki pa jo izvedemo tako, da izberemo želeno
obdelavo, v našem primeru je to grobo rezkanje ali Rough Mill (slika 6.6). Ko izberemo
obdelavo, še določimo meje obdelave na obdelovancu in nastavimo prekrivanje rezkanja,
podajanje ter parametre hitrosti gibanja orodja. V našem primeru sta potrebni dve obdelavi,
za kateri izberemo isto obdelavo ter orodje. Pred tem bi lahko naredili še čelno poravnavo
obdelovanca, ki pa jo izberemo z ukazom Face Mill.
Slika 6.6: Izbira obdelave, določitev mej na obdelovancu in nastavitev parametrov
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
26
S tem je naš primer pripravljen na to, da generiramo NC-kodo, ki jo bomo pozneje uporabljali
na obdelovalnem stroju. Še pred generiranjem kode naredimo simulacijo, da vidimo potek
obdelave. Na sliki 6.7 vidimo odprto simulacijo našega izdelka. Z izbiro ukaza Simulate v novem
oknu odpremo simulacijo, na koncu pa za generiranje kode izberemo ukaz Generate NC, v
podoknu NC Code. NC-kodo še shranimo na želeno mesto na računalnik.
Slika 6.7: Simulacija izdelka
6.3 Izdelava izdelka na gravirnem stroju Lakos 150 G s programskim sistemom
EMC2
NC-program, katerega izpišemo iz programa Edgecam, uporabimo za testiranje obdelovalnega
stroja Lakos 150 G in programskega paketa EMC2. Prvi korak, ki ga naredimo, je, da vklopimo
vmesnik, ki krmili obdelovalni stroj, in računalnik, na katerem imamo naložen program EMC2
za krmiljenje obdelovalnega stroja. Na računalniku nato zaženemo program EMC2, ko se
program odpre, pritisnemo gumb E-Stop, nato pa Vklop. Če je z napravo vse v redu, lahko
začnemo uporabljati stroj.
NC-program naložimo z ukazom File, nato pa v podoknu poiščemo programsko datoteko, kjer
je le-ta shranjena. Preden zaženemo NC-kodo, izberemo ukaz Home All, s katerim pošljemo
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
27
vse osi našega obdelovalnega stroja v ničelno točko. Na sliki 6.8 lahko vidimo vse osi v ničelni
točki ter pripravljeno NC-kodo za obdelavo.
Slika 6.8: Pripravljena NC-koda v EMC2
Z gumbom Zaženi program začnemo z izdelavo izdelka. Hitrost obdelave lahko spreminjamo s
premikanjem gumba po skali pod ukazom Feed Override.
V našem NC-programu so naslednje G-kode: G0 – hitri gib; G1 – delovni gib (linearna
interpolacija); G2 – krožna interpolacija v smeri urinega kazalca; G3 – krožna interpolacija v
nasprotni smeri urinega kazalca; G21 – označuje milimetrske enote; G90 – pomeni izbiro
trenutnih koordinat; G40 – pomeni, da imamo izklopljeno korekcijo radija orodja; G49 –
označuje, da ni korekcije dolžine orodja; G80 – ta ukaz preprečuje, da bi se izvedel gib, če
vnesemo samo koordinate; G17 – označuje trenutno izbrano ravnino XY. Poleg G-kod imamo
še M-kode: M6 – menjava orodja; M3 – vklop vretena; M5 – izklop vretena ter M30 –
zaustavitev programa in reset.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
28
Orodje, ki ga uporablja Lakos150 pri tej obdelavi, je stebelno rezkalo s premerom fi = 3 mm.
Slika 6.9: Skica orodja
Pri obdelavi se uporablja linearna ter krožna interpolacija. Za utora, ki potekata po sredini
obdelovanca, se uporablja linearna interpolacija in delovni gib G1. Ko stroj zaključi z obdelavo
teh dveh utorov, začne z obdelavo še ostale neobdelane površine. Za to nadaljnjo obdelavo
uporablja krožno interpolacijo, ki pa je v programu označena s kodo G3. Na sliki 6.10 vidimo,
da je stroj že končal z obdelavo sredinskih utorov, kar je obarvano z rdečimi tirnicami, in že
obdeluje še preostalo površino; bele tirnice ponazarjajo še neobdelano površino.
Slika 6.10: Prikaz obdelave v EMC2
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
29
Po končani obdelavi stroj pošljemo z ukazom Home All v izhodiščno točko in nato zapremo
program.
6.4 Primer CNC-programa z uporabo programskega jezika Python
V Pythonu lahko napišemo NC-programe v različnih skriptah. Samo ročno pisanje programa je
zahtevno, ampak je lahko tudi krajše v primerjavi z NC-programom, napisanim v beležnici. Za
programiranje v Pythonu se uporabljajo različni ukazi ter pogoji, kot so print, if, else ipd., s
katerimi program določa, kaj se bo zgodilo.
Kot primer smo izbrali preprost program, napisan v Pythonu. Program predstavlja krivuljo, kot
jo lahko vidimo na sliki 6.11. V spodnjem delu slike je viden tudi potek programa, ki pa ga
program EMC2 spremeni. Tako je zapisan točno vsak gib, medtem ko je program, preden ga
naložimo v AXIS okolje, zelo kratek, saj obsega samo 29 vrstic. Kot lahko vidimo na sliki 6.11.
program EMC2 spremeni obseg programa na 3078 vrstic.
Slika 6.11: Program, napisan v Pythonu, in potek izdelave
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
30
Na sliki 6.12 je zapisan program naše krivulje v Pythonu.
Program se začne z 21. vrstico: print »S1M3«, sledi 22. vrstica: hitri gib po Z-osi, nato 23.
vrstica: hitri gib po X-, Y-oseh. V 24. vrstici pa program skoči nazaj na peto vrstico, ki je napisana
kot pogoj. V vrstici 3 je torej napisan stavek (def flowsnake (level, startX, startY, endX, endY)),
v vrstici 4 pa je napisan pogojni stavek (if level = 0). Če ta pogoj velja, se izvaja vrstica 5 (print
»g1 f10 x«, endX, »Y«, endY). Ta vrstica se ponavlja čez cel obdelovalni postopek. Na sliki 22
lahko vidimo, da je pred vsako vrstico zapisano »g1 f10«. Če pa vrstica 4 ne velja, pa je v vrstici
6 napisan pogoj, v kolikor vrstica 4 ne velja. V tem primeru veljajo vrstice od 7 do 19, ki so
zapisane kot funkcije. V programu so še vrstice 25, 26, 27, ki nam povedo vrednosti za 3. vrstico
flowsnake (level, start X, start Y, end X, end Y). Ko program zaključi s krivuljo, se začne vrstica
28, ki pomeni hitri gib, ter nato še vrstica 29 – M2, ki pomeni zaustavitev programa.
Slika 6.12: Primer preprostega CNC-programa Python [7]
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
31
Poznamo več različnih skript in generatorjev G-kode, ki so napisani v Pythonu. Ti nam na
primer iz DXF-datoteke izpišejo NC-program ipd.
Za primer uporabe izberemo skripto Text Engraving Software, ki jo zaženemo v programu
EMC2 in nastavimo želene parametre. Najprej se nam odpre podokno v programu EMC2, ki je
vidno na sliki 6.13. Ko izberemo želen graviran napis in nastavimo parametre za obdelavo,
izberemo Write to AXIS and Quit. V nadaljevanju se nam v programu EMC2 izpiše G-koda,
program pa je tako pripravljen za izdelavo.
Slika 6.13: Skripta za graviranje napisa
Za primer uporabe preizkusimo tudi skripto Dxf2gcode, ki pa je na voljo tudi kot skripta, ki
deluje tudi na operacijskih sistemih Windows. Za generiranje G-kode v tej skripti potrebujemo
najprej shranjen model proizvoda kot dxf.-datoteko. Zaženemo skripto ter poiščemo naš dxf.-
model ter ga zaženemo. Slika 6.14 prikazuje izbiro dxf.-datoteke.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
32
Slika 6.14: Izbira dxf.-modela
V programu se nam odpre dxf.-model, na levi strani pa nam pokaže posamezne ploskve za
obdelavo. S klikom na Export ter potem Export Shapes izpišemo G-kodo. Še pred tem v
nastavitvah nastavimo parametre za stroj, na katerem bo G-koda uporabljena, kar prikazuje
slika 6.15, in tudi podatke o orodju ter varnostnih razdaljah za hitre gibe.
Slika 6.15: Nastavitve parametrov za obdelavo
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
33
Program se nam izpiše v navaden dokument, ki ga lahko za vpogled odpremo z Beležnico,
Wordom ter podobnimi urejevalniki besedil. Na sliki 6.16 vidimo en del izpisane G-kode.
Slika 6.16: Izsek izpisanega programa
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
34
7 SKLEP
V diplomskem delu smo najprej predstavili odprtokodne sisteme za obdelovalne stroje. Opisali
smo odprtokodno programsko opremo, nato pa predstavili še programski jezik Python in
njegovo programiranje. Ugotovili smo, da odprtokodna programska oprema vsebuje dovolj
programov, da lahko tako kot z zaprtokodnimi programi vodimo obdelovalni stroj.
V osrednjem delu teoretičnega dela smo pozornost namenili raziskovanju proste programske
opreme EMC2. Predstavili smo delovanje in razvoj le-te. Programska oprema nam omogoča
vodenje CNC-obdelovalnega stroja, ki ima do 9 osi. Prednost takega programa so predvsem
nižji stroški nabave, saj je odprtokodni program in ga lahko dobimo brezplačno. Kar se tiče
delovanja, pa moramo na računalniku imeti naložen operacijski sistem Linux, s katerim mu
zagotovimo natančno delovanje.
Predstavili smo tudi obdelovalni stroj Lakos 150 G. Gre za 3-osni obdelovalni stroj za
graviranje, katerega upravljamo s programsko opremo EMC2. Poleg predstavitve smo tudi
opisali delovanje in programiranje tega obdelovalnega stroja, prav tako pa tudi CAD/CAM-
računalniško programiranje. CAD/CAM-programi so potrebni za izdelavo programa, ki ga
potrebujemo za krmiljenje obdelovalnega stroja.
V praktičnem delu smo se osredotočili na delovanje programa EMC2, zato smo pripravili NC-
program in ga testirali na obdelovalnem stroju Lakos 150 G, s programsko opremo EMC2.
Preizkusili pa smo tudi NC-program, napisan v programskem jeziku Python, kjer je predvsem
zanimiv obseg programa, ki je napisan v Pythonu, in programa, ki bi bil napisan v urejevalniku
besedil. Tudi Pythonove skripte poenostavijo delo s programskim paketom EMC2.
Obe hipotezi, ki smo si ju zastavili pred začetkom dela, smo potrdili. Kot smo ugotovili, osebni
računalnik in primerno programsko opremo lahko vsekakor uporabimo za vodenje CNC-
rezkalnega stroja. Tudi to, da so odprtokodni sistemi primerni in dovolj zmogljivi za uporabo
na realnih CNC-obdelovalnih strojih, drži. Z odprtokodnimi programi, kot je EMC2, ter
operacijskim sistemom Linux, ki nam omogoča, da program EMC2 deluje v realnem okolju,
krmilimo obdelovalni stroj, kot če bi imeli zaprtokodni program, pri katerem pa se v primerjavi
z odprtokodnimi programi poznajo stroški nabave. Omeniti velja še programski jezik Python,
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
35
ki je prav tako odprte kode in omogoča programiranje G-kode. Python omogoča tudi
nadgrajevanje programskega paketa EMC2, in sicer z različnimi skriptami.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
36
8 LITERATURA
[1] Balič Jože. CAD/CAM postopki: univerzitetni učbenik. Maribor: Fakulteta za strojništvo,
2002.
[2] Balič Jože. Računalniška integracija proizvodnje: univerzitetni učbenik. Maribor:
Fakulteta za strojništvo, 2001.
[3] Balič Jože. Računalniško integrirana proizvodnja: univerzitetni učbenik. Maribor:
Fakulteta za strojništvo, 1996.
[4] Center odprte kode Slovenije. Spletna stran [svetovni splet]. Dostopno na:
http://www.coks.si/index.php5/Vse_o_Odprti_kodi [19. 5. 2017]
[5] Demšar Janez. Python za programerje, 2. izdaja. Ljubljana: Fakulteta za računalništvo in
informatiko, 2012.
[6] FreeCodeCamp Spletna stran [svetovni splet]. Dostopno na:
https://medium.freecodecamp.org/how-to-build-a-3-d-printer-using-cnc-controller-in-
python-bd3cd5e28516 [27. 12. 2017].
[7] GitHub Spletna stran [svetovni splet]. Dostopno na:
https://github.com/cnc-club/linuxcnc/blob/master/nc_files/flowsnake.py [27. 12. 2017].
[8] Koložvari Andrej. Linux danes in jutri. Šempeter pri Gorici: Flamingo Založba Nova
Gorica, februar 2007.
[9] LinuxCNC. Spletna stran [svetovni splet]. Dostopno na:
http://linuxcnc.org/docs/2.1/EMC2_User_Manual.pdf [25. 5. 2017].
[10] Raspberry pi Spletna stran [svetovni splet]. Dostopno na:
https://www.raspberrypi.org/documentation/usage/python/ [4. 6. 2017].
[11] Saundby.com. Spletna stran [svetovni splet]. Dostopno na:
http://saundby.com/cnc/workflow/EMC2.shtml [22. 5. 2017].
[12] Simple LinuxCNC G-Code Generators Spletna stran [svetovni splet]. Dostopno na:
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Simple_LinuxCNC_G-Code_Generators [27. 12.
2017].
[13] SpotiDoc Spletna stran [svetovni splet]. Dostopno na:
http://spotidoc.com/doc/2714388/slovenian---lakos---univerza-v-ljubljani [25. 5. 2017].
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
37
[14] Wikipedia. Spletna stran [svetovni splet]. Dostopno na:
https://sl.wikipedia.org/wiki/Odprtokodna_programska_oprema [19. 5. 2017].
[15] Wikipedia. Spletna stran [svetovni splet]. Dostopno na:
https://en.wikipedia.org/wiki/LinuxCNC [20. 5. 2017].