• Rezultati Niso Bili Najdeni

Programiranje Modbus komunikacije

5. Izdelava projekta

5.3 Programiranje PLK-ja

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,

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

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

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

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

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

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

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