Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Eclipse Vorto:de volgende stap in IoT-apparaatintegratie

Alexander Edelmann

你好 (Chinees voor "Hallo"), ik ben gevestigd in Singapore en werk sinds 2006 als software-engineer voor Robert Bosch. Ik ben gepassioneerd door IoT en geloof in open standaarden die het succesvolle samenspel tussen apparaten op verschillende IoT-platforms bepalen . Daarom draag ik actief bij aan het Eclipse IoT Vorto-project, dat als doel heeft cloudgebaseerde tools te bieden om IoT-apparaten uniform te beschrijven en te integreren in verschillende IoT-platforms op basis van open IoT-standaarden. Mijn IoT-geeky kant apart, ik geniet van Aziatische keukens waarmee ik mijn eetstokjesvaardigheden kan oefenen. Je kunt me ook op het veld vinden terwijl ik een paar tennisballen sla met mijn vrienden.

Kijkend naar voorbeelden zoals slimme fabrieken en huizen, verbeteren verbonden apparaten niet alleen de kosten en hulpbronnenefficiëntie van bedrijven, maar vergroten ze ook de veiligheid en het gemak van het leven. Met het enorme aantal fabrikanten van apparaten en sensoren doen zich nieuwe uitdagingen voor de fabrikanten, platforms en integrators voor.

Het grootste probleem is hoe ervoor te zorgen dat aangesloten apparaten naadloos kunnen communiceren met cloudplatforms, ongeacht de verschillende fabrikanten, technologieën en systemen. In het verleden hebben ontwikkelaars IoT-oplossingen gebouwd die specifiek zijn ontworpen voor een beperkt aantal apparaten met dezelfde API. Bij het wijzigen van het apparaattype of het wisselen van apparaatfabrikant vergde de apparaatintegratie tijdrovende refactoring om met het nieuwe apparaat te werken.

Stel je voor dat je van plan bent een IoT-oplossing te integreren voor het volgen van activa op een grote akkerbouwbedrijf. U wilt niet alleen de huidige locatie bijhouden, maar ook de temperatuur en acceleratie van de tractoren, ploegen en andere landbouwmachines.

Bij het kiezen van de juiste IoT-apparaten komen twee vragen naar boven:

  • Hoe komen we erachter welke apparaten het type functionaliteit hebben dat we willen?
  • Hoe kunnen we een nauwe koppeling tussen specifieke apparaten voorkomen, zodat het gemakkelijker is om over te schakelen naar een vergelijkbaar apparaat zonder al te veel refactoring?

Dit is waar de open source Eclipse Vorto om de hoek komt kijken.

Introductie van Eclipse Vorto

Bron:Eclipse Vorto

Eclipse Vorto biedt een abstractielaag, het Vorto-informatiemodel genaamd, en een domeinspecifieke taal (DSL) die alle meta-informatie beschrijft, zoals eigenschappen en functies, van een aangesloten apparaat.

Door een abstractielaag toe te voegen, creëren we een consistente interface waarmee we verschillende soorten apparaten met vergelijkbare functionaliteit kunnen gebruiken.

Het Eclipse Vorto-project is gebaseerd op vier hoofdcomponenten:

  • Vorto DSL: De Vorto DSL is een leesbare en gemakkelijk te begrijpen domeinspecifieke taal die speciaal is ontworpen om zelfs door niet-ontwikkelaars te kunnen worden gebruikt. Het wordt gebruikt om abstracte modellen van verschillende apparaten te maken.
  • Metamodel: Het metamodel wordt gebruikt om de relatie tussen de verschillende entiteiten zoals informatiemodellen, functieblokken en gegevenstypen te definiëren.
  • Codegeneratoren: Op basis van de DSL- en metamodellen bieden de codegeneratoren een geavanceerde maar eenvoudige manier om broncode te creëren voor een gemakkelijke integratie van de gedefinieerde IoT-apparaten met een IoT-oplossingsplatform.
  • Vorto-opslagplaats: De repository wordt gebruikt om de gecreëerde informatiemodellen en functieblokken op te slaan, te beheren en te distribueren voor hergebruik.

Eclipse Vorto is volledig open source en ontwikkeld binnen de Eclipse IoT Working Group onder leiding van Bosch.

Tim Grossmann

Als Duitse student informatica heb ik de afgelopen anderhalf jaar opdrachten aangenomen op 3 verschillende afdelingen bij Bosch. Ik ben vooral geïnteresseerd in Open Source- en EduTech-technologieën. Ik geloof dat het internet der dingen en automatisering een enorm potentieel hebben om zowel de manier waarop mensen leven, werken en genieten van het leven te veranderen en te verbeteren. Een gepassioneerde leerling en ontwikkelaar, ik ben altijd enthousiast om nieuwe vaardigheden en tooling te leren. Naast mijn reguliere werk heb ik 's werelds grootste gratis open-source automatiseringsbot voor Instagram gebouwd en onderhoud ik deze nu. In mijn vrije tijd geniet ik van klimuitjes met vrienden en reizen in het buitenland.

Eclipse Vorto in de praktijk

Laten we een specifieker voorbeeld bekijken om deze abstractie beter te begrijpen. Stelt u zich een landbouwbedrijf voor dat de voertuigen en activa wil bijhouden die worden gebruikt om de tarweoogst te verzamelen. Op grotere boerderijen met meerdere oogstmachines, tractoren en andere activa, willen we weten hoe lang elk voertuig is gebruikt en wat de locatiegeschiedenis ervan is.

Door dit soort informatie te combineren met temperatuur- en vochtigheidswaarden, kunnen we een slim onderhoudsplan voor alle voertuigen en activa mogelijk maken. De locatie van elk voertuig en elk bezit biedt ons ook antidiefstalmogelijkheden.

Een van de oplossingen die dit soort functionaliteit biedt, is de Asset Tracing Solution (TRACI) van Bosch.

Bron:Bosch.IO

Om een ​​digitaal model van dit specifieke apparaat te maken, hebben we enkele basisbouwstenen nodig die zullen worden gebruikt om het TRACI-informatiemodel samen te stellen.

Een van de belangrijkste onderdelen van het volgapparaat is de batterij. Om de batterijstatus van elk apparaat te kunnen controleren, kunnen we de status beschrijven in een zogenaamd functieblok.

Een functieblok is een generiek model dat later opnieuw kan worden gebruikt in informatiemodellen van andere apparaten.

We kunnen er een als volgt definiëren:

naamruimte org.eclipse.vorto versie 1.0.0 weergavenaam "Batterij" omschrijving "Functieblok voor Accu" categorie randapparatuur met behulp van org.eclipse.vorto.Voltage; 1.0.0 functieblok Batterij verlengt org.eclipse.vorto.Voltage { toestand { verplicht resterend Capaciteit als float } }

Hier beschrijven we een Functieblok die abstract een entiteit beschrijft die een verplichte numerieke waarde tussen 0 en 100 bevat.

Aangezien onze status een procentuele waarde is, kunnen we dit verder abstraheren om, nogmaals, de afzonderlijke componenten herbruikbaar te maken. Daarom zullen we een zogenaamd Datatype . maken . Hier kunnen we een entiteit definiëren (in dit geval Percentage) die dezelfde beperkingen heeft als een numerieke waarde tussen 0 en 100.

naamruimte org.eclipse.vorto.types versie 1.0.0 weergavenaam "Percentage" omschrijving "Datatype voor Percentage" categorie eenheden entiteit Percentage { verplichte waarde als float }

Zodra we dit gegevenstype hebben gemaakt, kan het worden geïmporteerd en gebruikt in ons batterijfunctieblok en vervangt het de concrete implementatie.

naamruimte org.eclipse.vorto versie 1.0.0 weergavenaam "Batterij" omschrijving "Functieblok voor Accu" categorie randapparatuur org.eclipse.vorto.types.Percentage gebruiken; 1.0.0 met behulp van org.eclipse.vorto.Voltage; 1.0.0 functieblok Batterij verlengt org.eclipse.vorto.Voltage { toestand { verplichte resterende capaciteit als percentage } }

We kunnen dit proces herhalen voor alle sensoren die in ons TRACI-apparaat zijn geïntegreerd, zoals de temperatuursensor , GPS , versnelling , en connectiviteitsmodules . Al die functieblokken kunnen vervolgens worden samengevoegd in een Vorto Informatiemodel die vervolgens kan worden gebruikt als startpunt voor de codegenerators om codestubs voor apparaatintegratie voor u te produceren.

naamruimte com.bosch.ps versie 1.0.0 weergavenaam "Traci" omschrijving "Informatiemodel voor Traci" met behulp van org.eclipse.vorto.Geolocation; 1.0.0 met behulp van org.eclipse.vorto.Acceleration; 1.0.0 met behulp van org.eclipse.vorto.MagneticStrength; 1.0.0 met behulp van org.eclipse.vorto.Temperature; 1.0.0 met behulp van org.eclipse.vorto.Battery; 1.0.0 met behulp van org.eclipse.vorto.Connectivity; 1.0.0 infomodel Traci { functieblokken { batterij als batterij locatie als geolocatie versnelling als versnelling temperatuur als temperatuur magnetische kracht als magnetische kracht bluetoothConnectiviteit als Connectiviteit lorawanConnectiviteit als Connectiviteit } }

Oké, dus waar doen we dit allemaal voor?

Laten we zeggen dat we nu apparaten van andere fabrikanten willen gebruiken met vergelijkbare functies als het TRACI-apparaat. We hebben al een IoT-oplossing gemaakt waarin het TRACI-apparaat is geïntegreerd en het zou een enorme klus zijn om ons systeem te herstructureren zodat het werkt met apparaten van verschillende fabrikanten.

Omdat we onze functieblokken en datatypes al hebben gedefinieerd, kunnen we een nieuw informatiemodel voor ons nieuwe apparaat definiëren dat dezelfde functieblokken gebruikt als het TRACI-model.

Laten we het TRACI-model eens vergelijken met een product met vergelijkbare functionaliteit, de NL-AT2VS van NimbeLink.

naamruimte com.nimbelink.nl versie 1.0.0 weergavenaam "NLAT2VS" omschrijving "Informatiemodel voor NLAT2VS" met behulp van org.eclipse.vorto.Geolocation; 1.0.0 met behulp van org.eclipse.vorto.Battery; 1.0.0 met behulp van org.eclipse.vorto.Connectivity; 1.0.0 met behulp van org.eclipse.vorto.Temperature; 1.0.0 met behulp van org.eclipse.vorto.Vochtigheid; 1.0.0 met behulp van org.eclipse.vorto.Acceleration; 1.0.0 infomodel NLAT2VS { functieblokken { batterij als batterij versnelling als versnelling locatie als geolocatie temperatuur als temperatuur vochtigheid als vochtigheid wifiConnectiviteit als Connectiviteit cellulaire connectiviteit als connectiviteit } }

We kunnen zien dat zelfs de connectiviteitsmodules in dit model anders zijn, maar nog steeds het abstracte Connectivity Function Block gebruiken. De abstractie stelt ons in staat om verschillende apparaten met vergelijkbare functionaliteit te vervangen of te combineren zonder veel integratie-overhead.

Wie moet Eclipse Vorto gebruiken?

Gezien de diversiteit aan entiteiten die betrokken zijn bij de productie, integratie en ontwikkeling van IoT-oplossingen, zijn de entiteiten die het meest zullen profiteren van Eclipse Vorto:

Apparaatfabrikanten

Eclipse Vorto kan apparaatfabrikanten helpen interoperabiliteit met andere apparaten in bestaande infrastructuren mogelijk te maken. Flexibiliteit is een enorm voordeel voor klanten bij het kiezen van apparaten die moeten worden geïntegreerd.

Door technologie-onafhankelijke informatiemodellen te gebruiken, vermijden apparaatfabrikanten de overhead van het genereren van manieren van implementatie voor alle soorten doelplatforms. Dit bespaart geld en tijd door informatiemodellen te publiceren die met behulp van de codegeneratoren kunnen worden omgezet in concrete integraties.

Het grote voordeel van het gebruik van Eclipse Vorto is dat verdere evoluties van de apparaatprotocollaag zijn losgekoppeld van de logica van de apparaatcontroller.

Bron:Eclipse Vorto

IoT-platforms

IoT-platforms moeten een grote verscheidenheid aan verschillende IoT-apparaten van een breed scala aan fabrikanten verbinden en alle verschillende protocollen en formaten ondersteunen. Door de codegenerators van Eclipse Vorto te gebruiken, kan deze inspanning drastisch worden verminderd door het genereren van gedeeltelijke of volledige broncode.

Bovendien fungeert de Vorto Repository als een runtime-repository waarmee platforms apparaatmogelijkheden als JSON-schema kunnen ophalen. Deze schema's kunnen vervolgens worden geïnterpreteerd en gevalideerd in de digitale tweeling of worden gebruikt om connectoren voor de communicatie op te starten.

Ook al betekent dit meer initiële ontwikkelingswerkzaamheden, het zal na verloop van tijd zijn vruchten afwerpen, gezien het enorme aantal apparaten en de groei van IoT.

Oplossingsontwikkelaars

Bij het integreren van verbonden apparaten en slimme sensoren in IoT-oplossingen, moeten ontwikkelaars een breed scala aan verschillende apparaat-API's dekken, wat resulteert in een enorme coderingsoverhead. Eclipse Vorto kan de hoeveelheid ontwikkelingswerk verminderen door codegenerators te leveren die generieke codestubs leveren die de integratie van apparaten vereenvoudigen.

Bron:Eclipse Vorto

Een blik in de toekomst van het IoT

Door interoperabiliteit te garanderen en de interface voor apparaten te harmoniseren, heeft Eclipse Vorto het potentieel om de manier waarop apparaatfabrikanten, IoT-platformoperators en applicatieontwikkelaars met IoT-apparaten werken te veranderen.

Het kan het ontwikkelingswerk voor fabrikanten verminderen en de apparaatintegratie voor platformaanbieders en integrators vergemakkelijken, terwijl veel van de genoemde uitdagingen van IoT-ontwikkeling worden aangepakt.

Als je meer wilt weten over het project, bekijk dan zeker de GitHub-repository en geef het een ster.

Je kunt het ook proberen en gebruik de geavanceerde tutorials voor het maken, integreren en visualiseren van apparaten in de Vorto Repository.


Internet of Things-technologie

  1. X.509-gebaseerde apparaatverificatie in Eclipse Hono
  2. Slimme data:de volgende grens in het IoT
  3. De groeiende dreiging van IoT met Wi-Fi
  4. Geloof de hype niet:waarom het IoT vastloopt
  5. Het IoT verbinden – de smalbandkans
  6. We leggen de basis voor IoT in de onderneming
  7. 5 uitdagingen waarmee het internet der dingen nog steeds wordt geconfronteerd
  8. De rol van IoT in de gezondheidszorg tijdens Covid-19
  9. Waarom directe verbinding de volgende fase is van industrieel IoT
  10. De blinde vlek van het IoT blootleggen in een postpandemische wereld
  11. Wat de komst van 5G betekent voor IoT-beveiliging