• Rezultati Niso Bili Najdeni

SISTEM ZA NADZOR POSTAVITVE IZDELKOV IN KRMILJENJE PAKIRNE NAPRAVE

N/A
N/A
Protected

Academic year: 2022

Share "SISTEM ZA NADZOR POSTAVITVE IZDELKOV IN KRMILJENJE PAKIRNE NAPRAVE"

Copied!
60
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za elektrotehniko

Andraž Jerman

SISTEM ZA NADZOR POSTAVITVE IZDELKOV IN KRMILJENJE PAKIRNE

NAPRAVE

Diplomsko delo

Visokošolski strokovni študijski program prve stopnje Aplikativna elektrotehnika

Ljubljana, 2022

(2)

2

(3)

3

Zahvala

Zahvaljujem se družini, ki me je v času šolanja spodbujala in podpirala.

Iskreno se zahvaljujem mentorju izr. prof. dr. Boštjanu Murovcu za vso pomoč in nasvete pri izdelavi diplomske naloge.

Zahvala gre tudi podjetju AMTEC.PRO d.o.o., Trbovlje, ki mi je omogočilo izdelavo diplomske naloge.

(4)

4

(5)

5

Povzetek

Diplomsko delo opisuje sistem za nadzor postavitve izdelkov in krmiljenje pakirne naprave.

Obravnavani sistem je rezultat projekta slovenskega podjetja za industrijsko avtomatizacijo. Na željo stranke, smo izdelali sistem, ki z uporabo kamere pregleda postavitev izdelka v pakirni embalaži in odčita vrednost QR-kode na izdelku. Informacije se iz kamere prenesejo na programirljivi logični krmilnik, ki je zadolžen za krmiljenje celotnega sistema.

Prvi del diplomske naloge opisuje uporabljeno programsko in strojno opremo , ki je uporabljena za krmiljenje pakirne naprave.

Drugi del naloge je posvečen opisu izdelave sistema. V tem delu je opisana konfiguracija kamere, izdelava programa v programskem okolju Tia Portal in izdelava preprostega uporabniškega vmesnika. Opisane so težave, do katerih smo prišli med izdelavo sistema in njihove rešitve.

Ključne besede: avtomatizacija, Tia Portal, programirljivi logični krmilnik, kamera, QR-koda

(6)

6

(7)

7

Abstract

The thesis describes a system for product placement control and control of a packaging machine. The system is one of the projects of a Slovenian company involved in industrial automation. At the customer's request, we have developed a system that uses a camera to scan the product layout in the packaging and read the QR code value on the product. The information is transferred from the camera to a programmable logic controller, which is responsible for controlling the entire system.

The first part of the thesis describes the software and hardware used to control the packaging device.

The second part of the thesis describes the construction of the system. This section describes the configuration of the camera, the writing of the program in the TIA Portal programming environment and the creation of a simple user interface. This part also describes the problems that we encountered during the construction of the system and their solutions.

Key words: automation, Tia Portal, programmable logic controller, camera, QR-code

(8)

8

(9)

9

Vsebina

1. Uvod ... 19

2. Programirljivi logični krmilnik ... 21

2.1 Krmilnik SIMATIC S7-1214 ... 22

3. Kamera LBC631 ... 25

4. Programska oprema ... 29

4.1 Programsko okolje TIA portal ... 29

4.2 Programska oprema WinCC ... 31

4.2.1 SIMATIC WinCC Runtime Advanced ... 31

5. Izdelava projekta... 33

5.1 Opis sistema ... 33

5.2 Konfiguracija kamere ... 34

5.3 Programiranje PLK-ja ... 43

5.3.1 Konfiguracija krmilnika ... 43

5.3.2 Glavna sekvenca ... 44

5.3.3 Programiranje Modbus komunikacije ... 51

5.3.4 Uporabniški vmesnik ... 55

6. Zaključek ... 57

7. Viri in literatura ... 59

(10)

10

(11)

11

Kazalo slik

Slika 1: Pakirna naprava ... 19

Slika 2: Modularni in kompaktni PLK ... 21

Slika 3: Simatic S7-1214 ... 22

Slika 4: Zgradba krmilnika ... 23

Slika 5: Kamera LBC631 ... 25

Slika 6: Delovne premice leč ... 27

Slika 7: TIA portal ... 29

Slika 8: Osnovni bloki v TIA portalu ... 30

Slika 9: Diagram poteka sistema ... 33

Slika 10: 17-kontaktni M12 priključek ... 34

Slika 11: 8-kontaktni M12 priključek ... 35

Slika 12: Spletna stran kamere ... 35

Slika 13: Naklon kamere ... 36

Slika 14: Okno delaj ... 36

Slika 15: Okno slika ... 37

Slika 16: Parametri zajemanja slike... 37

Slika 17: Neurejeno in urejeno vidno polje ... 37

Slika 18: Okno lokator objekta ... 38

Slika 19:Okno 1D/2D koda ... 39

Slika 20: Območje kode ... 39

Slika 21: Vrste kod ... 39

Slika 22: Nastavitev digitalnega izhoda ... 40

Slika 23: Okno komunikacije ... 41

Slika 24: Parametri TCP/IP strežnika ... 41

Slika 25: Razpoložljivi rezultati kamere ... 41

Slika 26: Kamera nad pakirno napravo ... 42

Slika 27: Naprave in omrežja ... 43

Slika 28: Tabela oznak ... 44

Slika 29: Začetek sekvence ... 44

Slika 30: Pregled informacije kamere ... 45

Slika 31: Pregled informaciji baze podatkov ... 46

Slika 32: Konec sekvence ... 46

Slika 33: Blok TCON ... 47

Slika 34: Nastavitev povezave TCP/IP ... 48

Slika 35: Blok TRCV ... 48

Slika 36: Blok znak v niz znakov ... 49

Slika 37: Brisanje presledkov ... 50

Slika 38: Blok TSEND ... 51

Slika 39: Blok Modbus Com ... 52

(12)

12

Slika 40: Blok MB_CLIENT v funkcijskem bloku Modbus com ... 52

Slika 41: Funkcijski blok za izdelavo čakalne vrste ... 53

Slika 42: Funkcijski blok brisanje čakalne vrste ... 54

Slika 43: Funkcija pritiska tipke začni ... 54

Slika 44: Uporabniški vmesnik ... 55

Slika 45: Tabela oznak ... 55

Slika 46: Nastavitve lučke... 56

Slika 47: Tipka start ... 56

(13)

13

Kazalo tabel

Tabela 1: Tehnični podatki krmilnika Simatic S7-1214 ... 22 Tabela 2: Tehnični podatki kamere Sick LBC631 ... 25

(14)

14

(15)

15

Seznam uporabljenih kratic

TM – pakirna naprava (ang. Tapping Module)

HMI – uporabniški vmesnik (ang. Human-Machine Interface) PLK – programirljivi logični krmilnik

LED – svetleča dioda

ID – identifikacijska številka

(16)

16

(17)

17

Seznam uporabljenih simbolov

V pričujočem zaključnem delu so uporabljene naslednje veličine in simboli:

Veličina / oznaka Enota

Ime Simbol Ime Simbol električna napetost U volt V

električni tok I amper A dolžina l meter m čas t sekunda s

(18)

18

(19)

19

1. Uvod

Čeprav je človeški vid primernejši za kvalitetnejšo interpretacijo kompleksnega nestrukturiranega prizora, je strojni vid zaradi svoje hitrosti, natančnosti in ponovljivosti primernejši za uporabo v industriji, kjer si želimo čim večjo produktivnost ob kvalitetni izdelavi. Proizvodna linija s sistemom strojnega vida lahko pregleda na stotine kosov na minuto.

Ker ni fizičnega kontakta med izdelkom in sistemom za pregled, s tem izničimo možnost poškodb na izdelku [1].

Diplomsko delo je bilo izdelano v podjetju AMTEC.PRO, d. o. o, Trbovlje, ki se ukvarja s konstruiranjem, sestavljanjem in programiranjem unikatnih celic za avtomatizacijo in robotizacijo proizvodnje. Poleg izdelave celic se podjetje ukvarja s sestavljanjem naprav za avtomatsko ali polavtomatsko pakiranje komponent (ang. Tapping Modul; TM) (slika 1).

Opisani sistem je nadgradnja že obstoječega TM-ja, ki ga stranka že dalj časa uporablja za pakiranje kovinskih kvadratnih plošč v embalažo. Na njeno željo je bil izdelan sistem za avtomatski pregled postavitve izdelka v embalaži in odčitavanje QR-kode na izdelku. Dodan je bil preprost uporabniški vmesnik (ang. Human-Machine Interface; HMI), na katerem so prikazane trenutne informacije o izdelku, njegova zajeta slika, prikaz stanja povezave med napravami, in izdelan vmesnik za krmiljenje TM-ja.

Slika 1: Pakirna naprava [15]

(20)

20

(21)

21

2. Programirljivi logični krmilnik

Programirljivi logični krmilnik (PLK) je elektronska naprava, ki na podlagi ukazov, shranjenih v programirljivem pomnilniku, izvaja logične, sekvenčne, časovne in aritmetične operacije ter s tem vodi različne naprave in procese preko digitalnih in analognih vhodov in izhodov. Je računalnik, ki je posebej zasnovan za zanesljivo delovanje v težkih industrijskih pogojih, na primer pri ekstremnih temperaturah, v mokrih, suhih ali prašnih pogojih. Prednosti uporabe PLK-ja so tudi:

• enostaven za programiranje,

• prirejen za logično in sekvenčno vodenje,

• omogoča hitro in enostavno vnašanje sprememb,

• pozna razširjen nabor funkcij, npr. kompleksne aritmetične operacije,

• omogoča komunikacije z drugimi napravami,

• omogoča programiranje v različnih jezikih (LAD, SCL, ST, SFC, FBD).

PLK-je delimo na dve osnovni izvedbi: kompaktno in modularno (slika 2). Glavne razlike med njima so, da je kompaktna izvedba cenejša ter ima običajno omejeno število vhodov in izhodov (kot določi proizvajalec). Kompaktna izvedba je manjša, poleg tega so vhodi in izhodi že integrirani s centralno procesno enoto, zato se običajno uporablja v manjših procesih.

Modularni PLK nam, kot je že iz imena razvidno, omogoča modularno sestavljanje PLK-ja.

Vhodi in izhodi običajno niso del centralne procesne enote in jih k njej dodajamo v obliki modulov, napajanje med posameznimi moduli pa je ločeno. Modularna lastnost PLK-ja zato omogoča veliko prilagodljivost, kar pa tudi podraži sistem. Običajno te vrste PLK-jev uporabljajmo za večje sisteme [2], [3].

Slika 2: Modularni in kompaktni PLK [4]

(22)

22

2.1 Krmilnik SIMATIC S7-1214

Krmiljenje procesa smo izvedli s Siemensovim krmilnikom Simatic S7-1214 (slika 3). Ta model spada v družino Simatic S7-1200, ki se najpogosteje uporablja za krmiljenje manjših in srednje zmogljivih aplikacij na področju avtomatizacije.

Slika 3: Simatic S7-1214 [5]

Zmogljivost izbranega modela je primerna za naš namen, poleg tega omogoča TCP/IP in Modbus komunikacijo ter uporabo digitalnih vhodov in izhodov. Njegovi tehnični podatki so zbrani v tabeli 1.

Lastnost Vrednost

napajalna napetost 24 V

maksimalen izhodni tok na digitalnem izhodu

500 mA

digitalni vhodi 14

digitalni izhodi 10

analogni vhodi 2

analogni izhodi /

pomnilnik 100 KB

programsko okolje STEP 7 v16 ali višje

dimenzije (širina x višina x globina) 110 x 100 x 75 mm

Tabela 1: Tehnični podatki krmilnika Simatic S7-1214

(23)

23 Krmilnik S7 1214 je na voljo v treh različnih izvedbah:

• AC/DC/Relay: napajamo ga z izmenično napetostjo med 120 V in 240 V. Izvedba ima 24 V enosmerne digitalne vhode in relejske digitalne izhode,

• DC/DC/Relay: napajamo ga z enosmerno napetostjo 24 V. Izvedba ima 24 V enosmerne digitalne vhoda in relejske digitalne izhode,

• DC/DC/DC: napajamo ga z enosmerno napetostjo 24 V. Izvedba ima 24 V digitalne vhode in 24 V digitalne izhode.

Krmilnik, vgrajen v naš sistem, je DC/DC/DC izvedbe. Njegovo zgradbo prikazuje slika 4 [6].

Slika 4: Zgradba krmilnika [7]

(24)

24

(25)

25

3. Kamera LBC631

Odčitavanje vrednosti QR-kode in preverjanja pozicije izdelka smo izvedli s kamero LBC631 podjetja Sick (slika 5). Ta model spada v družino LBC6, ki se najpogosteje uporabljajo za odčitavanje in pregled etiket na izdelkih.

Slika 5: Kamera LBC631 [8]

To kamero smo uporabili zaradi njene kompaktnosti, preproste uporabe, cenovne ugodnosti ter zmožnosti odčitavanja QR-kod in pregleda pozicije izdelka. Kamera ne potrebuje dodatnega krmilnika, saj je le-ta že vgrajen vanjo. Prav tako ne potrebujemo dodatne osvetljave, ker ima kamera vgrajenih 6 svetlečih diod (LED), ki jih krmilimo programsko. V tabeli 2 so prikazani tehnični podatki kamere SICK LBC631.

Lastnost Vrednost

senzor CMOS matrični senzor, 1,3 Mpixel

leča izmenljiva C-mount, 8 mm, 12 mm, 1 6mm,

25 mm, 35 mm, 50 mm vrste komunikacije serijska (RS-232, RS-422), Ethernet

izhodni tok ≤100 mA

teža 430 g

napajalna napetost 12 V DC do 24 V DC ±20 %

območje spektra 400 nm do 900 nm

Tabela 2: Tehnični podatki kamere Sick LBC631

(26)

26

Kamera omogoča odčitavanje enodimenzionalnih in dvodimenzionalnih kod.

Enodimenzionalne:

• 2/5 Industrial,

• Interleveled 2 od 5,

• črtna koda,

• Koda 39,

• Koda 93,

• Koda 128,

• EAN-8,

• EAN-13,

• Pharmcode.

Dvodimenzionalne:

• podatkovna matrica ECC200,

• QR-koda,

• Mikro QR-koda,

• PDF417,

• Aztec.

Kamera omogoča uporabo leč z različnimi goriščnimi razdaljami. Na sliki 6 so prikazane delovne premice posameznih leč. Delovna premica leče pove površino vidnega polja v odvisnosti od delovne razdalje. Ugotovili smo, da je glede na dimenzije izdelka, ki je 150 mm x 150 mm, najprimernejša leča z goriščno razdaljo 12 mm. S slike 6 razberemo, da je pri vidnem polju 200 mm x 160 mm delovna razdalja približno 370 mm [9].

(27)

27

Slika 6: Delovne premice leč [10]

(28)

28

(29)

29

4. Programska oprema

Programiranje procesa smo izvedli v programskem okolju TIA portal V16 podjetja Siemens.

TIA portal omogoča uporabo programskega paketa WinCC Basic, ki smo ga uporabili za izdelavo HMI-ja.

4.1 Programsko okolje TIA portal

Popolnoma integrirana avtomatizacija (ang. Totally Integrated Automation) je Siemensovo programsko okolje, ki je bilo razvito leta 1996 (slika 7). Namenjeno je razvoju industrijske avtomatizacije in industrijskih procesov. Prednost programiranja v TIA portalu je, da upravljamo z vsemi priključenimi napravami in sistemi v omrežju. Naprave povezujemo na način povleci-spusti, zato je celotno programiranje grafično z uporabo blokov. Naprave so med seboj povezane, ko jim določimo vse potrebne parametre in IP-naslove. Za povezovanje med napravami je uporabljeno posebno omrežje ProfiNet. ProfiNet je ločen od glavnega ProfiBus omrežja in deluje v ozadju, s tem ne obremenimo glavnega krmilnega omrežja. Glavno krmilno omrežje je namenjeno komunikaciji s krmilnimi programi posameznih sistemov, krmilnikov ter vhodno-izhodnih naprav. Ko naprave povežemo, preko spremenljivk spremljamo njihovo delovanje, določamo vsebino prikazov na operacijskih panelih, arhiviramo, preračunavamo z vsemi matematičnimi funkcijami itd. Spremembe poimenovanja ali preimenovanja spremenljivk, vhodov in izhodov ter oznak parametrov kadar koli opravimo na enem mestu. Po spremembi se samodejno preimenujejo povsod, kjer se pojavijo na priključenih napravah ali vhodno-izhodnih enotah [11].

Slika 7: TIA portal

(30)

30

Za programiranje PLK-ja smo uporabili programska jezika lestvični diagram (ang. Ladder Diagram) in strukturiran tekst (ang. Structured Control Language). Poleg teh dveh jezikov TIA portal podpira programiranje še v funkcijskem blokovnem diagramu (ang. Function Block Diagram) ter sekvenčnem funkcijskem diagramu (ang. Sequential Functional Chart).

Programiranje je izvedeno z uporabo različnih programskih blokov (slika 8). Ti bloki hranijo program, ki ga izvaja PLK. Delijo se na:

• organizacijski blok: tvori vmesnik med operacijskim sistemom in uporabniškim programom,

• funkcijski blok: vhodne, izhodne in vhodno-izhodne parametre trajno shranjuje v podatkovne bloke. Parametri ostanejo na voljo tudi po izvedbi bloka. Funkcijski blok uporablja začasne parametre, ki se uporabijo le v enem ciklu delovanja. Funkcijski blok vsebuje podprogram,

• funkcija: je kodni bloki brez pomnilnika. Ker ni podatkovnega pomnilnika, v katerega bi shranili vrednosti parametrov bloka, ob klicu funkcije vsem parametrom dodelimo dejanske parametre,

• podatkovni blok: shranjuje programske podatke. Podatkovni bloki vsebujejo spremenljive podatke, ki jih uporablja uporabniški program. Globalni podatkovni bloki hranijo podatke, ki jih uporabljajo vsi drugi bloki. Največja velikost podatkovnih blokov se razlikuje glede na centralno procesno enoto [12], [13].

Slika 8: Osnovni bloki v TIA portalu

(31)

31

4.2 Programska oprema WinCC

WinCC je inženirska programska oprema za konfiguriranje zaslonov SIMATIC, industrijskih osebnih računalnikov SIMATIC in standardnih osebnih računalnikov s programsko opremo WinCC Runtime Advanced ali SCADA System WinCC Runtime Professional. WinCC je na voljo v štirih izdajah:

• WinCC Basic: za konfiguracijo osnovnih zaslonov,

• WinCC Comfort: za konfiguriranje vseh zaslonov, vključno z zasloni Comfort in mobilnimi zasloni,

• WinCC Advanced: za konfiguriranje vseh zaslonov in osebnih računalnikov s programsko opremo WinCC Runtime Advanced,

• WinCC Professional: za konfiguriranje zaslonov in osebnih računalnikov z WinCC Runtime Advanced ali SCADA sistemom WinCC Runtime Professional.

4.2.1 SIMATIC WinCC Runtime Advanced

Izdelavo HMI-ja smo izvedli s programsko opremo WinCC RT Advanced podjetja Siemens.

WinCC RT Advanced bazira na osebnem računalniku in se uporablja za sisteme z enim uporabnikom. Njene glavne funkcije so:

• vizualizacija uporabniškega vmesnika, združljivega z operacijskim sistemom Windows.

Uporabniški vmesnik je sestavljen iz zaslonskih objektov in prednjih plošč, ki jih spreminjamo,

• prikaz alarmov in sporočil. Prosto določljivi alarmni razredi opredelijo potrditveni odziv in prikažejo alarmne dogodke,

• shranjevanje alarmov in procesnih vrednosti v datoteke za beleženje ali SQL-baze podatkov. Datoteke so oblike CSV in TXT,

• recepti za generiranje podatkovnih zapisov za strojne ali proizvodne podatke,

• recepti za prikaz ali vnos podatkovnih zapisov preko nastavljivega zaslona ali procesnih zaslonov, ki so razporejeni znotraj projekta,

• jezikovna podpora za večjezične projekte. Možnost prikaza do 32 jezikov,

• uporabniško usmerjena zaščita dostopa v skladu z zahtevami reguliranih sektorjev,

• prikaz sistema kot podatkovni strežnik,

• WinCC SmartServer, ki se uporablja za daljinsko upravljanje ali spremljanje drugega sistema preko intraneta ali interneta [12], [14].

(32)

32

(33)

33

5. Izdelava projekta

5.1 Opis sistema

Za lažje razumevanje poteka procesa smo na začetku narisali preprost diagram poteka (slika 9).

Delovanje sistema je v celoti avtomatsko in ne vključuje človeških odločitev.

Slika 9: Diagram poteka sistema

(34)

34

Običajno na TM direktno priključimo izhodnih signalni kabel kamere. Digitalni signal, ki ga prejmemo na TM, pove, ali je bil izdelek, ki smo ga pregledali, v embalaži ali ne. V naši aplikaciji ta funkcija ne zadostuje. Poleg preverjanja postavitve izdelka želimo izvedeti še vrednost QR-kode, ki je odtisnjena na izdelku.

PLK na digitalen vhod prejme prožilni signal iz TM-ja. PLK nato iz digitalnega izhoda pošlje prožilni signal kameri. Kamera po prejemu prožilnega signala zajame sliko in jo obdela.

Kamera ima definiran en digitalen izhod, ki je povezan na digitalen vhod PLK-ja. Če je izdelek v embalaži, bo PLK na digitalen vhod prejel logično 1, v nasprotnem primeru pa bo na vhodu logična 0. Istočasno se z uporabo TCP/IP komunikacije na PLK prenese vrednost QR-kode. Tu pridemo do prve odločitve. Če je izdelek, ki smo ga pregledali, v embalaži, nadaljujemo s procesom, v primeru, da ni, pa sekvenco zaključimo. Vrednost QR-kode se preko TCP/IP komunikacije prenese v strankino bazo podatkov. Baza podatkov PLK-ju odgovori z OK ali NOK. OK prejme v primeru, da QR-koda obstaja v bazi podatkov, in NOK, če ne. PLK nato iz digitalnega izhoda pošlje prožilni signal na vhod TM-ja.

5.2 Konfiguracija kamere

V tem pod poglavju je opisana konfiguracija kamere. V projektu je uporabljena kamera LBC631 podjetja SICK.

Pred konfiguracijo kamere je treba poskrbeti za pravilno vezavo kamere na napajanje in internetno omrežje. Za napajanje, digitalne vhode in izhode ter povezavo serijskih komunikacij kamera uporablja kabel s 17-kontaktnim M12 moškim priključkom (slika 10). Za povezavo na internetno omrežje pa je uporabljen kabel z 8-kontaktnim M12 ženskim priključkom (slika 11) in Ethernet priključkom.

Slika 10: 17-kontaktni M12 priključek [10]

(35)

35

Slika 11: 8-kontaktni M12 priključek [10]

Konfiguracijo kamere izvedemo na računalniku z internetnim brskalnikom in dostopom do omrežja, v katerem se nahaja kamera. Do kamere dostopamo tako, da v internetni brskalnik za spletni naslov vpišemo IP-naslov kamere. IP-naslov kamere je pred konfiguracijo enak 192.168.0.1 (slika 12). Kamera se nahaja v omrežju s podomrežno masko 255.255.255.0. Poleg dostopa do omrežja mora imeti računalnik pravilno nastavljeno omrežno kartico. Računalnik mora imeti IP-naslov 192.168.0.X (X mora biti različen od 1) in podomrežno masko 255.255.255.0. IP-naslov ter podomrežno masko kamere smo kasneje spremenili in ju nastavili na omrežje, ki ga uporablja stranka.

Slika 12: Spletna stran kamere

Za dostop do programskega okolja kamere, se je treba v spletno stran vpisati, z uporabniškim imenom Service. Po privzetem, je uporabnik v spletno stran vpisan z uporabniškim imenom Operator. Uporabnik Operator ima najbolj omejene funkcije in lahko spremlja le dogajanje kamere in uporablja program. Operator nima pravice do urejanja programa. Uporabnik Service ima popoln dostop do programa z vsemi dovoljenji. Dovoljenja vključujejo vzdrževanje, zagon in pravice do prijave v omejene programe.

Pred konfiguracijo programa je kamero treba pravilno fiksirati nad izdelek. V projektu je uporabljena leča z goriščno razdaljo 12 mm. Leča ima na razdalji 370 mm vidno polje

(36)

36

200 mm x 160 mm, kar je za 10 mm širše in 50 mm daljše kot izdelek, ki ga pregledujemo.

Kamero je treba fiksirati z naklonom med 10° in 20° (slika 13).

Slika 13: Naklon kamere [10]

Ko smo kamero pravilno postavili nad izdelek, lahko pričnemo z nastavljanjem programa. Ob vstopu v programsko okolje kamere je najprej treba ustvariti nov program. Program ustvarimo z naslednjimi koraki:

• postavi se v okno delaj (slika 14),

• klikni gumb ustvari nov program,

• vpiši unikatno ime programa,

• potrdi s klikom gumba potrdi.

Slika 14: Okno delaj

Parametre zajemanja slike (slika 16) nastavimo v oknu slika (slika 15). Parametri, ki jih nastavimo, so:

• čas izpostavljenosti: pove, koliko časa je zaslonka odprta,

• ojačenje: poveča osvetlitev slike s povečanjem občutljivosti senzorja, vendar poveča tudi šum na sliki,

• vidno polje širine: poveča ali zmanjša vidno polje v X osi (slika 17),

• vidno polje višine: poveča ali zmanjša vidno polje v Y osi (slika 17),

• obračanje slike horizontalno,

(37)

37

• obračanje slike vertikalno.

Slika 15: Okno slika

Slika 16: Parametri zajemanja slike

Slika 17: Neurejeno in urejeno vidno polje [ 9]

Informacijo o tem, ali se izdelek nahaja v pakirni embalaži, pridobimo z uporabo orodja lokator objekta. Lokator objekta primerja območje, ki ga definiramo na zajeti sliki z istim območjem na referenčni sliki. Rezultat orodja je informacija o ujemanju območij. Orodje ujemanje območij poda v procentih. Orodje poda rezultat OK, če je ujemanje večje od spodnje meje.

Spodnjo mejo ujemanja določimo z nastavitvijo orodja. Nastavitev orodja opravimo v oknu lokator objekta (slika 18) in sledimo naslednjim korakom:

(38)

38

• klikni gumb dodaj lokator,

• izberi želeno obliko iskalnega območja (pravokotnik, krog ali elipsa),

• klikni gumb dodaj območje iskanja,

• izberi želeno območje,

• nastavi maksimalno rotacijo v stopinjah in minimalno ujemanje v procentih,

• nastavitve potrdi s klikom gumba uporabi.

Slika 18: Okno lokator objekta

Razlika med izdelki je QR-koda. Na mestu, kjer se nahaja QR-koda, določimo območje maskiranja. Z maskiranjem lokatorju objekta sporočimo, naj na tem območju ne išče ujemanj.

Maskiranje se izvede v oknu iskanje objekta in koraki:

• klikni gumb dodaj masko,

• izberi želeno obliko maskirnega območja,

• določi območje maskiranja,

• nastavitve potrdi s klikom gumba uporabi.

Branje vrednosti QR-kode izvedemo v oknu 1D/2D koda (slika 19). Orodju definiramo iskalno območje in vrsto kode, ki jo odčitamo. To storimo z naslednjimi koraki:

• klikni gumb dodaj regijo 2D kode,

• izberi obliko območja,

• izberi iskalno območje (slika 20),

• v tem koraku se pojavita dve možnosti, preverjanje ali branje kode; izberi branje kode,

• izberi možnost QR-koda (slika 21),

• za minimalno število znakov v kodi določi 10, za maksimalno število pa 17,

• nastavitve potrdi s klikom gumba uporabi.

(39)

39

Slika 19: Okno 1D/2D koda

Slika 20: Območje kode

Slika 21: Vrste kod

Informaciji o tem, ali je izdelek v pakirni embalaži in vrednost QR-kode, pošljemo na PLK.

Informacijo o postavitvi izdelka pošljemo v obliki pulznega signala iz digitalnega izhoda kamere na digitalni vhod PLK-ja. Vrednost QR-kode pa na PLK pošljemo s povezavo TCP/IP.

Konfiguracijo digitalnega izhoda izvedemo v oknu digitalni I/O. V oknu digitalni I/O poleg nastavitve digitalnih izhodov nastavimo tudi digitalni vhod. V projektu je definiran en digitalni izhod. Zanima nas le informacija orodja lokator objekta. Izhod definiramo tako, da pod območjem izhodne nastavitve vklopimo želeni izhod. To storimo s klikom na gumb izklop, ta

(40)

40

se obarva modro in spremenil napis na vklop. V projektu je izbran digitalni izhod 5 (slika 22).

Digitalni izhod 5 omogoča pulzni signal na izhodu.

Nastavitve, ki jih omogoča izhod 5, so:

• invertiran: vrednost izhoda lahko invertiramo. Če je nastavitev izklopljena, bo na izhodu kamere logična 0, v primeru pa, da je vklopljena, bo na izhodu logična 1. V projektu je ta nastavitev izklopljena. Na izhodu želimo logično 1 le, ko je pogoj izpolnjen,

• vrsta izhoda: kameri povemo pogoj, kdaj naj na izhodu spremeni vrednost. Pogoj, ki je nastavljen, je, da je skupen rezultat orodij OK,

• začetni zamik: določimo čas zakasnitve rezultata kamere v ms. Čas zakasnitve mora biti večji od časa procesa kamere. V projektu je čas procesa približno 15 ms, zato je čas zakasnitve definiran na 20 ms,

• dolžina pulza: nastavimo dolžino pulznega signala v ms. Nastavitev kameri pove, koliko časa je na digitalnem izhodu logična 1. V projektu je dolžina pulza 100 ms.

Slika 22: Nastavitev digitalnega izhoda

Vrednost QR-kode je podatkovnega tipa niz (ang. String), zato je za prenos tega podatka uporabljena TCP/IP komunikacija. Nastavitev TCP/IP strežnika je urejena v oknu komunikacije (slika 23). V tem oknu izbiramo med različnimi tipi komunikacije. Ker želimo komunicirati preko TCP/IP, ga je pred konfiguracijo treba vklopiti. TCP/IP komunikacijo vklopimo s klikom na gumb izklop, ta se bo obarval modro in spremenil na vklop. Za vzpostavitev strežnika je treba določiti parametre strežnika (slika 24):

• strežnik/odjemalec: kamera predstavlja TCP/IP strežnik, zato izberemo strežnik,

• vrata: vrata določimo na vrednost 2120,

• maksimalno število povezav: določimo jih na 1. Na kamero se povežemo le z eno napravo,

• RX start, RX stop, Tx start in Tx stop pa pustimo brez vrednosti.

(41)

41

Slika 23: Okno komunikacije

Slika 24: Parametri TCP/IP strežnika

Informacije, ki jih strežnik pošilja, definiramo v oknu format izhoda. V tem oknu so razpoložljivi vsi rezultati, ki jih lahko pošiljamo (slika 25). Informacijo orodja lokator objekta pošiljamo iz digitalnega izhoda, zato uporabimo le rezultat 2D kode (ang. 2D Code). Rezultat 2D kode predstavlja vrednost QR-kode. Za definicijo izhodnega podatka kliknemo na podatek, ki ga želimo poslati, in potrdimo s klikom na gumb dodaj rezultat (ang. Add Result).

Slika 25: Razpoložljivi rezultati kamere

(42)

42

V oknu format izhoda nastavimo še:

• vrsto dolžine: na voljo sta fiksna in variabilna. Izberemo variabilno, saj se dolžina zapisa spreminja,

• dolžino: v projektu ni pomembna, saj imamo variabilno dolžino,

• besedilo v primeru, da ni prebranih znakov: če QR-koda ni prepoznana na sliki, kamera na izhod pošlje ni prebrano (ang. Not Read).

Kameri prožilni signal nastavimo v oknu digitalni I/O. Prožilni signal bo kamera prejela iz PLK–ja na svoj digitalni vhod. Za vklop funkcije prožilnega signala kliknemo na gumb sprožilec začetka pregleda. Definirati je treba:

• vhod: izberemo digitalni vhod 1,

• vrsta aktivacije: izberemo odziv na pozitivno fronto, kar pomeni, da se kamera sproži, ko je na vhodu pozitiven signal,

• zamik proženja: je v projektu enak 0 ms.

Kamera je s tem konfigurirana in pripravljena za delovanje.

Slika 26: Kamera nad pakirno napravo

(43)

43

5.3 Programiranje PLK-ja

V tem poglavju je opisano programiranje PLK-ja, ki je vodja celotnega projekta.

Programiranje je razdeljeno na tri dele.

V prvem delu je predstavljeno programiranje glavne sekvence, ki je prikazana na sliki 9.

Opisani so bloki za izvajanje komunikacije med kamero in PLK-jem, komunikacija med PLK- jem in bazo podatkov, in povezava med PLK-jem ter TM-jem.

V drugem delu je predstavljena Modbus komunikacija med PLK-jem in TM-jem. Opisano je branje ter zapisovanje na registre in uporaba komunikacijskega bloka.

V tretjem delu pa je predstavljena izdelava preprostega HMI-ja.

5.3.1 Konfiguracija krmilnika

Pred pričetkom programiranja je krmilnik treba pripraviti za delovanje. Programiranje krmilnika je izvedeno v Siemensovem programske okolju TIA portal. Konfiguracijo krmilnika izvedemo v zavihku naprave in omrežja. Tu v katalogu strojne opreme izberemo krmilnik, ki ga uporabljamo v projektu (slika 27).

Slika 27: Naprave in omrežja

Od tod z dvojnim klikom na krmilnik vstopimo v pogled naprave. V tem oknu mu nastavimo IP-naslov, podomrežno masko ter definiramo, na katerih naslovih so digitalni vhodi in izhodi.

Pred pričetkom programiranja definiramo še naslove vhodnih in izhodnih signalov, ki jih uporabljamo v projektu. Definiramo dva vhodna in dva izhodna signala. Vhodna signala sta prožilni signal iz TM-ja in informacija kamere. Izhodna signala pa sta prožilni signal za kamero in signal, ki TM-ju pove, da je bil izdelek dober. Vhode in izhode definiramo v tabeli oznak (slika 28).

(44)

44

Slika 28: Tabela oznak

5.3.2 Glavna sekvenca

Glavna sekvenca programa je sestavljena iz več korakov. Ko se pogoji trenutnega koraka izpolnijo, program stopi v naslednji korak. Program je pred pričetkom delovanja v koraku 0.

Za pričetek delovanja sekvence so potrebni trije pogoji. Prvi pogoj se izpolni, ko na digitalni vhod krmilnik dobi prožilni signal TM-ja. Drugi in tretji pogoj sta stanja povezave TCP/IP med krmilnikom in kamero ter bazo podatkov. Program se postavi v korak 1, ko se izpolnijo vsi trije pogoji. V prvem koraku se v oznake (angl. tag), v katere shranimo podatek o vrednosti QR- kode, vpišejo ASCII znaki 0. ASCII znak 0 prestavlja prazen znak. S tem zagotovimo, da so informacije, ki jih kasneje zapišemo v iste oznake, res informacije trenutnega izdelka.

Informacija, ki jo prejmemo, se zapiše le v eno oznako, vendar informacijo v oznaki kasneje nekoliko obdelamo in zapišemo v druge oznake. Program gre v naslednji korak, ko zagotovimo, da so oznake prazne. V tem koraku na digitalni vhod kamere pošljemo prožilni signal in se postavimo v korak 20. Potek je prikazan na sliki 29.

Slika 29: Začetek sekvence

(45)

45 Po poslanem prožilnem signalu kamera zajame in obdela sliko. Če je bil izdelek v embalaži, na vhod krmilnika prejmemo logično 1, v oznako pa se zapiše vrednost QR-kode. V koraku 20 sta za nadaljevanje sekvence dva pogoja. Prvi pogoj je, da smo na vhod dobili logično 1. Drugi pogoj pa je, da so se v oznako z informacijo o vrednosti kode zapisali znaki. Če sta oba pogoja izpolnjena, program izklopi prožilni signal in gre v korak 30.

V koraku 20 je nastavljen tudi časovnik z zakasnitvijo vklopa. Če se pogoja nista izpolnila, časovnik po 500 ms na svoj izhod pošlje signal. S tem program stopi v korak konec sekvence in sporoči, da kamera na sliki ni našla izdelka v embalaži (slika 30).

Slika 30: Pregled informacije kamere

V koraku 30 PLK preko TCP/IP-ja pošlje vrednost QR-kode v bazo podatkov in stopi v korak 40. V koraku 40 program čaka, da se pošiljanje izvede. Ko so podatki poslani, gre program v korak 50. V koraku 50 program čaka na odgovor baze podatkov. Če informacija kode obstaja v bazi, bomo iz baze dobili sporočilo OK, ki se zapiše v oznako. Baza pošlje sporočilo NOK v primeru, da informacije ni v bazi podatkov. Tu sledi zadnja odločitev programa. V primeru, da je baza odgovorila z OK, gre program v korak 60, če pa je odgovorila z NOK, zaključimo sekvenco in sporočimo, da je koda neveljavna (slika 31).

V koraku 60 vse oznake, ki jih uporabljamo za sporočanje, da je izdelek dober, postavimo na logično 1. Na digitalni izhod, ki je povezan z digitalnim vhodom TM-ja, za 100 ms pošljemo logično 1 (slika 32). S tem TM-ju sporočimo, da je izdelek dober in da naj nadaljuje z delovanjem.

(46)

46

Slika 31: Pregled informaciji baze podatkov

Slika 32: Konec sekvence

Za povezavo TCP/IP s kamero in z bazo podatkov uporabljamo komunikacijski blok TCON (slika 33). Blok TCON ima tri različne vhode in štiri izhode.

(47)

47

Slika 33: Blok TCON

Vhodi:

• REQ: vzpostavi povezavo, ko na vhod dobi logično 1,

• ID: unikatna identifikacijska številka povezave. Identifikacijska številka se ujema z identifikacijsko številko podatkovnega bloka CONNECT,

• CONNECT: kazalec na nastavitve povezave (slika 34).

Izhodi:

• DONE: statusni parameter. V primeru, da je enak nič, se povezava še ni začela ali pa se še izvaja. Povezava je vzpostavljena, ko je na izhodu logična 1,

• BUSY: statusni parameter. V primeru, da je enak nič, se povezovanje še ni začelo ali pa je že končano. Povezovanje se izvaja, ko je na izhodu logična 1,

• ERROR: statusni parameter. V primeru, da je enak nič, na povezavi ni napak. Izhod je enak 1, ko pride do napake,

• status: sporoči trenuten status povezave [12].

Bloku določimo še dodatne nastavitve. Nastavitve odpremo s klikom škatle z orodjem na bloku TCON (slika 33). V bloku TCON se odpre okno povezava (slika 34). V nastavitvah je za partnerja treba določiti nedoločeno napravo. S to nastavitvijo krmilniku sporočimo, da se lahko poveže s katero koli napravo. Bloku sporočimo IP-naslov naprave, s katero se povezuje, in določimo vrsto povezave. Vrsta povezave je v obeh primerih uporabe tega bloka TCP. IP- naslova naprav in identifikacijski številki (ID) blokov pa sta si različni. ID številka mora biti unikatna za vsak komunikacijski blok, ki ga uporabljamo v projektu. PLK je zadolžen za ohranjanje povezave. V nastavitvah določimo, na katera vrata naj se povežemo. V primeru kamere so to vrata 2120 (slika 24), v bazo podatkov pa se povezujemo prek vrat 9000. Po končani nastavitvi se avtomatsko ustvari podatkovni blok na vhodu CONNECT.

(48)

48

Slika 34: Nastavitev povezave TCP/IP

Za vzpostavitev povezave je na vhod Req povezan globalni marker ura_1Hz. Markerju se periodično izmenjuje vrednost iz logične 1 na logično 0 in obratno. Marker ura_1Hz deluje s frekvenco 1 Hz, zato se perioda zamenja vsako sekundo. S tem dosežemo, da se PLK konstantno poskuša povezati s strežnikom. V primeru, da povezave ni, bo krmilnik vzpostavil povezavo. Blok TCON signal na vhodu Req ignorira, če je povezava že vzpostavljena.

Za prejemanje podatkov uporabimo blok TRCV (slika 35). Blok TRCV se uporablja pri povezavi s kamero in bazo podatkov.

Slika 35: Blok TRCV

(49)

49 Blok TRCV ima pet vhodov in pet izhodov.

Vhodi:

• EN_R: dokler je na vhodu logična 1, bloku dovolimo prejemanje podatkov,

• ID: identifikacijska številka povezave. Identifikacijska številka mora biti ista kot številka, ki smo jo določili pri bloku TCON,

• LEN: dolžina sprejetega podatka v bajtih. Uporabimo vrednost 0, kar pomeni, da uporabljamo optimiziran dostop, in za prejeto dolžino ni treba skrbeti,

• ADHOC: v primeru, da uporabljamo TCP protokol, mora biti ta nastavitev nastavljena na TRUE,

• DATA: kazalec na oznako, kjer hranimo podatke.

Izhodi:

• NDR: statusni parameter. V primeru, da je enak nič, se prejemanje podatkov še ni začelo ali pa se prejemanje dogaja. Izhod je enak 1, ko prejmemo nove podatke,

• BUSY: statusni parameter. V primeru, da je enak nič, se prenos še ni začel ali pa je že končan. Prenos se izvaja, ko je na izhodu logična 1,

• ERROR: statusni parameter. V primeru, da je enak nič, na povezavi ni napak. Izhod je enak 1, ko pride do napake,

• STATUS: sporoči trenuten status bloka,

• RCVD_LEN: število prejetih znakov [12].

Pri uporabi tega bloka smo naleteli na težave. Ker smo podatke shranjevali v oznako podatkovnega tipa seznam znakov (ang. array of char), smo morali določiti dolžino seznama.

Dolžina seznama je 50 znakov. Problem, do katerega smo prišli, je, da je ta oznaka poleg podatka o vrednosti QR-kode ali odgovora baze podatkov na koncu vsebovala še presledke.

Problem smo rešili tako, da smo vrednost iz oznake tipa niz znakov prenesli v oznako tipa niz znakov (ang. String). Za prenos smo uporabili blok znak v niz znakov (ang. Chars to String), ki je prikazan na sliki 36.

Slika 36: Blok znak v niz znakov

(50)

50

Blok znak v niz znakov ima tri vhode in en izhod.

Vhodi:

• Chars: na vhod pošljemo seznam znakov, ki ga želimo pretvoriti,

• pChars: mesto, na katerem se znaki začnejo pretvarjati,

• CNT: število znakov, ki jih želimo pretvorit. Za pretvorbo vseh znakov je ta vrednost 0.

Izhod:

• STRG: kazalec na oznako tipa niz znakov, v katero shranimo pretvorjen seznam znakov [12].

Po prenosu seznama znakov smo za brisanje presledkov v oznaki spisali preprosto funkcijo (slika 37). Funkcija vsebuje For zanko, if stavek in ukaz izbriši (ang. delete). For zanka se sprehaja po oznaki tipa niz znakov. Ko je znak enak presledku, se izvede if stavek. V if stavku je ukaz izbriši, ki izbriše znak na trenutnem mestu in ga nadomesti z ASCII znakom 0. Po koncu funkcije imamo v oznaki le še informacijo, ki smo jo prejeli.

Slika 37: Brisanje presledkov

Blok TSEND (Slika 38) se uporablja le pri povezavi PLK-ja z bazo podatkov. Blok TSEND se uporablja za pošiljanje podatkov preko vzpostavljene povezave. Blok TSEND ima štiri vhode in štiri izhode.

Vhodi:

• REQ: pošiljanje se začne, ko na vhod pošljemo logično 1,

• ID: identifikacijska številka povezave. Ta številka mora biti ista kot številka, ki smo jo določili pri bloku TCON (slika 34),

• LEN: število znakov, ki jih pošiljamo,

• DATA: kazalec na oznako, v kateri so shranjeni podatki, ki jih pošiljamo.

Izhodi:

• DONE: statusni parameter. V primeru, da je enak nič, se povezava še ni začela ali pa se še izvaja. Povezava je vzpostavljena, ko je na izhodu logična 1,

(51)

51

• BUSY: statusni parameter. V primeru, da je enak nič, se povezovanje še ni začelo ali pa je že končano. Povezovanje izvaja, ko je na izhodu logična 1,

• ERROR: statusni parameter. V primeru, da je enak nič, na povezavi ni napak. Izhod je enak 1, ko pride do napake,

• status: sporoči trenuten status povezave [12].

Slika 38: Blok TSEND

5.3.3 Programiranje Modbus komunikacije

TM omogoča uporabo Modbus komunikacije z napravami. Nastavitve, do katerih uporabnik dostopa le preko zaslona na napravi, lahko konfiguriramo z uporabo Modbus ukazov. TM je univerzalna naprava, ki se uporablja za pakiranje izdelkov. Izdelki različnih proizvajalcev niso enaki. Med seboj se razlikujejo po širini, višini, dolžini itd., zato je pomembno, da je naprava dinamična in da omogoča čim večje število nastavitev, kot so:

• hitrost pomika,

• dolžina pomika,

• temperatura varjenja,

• hitrost varjenja,

• tlak varjenja,

• število izdelkov v traku itd.

Poleg nastavljanja parametrov ima TM še druge funkcije, kot so:

• uporaba kamer različnih proizvajalcev,

• štetje izdelkov v traku,

• uporaba ročnega pomika,

• avtomatski pomik z uporabo digitalnega vhoda itd.

(52)

52

V projektu je Modbus komunikacija uporabljena, ker je stranka v HMI-ju želela imeti tipko začni in tipko ustavi, za vklop ali izklop TM-ja.

Modbus komunikacijo podjetje, v katerem smo izdelali projekt, uporablja že dalj časa. Nihče pa še ni izdelal standardnega funkcijskega bloka za vzpostavljanje povezave in izdelavo sekvenc. Odločili smo se, da v okviru projekta sprogramiramo univerzalne funkcijske bloke za komunikacijo naprav z uporabo Modbus komunikacije.

Blok Modbus Com (slika 39) skrbi za Modbus komunikacijo. Modbus Com ima 4 vhode za IP- naslov TM-ja, en vhod za identifikacijsko številko povezave in vhod za resetiranje povezave.

ID Modbus povezave se razlikuje od ID-jev blokov TCP/IP komunikacije. Na izhodu imamo tri signale. Dva signala sta za signala srčnega utripa. Ko je povezava z napravo vzpostavljena, prvi signal utripa s frekvenco 2 Hz, drugi pa s frekvenco 10 Hz. Signal na tretjem izhodu je postavljeno na logično 1, dokler je povezava vzpostavljena.

Slika 39: Blok Modbus Com

Modbus com blok je sestavljen iz štirih Siemensonovih blokov MB_CLIENT (slika 40). Bloki MB_CLIENT se uporabljajo za ukaze branja registrov, pisanja v registre, branja tuljav in pisanja na tuljave.

Slika 40: Blok MB_CLIENT v funkcijskem bloku Modbus com

(53)

53 Istočasna uporaba katerega koli para blokov MB_CLIENT povzroči napako. Za rešitev problema smo ustvarili štiri funkcijske bloke. Vsak je zadolžen za različno nalogo. Naloge, ki jih opravljajo, so: ukaz branja registrov, ukaz pisanja v registre, ukaz branja tuljav in ukaz pisanja na tuljave. Ti bloki so: beri tuljave, beri registre, zapisuj v tuljavo in zapisuj v registre.

Bloki za branje imajo na vhodu le signal za start. Blok za branje se začne izvajati, ko na vhod start pride logična 1. Z blokom za branje preberemo vse naslove tuljav ali registrov in jih zapišemo v prej določeno oznako. Blokoma, namenjenima pisanju v registre in na tuljave, pa na vhodu definiramo začetni naslov, v katerega zapisujemo, število tuljav ali registrov, v katere zapisujemo in vrednost, ki jo zapišemo.

Z zaporedno uporabo blokov sestavimo kompleksne ali manj kompleksne sekvence. Sekvence uporabimo za krmiljenje TM-ja. Istočasno klicanje dveh različnih sekvenc povzroči, da istočasno kličemo blok MB_CLIENT. Problem smo rešili z izdelavo funkcijskega bloka za izdelavo čakalnih vrst (ang. Queue maker) (slika 41). Blok za izdelavo čakalne vrste ima dva vhoda in en izhod. Ko blok na vhod run dobi pozitiven signal, se v seznam niza znakov zapiše vrednost, ki je definirana na vhodu identifikacija procesa (angl. Process ID). Na vhod identifikacija procesa vpišemo unikaten niz znakov. Vsaka sekvenca pred začetkom izvajanja v čakalno vrsto zapiše svojo vrednost identifikacije procesa. Vrednost se zapiše na prvo prosto mesto seznama nizov znakov. Sekvenca nato čaka, dokler se na prvem mestu čakalne vrste ne pojavi njena identifikacija procesa.

Slika 41: Funkcijski blok za izdelavo čakalne vrste

Pred zaključkom sekvence je treba uporabiti blok za brisanje čakalne vrste (ang. Queue Deleter) (slika 42). Blok za brisanje čakalne vrste izbriše prvi element v seznamu niza znakov in prestavi vse ostale elemente za eno mesto naprej.

(54)

54

Slika 42: Funkcijski blok brisanje čakalne vrste

Sekvenci, ki se uporabljata v projektu, sta konstantno branje tuljav in registrov ter pritisk tipke začni.

Sekvenca za branje registrov in tuljav je sekvenca, ki se kliče v neskončni zanki. Ob koncu sekvence program čaka 500 ms v zadnjem koraku. Po 500 ms gre program spet v prvi korak. S tem dosežemo neskončno zanko. Sekvenca se uporablja za branje vseh vrednosti registrov in tuljav.

Na željo stranke smo izdelali funkcijo za pritisk tipke začni (slika 43). Funkcija na vhod začni (ang. start) dobi logično 1, ko želimo, da se sekvenca začne. Z vhodom vrednost bita (ang. value bit) bloku povemo, ali želimo pritisk tipke začni ali ustavi. Tipka ustavi je pritisnjena, ko je na vhodu logična 0, tipka začni pa je pritisnjena, ko je na vhodu logična 1. Ti dve vrednosti krmilimo na HMI-ju.

Slika 43: Funkcija pritiska tipke začni

(55)

55 5.3.4 Uporabniški vmesnik

V zadnjem delu smo izdelali HMI. Na HMI-ju so prikazani slika izdelka, 6 lučk in trije gumbi.

Dve lučki uporabimo za signalizacijo povezave PLK-ja z bazo podatkov in kamero. Po eno lučko pa uporabimo za prikaz, ko je izdelek v pakirni embalaži, ko je vrednost QR-kode v bazi podatkov ali ko izdelka ni v embalaži in ko vrednosti QR-kode ni v bazi podatkov. Na HMI-ju so tipke začni, ustavi in resetiraj (slika 44). Za vklop TM-ja pritisnemo tipko začni, za ustavitev TM-ja pa tipko ustavi. Tipka reset pa se uporabi za ponovno vzpostavitev povezav TM-ja z napravami.

Slika 44: Uporabniški vmesnik

Sliko izdelka smo prikazali z WinCC blokom HTML brskalnik, tako da smo se povezali na spletno stran kamere. Za prikaz slike izdelka smo v spletni naslov bloka HTML brskalnik vpisali IP-naslov kamere.

Tako kot PLK ima tudi HMI tabelo oznak. V tej tabeli so definirane povezave med oznakami v HMI tabeli in PLK tabeli (slika 45).

Slika 45: Tabela oznak

(56)

56

Lučke smo izdelali z elementom krog. Vsaki lučki definiramo, kako se bo obarvala glede na vrednost oznake iz HMI tabele. Na sliki 46 je prikazana nastavitev lučke, ki kaže, da je izdelek v embalaži. Ta lučka se, ko ima oznaka »cam read ok« vrednost 0, obarva sivo, če pa ima ta oznaka vrednost 1, se obarva zeleno. Enake nastavitve imajo tudi ostale lučke. Lučke se med seboj razlikujejo le po oznaki, na katero reagirajo.

Slika 46: Nastavitve lučke

Vsakemu gumbu določimo akcijo. Akcija gumba začni je definirana tako, da se ob pritisku gumba na oznakah »start sequence« in »Start/Stop« pojavi logična 1 (slika 47). To sproži Modbus sekvenco za pritisk tipke začni. Gumb začni na oznako »Start/Stop« zapiše logično 1.

Na TM-ju se izvede pritisk tipke začni. Akcija gumba ustavi je za oznako »start sequence«

enaka, na oznako »Start/Stop« pa pošlje logično 0, TM izvede pritisk tipke ustavi.

Slika 47: Tipka start

(57)

57

6. Zaključek

Diplomsko delo opisuje projekt, ki smo ga opravljali v podjetju AMTEC.PRO. Glavni cilj projekta je izdelati popolnoma avtonomen sistem za nadzor postavitve izdelkov, odčitavanje QR-kode na izdelku in krmiljenje pakirne naprave ter vmesnik človek-stroj. Diplomska naloga je razdeljena na dva dela. V prvem delu smo se osredotočili na opis strojne in programske opreme. V drugem delu pa smo opisali konfiguracijo kamere vse od pravilne postavitve, izbire leče, nastavitve parametrov do uporabe različnih orodij in prenosa podatkov. V drugem delu sta opisana tudi konfiguracija in programiranje PLK-ja. Programiranje smo razdelili še na tri manjše dele. V prvem smo opisali izdelavo programa za krmiljenje glavne sekvence in uporabo različnih blokov za vzpostavljanje komunikacijske povezave in prenosa podatkov med napravami. V drugem delu smo opisali uporabo in izdelavo lastnih funkcijskih blokov za Modbus komunikacijo med PLK-jem in TM-jem. V tretjem delu pa smo opisali izdelavo HMI vmesnika v okolju WinCC. Med izdelavo projekta smo naleteli na kar nekaj težav, med katerimi so bile vzpostavljanje TCP/IP komunikacije, nepravilno prejeti podatki, konfiguracija sistema v strankinem omrežju … Težje probleme smo razumeli kot nekaj pozitivnega, saj smo se iz vsakega naučili nekaj novega. Projekt se je uspešno zaključil in predal stranki, ki ga sedaj uporablja v svojem proizvodnem procesu.

(58)

58

(59)

59

7. Viri in literatura

[1] »Cognex | Machine Vision and Barcode Readers« [Online]. Dosegljivo https://www.cognex.com

[Dostopno 23. oktober 2021]

[2] »R. Phillips, „What are the different types of PLC?, PLC Basics« [Online]. Dosegljivo https://basicplc.com/different-types-of-plc/

[Dostopno 25. oktober 2021]

[3] »Gradivo: Programirljivi logični krmilniki | Študentski.net« [Online]. Dosegljivo https://studentski.net/gradivo/ulj_fel_ae1_rvp_sno_programirljivi_logicni_krmilniki_01 [Dostopno 24. oktober 2021]

[4] »Modularen in kompakten PLK« [Online]. Dosegljivo

https://i.ytimg.com/vi/zYDIu3hZqDo/maxresdefault.jpg [Dostopno 6. februar 2022]

[5] »Simatic S7-1214« [Online]. Dosegljivo

https://asset.conrad.com/media10/isa/160267/c1/-/en/197468_LB_00_FB/image.jpg [Dostopno 6. februar 2022]

[6] »SIMATIC S7 S7-1200 Programmable controller.pdf« [Online]. Dosegljivo https://www.sahkonumerot.fi/2702074/doc/technicalinfodoc/

[Dostopno 30. oktober 2021]

[7] »Zgradba krmilnika« [Online]. Dosegljivo

http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/IO/S7- 1200PICT/6ES7-214-1BG40-0XB0.PNG

[Dostopno 6. februar 2022]

[8] »Zgradba krmilnika« [Online]. Dosegljivo

https://res.cloudinary.com/sonepar-fr/image/upload/s--cj4uQQP8-- /c_pad,dpr_auto,f_auto,h_900,w_900/v1/products/67/1074300.jpg [Dostopno 6. februar 2022]

(60)

60

[9] »operating_instructions_label_checker_6xx_en_im0083948.pdf« [Online]. Dosegljivo https://cdn.sick.com/media/docs/8/48/948/operating_instructions_label_checker_6xx_en_im0 083948.pdf

[Dostopno 6. februar 2022]

[10] »InspectorP63x Flex C-mount and S-mount, 8019946.pdf« [Online]. Dosegljivo

https://cdn.sick.com/media/docs/6/76/776/operating_instructions_inspectorp63x_flex_c_mou nt_and_s_mount_en_im0068776.pdf

[Dostopno 2. februar 2022]

[11] »Strokovni dogodek Novosti TIA Portala | Svet elektronike« [Online]. Dosegljivo https://svet-el.si/revija/predstavljamo/strokovni-dogodek-novosti-tia-portala/

[Dostopno 31. oktober 2021]

[12] Tia Portal V16, information system

[13] »PLC programming with SIMATIC STEP 7 (TIA Portal)« [Online]. Dosegljivo https://new.siemens.com/global/en/products/automation/industry-software/automation- software/tia-portal/software/step7-tia-portal.html

[Dostopno 31. oktober 2021]

[14] »WinCC (TIA Portal) Runtime Software« [Online]. Dosegljivo

https://new.siemens.com/us/en/products/automation/industry-software/automation-

software/tia-portal/software/simatic-wincc-tia-portal/wincc-tia-portal-runtime-software.html [Dostopno 31. oktober 2021]

[15] »AMTEC.PRO d.o.o.« [Online]. Dosegljivo http://www.amtecpro.si/

[Dostopno 23. oktober 2021]

Reference

POVEZANI DOKUMENTI

»S svojimi vrhunskimi zmožnostmi V/I-sistemov in servokr- miljenja ter prilagodljivostjo in zanesljivostjo naprav FPGA nam je sistem Compact RIO omogočil visokozmogljiv vgnezden

V dnevni sobi se nahaja infrarde i sprejemnik, ki spremlja ukaze univerzalnega daljinskega upravljalnika. Z daljinskim upravljalnikom se upravlja z razsvetljavo in žaluzijami

Poleg tega, ˇ ce uporabljamo mikrostoritve in skupno bazo podatkov, smo pri skaliranju omejeni z zgornjo mejo skalabilnosti sku- pne baze podatkov (ˇ ce imamo 5 mikrostoritev in

Celostno rešitev OpenTheBrew sestavljajo uporabniški vmesnik preko mobilne aplikacije Android ter regulator PID in strežnik HTTP, ki ju poganja odprtokodna platforma Arduino

Naredili smo tudi funkcijo za kalibriranje črpalk, ki v določenih sekvencah odmerja hranila, nato pa iz razlike teže in časa dodajanja izračuna koeficient pretoka, ki ga

Sistem za nadzor misije služi kot programska podpora projektu ESTCube. MCS omogoča spremljanje orbite satelita, pošiljanje ukazov in sprejemanje podatkov s satelita.

Pri bolj ogroženih bolnikih z boleznimi srca in žilja (bolniki po srčnem infarktu, ki imajo motnje ritma, srčno popuščanje ali nerazširjene koronarne arterije) se mora

Po predhodno izdelanem predlogu optimizacije oddelka montaže v obratu Lesni program in posredovanih karakteristikah nove pakirne linije, so predloge in ponudbe postavitve