uporaba odprtokodnega sistema emc2 za … · linux in programska oprema krmilnega sistema. ena...

48
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

Upload: nguyendieu

Post on 09-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 2: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 3: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih
Page 4: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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: ________________________

Page 5: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 6: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 7: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 8: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 9: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 10: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 11: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 12: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 13: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 14: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 15: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 16: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 17: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 18: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 19: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 20: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 21: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 22: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 23: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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,

Page 24: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 25: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 26: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 27: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 28: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 29: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 30: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 31: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 32: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 33: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 34: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 35: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 36: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 37: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 38: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 39: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 40: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 41: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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]

Page 42: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 43: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 44: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 45: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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,

Page 46: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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.

Page 47: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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

Page 48: UPORABA ODPRTOKODNEGA SISTEMA EMC2 ZA … · Linux in programska oprema krmilnega sistema. Ena izmed takih programskih oprem je EMC2 , ki je odprtokodna, namenjena krmiljenju obdelovalnih

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