Implementacija programske kode za vodenje tehnoloških operacij frezanja z robotom Acma XR 701

Similar documents
Atim - izvlečni mehanizmi

Hydrostatic transmission design Tandem closed-loop circuit applied on a forestry cable carrier

Uporabniški program za generator identifikatorjev UFI Priročnik za uporabnike. Julij 2018

NAVODILA ZA UPORABO: Namestitev aplikacije Renault Media Nav Toolbox

IZGRADNJA GRAFIČNEGA VMESNIKA ZA KRMILNIK LINEARNEGA MOTORJA

IZDELAVA DOKUMENTACIJE STROJA ZA GLOBOKO VRTANJE

Naprava za pranje ulitkov

Pošta Slovenije d.o.o. Slomškov trg MARIBOR e pošta: espremnica Navodilo za namestitev aplikacije»espremnica«

Diagnostika avtomobila z mikrokrmilnikom Arduino

Razvrščanje proizvodnih opravil z orodji za vodenje projektov

Mobilna aplikacija za inventuro osnovnih sredstev

KRMILJENJE TRAČNE ŽAGE S PROGRAMIRLJIVIM LOGIČNIM KRMILNIKOM

Študija varnosti OBD Bluetooth adapterjev

Sodoben razvoj prototipov uporabniških vmesnikov z orodjem Microsoft Expression Blend 4

Prikaz podatkov o delovanju avtomobila na mobilni napravi z uporabo OBDII

RFID implementacija sledenja v preskrbovalni verigi

Razvoj poslovnih aplikacij po metodi Scrum

Mentor: doc. dr. Janez Demšar

NAČRTOVANJE TESTIRANJA PRI RAZVOJU IS V MANJŠIH RAZVOJNIH SKUPINAH

Nadzor in avtomatizacija funkcij v sobi

Energy usage in mast system of electrohydraulic forklift

MARTIN VERSTOVŠEK UPORABA ORODIJ ZA VODENJE PROJEKTOV IT V MAJHNI RAZVOJNI SKUPINI DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU

Preprost prevajalnik besedil za platformo android

Nestabilno delovanje hidroagregatov in preprečevanje prekomernega nihanja delovne moči agregata

VSD2 VARIABILNI VRTINČNI DIFUZOR VARIABLE SWIRL DIFFUSER. Kot lopatic ( ) / Angle of the blades ( ) 90 odpiranje / opening 85

UVAJANJE AGILNE METODE SCRUM V RAZVOJ SPLETNEGA PORTALA ZA ZDRAVO PREHRANO

BREZŽIČNO KOMUNIKACIJSKO RAZVOJNO OKOLJE ZA ROBOTA ROBOSAPIEN

Opis in uporaba strežnika Microsoft Team Foundation Server v projektnem delu

INTEGRACIJA INTRANETOV PODJETJA S POUDARKOM NA UPRABNIŠKI IZKUŠNJI

RAVNATELJEVANJE PROJEKTOV

Aljoša Skočir PROGRAMSKI VMESNIK ZA PRIKLOP NAPRAVE ZA ZAJEM PODATKOV NA VODILO USB

RAZPOREJANJE PROIZVODNJE Z METODO ISKANJA S TABUJI

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

KONTROLNI SISTEM ZA KRMILJENJE MOTORJEV IN KOREKCIJSKIH TULJAV

IZVEDBA POTOVALNEGA RAČUNALNIKA ZA OSEBNO VOZILO S POMOČJO PLATFORME RASPBERRY PI

Zasnova, izdelava in programiranje signirnega stroja

PLANIRANJE KADROV V PODJETJU UNIOR d.d.

Vodnik za uporabo matrike Učinek+

SAMODEJNI SISTEM ZA KRMILJENJE ZALIVALNO-NAMAKALNIH SISTEMOV

NAVODILA ZA UPORABO H500 UVOD UREJANJE NALEPKE TISKANJE NALEPK UPORABA POMNILNIKA ZA DATOTEKE UPORABA PROGRAMSKE OPREME P-TOUCH

RAZVOJ APLIKACIJE ZA ZAJEM IN SPREMLJANJE PROIZVODNIH PODATKOV

Obvladovanje časa s pomočjo sodobne informacijske tehnologije

BOGDAN DUGONIK FERI - MEDIJSKE KOMUNIKACIJE GRADIVO ZA VAJE. Navodilo za programsko orodje. Premiere 1.5 PRO

Ustreznost odprtokodnih sistemov za upravljanje vsebin za načrtovanje in izvedbo kompleksnih spletnih mest: primer TYPO3

LAHKE TOVORNE PRIKOLICE BREZ NALETNE NAPRAVE DO 750 KG

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO ANALIZA VZROKOV IN NAČINOV ODPOVEDI PROGRAMSKE REŠITVE E-TRANS

-

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO OBVLADOVANJE VIROV V MULTIPROJEKTNEM OKOLJU S PROGRAMSKIM ORODJEM MS PROJECT SERVER

POVEČEVANJE UČINKOVITOSTI PROIZVODNJE V PODJETJU TIPRO KEYBOARDS S POUDARKOM NA UVEDBI CELIČNE PROIZVODNJE

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

RAZVOJ IN IZDELAVA MOBILNE ROBOTIZIRANE PLATFORME ZA OBDELOVALNE AGREGATE

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE. Žiga Cmerešek. Agilne metodologije razvoja programske opreme s poudarkom na metodologiji Scrum

EVROPSKO RIBIŠTVO V ŠTEVILKAH

MX2 Ustvarjen za pogon strojev Model: 3G3MX2 200V trifazni vhod 0.1 do 15 kw. 400V trifazni vhod 0.1 do 15 kw UPORABNIŠKA NAVODILA

Avtomatizirani stroj za izdelavo cigaret

UNIVERZA V LJUBLJANI FAKULTETA ZA ELEKTROTEHNIKO MAGISTRSKO DELO KOMUNIKACIJSKI PROTOKOLI V ELEKTRONSKEM ŠTEVCU ELEKTRIČNE ENERGIJE

UČINKOVITO VODENJE INFORMACIJSKIH PROJEKTOV V DRŽAVNEM ORGANU

THE OPTIMIZATION OF A RACE CAR INTAKE SYSTEM OPTIMIZACIJA SESALNEGA SISTEMA DIRKALNIKA

OCENJEVANJE DELOVNE USPEŠNOSTI ZAPOSLENIH - primer Pekarne Pečjak d.o.o.

KONCIPIRANJE PROJEKTA IZGRADNJE PROIZVODNEGA OBJEKTA V FARMACEVTSKI INDUSTRIJI

SISTEM RAVNANJA PROJEKTOV V PODJETJU PRIMER PODJETJA LEK

Stiskanje podatkov na grafični procesni enoti

Optimizacija procesa izdelave nalepk

10,92 cm / 4,3 navigacijski sistem

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

UNIVERZA V NOVI GORICI POSLOVNO-TEHNIŠKA FAKULTETA MAGISTRSKA NALOGA RAZVOJ IN IMPLEMENTACIJA SISTEMA ZA UPRAVLJANJE SPLETNE VSEBINE.

Trendi v avtomatizaciji

VPLIV STANDARDOV NA KAKOVOST PROIZVODA IN VPLIV KAKOVOSTI NA PRODAJO IZDELKOV

11/14. test NOKIINIH ZEMLJEVIDOV na Androidu ANDROID 5 nasveti za MAC in LINUX sam svoj MOJSTER. TEST vrhunskih telefonov od Appla do»kitajcev«12

Patenti programske opreme priložnost ali nevarnost?

IZBOLJŠAVA NOTRANJE LOGISTIKE IN SPOSOBNOSTI SLEDENJA V PODJETJU GIMPLAST D. O. O.

Tomaž Avberšek NADZOROVANJE TELESKOPA S POMOČJO PLATFORME RASPBERRY PI. Diplomsko delo

Razvoj simulatorja vesoljskega plovila za projekt Evropske vesoljske agencije ESMO

MAKING MODERN LIVING POSSIBLE. Navodila za uporabo. VLT AutomationDrive FC 300

SIMOTICS S-1FT7 Servomotors. The Compact Servomotors for High-Performance Motion Control Applications. Motors. Edition April 2017.

Programi za logistike

Gonilnik za sistem hišne avtomatizacije Adhoco

Projekt Fibonacci kot podpora uvajanju naravoslovja v vrtcih

Avtomatizacija stroja za vezenje

OPTIMIZACIJA ZUNANJEGA SKLADIŠČA V PODJETJU GORENJE KERAMIKA D.O.O. Z UVEDBO RFID TEHNOLOGIJE

Pozicija zvarov na digitalnih slikovnih posnetkih

ZBIRANJE IN PROCESIRANJE PODATKOV PRIDOBLJENIH IZ OTLM NAPRAV, KI SO NAMEŠČENE NA PRENOSNIH VODNIKIH

RAZVOJ ROČAJA HLADILNIKA GORENJE PO MERI KUPCA

Tehnološka platforma za fotovoltaiko

PROCES ZAPOSLOVANJA V MERKUR, D. D.

Evalvacijski model uvedbe nove storitve za mobilne operaterje

UPORABA CELOVITE REŠITVE ORACLE EBS V NABAVNEM PROCESU S PROTOTIPNO REŠITVIJO

Projektna pisarna v akademskem okolju

Magistrsko delo Povezovanje CMMI in COBIT metode v metodo izdelave ali naročanja programske opreme

Ocenjevanje stroškov gradbenih del v zgodnjih fazah gradbenega projekta

Digitalno tedensko časovno stikalo Hama Premium

POROČILO O EU RAZPISIH IN PRIJAVAH EU PROJEKTOV V LETU 2010 TER TEKOČEM STANJU EU PROJEKTOV NA UL

Prototipni razvoj (Prototyping)

PRENOS PODATKOV V SISTEMU ZA POLNJENJE ELEKTRIČNIH VOZIL

HITRA IZDELAVA PROTOTIPOV

Študija primera kot vrsta kvalitativne raziskave

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA SPECIALISTIČNO DELO SEBASTJAN ZUPAN

Analiza managementa gradbenih projektov v Trimo d.d.

TRŽENJE NA PODLAGI BAZE PODATKOV NA PRIMERU CISEFA

Transcription:

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Nejc Vozelj Implementacija programske kode za vodenje tehnoloških operacij frezanja z robotom Acma XR 701 Maribor, oktober 2015

Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija Implementacija programske kode za vodenje tehnoloških operacij frezanja z robotom Acma XR 701 Študent: Nejc Vozelj Študijski program: univerzitetni študijski program Mehatronika Smer: / Mentor FS: izr. prof. dr. Karl Gotlih Mentor FERI: doc. dr. Miran Rodič Lektorica: mag. Nataša Koražija, prof. slov. Maribor, oktober 2015

I

ZAHVALA Zahvaljujem se: mentorjema izr. prof. dr. Karlu Gotlihu in doc. dr. Miranu Rodiču za vso strokovno pomoč in nasvete pri izdelavi diplomskega dela; asistentu Timiju Karnerju za vse ure, ki jih je z mano preživel v Laboratoriju za robotizacijo; sošolcu Filipu za vso pomoč v času študija; ekipi Uni Maribor Grand Prix Engineering za vso pridobljeno znanje; stricu Boštjanu in podjetju Dewesoft za vso pomoč pri mojih študijskih in obštudijskih dejavnostih; cimrom iz Študentskega doma 12 na Lentu za vse nepozabne prigode. Posebna zahvala velja tudi moji družini, ki mi je omogočila študij in me ves čas študija tudi finančno podpirala. II

Implementacija programske kode za vodenje tehnoloških operacij frezanja z robotom Acma XR 701 Ključne besede: Acma, Siemens, obračalna miza, programska oprema. UDK: 621.941:007.52(043.2) Povzetek Namen robotizirane proizvodne celice Acma XR 701 je izdelava izdelkov velikih dimenzij iz materiala SikaBlock M80, kar je namenjeno modelnim mizarjem, kiparjem, restavratorjem ali razvoju novih oblik izdelkov. Da pa je to izvedljivo, je treba robotu dodati še eno rotacijsko os, gnano s servomotorjem Siemens na obračalni mizi. Frezanje 3Doblik velikih dimenzij je povezano z množico podatkov, ki jih krmilnik robota ne more preprosto zajeti, zato je bil izdelan vmesnik, ki ta problem rešuje. Izvesti je treba vzpostavitev komunikacije med krmilniki (robotskim in Siemensovim sistemom obračalne mize), ki v osnovi zaradi skoraj 20-letne razlike v razvoju nista kompatibilna. Poleg fizične povezave bo treba izdelati tudi programsko opremo, kar bo predmet diplomskega dela. III

Software implementation for milling technological operations with robot Acma XR 701 Key words: Acma, Siemens, rotation table, software. UDK: 621.941:007.52(043.2) Abstract The purpose of robotics manufacturing cell is to manufacture products of bigger dimensions from SikaBlock M80 material. The cell is intended to be used by model carpenters, sculptors, restorers and for development of new products. For this to be doable, it is necessary to add an additional rotational axis run by a Siemens servomotor on rotation table to robot Acma XR 701. Milling of 3D forms of greater dimensions is connected with a huge stream of data, which are uneasy to be processed for robot controller, therefore an interface has been made, which solves that problem. It is necessary to establish communication between controllers (robotic and that of Siemens rotation table), which are not compatible because of a 20 year gap of development. Beside the physical connection, a software has also been made, which is the subject of this diploma work. IV

KAZALO VSEBINE 1 UVOD... 1 1.1 Opis splošnega področja diplomskega dela... 1 1.2 Opredelitev diplomskega dela... 2 1.3 Struktura diplomskega dela... 2 2 PREDSTAVITEV PROGAMOV ORPHEE 6.0, STEP 7 IN STARTER... 3 2.1 Orphee... 3 2.2 STEP 7... 6 2.3 STARTER... 8 2.3.1 Ustvarjanje projekta... 8 2.3.2 Konfiguracija pogona... 11 2.3.3 Zagon servomotorja... 14 3 PREDSTAVITEV KRMILNIKOV SIEMENS IN APRIL... 19 3.1 Siemens S7 315 2PN/DP... 19 3.2 Siemens Sinamics S120... 20 3.3 April 3000... 21 4 PRETVORBA G-KODE... 22 4.1 Programski jezik C#... 22 4.2 Opis programa... 22 4.3 Uporabniški vmesnik in pretvorjena G-koda... 28 5 PROGRAMSKI KORAKI ZA VZPOSTAVITEV LOGIČNE POVEZAVE... 31 5.1 Nastavitve programa Starter... 31 5.2 Nastavitve programa Orphee... 35 5.3 Fizična povezava... 40 6 SKLEP... 42 7 LITERATURA... 43 V

KAZALO SLIK Slika 2.10: Uvodno okno programa ORPHEE... 3 Slika 2.11: Consultation Application... 4 Slika 2.12: Izsek programske kode... 4 Slika 2.13: Declarations... 5 Slika 2.14: Vhodne in izhodne karte... 5 Slika 2.2: STEP 7... 7 Slika 2.30: Okno čarovnika... 8 Slika 2.31: Okno "Create new project"... 9 Slika 2.32: Okno za dodatne nastavitve... 9 Slika 2.33: Okno za izbiro elektromotorja... 10 Slika 2.34: Okno z izpisom izbranih nastavitev... 10 Slika 2.35: Project navigator... 11 Slika 2.36: Izbira krmilnika... 11 Slika 2.37: Zavihek S120_CU310_PN... 12 Slika 2.38: Automatic Configuration... 12 Slika 2.39: Automatic Commisioning... 13 Slika 2.40: Expert list... 13 Slika 2.41: Infeed operation... 14 Slika 2.42: ON/OFF parameter... 15 Slika 2.43: Nastavitev p840... 15 Slika 2.44: Commissioning... 16 Slika 2.45: Control panel... 16 Slika 2.46: Assume Control Priority... 16 Slika 2.47: Control panel motor enable signal... 17 Slika 2.48: Control panel ob zagonu motorja... 17 Slika 3.1: S7 315 2PN/DP... 19 Slika 3.2: CU310 PN... 20 Slika 3.3: Krmilnik April 3000... 21 Slika 4.20: Začetek programa... 23 Slika 4.21: Izbira datoteke... 23 Slika 4.22: Začetek pretvorbe... 24 Slika 4.23: ArrayList, inicializacija spremenljivk, dodajanje točke v seznam... 25 Slika 4.24: Pretvorba formata ToString, dodajanje v seznam... 25 VI

Slika 4.25: Funkcija String... 26 Slika 4.26: Pridobivanje poti za izhodne datoteke... 27 Slika 4.27: Zadnji koraki pretvorbe... 28 Slika 4.28: Uporabniški vmesnik... 28 Slika 4.29: Prvotna G-koda... 29 Slika 4.30: Pretvorjena G-koda... 30 Slika 5.10: Set reference point... 32 Slika 5.11: Program traversing blocks... 32 Slika 5.12: Traversing blocks določanje pinov... 33 Slika 5.13: Control Unit... 34 Slika 5.14: Isolated digital inputs... 34 Slika 5.15: Control panel... 35 Slika 5.20: Vhod POZ_FIN... 35 Slika 5.21: Izhodi... 36 Slika 5.22: Dogodki in zahteve... 37 Slika 5.23: Začetek programa... 38 Slika 5.24: Zadnji del programa... 39 Slika 5.30: Shema fizične povezave... 40 Slika 5.31: Fizična povezava na krmilniku Sinamics... 40 Slika 5.32: Fizična povezava na krmilniku April... 41 VII

1 UVOD 1.1 Opis splošnega področja diplomskega dela Robotika je interdisciplinarna tehnična veda, ki združuje znanja strojništva, elektrotehnike in računalništva, ukvarja pa se tako z razvojem, modeliranjem, izdelavo in praktičnimi aplikacijami robotov kot tudi z računalniškimi sistemi za njihovo krmiljenje in regulacijo, senzorji in procesiranjem podatkov [1]. V zadnjih desetletjih se je tako razvila in razširila, da si brez nje praktično ne moremo več predstavljati masovne proizvodnje, čedalje bolj pa se uveljavlja tudi v maloserijski proizvodnji. Roboti pospešeno prevzemajo nevarne naloge, pa tudi monotone, stalno ponavljajoče se naloge, ki zahtevajo zelo visoko stopnjo natančnosti in produktivnosti. Robotika pa ni prisotna le v industriji, saj se vse bolj uveljavlja tudi na drugih področjih. V medicini je tako na primer zelo znan robot da Vinci, v vojaških aplikacijah so to roboti za deaktivacijo eksplozivnih sredstev in droni, vse bolj zanimiva pa postaja tudi humanoidna robotika, kjer je zelo znan robot Asimo, pa tudi japonski strokovnjak Hiroshi Ishiguro s svojim robotskim dvojnikom. Posebej nepogrešljivi so v avtomobilski industriji, kjer je že več kot petdeset odstotkov proizvodnje robotizirane, saj je to ena izmed tistih vej industrije, kjer je visoka stopnja natančnosti in produktivnosti ob nizkih stroških obratovanja še kako pomembna. Tu se uporabljajo predvsem za varjenje, barvanje karoserije ter transport posameznih delov. Robotika pa ni sprožila le tehnološke, temveč tudi družbeno revolucijo. Pod vprašaj je tako postavljen položaj nizkokvalificiranih delavcev, ki jih industrijski roboti pospešeno nadomeščajo, saj so cenejši, produktivnejši ter natančnejši. Odgovora na te dileme ni enostavno najti, pa vendar je treba upoštevati, da robotika ob tem odpira delovna mesta za višje kvalificiran kader, ki mora tovrstne robote razvijati, proizvajati in vzdrževati, v zakup pa je treba vzeti tudi sodobne demografske trende, kot je na primer zelo hitro staranje prebivalstva, ki kažejo, da bo v zahodnem svetu že čez deset let začelo primanjkovati delovne sile. Robotika se bo ob tovrstnem izpadu izkazala za nepogrešljivo, saj nam bo omogočala, da bomo proizvodnjo ter s tem tudi standard življenja obdržali na isti ali celo še višji ravni. Sistemi za avtomatizacijo oz. robotizacijo so zelo kompleksni in načeloma zahtevajo dve ali več naprav, ki medsebojno komunicirajo in v nekaterih primerih lahko delujejo celo 1

sinhrono, s čimer hitro in učinkovito izvajajo predpisane naloge. Pri tem je treba paziti, da so naprave medsebojno kompatibilne, saj je edino tako lahko komunikacija med njimi uspešna in izvedljiva. 1.2 Opredelitev diplomskega dela Industrijskega robota Acma XR 701 je mariborska Fakulteta za strojništvo pridobila kot donacijo novomeškega podjetja Revoz. Robota je razvilo in izdelalo podjetje Renault. V osnovi gre za varilnega robota, ki so ga v Revozu uporabljali za varjenje karoserije. V Laboratoriju za robotizacijo ga želimo predelati tako, da bo primeren tudi za različne aplikacije frezanja kompleksnejših oblik. Ker želimo izdelke frezati iz vseh strani, je zato treba robotu dodati sedmo prostostno stopnjo v obliki Siemensove obračalne mize. Zaradi tega je treba povezati krmilnik robota April 3000 s krmilnikom obračalne mize Siemens S120. Fizična povezava je bila narejena že lansko leto, in sicer jo je izvedel Tadej Jurgec [2]. Izdelati je bilo treba še programsko opremo v taki obliki, da je primerna za direktne aplikacije tehnologij frezanja, kar je predmet tega diplomskega dela. Za vodenje obračalne mize smo uporabili program Starter, za krmilnik robota April 3000 pa programsko orodje Orphee. Za shranjevanje kotov zasuka je pri tem uporabljen dodaten krmilnik S7-315-2 DP/PN, ki nam omogoča hranjenje podatkov o kotih zasuka, komunikacija pa je izvedena preko PROFINET-a. Pri tem krmilniku je za povezavo uporabljen program STEP 7, za vizualizacijo pa WinCC flexible. Izhajali smo iz osnovne različice programske opreme za konverzijo G-kode, ki jo je napisal dr. Simon Brezovnik v programskem jeziku C# [3], kar pa je bilo nadgrajeno s programiranjem v Starterju in Orpheeju. 1.3 Struktura diplomskega dela je razdeljeno na štiri različna poglavja. V prvem poglavju so predstavljena različna programska orodja, ki so pomembna za delovanje celotnega sistema. Sledi predstavitev uporabljenih krmilnikov. Po opisani programski in strojni opremi je predstavljen program za pretvorbo G-kode, ki ga je napisal dr. Simon Brezovnik v programskem jeziku C# [3]. V zadnjem delu je opisan še programski del vzpostavljanja povezave med krmilnikom robota in Siemensovo servo obračalno mizo. 2

2 PREDSTAVITEV PROGAMOV ORPHEE 6.0, STEP 7 IN STARTER 2.1 Orphee Program Orphee je namenjen programiranju komunikacije robota s periferijo. Na namizju se nahajata dve ikoni tega programa, in sicer "ORPHEE UREJANJE", ki je namenjena programiranju, ter "ORPHEE-ZAGON", ki je namenjena zagonu sistema. Ko odpremo ikono "ORPHEE UREJANJE", se nam odpre okno, kot je prikazano na sliki 2.10, kjer kliknemo na "APPLICATION(S)". Če bi želeli ustvariti nov projekt, bi šli pod "Edition > Creer", kjer bi si izbrali nov projekt ter označili, da delamo na krmilniku April 3000, vendar pa bomo v našem primeru izbrali že obstoječ projekt "MB_OK". Odpre se nam okno z zahtevo po geslu. Geslo se glasi "3". Slika 2.10: Uvodno okno programa ORPHEE Odpre se nam okno "Consultation Application", kot je prikazano na sliki 2.11. V tem oknu imamo na razpolago konfiguracijo vhodov in izhodov, strukture in deklaracijo spremenljivk. Nato kliknemo na okno "CC", kjer izberemo program "B0_ROB". 3

Slika 2.11: Consultation Application Slika 2.12 prikazuje izsek programske kode iz programa "B0_ROB". Kot je razvidno iz slike, se v Orpheeju programira v lestvičnem diagramu, ki se pretvori v strojno kodo, preden ga program naloži na krmilnik robota. Slika 2.12: Izsek programske kode 4

Program "B0_ROB" nato zapremo in se vrnemo na prejšnje okno. Tu kliknemo na "Declarations", kjer imamo definirane spremenljivke, ki jih lahko poljubno urejamo in spreminjamo. Tako lahko definiramo vhode, izhode, dogodke in zahteve, kar si bomo podrobneje pogledali v poglavju 5.2. Slika 2.13: Declarations V naslednjem koraku zapremo okno "Declarations", s čimer se vrnemo nazaj na "Consultation Application", kjer kliknemo na "Configuration". Tu si lahko nastavljamo vhodne in izhodne karte, ki so priključene na krmilnik robota. Več o samem programiranju si lahko preberete v priročniku z naslovom Orphee, ki ga je izdalo podjetje Revoz [4]. Slika 2.14: Vhodne in izhodne karte 5

2.2 STEP 7 STEP 7 je standardni programski paket podjetja Siemens, ki se uporablja za konfiguracijo in programiranje SIMATIC-ovih industrijskih krmilnikov. V našem primeru je uporabljen za programiranje krmilnika S7 315. Sam program se lahko uporablja za načrtovanje in konfiguriranje krmilne zanke, poleg tega pa lahko s pomočjo programa naše projekte tudi arhiviramo oz. dokumentiramo. Razvoj projekta načeloma poteka po naslednjih fazah: Namestitev programa STEP 7 in verifikacija vseh potrebnih licenčnih ključev. Izbira optimalnega krmilnika, ki ima vse funkcije, ki jih potrebujete za izvedbo projekta. Načrtovanje programske strukture priporočena je uporaba že obstoječih programskih blokov, ki se nahajajo v STEP 7. Ustvarjanje projekta projekt je kot neke vrste mapa, kamor se bodo shranjevali vsi podatki v zvezi z vašim projektom v neki hierarhični strukturi. Izbira industrijskega krmilnika krmilnik je treba specificirati tudi v programu, tako da sam program lahko pripravi vse ustrezne nastavitve. Konfiguracija strojne opreme (Hardware configuration) tu je predvsem treba določiti, katere module potrebujemo poleg samega industrijskega krmilnika ter s katerimi komunikacijskimi protokoli bomo dostopali do njih. Pisanje programske kode z uporabo obstoječih programskih jezikov, ki so na voljo znotraj programa STEP 7, ustvarimo programsko kodo, ki je povezana z izbranim modulom. Testiranje programa za testiranje ima STEP 7 na razpolago svoja orodja. Dokumentiranje projekta ko s projektom končamo, je edino smiselno, da ob tem ustvarimo tudi dokumentacijo, ki bo omogočila natančen in pregleden vpogled tudi prihodnjim uporabnikom ter razvojnim inženirjem. Za dokumentiranje projektov je Siemens pripravil program DOCPRO. 6

Slika 2.2: STEP 7 Kot je že bilo omenjeno zgoraj, STEP 7 omogoča programiranje v več različnih programskih jezikih: Funkcijski blokovni diagram (Function Block Diagram) gre za grafični način programiranja, kjer programiramo po principih Boolove algebre. Tekstovni način programiranja (Statement List) programski jezik do neke mere spominja na strojni jezik, čeprav vsebuje tudi elemente višjih programskih jezikov. Lestvični diagram (Ladder Logic) gre za grafični programski jezik. Njegova sintaksa spominja na relejske sheme. Programiranje v programu STEP 7 sicer ni predmet tega diplomskega dela, pa vendar je obvladovanje tega programa nujno potrebno za celovito razumevanje obravnavanega robotskega sistema. Za boljše razumevanje si je zato treba prebrati tudi diplomsko delo Roberta Ojsterška [5], ki to področje podrobneje obravnava. 7

2.3 STARTER STARTER je program, ki ga je podjetje Siemens razvilo za nastavljanje svojih servomotorjev. V preteklih letih se je pogosto pojavljal problem, da ni bilo čisto jasno kako samostojno ustvariti projekt, ki bi omogočal zagon servoobračalne mize, saj smo večinoma nadgrajevali že obstoječe projekte, ki so zagon mize že omogočali. Pa vendar je za boljše razumevanje sistema treba obvladati tudi to. Poglavje 2.3 bo zato posvečeno prav temu. 2.3.1 Ustvarjanje projekta Najprej je treba pravilno nastaviti IP-naslov ter še nekaj ostalih parametrov. Tadej Jurgec je v svoji diplomski nalogi [2] to natančno opisal, zato tega tu ne bomo ponavljali, saj se bomo osredotočili na posamezne korake znotraj programa STARTER. V STARTER-ju je treba najprej klikniti na "Project > New with Wizard". Tako se nam odpre okno čarovnika za kreiranje novega projekta. Slika 2.30: Okno čarovnika Nato kliknemo na "Find drive units online". Odpre se nam novo okno, kjer si izberemo ime za svoj projekt. 8

Slika 2.31: Okno "Create new project" Ko si izberemo ime projekta, kliknemo na "Next>". Slika 2.32: Okno za dodatne nastavitve 9

V naslednjem koraku si lahko s klikom na PG/PC nastavimo IP-naslov ter ostale parametre, vendar pa to ni potrebno, če smo jih že predhodno nastavili. Nato zopet kliknemo na "Next>". Slika 2.33: Okno za izbiro elektromotorja V naslednjem koraku nam program preko TCP/IP komunikacije zazna servomotor, ki ga uporabljamo. V našem primeru je to S120_CU310_PN. S klikom na "Next" potrdimo izbiro. Slika 2.34: Okno z izpisom izbranih nastavitev 10

Nato pridemo v zadnje okence čarovnika, kjer se nam izpiše povzetek vseh izbranih nastavitev. Na koncu tako kliknemo "Complete". Slika 2.35: Project navigator Čarovnik se nam s tem zapre, v levem oknu, ki se imenuje Project navigator, pa se nam prikaže naš projekt ter pod njim tudi izbran servomotor [6]. 2.3.2 Konfiguracija pogona Sedaj je treba nastaviti pogon na prvotne tovarniške nastavitve, s čimer si zagotovimo standardno konfiguracijo. Slika 2.36: Izbira krmilnika 11

Najprej moramo poiskati "Project > Connect to selected target devices", s čimer si izberemo naš krmilnik. Pod Access point označimo Device in obkljukamo S120_CU310_PN ter nato kliknemo OK. Včasih se zgodi, da konfiguracija izbranega krmilnika ni enaka konfiguraciji, ki smo jo nastavili v samem programu. V ta namen je treba klikniti na ikono "Load to PG ==>" ter nato izbiro še potrditi. Konfiguraciji krmilnika in programa sta s tem izenačeni. Slika 2.37: Zavihek S120_CU310_PN V Project navigatorju je treba pri krmilniku S120_CU310_PN klikniti na +, ki se nahaja na levi strani. Odpre se nam seznam dodatnih funkcij, kot je prikazano na sliki 2.37. Slika 2.38: Automatic Configuration 12

Sledi dvoklik na funkcijo "Automatic Configuration". Odpre se nam okno, kot je prikazano na sliki 2.38. Konfiguracijo pogona začnemo s klikom na gumb "Configure". Slika 2.39: Automatic Commisioning V naslednjem koraku pri avtomatski konfiguraciji izberemo opcijo Servo. Naš pogon je s tem s strani programa Starter prepoznan kot servopogon. Nato kliknemo na gumb Create. Slika 2.40: Expert list 13

V naslednjem koraku je treba v Project navigatorju klikniti na +, ki se nahaja levo od S120_CU310_PN. Nato kliknemo na +, ki se nahaja levo od SERVO_02. Nato dvokliknemo na Expert list, kjer nato poiščemo parameter p864. Poleg tega parametra je treba klikniti 0. S tem se nam odpre naslednje okno: Slika 2.41: Infeed operation V prvem stolpcu kliknemo na številko 1 in potrdimo z OK. Nato gremo pod "Project > Save", s čimer shranimo spremembe [6]. 2.3.3 Zagon servomotorja V Project navigatorju je potrebno klikniti na +, ki se nahaja pred S120_CU310_PN. Klikniti je treba tudi na +, ki se nahaja pred SERVO_02. Nato dvokliknemo na Expert list. V Expert listu poiščemo parameter p840 za ON/OFF signal. 14

Slika 2.42: ON/OFF parameter Pri parametru p840 kliknemo na 0. Odpre se nam okno za nastavitev ON/OFF parametra. Slika 2.43: Nastavitev p840 Nato v prvem stolpcu kliknemo na 1 ter potem še na OK. 15

Slika 2.44: Commissioning V Project navigatorju nato kliknemo na "S120_CU310_PN > Drives > SERVO_02 > Commissioning > Control Panel". S tem se nam odpre nadzorna plošča oz. Control panel. Slika 2.45: Control panel V nadzorni plošči kliknemo na "Assume control priority!". Slika 2.46: Assume Control Priority 16

V oknu Assume Control Priority kliknemo na "Safety notes". Vsebino Safety notes si pazljivo preberemo, nato kliknemo Close. Zelo pomembno je, da v naslednjem koraku preverimo, ali je hidravlična zavora na servoobračalni mizi sproščena, saj lahko v nasprotnem primeru pride do poškodbe sistema. V oknu "Assume control priority" kliknemo Accept. Okno se s tem zapre, nadzorna plošča pa je s tem aktivirana. Slika 2.47: Control panel motor enable signal Nato je treba obkljukati kvadratek zraven Enables. Simbola 1 (zelen kvadratek) in 0 (rdeč kvadratek) sta s tem aktivna. Slika 2.48: Control panel ob zagonu motorja 17

Zraven n = je treba navesti želeno število vrtljajev. Za začetek ponavadi poskusimo z vrednostjo 10, ki jo lahko zvišamo na 50. Nato kliknemo na 1 (zelen kvadratek). Motor se s tem začne vrteti. Motor ugasnemo s klikom na 0 (rdeč kvadratek). Nato kliknemo na "Give up control priority!", s čimer nadzorne plošče nimamo več pod svojim nadzorom. "Return control priority" nato potrdimo še z "Yes". Nato gremo še pod "Project > Disconnect from target system", s čimer prekinemo komunikacijo med PG/PC in Control Unitom. Na koncu gremo še pod "Project > Save", s čimer shranimo naš projekt [6]. 18

3 PREDSTAVITEV KRMILNIKOV SIEMENS IN APRIL 3.1 Siemens S7 315 2PN/DP Krmilnik Siemens S7 315 2PN/DP predstavlja kompaktno rešitev za industrijsko avtomatizacijo. Uporablja se predvsem za aplikacije, ki temeljijo na Profibus in Profinet komunikaciji. Sam krmilnik se programira s programom STEP 7. Krmilnik se v našem sistemu uporablja za razširitev pomnilniškega prostora ter strojno konfiguracijo sistema. Krmilnik za nemoteno delovanje potrebuje 24-voltno napetost, kar zagotavlja napajalna enota PS 307. S krmilnikom S120 je povezan preko Profinet komunikacije, s samo enoto pa komuniciramo preko ethernet kabla s pomočjo osebnega računalnika. CPU ima 256 kb internega pomnilnika. Obstaja tudi možnost razširitve prostora z zunanjo Flash kartico, katere pomnilnik ne sme presegati 8 MB. Slika 3.1: S7 315 2PN/DP 19

3.2 Siemens Sinamics S120 Primarna naloga industrijskega krmilnika Siemens Sinamics S120 je krmiljenje motorja servoobračalne mize. Kot sekundarno nalogo bi lahko navedli komunikacijo s krmilnikom S7 315 2PN/DP. Zgradba krmilnika temelji na modulih, ki jih lahko sestavimo v smiselno celoto glede na zahteve samega sistema. Tako smo uporabili procesno enoto CU310 PN za krmiljenje sistema, za zahtevano 24-voltno napajanje smo uporabili napajalno enoto PM360, SITOP 24VDC, na voljo pa so tudi vhodno izhodne enote, s pomočjo katerih smo povezali krmilnika Sinamics S120 in April 3000. Centralna procesna enota CU310 PN je glavni del krmilnika, ki izvaja procesiranje podatkov, kontrolira navor ter položaj servomotorja. Procesna enota vsebuje štiri digitalne vhode/izhode, štiri digitalne vhode, merilni vhod ter TTL/HTL/SSI/D-Cliq. Slika 0.1: CU310 PN 20

3.3 April 3000 April 3000 je industrijski krmilnik, ki ga je razvilo podjetje Group Scheneider, ki je hčerinsko podjetje avtomobilskega koncerna Renault. Krmilnik je bil namensko razvit za komunikacijo z robotom Acma in je tudi edini krmilnik, ki z omenjenim robotom lahko komunicira. Ima modularno zgradbo. Sestavljen je iz centralne procesne enote, napajalnika ter vhodno-izhodnih enot. Centralna procesna enota se deli še na mikroprocesor ter pomnilnik, ki skrbita za izvajanje vseh operacij in shranjevanje podatkov. Komunikacija med robotom in krmilnikom poteka prek povezave JNET, ki poteka preko vmesnika RS485 za večtočkovno komunikacijo. Robot ima 40 vhodov in izhodov. Krmilnik se je zmožen povezati z več krmilniki v mrežo, kar smo pri našem konkretnem projektu tudi izkoristili. Slika 0.3: Krmilnik April 3000 21

4 PRETVORBA G-KODE V sklopu diplomskega dela smo obravnavali tudi program za pretvorbo G-kode ACMASoftCNC, ki ga je napisal dr. Simon Brezovnik [3]. Ko ustvarimo 3D-model objekta, ki ga želimo frezati, je treba le-tega uvoziti v CAM-program, kjer s pomočjo nastavljenih parametrov generiramo G-kodo za obdelavo. Pri tem se pojavi težava, saj G-koda, ki jo generirajo moderni CAM programi, ni kompatibilna z G-kodo, ki je namenjena uporabi v krmilniku robota Acma XR 701. Zato je bilo treba ustvariti programsko opremo za pretvorbo novejše različice G-kode v starejšo različico, ki jo lahko potem uporabimo za našega robota. Program za pretvorbo je napisan v programskem jeziku C#. Koda tega programa in tudi sam programski jezik bosta opisana v nadaljevanju. 4.1 Programski jezik C# C# je v osnovi zasnovan kot preprost in objektno orientiran programski jezik. S strani podjetja Microsoft je bil zasnovan za.net platformo. Mednarodna organizacija za standardizacijo (ISO) ga je odobrila kot standarden programski jezik. Njegov razvoj je bil predvsem posledica pomanjkljivosti starejših programskih jezikov, kot so Java, C++ in Visual Basic. Za programiranje v programskem jeziku C# je v osnovi namenjeno programsko orodje Microsoft Visual Studio, obstajajo pa tudi alternativni programi. Programski jezik se lahko uporablja za zelo različne aplikacije, odlikuje pa ga predvsem racionalnost glede porabe pomnilnika in procesorske moči [7]. 4.2 Opis programa Na začetku je treba dodati vse knjižnice, ki jih bomo med samim programiranjem potrebovali. S string input path določimo pot do vhodne datoteke, s string outputpathtemp pa pot za izhod. Preko public Form1() inicializiramo formo oz. pogled. 22

Slika 4.20: Začetek programa Slika 4.21 prikazuje postopek izbire datoteke za pretvorbo preko uporabniškega vmesnika ter kako je v programu definirano, kateri format datotek je primeren za pretvorbo. Omejitev izbora sprejemljivih formatov datotek določimo z ofd.filter. Slika 4.21: Izbira datoteke 23

Na sliki 4.22 so že prikazani prvi procesi pretvorbe G-kode. Tako sta ustvarjena objekta za branje in zapisovanje datoteke, imenovana TextReader in TextWriter. Z while zanko je določeno, da se datoteka bere, vse dokler je v njej kakšen znak. Z if zanko je določeno, da če je v prvotni datoteki kakšna vejica, se le-ta pretvori v piko. To potem zapiše v novo datoteko ter zopet bere dalje. Funkcija sw.write pri tem zapisuje znake v izhodno datoteko, funkcija sr.read pa bere naslednjo vrstico oz. znak. Slika 4.22: Začetek pretvorbe S pomočjo ArrayList je ustvarjen seznam oz. polje, kjer se točke vpisujejo, pri čemer se bere vhodna datoteka. Sledi inicializacija spremenljivk za transformacijo. Z while zanko je točno definirano, na koliko delov je razdeljena vsaka vrstica, ustvarjanje novih točk, nastavljanje parametrov ter dodajanje točke v seznam. 24

Slika 4.23: ArrayList, inicializacija spremenljivk, dodajanje točke v seznam V naslednjem koraku se vsaki posamezni točki vrednost val pretvori v besedilo formata s tremi decimalkami s pomočjo funkcije ToString. Točke so nato dodane v seznam ter se jim dodatno nastavi vse potrebne parametre. Slika 4.24: Pretvorba formata ToString, dodajanje v seznam 25

S funkcijo string so definirani začetek vsake datoteke, linearni gib in ničla točke, kar prikazuje slika 4.25. Slika 4.25: Funkcija String V naslednjem koraku s funkcijo String pridobimo poti za izhodne datoteke, kar prikazuje slika 4.26. Pri tem se generira več izhodnih datotek, ki so poimenovane a, b, c, d, e, f, g in Simulacija. 26

Slika 4.26: Pridobivanje poti za izhodne datoteke Nato program za vsako točko v seznamu posebej izvede kodo v zavitih oklepajih. Koda je pri tem nekoliko obsežnejša, zato tukaj tudi ni prikazana. Za podrobnejši ogled programa si je zato treba ogledati datoteko Form1.cs, ki spada v sklop programske opreme za pretvorbo G-kode. V čisto zadnjem koraku je treba še določiti, s katerim gumbom v uporabniškem vmesniku se pretvorba začne. V programski kodi je zato določen gumb "Premakni". Po končani pretvorbi se nam izpiše okno z obvestilom "Končano! ", kar je narejeno s funkcijo MessageBox.Show [3]. 27

Slika 4.27: Zadnji koraki pretvorbe 4.3 Uporabniški vmesnik in pretvorjena G-koda Slika 4.28 prikazuje uporabniški vmesnik programske opreme za pretvorbo G-kode. Prva stvar, ki jo je treba pravilno nastaviti v uporabniškem vmesniku, je koordinatno izhodišče robota. Le-to je definirano s šestimi prostostnimi stopnjami, in sicer s tremi translacijskimi in tremi rotacijskimi. Translacijske osi predstavljajo osi X, Y in Z, ki so definirane v milimetrih. Rotacijske osi predstavljajo osi A, B in C, ki so definirane v stopinjah. G-kodo pretvorimo tako, da kliknemo na okno Odpri ter izberemo datoteko, ki jo želimo pretvoriti. Svojo izbiro potrdimo, nato pa v uporabniškem vmesniku kliknemo še na okno Premakni, s čimer se G-koda tudi pretvori. Pretvorjena G-koda se shrani v isti mapi, kjer je shranjena tudi prvotna G-koda. Slika 4.28: Uporabniški vmesnik 28

Slika 4.29 prikazuje prvotno G-kodo, slika 4.30 pa pretvorjeno G-kodo, pri čemer so jasno vidne specifične razlike med njima, ob podrobnejšem pregledu pa ugotovimo, da je v pretvorjeno G-kodo vneseno tudi uporabljeno koordinatno izhodišče, ki je dodatno prišteto k prvotnim vrednostim posameznih osi [3]. Slika 4.29: Prvotna G-koda 29

Slika 4.30: Pretvorjena G-koda 30

5 PROGRAMSKI KORAKI ZA VZPOSTAVITEV LOGIČNE POVEZAVE Eden izmed ključnih ciljev diplomskega dela je vzpostavitev programske povezave med krmilnikom April 3000 in Siemensovim krmilnikom Sinamics S120 tako, da se servoobračalna miza in robot po vsaki končani stopnji obdelave ustrezno odzoveta. To konkretno pomeni, da ko robot konča frezanje objekta iz ene strani, se umakne nazaj v izhodiščni položaj. Krmilnik April nato pošlje iz svojega izhoda informacijo o končani stopnji obdelave krmilniku Sinamics S120, ta pa servoobračalni mizi pošlje ukaz, da se mora zavrteti za 90. Ko se miza zavrti v drugo pozicijo, Sinamics S120 pošlje krmilniku April informacijo o končanem zasuku, ta pa nato pošlje robotu ukaz, naj nadaljuje z drugo stopnjo obdelave. Skupaj tako obstajajo štiri stopnje obdelave, tako da je obdelovanec lahko sfrezan z vseh strani, saj se servoobračalna miza lahko zavrti za 360. V nadaljevanju bomo opisali programske nastavitve v programih Starter in Orphee. 5.1 Nastavitve programa Starter V Starterju je ključno predvsem to, da pravilno programsko definiramo vse vhode in izhode iz kontrolne enote krmilnika Sinamics S120. Pomembna je tudi ugotovitev, za koliko resic se mora servoobračalna miza zavrteti, da dosežemo zasuk za 90. Oboje bo predstavljeno v nadaljevanju. Ko odpremo program Starter, gremo pod "Project > Open" in si tam izberemo projekt z imenom Project starter. Svojo izbiro potrdimo s klikom na OK. V Project navigatorju na levi kliknemo na "S120_CU310_PN > Servo_03 > Technology > Basic positioner > Homing", kot prikazuje slika 5.10. Tam nastavimo referenčno točko s klikom na svetlo moder kvadratek pod "set reference point". Nato kliknemo na "Further interconnections", s čimer se nam odpre novo okno, kjer izberemo "r722: Bit1", kar v praksi pomeni, da bo referenčna točka za nastavljanje začetnega položaja servoobračalne mize definirana na digitalnem vhodu X121.2. S klikom na OK svojo izbiro potrdimo. 31

Slika 5.10: Set reference point V naslednjem koraku v Project navigatorju kliknemo na zavihek "Traversing blocks", ki se nahaja pod zavihkom "Basic positioner". Tam v pravokotniku na sredini kliknemo na siv krogec, ki se nahaja na levi strani zraven napisa "Homing". Odpre se nam okno "Program traversing blocks", kjer definiramo položaje za zasuk za 90, 180, 270 in 360. V stolpcu "No. " so navedene zaporedne številke položajev, in sicer 1, 2, 3 in 0, pri čemer je kot položaj 0 mišljen zasuk za 360 oz. zasuk v izhodiščni položaj. V stolpcu "Position" je navedeno število potrebnih resic za določen kot zasuka, pri čemer je bilo v osnovi ugotovljeno, da je za zasuk 90 potrebnih 659500 resic, za zasuk za 180 dvakratnik tega števila in tako naprej. Slika 5.11: Program traversing blocks 32

Nato kliknemo "Close" in si v zavihku "Traversing blocks" ogledamo še, kako definirati pin za aktivacijo traversing blokov, ki jih potrebujemo za zasuk servoobračalne mize. To storimo tako, da kliknemo na svetlomoder kvadratek pod "activate traversing task (0 -> 1)", kjer izberemo r722: Bit8, kar v praksi pomeni, da je definiran na digitalnem vhodu X121.7. Spodaj levo definiramo, s kolikimi biti definiramo položaje obračalne mize v načinu traversing blocks. Na razpolago imamo šest bitov, s katerimi lahko definiramo 64 različnih položajev (2 +2 +2 +2 +2 +2 ter dodatno še začetni položaj 0, kar je skupno 64 položajev). V našem primeru imamo skupno le štiri položaje za zasuk, tako da pravzaprav potrebujemo le dva bita (2 +2 ter začetni položaj 0, kar so skupno štirje položaji). Izberemo si Bit 0 in Bit 1, pri čemer si v sklopu Control_Unit-a za Bit 0 izberemo r722.2, kar v praksi predstavlja pin X121.3, za Bit 1 pa r722.3, kar predstavlja pin X121.4. Slika 5.12: Traversing blocks določanje pinov Nato kliknemo na spodnji zavihek Control_Unit, kjer še dodatno nastavimo vse potrebno za traversing blocks. Na pinu X121.7 tako definiramo p2631 za "activate traversing task (0 - > 1)", s čimer aktiviramo traversing funkcijo, na digitalnem izhodu X121.10 pa definiramo p2684: Bit 10 za "Target position reached". To pomeni, da ko kontrolna enota Sinamicsa na pinu X121.10 od servoobračalne mize preko interne povezave dobi signal, da je zasuk dokončan, se preko istega pina oz. digitalnega izhoda na krmilnik April pošlje signal, da se je servoobračalna miza zavrtela v želeni položaj, kar pomeni, da lahko robot nadaljuje s frezanjem. Ko se na digitalnem vhodu X121.7 pojavi signal iz krmilnika April, to omogoči 33

preko interne povezave znotraj programa STARTER (interconnections) omogoči aktivacijo travesing blokov. Slika 5.13: Control Unit Nato kliknemo na zgornji zavihek z naslovom "Isolated digital inputs", kjer definiramo še dodatne štiri digitalne vhode. Pin X121.1 nastavimo kot digitalni vhod za vklop motorja servoobračalne mize interno na p840, pin X121.2 (p2596) nastavimo kot digitalni vhod za setiranje oz. nastavljanje začetnega položaja, pin X121.3 (p2625) nastavimo kot digitalni vhod za signal Bit 0, pin X121.4 (p2626) pa nastavimo kot digitalni vhod za signal Bit 1. Slika 5.14: Isolated digital inputs V naslednjem koraku si bomo pogledali še, kako mizo zavrteti za 360. V Project navigatorju gremo pod "S120_CU310_PN > Servo_03 > Commissioning > Control panel". Nato v Control panelu kliknemo na "Assume control priority!", kliknemo na "Accept" ter s kljukico označimo "Enables". Zelo pomembno pri tem je, da pred zagonom servoobračalne mize preverimo, ali je hidravlična zavora na servoobračalni mizi sproščena. Nato kliknemo na kvadratek "Positioning mode", desno od tega kvadratka izberemo "Basic positioner" ter spodaj "Positioning absolute". Na desni strani pri parametru "x=" vpišemo vrednost 2638000, kar pomeni, da se servoobračalna miza zavrti 34

za 2638000 resic, kar znaša 360 kota zasuka. Nato kliknemo na zeleni kvadratek "I" ter na koncu še na gumb "Start", ki se nahaja dve polji desno od zelenega kvadratka. Slika 5.15: Control panel 5.2 Nastavitve programa Orphee V programu Orphee smo definirali vhodne in izhodne pine za povezavo s krmilnikom Sinamics, prav tako pa smo napisali tudi program v lestvičnem diagramu, s katerim smo določili logiko, po kateri se bo servoobračalna miza obračala v odvisnosti od delovnih operacij robota. Na namizju kliknemo na ikono "ORPHEE UREJANJE" ter nato na ikono "APPLICATION(S)". Če bi želeli ustvariti nov projekt, bi izbrali "Edition > Creer", tam izbrali ime novega projekta ter označili, da uporabljamo krmilnik April 3000. V našem primeru si bomo ogledali že ustvarjen projekt z naslovom "MB_OK". Ko kliknemo na ikono, nas program vpraša za geslo za dostop, ki se glasi "3". Tako pridemo v okno za izbiro nastavitev in programiranje, ki je bilo prikazano že v 2. poglavju. Tu kliknemo na ikono "Declarations", kjer si bomo ogledali, kako so bili definirani vhodi in izhodi krmilnika ter posamezni dogodki in zahteve. Slika 5.20: Vhod POZ_FIN 35

Za naš konkreten primer smo določili le en vhod krmilnika, in sicer POZ_FIN, preko katerega krmilnik April od Sinamicsa dobi signal, da se je servoobračalna miza zavrtela v želeni položaj. Slika 5.21: Izhodi Definirali smo tudi 5 izhodov, in sicer MOT_ON, s katerim April pošlje signal za vklop napajanja za servoobračalno mizo, SET_POS, s katerim določimo začetni oz. referenčni položaj servoobračalne mize, BIT_0 in BIT_1 za definiranje točnega položaja zasuka ter ACT_TRAV, s katerim aktiviramo traversing bloke na Sinamicsu. 36

Slika 5.22: Dogodki in zahteve Z ZAHTEVAMI definiramo konec posameznih stopenj obdelave robota, kar posledično sproži zasuk servoobračalne mize, z DOGODKI pa odredimo robotu nadaljevanje izvajanja obdelovalnih postopkov frezanja potem, ko se servoobračalna miza zasuče v naslednji položaj. 37

Slika 5.23: Začetek programa V naslednjem koraku zapremo okno "Declarations" ter kliknemo na okno z oznako "CC". V tem oknu izberemo program z naslovom "MIZA". Odpre se nam lestvični diagram, ki je prikazan na sliki 5.23. Predstavlja logiko delovanja robota v navezavi s servoobračalno mizo. Program je razdeljen po posameznih Networkih z nazivi %EC10, %EC20 itn. Program se začne izvajati, ko krmilnik April od robota preko zahteve B0_OR2 dobi informacijo, da se je zaključila prva stopnja obdelave. Takrat April preko svojih izhodov pošlje krmilniku Sinamics signale za vklop napajanja servoobračalne mize (MOT_ON), setiranje referenčnega položaja (SET_POS), aktivacijo traversing blokov (ACT_TRAV) ter signal za položaj 1 (BIT_0). Na naslednjem Networku April na svojem vhodu (POZ_FIN) dobi signal, da se je servoobračalna miza zavrtela v položaj 1, zato na izhodu pošlje robotu preko dogodka signal za začetek naslednje stopnje obdelave, obenem pa resetira BIT_0, saj je bil zasuk v položaj 1 že opravljen. Postopek je za naslednje tri zahteve zelo podoben, s to razliko, da ni več treba setirati SET_POS in ACT_TRAV, saj sta setirana že v prvem koraku. Spreminja se le kombinacija bitov 0 in 1, odvisno od položaja, v katerega se mora servoobračalna miza zavrteti. 38

Slika 5.24: Zadnji del programa Posebnost je le zadnja zahteva, kjer ni treba definirati nobenega bita, saj se miza zasuče nazaj v začetni položaj 0. Prav tako ni potrebna uporaba izhoda za konec programa, saj lahko pustimo, da se program izvaja v neskončni zanki. Program je v celoti dostopen na računalniku v Laboratoriju za robotizacijo. 39

5.3 Fizična povezava Vse potrebne pine je bilo treba določiti programsko, vendar sistem nikakor ne more delovati, če pini niso pravilno povezani tudi fizično. Spodnja shema prikazuje pravilno fizično povezavo, priloženi pa sta tudi dve sliki, ki povezavo prikazujeta v realnosti. Slika 5.30: Shema fizične povezave Slika 5.31: Fizična povezava na krmilniku Sinamics 40

Slika 5.32: Fizična povezava na krmilniku April 41

6 SKLEP Projekt, ki smo ga izvajali v okviru diplomskega dela, nam je prinesel veliko novih znanj s področja industrijske robotike in Siemensovih industrijskih krmilnikov. Pridobili smo prve izkušnje s področja inženirskega načrtovanja in reševanja problemov. Veliko časa smo porabili za proučevanje sistema in vseh njegovih komponent, saj gre za razmeroma kompleksno zasnovo, ki zahteva dobro poznavanje tako programskega kot fizičnega dela, preden lahko začnemo z nadaljnjim delom. Programska povezava krmilnikov April 3000 in Sinamics S120 je predstavljala poseben izziv, saj gre za krmilnika popolnoma različnih proizvajalcev, poleg tega pa se precej razlikujeta tudi v starosti. Projektno delo še ni povsem končano, saj ostaja glavna neznanka točen postopek, kako naložiti lestvični diagram iz programa Orphee v krmilnik April 3000. Razlog za to je predvsem v pomanjkanju navodil za delo s krmilnikom in programsko opremo, težavo pa predstavlja tudi neznanje francoskega jezika, ki je prednastavljen za program Orphee. Dr. Simon Brezovnik nam je pri tem ponudil pomoč, vendar pa žal ni uspel priti pred iztekom projekta. Ko bo ta težava odpravljena, bo sistem praktično gotov in pripravljen za zagon in obratovanje. 42

7 LITERATURA [1] Definicija robotike. Dostopno na: https://en.wikipedia.org/wiki/robotics [5. 7. 2015] [2] Jurgec, T. Logično in fizično povezovanje krmilnika obračalne mize (Siemens) s krmilnikom robota ACMA XR 701. Maribor. Univerza v Mariboru, Fakulteta za elektrotehniko, računalništvo in informatiko, 2014. [3] BREZOVNIK, Simon. ACMASoftCNC: programska oprema za prilagoditev CNC obdelovalne kode za uporabo v robotskem krmilniku robota ACMA XR701. Maribor: Fakulteta za strojništvo, 2008. [COBISS.SI-ID 14411286] [4] Golob, J. Orphee. Revoz, d. d., Novo mesto, 1996. [5] Ojsteršek, R. Avtomatizacija servoobračalne mize s Siemens Step7 in WinCC flexible. Maribor: Univerza v Mariboru, Fakulteta za strojništvo, 2013. [6] Getting Started Sinamics S120. Dostopno na: https://cache.industry.siemens.com/dl/files/910/61604910/att_109552/v1/gs1_012012_en g_en-us.pdf [21. 7. 2015] [7] Programski jezik C#. Dostopno na: https://en.wikipedia.org/wiki/c_sharp_%28programming_language%29 [30. 7. 2015] 43