Zephyrnet logo

Kronesin reaaliaikainen tuotantolinjan valvonta Amazon Managed Servicen avulla Apache Flink |:lle Amazon Web Services

Treffi:

Kruunuja tarjoaa panimoille, juomien pullottajille ja elintarviketuottajille kaikkialla maailmassa yksittäisiä koneita ja kokonaisia ​​tuotantolinjoja. Kronesin linjan läpi kulkee päivittäin miljoonia lasipulloja, tölkkejä ja PET-säiliöitä. Tuotantolinjat ovat monimutkaisia ​​järjestelmiä, joissa on paljon mahdollisia virheitä, jotka voivat pysäyttää linjan ja vähentää tuotannon tuottoa. Krones haluaa havaita vian mahdollisimman varhaisessa vaiheessa (joskus jopa ennen sen tapahtumista) ja ilmoittaa siitä tuotantolinjojen käyttäjille luotettavuuden ja tehokkuuden lisäämiseksi. Joten kuinka havaita vika? Krones varustaa linjansa antureilla tiedonkeruuta varten, jota voidaan sitten arvioida sääntöjen mukaan. Kronesilla linjavalmistajana sekä linjaoperaattorilla on mahdollisuus luoda valvontasääntöjä koneille. Siksi juomapullottaja ja muut toimijat voivat määritellä oman virhemarginaalin linjalle. Aikaisemmin Krones käytti aikasarjatietokantaan perustuvaa järjestelmää. Suurin haaste oli, että tämän järjestelmän virheenkorjaus oli vaikeaa, ja myös kyselyt edustivat koneiden nykytilaa, mutta eivät tilasiirtymiä.

Tämä viesti näyttää, kuinka Krones rakensi suoratoistoratkaisun linjojensa valvontaan perustuen Amazon kinesis ja Amazonin hallinnoima palvelu Apache Flinkille. Nämä täysin hallitut palvelut vähentävät suoratoistosovellusten rakentamisen monimutkaisuutta Apache Flinkillä. Managed Service for Apache Flink hallitsee taustalla olevia Apache Flink -komponentteja, jotka tarjoavat kestävän sovelluksen tilan, mittarit, lokit ja paljon muuta, ja Kinesis antaa sinun käsitellä suoratoistodataa kustannustehokkaasti missä tahansa mittakaavassa. Jos haluat aloittaa oman Apache Flink -sovelluksesi käytön, tutustu GitHub-arkisto näytteille, jotka käyttävät Flinkin Java-, Python- tai SQL-sovellusliittymiä.

Katsaus ratkaisuun

Kronesin linjavalvonta on osa Krones Shopfloor -opastus järjestelmä. Se tarjoaa tukea yrityksen kaikkien toimintojen organisoinnissa, priorisoinnissa, hallinnassa ja dokumentoinnissa. Sen avulla he voivat ilmoittaa käyttäjälle, jos kone on pysäytetty tai tarvitaan materiaaleja, riippumatta siitä, missä linjassa käyttäjä on. Hyväksytyt kunnonvalvontasäännöt ovat jo sisäänrakennettuja, mutta ne voidaan myös määrittää käyttöliittymän kautta. Jos esimerkiksi tietty valvottu datapiste ylittää kynnyksen, rivillä voi olla tekstiviesti tai huoltotilauksen laukaisu.

Kunnonvalvonta- ja sääntöarviointijärjestelmä on rakennettu AWS:lle AWS-analytiikkapalveluita hyödyntäen. Seuraava kaavio havainnollistaa arkkitehtuuria.

Kronesin tuotantolinjan valvonnan arkkitehtuurikaavio

Melkein jokainen datan suoratoistosovellus koostuu viidestä kerroksesta: tietolähde, streamin käsittely, streamin tallennus, virrankäsittely ja yksi tai useampi kohde. Seuraavissa osioissa sukeltamme syvemmälle jokaiseen kerrokseen ja siihen, miten Kronesin rakentama linjavalvontaratkaisu toimii yksityiskohtaisesti.

Tietolähde

Tiedot kerää palvelu, joka toimii reunalaitteella, joka lukee useita protokollia, kuten Siemens S7 tai OPC/UA. Raakadata esikäsitellään yhtenäisen JSON-rakenteen luomiseksi, mikä helpottaa käsittelyä myöhemmin sääntömoottorissa. JSON-muotoon muunnettu esimerkkihyötykuorma voi näyttää tältä:

{
  "version": 1,
  "timestamp": 1234,
  "equipmentId": "84068f2f-3f39-4b9c-a995-d2a84d878689",
  "tag": "water_temperature",
  "value": 13.45,
  "quality": "Ok",
  "meta": {      
    "sequenceNumber": 123,
    "flags": ["Fst", "Lst", "Wmk", "Syn", "Ats"],
    "createdAt": 12345690,
    "sourceId": "filling_machine"
  }
}

Striimin käsittely

AWS IoT Vihreä ruoho on avoimen lähdekoodin Internet of Things (IoT) reuna-ajonaikainen ja pilvipalvelu. Tämän avulla voit käsitellä tietoja paikallisesti sekä koota ja suodattaa laitetietoja. AWS IoT Greengrass tarjoaa valmiiksi rakennettuja komponentteja, jotka voidaan ottaa käyttöön reunalla. Tuotantolinjaratkaisussa käytetään stream manager -komponenttia, joka pystyy käsittelemään dataa ja siirtämään sen AWS-kohteisiin, kuten AWS IoT Analytics, Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ja Kinesis. Virranhallinta puskuroi ja kokoaa tietueet ja lähettää ne sitten Kinesis-tietovirtaan.

Suoratoistotallennus

Virtaustalluksen tehtävänä on puskuroida viestejä vikasietoisella tavalla ja saattaa ne yhden tai useamman kuluttajasovelluksen kulutukseen. Tämän saavuttamiseksi AWS:ssä yleisimmät tekniikat ovat Kinesis ja Amazon hallinnoi suoratoistoa Apache Kafkalle (Amazon MSK). Tuotantolinjojen anturitietojen tallentamiseen Krones valitsee Kinesiksen. Kinesis on palvelimeton suoratoistodatapalvelu, joka toimii missä tahansa mittakaavassa alhaisella latenssilla. Kinesis-datavirran sirpaleet ovat yksilöllisesti tunnistettu datatietueiden sarja, jossa tietovirta koostuu yhdestä tai useammasta sirpaleesta. Jokaisen sirpaleen lukukapasiteetti on 2 Mt/s ja kirjoituskapasiteetti 1 Mt/s (enintään 1,000 XNUMX tietuetta/s). Jotta nämä rajat eivät ylittyisi, tiedot tulisi jakaa sirpaleiden kesken mahdollisimman tasaisesti. Jokaisella Kinesikseen lähetettävällä tietueella on osioavain, jota käytetään tietojen ryhmittelyyn sirpaleiksi. Siksi haluat suuren määrän osioavaimia jakaaksesi kuorman tasaisesti. AWS IoT Greengrassissa toimiva stream manager tukee satunnaisia ​​osioavainten määrityksiä, mikä tarkoittaa, että kaikki tietueet päätyvät satunnaiseen sirpaleeseen ja kuorma jakautuu tasaisesti. Satunnaisten osioavainten määritysten haittana on, että tietueita ei tallenneta järjestyksessä Kinesikseen. Selitämme kuinka tämä ratkaistaan ​​seuraavassa osiossa, jossa puhumme vesileimoista.

Vesileimat

A vesileima on mekanismi, jota käytetään tapahtuma-ajan etenemisen seurantaan ja mittaamiseen tietovirrassa. Tapahtuman aika on aikaleima siitä, kun tapahtuma luotiin lähteessä. Vesileima osoittaa virrankäsittelysovelluksen oikea-aikaisen edistymisen, joten kaikki tapahtumat, joilla on aikaisempi tai sama aikaleima, katsotaan käsiteltyiksi. Nämä tiedot ovat välttämättömiä Flinkille, jotta se voi nopeuttaa tapahtuman aikaa ja käynnistää asiaankuuluvat laskelmat, kuten ikkunan arvioinnit. Tapahtuma-ajan ja vesileiman välinen sallittu viive voidaan määrittää määrittämään, kuinka kauan myöhäistä dataa on odotettava, ennen kuin ikkunan katsotaan olevan valmis ja vesileimaa siirretään eteenpäin.

Kronesilla on järjestelmiä ympäri maailmaa, ja niitä tarvitaan käsittelemään myöhästyneet saapumiset yhteyskatkosten tai muiden verkkorajoitusten vuoksi. He aloittivat seuraamalla myöhäisiä saapumisia ja asettamalla oletusarvoisen Flink-viivästymiskäsittelyn enimmäisarvoon, jonka he näkivät tässä mittarissa. He kokivat ongelmia aikasynkronoinnin kanssa reunalaitteista, mikä johti heihin kehittyneempään vesileimaustapaan. He rakensivat maailmanlaajuisen vesileiman kaikille lähettäjille ja käyttivät pienintä arvoa vesileimana. Aikaleimat tallennetaan HashMapiin kaikille saapuville tapahtumille. Kun vesileimat lähetetään säännöllisesti, käytetään tämän HashMapin pienintä arvoa. Välttääkseen vesileimojen pysähtymisen puuttuvien tietojen vuoksi he määrittelivät idleTimeOut parametri, joka jättää huomioimatta aikaleimat, jotka ovat vanhemmat kuin tietty kynnys. Tämä lisää viivettä, mutta antaa vahvan tiedon johdonmukaisuuden.

public class BucketWatermarkGenerator implements WatermarkGenerator<DataPointEvent> {
private HashMap <String, WatermarkAndTimestamp> lastTimestamps;
private Long idleTimeOut;
private long maxOutOfOrderness;
}

Virran käsittely

Sen jälkeen kun tiedot on kerätty antureilta ja syötetty Kinesikseen, sääntömoottorin on arvioitava ne. Tämän järjestelmän sääntö edustaa yksittäisen mittarin (kuten lämpötilan) tai mittausjoukon tilaa. Mittarin tulkitsemiseen käytetään useampaa kuin yhtä datapistettä, mikä on tilallinen laskenta. Tässä osiossa sukeltamme syvemmälle Apache Flinkin avaimiin ja lähetystilaan ja siihen, miten niitä käytetään Kronesin sääntömoottorin rakentamiseen.

Ohjaa virran ja lähetyksen tilamallia

Apache Flinkissä olivat viittaa järjestelmän kykyyn tallentaa ja hallita tietoa jatkuvasti ajan ja toimintojen ajan, mikä mahdollistaa suoratoistodatan käsittelyn tilatietoisten laskelmien tuella.

- lähetystilakuvio mahdollistaa tilan jakamisen operaattorin kaikkiin rinnakkaisiin esiintymiin. Siksi kaikilla operaattoreilla on sama tila ja dataa voidaan käsitellä käyttämällä samaa tilaa. Nämä vain luku -tiedot voidaan syöttää käyttämällä ohjausvirtaa. Ohjausvirta on tavallinen tietovirta, mutta yleensä paljon pienemmällä datanopeudella. Tämän mallin avulla voit päivittää dynaamisesti kaikkien operaattoreiden tilan, jolloin käyttäjä voi muuttaa sovelluksen tilaa ja käyttäytymistä ilman uudelleenasennusta. Tarkemmin sanottuna tilan jakautuminen tapahtuu ohjausvirtaa käyttämällä. Kun ohjausvirtaan lisätään uusi tietue, kaikki operaattorit saavat tämän päivityksen ja käyttävät uutta tilaa uusien viestien käsittelyyn.

Näin Krones-sovelluksen käyttäjät voivat ottaa uusia sääntöjä Flink-sovellukseen käynnistämättä sitä uudelleen. Tämä välttää seisokit ja tarjoaa erinomaisen käyttökokemuksen, koska muutokset tapahtuvat reaaliajassa. Sääntö kattaa skenaarion prosessipoikkeaman havaitsemiseksi. Joskus koneen tiedot eivät ole niin helppoja tulkita kuin miltä se saattaa näyttää ensi silmäyksellä. Jos lämpötila-anturi lähettää korkeita arvoja, tämä voi olla merkki virheestä, mutta se voi olla myös jatkuvan huoltotoimenpiteen seuraus. On tärkeää asettaa mittarit kontekstiin ja suodattaa joitakin arvoja. Tämä saavutetaan konseptilla ns ryhmittely.

Mittareiden ryhmittely

Tietojen ja mittareiden ryhmittelyn avulla voit määrittää saapuvan tiedon merkityksen ja tuottaa tarkkoja tuloksia. Käydään läpi seuraavan kuvan esimerkki.

Mittareiden ryhmittely

Vaiheessa 1 määritämme kaksi ehtoryhmää. Ryhmä 1 kerää koneen tilan ja sen, mikä tuote kulkee linjan läpi. Ryhmä 2 käyttää lämpötila- ja paineanturien arvoa. Ehtoryhmällä voi olla erilaisia ​​tiloja sen vastaanottamien arvojen mukaan. Tässä esimerkissä ryhmä 1 vastaanottaa tiedot siitä, että kone on käynnissä, ja litran pullo valitaan tuotteeksi; tämä antaa tälle ryhmälle tilan ACTIVE. Ryhmässä 2 on mittarit lämpötilalle ja paineelle; molemmat mittarit ovat kynnysten yläpuolella yli 5 minuuttia. Tämä johtaa siihen, että ryhmä 2 on a WARNING osavaltio. Tämä tarkoittaa, että ryhmä 1 raportoi, että kaikki on hyvin, ja ryhmä 2 ei. Vaiheessa 2 painot lisätään ryhmiin. Tämä on tarpeen joissakin tilanteissa, koska ryhmät voivat raportoida ristiriitaisia ​​tietoja. Tässä skenaariossa ryhmä 1 raportoi ACTIVE ja ryhmän 2 raportit WARNING, joten järjestelmälle ei ole selvää, mikä linjan tila on. Kun painot on lisätty, tilat voidaan asettaa paremmuusjärjestykseen vaiheessa 3 esitetyllä tavalla. Lopuksi korkeimmalla oleva tila valitaan voittajaksi, kuten vaiheessa 4 on esitetty.

Kun säännöt on arvioitu ja koneen lopullinen tila on määritelty, tuloksia käsitellään edelleen. Toimenpide riippuu säännön kokoonpanosta; tämä voi olla ilmoitus linjan operaattorille materiaalin lisäämisestä, huoltotoimista tai pelkkä visuaalinen päivitys kojelautaan. Tätä järjestelmän osaa, joka arvioi mittareita ja sääntöjä ja tekee tulosten perusteella toimia, kutsutaan a sääntömoottori.

Sääntömoottorin skaalaus

Kun annat käyttäjien rakentaa omia sääntöjään, sääntömoottorilla voi olla suuri määrä sääntöjä, jotka sen on arvioitava, ja jotkin säännöt saattavat käyttää samoja anturitietoja kuin muut säännöt. Flink on hajautettu järjestelmä, joka skaalautuu erittäin hyvin vaakasuunnassa. Voit jakaa tietovirran useisiin tehtäviin käyttämällä keyBy() menetelmä. Tämän avulla voit osioida tietovirran loogisella tavalla ja lähettää osia tiedosta eri tehtävänhaltijoille. Tämä tehdään usein valitsemalla mielivaltainen avain, jotta saat tasaisesti jakautuneen kuorman. Tässä tapauksessa Krones lisäsi a ruleId tietopisteeseen ja käytti sitä avaimena. Muussa tapauksessa toinen tehtävä käsittelee tarvittavat tietopisteet. Avaintettua tietovirtaa voidaan käyttää kaikissa säännöissä aivan kuten tavallista muuttujaa.

Kohteet

Kun sääntö muuttaa tilaansa, tiedot lähetetään Kinesis-virtaan ja sen kautta Amazon EventBridge kuluttajille. Yksi kuluttajista luo tapahtumasta ilmoituksen, joka välittyy tuotantolinjalle ja hälyttää henkilöstöä toimimaan. Jotta säännön tilan muutoksia voidaan analysoida, toinen palvelu kirjoittaa tiedot an Amazon DynamoDB taulukko nopeaa käyttöä varten ja TTL on käytössä pitkän aikavälin historian siirtämiseksi Amazon S3:een lisäraportointia varten.

Yhteenveto

Tässä viestissä näytimme sinulle, kuinka Krones rakensi reaaliaikaisen tuotantolinjan valvontajärjestelmän AWS:lle. Managed Service for Apache Flink antoi Kronesin tiimille mahdollisuuden päästä nopeasti alkuun keskittymällä sovelluskehitykseen infrastruktuurin sijaan. Flinkin reaaliaikaiset ominaisuudet antoivat Kronesille mahdollisuuden vähentää koneen seisokkeja 10 % ja lisätä tehokkuutta jopa 5 %.

Jos haluat rakentaa omia suoratoistosovelluksia, tutustu saatavilla oleviin näytteisiin osoitteessa GitHub-arkisto. Jos haluat laajentaa Flink-sovellustasi mukautetuilla liittimillä, katso Liitinten rakentamisen helpottaminen Apache Flinkillä: Esittelyssä Async Sink. Async Sink on saatavana Apache Flink -versiossa 1.15.1 ja uudemmissa.


Tietoja Tekijät

Florian Mair on AWS:n vanhempi ratkaisuarkkitehti ja datan suoratoiston asiantuntija. Hän on tekniikan asiantuntija, joka auttaa asiakkaita Euroopassa menestymään ja innovoimaan ratkaisemalla liiketoiminnan haasteita AWS Cloud -palveluiden avulla. Solutions Architect -työskentelyn lisäksi Florian on intohimoinen vuorikiipeilijä, ja hän on kiivennyt joihinkin Euroopan korkeimmista vuorista.

Emil Dietl on Kronesin vanhempi tekninen johtaja, joka on erikoistunut tietotekniikkaan ja jonka avainala on Apache Flink ja mikropalvelut. Hänen työhönsä liittyy usein kriittisten ohjelmistojen kehittämistä ja ylläpitoa. Ammatillisen elämänsä ulkopuolella hän arvostaa syvästi laatuajan viettämistä perheensä kanssa.

Simon Peyer on ratkaisuarkkitehti AWS:ssä Sveitsissä. Hän on käytännöllinen tekijä ja on intohimoinen teknologian ja ihmisten yhdistämiseen AWS Cloud -palveluita käyttävien ihmisten kanssa. Erityisesti hän keskittyy tiedon striimaukseen ja automaatioihin. Työn lisäksi Simon nauttii perheestään, ulkoilusta ja patikoinnista vuoristossa.

spot_img

Uusin älykkyys

spot_img