Razvoj slikovnega sistema za nadzor vsebine palet

Velikost: px
Začni prikazovanje s strani:

Download "Razvoj slikovnega sistema za nadzor vsebine palet"

Transkripcija

1 UNIVERZA V LJUBLJANI Fakulteta za strojništvo Razvoj slikovnega sistema za nadzor vsebine palet Magistrsko delo magistrskega študijskega programa II. stopnje Strojništvo Kristian Zidarič Ljubljana, september 2017

2

3

4

5 UNIVERZA V LJUBLJANI Fakulteta za strojništvo Razvoj slikovnega sistema za nadzor vsebine palet Magistrsko delo magistrskega študijskega programa II. stopnje Strojništvo Kristian Zidarič Mentor: doc. dr. Drago Bračun, univ. dipl. inţ. Ljubljana, september 2017

6

7

8

9 Zahvala Zahvalo namenjam vsem, ki so pomagali pri nastanku magistrskega dela. Za svetovanje, pomoč in strokovno podporo pri izdelavi se najlepše zahvaljujem mentorju, doc. dr. Dragu Bračunu. Zahvalil bi se tudi podjetju I.H.S. d.o.o., ki mi je omogočilo izdelavo magistrskega dela. Posebno zahvalo namenjam druţini, ki me je skozi vsa leta spodbujala in podpirala. Hvala. v

10 vi

11 Izjava Spodaj podpisani/a Kristian Zidarič študent/ka Fakultete za strojništvo Univerze v Ljubljani, z vpisno številko , avtor/ica pisnega zaključnega dela študija z naslovom: Razvoj slikovnega sistema za nadzor vsebine palet, IZJAVLJAM, 1.* a) da je pisno zaključno delo študija rezultat mojega samostojnega dela; b) da je pisno zaključno delo študija rezultat lastnega dela več kandidatov in izpolnjuje pogoje, ki jih Statut UL določa za skupna zaključna dela študija ter je v zahtevanem deleţu rezultat mojega samostojnega dela; 2. da je tiskana oblika pisnega zaključnega dela študija istovetna elektronski obliki pisnega zaključnega dela študija; 3. da sem pridobil/a vsa potrebna dovoljenja za uporabo podatkov in avtorskih del v pisnem zaključnem delu študija in jih v pisnem zaključnem delu študija jasno označil/a; 4. da sem pri pripravi pisnega zaključnega dela študija ravnal/a v skladu z etičnimi načeli in, kjer je to potrebno, za raziskavo pridobil/a soglasje etične komisije; 5. da soglašam z uporabo elektronske oblike pisnega zaključnega dela študija za preverjanje podobnosti vsebine z drugimi deli s programsko opremo za preverjanje podobnosti vsebine, ki je povezana s študijskim informacijskim sistemom članice; 6. da na UL neodplačno, neizključno, prostorsko in časovno neomejeno prenašam pravico shranitve avtorskega dela v elektronski obliki, pravico reproduciranja ter pravico dajanja pisnega zaključnega dela študija na voljo javnosti na svetovnem spletu preko Repozitorija UL; 7. da dovoljujem objavo svojih osebnih podatkov, ki so navedeni v pisnem zaključnem delu študija in tej izjavi, skupaj z objavo pisnega zaključnega dela študija; 8. da dovoljujem uporabo mojega rojstnega datuma v zapisu COBISS. V Ljubljani, Podpis avtorja/ice: * Obkroţite varianto a) ali b). vii

12 viii

13 Izvleček Tek. štev.: MAG II/467 UDK (043.2) Razvoj slikovnega sistema za nadzor vsebine palet Kristian Zidarič Ključne besede: slikovni sistemi nadzor vsebine palet zlaganje paketov avtomatizacija kamera optični sistemi Siemens PLC Snap7 V magistrskem delu je predstavljen razvoj slikovnega sistema za zajem slik posameznih slojev paketov na paleti med zlaganjem paketov na paleto. Uvodoma sta predstavljena obstoječa avtomatizirana naprava in proces zlaganja paketov na paleto, nato sledi zasnova prostorske umestitve slikovnega sistema na obstoječo napravo. Predstavljeno je tudi načrtovanje in preračun optičnega sistema ter izbira posameznih komponent. Nadalje sta prikazana zasnova in postopek razvoja programske opreme za samodejno zajemanje in shranjevanje slik. Nazadnje je razviti sistem vgrajen na obstoječo napravo, uspešno testiran in predan naročniku. ix

14 x

15 Abstract No.: MAG II/467 UDC (043.2) Development of an imaging system for pallet content control Kristian Zidarič Key words: imaging systems pallet content control palletization automation camera optical systems Siemens PLC Snap7 The master`s thesis presents the development of an imaging system for capturing images of individual layers of packed products on a pallet during the palletization process. Thesis starts with a review of the existing automated palletizing system and defines the palletizing process. After that, a conceptual design for structural placement and integration of the imaging system is presented, with corresponding planning and calculations of the optical system and its components. Further on, the design and development of image capturing and saving software is thoroughly elaborated. In the end, the developed imaging system is successfully implemented and tested in an industrial environment. xi

16 xii

17 Kazalo Kazalo slik... xv Kazalo preglednic... xvii Seznam uporabljenih simbolov... xix Seznam uporabljenih okrajšav... xxi 1. Uvod Ozadje problema Cilji Opredelitev procesa paletizacije in pregled obstoječega sistema Opredelitev procesa paletizacije Shematski prikaz osnovnega sistema za paletizacijo Opis uporabljenega sistema za paletizacijo po naročilu Krmilna arhitektura obstoječega sistema Zasnova vključitve slikovnega sistema v proces paletizacije Zahteve in specifikacije naročnika Opredelitev zajema slike in mesto v procesu paletizacije Določitev skupnih želja in zahtev Določitev specifikacij slikovnega sistema Idejna zasnova sistema mehanski del Izdelava konceptov prostorske umestitve slikovnega sistema Osnovni preračun optičnega sistema Izbira kamere Izbira objektiva Komentar glede osvetlitve Idejna zasnova programske opreme xiii

18 5.1. Idejna zasnova delovanja programske opreme Glavni program in C++ programski jezik Komunikacija s kamero I2D arhitektura Snap7 vmesnik za komunikacijo s Siemens PLC-ji Sistem shranjevanja slik Grafični uporabniški vmesnik Glavna zanka slikovnega sistema Postopek izdelave programske opreme Vezava elementov za potrebe testiranja Vzpostavitev povezave kamera PC in spoznavanje lastnosti kamere Osnove upravljanja s kamero s pomočjo vzorčnih programov Izdelava začetnega dela programske opreme Vključitev komunikacije s PLC Simulacija motenj in napak Opis uporabniškega vmesnika Priprava programske opreme za predajo uporabniku Izdelava nosilca kamere Izdelava 3D-modela Izdelava tehnične dokumentacije Izdaja delovnega naloga Izdelava strukture tehnoloških in montažnih operacij Testiranje in zagon Vgradnja slikovnega sistema na obstoječo napravo Testiranje delovanja Zaključki Literatura xiv

19 Kazalo slik Slika 2.1: IDEF0 model tehničnega procesa zlaganja paketov na paleto (paletizacija)... 3 Slika 2.2: Razdelan IDEF0 diagram procesa zlaganja paketov na paleto (paletizacija)... 4 Slika 2.3: Shematski prikaz osnovnega sistema za paletizacijo tlorisni pogled... 5 Slika 2.4: Shematski prikaz osnovnega sistema za paletizacijo stranski pogled... 6 Slika 2.5: Tlorisna postavitev realnih naprav v poenostavljenem sistemu za paletizacijo [2]... 7 Slika 2.6: Dejanska tlorisna postavitev naprav v našem sistemu za paletizacijo [2]... 8 Slika 2.7: 3D-model (večine) naprav v našem sistemu za paletizacijo [2]... 9 Slika 2.8: Shematski prikaz krmilne arhitekture obstoječega sistema za paletizacijo... 9 Slika 3.1: Vzorec (del) podatkov o načinu paletizacije, kalkulacije kapacitet [2] Slika 3.2: IDEF0 model tehnološke operacije zajemi in shrani sliko Slika 3.3: IDEF0 diagram procesa paletizacije z vključeno aktivnostjo zajema in shranjevanja slik Slika 3.4: Razčlenjen IDEF0 diagram zajema in shranjevanja slik Slika 3.5: Osnovna zgradba slikovnih sistemov [3] Slika 4.1: Koncept 1 kamera na ogrodju paletizerja Slika 4.2: Koncept 2 kamera na glavi paletizerja Slika 4.3: Koncept 3 kamera na oddaljenem nosilcu Slika 4.4: Korelacija med velikostjo detektorja slike in velikostjo merilnega območja [3] Slika 4.5: Tipične velikosti detektorjev slike [3] Slika 4.6: Vzorčenje slike in objekta [3] Slika 4.7: Optična preslikava za tanke leče [3] Slika 4.8: Primer navadne industrijske kamere [8] Slika 4.9: Primer industrijske smart FPGA kamere [9] Slika 4.10: Primeri IP nadzornih kamer [10] Slika 4.11: Primer spletne kamere za vsakdanjo uporabo s PC računalnikom [11] Slika 4.12: Primer fotografskega aparata z objektivom [12] Slika 4.13: Primer odporne kamere za potrošniško rabo [13] Slika 4.14: Izbrana kamera SICK midicam I2D-602C [15] Slika 4.15: Izbran objektiv Computar M0814-MP2 [16] Slika 5.1: Vključitev električnega dela slikovnega sistema v krmilno arhitekturo celotnega sistema Slika 5.2: Strukturna vprašanja pri zasnovi programske arhitekture Slika 5.3: Idejna zasnova delovanja programske opreme Slika 5.4: Osnovna struktura uporabe I2D vmesnika v lastnih programih [20] Slika 5.5: Shematski prikaz strukture protokola po posameznih nivojih [23] Slika 5.6: Primer komunikacije klient/streţnik [23] Slika 5.7: Osnovni načini delovanja Snap7 vmesnika [23] Slika 5.8: Zasnova grafičnega uporabniškega vmesnika xv

20 Slika 5.9: Glavna zanka slikovnega sistema Slika 6.1: Proces izdelave programske opreme IDEF0 diagram Slika 6.2: Proces izdelave programske opreme IDEF0 diagram razčlenjeno Slika 6.3: Vezava elementov za potrebe testiranja Slika 6.4: Prikaz programov I2D Camera Manager (levo) in I2D Camera Cockpit (desno) [25] Slika 6.5: Vzorčna programa uc480acquire (levo) in uc480live (desno) Slika 6.6: Struktura projekta v programskem okolju Microsoft Visual Studio Slika 6.7: Priprava prikazovanja informacij za potrebe razvoja Slika 6.8: Diagram poteka zagona in zaustavitve programa 1. del Slika 6.9: Diagram poteka zagona in zaustavitve programa 2. del Slika 6.10: Diagram poteka inicializacije kamere Slika 6.11: Diagram poteka nastavitve zunanjega sproţilca Slika 6.12: Diagram poteka izdelave niti za upravljanje z dogodki Slika 6.13: Izvajanje zanke za poslušanje dogodkov kamere Slika 6.14: Testiranje komunikacije z virtualnim streţnikom Slika 6.15: Demo program streţnika, ki smo ga zagnali na virtualnem računalniku Slika 6.16: Nastavitev virtualnega računalnika s programom VirtualBox Slika 6.17: TIA Portal V14 preko virtualnega računalnika za programiranje Siemens krmilnikov. 61 Slika 6.18: Struktura podatkovnega bloka z informacijami, definirana v programu TIA Portal Slika 6.19: Diagram poteka izmenjave podatkov s krmilnikom 1. del Slika 6.20: Diagram poteka izmenjave podatkov s krmilnikom 2. del Slika 6.21: Diagram poteka shranjevanja slik Slika 6.22: Diagram poteka zajema časovnega odtisa Slika 6.23: Glavno okno uporabniškega vmesnika Slika 6.24: Meni sistemskega pladnja Slika 6.25: Struktura programskega paketa namenjenega končnemu uporabniku Slika 7.1: Prikaz nosilca za kamero Slika 7.2: Prikaz doseganja vidnega polja Slika 7.3: Detajlni prikaz prečnega in zrcalnih L-nosilcev Slika 7.4: Prikaz izseka kataloške risbe Slika 8.1: Montaţa sklopa nosilca kamere na ogrodje paletizerja Slika 8.2: Umestitev nosilca in kamere med potisnika Slika 8.3: Elektro omara s Siemens krmilnikom in mreţnim stikalom Slika 8.4: Prikaz priključnih kablov na kameri, levo mreţni, desno napajalni Slika 8.5: Slika najniţjega sloja na paleti Slika 8.6: Slika najvišjega sloja na paleti Slika 8.7: Testiranje povezave s krmilnikom Slika 8.8: Izpis uporabniškega vmesnika po uspešno zajeti sliki Slika 8.9: Slika shranjena s pravim imenom na predvideni lokaciji Slika 8.10: Glava paletizerja med spuščanjem sloja paketov Slika 8.11: Proces odlaganja slojev paketov na paleto xvi

21 Kazalo preglednic Preglednica 3.1: Določitev ţelja in zahtev slikovnega sistema iz vidika prostorske umestitve Preglednica 3.2: Določitev ţelja in zahtev glede izbire komponent optičnega sistema Preglednica 3.3: Določitev ţelja in zahtev glede programske arhitekture slikovnega sistema Preglednica 3.4: Določitev specifikacij slikovnega sistema Preglednica 4.1: Vrednotenje konceptov rešitve prostorske umestitve slikovnega sistema Preglednica 4.2: Tehnični podatki za kamero SICK midicam I2D-602C [15] Preglednica 4.3: Tehnični podatki za objektiv Computar M0814-MP2 [16] Preglednica 5.1: Predstavitev strukture protokola po OSI modelu [23] Preglednica 6.1: Razlaga vhodnih argumentov [23] Preglednica 6.2: Area tabela [23] Preglednica 6.3: WordLen tabela [23] xvii

22 xviii

23 Seznam uporabljenih simbolov Oznaka Enota Pomen a mm razdalja med objektom in lečo b mm razdalja med senzorjem in lečo C mm vzorčenje slike d mm premer zaslonke DS mm x mm velikost detektorja slike f mm goriščna razdalja h mm višina slojev na paleti (skupaj s paleto) K mm vzorčenje objekta L mm razdalja med sliko in objektom m / povečava MO mm x mm merilno območje NA / numerična odprtina O mm velikost objekta S mm velikost slike na senzorju / izkoriščenost merilnega območja Indeksi max min x y maksimalna minimalna abscisna os ordinatna os xix

24 xx

25 Seznam uporabljenih okrajšav Okrajšava Pomen ADC analogno-digitalna pretvorba (angl. Analog-Digital Conversion) API vmesnik za namensko programiranje (angl. Application Programming Interface) BFL zadnja goriščna razdalja (angl. Back Focal Length) Cat5e oznaka vrste ethernet mreţnega kabla CPU centralna procesna enota (angl. Central Processing Unit) DB Siemensov podatkovni blok (angl. Data Block) DXF izmenjevalni datotečni format za risbe (angl. Drawing Interchange Format ali Drawing exchange Format ) FBD razdalja od prirobnice do gorišča (angl. Flange Back Distance) FPGA namensko programirljivi čip (angl. Field-Programmable Gate Array) FPS št. slik na sekundo (angl. Frames Per Second) GigE gigabitni ethernet (angl. Gigabit Ethernet) GND ozemljitev (angl. ground) HMI vmesnik človek stroj (angl. Human Machine Interface) I/O vhodi/izhodi (angl. Input/Output) IDE programsko razvojno okolje (angl. Intergrated Development Environment) IDEF0 standard izdelave funkcijskih modelov (angl. Integration DEFinition) IEEE Inštitut elektro inţenirjev in inţenirjev elektronike (angl. Institute of Electrical and Electronics Engineers) IP internetni protokol za naslavljanje (angl. Internet Protocol) IP30 zaščita pred trdnimi delci večjimi od 2,5 mm (angl. International Protection Marking) IP54 zaščita pred prahom in pljuski vode IP67 zaščita pred prahom in vodo (globina 1 m, 30 min) (angl. International Protection Marking) MBCS znakovni set Multi-byte character set MFC programska razvojna tehnologija Microsoft Foundation Class Library MOD najmanjša razdalja do merjenega objekta (angl. Minimum Object Distance) MPix megapiksel (angl. Megapixel) NA numerična odprtina (angl. Numerical Aperture) OS operacijski sistem (angl. Operating System) PC osebni računalnik (angl. Personal Computer) PLC programabilni logični krmilnik (angl. Programmable Logic Controller) RAL standardna barvna lestvica RJ-45 standardni konektor ethernet mreţnih kablov S7 (protokol) komunikacijski protokol Siemens naprav xxi

26 SCADA SDK TCP USB sistem za nadzor in zajemanje podatkov (angl. Supervisory Control And Data Acquisition) programski razvojni paket, tehnologija (angl. Software Development Kit) internetni protokol za nadzor prenosa podatkov (angl. Transmission Control Protocol) univerzalno serijsko vodilo, ki se uporablja za priklop in povezovanje perifernih naprav (angl. Universal Serial Bus) xxii

27 1. Uvod 1.1. Ozadje problema Industrija stremi k zagotavljanju vse višje kakovosti, zanesljivosti, sledljivosti in zmanjševanju stroškov izdelave izdelkov. Kontrolo kakovosti opravljenih operacij v industrijskih procesih je od nekdaj opravljal človek, ki se je pri delu opiral na uporabo svojih čutil. Odlične kognitivne sposobnosti v kombinaciji s čutili človeku resda omogočajo vsestransko iznajdljivost in zmoţnost dobre reakcije v nepredvidljivih situacijah, ima pa to slabost, da je, v primerjavi s strojem, precej manj dosleden in zanesljiv pri opravljanju ponovljivih operacij. Zato se v sodobni industriji pojavlja vse več sistemov, ki ţelijo nadomestiti vlogo človeka s posnemanjem uporabe človeških čutil. Uvedba digitalne tehnike na področje slikovnih sistemov je sproţila hiter razvoj le-teh. Današnji slikovni sistemi poleg doseganja odlične kvalitete slik, ki presega sposobnosti človeškega očesa, omogočajo hitro in zanesljivo obdelavo. Razviti so tudi ţe do te mere, da prinašajo visoko povezljivost z ostalimi napravami, ki sodelujejo v industrijskih procesih, s čimer postajajo nepogrešljiv člen v sodobni industriji. Sestavni del sodobne tovarne je avtomatizirana logistika končnih proizvodov. Večina izdelkov, predvsem v prehrambni industriji, je po več kosov skupaj zloţena v pakete, ki se zlagajo na paleto in nato dostavijo veleprodajnim naročnikom. Ti proizvajalcem pogosto pošiljajo reklamacije, da so prejeli napačne ali poškodovane pakete in tudi nezadostne količine. Vzroki za reklamacije so lahko neustrezno rokovanje med transportom ali napake pri procesu zlaganja na palete. Z namenom zagotavljanja sledljivosti in nadzora nad pravilnostjo zlaganja na paleto, bi bilo za opravljanje te naloge smotrno razviti slikovni sistem in ga vključiti v proces zlaganja paketov na paleto Cilji Glavni cilj magistrske naloge je zasnovati slikovni sistem, ki bo vgrajen na obstoječo napravo za paletizacijo in bo zmoţen samodejnega zajemanja slik posameznih slojev po odloţitvi na paleto. 1

28 Uvod Potreba po razvoju sistema se je pojavila glede na naročilo v podjetju. Naročnik je izrazil ţeljo, da bi v procesu paletizacije omogočili kontrolo oziroma dokaz, da je paletirna naprava resnično odloţila vse pakete na paleto. S tem bi lahko svojim naročnikom slike predloţili kot dokaz za zavrnitev reklamacije, da jim ni bila dostavljena polno naloţena paleta. Naloga je večplastna in zajema širše področje mehatronike, vse od konstruiranja, programiranja, osnov elektrotehnike do optike. Strukturirana bo glede na časovni potek razvoja sistema, ki bo razdeljen na posamezne sklope. Z namenom zagotavljanja boljše preglednosti naloge teoretične osnove ne bodo predstavljene v skupnem poglavju na začetku, temveč bodo predstavljene v vsakem sklopu posebej, pred implementacijo postopka izdelave. Naloge se bomo lotili s preučitvijo obstoječega sistema paletizacije, v katerega bomo slikovni sistem vključili. Zatem bodo natančno definirane vse ţelje in zahteve ter na podlagi tega izoblikovan spisek specifikacij. Pri tem znajo preglavice povzročati predvsem ţelje naročnika, ki so pogosto na začetku, ko naročnik še ne ve natančno kaj ţeli, precej skope, nato pa se ţe v fazi razvoja pogosto dopolnijo ali celo spremenijo. Najprej bomo podrobneje obravnavali mehanski del problema. Preučili bomo različne moţnosti konstrukcijskih rešitev prostorske umestitve slikovnega sistema. Izdelave različnih konceptov in njihovega vrednotenja se bomo lotili po korakih metodike konstruiranja. Na podlagi izbranih rešitev bo izdelana zasnova optičnega sistema, pri čemer bo za izbiro ustreznih komponent potrebno opraviti ustrezen preračun. Na trgu je velika ponudba optične opreme, zato glede na to, da gre za prvi tovrstni sistem v podjetju, dopuščamo moţnost, da kljub temeljitemu pregledu trga, izbira opreme morda še ne bo povsem optimalna. Za tem se bomo lotili programskega dela naloge. Izdelana bo zasnova programske arhitekture, pri čemer bodo predstavljene teoretične osnove tovrstnih sistemov, na podlagi katerih bo zasnovan postopek izdelave programske opreme. Za potrebe testiranja v fazi razvoja na delovnem mestu bo izvedena električna vezava sestavnih komponent in priprava programskih razvojnih okolij. Razvita programska oprema bo morala povezati vse uporabljene elemente slikovnega sistema in s sprotnim testiranjem dokazati robustnost delovanja. Za potrditev uspešnosti razvoja bo slikovni sistem vgrajen na obstoječo napravo, kjer bo izvedeno testiranje celotnega procesa. Sistem ţelimo s testiranjem verificirati, saj ga bomo le tako lahko predali naročniku. Na podlagi izkušenj iz ostalih projektov obstaja moţnost, da bo projekt zaključen z določeno zamudo, saj teče vzporedno z ostalimi projekti v podjetju. Do prestavitev rokov lahko pride zaradi sprememb ali dodatnih ţelja naročnika, povzročijo jih lahko tudi zamude pri dobavi komponent, pride lahko do zamud zaradi prenatrpanosti v oddelkih tehnologije, montaţe ali razvoja. Pričakujemo, da bo sistem razvit do konca in tudi uspešno preizkušen, saj je ţe sestavni del prodane ponudbe, kar pomeni, da bo vse morebitne teţave potrebno tako ali drugače rešiti. 2

29 2. Opredelitev procesa paletizacije in pregled obstoječega sistema Da lahko razvijemo kvaliteten izdelek, ki bo optimalno opravljal svojo funkcijo, je potrebno dobro razumeti vse tehnične procese, v katerih bo naš izdelek sodeloval. Najprej je potrebno preučiti obstoječe naprave, ki sodelujejo v procesu, spoznati njihovo prostorsko umestitev, definirati njihove naloge in funkcije ter spoznati njihove lastnosti in omejitve. Ko imamo dobro definiran obstoječi tehnični proces, lahko vanj umestimo novo tehnološko operacijo, za katero bomo razvijali nov tehnični sistem. V našem primeru gre za tehnični proces paletizacije, ki mu moramo dodati tehnološko operacijo zajema slik, ki jo bo opravljal vgrajen slikovni sistem Opredelitev procesa paletizacije Zahteve in tehnične specifikacije A-0 Posamezni paketi ZLAGANJE PAKETOV NA PALETO (PALETIZACIJA) 0 A0 Sistem za paletizacijo Polna paleta Slika 2.1: IDEF0 model tehničnega procesa zlaganja paketov na paleto (paletizacija) 3

30 Opredelitev procesa paletizacije in pregled obstoječega sistema Zahteve in tehnične specifikacije Posamezni paketi TRANSPORT PAKETOV Izstop paketov iz linije na mesto za formiranje Transportna linija (navadni, dozirni) 1 A1 Zahteve in tehnične specifikacije Sloj paketov odloţen na paleti DVIGNI GLAVO IN ODLOŢI KARTON (PO POTREBI) NA SLOJ FORMIRAJ SLOJ IN GA POTISNI NA GLAVO 5 A6 Manipulator kartonov Skladišče kartonov Paletizer Priprava sloja (obračalnik, odlagalna miza, potisnik), Paletizer n; število slojev 2 A2 Paketi formirani v sloj na glavi paletizerja Najvišji sloj odloţen, n = max POMAKNI SLOJ NIŢJE TRANSPORT POLNE PALETE Transportne valjčnice Skladišče palet Komisionirni voziček 6 A7 3 A3 Paletizer (glava paletizerja, aktuator z-os) Polna paleta Sloj paketov spuščen do nivoja odlaganja ODLOŢI SLOJ NA PALETO 4 A4 Paletizer (glava paletizerja) Sloj paketov odloţen na paleti NODE: A0 TITLE: ZLAGANJE PAKETOV NA PALETO (PALETIZACIJA) NO.: Slika 2.2: Razdelan IDEF0 diagram procesa zlaganja paketov na paleto (paletizacija) 4

31 Opredelitev procesa paletizacije in pregled obstoječega sistema Za opredelitev tehničnega procesa zlaganja paketov na paleto, ki mu na kratko pravimo tudi paletizacija, smo uporabili funkcijski model IDEF0 [1]. Z njim je na slikah 2.1 in 2.2 natančno popisan potek izvajanja procesa, ki opredeljuje posamezne tehnološke operacije v procesu, pogoje pod katerimi se izvajajo, vhodne in izhodne veličine ter tehnične sisteme, ki opravljajo operacije. Posamezni tehnični sistemi so povezani v skupen sistem za paletizacijo. Moţne so sicer različne izvedbe sistemov, vendar se princip delovanja naprav v večji meri ne spreminja. Proces se vedno začne s transportom posameznih paketov, konča pa s transportom polno naloţene palete. Samo zlaganje paketov na paleto je moţno izvesti na več načinov, odvisno je predvsem od tipa izdelka, ki se zlaga na paleto, višinske razlike med transportom paketov in transportom palet. V principu je vsaka naprava za zlaganje sestavljena iz glave, ki pakete naloţi in odloţi ter mehanizma oziroma ogrodja, ki skrbi za premikanje glave po prostoru. Mi se bomo osredotočili na predstavitev sistema, ki bo uporabljen v našem primeru, to je paletizer s premikanjem glave po vertikalni osi Shematski prikaz osnovnega sistema za paletizacijo Slika 2.3: Shematski prikaz osnovnega sistema za paletizacijo tlorisni pogled Na slikah 2.3 in 2.4 je shematsko prikazan proces paletizacije v tlorisnem in stranskem pogledu. Prikazan je tok materiala paketov skozi različne segmente oziroma faze, in sicer od transporta paketov, preko priprave sloja in paletizerja, čigar glava se skupaj s paketi premika po z-osi in pakete odlaga na paleto, do transporta polnih palet. V sistemu mora biti urejen tudi dovod praznih palet, ki pa za našo razlago ni ključnega pomena in na shemi zaradi preglednosti namenoma ni prikazan. 5

32 Opredelitev procesa paletizacije in pregled obstoječega sistema Slika 2.4: Shematski prikaz osnovnega sistema za paletizacijo stranski pogled Transport paketov Posamezni paketi potujejo od pakirne naprave do mesta, kjer se jih naloţi na paleto po transportni liniji. Ta segment imenujemo transport paketov. Transportne linije morajo med prevozom paketov od točke A do točke B običajno izpolnjevati naslednje naloge: razvrščanje paketov, premagovanje višinskih razlik, izogibanje konstrukcijskim oviram in kontroliranje hitrosti oziroma kapacitet, saj lahko delujejo tudi kot neke vrste začasna skladišča. Transport paketov kot sestavni del paletizacijskega sistema je sestavljen iz navadnega in dozirnega transportnega segmenta, ki predaja pakete naslednji fazi, to je pripravi sloja Priprava sloja Segment priprave sloja je sestavljen iz obračalnika paketov, zamikalnika paketov, mize, ustavljalne letve in potisnika. Ker niso vsi paketi vedno enako obrnjeni na sloju, je potrebno nekatere obračati, kar na izhodu iz linije počne obračalnik. Da so paketi lepo formirani v sloj, jih je treba tudi malce premakniti iz linijske poti. To je običajno izvedeno s potisno roko, v kompleksnejših izvedbah lahko to nalogo prevzame obračalnik. Ustavljalna letev pakete ustavi na formirni mizi, ko prispe zadnji paket in je sloj kompleten, ga potisnik potisne na glavo paletizerja. 6

33 Opredelitev procesa paletizacije in pregled obstoječega sistema Paletizer Paletizer je namenjen zlaganju pakiranih končnih proizvodov na ţeleno paleto. Sestavljen je iz močnega ogrodja in premične glave. Ko je sloj potisnjen na glavo, se ta spusti do prazne palete oziroma do najvišje naloţenega sloja in razpre glavo. Pakete med odlaganjem na paleto v ustrezno formiranem sloju zadrţujejo stranske letve. Ko je sloj odloţen na paleto, se glava vrne po nov sloj. Medtem se na sloj lahko odloţi sloj kartona, če je za ta tip izdelka to specificirano, to delo opravi manipulator kartona, ki je montiran na ogrodje paletizerja. Ko je zadnji sloj naloţen, odpotuje paleta naprej, na njeno mesto pa pride prazna in pripravljena za nove sloje Transport palet Transport palet se uporablja za prevoz palet na ţeleno mesto. Po izvedbah ločimo valjčni in veriţni transport, katerih višino prilagodimo zahtevam naročnika. Ustrezna izbira pogona in uporabna širina transporta sta odvisni od kapacitete ter velikosti palete. Poleg standardnih transporterjev palet so sestavni deli transportne linije tudi delilni voziček, katerega uporabljamo pri povezovanju večjega števila paletirnih celic, veriţnovaljčno kriţišče, obračalo palet, dviţna naprava za dvig palet pod strojem za ovijanje palet, v kolikor je potrebno polno paleto oviti, vertikalni transport palet, ki je namenjen premagovanju višinskih razlik, različne izvedbe komisionirnih vozičkov, ki se skupaj z valjčnicami hitreje pomikajo na kolesih vodenih po tirnicah in pa zalogovnik palet, ki je namenjen shranjevanju in razdeljevanju praznih palet [2]. Slika 2.5: Tlorisna postavitev realnih naprav v poenostavljenem sistemu za paletizacijo [2] 7

34 Opredelitev procesa paletizacije in pregled obstoječega sistema 2.3. Opis uporabljenega sistema za paletizacijo po naročilu Dejanski sistem za paletizacijo, na katerega bomo vgrajevali slikovni sistem in je prikazan na sliki 2.6, je kompleksnejši, a deluje po istem principu kot osnovni, ki smo ga pravkar predstavili. Dejanski sistem lahko z enim paletizerjem zlaga dva tipa izdelkov oziroma paketov. Kapaciteta paletizerja je na ta način bolje izkoriščena. Zaradi polnjenja dveh tipov izdelkov, je transportu paketov, pripravi sloja in valjčnici za dovod praznih palet, ki so prikazani na spodnjem delu slike, zrcalno dodan enak sklop naprav, pod paletizerjem in pripravama sloja se nahaja dvojna valjčnica na komisionirnem vozičku. Zraven sistema se nahaja še en komisionirni voziček na tirnicah, ki skrbi za povezavo dovoza praznih in odvoza polnih palet z ostalimi deli linje transporta palet. Sistem je zasnovan po principu modulne gradnje zato lahko enostavno povečujemo število tovrstnih sistemom v proizvodnem obratu. V našem primeru je naročnik zaenkrat naročil dva takšna sistema, v prihodnosti pa jih namerava dodati še več. Iz tega razloga mora slikovni sistem, ki ga bomo razvili, prav tako slediti načelom modularnosti. Slika 2.6: Dejanska tlorisna postavitev naprav v našem sistemu za paletizacijo [2] 8

35 Opredelitev procesa paletizacije in pregled obstoječega sistema Slika 2.7: 3D-model (večine) naprav v našem sistemu za paletizacijo [2] 2.4. Krmilna arhitektura obstoječega sistema Za avtomatizirano delovanje sistema za paletizacijo skrbi ustrezen krmilni sistem, zasnovan na Siemensovem PLC-ju. Shematski prikaz je razviden na sliki 2.8. Slika 2.8: Shematski prikaz krmilne arhitekture obstoječega sistema za paletizacijo Da lahko sistem za paletizacijo skrbi za upravljanje z vhodnimi in izhodnimi veličinami oziroma materialom, potrebuje poleg nosilnih konstrukcij še skupek senzorjev in aktuatorjev, ki so vezani v zanko s krmilnikom. Za premikanje posameznih delov naprav skrbijo aktuatorji. V to kategorijo spadajo motorji, bodisi servo, kjer je zahtevana določena natančnost in odzivnost, ali asinhronski za enostavnejše primere. Med aktuatorje štejemo tudi pnevmatske cilindre, v kolikor so 9

36 Opredelitev procesa paletizacije in pregled obstoječega sistema uporabljeni, krmiljeni pa so s pomočjo elektromagnetnih ventilov. Delovanje aktuatorjev krmili Siemensov PLC. Da se lahko krmilnik odloči, kdaj je potrebno vklopiti/izklopiti katerega izmed aktuatorjev, potrebuje podatke iz mnoţice senzorjev, ki zajemajo podatke stanja naprav in so vezani na vhode krmilnika. Običajni predstavniki senzorjev so induktivna stikala, fotocelice in razni enkoderji. Delovanje sistema je načeloma avtomatizirano, vseeno pa potrebuje še nekaj sprotnih navodil oziroma informacij, kako naj proces opravlja. To stori operater na podlagi reference preko HMI panela, ki se preko lokalne mreţe povezuje na krmilnik in mu daje ukaze o ţelenem delovanju. Pri razvoju slikovnega sistema bomo morali najti način, kako ga uspešno integrirati znotraj obstoječe krmilne arhitekture. 10

37 3. Zasnova vključitve slikovnega sistema v proces paletizacije 3.1. Zahteve in specifikacije naročnika Osnovna zahteva naročnika je bila zgolj vzpostavitev sistema, ki bo samodejno zajemal slike posameznih slojev na paleti med procesom paletizacije. Naročnik ni ţelel vpletati zapletenih procesov obdelave slik, kot so branje kod ali prepoznavanje oblik, temveč samo zajem posameznih slik. Slike naj bi sluţile kot dokazno gradivo v primeru pritoţb naročnikov, da niso prejeli polno naloţenih palet. Naročnik je posredoval dokument s podatki o predvidenem procesu paletizacije, ki vsebuje naslednje glavne informacije in zahteve: dimenzije vseh vrst paketov, ki jih ţelijo zlagati; tip in velikost vseh vrst palet, na katere se bodo paketi zlagali; vse oblike zlaganja posameznih slojev; orientacije paketov; variacije števila slojev na paleti; maksimalna višina polne palete; predvideni časi paletirnih operacij; frekvenca nalaganja, zahtevana minimalna kapaciteta paletirne naprave in dodatne opombe (npr. ovitje polne palete s folijo, polaganje vmesnih kartonov). Za razvoj slikovnega sistema so pomembne predvsem informacije o tipu oziroma velikosti palete, na katero se bodo paketi zlagali, in maksimalna višina polne palete. Na podlagi teh dveh informacij lahko določimo potrebno velikost opazovanega območja in v povezavi s tem tudi oddaljenost opazovanega objekta glede na izbrane optične komponente, katere bomo določili s pomočjo enačb optične preslikave. Kar se tiče izvedbe slikovnega sistema, naročnik ni podal nobenih zahtev, zato smo imeli pri zasnovi dokaj proste roke. Na sliki 3.1 je prikazan primer s strani naročnika podanih informacij o ţelenem procesu paletizacije. 11

38 Zasnova vključitve slikovnega sistema v proces paletizacije Slika 3.1: Vzorec (del) podatkov o načinu paletizacije, kalkulacije kapacitet [2] 3.2. Opredelitev zajema slike in mesto v procesu paletizacije V tehnični proces paletizacije, prikazan z IDEF0 diagramom na sliki 2.2, bomo vključili aktivnost zajema in shranjevanja slik, ki jo bomo z namenom učinkovitega razvoja slikovnega sistema, ki bo aktivnost opravljal, natančno popisali v razčlenjenem diagramu. Zahteve in tehnične specifikacije Sloj paketov odloţen na paleti ZAJEMI IN SHRANI SLIKO 0 A5 Shranjena enoznačno definirana slika sloja na paleti Slikan sloj na paleti Slikovni sistem A5-0 A-0 Slika 3.2: IDEF0 model tehnološke operacije zajemi in shrani sliko 12

39 Zasnova vključitve slikovnega sistema v proces paletizacije Zahteve in tehnične specifikacije Posamezni paketi TRANSPORT PAKETOV Izstop paketov iz linije na mesto za formiranje Zahteve in tehnične specifikacije Sloj paketov odloţen na paleti Transportna linija (navadni, dozirni) ZAJEMI IN SHRANI SLIKO Slikovni sistem 5 A5 1 A1 Shranjena slika Slikan sloj na paleti FORMIRAJ SLOJ IN GA POTISNI NA GLAVO Priprava sloja (obračalnik, odlagalna miza, potisnik), Paletizer 2 A2 DVIGNI GLAVO IN ODLOŢI KARTON (PO POTREBI) NA SLOJ 6 A6 Manipulator kartonov Skladišče kartonov Paletizer Zahteve in tehnične specifikacije n; število slojev Paketi formirani v sloj na glavi paletizerja POMAKNI SLOJ NIŢJE 3 A3 Paletizer (glava paletizerja, aktuator z-os) Najvišji sloj odloţen, n = max TRANSPORT POLNE PALETE Transportne valjčnice Skladišče palet Komisionirni voziček 7 A7 Sloj paketov spuščen do nivoja odlaganja Polna paleta ODLOŢI SLOJ NA PALETO 4 A4 Paletizer (glava paletizerja) Sloj paketov odloţen na paleti NODE: A0 TITLE: ZLAGANJE PAKETOV NA PALETO (PALETIZACIJA) NO.: Slika 3.3: IDEF0 diagram procesa paletizacije z vključeno aktivnostjo zajema in shranjevanja slik 13

40 Zasnova vključitve slikovnega sistema v proces paletizacije Zahteve in tehnične specifikacije, prostorska umestitev točke opazovanja Sloj paketov odloţen na paleti ZAGOTOVI OSVETLITEV OBJEKTA 2 A52 Vir svetlobe (ambientni, dodatni) Osvetljen objekt (sloj paketov na paleti) Zahteve in tehnične specifikacije, izvedena fizična vezava komponent ZAGOTOVI OPTIČNO PRESLIKAVO OBJEKTA Objektiv 3 A53 Optično preslikan objekt Zunanji sproţilec ZAJEMI IN IZVEDI DIGITALIZACIJO SLIKE Senzor kamere 4 A54 Digitalizirana slika objekta Digitalizirana slika objekta IZVEDI PRENOS SLIKE Slika v pomnilniku računalnika Zahteve in tehnične specifikacije Kamera 5 A55 Kabel, GigE, USB 3.0 Računalnik, programska oprema Siemens PLC PRIDOBI PODATKE ZA ENOZNAČNO DEFINIRANJE SLIKE OPC vmesnik 6 A56 Računalnik, programska oprema Enoznačno definirana slika sloja na paleti SHRANI SLIKO 7 A57 Shranjena enoznačno definirana slika sloja na paleti Slikan sloj na paleti Računalnik, programska oprema Disk, baza NODE: A5 TITLE: ZAJEMI IN SHRANI SLIKO NO.: Slika 3.4: Razčlenjen IDEF0 diagram zajema in shranjevanja slik 14

41 Zasnova vključitve slikovnega sistema v proces paletizacije Komentar diagramov Razčlenjen diagram, prikazan na sliki 3.4, nam bo sluţil kot glavno vodilo pri razvoju slikovnega sistema, ki bo zastavljeno nalogo opravljal. Najprej moramo natančno opredeliti skupne ţelje, zahteve in specifikacije, ki jim mora razviti sistem zadostiti. Te bodo sluţile kot iztočnice na vsakem koraku razvoja. Pri postopku sinteze nam bo v pomoč tudi splošna, teoretična zgradba slikovnih sistemov [3], ki je prikazana na sliki 3.5. V osnovni zgradbi so razvidni posamezni elementi oziroma tehnični sistemi, ki bodo opravljali posamezne naloge, definirane v prikazanem IDEF diagramu. Slika 3.5: Osnovna zgradba slikovnih sistemov [3] Po natančni določitvi zahtev in specifikacij se bomo lotili mehanskega dela zasnove sistema. Izdelali bomo koncepte rešitve prostorske umestitve točke opazovanja, izbrali najboljšo rešitev in izbor utemeljili. Ko bo prostorska umestitev končana, bomo preučili potrebo po pravilni osvetlitvi, na podlagi zahtev in pregleda trga izbrali kamero, katere lastnosti senzorja bodo skrbele za kvalitetno digitalizacijo slike, ki se bo preko ustreznih medijev prenašala na zasnovano programsko arhitekturo. Skupaj z izbiro kamere bomo po zakonitostih optične preslikave izbrali tudi ustrezno optiko. Sledila bo zasnova programske arhitekture, kjer bomo definirali zgradbo posameznih elementov, ki bodo skrbeli za prenos slike, komunikacijo za pridobitev podatkov za enoznačno definiranje slik in sistem shranjevanja slik. Tako zasnovana arhitektura bo sluţila kot iztočnica za izdelavo programske opreme. 15

42 Zasnova vključitve slikovnega sistema v proces paletizacije 3.3. Določitev skupnih želja in zahtev Za laţjo zasnovo rešitve problema smo v podjetju izoblikovali in dodali nekaj internih ţelja in zahtev. Namen tega je, da bo končni izdelek čim kvalitetnejši in da bo zadostoval ţeljam naročnika in internim standardom podjetja, saj bi ga podjetje pozneje lahko vključilo v univerzalno ponudbo palete izdelkov. Razdelan seznam zahtev in ţelja je prikazan v preglednicah 3.1, 3.2 in 3.3, razdeljen pa je na zahteve glede konstrukcijske vgradnje, optičnega sistema in zasnove programske arhitekture. Ţeljam iz vidika prostorske umestitve smo dodali tudi stopnjo pomembnosti, da bomo lahko na podlagi tega laţje vrednotili posamezne konceptne rešitve. Preglednica 3.1: Določitev ţelja in zahtev slikovnega sistema iz vidika prostorske umestitve Št. Ţelje in zahteve Pomembnost 1. Optimalnost zajema sloja konstantnost za vse sloje 5 2. Ustrezno mesto vgradnje ne sme biti v napoto sestavnim delom obstoječih naprav 5 3. Ustrezno mesto vgradnje z vidika modularnosti 2 4. Čim manjši vpliv na izgled naprave 3 5. Čim manjši prenos vibracij na optični sistem 2 6. Čim manjše poseganje v sekvenco delovanja obstoječega sistema paletizacije 3 7. Ne sme se zmanjševati kapaciteta obstoječega sistema paletizacije 4 8. Enostavnost izvedbe nosilca 4 9. Enostavnost priklopa, bliţina in vodenje kablov Čim manjša cena mehanske konstrukcije Čim manjši vpliv mesta vgradnje na ceno optičnega sistema 4 Preglednica 3.2: Določitev ţelja in zahtev glede izbire komponent optičnega sistema Št. Ţelje in zahteve 6. Ustrezna robustnost in razred zaščite izbrane strojne opreme 7. Zadovoljiva ločljivost 8. Zadovoljiva osvetljenost slikanih izdelkov 9. Barvne slike 10. Zadovoljiva frekvenca slikanja 11. Dobava preko obstoječih dobaviteljskih partnerjev 12. Primerna industrijska povezljivost 13. Široka programska podpora 14. Dobra tehnična podpora 15. Moţnost dobave testne opreme in vračila morebitne neustrezne opreme 16. Čim niţja cena Preglednica 3.3: Določitev ţelja in zahtev glede programske arhitekture slikovnega sistema Št. Ţelje in zahteve 17. Sistem enoznačnega razločevanja slik 18. Lokalno shranjevanje in dostop do slik 19. Določen čas hranjenja slik 20. Delovanje popolnoma avtomatizirano 16

43 Zasnova vključitve slikovnega sistema v proces paletizacije 3.4. Določitev specifikacij slikovnega sistema Naslednji korak pri zasnovi sistema je pretvorba ţelja in zahtev v konkretne specifikacije, kar pomeni, da skušamo ţelje omejiti na določen razpon številskih vrednosti. Preglednica 3.4: Določitev specifikacij slikovnega sistema Št. mere Št. ţelje Mera Enota Mejna Idealna 1 1 Max. višina polne palete (skupaj s paleto) mm Min. merilno območje kamere mm x mm 1200 x x Razred zaščite kamere > IP54 IP Ločljivost mm > 10 > Osvetlitev slikanega objekta Ambientna Lastna 6 4,5 Dovoljeni čas zajemanja slike ms < 1000 < Frekvenca zajemanja slike 1/s < 1/10 < Barvni senzor DA 9 12 Napajanje V Protokol povezave GigE Sproţilec (Trigger) Zunanji Zunanji+ programski 12 13,14 OS podpora Windows Multiplatformno Skupna cena optičnega sistema < 1000 < Dobavni roki čas < 5 tednov 2 3 dni 15 11,14,15 Dobavitelji Slovensko predstavništvo Poimenovanje slik Št.palete_št.sloja_čas zajema Mesto shranjevanja slik Lokalni disk programa Čas hranjenja slik čas > 1 mesec > 1 leto Z uspešno določitvijo skupnih ţelja, zahtev in specifikacij smo pripravljeni na idejno zasnovo slikovnega sistema, ki jo bomo razdelili na mehanski in programski del. 17

44 Zasnova vključitve slikovnega sistema v proces paletizacije 18

45 4. Idejna zasnova sistema mehanski del V tem poglavju bomo predstavili zasnovo mehanskega dela slikovnega sistema. V ta del štejemo izdelavo konceptov prostorske umestitve sistema, ki za sabo potegne načine izvedbe mehanske konstrukcije oziroma nosilca optičnega sistema in vpliva na preračune optične preslikave, kar pomeni, da ima vpliv tudi na izbiro optičnih komponent. Izdelani koncepti bodo vrednoteni po načelih metodike konstruiranja. Na podlagi izbranega koncepta prostorske umestitve ter zahtev in specifikacij, ki se tičejo slikovnega elementa in so določeni v prejšnjem poglavju, bomo postavili izhodišča za izbiro kamere in objektiva, pri čemer bo pred končno izbiro komponent izveden temeljit pregled trga Izdelava konceptov prostorske umestitve slikovnega sistema Koncept 1 kamera na ogrodju paletizerja Slika 4.1: Koncept 1 kamera na ogrodju paletizerja 19

46 Idejna zasnova sistema mehanski del Koncept 2 kamera na glavi paletizerja Slika 4.2: Koncept 2 kamera na glavi paletizerja Koncept 3 kamera na oddaljenem nosilcu Slika 4.3: Koncept 3 kamera na oddaljenem nosilcu 20

47 Idejna zasnova sistema mehanski del Vrednotenje konceptov in izbira rešitve Vrednotenje bomo izvedli na podlagi ţelja in zahtev slikovnega sistema iz vidika prostorske umestitve, ki so navedene v preglednici 4.1. Vsaki zahtevi smo dodelili pomembnost po oceni od 1 do 5. Za vsak koncept bomo ocenili stopnjo izpolnjevanja zahteve, prav tako z oceno od 1 do 5. Za vsako zahtevo zmnoţimo pomembnost in stopnjo izpolnjevanja ter na koncu te vrednosti za vsako zahtevo seštejemo. Enako storimo za vse 3 koncepte, tisti, ki ima na koncu najvišji seštevek, je izbran za najboljšo rešitev. Prvi koncept je zasnovan tako, da je kamera pritrjena na fiksno ogrodje paletizerja, na drugem je pritrjena na glavo paletizerja in se skupaj z njo giblje, na tretjem konceptu pa je kamera nameščena na posebnem nosilcu, ki je od naprave oddaljen. Preglednica 4.1: Vrednotenje konceptov rešitve prostorske umestitve slikovnega sistema Št. Ţelje in zahteve Pomembnost Koncept1 Koncept2 Koncept3 1 Optimalnost zajema sloja konstantnost za vse sloje Ustrezno mesto vgradnje ne sme biti v napoto sestavnim delom obstoječih naprav Ustrezno mesto vgradnje z vidika modularnosti Čim manjši vpliv na izgled naprave Čim manjši prenos vibracij na optični sistem Čim manjše poseganje v sekvenco delovanja obstoječega sistema paletizacije Ne sme se zmanjševati kapaciteta obstoječega sistema paletizacije Enostavnost izvedbe nosilca Enostavnost priklopa, bliţina in vodenje kablov Čim manjša cena mehanske konstrukcije Čim manjši vpliv mesta vgradnje na ceno optičnega sistema Rezultat Za koncept z najboljšo rešitvijo je bil izbran Koncept 1 Kamera na ogrodju paletizerja. Edina pomanjkljivost te rešitve je ta, da se oddaljenost od objekta z višanjem števila slojev vse čas spreminja, zato bodo spodnji sloji na sliki precej manjši od zgornjih, prav tako ne bodo mogli biti vsi sloji optimalno izostreni, ker bomo imeli objektiv s fiksno fokusno razdaljo in se torej sama ne more regulirati. Ker ne gre za nobeno prepoznavanje oblik ali branje oznak menimo, da so iz tega vidika te pomanjkljivosti zanemarljive, če pa bi nas zanimala še kakšna dodatna obdelava slik, bi seveda morali zagotoviti večjo konstantnost pri zajemanju slik. 21

48 Idejna zasnova sistema mehanski del 4.2. Osnovni preračun optičnega sistema Merilno območje in detektor slike Velikost merilnega območja kamere je določena s povečavo objektiva in fizično velikostjo detektorja slike [3]: { } { } (4.1) kjer je: povečava objektiva [mm] velikost merilnega območja v x-smeri [mm] velikost merilnega območja v y-smeri [mm] fizična velikost detektorja slike v x-smeri [mm] fizična velikost detektorja slike v y-smeri Slika 4.4: Korelacija med velikostjo detektorja slike in velikostjo merilnega območja [3] V našem primeru je velikost merilnega območja podana v specifikacijah, saj moramo zajemati pakete na EURO paleti, katere dimenzije znašajo 1200 x 800 mm. Da imamo nekaj rezerve in malce vidnega dodatnega roba ob paleti, bi bilo idealno merilno območje 1300 x 900 mm. Slika 4.5: Tipične velikosti detektorjev slike [3] 22

49 Idejna zasnova sistema mehanski del Velikost detektorja slike in povečava objektiva sta ob začetku snovanja sistema še neznanki. Velikosti detektorja slik so standardnih formatov, najpogosteje uporabljeni v takšnih industrijskih aplikacijah pa so razvidni na sliki 4.5 [3]. Za ime formata se uporabljajo inči, medtem ko so mere diagonal in stranic podane v mm Vzorčenje Ločiti moramo med vzorčenjem slike in vzorčenjem objekta oziroma merilnega območja. Pri vzorčenju slike definiramo razdaljo med dvema sosednjima točkama na detektorju slike, pri vzorčenju objekta pa definiramo razdaljo med dvema sosednjima izmerjenima točkama [3]. Slika 4.6: Vzorčenje slike in objekta [3] Vzorčenje slike [3]: (4.2) Vzorčenje merilnega območja [3]: (4.3) kjer je število slikovnih točk v x in y smeri. Pomembno je še, da se pri določitvi zahtevane ločljivosti zavedamo kako kompleksne objekte ţelimo meriti, da znamo določiti število slikovnih točk, potrebnih za to, da lahko objekt prepoznamo. Na primer, če ţelimo prebrati črko A, tega ne moremo storiti le z eno 23

50 Idejna zasnova sistema mehanski del slikovno točko, temveč jih potrebujemo več, priporočljivo pa je, da je frekvenca vzorčenja vsaj desetkrat višja od minimalno potrebne Optična preslikava za tanke leče Osnovna enačba optične preslikave za tanke leče (4.4) razmerje med fokusom objektiva in lego objekta ter slike [3]: (4.4) Enačba povečave (4.6) povečava je razmerje med velikostjo slike in objekta [3]: (4.5) (4.6) Slika 4.7: Optična preslikava za tanke leče [3] Opredelitev spremenljivk: [mm] goriščna razdalja [mm] razdalja med objektom in lečo [mm] razdalja med senzorjem in lečo [mm] razdalja med sliko in objektom [mm] velikost slike na senzorju [mm] velikost objekta 24

51 Idejna zasnova sistema mehanski del Iz enačb (4.4) in (4.6) izpeljemo enačbo za hitro ocena gorišča, ki ga potrebujemo za preslikavo. (4.7) Če je O velikost objekta, ki ga ţelimo meriti in a njegova oddaljenost od objektiva, lahko izračunamo potreben f tako, da za velikost slike S predpostavimo širino oziroma višino detektorja slike. Ko imamo izbrane vse optične komponente in moramo za namene izdelave nosilca kamere določiti točno razdaljo objekta od objektiva, lahko isto enačbo preoblikujemo, tako da a izrazimo: (4.8) 4.3. Izbira kamere Pregled trga kamer Na trgu lahko izbiramo med bogato ponudbo vseh vrst kamer. Pri pregledu smo se opirali na ţelje in specifikacije, ki smo jih opredelili v prejšnjem poglavju. Da bi laţje našli takšno, ki bi nam najbolj ustrezala, smo jih razdelili po kategorijah: navadne industrijske kamere, industrijske smart kamere s prepoznavanjem (FPGA), IP/analog video nadzorne kamere, web kamere, fotografski aparati in odporne kamere za potrošniško rabo. Navadne industrijske kamere Med industrijske kamere štejemo kamere, ki zagotavljajo določen nivo robustnosti za konstantno delovanje v industrijskem okolju. K tem spadajo ustrezno kompaktno ohišje, napajanje pod industrijsko napetostjo, priklopi, ki omogočajo vključitev zunanjega proţenja, dodajanje lastne osvetlitve ter moţnost dodajanja dodatnih vhodov in izhodov. Za sprotni prenos slike se uporabljajo standardni priključki, bodisi mreţni, kot so GigE, ali direktno preko priključkov, kot so USB, RS-232 in podobno. Takšne kamere po navadi omogočajo prenos slike na računalnik le z minimalnim predprocesiranjem, običajno se pri takšnih kamerah izvaja obdelava slik preko programske opreme, ki teče na računalniku in jo razvijemo sami s klasičnimi programskimi jeziki. Vmesnik, ki je priloţen kameri, 25

52 Idejna zasnova sistema mehanski del omogoča le osnovno upravljanje s kamero. Takšna vrsta kamere se najbolj prilega našim ţeljam in zahtevam. Primer tovrstne kamere je prikazan na spodnji sliki. Slika 4.8: Primer navadne industrijske kamere [8] Industrijske smart kamere s prepoznavanjem (FPGA) Razlika med navadnimi in namenskimi industrijskimi kamerami s prepoznavanjem je v tem, da imajo slednje vgrajen zmogljiv FPGA čip, ki je zmoţen lastne obdelave slik, preden so te prenesene na računalnik. Njihovo delovanje je tako hitrejše, robustnejše, računalnik pa se uporablja zgolj za prikaz rezultatov. Takšne kamere pridejo v kompletu z namensko razvito programsko opremo, ki omogoča hitro programiranje in vključitev v industrijske procese. Glavna slabost takšnih kamer je cena, ki je zaradi kompletne rešitve nekajkrat višja v primerjavi z navadnimi industrijskimi kamerami. Slika 4.9: Primer industrijske smart FPGA kamere [9] IP/analog video nadzorne kamere Takšne kamere se uporabljajo predvsem v varnostni in nadzorni tehniki, za prikazovanje slike v ţivo na ekranih in hranjenje za določen čas. Slika se običajno prenaša preko mreţe ali preko video kabla na sprejemnik. Omejitve pri takšnih kamerah za industrijske namene so predvsem pri ponudbi industrijskih priklopov, moţnostih programiranja za potrebe prilaganja lastnim procesom, prav tako pa so namenjene predvsem za statično montaţo, pri čemer so ohišja pogosto velika in nerodna. V kolikor so izvedbe kompaktnejše, je razred robustnosti temu primerno niţji. 26

53 Idejna zasnova sistema mehanski del Slika 4.10: Primeri IP nadzornih kamer [10] Web kamere V to kategorijo štejemo tiste kamere, ki jih uporabljamo za direkten priklop na računalnike preko USB priključkov in so v prvi vrsti namenjene za izvajanje video klicev in podobno. Delovanje takšne kamere in njene slike bi z določenimi odprtokodnimi programi načeloma lahko uporabili, vendar je pri takšnih kamerah vprašljiva robustnost in primernost za vgradnjo v industrijsko okolje. Slika 4.11: Primer spletne kamere za vsakdanjo uporabo s PC računalnikom [11] Fotografski aparati S fotografskimi aparati je moţno doseči izjemne kakovosti slik, vendar so povsem neprimerni za vgradnjo v industrijska okolja, zato jih v našem primeru nismo resno obravnavali. Slika 4.12: Primer fotografskega aparata z objektivom [12] 27

54 Idejna zasnova sistema mehanski del Odporne kamere za potrošniško rabo V zadnjem času so zelo popularne odporne kamere za potrošniško rabo, ki dosegajo visoke kvalitete slik, odlično robustnost in čedalje niţje cene. Teţava je predvsem v industrijski povezljivosti in zmoţnosti prilagajanja specifičnim industrijskim procesom, poleg tega bi bila tudi umestitev takšne kamere na industrijsko napravo z vidika celostnega videza neprofesionalna. Slika 4.13: Primer odporne kamere za potrošniško rabo [13] Kriteriji za izbiro kamere Na podlagi zahtev in specifikacij smo iz zgornje skupine lahko hitro izločili za naš sistem neprimerne skupine. Kamera bo delovala v industrijskem okolju, zato je ključno, da je robustna in da omogoča povezljivost na ravni standardnih industrijskih naprav. Iz vidika robustnosti takoj odpadejo klasični fotografski aparati in web kamere. Veliko nadzornih kamer ima dokaj visok razred zaščite, a so pogosto njihova ohišja precej velika, poleg tega pa je še njihova industrijska povezljivost vprašljiva. Na isto teţavo naletimo pri popularnih odpornih kamerah za potrošniško rabo. Najbolj prilagojene in tudi enostavne za integracijo v industrijske procese so namenske FPGA kamere, saj je njihovo delovanje hitro, robustno in kvalitetno, programska podpora pa je običajno tako razvita, da je programiranje kratko in učinkovito. Edina teţava je, da so takšni sistemi v primerjavi z navadnimi industrijskimi kamerami zelo dragi (npr. faktor 5x in več). Ker za našo aplikacijo ne potrebujemo dodatnih uslug kot zgolj zajemanje slik, tako drag sistem ne bi bil ekonomsko opravičljiv. Nazadnje smo torej izbirali med navadnimi industrijskimi kamerami, pri čemer smo preverili ponudbo pri nekaterih znanih proizvajalcih, kot so npr. Basler, SICK, Cognex, IDS Imaging, Imaging Source ipd. Na teţavo smo naleteli pri tem, da večina proizvajalcev nima velikega interesa imeti v ponudbi navadne kamere, saj je njihov glavni cilj razvoj lastne logike in ponudba celovitih rešitev, zato so navadne kamere zgolj stranska ponudba. Glavna ţelja podjetja pri izbiri je bila, da se naveţemo na lokalne dobavitelje, s katerimi podjetje dnevno sodeluje, saj je v tem primeru enostavna dobava in dobra tehnična podpora v primeru kakršnih koli teţav zagotovljena. Ker imajo v podjetju tudi interni standard za minimalni zaščitni razred komponent senzorike IP54 [14], je to avtomatično izločilo večji del kamer, saj so le-te običajno razreda IP30 (večina) ali IP65/67. Nekateri proizvajalci so 28

55 Idejna zasnova sistema mehanski del nam za svoje kamere sicer ponujali dodatna zaščitna ohišja, ki pa so bila v glavnem takšna kot pri nadzornih kamerah za zunanjo uporabo velika in nerodna. Izbirali smo torej le med kamerami z zaščito IP65/67, v prihodnje pa bi bilo smiselno razmisliti, ali je takšna zaščita res nujno potrebna, saj je izbira med IP30 kamerami mnogo večja, niţja pa je tudi cena. Kar se tiče ostalih lastnosti kamer, smo se drţali specifikacij, definiranih v tabeli 4. Ločljivost je zadovoljiva pri pribliţno 2 megapikslih, več sicer ne škodi, zvišuje pa ceno, slika naj bo barvna Izbrana kamera Izbrali smo navadno industrijsko kamero proizvajalca SICK, katere specifikacije so razvidne v preglednici 4.2 [15]. Izbrana je bila na podlagi zahtev, specifikacij in definiranih kriterijev izbire. Kamera ustrezno izpolnjuje vse zahteve. Slika 4.14: Izbrana kamera SICK midicam I2D-602C [15] Preglednica 4.2: Tehnični podatki za kamero SICK midicam I2D-602C [15] Parametri senzorja / kamere Tip senzorja CMOS Št. slikovnih točk 1600 x 1200 točk ADC (analogno-digitalna pretvorba) 10 bit Velikost senzorja 1/1.8 Razmerje 4:3 Mere senzorja 7,2 mm x 5,4 mm Velikost slikovne točke 4,5 x 4,5 μm Št. slik na sekundo 35 fps Čas izpostavljenosti 20 μs 10 s Razred zaščite IP65 / IP67 Navoj objektiva C-mount Priključek za napajanje M12 industrijski Prenos slike GigE Proţenje Zunanje + programsko Podpora OS Windows/Linux Programska oprema I2D Software Suite (C++, C# podpora) 29

56 Idejna zasnova sistema mehanski del 4.4. Izbira objektiva Optični preračun Na podlagi izbranega koncepta za prostorsko umestitev kamere lahko definiramo okvirno oddaljenost objektiva od maksimalne višine polne palete, za katero ţelimo zagotavljati velikost merilnega območja 1300 x 900 mm. Velikost detektorja senzorja razberemo iz podatkovnega lista kamere (preglednica 4.2). Za oceno goriščne razdalje uporabimo enačbo (4.7), vhodni podatki znašajo: [mm] ocenjena (max.) razdalja med objektom in lečo [mm] velikost slike na senzorju [mm] velikost objekta (dodano nekaj rezerve) Glede na razmerje stranic merilnega območja in razmerja stranic detektorja slike vidimo, da je bolj smiselno izvesti oceno glede na daljšo stranico, saj bo ta prej padla iz merilnega območja kot pa krajša. Ocena goriščne razdalje: (4.9) Na podlagi rezultata izberemo primerno standardno goriščno razdaljo: (4.10) Za potrebe izdelave nosilca kamere je potrebno izračunati novo oddaljenost leče od maksimalne višine polne palete na podlagi izbrane goriščne razdalje objektiva. Računamo po enačbi (4.8): (4.11) To je torej minimalna razdalja, da še dosegamo ţeleno merilno območje. Privzemimo, da bomo na to razdaljo kamero tudi namestili. Za kontrolo naredimo še oceno ločljivosti in izkoriščenosti merilnega območja, to pa naredimo za primer maksimalne oddaljenosti od objekta, torej ko bo na paleti samo en sloj, z najniţjim tipom izdelka. Najprej izračunamo razliko v višini najvišjega moţnega sloja in najniţjega moţnega, ter prištejemo pravkar izračunano minimalno razdaljo. [mm] največja višina polne palete (skupaj s paleto) 307 [mm] najmanjša višina palete z enim slojem (skupaj s paleto) 1452 [mm] minimalna razdalja do objekta maksimalna razdalja do objekta 30

57 Idejna zasnova sistema mehanski del Maksimalna razdalja do objekta znaša: (4.12) Izračunamo razdaljo med senzorjem in lečo za primer maksimalne razdalje: ( ) ( ) (4.13) Izračunamo novo širino merilnega območja iz enačbe povečave (4.6) in podatkov o velikosti senzorja iz podatkovnega lista kamere (preglednica 4.2): (4.14) (4.15) (4.16) Za občutek, kolikšen deleţ na sliki bo predstavljal sloj paketov, koliko pa bo nepotrebne okolice, izračunamo izkoriščenost merilnega območja, če vemo da je velikost palete oziroma sloja 1200x800 mm: (4.17) (4.18) Vidimo, da bo v tem primeru izkoriščenega manj kot polovica merilnega območja. Kar pomeni, da bo na sliki še precej nepotrebne okolice, kar pa nas načeloma ne bo motilo, če bodo paketi vseeno dobro vidni. Preverimo še ločljivost, pri čemer vzamemo število točk (preglednica 4.2): iz podatkovnega lista kamere (4.19) (4.20) 31

58 Idejna zasnova sistema mehanski del Ločljivost je definirana kot razdalja med dvema izmerjenima točkama na objektu, za natančno prepoznavanje objektov pa potrebujemo vsaj nekaj točk na najmanjšo karakteristiko, ki jo ţelimo prepoznati. V našem primeru bomo imeli dovolj veliko gostoto točk, glede na to da opazujemo pakete velikosti 190 mm ali večje, na katerih ne rabimo brati majhnih oznak. Torej izračunana ločljivost je sprejemljiva, Pregled trga objektivov Običajno proizvajalci skupaj s kamero ponujajo tudi pripadajoče objektive. V našem primeru smo naleteli na teţavo, da je najkrajša goriščna razdalja, za katero je proizvajalec kamere lahko dobavil tudi objektiv, znašala 12 mm. Ker smo potrebovali objektiv z goriščno razdaljo 8 mm za senzor formata 1/1.8, smo bili primorani poiskati objektiv posebej. Glavne specifikacije pri iskanju so bile torej: goriščna razdalja: 8 mm format senzorja: 1/1.8 (lahko torej tudi objektivi za format 2/3 ) priključni navoj: C-mount Ker smo našli nekaj po specifikacijah zelo podobnih izdelkov, je bilo glavno merilo izbire čim niţja cena, glede na to, da kvaliteta slike ni prvotnega pomena Izbran objektiv Slika 4.15: Izbran objektiv Computar M0814-MP2 [16] Preglednica 4.3: Tehnični podatki za objektiv Computar M0814-MP2 [16] Parametri objektiva Največji premer slike format 2/3 Goriščna razdalja f 8 mm Numerična odprtina 1:1.4 Zaslonka F1.4 F16C Priključni navoj C-mount MOD najmanjša oddaljenost objekta 100 mm BFL zadnja goriščna razdalja 13,1 mm FBD razdalja od prirobnice do gorišča 17,562 mm 32

59 Idejna zasnova sistema mehanski del 4.5. Komentar glede osvetlitve V slikovnih sistemih pri zagotavljanju kakovosti slike in pravilnega poudarjanja merjenih lastnosti objekta igra ključno vlogo pravilna izbira in postavitev osvetlitve. V našem primeru ne izvajamo natančnih meritev, ker nam kakovost slike ni pomembna. V takšnih primerih nam pod pogojem, da je ambientna svetloba primerna, ni potrebno nameščati lastne osvetlitve. Naročnik je zatrdil, da je ambientna svetloba na lokaciji, kjer bo slikovni sistem nameščen, primerna, zato dodatne osvetlitve ne bomo nameščali. V primeru da bo objekt pomanjkljivo ali nekonstantno osvetljen, lahko slike do neke mere izboljšamo z nastavitvami za samodejno prilagajanje časa osvetlive in primerne ojačitve v kameri, glede na barvo in količino vpadle svetlobe. Izbrana kamera nam uporabo takšnih funkcij omogoča. V kolikor bi se izkazalo, da bi zaradi neprimerne osvetlitve prihajalo do nekvalitetnih slik, ki jih tudi z različnimi nastavitvami kamere ne bi mogli rešiti, bomo sistemu po potrebi naknadno vgradili lastni vir osvetlitve. 33

60 Idejna zasnova sistema mehanski del 34

61 5. Idejna zasnova programske opreme Kot smo omenili ţe v poglavju določitve ţelja, zahtev in specifikacij, nam naročnik ni podal posebnih zahtev glede programske opreme slikovnega sistema, ţelel je samo čim enostavnejše in vitko delovanje. Tovarna, kamor bo naročen sistem vgrajen, je v fazi izgradnje, tako da še nima povsem definirane informacijske arhitekture. Kljub daljšemu poizvedovanju ni specificiral odgovorov niti na osnovna vprašanja glede potrebe po navezavi na določen informacijski sistem, načina, lokacije in časa hranjenja slik ter načina delovanja ali videza uporabniškega vmesnika. Tako smo imeli pri zasnovi dokaj proste roke. Odločili smo se, da poskušamo zasnovati univerzalen in samostojen sistem, ki bo uporaben in prilagodljiv, ne glede na naknadno izbiro informacijske arhitekture v naročnikovi tovarni Idejna zasnova delovanja programske opreme Najbolj pogosto in univerzalno upravljanje s slikovnimi sistemi se lahko izvaja z uporabo programske opreme, zasnovane na podlagi operacijskih sistemov Windows, ki ponuja najširšo paleto orodij in knjiţnic na področju obdelave slik. Iz tega razloga smo se tudi mi odločili za uporabo računalnika z operacijskim sistemom Windows, prav tako smo izbrali tudi kamero, ki nam bo to omogočala. Najprej smo morali ugotoviti, na kakšen način bomo izvedli integracijo električnih elementov slikovnega sistema v krmilno arhitekturo obstoječega sistema. Na sliki 5.1 je prikazana shema vključitve električnega dela slikovnega sistema, torej komponent kamere, gostujočega računalnika za upravljanje ter Siemensovega krmilnika, ki upravlja s celotnim sistemom za paletizacijo, ki bodo povezane preko lokalne mreţe. 35

62 Idejna zasnova programske opreme Slika 5.1: Vključitev električnega dela slikovnega sistema v krmilno arhitekturo celotnega sistema V nadaljevanju moramo odgovoriti na vprašanja, na kakšen način bomo zasnovali glavni program krmilnega računalnika za kamero, na kakšen način bo izvedena komunikacija s kamero in komunikacija za izmenjavo informacij s krmilnikom ter kako bo izvedeno proţenje slik. Definirati moramo tudi, na kakšen način bo izveden sistem za enoznačno poimenovanje slik skupaj z načinom in lokacijo shranjevanja ter kako bo omogočen dostop in pregledovanje slik. Slika 5.2: Strukturna vprašanja pri zasnovi programske arhitekture Po temeljitem pregledu moţnih rešitev in odgovorov na zgoraj zastavljena vprašanja smo zasnovali arhitekturo, ki je shematsko prikazana na sliki 5.3. Glavni program, oziroma aplikacija kot mu lahko tudi pravimo, ki bo kontroliral delovanje slikovnega sistema se bo nahajal na računalniku z operacijskim sistemom Windows in bo izdelan v programskem jeziku C++. V sklop glavnega programa bo za komunikacijo s kamero vgrajen I2D vmesnik, priloţen s strani proizvajalca izbrane kamere. 36

63 Idejna zasnova programske opreme Za komunikacijo s Siemens PLC-jem bo v glavni program vgrajen odprtokodni Snap7 vmesnik, ki bo deloval na principu klient/streţnik, proţenje slik bo zunanje, s pulzom preko izhoda krmilnika. Slike se bodo shranjevale na lokalni disk računalnika, na katerem bo tekel glavni program, ki bo poskrbel za enoznačno poimenovanje slik. Dostop do slik bo mogoč preko map raziskovalca z uporabo pregledovalnika slik. Osnove posameznih sklopov bodo predstavljene v poglavjih, ki sledijo. Slika 5.3: Idejna zasnova delovanja programske opreme 5.2. Glavni program in C++ programski jezik Glavni program bo izdelan v C++ programskem jeziku. C++ je programski jezik, ki je bil zasnovan na osnovi programskega jezika C, dodane pa so mu bile mnoge razširitve. Omogoča različne pristope, proceduralno, objektno orientirano, funkcionalno in generično. Je zelo zmogljiv in zato tudi najbolj razširjen programski jezik na področju slikovnih sistemov in obdelave slik (angl. Image processing) [17]. V okviru C++ jezika je moţna uporaba različnih tehnologij in grafičnega prikaza programov oziroma uporabniških vmesnikov. V našem primeru bo uporabljena MFC knjiţnica oziroma tehnologija. MFC, Microsoft Foundation Class Library, je objektno orientirana C++ knjiţnica, ki se uporablja za razvoj namiznih programov oziroma aplikacij operacijskega sistema 37

64 Idejna zasnova programske opreme Windows. Obstaja od leta 1992, ko je bila prvič uvedena, a se še vedno nadgrajuje in široko uporablja. Lahko se jo uporablja za izdelavo zelo enostavnih, vitkih aplikacij, njena uporabnost pa se izkaţe predvsem pri kompleksnejših uporabniških vmesnikih z razširjenimi meniji in mnogo kontrolnimi elementi, na primer z MFC tehnologijo se lahko izdela uporabniške vmesnike tipa Office in njemu podobnih [19]. Glavni program bomo razvijali s pomočjo programsko razvojnega okolja Microsoft Visual Studio, ki nam samodejno generira ogrodje in strukturo na podlagi izbranega programskega jezika in tehnologije, obenem pa deluje kot urejevalnik teksta, prevajalnik in razhroščevalnik, tako da lahko celotno aplikacijo razvijemo od začetka do končne verzije, namenjene uporabniku. V strukturo glavnega programa bomo vgradili tudi oba vmesnika za komunikacijo s kamero in krmilnikom, s tema vmesnikoma pa bo naš program tudi upravljal Komunikacija s kamero I2D arhitektura Kameri, ki smo jo izbrali za uporabo v slikovnem sistemu, je priloţen programski paket, ki vsebuje gonilnike za delovanje kamere, namenske programe za konfiguracijo povezav ter osnovno prikazovanje in pregledovanje ţive slike, dodan pa je tudi programski razvojni paket I2D SDK (angl. software development kit) oziroma vmesnik I2D API (angl. application programming interface), ki s svojim naborom funkcij omogoča integracijo delovanja kamere v lastno programsko opremo. Vmesnik je zasnovan na podlagi C++ programskega jezika, omogoča pa tudi integracijo v programe na osnovi jezika C#. Za razvoj naše programske opreme bomo uporabili priporočeni C++ programski jezik. Navodila za uporabo in podrobna razlaga posameznih funkcij [20] so priloţena v programskem paketu. Na spodnji sliki je prikazan osnovni princip vključitve funkcij vmesnika za upravljanje s kamero. Nekatere funkcije lahko kličemo direktno (vse funkcije I2D knjiţnice se začnejo s predpono is_), za uporabo nekaterih pa moramo izvesti še predpripravo z lastno kodo. START Začetek dela programa Potrebujemo predpripravo? Ne is_xxx() Da Funkcijski blok Potreba po lastni predpripravi pred klicem I2D funkcije? Uporaba lastne kode Klic I2D SDK funkcije KONEC Konec dela programa Slika 5.4: Osnovna struktura uporabe I2D vmesnika v lastnih programih [20] 38

65 Idejna zasnova programske opreme 5.4. Snap7 vmesnik za komunikacijo s Siemens PLC-ji Za komunikacijo med PLC-jem in glavnim programom bomo uporabili tehnologijo, ki se imenuje OPC. OPC je kratica za OLE for process control ali s polnim imenom Object Linking and Embedding for process control. Je standardiziran komunikacijski protokol, ki je namenjen spajanju programov višjega nivoja in strojne opreme, ki se nahaja na niţjih nivojih in torej upravlja s procesiranjem. OPC tehnologijo sestavljajo [21]: Gonilnik (angl. driver) vzpostavi povezavo in komunicira s PLC streţnikom. OPC strežnik (angl. server) je program, ki bere ali zapisuje podatke na spominske lokacije na PLC krmilniku. En krmilnik je povezan z enim OPC streţnikom. OPC streţnik nato posreduje (sprejema) podatke različnim odjemalcem, ki lahko z njimi poljubno manipulirajo. Za celoten streţnik lahko določimo najkrajši časovni interval, v katerem streţnik dostopa do podatkov. Ta nastavitev je pomembna zato, da preprečimo preobremenitev komunikacijskih vodov. OPC odjemalec (angl. client) je program, ki zahteva (pošilja) podatke z (na) PLC streţnika. Za dostop do podatkov potrebujemo OPC odjemalec. Le-ta je lahko del programskega paketa, lahko je kupljen posebej ali ga sprogramiramo sami (LabView, C#, C++, Python). Do istega OPC streţnika lahko istočasno dostopa več odjemalcev. Izbrati moramo PLC-ju primeren OPC vmesnik, ki bo podpiral ţelen komunikacijski protokol, v našem primeru gre za Siemensove komunikacijske protokole Siemensove komunikacijske lastnosti Komunikacije s Siemens napravami so bazirane na Ethernet S7 protokolu, ki se naslanja na ISO TCP (RFC1006), ki je po svoji sestavi blokovno orientiran. Vsak blok se imenuje PDU (angl. Protocol Data Unit) in ima omejeno velikost, ki se določi tekom vzpostavitve povezave. S7 protokol je funkcijsko oziroma ukazno orientiran, torej vsak prenos vsebuje ukaz ali odgovor na ukaz. Če je ukaz prevelik za en PDU, se razdeli na več PDU-jev. Vsak ukaz vsebuje glavo, set parametrov, podatke parametrov in podatkovni blok. Glava in set sta vedno prisotna, druga dva sta opcijska [23]. Slika 5.5: Shematski prikaz strukture protokola po posameznih nivojih [23] 39

66 Idejna zasnova programske opreme Preglednica 5.1: Predstavitev strukture protokola po OSI modelu [23] Nivo OSI plast Protokol 7 Aplikacijska plast S7 protokol 6 Predstavitvena plast S7 protokol 5 Sejna plast S7 protokol 4 Transportna plast ISO-on-TCP (RFC 1006) 3 Omreţna plast TCP/IP 2 Povezovalna plast Ethernet 1 Fizična plast Ethernet S7 ukazi so razdeljeni po kategorijah, in sicer branje/pisanje podatkov, ciklično branje/pisanje podatkov, informacije o direktoriju, sistemske informacije, blokovni premiki, PLC krmiljenje, čas in datum ter varnost in programiranje. Načini komunikacije oziroma igralne vloge posameznih elementov Pri Siemensovih komunikacijah poznamo tri moţne načine oziroma vloge posameznih elementov: Klient, Strežnik in Partner (ali vrstnik angl. Peer v klasičnem računalniškem ţargonu). Klient lahko samo sprašuje, streţnik lahko na vprašanja samo odgovarja, partnerja pa lahko komunicirata drug z drugim samoiniciativno. Največkrat se uporablja princip klient/streţnik, tipični predstavniki so predstavljeni na sliki 5.6 [23], so pa moţne tudi drugačne izvedbe. PC (klient) LibNoDave Simatic NET OPC Server Snap7 Client Preberi bit Prebran bit PLC (strežnik) HMI Panel (klient) Zapiši spremenljivko Zapis narejen ETHERNET Slika 5.6: Primer komunikacije klient/streţnik [23] 40

67 Idejna zasnova programske opreme Opombe in posebnosti pri podatkovnih formatih in tipih Pomembno se je zavedati, da so podatki v PLC zapisani v BIG-Endian podatkovnem formatu, formatni način zapisa v PC pa se izvaja v LITTLE-Endian načinu, kar pomeni, da se posamezni bajti zapisujejo v obratnem vrstnem redu. Iz tega razloga je vsem podatkom, ki so večji od enega bajta, po izmenjavi za pravilno interpretacijo potrebno obrniti bajte. Na to posebnost bomo morali biti pozorni tudi pri implementaciji izmenjave podatkov v našem programu, kjer bomo postopek ustrezne pretvorbe tudi natančneje predstavili. Poudariti je potrebno Siemensovo poimenovanje tipov spremenljivk, ki utegnejo biti v primerjavi s klasičnim poimenovanjem, ki se uporablja v večini programskih jezikov, zavajajoči, predvsem pri spremenljivki integer. Osnovni tipi po Siemensovem poimenovanju so naslednji [23]: BITS, WORD (unsigned 16 bit integer), INT (signed 16 bit integer), DWORD (unsigned 32 bit integer), DINT (signed 32 bit integer), REAL (32 bit floating point number), S7 Strings in S7 Array of char Snap7 arhitektura Glavni namen Snap7 vmesnika je popolna integracija PC programske opreme z obstoječim omreţjem Siemens PLC naprav. Na trgu obstaja več OPC vmesnikov, ki bi bili v našem primeru primerni za uporabo, vendar nas je v uporabo Snap7 vmesnika prepričalo naslednjih nekaj lastnosti. Je odprtokoden, kar pomeni, da je prosto dostopen na spletu. Za razliko od večine, predvsem tistih, ki jih ponuja Siemens, je potrebno kupiti licence za vsako uporabljeno aplikacijo posebej. Pomembna lastnost je tudi ta, da je mogoče vmesnik integrirati do te mere, da se ga pri delovanju programske opreme sploh ne opazi in za razliko od ostalih ni potrebno uporabljati številnih dodatnih uporabniških vmesnikov zraven glavne aplikacije. Omogoča široko paleto uporabe programskih jezikov, LabView, C, C#, VB, Pascal, in je eden najprimernejših za uporabo v C++, saj je knjiţnica proceduralna, wrapper-ji pa omogočajo uporabo objektno orientiranega programiranja. Omogoča asinhronsko izvajanje operacij, ima polno podporo za večino Siemensovih krmilnikov, podpira tudi široko paleto operacijskih sistemov in razvojnih okolij. Nazadnje nas je prepričala še dobro pripravljena dokumentacija z jasno predstavitvijo delovanja in integracije v lastno programsko opremo. Snap7 vmesnik lahko deluje v vseh treh načinih, ki jih Siemensove komunikacije predvidevajo, torej kot klient, streţnik ali partnerski način. Princip uporabe je prikazan na sliki 5.7. V našem primeru bo Snap7 vmesnik, skupaj z glavnim programom, v katerega bo vgrajen, deloval kot klient, PLC pa bo deloval kot streţnik. Klient bo uporabljen za pisanje in branje v (iz) podatkovne bloke na PLC-ju, v katerih bodo shranjene informacije. 41

68 Idejna zasnova programske opreme Glavni program aplikacije Snap7 vmesnik PLC (streţnik) Klient HMI Panel (klient) Streţnik Partner S7 Partner Beri/piši, zaţeni/ustavi, naloţi/ prenesi BSend/BRecv Slika 5.7: Osnovni načini delovanja Snap7 vmesnika [23] 5.5. Sistem shranjevanja slik Naročnik ni imel posebnih ţelja, kar se tiče sistema shranjevanja slik, zato smo ga morali določiti sami. Pomembno je, da je vsaka slika enoznačno določljiva. Izhajali smo iz tega, da ţeli naročnik slike, na katerih so samo paketi v obliki sloja, odloţeni na paleti, katere bodo sluţile kot dokaz za predloţitev naročniku. Iz tega razloga je potrebno vsako sliko povezati s točno določeno paleto in pripadajočo številko odloţenega sloja, ta številka palete pa mora biti povezana tudi pozneje v nabavnem sistemu z določenim naročnikom, kateremu je bila paleta dostavljena. Za boljšo preglednost in večjo sledljivost bi bilo smotrno sliko povezati tudi s točnim časom zajema. Kar se tiče lokacije shranjevanja slik in dostopa do njih, smo izbrali univerzalno rešitev, shranjevanje na lokalni disk računalnika, na katerem bo tekel glavni program slikovnega sistema, glede na to, da naročnik še nima zasnovanega informacijskega sistema. Slike se bodo shranjevale v mape, ki bodo poimenovane po posameznih napravah, na katerih je slikovni sistem vgrajen. Dostop do map se bo tako izvajal enostavno preko raziskovalca, kjer bodo shranjene slike, ki bodo med seboj enoznačno razločljive preko imena datoteke, ki bo sestavljeno iz naslednjih podatkov: identifikacijska številka palete, zaporedna številka odloţenega sloja na paleti in časovni odtis zajema slike. Kar se tiče časa hranjenja slik, bodo datoteke tam lahko shranjene tudi več mesecev, kar je dovolj dolgo, da bodo časovni roki za pritoţbe naročnikov ţe mimo. V kolikor se bo pozneje izrazila ţelja po daljšem hranjenju ali se bo število slikovnih sistemov, ki bodo vgrajeni na naprave, povečalo, je kapaciteto diskov moţno enostavno in poceni povečati. 42

69 Idejna zasnova programske opreme 5.6. Grafični uporabniški vmesnik Grafični uporabniški vmesnik (angl. GUI graphical user interface) v splošnem pomenu besede predstavlja tip vmesnika med človekom in napravo, ki mu na intuitiven način preko prikazovanja besedila in grafičnih podob omogoča spremljanje in upravljanje delovanja programa, naprave ali procesa. Drţali smo se zahtev, naj bo uporaba vitka in enostavna, naročnik izrecno ni ţelel sprotnega prikazovanja slik na zaslonu. Moţna rešitev bi bila, da programska oprema grafičnega vmesnika sploh ne bi imela, da bi se program samo zagnal in deloval v ozadju. Slabost te rešitve je, da uporabnik ne bi dobil nobenih povratnih informacij o delovanju sistema in bi v primeru morebitnih teţav ali nepravilnega delovanja teţko odkril in odpravil napako. Zato smo se odločili, da izdelamo enostaven uporabniški vmesnik, ki bo prikazoval le nekaj osnovnih informacij, ki so ključnega pomena za preverjanje pravilnega delovanja sistema, imel pa bo moţnost, da se skrije v ozadje oziroma pošlje na sistemski pladenj (angl. System tray). Osnovna zgradba grafičnega uporabniškega vmesnika naj bi sledila modelu, prikazanem na spodnji sliki. Uporabniški vmesnik bo moral biti glede na zahtevo v angleškem jeziku. Slika 5.8: Zasnova grafičnega uporabniškega vmesnika 5.7. Glavna zanka slikovnega sistema Osnovni potek operacij oziroma zasnovo izvajanja glavne zanke sistema smo prikazali s pomočjo diagrama poteka, ki je prikazan na sliki 5.9. Diagram se začne s pogoji oziroma operacijami, ki so potrebne za začetek izvajanja zanke, nato prikaţe zaporedje izvajanja operacij vseh treh elementov, krmilnika, glavnega programa oziroma aplikacije in kamere, ter prikaţe njihovo medsebojno odvisnost. 43

70 Idejna zasnova programske opreme Slika 5.9: Glavna zanka slikovnega sistema 44

71 6. Postopek izdelave programske opreme Naloga, ki jo bomo obravnavali v tem poglavju, je izdelati takšno programsko opremo, ki bo uspešno povezala izbrane elemente električnega dela verige slikovnega sistema v celoto in ki bo sposobna kvalitetno in zanesljivo opravljati svoje naloge glede na podane zahteve ter tehnične specifikacije. Postopek izdelave programske opreme smo razdelali s pomočjo IDEF0 diagrama, ki je prikazan na slikah 6.1 in 6.2. Z izdelavo diagrama smo definirali posamezne korake razvoja, ki so v nadaljevanju poglavja podrobneje predstavljeni. Pri razlagi implementacije programa bodo za laţjo predstavo uporabljeni klasični diagrami poteka. Definirali smo tudi programska razvojna okolja, ki nam bodo v pomoč pri razvoju. Cilj je izdelati programsko opremo do te mere, da bo pripravljena za predajo končnemu uporabniku. Zahteve in tehnične specifikacije, izvedena fizična vezava komponent Elementi električnega dela slikovnega sistema IZDELAVA PROGRAMSKE OPREME 0 B0 Programska oprema pripravljena za uporabo Navodila za uporabo Programska razvojna okolja A-0 B-0 Slika 6.1: Proces izdelave programske opreme IDEF0 diagram 45

72 Postopek izdelave programske opreme Zahteve in tehnične specifikacije, izvedena fizična vezava komponent Elementi električnega dela slikovnega sistema VZPOSTAVI POVEZAVO KAMERA - PC, SPOZNAJ LASTNOSTI KAMERE I2D Camera Manager, I2D Cockpit Zahteve in tehnične specifikacije, izvedena fizična vezava komponent Program, ki komunicira s PLC Simulirane motnje TESTIRAJ DELOVANJE, PREVERI ROBUSTNOST Visual Studio, VirtualBox, TIA Portal V14 5 B5 1 B1 Vzpostavljena komunikacija kamera-pc Program brez hroščev SPOZNAJ OSNOVE UPRAVLJANJA S KAMERO 2 B2 Visual Studio, Vzorčne aplikacije: -uc480acquire -uc480live OBLIKUJ KONČNI GRAFIČNI UPORABNIŠKI VMESNIK Visual Studio 6 B6 Delovanje funkcij odpri; prikaţi; zajemi; v ţivo uc480acquire Zahteve in tehnične specifikacije Oblikovan in delujoč program IZDELAJ ZAČETNI DEL PROGRAMA Visual Studio (C++ MFC), I2D SDK 3 B3 PRIPRAVA PROGRAMSKE OPREME ZA PREDAJO UPORABNIKU Raziskovalec Urejevalnik besedila Program pripravljen na izvajanje glavne zanke slikovnega sistema 7 B7 Siemens PLC VKLJUČI KOMUNIKACIJO S PLC Visual Studio, VirtualBox, TIA Portal V14 Snap7 Programska oprema pripravljena za uporabo Navodila za uporabo 4 B4 Program, ki komunicira s PLC NODE: B0 TITLE: IZDELAVA PROGRAMSKE OPREME NO.: Slika 6.2: Proces izdelave programske opreme IDEF0 diagram razčlenjeno 46

73 6.1. Vezava elementov za potrebe testiranja Postopek izdelave programske opreme Slika 6.3: Vezava elementov za potrebe testiranja Za potrebe razvoja programske opreme smo v pisarni razvojnega oddelka pripravili testno vezavo uporabljenih komponent slikovnega sistema. Najprej smo se lotili vzpostavitve povezave kamera PC. Računalnik se napaja preko električnega omreţja, priklopljen je tudi na mreţno stikalo. Namerno smo vzeli novo, prazno mreţno stikalo, ki ni povezano na mreţo podjetja, da ne bi v času razvoja programske opreme, ko pogosto pride do spreminjanja IP naslovov, povzročali teţave na lokalni mreţi. Ker je stikalo industrijsko, ima 24 V napajanje, vendar se delovanje v principu ne razlikuje od običajnega. Kamera ima na ohišju dva M12 priključka. Eden sluţi napajanju, drugi pa ethernet povezavi. Tisti za GigE povezavo ima na eni strani M12 ţenski priklop po X-kodiranju, na drugi pa RJ-45 vtič, uporabimo lahko Cat5e kable na razdalji do 100 m. Tisti za napajanje ima A-kodiran priklop, pini pa poleg napajanja sluţijo tudi za zunanji sproţilec in dodatne vhode in izhode, na primer, za uporabo bliskavice. Ker smo v testni sistem vezali samo Siemensov procesor brez I/O modulov (pa še tega smo vezali naknadno, najprej smo testirali samo povezavo kamera PC), smo zunanji sproţilec vezali direktno na napajanje preko mehanskega stikala, ki smo ga ročno vklapljali in izklapljali. S tem smo simulirali visoko in nizko stanje signala, ki ga bo sicer opravljal krmilnik. Pozneje smo dodali Siemensov procesor, ki potrebuje 24 V napajanje in vezavo na mreţno stikalo. Sluţil je za testiranje komunikacije za izmenjavo podatkov o paletah. Na dejanskem sistemu za paletizacijo bomo seveda preizkusili tudi delovanje sproţilca z vezavo na I/O modul krmilnika. 47

74 Postopek izdelave programske opreme 6.2. Vzpostavitev povezave kamera PC in spoznavanje lastnosti kamere Vzpostavitev povezave I2D Camera Manager I2D Camera Manager je program oziroma orodje, ki je namenjen upravljanju vseh nameščenih kamer. Je sestavni del proizvajalčeve programske opreme, ki je prosto dostopna na spletu. Program prikazuje podrobne informacije o priključenih kamerah, nameščenih gonilnikih, nastavljamo lahko identifikacijsko številko kamere, mreţne nastavitve in naslove. Spremljamo lahko, katere kamere so v uporabi oziroma katere niso, prav tako v primeru nepravilne konfiguracije izpisuje napake. S pomočjo programa smo uspešno vzpostavili povezavo s kamero. Nastaviti smo morali IP naslov kamere, pri čemer smo morali paziti, da smo tako kamero kot PC imeli nastavljen na isti subnet, to je tretji sklop števk v IP naslovu. Pozneje, ko smo začeli uporabljati več kamer, smo s tem programom spreminjali tudi identifikacijsko številko kamere Spoznavanje lastnosti kamere I2D Camera Cockpit I2D Camera Cockpit je razširjen pregledovalnik oziroma prikazovalnik slik in videa s kamere ter je namenjen predvsem spoznavanju delovanja, lastnosti in funkcionalnosti kamere, ni pa moţno nastaviti avtomatiziranega delovanja, saj je za potrebe avtomatizacije potrebno spisati program z uporabo I2D programsko-razvojnega kompleta (SDK). Tudi ta program je sestavni del prosto dostopne proizvajalčeve opreme. Slika 6.4: Prikaz programov I2D Camera Manager (levo) in I2D Camera Cockpit (desno) [25] 48

75 Postopek izdelave programske opreme Program smo uporabili za vsa opravila, pri katerih smo spremljali sliko v ţivo. Z njim smo lahko ocenili kvaliteto slike, iskali optimalne nastavitve kamere in objektiva ter opravljali meritve velikosti merilnega območja na različnih razdaljah. Preizkusili smo tudi različne nastavitve pri uporabi sproţilca in spoznali smo obnašanje slike ob spreminjanju nekaterih parametrov, ki so bili iz opisa v navodilih teţko predstavljivi. Program omogoča tudi manjše obdelave slik ter dodajanje risb in označb, kar nam je odprlo dodatne ideje za morebitni nadaljnji razvoj programske opreme v tej smeri po koncu trenutnega projekta Osnove upravljanja s kamero s pomočjo vzorčnih programov V sklopu proizvajalčevega programskega paketa sta tudi dva vzorčna programa s pripadajočo programsko kodo, ki sluţita spoznavanju osnov upravljanja s kamerami preko namenske programske opreme, ki jo lahko razvijemo na podlagi lastnih ţelja in potreb. Prvi program, uc480acquire, omogoča zajem slike preko programskega sproţilca, in sicer s klikom na gumb, zajeto sliko pa prikaţe na zaslonu. Drugi program, uc480live, omogoča prikazovanje slike na ekranu v ţivo in izbiro različnih metod prikaza. Slika 6.5: Vzorčna programa uc480acquire (levo) in uc480live (desno) Za razvoj lastne programske opreme je bila glavnega pomena priloţena koda, in sicer v obliki projekta razvitega v integriranem programskem razvojnem okolju (IDE) Microsoft Visual Studio. Narejene so v programskem jeziku C++, ki je najbolj razširjen in najprimernejši programski jezik na področju obdelave slik. Uporabljena je MFC tehnologija, ki se pogosto uporablja za izdelavo programov z bodisi enostavnim ali kompleksnim uporabniškim vmesnikom. Več o tem je predstavljeno v poglavju

76 Postopek izdelave programske opreme Z vzorčnima programoma smo testirali in spoznali predvsem naslednje: način klicev funkcij v strukturi programske kode; korelacijo med imeni funkcij in parametrov v I2D Cockpit pregledovalniku in I2D programskim razvojnim vmesnikom; vzpostavitev povezave s kamero; nastavljanje osnovnih parametrov in prikaz zajete slike na zaslonu Izdelava začetnega dela programske opreme Kot podlago za izdelavo lastne programske opreme, smo vzeli vzorčni program za zajem slike, predstavljen zgoraj. Vzorčni program je sluţil zgolj kot osnova za strukturo projekta v razvojnem okolju, vse ostalo smo morali razviti sami. Pod pojmom začetni del štejemo izdelavo programske opreme do te mere, da bo pripravljena na začetek izvajanja glavne zanke slikovnega sistema Struktura projekta Uporabljen je C++ programski jezik z MFC tehnologijo, katere uporabniški vmesnik ob komunikaciji z uporabnikom bazira na uporabi dialogov (oziroma dialognih oken). MFC tehnologija je uporabljena s statično knjiţnico, uporabljen je multi-byte znakovni set. Uporabili smo programsko razvojno okolje Microsoft Visual Studio 2013 Community Edition. Projekt je poimenovan uc480acquire in ima naslednjo zgradbo: Slika 6.6: Struktura projekta v programskem okolju Microsoft Visual Studio 50

77 Postopek izdelave programske opreme V mapi External Dependancies (zunanje odvisnosti) so zajete vse standardne datoteke in glave, ki so potrebne za delovanje C++ MFC aplikacij in so avtomatično vključene s strani razvojnega okolja ob generiranju projekta. V mapi External Headers (zunanje glave) smo morali sami dodati glave datoteke s končnico.h, v mapo Lib Files pa še knjiţnične datoteke.lib, ki so potrebne za upravljanje s kamero in so torej del I2D SDK-ja. Glavni del programa se nahaja v preostalih mapah. V mapi Source Files (izvorne datoteke) se nahajajo izvorne kode oziroma funkcije programa, te datoteke imajo končnico.cpp, kar pomeni, da vsebujejo glavno kodo C++ programov. Njim pripadajoče glave, datoteke z enakim imenom in končnico.h, kjer morajo običajno biti zbrane vse deklaracije uporabljenih funkcij, spremenljivk ali razredov, se nahajajo v mapi Header Files (datoteke z glavami). Pomoţne datoteke, ki so vključene v program, kot so razne slike, ikone, meniji, gumbi, se nahajajo v mapi Resource Files (datoteke z viri). Source Files (izvorne datoteke) Datoteke uc480acquire.cpp večinoma ne spreminjamo, saj je samodejno generirana in definira obnašanje razredov (angl. class) v programu. Paziti moramo le, da so vse pripadajoče glave izvornih datotek. Datoteka uc480acquire.rc upravlja z viri, ki so uporabljeni v aplikaciji, kot so vsa dialogna okna, razni meniji, slike in ikone. Preko tega lahko odpremo tudi dialogna okna za grafično urejanje, podobno kot v jeziku C# urejamo okna, ki jih tam imenujemo Windows Forms, le da je v jeziku C++ potrebno nekaj več ročnega vnašanja kode za vnešene grafične oblike. StdAfx.h je standardna pred-prevedena (precompiled) datoteka, ki sluţi za veliko hitrejše prevajanje C++ programov. Po pravilih mora biti ta datoteka za delovanje vključena v.cpp datoteko, iz tega razloga je tu še StdAfx.cpp. Snap7.cpp je datoteka vmesnika za komunikacijo s Siemens PLC-ji, več o tem bo razloţeno v poglavju Najpomembnejša datoteka, ki vsebuje večino glavnega programa, je uc480acquiredlg.cpp, ki upravlja z delovanjem glavnega okna. Datoteka je sestavljena iz samodejno generirane kode, raznih konstruktorjev in destruktorjev ter začetne funkcije OnInitDialog, ki se začne izvajati ob zagonu okna oziroma programa in predstavlja neke vrste glavni main program, za njo pa se zvrstijo tudi ostale funkcije, ki se tekom izvajanja programa lahko kličejo Priprava prikazovanja informacij za potrebe razvoja Tekom razvoja programske opreme je za ocenjevanje napredka in delovanja vmesnih korakov nujno potrebno pregledno izpisovanje ţelenih informacij oziroma vmesnih rezultatov. 51

78 Postopek izdelave programske opreme Glede na programski jezik, izbrano tehnologijo in videz uporabniškega vmesnika, so odvisni tudi načini in mehanizmi izpisa. Če bi imeli konzolni uporabniški vmesnik, bi, na primer, vse informacije gradili v nize (angl. string) in jih preko ukaza printf izpisovali v konzolnem oknu. V našem primeru smo za izpisovanje besedila in števil morali na oknu aplikacije definirati za to predvidena mesta. To smo zagotovili z dodajanjem Edit Control ali Static Text pravokotnikov oziroma polj. V oba lahko s programom izpisujemo ţelene nize, razlika med njima je samo v tem, da lahko Edit Control tudi sprejema vnose nizov s strani uporabnika preko uporabniškega vmesnika. Kot je razvidno iz slike 6.7, smo dodali več takšnih polj, saj smo ţeleli opazovati več stvari naenkrat, najlaţje pa je, da za vsako informacijo ustvarimo ločen niz oziroma string in vsakemu namenimo svoje polje za izpisovanje. V levi spodnji kot smo izpisom tekstnih informacij dodali tudi okno za prikazovanje zadnje zajete slike, zato, da smo imeli vizualno potrdilo, da je bila slika zajeta. Slika 6.7: Priprava prikazovanja informacij za potrebe razvoja V polja smo izpisovali vrednosti, ki so nam pomagale razvozlati, v katerem delu zanke se program nahaja, razne statuse povezav, nastavljene parametre, izpisovanje posameznih kosov nizov, vmesnih rezultatov pri sestavljanju nizov, prebrane vrednosti pri komunikaciji s PLC-jem, izpis časovnega odtisa, eno okno pa smo vedno imeli namenjeno za razne sprotne potrebe po novem tipu izpisa. Pri izpisovanju v okna smo morali biti pazljivi, da smo vse nize pred izpisovanjem pretvorili v ustrezno obliko. V programskem jeziku C++ se za nize najpogosteje uporablja razred CString. Nize tvorimo v CString objektih in so bazirani na podatkovnih tipih TCHAR. Pri tem se je treba zavedati, da je v programih, ki uporabljajo _UNICODE, znakovni set TCHAR definiran kot wchar_t, ki je 16-bitni znakovni tip, v nasprotnem 52

79 Postopek izdelave programske opreme primeru pa kot char, ki je normalni 8-bitni znakovni tip. Ker v našem primeru uporabljamo multi-byte znakovni set (MBCS) pomeni, da se CString sestavlja kot 8-bitni char tip. Tako moramo paziti, da bodo vsi nizi sestavljeni iz kosov, ki ustrezajo 8-bitnemu znakovnemu tipu. Pravilnost izpisanih nizov lahko iz tega vidika vedno kritično ocenimo in preverimo, v primeru nepričakovanih izpisov, pa je najverjetneje potrebno izvesti kakšno pretvorbo, pogosto pri sestavljanju nizov zadostuje ţe uporaba ukaza LPCTSTR (angl. Long Pointer To Constant STRing) pred nizom. Ukaz za zapis informacije v okno izvedemo tako, da prikličemo polje, v katerem ţelimo izpisati informacijo in mu dodelimo spremenljivko, v kateri je niz zapisan. Primer ukaza: GetDlgItem(IDC_LAST_IMAGE)->SetWindowText(Filename); Diagram poteka zagona in zaustavitve programa Da bo programska oprema pripravljena na opravljanje glavne zanke slikovnega sistema, torej zajemanja, komuniciranja in shranjevanja, je potrebno ob zagonu izvršiti vrsto pripravljalnih in nastavitvenih operacij. Prav tako je potrebno poskrbeti, da program ob zaprtju in prekinitvi delovanja ustrezno zaključi in zapre vse tekoče procese. Te operacije običajno v del programske kode, ki ga imenujemo destruktor. ZAGON PROGRAMA ZAUSTAVITEV PROGRAMA START APLIKACIJE Ukaz za zaprtje aplikacije Postavi uporabniški vmesnik in ikone Prekini povezavo s PLC in odstrani klienta Cli_Destroy Preberi in nastavi konfiguracijske parametre Datoteka config.ini Zapri nit za upravljanje z dogodki (Event handling) EvTerminateAll Inicializiraj klienta za komunikacijo s PLC Cli_Connect Ustavi pripravljenost kamere na zajem slike is_stoplivevideo Slika 6.8: Diagram poteka zagona in zaustavitve programa 1. del 53

80 Postopek izdelave programske opreme Odpri kamero in nastavi začetne parametre OpenCamera Sprosti slikovni pomnilnik is_freeimagemem Vzpostavi nit za upravljanje z dogodki (Event handling) EvInitAll Zapri kamero is_exitcamera Nastavitev parametrov zunanjega sproţilca kamere is_setexternaltrigger is_capturevideo Izbriši ikono s sistemskega pladnja Vklopi zanko za periodično zajemanje slik Zapri aplikacijo Zaznavanje dogodkov v pripravljenosti KONEC Slika 6.9: Diagram poteka zagona in zaustavitve programa 2. del Na slikah 6.8 in 6.9 sta prikazana diagrama poteka za zagon in zaustavitev programa. Modri pravokotniki predstavljajo operacije, zeleni ovali nakazujejo začetek in konec, ob strani pa so navedene pomembnejše funkcije, ki se kličejo ob izvajanju operacij. Podrobnejša razlaga nekaterih pomembnejših operacij je predstavljena v poglavjih, ki sledijo Nastavitev konfiguracijskih parametrov Za potrebe modulne gradnje, prilagodljivosti, hitrega izvajanja sprememb in učinkovitega programiranja, bomo nastavili nekaj konfiguracijskih parametrov, ki jih bo moč spreminjati v konfiguracijski datoteki, poimenovani config.ini. To bodo tisti parametri oziroma spremenljivke, ki so ključni za delovanje sistema, bi se pa utegnili v primeru zamenjave ali spremembe nastavitev katerega izmed osnovnih elementov spremeniti. Parametrov med delovanjem programa namensko ne bo moč spreminjati, potreben bo ponovni zagon. 54

81 Postopek izdelave programske opreme Program bo ob zagonu prebral konfiguracijsko datoteko, vrednosti parametrov priredil ustreznim spremenljivkam v programski kodi in vse parametre izpisal v oknu uporabniškega vmesnika. Parametri, ki jih bo moč nastavljati bodo: ime naprave, na kateri je slikovni sistem vgrajen, identifikacijska številka kamere, parametri za vzpostavitev povezave s PLC-jem, identifikacijska številka podatkovnega bloka s podatki za izmenjavo in lokacija shranjevanja slik na disku. Posamezni parametri bodo podrobneje predstavljeni v poglavju 6.7, ko bodo tekom razvoja tudi natančneje opredeljeni Inicializacija kamere S funkcijo OpenCamera() izvedemo vzpostavitev povezave s kamero in nastavitev njenih osnovnih parametrov. Postopek je sledeč: START OpenCamera() Pridobi določeno identifikacijsko številko kamere Datoteka: config.ini Parameter: CameraID Vzpostavi povezavo s kamero is_initcamera Pridobi informacije o senzorju kamere is_getsensorinfo Nastavitev barv Inicializacija in dodelitev spomina is_getcolordepth is_setcolormode is_allocimagemem is_setimagemem Nastavitev osvetlitve slike is_exposure V primeru napake povezave izpiši napako KONEC Slika 6.10: Diagram poteka inicializacije kamere Pomembno je, da pri inicializaciji navedemo pravo identifikacijsko številko kamere CameraID, ki se jo nastavi v konfiguracijski datoteki config.ini. Identifikacijska številka se mora ujemati s številko, ki je dodeljena kameri, kar lahko preverimo in tudi poljubno spremenimo v I2D Camera Managerju. 55

82 Postopek izdelave programske opreme Nastavitev zunanjega sprožilca Kot zunanji sproţilec bo deloval pulzni signal iz digitalnega izhoda na PLC I/O modulu. Za nastavitev samodejnega zajemanja slik je potrebno nastaviti zunanji sproţilec s klicem funkcije is_setexternaltrigger(), nastavili smo ga tako, da zajame spremembo z nizkega na visoko stanje (angl. Rising Edge). Nastavili smo tudi območje tolerance minimalne dolţine signala s klicem funkcije is_triggerdebounce(), da izničimo vpliv nihanja pulza na relejskem stikalu digitalnega izhoda. Sproţilec odreagira le, če je pulz dolg vsaj 1 ms. Zavedati se moramo, da z nastavitvijo tega časa podaljšamo čas zakasnitve zajema slike glede na trenutek začetka pulza. Na koncu je potrebno dati še ukaz, da je kamera v pripravljenosti za takojšen zajem slike po prejetem pulzu, in sicer s klicem funkcije is_capturevideo(); START Nastavi zunanji sproţilec is_setexternaltrigger Nastavi toleranco min. dolţine pulza is_triggerdebounce Vklopi pripravljenost kamere za zajemanje is_capturevideo KONEC Slika 6.11: Diagram poteka nastavitve zunanjega sproţilca Nit za upravljanje z dogodki Program mora neprestano spremljati in zaznavati dogodke, ki jih sporoča kamera, s tem mislimo predvsem na znak, da je bila slika uspešno zajeta in prenesena. Da pa ne bi s tem bilo onemogočeno preostalo delovanje programa, moramo ustvariti novo nit (angl. thread), ki bo skrbela za upravljaje z dogodki (angl. event handling). Najprej je potrebno vklopiti sporočanje dogodkov kamere, nato pa ustvarimo novo nit, ki bo dogodke neprestano zaznavala in ob dogodkih klicala določene funkcije Glavna funkcija za inicializacijo dogodkov, ki nam jih kamera lahko sporoča, je klicana ob zagonu programa. Ob aktivaciji upravljanja z dogodki začne v novo ustvarjeni niti teči zanka, ki z Windows funkcijo WaitForMultipleObjects preverja, ali je kamera sporočila kak dogodek. Nastavljeno je, da kamera sporoča več tipov dogodkov, tisti, ki nas najbolj zanima, pa je ta, 56

83 Postopek izdelave programske opreme ali je bila slika zajeta in uspešno prenesena v pomnilnik. Dogodek se imenuje IS_SET_EVENT_FRAME. Ko funkcija zazna, da se je zgodil ta dogodek, začne s postopkom izmenjave informacij s PLC-jem. START Kreacija dogodkov CreateEvent Inicializacija dogodkov is_initevent Omogočitev dogodkov is_enableevent Izdelava niti procesa Aktivacija upravljanja z dogodki (zagon glavne zanke) _beginthreadex ThreadProc m_borunthread = TRUE KONEC Slika 6.12: Diagram poteka izdelave niti za upravljanje z dogodki Zanka vklopljena m_borunthread = TRUE Funkcija čakaj na dogodek WaitForMultipleObjects Ne Dogodek = =? = = IS_SET_EVENT_FRAME Da Zaţeni postopek izmenjave informacij Ne GetPalletInfo Zanka prekinjena? m_borunthread =? Da KONEC Slika 6.13: Izvajanje zanke za poslušanje dogodkov kamere Zanka tako teče brez postanka vse do ročne prekinitve. Pomembno je poudariti, da je nujno potrebno ob zaprtju programa, da preprečimo nepredvideno delovanje, ustvarjeno nit tudi ugasniti, za kar je treba poskrbeti v zaustavitvenem delu programa. 57

84 Postopek izdelave programske opreme 6.5. Vključitev komunikacije s PLC Za izmenjavo informacij z obstoječim sistemom za paletizacijo, je bilo potrebno vzpostaviti komunikacijo s Siemens PLC-jem. Kot smo ţe omenili, bo krmilnik dal fizični signal za zajem slike preko fizičnega sproţilca, vendar bomo zaenkrat ta del še simulirali z ročnim stikalom. Pomembneje je vzpostaviti uspešno komunikacijo za branje in pisanje podatkovnih blokov (angl. Data block), v katerih so shranjeni podatki o številki palete in številki sloja, ki se trenutno zlaga, v isti podatkovni blok pa bomo zapisovali tudi povratno informacijo, o statusu postopka zajemanja slike. Za vzpostavitev komunikacije smo uporabili Snap7 vmesnik, katerega osnove delovanja so podrobneje opisane v poglavju Snap7 arhitektura. V našo programsko opremo smo vgradili Snap7 klient, ki bo skrbel za dajanje ukazov PLC-ju, ki bo igral vlogo Snap7 streţnika in bo na te ukaze odgovarjal Vključitev Snap7 vmesnika v strukturo projekta Za uspešno vključitev vmesnika Snap7 v našo programsko opremo, je potrebno izpolniti nekaj pogojev: V mapo z izvornimi datotekami (Source Files) je potrebno prekopirati glavno C++ predlogo, in sicer snap7.cpp izvorno kodo ter pripadajočo datoteko z glavo snap7.h. Knjiţnično datoteko snap7.lib kopiramo v mapo z viri (res Resource Files). Dinamično knjiţnično datoteko snap7.dll pa na mesto izvršilne datoteke (.exe) programa. V času razvoja je to v mapi Debug in pa tudi v končni verziji, to je mapi Release, ter končnem programskem paketu, ki bo posredovan naročniku. V Solution Explorerju razvojnega okolja Visual Studio projektu dodamo prekopirani snap7.cpp in snap7.h datoteki. V snap7.cpp kodi spremenimo prvo vrstico iz #include "snap7.h" v #include "stdafx.h". V stdafx.h datoteki dodamo vrstico #include "snap7.h". V projektnih nastavitvah v razdelku Linker specificiramo mapo res kot dodatno knjiţnično mapo in dodamo datoteko snap7.lib kot dodatno knjiţnico. Vse uporabljene datoteke so prosto dostopne na spletnem repozitoriju [24] in so del celotnega Snap7 paketa Testiranje komunikacije z virtualnim strežnikom Preden smo se lotili vzpostavljanja komunikacije z dejanskim Siemens krmilnikom, smo delovanje najprej preizkusili virtualno. To smo storili, ker smo v času, ko smo še spoznavali delovanje Snap7 vmesnika, najprej ţeleli potrditev, da vmesnik deluje pravilno, 58

85 Postopek izdelave programske opreme preden bi ga preizkusili na fizičnem krmilniku, da bi se izognili morebitni škodi v primeru nepravilnega delovanja. Test smo izvedli tako, da smo v naš program vgradili Snap7 vmesnik na tak način, da je deloval kot klient. Potrebovali smo še streţniško aplikacijo. Za ta namen smo uporabili priloţen demo program v Snap7 programskem paketu, ki simulira delovanje enostavnega streţnika s tremi podatkovnimi bloki. Program smo zagnali na virtualnem računalniku, ki smo ga ustvarili s programom VirtualBox (več o tem v naslednjem poglavju). Z VirtualBoxom smo ustvarili lokalno virtualno omreţje, katerega del sta bila oba, fizični in virtualni računalnik. Glavni program s klientom Demo strežnik program IP Rack Slot IP Fizični PC Virtualna lokalna mreža Virtualni PC Lokalna mreža Fizična mrežna kartica Virtualna mrežna kartica Virtualno stikalo Virtualna mrežna kartica Slika 6.14: Testiranje komunikacije z virtualnim streţnikom Preko demo programa smo nastavili IP naslov streţnika, to je naslov virtualnega računalnika na virtualni lokalni mreţi. V našem programu, ki je deloval kot klient, smo za vzpostavitev povezave navedli zgornji naslov streţnika in privzeti spremenljivki Rack in Slot. Slika 6.15: Demo program streţnika, ki smo ga zagnali na virtualnem računalniku 59

86 Postopek izdelave programske opreme Povezava je bila uspešna, tako da smo v našem programu dodali še nekaj ukazov za pisanje vrednosti v podatkovne bloke streţnika s funkcijo Cli_DBWrite. Vpisane vrednosti smo v demo programu tudi zaznali. Natančnejša razlaga, na kakšen način se vzpostavi povezava in izvede postopek branja in pisanja, bo razloţen v nadaljevanju za primer končne verzije programske opreme. Na podlagi uspešnih rezultatov virtualnega testiranja smo se odločili, da lahko nadaljujemo razvoj na realnem krmilniku, ki bo uporabljen v našem sistemu Vključitev fizičnega krmilnika Siemens S7-300 Ko smo potrdili pravilno delovanje Snap7 vmesnika na virtualnem modelu, smo se lotili testiranja povezave z dejanskim krmilnikom Siemens S Delovanje krmilnika se upravlja in programira s Siemensovim programskim razvojnim okoljem TIA Portal V14. Program smo namestili in uporabljali preko virtualnega računalnika, ustvarjenega s programom VirtualBox. Tako smo lahko z vsemi napravami, ki smo jih testirali za potrebe razvoja slikovnega sistema, upravljali preko enega osebnega računalnika. Slika 6.16: Nastavitev virtualnega računalnika s programom VirtualBox Program je bil v fazi razvoja vseskozi uporabljen, sluţil je za nastavljanje mreţnih nastavitev krmilnika, definicijo podatkov, ki smo jih izmenjevali, upravljanje s podatkovnimi bloki ter za spremljanje in krmiljenje delovanja v fazi testiranja. 60

87 Postopek izdelave programske opreme Slika 6.17: TIA Portal V14 preko virtualnega računalnika za programiranje Siemens krmilnikov Struktura podatkovnega bloka za izmenjavo informacij Za potrebe enoznačnega poimenovanja in povezave slik s pravimi paletami, je potrebna sprotna izmenjava informacij o paletah in slojih, ki se v tem trenutku zlagajo na paleto. Informacije so zapisane v podatkovnem bloku poimenovanem Comm_Camera. Vsak podatkovni blok ima v programu definirano identifikacijsko številko, kje se nahaja. Ta številka je izrednega pomena za komunikacijo s Snap7 vmesnikom, saj s pomočjo te identifikacijske številke (v našem programu parameter poimenovan DBNumber), klient zahteva, iz katerega podatkovnega bloka ţeli brati oziroma pisati podatke. Pomembno je vedeti, da če bomo iz kakršnega koli razloga kdaj spreminjali lokacijo (številko) podatkovnega bloka na krmilniku, moramo temu ustrezno v konfiguracijskih parametrih programa za zajemanje slik popraviti tudi vrednost parametra DBNumber. Slika 6.18: Struktura podatkovnega bloka z informacijami, definirana v programu TIA Portal 61

88 Postopek izdelave programske opreme Podatkovni blok je sestavljen iz dveh delov tipa Struct, in sicer iz dela, ki ga naš program bere (Send), in iz dela, v katerega naš program zapisuje informacije (Receive). V delu Send se najprej nahaja informacija, da je potrebno sliko zajeti, logičnega tipa Bool. Ta del zaenkrat ni uporabljen in je samo pripravljen za v bodoče, da bi bil ekvivalenten zunanjemu sproţilcu, če bi ţeleli uporabljati programski sproţilec, pri čemer pa bi morali spremeniti način komunikacije iz tipa klient/streţnik v tip enakovrednih partnerjev. Zatem sledi podatek o identifikacijski številki palete, preko katere se lahko kasneje natančno določi kateremu naročniku je bila odposlana. Paziti je treba pri razlagi podatkovnih tipov, kajti Siemens uporablja podobna, a malce drugačna poimenovanja za svoje podatkovne tipe, ki znajo biti včasih v primerjavi s klasičnimi programskimi jeziki varljiva. Podatek je tipa DInt, ki v Siemensovi notaciji pomeni Double integer in zaseda velikost 4 bajte, torej je v C++ programskem jeziku po velikosti enakovredna tipu int. Zadnji podatek v strukturi za branje je številka sloja, ki se v tem trenutku zlaga na paleto. Ker je število slojev manjša številka, mu je lahko dodeljeno manj prostora, in sicer spremenljivka tipa Int po Siemensovi notaciji, ki zaseda 2 bajta in v C++ programskem jeziku ustreza tipu short int. V delu Receive, kamor z glavnim programom zapisujemo informacije, se najprej nahaja prostor, kamor zapišemo, da je bila slika zajeta in prenesena v pomnilnik, kar pomeni, da lahko paletizer nadaljuje z naslednjimi operacijami, in informacija, da je bila slika uspešno shranjena, kar pa sluţi zgolj kontroli. Obe informaciji sta logičnega tipa Bool in tako vsaka zajema po en bit. Pomembna informacija se nahaja tudi v stolpcu Offset, ki nam pove, na katerem mestu po bajtih se v strukturi podatkovnega bloka posamezna informacija nahaja. To bomo potrebovali, da bomo iz prebranih nizov podatkov znali izluščiti pravilne informacije Diagram poteka izmenjave podatkov s krmilnikom Na sliki 6.19 in na sliki 6.20 je prikazan diagram poteka vzpostavitve povezave in izmenjave podatkov s krmilnikom. Uporabljeni so standardni simboli za prikazovanje diagramov poteka, na desni strani so v sivem polju navedene funkcije, s katerimi smo opredeljene aktivnosti izvedli. Začetek diagrama sproţi ločena nit (angl. thread) za zaznavanje dogodkov, katere delovanje smo opisali v poglavju , ki zazna, da je kamera sporočila, da je posnetek zajet, prenesen in pripravljen za nadaljnjo obdelavo. Diagram nato prikaţe potek izvajanja operacij za izmenjavo in obdelavo podatkov ter načine postopanja v primerih nastalih teţav v procesu. Podrobnosti izvedbe teh operacij so predstavljene v poglavjih, ki sledijo diagramu. 62

89 Postopek izdelave programske opreme Zaznan dogodek slika pripravljena Vzpostavi povezavo s PLC Cli_Connect Povezava uspešna? Da Podatkovni blok Comm_Camera PictureTaken PictureTaken = TRUE Zapiši, daje slika zajeta Cli_AsWriteArea Čakaj, da se izvede, če ne vseeno nadaljuj po 100 ms Ne Cli_WaitAsCompletion Podatkovni blok Comm_Camera Send Preberi niz podatkov Send Cli_AsDBRead Niz podatkov Send Čakaj, da se izvede, če ne vseeno nadaljuj po 100 ms Cli_WaitAsCompletion Ne Podatki prejeti? Da Izpiši v vmesnik Read Status: Error Izpiši v vmesnik Read Status: OK Izpiši v vmesnik Read Status: Error Iz niza podatkov poberi in pretvori PalletNumber GetDIntAt Iz niza podatkov poberi in pretvori LayerNumber GetIntAt Sestavi PalletNumber in LayerNumber v niz PalletInfo CString PalletInfo PalletInfo.Format Sproţi shranjevanje slike samo s časovnim odtisom Sproţi shranjevanje slike z imenom in časovnim odtisom Sproţi shranjevanje slike samo s časovnim odtisom SaveImagePalletInfo ali SaveImageDateOnly Slika 6.19: Diagram poteka izmenjave podatkov s krmilnikom 1. del 63

90 Postopek izdelave programske opreme Podatkovni blok Comm_Camera SavingDone SavingDone = TRUE Zapiši, daje slika shranjena Cli_AsWriteArea Čakaj, da se izvede, če ne vseeno nadaljuj po 100 ms Cli_WaitAsCompletion Prekini povezavo s PLC Cli_Disconnect Pripravljen na nov dogodek Slika 6.20: Diagram poteka izmenjave podatkov s krmilnikom 2. del Vzpostavitev povezave s krmilnikom Prvotno vzpostavitev povezave s krmilnikom ustvarimo ţe v zagonu programa. Snap7 vmesnik razlikuje med prvo vzpostavitvijo in vsemi nadaljnjimi, namreč pri prvi, ki jo kličemo takoj po kreaciji klienta, moramo klicani funkciji Cli_ConnectTo podati še IP naslov krmilnika, na katerega se ţelimo povezati ter številske vrednosti za omaro in reţo (spremenljivki Rack in Slot), ki pa sta privzeti in vezani glede na tip krmilnika. Kreacija klienta in prva vzpostavitev povezave: Client = new TS7Client(); int res = Client->ConnectTo(Address, Rack, Slot); Uspešnost povezave tudi preverjamo, zato v tem primeru prirejamo vrednost v spremenljivko res in na podlagi tega izpisujemo status povezave v uporabniški vmesnik. Kot je razvidno iz oblike kode, nam vmesnik po kreaciji novega klienta, kateremu lahko dodamo poljubno ime, v našem primeru je to kar enostavno Client, dovoli klicanje funkcij v prijaznejši obliki s prireditveno puščico in skrajšanimi poimenovanji funkcij, da lahko predpono Cli_ v takem primeru izpustimo. Tak način zapisa velja za večino funkcij, ki jih bomo uporabljali. Vsako naslednje vzpostavljanje povezave je hitrejše, saj kličemo zgolj funkcijo Cli_Connect, kateri ne rabimo več podajati argumentov, saj bo to storjeno samodejno. Primer klica, spet s preverjanjem uspešnosti, je prikazan spodaj: int ConnectionOK = Client->Connect(); 64

91 Postopek izdelave programske opreme Po tem, ko zaključimo s ciklom izmenjave podatkov in informacij, povezavo začasno prekinemo, in sicer z ukazom Cli_Disconnect. Povezave po koncu vsakega cikla prekinjamo, da zmanjšamo obremenitev komunikacijskih vodov. Client->Disconnect(); Urediti je potrebno tudi to, da se ob zaprtju celotnega programa prekine povezava in izbriše uporabljeni klient. To uredimo z umestitvijo naslednjega ukaza v zaustavitveni (destruktorski) del kode programa: Client->Disconnect(); delete Client; Branje/pisanje podatkov iz/v podatkovni blok in pretvorba v pravilno obliko Za branje podatkov iz podatkovnega bloka krmilnika se uporabljata funkciji Snap7 vmesnika Cli_ReadArea in Cli_DBRead. Prva je splošna in se uporablja za branje po posameznih bitih, druga pa je poenostavljena različica prve, kjer je potrebno funkciji podati manj vhodnih podatkov, saj so ţe privzeti in se uporablja za branje po bajtih. Za pisanje podatkov v podatkovne bloke krmilnika se uporabljata funkciji Snap7 vmesnika Cli_WriteArea in Cli_DBWrite. Lastnosti so enake kot pri branju podatkov. Vse te funkcije so sinhrone in se v programu izvajajo zaporedno. To lahko povzroči daljše zastoje pri izvajanju v primeru teţav s povezavo, zato obstajajo tudi enake funkcije, ki se izvajajo asinhronsko, s katerimi pa lahko izvajanje programa bolj kontroliramo. Poimenovane so enako, le da je vmes dodana kratica As, na primer Cli_AsReadArea. Mi bomo uporabljali slednje, da lahko nastavimo preverjanje uspešnosti povezave. Nastavljeno je tako, da damo funkcijam za branje in pisanje časovno okno, in sicer največ določeno število milisekund, da se izvedejo. V kolikor v tem času niso uspešno izvedene, se napaka zabeleţi in na podlagi tega ustrezno nadaljuje z izvajanjem programa. To je moţno izvesti z uporabo Snap7 funkcije Cli_WaitAsCompletion. Razlaga funkcij in vhodnih podatkov Funkciji Cli_AsReadArea in Cli_AsWriteArea sta osnovni funkciji in omogočata široko izbiro vhodnih parametrov za komunikacijo s krmilnikom. int Cli_AsReadArea(S7Object Client, int Area, int DBNumber, int Start, int Amount, int WordLen, void *pusrdata); int Cli_AsWriteArea(S7Object Client, int Area, int DBNumber, int Start, int Amount, int WordLen, void *pusrdata); 65

92 Postopek izdelave programske opreme Preglednica 6.1: Razlaga vhodnih argumentov [23] Client Ime uporabljenega klienta Area Tip površine, glej tabelo 6.2 DBNumber Identifikacijska številka podatkovnega bloka, katerega ţelimo brati Start Pomeni lokacijo (zamik) v strukturi podatkovnega bloka, v kateri ţelimo začeti z branjem Amount Št. enot, ki jih ţelimo prebrati glede na izbran WordLen Wordlen Velikost branega tipa, glej tabelo 6.3 pusrdata Naslov spremenljivke medpomnilnika, za zapis prebranih podatkov Preglednica 6.2: Area tabela [23] Vrednost Uporaba S7AreaPE 0x81 Vhodi procesov S7AreaPA 0x82 Izhodi procesov S7AreaMK 0x83 Merkerji S7AreaDB 0x84 Podatkovni bloki DB S7AreaCT 0x1C Števniki S7AreaTM 0x1D Časovniki Preglednica 6.3: WordLen tabela [23] Vrednost Tip S7WLBit 0x01 Bit S7WLByte 0x02 Byte (8bit) S7WLWord 0x04 Word (16 bit) S7WLDWord 0x06 Double Word (32 bit) S7WLReal 0x08 Real (32 bit float) S7WLCounter 0x1C Števnik (16 bit) S7WLTimer 0x1D Timer (16 bit) V našem primeru za Client vnašamo naš klient po imenu Client, pod Area izberemo S7AreaDB, pod DBNumber vpišemo istoimensko globalno spremenljivko, ki se jo definira v konfiguracijski datoteki pred zagonom programa, pod WordLen pa izberemo bit, torej S7WLBit. Te osnovne funkcije smo uporabili za vpis logičnih vrednosti, ker zajemajo zgolj en bit. Funkciji Cli_AsDBRead in Cli_AsDBWrite sta poenostavljeni funkciji in ţe predpostavljata izbiro S7AreaDB za podatkovne bloke in branje/pisanje po bajtih torej S7WLByte. Vsi preostali argumenti so identični zgornjim, le Size pomeni velikost v bajtih. Te funkcije smo lahko uporabili v preostalih primerih, torej za branje večjih števil, lahko pa bi seveda uporabili tudi prejšnje funkcije z ustreznimi argumenti. int Cli_AsDBRead(S7Object Client, int DBNumber, int Start, int Size, void *pusrdata); int Cli_AsDBWrite(S7Object Client, int DBNumber, int Start, int Size, void *pusrdata); 66

93 Postopek izdelave programske opreme Zapis, da je slika zajeta V kolikor je povezava uspešno vzpostavljena, moramo v strukturo podatkovnega bloka na mesto PictureTaken zapisati podatek logičnega tipa Bool. To izvedemo s funkcijo Cli_AsWriteArea. bool PictureTaken = true; // Deklaracija v.h datoteki Client->AsWriteArea(S7AreaDB, DBNumber, 64, 1, S7WLBit, &PictureTaken); Client->WaitAsCompletion(100); Vhodne argumente definiramo v skladu z zgornjo razlago. Številka podatkovnega bloka DBNumber je definirana pred zagonom programa v konfiguracijski datoteki. Glede na strukturo podatkovnega bloka in lokacijo spremenljivke PictureTaken znotraj strukture izračunamo mesto začetka, izraţeno v bitih, velikost je samo 1 bit, zapišemo pa vrednost spremenljivke PictureTaken oziroma enko. Za tem sledi še ukaz, da ima funkcija časa 100 ms, da se izvede. Preberi niz podatkov Send Nadaljujemo z branjem celotnega niza podatkov Send, ki vsebuje informacijo o identifikacijski številki palete in številki sloja. byte ReadBuffer[12]; // Deklaracija v.h datoteki Client->AsDBRead(DBNumber, 0, 8, &ReadBuffer); ReadOK = Client->WaitAsCompletion(100); Vhodne argumente definiramo v skladu z zgornjo razlago za funkcijo Cli_AsDBRead, začnemo na začetku, saj bomo prebrali cel blok naenkrat in izrazimo velikost prebrane strukture v bajtih. Prebrane podatke zapišemo v medpomnilniško spremenljivko ReadBuffer. Podatki bodo tako še vedno v BIG-Endian formatnem zapisu. Za tem sledi še ukaz, da ima funkcija časa 100 ms, da se izvede. Izlušči in pretvori posamezne vrednosti Če je bilo branje podatkov uspešno, se v uporabniškem vmesniku izpiše potrditev uspešnosti postopka. Nato za vsako spremenljivko posebej kličemo primerno funkcijo, ki iz medpomnilniške spremenljivke ReadBuffer pobere del niza podatkov določene velikosti od začetne lokacije ter glede na velikost primerno obrne bajte. Dobljeno vrednost priredimo novima spremenljivkama, ki sta del pregledno zasnovane strukture. Comm_Camera.PLCRead.PalletNumber = GetDIntAt(ReadBuffer, sizeof(readbuffer), 2); Comm_Camera.PLCRead.LayerNumber = GetIntAt(ReadBuffer, sizeof(readbuffer), 6); Funkciji za zamenjavo bajtov smo definirali sami. Za PalletNumber, ki je Siemens tipa DInt, torej velikosti 32 bitov oziroma 4 bajte, in v C++ ustreza formatu int. Zaradi razlike v notranjem načinu zapisa je potrebno bajte obrniti. 67

94 Postopek izdelave programske opreme Primer za decimalno število , v hex 0x075BCD15, se v PLC, ki ima notranji zapis v BIG-Endian načinu, zapiše tako: 0x07 0x5B 0xCD 0x15 V PC, ki pa ima notranji zapis v LITTLE-Endian načinu pa je zapis takšen: 0x15 0xCD 0x5B 0x07 Če bajtov ne obrnemo nazaj, dobimo število Da dobimo prvotno ţeleno število, to v kodi programa storimo z bitnimi premiki z našo funkcijo GetDInAt: int Cuc480AcquireDlg::GetDIntAt(byte Buffer[], size_t size, int Pos) { int Result; Result = Buffer[Pos]; Result <<= 8; Result += Buffer[Pos + 1]; Result <<= 8; Result += Buffer[Pos + 2]; Result <<= 8; Result += Buffer[Pos + 3]; return Result; } Podobno storimo za LayerNumber, ki je Siemens tipa Int, torej velikosti 16 bitov oziroma 2 bajta, in v C++ ustreza formatu short int. Tudi tokrat je potreben postopek obračanja, a je krajši, ker 2 bajta lahko zamenjamo v enem koraku. Primer za decimalno število 10, v hex 0x000A, se v PLC, ki ima notranji zapis v BIG- Endian načinu, zapiše tako: 0x00 0x0A V PC, ki pa ima notranji zapis v LITTLE-Endian načinu, se prepiše tako: 0x0A 0x00 Če bajtov ne obrnemo nazaj, dobimo število Da dobimo nazaj prvotno ţeleno število, to v kodi programa storimo z bitnimi premiki z našo funkcijo GetInAt: short int Cuc480AcquireDlg::GetIntAt(byte Buffer[], size_t size, int Pos) { return ((Buffer[Pos] << 8) Buffer[Pos + 1]); } Po ureditvi obeh spremenljivk, ju zdruţimo v skupen niz tipa CString. Niz poimenujemo PalletInfo in ga kot argument pošljemo naprej funkciji za shranjevanje slike. Številka palete in številka sloja sta ločeni s podčrtajem. CString PalletInfo; // Deklaracija v datoteki.h PalletInfo.Format("%d_%d", Comm_Camera.PLCRead.PalletNumber, Comm_Camera.PLCRead.LayerNumber); SaveImagePalletInfo(PalletInfo); 68

95 Postopek izdelave programske opreme V kolikor je prišlo do kakršne koli napake pri komunikaciji, napako izpišemo v uporabniškem vmesniku in zaţenemo postopek shranjevanja slike samo s časovnim odtisom. CString Err; Err.Format("Connection Error"); GetDlgItem(IDC_CONNECTION_STATUS)->SetWindowText(Err); SaveImageDateOnly(); Shranjevanje slik na disk Slike shranjujemo na dva načina, in sicer z informacijo o paleti skupaj s časovnim odtisom ali samo s časovnim odtisom za vsak slučaj, če bi prišlo do teţav v komunikaciji s krmilnikom. Postopek shranjevanja teče po naslednjem zaporedju: START Zajem in oblikovanje časovnega odtisa CString Timestamp Določitev mesta shranjevanja CString pathdir Preverjanje in po potrebi kreacija map na mestu shranjevanja CheckDirectory Zdruţitev nizov poti in imena datoteke v skupni niz CString path Pretvorba niza iz CString v wchar_t* CString path wchar_t* wcstring Določitev parametrov shranjevanja ImageFileParams Shranitev slike is_imagefile KONEC Slika 6.21: Diagram poteka shranjevanja slik Zajem in oblikovanje časovnega odtisa Za potrebe shranjevanja slik z enoznačnim imenom, katerega del je tudi čas zajema slike, moramo sestaviti programsko kodo, ki bo prebrala informacijo s kamere o času zajema zadnje zajete slike ter formirala ustrezen niz, ki bo uporabljen za ime datoteke. 69

96 Postopek izdelave programske opreme START Zakleni sekvenčni medpomnilnik is_lockseqbuffer Definiraj novo strukturo ImageInfo UC480IMAGEINFO Pridobi informacije o zadnji zajeti sliki is_getimageinfo Zgradi niz s časovnim odtisom CString Timestamp Timestamp.Format Odkleni sekvenčni medpomnilnik is_unlockseqbuffer KONEC Slika 6.22: Diagram poteka zajema časovnega odtisa Niz je zapisan v CString poimenovan Timestamp, zgrajen z ukazom format in sestavljen iz podatkov prebranih iz strukture ImageInfo.TimestampSystem. Niz mora biti na podlagi zahtev oblike: LLLL_MM_DD HH_MM_SS. Koda zgradbe niza: CString Timestamp; UC480IMAGEINFO ImageInfo; if (is_getimageinfo(m_hg, m_lmemoryid, &ImageInfo, sizeof(imageinfo)) == IS_SUCCESS) { // Timestamp of system Timestamp.Format("%04d_%02d_%02d %02d.%02d.%02d.%02d", ImageInfo.TimestampSystem.wYear, ImageInfo.TimestampSystem.wMonth, ImageInfo.TimestampSystem.wDay, ImageInfo.TimestampSystem.wHour, ImageInfo.TimestampSystem.wMinute, ImageInfo.TimestampSystem.wSecond); } Niz bo pozneje dograjen in uporabljen za shranjevanje slike. Določitev mesta shranjevanja s preverjanjem lokacije in kreacije map Mesto shranjevanja je sestavljeno iz dveh delov, iz lokacije in imena glavne mape SaveImageDirectory ter imena podmape SubFolderName. V glavni mapi se bodo za vsako paletirno napravo, na kateri je vgrajen slikovni sistem, nahajale podmape z imenom naprave, v katere se bodo shranjevale posamezne slike, ki tej napravi pripadajo. 70

97 Postopek izdelave programske opreme Oba dela niza definiramo v konfiguracijski datoteki, ki se naloţi ob zagonu programa. Lokacije se med delovanjem programa namensko ne da spreminjati, za to je potreben ponovni zagon. Primer definicije lokacije v konfiguracijski datoteki: [Config] SaveImageDirectory = C:\Users\KristianZ\Desktop\SaveImageFolder ; example SaveImageDirectory = C:\Users\CurrentUser\Desktop\SaveImage SubfolderName = \PA1 ; example SubfolderName = \PA1 Obe spremenljivki sta v inicializacijskem delu programa prebrani in shranjeni, nato pa jih v funkciji za shranjevanje slik zdruţimo v skupen niz tipa CString. Predpona (LPCTSTR) je uporabljena zaradi zagotavljanja kompatibilnosti z multi-byte znakovnim setom. CString pathdir = (LPCTSTR)SaveImageDirectory; pathdir = pathdir + (LPCTSTR)SubfolderName; Nato sledi preverjanje, če mape na tej lokaciji obstajajo. Najprej preverimo obstoj glavne mape, nato pa še podmape. V kolikor mape še ne obstajajo, jih kreiramo. Preverjanje izvajamo z lastno funkcijo CheckDirectory, v katero je vgrajena Windows funkcija za pridobivanje informacij o datotekah GetFileAttributes, ki vrača povratne informacije, na podlagi katerih se lahko odločamo. Prikaz izdelane funkcije: bool Cuc480AcquireDlg::CheckDirectory(CString Directory) { DWORD DirMessage = GetFileAttributes((LPCTSTR)Directory); if (DirMessage == INVALID_FILE_ATTRIBUTES) { return false; } if (DirMessage & FILE_ATTRIBUTE_DIRECTORY) { return true; } return false; } Združitev nizov poti in imena datoteke v skupni niz Da lahko sliko shranimo, je potrebno niz oblikovati tako, da vsebuje celotno pot, kamor bo slika shranjena, celotno ime datoteke in končnico formata slike. Niz je torej naslednje oblike: POT\\ŠtPALETE_ŠtSLOJA LLLL_MM_DD HH_MM_SS.jpg oziroma v primeru, če pride do padca komunikacije: POT\\LLLL_MM_DD HH_MM_SS.jpg Niz torej sestavimo v skupen niz z imenom path, tipa CString iz štirih, večinoma ţe prej sestavljenih nizov poti (path), informacije o paleti ter sloju (PalletInfo), časovnega odtisa (Timestamp) in končnice (.jpg). 71

98 Postopek izdelave programske opreme Pretvorba iz tipa CString v wchar_t* Ker mora biti ime za shranjevanje slike v Windows operacijskem sistemu zasnovano na Unicode znakovnem setu, naš program pa bazira na multi-byte znakovnem setu (MBCS), je potrebna ustrezna pretvorba iz našega tipa CStringa z 8-bitnim znakovnim zapisom v tip wchar_t* z 16-bitnim znakovnim zapisom. Postopek je izveden z naslednjo kodo, kjer niz path pretvorimo in zapišemo v novo spremenljivko wcstring: size_t newsize = strlen(path) + 1; size_t convertedchars = 0; wchar_t * wcstring = new wchar_t[newsize]; mbstowcs_s(&convertedchars, wcstring, newsize, path, _TRUNCATE); Določitev parametrov shranjevanja in ukaz za shranitev slike Parametre shranjevanja zapišemo v I2D strukturo imenovano IMAGE_FILE_PARAMS. V strukturo nato vpišemo celotno ime datoteke, ki smo jo prej ustrezno oblikovali in pretvorili, format slike, v našem primeru smo izbrali jpg, ter stopnjo kvalitete oziroma kompresije slike. IMAGE_FILE_PARAMS ImageFileParams; ImageFileParams.pwchFileName = wcstring; ImageFileParams.nFileType = IS_IMG_JPG; ImageFileParams.nQuality = 80; Sliko nato shranimo s klicem I2D funkcije is_imagefile, kateri podamo strukturo z zgoraj definiranimi parametri. INT nret = is_imagefile(m_hg, IS_IMAGE_FILE_CMD_SAVE, (void*)&imagefileparams, sizeof(imagefileparams)); 6.6. Simulacija motenj in napak Izpadi povezav Da bi bila naša programska oprema pripravljena na realne okoliščine v industrijskem procesu, smo morali zagotoviti, da program v primeru moţnih motenj in napak v procesu logično in kontrolirano odreagira. S tem namenom smo testirali vse moţne kombinacije izpada povezav. Program je dobro pripravljen na izpade povezave s PLC-jem, saj je njegovo delovanje tako ob začetnem kot ob vmesnih izpadih tekoče in zanesljivo. Ob vsakem zajemu slike preverja povezavo s krmilnikom in v primeru, da povezave še vedno ni mogoče vzpostaviti, shrani sliko samo s časovnim odtisom, pri tem pa status povezave osveţuje in sporoča preko uporabniškega vmesnika. V kolikor lahko pride do ponovne vzpostavitve povezave, bo to tudi storil in nadaljeval s shranjevanjem slike s polnim imenom. V primeru prekinitve povezave gostujočega računalnika ali kamere z lokalno mreţo, pa pravilnega delovanja ni mogoče zagotoviti, saj je delujoča komunikacija s kamero 72

99 Postopek izdelave programske opreme predpogoj za izmenjavo slik. Program izpiše, da ni mogoče vzpostaviti povezave s kamero, zato moramo v tem primeru napako odpraviti fizično. V pomoč za ugotavljanje pravilnega delovanja programske opreme nam je tudi izpis imena zadnje zajete slike, iz katere se da razbrati, če se shranjevanje slike ne izvaja. Testiranje delovanja z več kamerami hkrati Ker bomo imeli v tovarni več tovrstnih naprav, na katerih bodo nameščene kamere, je bilo potrebno takšno delovanje tudi testirati. Za vsako napravo bo tekla svoja aplikacija oziroma program. Vse aplikacije bodo v osnovi enake, le konfiguracijski parametri se pred zagonom ustrezno nastavijo. Vse bodo tekle na enem gostujočem računalniku, vsaka naprava pa je upravljana s svojim PLC-jem. Tako zasnovan sistem sledi načelom modulne gradnje, kar pomeni, da je nadgradnja in povečevanje števila slikovnih sistemov karseda enostavna. Testiranje delovanja z več kamerami hkrati smo izvedli z dvema kamerama. Sistem ne zahteva zelo veliko mreţnega prometa ter procesorske in pomnilniške moči, tako da v kolikor sistem deluje z dvema kamerama, pomeni, da bo deloval tudi z razumno večjim številom. V kolikor bi prišlo do zares velikega povečanja števila naprav, bi morda morali dodati kakšen gostujoči računalnik in povečati mreţne kapacitete celotnega sistema. Razvita programska oprema je z dvema kamerama uspešno delovala brez teţav Opis uporabniškega vmesnika Glavno okno uporabniškega vmesnika Slika 6.23: Glavno okno uporabniškega vmesnika 73

100 Postopek izdelave programske opreme Grafični videz Glavni uporabniški vmesnik je klasično okno operacijskega sistema Windows (Dialog based), ki se pokaţe takoj ob zagonu programa oziroma aplikacije. Po zahtevi naročnika je uporabniški vmesnik izdelan v angleškem jeziku. V naslovni vrstici se nahaja ikona, ki ponazarja kamero, zraven pa je izpisan naslov, ki vsebuje informacijo o imenu naprave na katerega je kamera nameščena. V opravilni vrstici aplikacijo prav tako predstavlja ikona kamere. Okno vsebuje podatkovne okvirje, ki se jih ne da urejati oziroma spreminjati njihove vsebine, sluţijo pa za sporočanje podatkov o nastavitvah in uspešnosti delovanja. V desnem spodnjem kotu se nahajata še logotip podjetja in pa gumb za minimiranje glavnega okna skrije se v ozadje, ponoven dostop do njega je moţen preko ikone sistemskega pladnja. S klikom na gumb X program povsem ustavimo in zapremo. S tem izgine tudi ikona v sistemskem pladnju. Okno Configuration info (Informacije o začetnih nastavitvah) V tem oknu se nahajajo vsi parametri, ki jih je moţno spreminjati. To je moţno storiti preko konfiguracijske datoteke config.ini, ki se nahaja na isti lokaciji kot izvršilna datoteka programa oziroma aplikacije CameraAppIHS.exe. Parametre v konfiguracijski datoteki enostavno spremenimo ter aplikacijo ponovno zaţenemo, saj se parametri iz datoteke naloţijo le ob zagonu. To je storjeno z namenom, da se prepreči, da bi se parametri spreminjali pomotoma ali nepremišljeno, saj bi takšno spreminjanje lahko privedlo do nepravilnega delovanja programa. Spreminjanje parametrov je uporabniku odsvetovano, namenjeno je predvsem serviserjem. Parametri so sledeči: Palletizer Name: Ime naprave, na kateri je naprava nameščena. CameraID: Identifikacijska številka kamere. Nastavimo jo sami v I2D Camera Managerju, paziti moramo, da dvema kamerama ne dodelimo iste številke. Izbiramo lahko med številkami od 1 do 254, številke 0 ne smemo nastaviti, saj za program pomeni naslednja prosta kamera, s tem pa bi lahko napravam dodelili napačne kamere. PLC Address: IP naslov Siemens PLC-ja, ki upravlja s paletirno napravo. Pri nastavitvi IP naslovov moramo predvsem paziti na to, da PC, PLC in kamero nastavimo na isti subnet (tretji sklop števk v IP naslovu), ker v nasprotnem običajno prihaja do teţav. Rack, Slot: Oznaka za omaro in reţo, ki ju je potrebno nastaviti za uspešno komunikacijo s Siemens PLC-ji. Vrednosti so običajno privzete za določeni tip procesorja. Za procesor, ki smo ga 74

101 Postopek izdelave programske opreme uporabili (S7-300), sta privzeti vrednosti običajno Rack=0 in Slot=2, medtem ko je za novejši model procesorja (S7-1500) privzeto Rack=0, Slot=0 [23]. DBNumber: Identifikacijska številka Siemensovega podatkovnega bloka (Data block number) v katerem se nahajajo strukturirani podatki za komunikacijo med glavnim programom in PLC-jem. Podatkovni blok vsebuje podatke, ki jih glavni program bere (številka palete, sloja) in prostor, kamor zapisuje informacije o končanju operacij zajemanja in shranjevanja. Več o strukturi podatkovnega bloka v poglavju Save location: Vsebuje pot, kamor se bodo slike shranjevale. Sestavljena je iz primarne lokacije in podmape, da se loči slike posameznih naprav. Več v poglavju Okno Connection Status (Status povezave) V tem polju se nahajajo informacije o statusu povezave. Okno se osveţi vsakič, ko se poskuša vzpostaviti povezava in rezultatu primerno izpiše uspešnost oziroma napako povezave. Okno Last Image (Zadnja slika) V tem polju se izpisuje ime zadnje shranjene slike. Ta informacija je pomembna za odkrivanje morebitnih teţav v delovanju, saj se iz imena vsake slike razbere časovni odtis. V primeru, da ime ne vsebuje podatkov o številki palete, pomeni, da je prišlo do teţave v komunikaciji, prav tako pa lahko iz časovnega odtisa razberemo, če bi prihajalo do izpuščanja slik. Gumb Minimize to tray (Pošlji na sistemski pladenj) Gumb je namenjen temu, da lahko program deluje v ozadju, saj ob normalnem delovanju primarnega okna ne potrebujemo, kajti le-ta sluţi za namen enostavnega zagona in dešifriranju morebitnih teţav Meni sistemskega pladnja Slika 6.24: Meni sistemskega pladnja 75

102 Postopek izdelave programske opreme Ob zagonu programa oziroma aplikacije se v sistemskem pladnju samodejno pojavi ikona. Lahko je vidna vedno, občasno pa se skrije v podmeni sistemskega pladnja, odvisno od nastavitev Windows operacijskega sistema. Kadar program teče, je iz sistemskega pladnja vedno dostopna, tudi, če smo glavno okno minimirali. Z dvoklikom na ikono z levim miškinim gumbom se glavno okno znova prikaţe. Z desnim klikom se nam v pladnju pokaţe meni, ki nam ponudi tri moţnosti, razvidne na sliki Show Window (Prikaži okno) Ta opcija je enakovredna dvokliku levega miškinega gumba, saj nam na površje prikliče glavno okno. Help (Pomoč) Klik na to opcijo odpre pomoč uporabniku za ravnanje z aplikacijo, predvsem za primere reševanja teţav. Odpre se ReadMe datoteka v privzetem urejevalniku, običajno je to beleţnica. Close Application (Zapri aplikacijo) Je ekvivalenten gumbu X na glavnem oknu, saj program ustavi in ga povsem zapre. S tem izgine tudi ikona v sistemskem pladnju Priprava programske opreme za predajo uporabniku Za predajo programske opreme je bilo potrebno zbrati vse potrebne datoteke za normalno delovanje in pripraviti navodila za uporabo programske opreme. Uporabniku bo posredovan programski paket, ki bo vseboval gonilnike in programsko opremo kamere, ki jo je zraven kamere priloţil proizvajalec, ter glavni program v obliki samostoječe aplikacije za vsako napravo posebej. Struktura paketa je prikazana spodaj. Slika 6.25: Struktura programskega paketa namenjenega končnemu uporabniku 76

103 Postopek izdelave programske opreme Samostoječa aplikacija se zaţene preko izvršilne datoteke CameraAppIHS.exe in se nahaja v posebni mapi, skupaj s potrebnimi datotekami za delovanje. Zraven je še konfiguracijska datoteka config.ini, ki vsebuje vse parametre, ki se jih da pred zagonom aplikacije nastaviti in so tudi prikazani na uporabniškem vmesniku v oknu Configuration info. Vsaka naprava ima svoje parametre, ki jih je potrebno pred prvo uporabo ustrezno nastaviti. ReadMe_operating_instructions je datoteka z navodili za uporabo v angleškem jeziku, do katere lahko dostopamo direktno s klikom na datoteko, ali preko moţnosti Help v meniju sistemskega pladnja. V isti mapi kot izvršilna datoteka se mora obvezno nahajati tudi datoteka snap7.dll, to je dinamična knjiţnica, ki zagotavlja delovanje Snap7 vmesnika. V paketu imamo dve takšni mapi, saj bosta zaenkrat obratovali dve paletirni napravi z vgrajenima slikovnima sistemoma. V primeru, da bi se pozneje še kakšna dodala, je priloţena tudi datoteka z navodili za enostavno povečanje. Vse, kar je potrebno storiti, je prekopirati eno izmed map z aplikacijo in ustrezno nastaviti parametre v konfiguracijski datoteki. Jasno je potrebno predvideti tudi lokacijo shranjevanja za novo napravo. Navodila za uporabo so na ţeljo uporabnika napisana v angleškem jeziku in zajemajo naslednja poglavja: vsebina programskega paketa in datoteke potrebne za delovanje, navodila za prvo uporabo, navodila pri nadaljnji uporabi ter iskanje in odpravljanje napak v delovanju. Napisana so v navadni tekstovni obliki (datoteka.txt) in se uporabniku odprejo v privzetem programu za urejanje navadnih tekstovnih datotek, običajno je to beleţnica. 77

104 Postopek izdelave programske opreme 78

105 7. Izdelava nosilca kamere 7.1. Izdelava 3D-modela Pri izdelavi nosilca kamere je bilo najprej potrebno izračunati novo oddaljenost leče od maksimalne višine polne palete na podlagi izbranega objektiva. Računamo po enačbi (4.8): (7.1) To je torej minimalna razdalja, da še dosegamo ţeleno merilno območje. Pri konstruiranju je bilo potrebno paziti še na potisnika, ki segata globoko proti sredini paletizerja. Namreč, če bi kamero postavili previsoko, bi potisnika zakrivala vidno polje in se ne bi videlo celotnega merilnega območja. V ta namen smo na podlagi preračunanih podatkov v 3Dmodel naprave dodali piramido, ki je ponazarjala vidno polje kamere, in smo tako laţje preverili, da ne bi prišlo še kje do zakrivanj. 3D-model kamere smo uvozili v STEP formatu, objektiv pa smo naredili na podlagi skice z merami iz podatkovnega lista objektiva. Preračune vidnega polja smo validirali tudi z meritvijo in sicer tako, da smo na kritične razdalje postavili meter in na sliki preverili merilno območje. Slika 7.1: Prikaz nosilca za kamero 79

106 Izdelava nosilca kamere Pri konstruiranju smo se drţali tudi ţelj in zahtev opredeljenih v preglednici 3.1. Nosilec je iz razlogov zagotavljanja robustnosti in tudi estetske skladnosti z napravo namenoma predimenzioniran, tako da nosilnostni preračuni niso potrebni. Slika 7.2: Prikaz doseganja vidnega polja Sklop nosilca je sestavljen iz glavnega prečnega nosilca, ki je vijačen na ogrodje paletizerja in narejen iz upogibane pločevine debeline 4 mm, ter iz dveh zrcalnih L- nosilcev vijačenih na prečni nosilec. Narejena sta iz upogibane pločevine debeline 3 mm, nanju pa je privijačena kamera. Kamera je na vsakega izmed zrcalnih L-nosilcev privijačena z dvema imbus vijakoma M5 v navojne luknje na kameri. Vsakemu vijaku pripada tudi ustrezna podloţka. Zrcalna L- nosilca sta na prečni nosilec privijačena vsak z enim imbus vijakom M6, ki ju na spodnji strani drţita varovalni matici s podloţkama. Prečni nosilec je na ogrodje privijačen z navadnimi M8 vijaki s šestrobno glavo. Vijakov v strukturo na tem mestu namensko ne dajemo, ker bo ta nosilec na ogrodje vgrajen izjemoma. Iz tega razloga na ogrodju tudi niso bile predvidene luknje, ki jih bo potrebno zvrtati ter jim vrezati navoj ob montaţi. Slika 7.3: Detajlni prikaz prečnega in zrcalnih L-nosilcev 80

107 Izdelava nosilca kamere 7.2. Izdelava tehnične dokumentacije Izdelana je bila vsa potrebna tehnična dokumentacija, in sicer sestavna risba, ki je posredovana montaţnemu oddelku, delavniške risbe za izdelavo posameznih kosov in kataloška risba, ki bo uporabljena za katalog rezervnih delov. Risbe so bile shranjene k strukturi izdelka v bazi informacijskega sistema podjetja, prav tako so bile natisnjene v papirnato obliko za potrebe laţje izdelave, montaţe in hranjenja v arhivu. Vse risbe so bile izdelane po pravilih tehnične dokumentacije [26]. Slika 7.4: Prikaz izseka kataloške risbe 7.3. Izdaja delovnega naloga Ko je vsa dokumentacija pripravljena, je potrebno izdati delovni nalog, da se začne nadaljnja obdelava strukture izdelka na preostalih oddelkih v podjetju. Izdaja naloga poteka preko informacijskega sistema podjetja Izdelava strukture tehnoloških in montažnih operacij Na podlagi izdelane tehnične dokumentacije in izdanega delovnega naloga je bil izdelan načrt tehnoloških in montaţnih operacij. 81

108 Izdelava nosilca kamere Za tehnološki del so bile razpisane naslednje operacije: priprava in čiščenje pločevine, laserska obdelava pločevine, priprava, brušenje, čiščenje pločevine, upogibanje pločevine in barvanje pločevine RAL 1015 ter montaţna operacija: strojna montaţa doma. Vsaki operaciji se določi številka operacije, predpiše se predviden datum in čas začetka, predvidena norma, količina izdelave, število potrebnih delavcev in strojev. Operaciji se vedno pripiše status, ki se začne s planiranim, nato lansirano in končano. Vse opravljene operacije se sproti beleţijo in se jim vpiše povratna informacija o dejanskem času začetka in konca Tehnološke operacije Ker sta tako glavni prečni nosilec kot manjša nosilca kamere izdelana iz črne pločevine, je potrebno pred obdelavo pločevino najprej pripraviti in očistiti. Da gre lahko pločevina na laserski izrez, je potrebno pripraviti načrte v DXF formatu. Kose, ki gredo na lasersko obdelavo, izrezujejo zunanji izvajalci. Razrezana pločevina nato prispe na tehnološki oddelek, kjer jo je zopet potrebno pripraviti, pobrusiti in očistiti, nato gre na upogibanje. Če gre za kos iz nerjavne pločevine, je potrebno paziti na vidne strani, v našem primeru pa to ni tako pomembno, saj gre črna pločevina naprej na barvanje. Nosilcu za kamero smo morali ţe na delovnem nalogu predpisati barvo, ki se jo običajno predpisuje po RAL lestvicah. V našem primeru je naročnik za glavnino komponent, med drugim tudi za ogrodje paletizerja, ţelel slonokoščeno barvo, ki ima po RAL lestvici oznako Da se nosilec lepo sklada z ostalimi deli naprave, mu je bila predpisana enaka barva Montažne operacije Ko so kosi izdelani, so dostavljeni v skladišče polizdelkov, kjer čakajo do montaţe. Vse v podjetju izdelane naprave se najprej montirajo v domači montaţni hali, kjer se pozneje vse naprave tudi testirajo. Šele po uspešnem testiranju se naprave delno demontira in odpremi na lokacijo k naročniku. Montaţa našega nosilca se izvede s pomočjo sestavne risbe, na kateri so navedeni vsi sestavni kosi, pomembne vgradne mere in morebitne opombe. Pod opombo je bilo opozorilo, da mora po montaţi os kamere sovpadati s središčem odlagalnega mesta na paleti. V našem primeru je bilo potrebno na ogrodju paletizerja izvrtati luknje. Običajno se večina lukenj izdela ţe prej v tehnologiji, razen v primerih, ko se na obstoječe kose naknadno montirajo novi, kot v primeru našega nosilca. 82

109 8. Testiranje in zagon Preden lahko razviti sistem predamo naročniku, ga je potrebno preizkusiti skupaj s paletirnim sistemom v realnem procesu zlaganja paketov na paleto, pod enakimi pogoji, kot jim bo sistem podvrţen na lokaciji pri naročniku. Pripravljene smo imeli vse komponente slikovnega sistema, ki smo jih izbrali, izdelano smo imeli programsko opremo, ki je bila na testnem preizkuševališču na delovnem mestu v pisarni uspešno preizkušena, prav tako smo imeli izdelan sklop nosilca, preko katerega bo kamera pričvrščena na obstoječo napravo Vgradnja slikovnega sistema na obstoječo napravo Montaža nosilca in kamere Preden smo lahko pričeli s testiranjem, je bilo potrebno kamero preko sklopa nosilca namestiti na ogrodje naprave. Pri tem je bilo potrebno na ogrodje, na mesto, kamor bo pričvrščen glavni prečni nosilec, izvrtati štiri luknje in jim vrezati navoj. Ostale luknje so bile narejene ţe v fazi izdelave posameznih kosov. Slika 8.1: Montaţa sklopa nosilca kamere na ogrodje paletizerja 83

110 Testiranje in zagon Ob montaţi je bilo potrebno preveriti, če so bili kosi izdelani v skladu z načrtom in ali je kamera po montaţi resnično nameščena točno na tistem mestu, ki smo ga v modelu predvideli. Pozneje, ko smo izvedli še električno vezavo kamere, smo ustreznost namestitve preverili še preko slike. Slika 8.2: Umestitev nosilca in kamere med potisnika Električna vezava komponent Električna vezava komponent se ni kaj dosti razlikovala od tiste, ki smo jo izvedli za potrebe testiranja med razvojem programske opreme na delovnem mestu, le da so bile tokrat komponente, kot so krmilnik in mreţno stikalo, montirane v elektro omaro na DIN letvah, zagotovljeno napajanje pa je bilo za celotno napravo skupno in zmogljivejše. Siemens Procesor I/O moduli Mreţno stikalo Slika 8.3: Elektro omara s Siemens krmilnikom in mreţnim stikalom 84

111 Testiranje in zagon Edina razlika v vezavi je bila, da je bil Siemensovem procesorju dodan I/O modul, na katerega pa smo tokrat lahko vezali pozitivno ţico zunanjega sproţilca kamere, preko katere bo dan pulz za zajem slike. Slika 8.4: Prikaz priključnih kablov na kameri, levo mreţni, desno napajalni 8.2. Testiranje delovanja Testiranje vidnega polja slikovnega sistema Ko je bila montaţa nosilca in priklop kamere končan, smo lahko pričeli z osnovnim testiranjem. Najprej je bilo potrebno vzpostaviti povezavo med kamero in računalnikom preko I2D Camera Managerja. Za sprotno opazovanje slike med testiranjem vidnega polja smo uporabili I2D Camera Cockpit, proizvajalčev pregledovalnik, ki je priloţen kameri (podrobnejši opis v poglavju 6.2). Nujna zahteva, ki smo jo morali izpolniti, je bila zagotoviti, da se bodo na slikah videli vsi paketi, ne glede na višino odloţenega sloja. To smo preverili tako, da smo glavo paletizerja, na katerem so bili naloţeni paketi, dvignili na točko najvišjega in najniţjega sloja. V obeh primerih so bili paketi dobro vidni. Na najvišji točki so zapolnili skoraj celotno vidno polje, okrog je bilo še za pribliţno 5 cm merilnega prostora. Na najniţji točki so bili paketi pričakovano dosti manjši, vendar še vedno dovolj veliki, da se je dalo pakete brez teţav razbrati. Prav tako se je izkazalo, da potisnika, med katera je kamera umeščena, po pričakovanjih nista zakrivala vidnega polja, čeprav je kamera nameščena dokaj visoko. S tem smo potrdili pravilnost prostorske umestitve slikovnega sistema in optičnih preračunov. Vidno polje za oba primera je razvidno na slikah 8.5 in

112 Testiranje in zagon Poleg velikosti vidnega polja smo preverili tudi pravilnost montaţe, torej, da je os kamere sovpadala s središčem odlagalnega mesta na paleti. Tudi to smo potrdili Nastavitev zaslonke in izostritve Da bi dosegli ustrezno kakovost slik, smo morali optimalno odprtost zaslonke in nastavitev fokusa. Tudi tokrat smo za sprotno spremljanje slike uporabili program I2D Camera Cockpit. Kakovost slike je precej odvisna od osvetlitve. Osvetlitev sloja paketa je v našem primeru zgolj ambientna, torej nimamo lastnega izvora osvetlitve. V času testiranja je na pakete skozi okno montaţne hale sijalo sonce, zato je ob polno odprti zaslonki prišlo do nekaj bleščanja. Zaslonko smo malce priprli, da smo zmanjšali količino vnosa svetlobe, kar je sliko izboljšalo. S tako nastavljeno zaslonko smo sončno svetlobo nato zakrili, da smo preverili, če se s tako priprto zaslonko še vedno dovolj vidi. Ugotovili smo, da je bila slika glede na zahteve z vidika osvetljenosti povsem zadovoljiva, tako da bo zadovoljive kvalitete tudi, ko bo montirana v dejanski tovarni pri naročniku. Ker se oddaljenost do slikanih slojev s količino odloţenih slojev na paleti spreminja in ker imamo lečo s fiksno goriščno razdaljo, smo se zavedali, da ne moremo zagotoviti enake izostritve za vse sloje. Da bi določili takšno nastavitev izostritve, ki bo v povprečju najboljša, smo dvigali in spuščali glavo paletizerja, na kateri je bil naloţen sloj paketov. Najprej smo sliko na najniţji točki popolnoma izostrili, nato smo glavo počasi začeli dvigovati do najvišje točke in preverili kvaliteto slike. Izostrenost se je sicer poslabšala, vendar ne precej, tako da je bila še vedno povsem sprejemljiva. Nato smo poizkusili z obratnim procesom. Sliko smo izostrili v najvišji točki in počasi premikali navzdol. Rezultat je bil podoben kot prej. Na koncu smo izostrili sliko na vmesni višini ter glavo zapeljali v najniţjo in najvišjo točko. S tem smo v povprečju dosegli najboljšo kvaliteto slike na celotnem območju od najniţje do najvišje točke. Glede na zahteve je bila kakovost slike povsem sprejemljiva. Slika najniţjega sloja s končnimi nastavitvami je prikazana na sliki 8.5, najvišjega sloja pa na sliki

113 Testiranje in zagon Slika 8.5: Slika najniţjega sloja na paleti Slika 8.6: Slika najvišjega sloja na paleti 87

114 Testiranje in zagon Zaradi malo drugačnih ambientnih pogojev in moţnosti, da se nastavitveni obroči objektiva med transportom premaknejo, bo postopek nastavitve na terenu potrebno ponoviti, z namenom ponovne zagotovitve ustrezne kakovosti slike. Naročnik zatrjuje, da je ambientna osvetlitev na dejanski lokaciji ustrezna. V kolikor se bi izkazalo nasprotno, ima kamera moţnost samodejnega prilagajanja časa osvetlitve in ojačitve. V kolikor tudi to ne bi bilo dovolj, bo potebno razmisliti o vgradnji lastnega vira osvetlitve Testiranje zunanjega proženja brez mrežne povezave V tem delu testiranja smo preizkusili predvsem delovanje zunanjega sproţilca, vezanega na I/O modul PLC-ja, in delovanje razvite programske opreme brez mreţne povezave s krmilnikom. Kamero in računalnik smo tokrat namenoma priklopili direktno, saj smo najprej ţeleli preveriti delovanje brez krmilnika. Pred zagonom programa smo morali nastaviti konfiguracijske parametre v datoteki config.ini. Večino parametrov smo imeli ţe nastavljenih. Preveriti smo morali, da se je CameraID ujemal s tistim navedenem v I2D Camera Managerju, saj v nasprotnem primeru kamere s programom ne bi mogli odpreti. Popravili smo tudi IP naslov Siemensovega PLC-ja, čeprav smo to potrebovali šele pozneje, ko smo računalnik in kamero vezali na lokalno mreţo, del katere je bil tudi PLC. Preostali parametri so bili enaki kot v fazi testiranja aplikacije na začasnem testnem sistemu v pisarni. Ko smo nastavili parametre, smo lahko zagnali program oziroma samostoječo aplikacijo in preverili status povezave, ki nam pravilno ni javila napake, da kamera ni vzpostavljena, pravilno pa je izpisala tudi napako, da povezava s PLC-jem ni vzpostavljena. Nato smo preko krmilnika ročno poslali pulz na digitalnem izhodu, vezanem na sproţilec kamere. Slika je bila uspešno zajeta in tudi uspešno shranjena na predvideno lokacijo samo s časovnim odtisom, tako kot smo predvidevali Testiranje povezave, proženja in izmenjave podatkov V tem delu testiranja smo preizkusili celostno delovanje programske opreme, vključno s komunikacijo s krmilnikom. Kamero in računalnik smo tokrat priklopili v končno obliko, na isto mreţo kot celotni sistem za paletizacijo vključno s PLC-jem. Na uporabniškem vmesniku se je tokrat izpisal status povezave, ki je potrjeval, da je bila povezava pravilno vzpostavljena, kar je razvidno na sliki

115 Testiranje in zagon Slika 8.7: Testiranje povezave s krmilnikom V strukturo podatkovnega bloka na PLC-ju smo vpisali testno številko palete in številko sloja ter tako preverili delovanje komunikacije. Zatem smo ročno nastavili pulz na digitalnem izhodu, vezanem na sproţilec kamere. Slika je bila uspešno zajeta, kar se je uspešno zapisalo v podatkovni blok Siemensovega PLC-ja, kar smo spremljali s Siemensovim programom TIA Portal V14. Slika se je pravilno shranila na predvideni lokaciji z imenom, ki je vsebovalo predvideno številko palete, sloja in časovni odtis. Prav tako je bil izveden zapis, da je slika uspešno shranjena v podatkovni blok PLC-ja. Tudi ime slike se je izpisalo v polju zadnje zajete slike. Prikaz uporabniškega vmesnika po zajeti sliki je prikazan na sliki 8.8. Slika 8.8: Izpis uporabniškega vmesnika po uspešno zajeti sliki 89

116 Testiranje in zagon Zajeta slika, njeno ime in lokacija shranitve, so vidni v raziskovalcu na sliki 8.9, iz katere je razvidno, da se podatki ujemajo s tistimi iz uporabniškega vmesnika. Slika 8.9: Slika shranjena s pravim imenom na predvideni lokaciji Na podlagi teh rezultatov smo lahko zaključili, da razvita programska oprema deluje v skladu s pričakovanji in izpolnjuje vse zadane zahteve. To pomeni, da je slikovni sistem pripravljen za končni preizkus v sklopu testiranja celotnega procesa paletizacije Testiranje celotnega procesa Končno testiranje celotnega procesa paletizacije se izvede tako, da je identično procesu, ki se bo ponavljajoče izvajal na dejanski lokaciji v tovarni naročnika. Uporablja se iste proizvode, ki se jih bo zlagalo v tovarni, in jih naročnik k nam dostavi za potrebe testiranja. Proces se izvede od začetka do konca, začel se je z ročnim dovajanjem paketov na transportno linijo, ti so se nato ustrezno obračali z obračalnikom in ustavljali na odlagalni mizi, kjer so se formirali v sloj. Paketi so bili nato potisnjeni na glavo, ki se je spustila do ustrezne višine in sloj odloţila. V tem trenutku je naš slikovni sistem prejel signal in zajel sliko, s PLC-jem izmenjal podatke ter sliko pod ustreznim imenom in na predvideno mesto tudi shranil. V tem času je manipulator kartonov na sloj poloţil vmesni karton, glava pa se je dvignila po nov sloj, ki se je med tem procesom zgoraj formiral. 90

117 Testiranje in zagon Slika 8.10: Glava paletizerja med spuščanjem sloja paketov Paletirna naprava je obenem zlagala dva tipa proizvodov, torej na dve različni paleti, in sicer v naključnem vrstnem redu, odvisno od tega, na kateri strani je bil sloj najprej formiran. Naš slikovni sistem je tako prejemal informacije za dve različni paleti, seveda skladno s tistim slojem, ki je bil v tistem trenutku odloţen. Slika 8.11: Proces odlaganja slojev paketov na paleto 91

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

DES

DES Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Digitalni sistemi Vgrajeni digitalni sistemi Digitalni sistem: osebni računalnik

Prikaži več

innbox_f60_navodila.indd

innbox_f60_navodila.indd Osnovna navodila Komunikacijski prehod Innbox F60 SFP AC Varnostna opozorila Pri uporabi opreme upoštevajte naslednja opozorila in varnostne ukrepe. Da bi v največji meri izkoristili najnovejšo tehnologijo

Prikaži več

Področje uporabe

Področje uporabe Regulator Področja uporabe Regulator DIALOG EQ je namenjen predvsem vodenju in nadziranju sistemov ogrevanja in hlajenja, lahko pa se uporabi tudi na različnih področjih avtomatizacije in inteligentnih

Prikaži več

7. VAJA A. ENAČBA ZBIRALNE LEČE

7. VAJA A. ENAČBA ZBIRALNE LEČE 7. VAJA A. ENAČBA ZBIRALNE LEČE 1. UVOD Enačbo leče dobimo navadno s pomočjo geometrijskih konstrukcij. V našem primeru bomo do te enačbe prišli eksperimentalno, z merjenjem razdalj a in b. 2. NALOGA Izračunaj

Prikaži več

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila Programsko orodje LabVIEW za kreiranje, zajem in obdelavo signalov (statične in dinamične karakteristike hidravličnih proporcionalnih ventilov) Marko Šimic Telefon: +386 1 4771 727 e-mail: marko.simic@fs.uni-lj.si

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Načrtujemo, razvijamo in izdelamo elektroniko po meri naročnika Svetujemo pri izbiri komponent, optimiziramo stroškovnike in proizvodni proces. Ključne kompetence Razvoj elektronike (hardware) Vgrajeni

Prikaži več

Overview

Overview SMETARSKA VOZILA ROS ROCA Olympus nadgradnja na dvoosnem vozilu Olympus nadgradnja na triosnem vozilu Olympus Nova zasnova smetarskega vozila od Januarja 2010 Opravljen trpežnosti test je ekvivalenten

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Macoma katalog copy

Macoma katalog copy POSLOVNE APLIKACIJE PO ŽELJAH NAROČNIKA Poročilni sistem Finance in kontroling Poprodaja Podatkovna skladišča Prodaja Proizvodnja Obstoječi ERP Partnerji Implementacija rešitev prilagojena po željah naročnika

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 3

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 3 SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 12 33 32 www.conrad.si NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 33 32 KAZALO 1. FUNKCIJE / UPORABA... 3 2. VARNOSTNI

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Programirljivi Digitalni Sistemi Digitalni sistem Digitalni sistemi na integriranem vezju Digitalni sistem

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2 Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 12. junij 2013 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnovno sporočilo. Izogibajte se daljših besedil in predolgih

Prikaži več

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod: 1-fazni 230VAC; 4 šuko vtičnica preko UPS-a; 2 šuko

Prikaži več

REŠITVE Inteligentna ventilska tehnologija na enem mestu SMART IN FLOW CONTROL.

REŠITVE Inteligentna ventilska tehnologija na enem mestu SMART IN FLOW CONTROL. REŠITVE Inteligentna ventilska tehnologija na enem mestu SMART IN FLOW CONTROL. SAMSON razvija in izdeluje regulacijske ventile praktično za vse zahteve in procese od kovanega krogelnega ventila do obvodnega

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

1. IDENTIFIKACIJA PODATKOVNEGA NIZA 1.1 Naslov Strukturno-tektonska karta Slovenije 1: Alternativni naslov Strukturno-tektonska karta Slove

1. IDENTIFIKACIJA PODATKOVNEGA NIZA 1.1 Naslov Strukturno-tektonska karta Slovenije 1: Alternativni naslov Strukturno-tektonska karta Slove 1. IDENTIFIKACIJA PODATKOVNEGA NIZA 1.1 Naslov Strukturno-tektonska karta Slovenije 1:250.000 1.2 Alternativni naslov Strukturno-tektonska karta Slovenije 1:250.000 1.3 Okrajšani naslov - 1.4 Globalni

Prikaži več

DCS-2330L_A1_QIG_v1.00(EU).indd

DCS-2330L_A1_QIG_v1.00(EU).indd HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L KRATKA NAVODILA ZA UPORABO VSEBINA PAKETA HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L NAPAJALNI ADAPTER ADAPTER ETHERNET KABEL (CAT5 UTP) MED POSTAVITVIJO,

Prikaži več

DNH4 Dozirna naprava za kemikalije Voda.Dezinfekcija.Higiena. PPV2013

DNH4 Dozirna naprava za kemikalije Voda.Dezinfekcija.Higiena. PPV2013 DNH4 Dozirna naprava za kemikalije Voda.Dezinfekcija.Higiena. PPV2013 PRIPRAVA VODE JE LAHKO TEŽKA NALOGA. DOVOLITEM, DA VAM POMAGAMO. Priprava in obdelava vode je lahko težka in kompleksna naloga. Znanje,

Prikaži več

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se nanaša na tobačne izdelke na trgu EU in na tobačne izdelke, izdelane v EU, vključno s tistimi

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

Base NET.cdr

Base NET.cdr Rešitev fiksnega radijskega odčitavanja Delovanje BaseNet je način odčitavanja porabe vode, toplote, elektrike, plina in delilnikov toplote v fiksnem radijskem omrežju. Merilnike v Sensus Base sistemu

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67 SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 67 80 13 www.conrad.si NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67 80 13 KAZALO VSEBINA PAKETA...3 NAMESTITEV IN UPORABA...3

Prikaži več

DES

DES Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Model vezja Računalniški model in realno vezje Model logičnega negatorja Načini

Prikaži več

Slajd 1

Slajd 1 REPUBLIKA SLOVENIJA MINISTRSTVO ZA JAVNO UPRAVO 1 EU ENOTNI DIGITALNI PORTAL: PRIHAJA NOVA EU UREDBA Alenka Žužek Nemec, Tina Kuliš DNEVI SLOVENSKE INFORMATIKE 18. april 2018 Ko podjetja ali državljani

Prikaži več

Slide 1

Slide 1 Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi

Prikaži več

Datum objave: :54 VPRAŠANJE Spoštovani, prosimo za informacijo - sklop 1, Laboratorijska oprema, digestorij, ali je potrebno ponuditi tud

Datum objave: :54 VPRAŠANJE Spoštovani, prosimo za informacijo - sklop 1, Laboratorijska oprema, digestorij, ali je potrebno ponuditi tud Datum objave: 25.09.2017 10:54 prosimo za informacijo - sklop 1, Laboratorijska oprema, digestorij, ali je potrebno ponuditi tudi poddigestorijske omarice in kakšne, za kakšen namen shranjevanja? Hvala,

Prikaži več

Microsoft Word - Navodila_NSB2_SLO.doc

Microsoft Word - Navodila_NSB2_SLO.doc Borovniško naselje 7 1412 Kisovec Slovenija Tel.: +386(0) 356 72 050 Fax.: +368(0)356 71 119 www.tevel.si Lastno varni napajalnik Tip NSB2/xx (NAVODILA ZA UPORABO) Navodila_NSB2_SLO.doc2/xx Stran 1 od

Prikaži več

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD ( 5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (angl. Complex Programmable Logic Device) so manjša

Prikaži več

an-01-Stikalo_za_luc_za_na_stopnisce_Zamel_ASP-01.docx

an-01-Stikalo_za_luc_za_na_stopnisce_Zamel_ASP-01.docx SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 146 29 41 www.conrad.si NAVODILA ZA UPORABO Časovno stikalo za luč za na stopnišče Zamel ASP-01 Kataloška št.: 146 29 41 KAZALO OPIS NAPRAVE... 3 LASTNOSTI...

Prikaži več

101353_-an-01-sl-_vbodni_termometer

101353_-an-01-sl-_vbodni_termometer SLO - NAVODILO ZA NAMESTITEV IN UPORABO Št. izd. : 101353 www.conrad.si TFA LT-102 VBODNI TERMOMETER Št. izdelka: 101353 1 KAZALO 1 LASTNOSTI...3 2 LCD ZASLON...3 3 ZAČETEK OBRATOVANJA...3 4 UPRAVLJANJE...4

Prikaži več

Microsoft PowerPoint - ads

Microsoft PowerPoint - ads Novosti pri analogni video-nadzorni opremi Junij 2012 1. Dnevno/nočna kamera ADS-CAM-K2DNC 2. Snemalniki ADS-LIGHT: ADS-0404DH ADS-0804DH ADS-1604DH ADS-0404HED ADS-CAM-K2DNC Dnevno / nočna kamera z IR

Prikaži več

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

Navodila za uporabo Mini prenosna HD kamera s snemalnikom Navodila za uporabo Mini prenosna HD kamera s snemalnikom www.spyshop.eu Izdelku so priložena navodila v angleščini, ki poleg teksta prikazujejo tudi slikovni prikaz sestave in delovanja izdelka. Lastnosti

Prikaži več

Microsoft Word - ABB Robotski sistem za varjene osnove kontejnerja ASM-13.doc

Microsoft Word - ABB Robotski sistem za varjene osnove kontejnerja ASM-13.doc Posvet AVTOMATIZACIJA STREGE IN MONTAŽE 2013 Ljubljana, 4.december 2013 ABB ROBOTSKI SISTEM ZA VARJENJE OSNOVE KONTEJNERJA, Robert LOGAR POVZETEK Robotski sistemi se pogosteje uporabljajo za izdelavo izdelkov

Prikaži več

Navodilo Struktura cene izdelka Št. dokumenta : Izdaja: 01 Datum spremembe: Stran: 1/5 NAVODILO STRUKTURA CENE IZDELKA 1. POVZETEK

Navodilo Struktura cene izdelka Št. dokumenta : Izdaja: 01 Datum spremembe: Stran: 1/5 NAVODILO STRUKTURA CENE IZDELKA 1. POVZETEK Stran: 1/5 NAVODILO STRUKTURA CENE IZDELKA 1. POVZETEK Splošne informacije Naročnik E-mail Telefonska številka Datum Dobavitelj Dobaviteljeva št. Projekt Referenca Naziv Indeks Verzija Varianta Odgovorna

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

Microsoft Word doc

Microsoft Word doc SLO - NAVODILO ZA MONTAŽO IN UPORABO : št. art. : 90 79 14 www.conrad.si Zvočniki Hercules XPS 2,1 20 Gloss Št. izdelka: 90 79 14 Navodila za uporabo so sestavni del izdelka. Vsebujejo pomembne napotke

Prikaži več

Caterpillar Inc. 100 NE Adams Street, Peoria, IL ZDA Št. gradiva U9NT8460 Operativni dokument Dodatne informacije Informacije o skladnosti s pre

Caterpillar Inc. 100 NE Adams Street, Peoria, IL ZDA Št. gradiva U9NT8460 Operativni dokument Dodatne informacije Informacije o skladnosti s pre Operativni dokument Dodatne informacije Informacije o skladnosti s predpisi Za sestavne dele sistema GRADE 1 Kazalo vsebine stran Varnostni znaki in oznake... 3 Varnostna sporočila... 4 Druge nalepke...

Prikaži več

Modem in krajevno omrežje Uporabniški priročnik

Modem in krajevno omrežje Uporabniški priročnik Modem in krajevno omrežje Uporabniški priročnik Copyright 2008 Hewlett-Packard Development Company, L.P. Informacije v tem priročniku se lahko spremenijo brez prejšnjega obvestila. Edine garancije za HP-jeve

Prikaži več

Cenik Cenik paketov, ki niso več v prodaji Skupine Telemach Paketi Analogni Dvojčki (paketi niso več v prodaji) Mesečna naročnina v EUR DUO INT S....2

Cenik Cenik paketov, ki niso več v prodaji Skupine Telemach Paketi Analogni Dvojčki (paketi niso več v prodaji) Mesečna naročnina v EUR DUO INT S....2 paketov, ki niso več v prodaji Paketi Analogni Dvojčki (paketi niso več v prodaji) DUO INT S....26,75 KTV paket L 1 + internet (6 Mbps/1 Mbps) DUO INT M...37,94 KTV paket L 1 + internet (13,3 Mbps/1,5

Prikaži več

No Slide Title

No Slide Title Glavne napake-pomoč KRONOS 1 Diagnostika in dostop do sistema PEČICA NAPAKA NAPAKA PRIKAZANA Z KODO NAPAKE NAPAKA BREZ INDIKACIJE KODE NAPAKE 2 Diagnostika in dostop do sistema Prikaz kode napake Informacije

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

Navodila za uporabo Mini snemalnik

Navodila za uporabo Mini snemalnik Navodila za uporabo Mini snemalnik www.spyshop.eu Pred vami so navodila za pravilno uporabo mini snemalnika in opis funkcionalnosti. Lastnosti snemalnika: Naziv Mere Teža Kapaciteta spomina Snemanje Format

Prikaži več

FOR SMARTER PEOPLE TAKO SE VLOMI PREPREČUJEJO DANES REHAU Smart Guard System plus preventivna protivlomna zaščita WINDOWS. REINVENTED FOR MODERN LIFE.

FOR SMARTER PEOPLE TAKO SE VLOMI PREPREČUJEJO DANES REHAU Smart Guard System plus preventivna protivlomna zaščita WINDOWS. REINVENTED FOR MODERN LIFE. FOR SMARTER PEOPLE TAKO SE VLOMI PREPREČUJEJO DANES REHAU Smart Guard System plus preventivna protivlomna zaščita WINDOWS. REINVENTED FOR MODERN LIFE. NA NOVO ZASNOVANA OKNA Za današnje življenje Naše

Prikaži več

Microsoft PowerPoint - MK 3 tehnicni sistemi.ppt

Microsoft PowerPoint - MK 3 tehnicni sistemi.ppt Opredelitev tehničnega sistema Proces prenosa naravnih sistemov v tehnični sisteme, kot posledica človekovega ustvarjanja 1 Uvod - kaj predstavlja tehnični sistem, splošni primeri Predstavitev primera

Prikaži več

Princip oskrbovalnega kroga ALENKA KNEZ Design Manager

Princip oskrbovalnega kroga ALENKA KNEZ Design Manager Princip oskrbovalnega kroga ALENKA KNEZ Design Manager Skupina DS Smith 26,000 zaposlenih v 36 državah OBRATUJEMO PO CELEM SVETU naše divizije EMBALAŽA, ODPADNI PAPIR, PAPIR, PLASTIKA North America Plastic

Prikaži več

Microsoft Word doc

Microsoft Word doc SLO - NAVODILO ZA NAMESTITEV IN UPORABO Št. izd. : 122383 www.conrad.si ROČNI OSCILOSKOP VELLEMAN HPS140 Št. izdelka: 122383 1 KAZALO 1 MED UPORABO... 3 2 LASTNOSTI IN TEHNIČNI PODATKI... 3 3 OPIS SPREDNJE

Prikaži več

IR termometer testo 830 testo 830 hiter, za brezkontaktno merjenje površinske temperature Merjenje z laserskim pointerjem za natančno merjenje tudi na

IR termometer testo 830 testo 830 hiter, za brezkontaktno merjenje površinske temperature Merjenje z laserskim pointerjem za natančno merjenje tudi na IR termometer testo 830 testo 830 hiter, za brezkontaktno merjenje površinske temperature Merjenje z laserskim pointerjem za natančno merjenje tudi na večjih razdaljah Hitro shranjevanje odčitkov (2 odčitka

Prikaži več

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v financah Ljubljana, 2010 1. Klasični pristop k analizi

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104 Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 11. junij 2014 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Postavka Naziv storitve Enota mere Cenik velja od dalje. Cena v EUR brez davka z davkom Stopnja davka 1. Poslovni paketi in dodatne storitv

Postavka Naziv storitve Enota mere Cenik velja od dalje. Cena v EUR brez davka z davkom Stopnja davka 1. Poslovni paketi in dodatne storitv Postavka Naziv storitve Enota mere Cenik velja od 1. 8. 2019 dalje. Cena v EUR brez davka z davkom Stopnja davka 1. Poslovni paketi in dodatne storitve 1.1. Poslovni net paket 1.1.1. Naročnina 32,790 40,00

Prikaži več

Sonniger katalog_2017_DE_ indd

Sonniger katalog_2017_DE_ indd GRELNIKI ZRAKA ZRAČNE ZAVESE ŠT. 1 v Evropi Novo v naši ponudbi NOVA zračna zavesa ŠT. 1 v Evropi SONNIGER JE EVROPSKI DOBAVITELJ INOVATIVNIH, EKOLOŠKIH IN OPTIMALNO PRILAGOJENIH GRELNIKOV ZA INDUSTRIJSKE

Prikaži več

AME 110 NL / AME 120 NL

AME 110 NL / AME 120 NL Pogoni za zvezni regulacijski signal AME 110 NL, AME 120 NL Opis Ti pogoni se uporabljajo skupaj z kombiniranimi avtomatskimi omejevalniki pretoka z regulacijskim ventilom AB-QM DN 10 - DN 32. Ta pogon

Prikaži več

Vostro 430 Informacijski tehnični list o namestitvi in funkcijah

Vostro 430 Informacijski tehnični list o namestitvi in funkcijah O opozorilih OPOZORILO: OPOZORILO označuje možnost poškodb lastnine, telesnih poškodb ali smrti. Dell Vostro 430 List s tehničnimi informacijami o nastavitvi in funkcijah Pogled s sprednje in zadnje strani

Prikaži več

11 Barvni izvlečki-HELENA TGP06

11 Barvni izvlečki-HELENA TGP06 Študijsko leto 2006/07 TISKARSKI POSTOPKI 1 predavateljica: doc. dr. Tadeja Muck asistentka: dr. Helena Gabrijelčič BARVNI IZVLEČKI www.europapier.at Grafične in interaktivne komunikacije 1. letnik http://www.vermillion-inc.com

Prikaži več

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvantnih celičnih avtomatov SEMINARSKA NALOGA Univerzitetna

Prikaži več

Rešitve za muzeje jekleni del vašega podjetja

Rešitve za muzeje jekleni del vašega podjetja Kovinski regali za muzeje Sistem TERRA Izvlečne mreže za varno in pregledno shranjevanje muzejskih predmetov Najpomembnejše pri zasnovi depojskega prostora je zaščita muzejskih predmetov. Še več, predmeti

Prikaži več

seminarska_naloga_za_ev

seminarska_naloga_za_ev Univerza v Ljubljani Fakulteta za elektrotehniko Matevž Seliger 8-kanalni Lightshow Seminarska naloga pri predmetu: V Horjulu, junij 2008 Kazalo: 1 Uvod... 3 1.1 Namen in uporaba izdelka... 3 2 Delovanje...

Prikaži več

EVROPSKA KOMISIJA Bruselj, XXX [ ](2013) XXX draft DIREKTIVA KOMISIJE.../ /EU z dne XXX o spremembi prilog I, II in III k Direktivi 2000/25/ES Evropsk

EVROPSKA KOMISIJA Bruselj, XXX [ ](2013) XXX draft DIREKTIVA KOMISIJE.../ /EU z dne XXX o spremembi prilog I, II in III k Direktivi 2000/25/ES Evropsk EVROPSKA KOMISIJA Bruselj, XXX [ ](2013) XXX draft DIREKTIVA KOMISIJE.../ /EU z dne XXX o spremembi prilog I, II in III k Direktivi 2000/25/ES Evropskega parlamenta in Sveta o ukrepih, ki jih je treba

Prikaži več

Darko Pevec 1.a Informatika

Darko Pevec 1.a Informatika Darko Pevec 1.a Informatika Kazalo KAZALO...2 UVOD...3 DANAŠNJE RAZMERE...4 DSL...4 TEHNOLOGIJE XDSL...4 UPORABA HITRIH POVEZAV...5 PASOVNA ŠIRINA PRENOSA...6 NAČIN DELOVANJA XDSL TEHNOLOGIJ...6 TEHNOLOGIJA

Prikaži več

Vedno pod nadzorom, kjerkoli že ste

Vedno pod nadzorom, kjerkoli že ste Vedno pod nadzorom, kjerkoli že ste 02 Vedno pod nadzorom, kjerkoli že ste Daikin zagotavlja novo rešitev za nadzorovanje in krmiljenje glavnih funkcij stanovanjskih notranjih enot. Sistem deluje na uporabniku

Prikaži več

BDV-N890W/BDV-N790W

BDV-N890W/BDV-N790W Sistem za domači kino s predvajalnikom Blu-ray Disc /DVD BDV-N890W BDV-N790W SI Začnite tukaj Kratka navodila za postavitev in uporabo BDV-N790W BDV-N890W 1 Vsebina embalaže/nastavitev zvočnikov BDV-N890W

Prikaži več

Microsoft PowerPoint - CIGER - SK 3-15 Izkusnje nadzora distribucijskih transformatorjev s pomo... [Read-Only]

Microsoft PowerPoint - CIGER - SK 3-15 Izkusnje nadzora distribucijskih transformatorjev s pomo... [Read-Only] CIRED ŠK 3-15 IZKUŠNJE NADZORA DISTRIBUCIJSKIH TRANSFORMATORJEV S POMOČJO ŠTEVCEV ELEKTRIČNE ENERGIJE ŽIGA HRIBAR 1, BOŠTJAN FABJAN 2, TIM GRADNIK 3, BOŠTJAN PODHRAŠKI 4 1 Elektro novi sistemi. d.o.o.,

Prikaži več

VAJE RID 1 (4), program PTI, šol

VAJE RID 1 (4), program PTI, šol VAJE INFORMATIKA, program PTI šol. leto 08/09 Za vsako vajo izdelajte kratka navodila oz. katere ukaze ste uporabili za izdelavo dokumenta. Vsak dokument stiskajte in ga vsatvite v delovno mapo. Pred izpitom

Prikaži več

Diapozitiv 1

Diapozitiv 1 Vhodno izhodne naprave Laboratorijska vaja 5 - LV 1 Meritve dolžine in karakteristične impedance linije VIN - LV 1 Rozman,Škraba, FRI Model linije Rs Z 0, Vs u i u l R L V S - Napetost izvora [V] R S -

Prikaži več

UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete

UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete ELEKTRONSKI PODATKI, KI JIH ORGANIZACIJA USTVARJA IN POTREBUJE ZA DOSTOP, SE KAŽEJO V RAZLIČNIH

Prikaži več

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje

Prikaži več

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik CNR-BTU3 Bluetooth vmesnik A. Vsebina pakiranja Bluetooth USB Adapter Bluetooth programska oprema in CD z gonilniki Navodila za uporabo in CD 1. Namestitev Bluetooth programske opreme za Windowse 1. Vstavite

Prikaži več

Microsoft Word - 08 – Rotovnik Andrej, Miel, Uporaba Omron Sysmac platforme na primeru realnih aplikacij

Microsoft Word - 08 – Rotovnik Andrej, Miel, Uporaba Omron Sysmac platforme na primeru realnih aplikacij Uporaba OMRON SYSMAC platforme na primeru realnih aplikacij Andrej Rotovnik, Miha Strašek MIEL d.o.o., www.miel.si Efenkova cesta 61, 3320 Velenje andrej.rotovnik@miel.si, miha.strasek@miel.si Use of Omron

Prikaži več

Microsoft PowerPoint - MK 3 tehnicni sistemi.ppt

Microsoft PowerPoint - MK 3 tehnicni sistemi.ppt Opredelitev tehničnega sistema Proces prenosa naravnih sistemov v tehnični sisteme, kot posledica človekovega ustvarjanja 1 Uvod - kaj predstavlja tehnični sistem, splošni primeri Predstavitev primera

Prikaži več

EVROPSKA KOMISIJA Bruselj, C(2018) 7597 final IZVEDBENA UREDBA KOMISIJE (EU) / z dne o vzpostavitvi začasnega neposrednega stati

EVROPSKA KOMISIJA Bruselj, C(2018) 7597 final IZVEDBENA UREDBA KOMISIJE (EU) / z dne o vzpostavitvi začasnega neposrednega stati EVROPSKA KOMISIJA Bruselj, 21.11.2018 C(2018) 7597 final IZVEDBENA UREDBA KOMISIJE (EU) / z dne 21.11.2018 o vzpostavitvi začasnega neposrednega statističnega ukrepa za izkazovanje izbranih vsebin popisa

Prikaži več

Kovinska protipoplavna KD vrata Življenje je kot reka, včasih mirna, drugič deroča a vedno polna presenečenj. Če vas v življenju p

Kovinska protipoplavna KD vrata Življenje je kot reka, včasih mirna, drugič deroča a vedno polna presenečenj. Če vas v življenju p Kovinska protipoplavna KD vrata Življenje je kot reka, včasih mirna, drugič deroča a vedno polna presenečenj. Če vas v življenju ponese deroča voda, se lahko zaščitite, dokler se voda ne umiri. JUNIJ 2015

Prikaži več

ErgoPack ergonomsko povezovanje palet

ErgoPack ergonomsko povezovanje palet ErgoPack ergonomsko povezovanje palet Postavite ErgoPack pred paleto. Verižna sablja potegne trak spodaj pod paleto ErgoPack sistem Z ErgoPack-om boste sprejeli pravilno odločitev! Velike, male, široke,

Prikaži več

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC Državni zbor v številkah 90 poslancev 9 + 1 poslanska skupina 150+ mobilnih naprav (OS Android, ios) 500+ internih uporabnikov, 650+ osebnih računalnikov, 1100+

Prikaži več

Direktiva Komisije 2014/44/EU z dne 18. marca 2014 o spremembi prilog I, II in III k Direktivi Evropskega parlamenta in Sveta 2003/37/ES o homologacij

Direktiva Komisije 2014/44/EU z dne 18. marca 2014 o spremembi prilog I, II in III k Direktivi Evropskega parlamenta in Sveta 2003/37/ES o homologacij L 82/20 Uradni list Evropske unije 20.3.2014 DIREKTIVA KOMISIJE 2014/44/EU z dne 18. marca 2014 o spremembi prilog I, II in III k Direktivi Evropskega parlamenta in Sveta 2003/37/ES o homologaciji kmetijskih

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Zaporedni vmesniki Zaporedni (serijski) vmesniki Zaporedni (serijski) vmesniki

Prikaži več

N

N Državni izpitni center *N19141132* 9. razred FIZIKA Ponedeljek, 13. maj 2019 NAVODILA ZA VREDNOTENJE NACIONALNO PREVERJANJE ZNANJA v 9. razredu Državni izpitni center Vse pravice pridržane. 2 N191-411-3-2

Prikaži več

C(2019)1789/F1 - SL

C(2019)1789/F1 - SL EVROPSKA KOMISIJA Bruselj, 13.3.2019 C(2019) 1789 final ANNEX 5 PRILOGA k Delegirani uredbi Komisije o dopolnitvi Direktive 2010/40/EU Evropskega parlamenta in Sveta v zvezi z uvajanjem in operativno uporabo

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =

Prikaži več

MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osred

MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osred MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osredotočenostjo na eno prodajno področje, je prisoten v

Prikaži več

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica naslednji P RAVILNIK o izvajanju videonadzora I. SPLOŠNE

Prikaži več

Microsoft Word - NABOR MERILNE OPREME doc

Microsoft Word - NABOR MERILNE OPREME doc organizacijski predpis Na podlagi 5. člena Uredbe o načinu izvajanja gospodarske javne službe dejavnost sistemskega operaterja distribucijskega omrežja električne energije in gospodarske javne službe dobava

Prikaži več

1 Tekmovanje gradbenih tehnikov v izdelavi mostu iz špagetov 1.1 Ekipa Ekipa sestoji iz treh članov, ki jih mentor po predhodni izbiri prijavi na tekm

1 Tekmovanje gradbenih tehnikov v izdelavi mostu iz špagetov 1.1 Ekipa Ekipa sestoji iz treh članov, ki jih mentor po predhodni izbiri prijavi na tekm 1 Tekmovanje gradbenih tehnikov v izdelavi mostu iz špagetov 1.1 Ekipa Ekipa sestoji iz treh članov, ki jih mentor po predhodni izbiri prijavi na tekmovanje. Končni izdelek mora biti produkt lastnega dela

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Akumulatorski ročni LED reflektor IVT PL 838 4x1WB Kataloška š

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Akumulatorski ročni LED reflektor IVT PL 838 4x1WB Kataloška š SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 86 83 42 www.conrad.si NAVODILA ZA UPORABO Akumulatorski ročni LED reflektor IVT PL 838 4x1WB Kataloška št.: 86 83 42 KAZALO 1. UVOD...3 2. OPOZORILO! POMEMBNI

Prikaži več

docx

docx SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 139 55 62 www.conrad.si NAVODILA ZA UPORABO Full HD akcijska kamera Denver ACT-5040W Kataloška št.: 139 55 62 KAZALO UVOD... 3 SISTEMSKE ZAHTEVE... 3 LASTNOSTI

Prikaži več

IMP Klima Enote za regulacijo zraka Regulacijske žaluzije Regulacijske žaluzije PREZRAČEVALNE REŠETKE IN VENTILI Regulacijske žaluzije RŽ-1, RŽ-2, RŽ-

IMP Klima Enote za regulacijo zraka Regulacijske žaluzije Regulacijske žaluzije PREZRAČEVALNE REŠETKE IN VENTILI Regulacijske žaluzije RŽ-1, RŽ-2, RŽ- RŽ-1, RŽ-2, RŽ-3 Uporaba so namenjene za regulacijo pretoka zraka in tlaka v prezračevalnih kanalih in klima napravah. Lahko jih vgrajujemo samostojno ali v kombinaciji s zaščitnimi ali nadtlačnimi rešetkami.

Prikaži več

Microsoft PowerPoint - IPPU-V2.ppt

Microsoft PowerPoint - IPPU-V2.ppt Informatizacija poslovnih procesov v upravi VAJA 2 Procesni pogled Diagram aktivnosti IPPU vaja 2; stran: 1 Fakulteta za upravo, 2006/07 Procesni pogled Je osnova za razvoj programov Prikazuje algoritme

Prikaži več

PowerPoint Presentation

PowerPoint Presentation INFORMACIJSKI SISTEM MFERAC - LETA 2022 mag. Andreja Sladoje Jemec, Sanja Štumberger Kovačič Ministrstvo za finance 10.12.2018 Vsebina predstavitve 1. Projekt MFERAC05 in izhodišča prenove 2. Izvajanje

Prikaži več

Microsoft Word doc

Microsoft Word doc SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 51 08 22 www.conrad.si NAVODILA ZA UPORABO Vtični napajalnik Dehner SYS1308 15~24 W Kataloška št.: 51 08 22 Osnovne informacije Država proizvajalka:... Kitajska

Prikaži več

Microsoft Word - M doc

Microsoft Word - M doc Državni izpitni center *M11145113* INFORMATIKA SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Petek, 10. junij 2011 SPLOŠNA MATURA RIC 2011 2 M111-451-1-3 IZPITNA POLA 1 1. b 2. a 3. Pojem se povezuje

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.:

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.: SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 75 31 33 www.conrad.si NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.: 75 31 33 KAZALO 1. PRIKLOP STROJNE OPREME...3 2. KONFIGURACIJA

Prikaži več