ERK'2021, Portorož, 135-138 135 Spremljanje uˇ cinkovitosti proizvodnih procesov z obdelavo na robu omreˇ zja Jure ˇ Speh, Gaˇ sper Muˇ siˇ c Univerza v Ljubljani, Fakulteta za elektrotehniko E-poˇ sta: jure.speh@student.uni-lj.si Production process efficiency monitoring with edge computing Machines and devices nowadays produce large amounts of data that are typically transmitted and stored on re- mote servers. This can lead to high data transfer and storage costs, delays, as well as security and privacy is- sues. Data processing at the edge of the network allows the data of sensors and devices to be analyzed and pro- cessed in their immediate proximity, and only key infor- mation is sent to the cloud for further processing. The article describes a practical example of monitor- ing the effectiveness of the production process by cal- culating the overall equipment effectiveness (OEE) indi- cators at the edge of the network. The TwinCAT envi- ronment runs a production line simulation based on the PackML state model. The TwinCAT device is connected to a Raspberry Pi computer running a program written in Python programming language, which captures data from the production process and calculates OEE indicators in real-time. These are then transferred to the Azure IoT Central web application, where the operator has remote supervisory control over the effectiveness of the process. 1 Uvod Sodobna industrija proizvaja vedno veˇ cje koliˇ cine podat- kov. Ti se navadno iz proizvodnih procesov pretakajo v podatkovne centre, kjer se iz njih pridobiva koristne in- formacije. Shranjevanje in obdelava velike koliˇ cine po- datkov v oblaku pa ni vedno najbolj smiselna reˇ sitev. Po- misleki se pojavljajo predvsem pri stroˇ skih, zasebnosti, zakasnitvah in zanesljivosti. Ponudniki oblaˇ cnih reˇ sitev navadno zaraˇ cunavajo njihove storitve glede na porabo virov. Nekateri parametri se zaradi varstva osebnih po- datkov ne smejo hraniti v podatkovnih centrih. Pri pre- nosu po omreˇ zju lahko pride do velikih zakasnitev, ki lahko kritiˇ cno vplivajo na izvedbo storitev. Vse te teˇ zave lahko odpravimo z obdelavo in filtriranjem podatkov na robu. V zadnjem ˇ casu se obdelava podatkov vse bolj seli na rob omreˇ zja, blizu senzorjem in napravam, ki jih proi- zvajajo. Tehnologija obdelave podatkov na robu omreˇ zja (ang. edge computing), je oblika decentralizirane obde- lave podatkov, ki lahko vkljuˇ cuje napovedne modele in napredne metode strojnega uˇ cenja. V tem ˇ clanku so predstavljene moˇ znosti in izzivi, ki jih prinaˇ sa ta tehnologija. Prikazana je umestitev obde- lave podatkov na robu v ˇ sirˇ si kontekst industrije 4.0, nato pa je predstavljen praktiˇ cen primer industrijske aplika- cije, kjer najprej z obdelavo na robu izraˇ cunavamo kazal- nike skupne uˇ cinkovitosti proizvodnega procesa (OEE) in jih nato prikazujemo v spletni aplikaciji Microsoft Azure IoT Central. 2 Obdelava podatkov na robu Oblaˇ cne tehnologije so ˇ ze nekaj ˇ casa jedro delovanja ˇ ste- vilnih organizacij po svetu. Naprave iz interneta stvari se v oblak povezujejo preko internetne povezave, z na- menom procesiranja podatkov, ki jih zajemajo. ˇ Casovne zakasnitve pri prenosu pa lahko prinesejo velike teˇ zave pri delovanju sistemov, zlasti pri aplikacijah, ki delujejo v realnem ˇ casu. Tak primer so sistemi nadzora zdravja, avtonomna vozila, video nadzor in avtomatsko vodeni proizvodni procesi. S skokovitim porastom naprav IoT in kibernetsko-fiziˇ cnih sistemov (CPS) 1 je priˇ slo do spo- znanja, da imajo lahko zakasnitve zaradi procesiranja po- datkov v oblaku kritiˇ cne posledice. To je bil glavni ra- zlog za selitev virov obdelave informacij iz oddaljenih streˇ znikov na rob omreˇ zja, ˇ cim bliˇ zje napravam, ki zaje- majo telemetrijo in izvajajo nadzor nad realnimi aplika- cijami [1]. Robne naprave med drugim omogoˇ cajo izva- janje raˇ cunskih operacij, ki bi sicer tekle v oblaku (raz- bremenitev streˇ znikov), dolgoroˇ cno in kratkoroˇ cno shra- njevanje podatkov in razporejanje ukazov (ang. request distribution). Obdelava na robu je smiselna predvsem za srednje oz. nizko zahtevne operacije. ˇ Ce gremo na nivo senzorjev in naprav, je to mogoˇ ce doseˇ ci, saj tako ome- jimo potrebo po soˇ casni obdelavi velike koliˇ cine teleme- trije naenkrat. 3 Industrijski internet stvari (IIoT) Termin internet stvari (ang. internet of things) je bil prviˇ c uporabljen leta 1999. Gre za napreden sistem razliˇ cnih senzorjev, strojev in ostalih naprav, ki lahko komunicirajo med seboj ali s centralnim sistemom v oblaku. Pri komu- nikaciji naprava-z-napravo (ang. Machine-To-Machine) gre za medsebojno komunikacijo med napravami, ki ne 1 Sistem, kjer je fiziˇ cni mehanizem nadzorovan oz. upravljan s strani raˇ cunalniˇ skega algoritma. 136 potrebujejo posrednika za prenos podatkov. Ta naˇ cin se pogosto uporablja v sistemih pametnih zgradb. Z upo- rabnikovega staliˇ sˇ ca se lahko teˇ zava pojavi pri skladnosti naprav razliˇ cnih proizvajalcev, ki uporabljajo svoje pro- tokole. “Stvari” so v IoT tako proizvajalci kot uporabniki podatkov. Industrijski internet stvari (IIoT) je ˇ se vedno ˇ sirok po- jem, saj zajema skupino zelo razliˇ cnih industrij, na pri- mer industrijska proizvodnja, rudarstvo, logistika in ener- getika. Na vseh podroˇ cjih prinaˇ sa napredek v varnosti, optimizaciji stroˇ skov, kakovosti izdelkov in storitev ter produktivnosti. 3.1 Skupna uˇ cinkovitost opreme Skupna uˇ cinkovitost opreme je osrednja komponenta me- todologije TPM (Total Productive Maintenance), ki iz- vira iz Japonske. Gre za merilo, ki nam pove stopnjo uˇ cinkovitosti proizvodnega procesa v primerjavi s priˇ ca- kovanimi rezultati [3]. S tem merilom lahko identifici- ramo, koliko ˇ casa je bila oprema v proizvodnji resniˇ cno produktivna. Rezultat se meri v odstotkih, kjer 100 % po- meni, da v proizvodnji ni bilo zastojev, med izdelki, ki so bili narejeni v najhitrejˇ sem moˇ znem ˇ casu, pa so bili samo dobri kosi. Izraˇ cun (enaˇ cba 1) temelji na treh komponen- tah: • Razpoloˇ zljivost A (ang. Availability) • Zmogljivost P (ang. Performance) • Kakovost Q (ang. Quality) OEE = A P Q 100% (1) 3.2 PackML PackML (ang. packaging machine language) je industrij- ski tehniˇ cni standard za vodenje in nadzor pakirnih stro- jev in linij [4]. Njegov avtor je organizacija OMAC (Or- ganization for Machine Automation and Control) v sode- lovanju z zdruˇ zenjem ISA (International Society of Au- tomation) na principu standarda ISA-88 [5, 6]. Glavni namen PackML je izdelati smernice, ki bi prinesle po- dobnost pri naˇ crtovanju pakirnih linij razliˇ cnih proizva- jalcev. Stroji, zgrajeni po tem standardu, naj bi bili laˇ zji za servisiranje in integracijo v obstojeˇ ce linije, ki so zgra- jene po tem principu. Koncepti pa se uporabljajo tudi na drugih podroˇ cjih spremljanja in vodenja procesov, na pri- mer v predelavi surovin, sestavljanju izdelkov, obdeloval- nih strojev in v robotiki. Smernice za izvedbo doloˇ cajo model obnaˇ sanja entitet skozi poseben hierarhiˇ cen avto- mat stanj. Zagotavljajo tudi naˇ cine za komunikacijo med razliˇ cnimi stroji ter med stroji in informacijskimi sistemi. 4 Strojna in programska oprema Priˇ cujoˇ ca aplikacija IIoT vkljuˇ cuje veˇ c razliˇ cnih strojnih in programskih komponent. Proizvodni proces je simu- liran znotraj programskega okolja TwinCAT 3.1, ki teˇ ce na prenosnem raˇ cunalniku, s katerim simuliramo progra- mirljivi logiˇ cni krmilnik (PLK). Z njim se poveˇ ze mi- kroraˇ cunalnik Raspberry Pi 3B, ki sluˇ zi kot robna na- prava za obdelavo prejetih podatkov iz PLK-ja in poˇ silja- nje relevantnih informacij v oblak. Tam smo za demon- stracijo uporabili spletno aplikacijo Azure IoT Central, ki omogoˇ ca povezovanje, spremljanje in upravljanje z na- pravami IoT. 4.1 Raspberry Pi Raspberry Pi je mikroraˇ cunalnik, ki je bil razvit v sodelo- vanju z organizacijo Raspberry Pi Foundation iz Zdruˇ ze- nega kraljestva za namen spodbujanja pouˇ cevanja osnov raˇ cunalniˇ stva med mladimi po svetu. Zaradi majhnosti, nizke cene in zmogljivosti se je zaˇ cel uporabljati tudi v ˇ stevilnih aplikacijah izven prvotnih namenov uporabe. Do leta 2020 je bilo izdanih ˇ ze veˇ c razliˇ cnih verzij [2]. V tej aplikaciji je bila uporabljena razliˇ cica 3B z 1 GB delovnega pomnilnika (RAM), ˇ stirijedrnim 64-bitnim pro- cesorjem, vgrajenim modulom WiFi in Bluetooth, pri- kljuˇ ckom Ethernet ter ˇ stirideset sploˇ snonamenskimi vhodi in izhodi (GPIO). 4.2 Beckhoff TwinCAT Program TwinCAT 3.1 je namenjen programiranju krmil- nikov proizvajalca Beckhoff. Integriran je v okolje Mi- crosoft Visual Studio in temelji na odprtokodnem pro- gramskem orodju Codesys. TwinCAT podpira progra- miranje v jezikih po standardu IEC 61131 [7] (IL, LD, ST, FBD, SFC+CFC). Moˇ zna je tudi izmenjava podat- kov z moduli, napisanimi v C/C++ ali zgrajenimi v okolju MATLAB/Simulink. Omogoˇ ca tudi simulacijo delovanja PLKja. 4.3 Python Python je odprtokoden, sploˇ snonamenski in zmogljiv pro- gramski jezik. Zlasti je v uporabi na podroˇ cju dela s po- datki. Ima ˇ siroko podporo skupnosti razvijalcev, ki pri- spevajo programske reˇ sitve za razliˇ cna podroˇ cja, tudi v okviru industrije 4.0. Veˇ cina osnovnih funkcij je vklju- ˇ cenih v jedrni Python modul, dodatni pa so na voljo v obliki knjiˇ znic, ki so javno dostopne. V naˇ sem primeru smo med drugim uporabili knjiˇ znico PyAds, ki omogoˇ ca povezavo z napravami TwinCAT preko komunikacijskega protokola ADS. 4.4 Azure IoT Central Azure IoT Central je programska storitev, ki omogoˇ ca po- vezavo, spremljanje in upravljanje naprav IoT v oblaku. Storitev IoT Central je namenjena hitri in enostavnejˇ si vzpostavitvi aplikacij IoT brez skrbi za povezovanje med razliˇ cnimi potrebnimi komponentami. Vanjo je ˇ ze vklju- ˇ cena komunikacija z napravami, izdelava predlog naprav in hramba ter vizualizacija podatkov. 5 Aplikacija spremljanja uˇ cinkovitosti Aplikacija vkljuˇ cuje tri glavne komponente: PLK, Ra- spberry Pi in spletno aplikacijo na platformi Microsoft Azure IoT Central. Odloˇ cili smo se, da PLK simuliramo znotraj programskega okolja Beckhoff TwinCAT 3.1, to- rej na osebnem raˇ cunalniku. Raˇ cunalnik s simuliranim krmilnikom preko kabla CAT5e poveˇ zemo na mreˇ zno sti- kalo, kamor sta prikljuˇ cena tudi Raspberry Pi 3B in do- vod iz glavnega usmerjevalnika za dostop do spleta (slika 137 1). Program Python na Raspberry Piju se poveˇ ze s PLK- jem preko komunikacijskega vmesnika ADS. Nato smo dodali programsko kodo, ki poskrbi za poˇ siljanje podat- kov v oblak in sprejemanje ukazov, ki jih operater izvrˇ si v spletni aplikaciji Azure IoT Central. Veˇ c podrobnosti o izvedbi je mogoˇ ce najti v diplomskem delu [8]. Slika 1: Vizualni prikaz testnega sistema. 5.1 PLK Za simulacijo proizvodnje linije smo uporabili demo pri- mer uporabe knjiˇ znice PackML in ga dopolnili, da ustreza naˇ si aplikaciji. Program predstavlja simulacijo preproste proizvodne linije. Vizualizacija je izdelana interaktivno, tako da v realnem ˇ casu vidimo premike orodij in izdelkov (slika 2). V zgornjem levem kotu se nahaja diagram pre- hajanja stanj po modelu, ki ga doloˇ ca PackML, kjer je z rdeˇ cim okvirjem oznaˇ ceno trenutno stanje linije. Na vrhu so prikazani osnovni parametri (ˇ st. vseh kosov, ˇ st. sla- bih kosov, trenutna in povpreˇ cna hitrost linije), imamo pa tudi moˇ znost nastavitve ciljne hitrosti stroja in od- stotka slabih kosov. Na desni strani se nahajajo gumbi za upravljanje s procesom. V spodnji vrstici lahko izbi- ramo med prikazi diagrama prehajanja stanj za celotno li- nijo ali samo za posamezna orodja. Demo primer ni imel moˇ znosti izdelave neustreznih izdelkov, zato smo v PLK program dodali funkcijo, ki nakljuˇ cno oznaˇ cuje izdelke kot neustrezne. Njihov deleˇ z lahko poljubno nastavimo na osnovnem prikazu delovanja linije. Slika 2: Vizualizacija simulirane proizvodne linije. 5.2 Robna naprava Vse spremenljivke, potrebne za izraˇ cun kazalnikov OEE, se preko protokola ADS prenaˇ sajo v program na Rasp- berry Piju, napisan v jeziku Python. Tam se izvaja izraˇ cun kazalnikov in poˇ siljanje rezultatov v spletno aplikacijo za nadzor nad OEE v realnem ˇ casu. Kazalnike bi se lahko izraˇ cunavalo tudi na samem PLK-ju, vendar je uporaba vmesne naprave, kot je Raspberry Pi, smiselna v primeru nadzora nad veˇ c napravami, saj s tem rezultate razliˇ cnih strojev ustrezno kombiniramo in v oblak poˇ siljamo samo podatke, ki so potrebni za pregled sistema iz viˇ sjega ni- voja. Z uporabo vmesne oz. robne naprave je merjenje OEE enostavneje vpeljati v obstojeˇ ce proizvodne procese brez posegov v programe na PLK-jih. Pri izraˇ cunu ka- zalnikov OEE smo si pomagali s spremljanjem ˇ casa, ko je bil stroj v posameznem stanju. V Pythonu smo na- pisali objekt ˇ casovnika in ustvarili instanco tega objekta za vsako stanje PackML. Merjenje ˇ casa v posameznem stanju se zaˇ cne oz. konˇ ca v primeru spremembe spre- menljivke PackTags.Status.StateCurrent. Vsi izraˇ cuni se hranijo v delovnem pomnilniku Raspberry Pi, dokler pro- gram teˇ ce. Tak pristop je primeren samo za testiranje, v produkciji pa bi bilo potrebno podatke shranjevati v po- datkovno bazo. Slika 3: Poenostavljen diagram poteka programa. Ko poˇ zenemo program, se najprej vzpostavi povezava z napravo TwinCAT (slika 3). ˇ Ce povezava ni uspeˇ sno vzpostavljena, program izpiˇ se napako. Nato se ustva- rijo instance ˇ casovnikov, ki omogoˇ cajo beleˇ zenje ˇ casa v posameznem stanju. Program takrat ˇ ze zaˇ cne beleˇ ziti stanje proizvodne linije in pridobivati potrebne podatke za izraˇ cun kazalnikov. V naslednjem koraku program vzpostavi povezavo z aplikacijo Azure IoT Central. Za- tem vstopimo v asinhrono glavno funkcijo, ki je v gro- bem sestavljena iz dveh delov. Prvi je namenjen obde- lavi in poˇ siljanju podatkov v oblak, drugi pa sprejemu in izvrˇ sevanju ukazov iz oblaka. Oba dela se istoˇ casno iz- vajata v neskonˇ cni zanki. Funkcija za obdelavo in poˇ siljanje podatkov najprej kliˇ ce funkcijo za izraˇ cun OEE, ki pridobi podatke, izraˇ cu- na kazalnike in pripravi datoteko JSON za prenos v oblak. Nato gre funkcija v asinhron spanec, ki ne blokira izva- janja ostalega dela programa. Po poteku doloˇ cenega ˇ casa 138 se proces ponovi. Sprejem ukazov je sestavljen iz asinhrone funkcije, ki ves ˇ cas ˇ caka na ukaz iz aplikacije. Ob sprejemu no- vega ukaza ga razvrsti glede na ime in podatke v njem ter izvrˇ si doloˇ ceno akcijo. Zatem je potrebno poslati nazaj potrditev o sprejemu in obdelavi ukaza. 5.3 Spletna aplikacija V Microsoft Azure IoT Central smo ustvarili novo aplika- cijo, kamor smo dodali naˇ so robno napravo. Izraˇ cun po- datkov se izvede glede na nastavljeno periodo (npr. vsako minuto), nato pa sledi prenos v spletno aplikacijo. Rezul- tati so prikazani v ˇ stevilski obliki (zadnja znana vrednost) in v obliki grafov, kjer lahko spremljamo zgodovino gi- banja kazalnikov (slika 4). Za laˇ zji nadzor smo v apli- kaciji nastavili tudi barvno oznaˇ cevanje vrednosti, ki so manjˇ se oz. veˇ cje od doloˇ cene meje. Kazalnike smo sprva ˇ zeleli prikazati v obliki kazalˇ cnih instrumentov, vendar Azure IoT Central tega prikaza ne omogoˇ ca. Tudi sicer je nabor prikazov dokaj omejen, sploh v primerjavi z ne- katerimi odprtokodnimi orodji za vizualizacijo podatkov (npr. spletno programsko orodje Grafana). Implementi- Slika 4: Nadzorna ploˇ sˇ ca v spletni aplikaciji. rali smo tudi komunikacijo od oblaka proti robni napravi, s katero lahko v spletni aplikaciji nastavljamo parametre na Raspberry Piju ali vrednosti spremenljivk v programu PLK. Dodali smo moˇ znost nastavljanja periode poˇ siljanja podatkov v aplikacijo in nastavljanje vrednosti spremen- ljivk za maksimalno hitrost stroja ter odstotek slabih iz- delkov v simulaciji (slika 5). Vsakemu ukazu mora slediti odgovor, da operater ve, ali je naprava ukaz sprejela in ga ustrezno obdelala. ˇ Ce odgovora ni, lahko operater hitro ukrepa in poˇ slje nekoga v pregled stanja na terenu. 6 Zakljuˇ cek Ugotovili smo, da je obdelava podatkov na robu omreˇ zja smiselna, sploh v primeru veˇ cjega ˇ stevila povezanih na- prav in velike koliˇ cine podatkov. Uspeˇ sno smo izdelali aplikacijo, ki bi bila z nekaj dopolnitvami primerna tudi za vkljuˇ citev v realne proizvodne procese. Tak primer iz- boljˇ save bi bila dodatna podatkovna baza na robu, ki bi premoˇ sˇ cala teˇ zave ob morebitnih izpadih komunikacije med robno napravo in PLKjem ali pri nenadnem izklopu Slika 5: Prikaz ukazov v spletni aplikaciji. robne naprave. Za laˇ zjo konfiguracijo nastavitev, bi bilo smiselno dodati uporabniˇ ski vmesnik, na katerem bi na- stavljali parametre za povezavo med napravo in oblakom. Kar se tiˇ ce spletnih orodij Azure IoT, smo ugotovili, da so zaradi odliˇ cnih moˇ znosti integracije primerna predvsem za uporabnike, ki ˇ ze uporabljajo ostale Microsoftove sto- ritve (npr. Power BI). Zaradi pomanjkanja fleksibilnosti pri izdelavi vizualizacije bi bilo zanimivo poskusiti z iz- delavo podobne aplikacije, ki pa bi temeljila na odprto- kodnih reˇ sitvah (npr. kombinacija podatkovne baze In- fluxDB in spletne aplikacije Grafana). Literatura [1] F. Al-Turjman, Edge Computing: From Hype to Reality. ZDA: Springer International Publishing, 2019. [2] Raspberry Pi. Dosegljivo: ht- tps://sl.wikipedia.org/wiki/Raspberry Pi. [Dostopano: 12. 7. 2021]. [3] Ki-Young Jeong, D. T. Phillips, ”Operational efficiency and effectiveness measurement” v International Journal of Operations & Production Management, vol. 21. 2001, str. 1404-1416. [4] PackML. Dosegljivo: ht- tps://en.wikipedia.org/wiki/PackML. [Dostopano: 12.7.2021]. [5] ”Machine and Unit States: An Implementation Example of ANSI/ISA-88.00.01”, ANSI/ISA, TR88.00.02, 2015. [6] ”Batch Control Part 1: Models and Terminology”, ANSI/ISA-88.00.01, 2010. [7] ”Programmable controllers - Part 3: Programming langua- ges”, IEC 61131-3, 3., 2013. [8] J. ˇ Speh, ”Spremljanje uˇ cinkovitosti proizvodnih procesov z obdelavo na robu omreˇ zja”, diplomsko delo, Ljubljana, Univerza v Ljubljani, Fakulteta za elektrotehniko, 2021.