{"id":10211,"date":"2023-03-14T14:24:18","date_gmt":"2023-03-14T13:24:18","guid":{"rendered":"https:\/\/www.iese.fraunhofer.de\/blog\/?p=10211"},"modified":"2024-02-26T11:02:20","modified_gmt":"2024-02-26T10:02:20","slug":"device-integration-mit-basyx","status":"publish","type":"post","link":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/","title":{"rendered":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen"},"content":{"rendered":"<p class=\"lead\">Digitale Zwillinge sind eine Schl\u00fcsseltechnologie zur Zielerreichung von Industrie 4.0. Sie dienen als vereinheitlichte virtuelle Repr\u00e4sentation von Assets wie Ger\u00e4ten, Produkten oder Sensoren und deren Eigenschaften. Die Nutzung von Konzepten wie der Verwaltungsschale (kurz: VWS) erm\u00f6glicht die Schaffung einer standardisierten Schnittstelle hin zum Digitalen Zwilling des Assets. Um dieses Ziel aber erreichen zu k\u00f6nnen, m\u00fcssen die Assets mit den Verwaltungsschalen integriert sein. Dieser Blog-Post zeigt auf, wie sich die Device-Integration durch unsere am Fraunhofer IESE entwickelte L\u00f6sung Eclipse BaSyx ganz einfach und mit minimalem Programmieraufwand umsetzen l\u00e4sst \u2013 und das als Open Source. Eclipse BaSyx erm\u00f6glicht dies durch die Bereitstellung von vielseitigen OTS-Komponenten.<\/p>\n<p>Die Digitalisierung der Produktion und Industrie 4.0 versprechen eine F\u00fclle von Vorteilen, wie z. B. Prozesstransparenz, die Verl\u00e4sslichkeit von Lieferketten oder die effiziente Produktion kleiner Losgr\u00f6\u00dfen. Bei zahlreichen Anwendungsf\u00e4llen wird aber eine teilweise Integration von Assets mit ihren Digitalen Zwillingen (kurz: DZ), also ihrer virtuellen Repr\u00e4sentation, vorausgesetzt. Dabei m\u00fcssen einerseits Daten aus dem Shopfloor in den Digitalen Zwilling integriert werden, aber auch umgekehrt \u00c4nderungen am Digitalen Zwilling direkt wieder mit dem realen Asset synchronisiert werden. Daraus leiten sich zwei gro\u00dfe Herausforderungen ab, die folgende Fragen aufwerfen:<\/p>\n<ul>\n<li>Wie lassen sich Ger\u00e4tedaten mit dem Digitalen Zwilling synchronisieren?<\/li>\n<li>Wie lassen sich Daten aus dem Digitalen Zwilling wieder zur\u00fcck zum realen Ger\u00e4t synchronisieren?<\/li>\n<\/ul>\n<p>Besonders bei der Erstellung von DZs f\u00fcr \u00e4ltere Ger\u00e4te stellen diese beiden Punkte eine Herausforderung dar, da speziell \u00e4ltere Ger\u00e4te oft Klemmen oder Feldbusse zur Kommunikation nutzen. Um Konnektivit\u00e4t zu gew\u00e4hrleisten, m\u00fcssen verschiedene Generationen von Protokollen und Bussystemen in den DZ integriert werden. Zum Beispiel wurde der Modbus erstmals 1979 implementiert, wohingegen zuk\u00fcnftig Automatisierungsprotokolle wie OPC UA eine gro\u00dfe Rolle spielen werden. Integratoren m\u00fcssen bei der Erstellung eines DZ oft synchrone und asynchrone Kommunikation ber\u00fccksichtigen und neben den klassischen Automatisierungsprotokollen auch weitere Protokolle wie MQTT, das zum Beispiel f\u00fcr OPC UA Pub\/Sub eingesetzt wird, miteinbeziehen. Ebenfalls m\u00fcssen Integratoren unterschiedliche Nachrichtenformate f\u00fcr Nutzdaten integrieren k\u00f6nnen, wie zum Beispiel JSON, XML oder auch propriet\u00e4re Bin\u00e4rformate.<\/p>\n<p>Zwar sind beide Herausforderungen bereits heute durch intensiv getailorte Anwendungen l\u00f6sbar, es entsteht dabei aber ein hoher manueller Aufwand. Der Nachteil davon liegt auf der Hand: Selten entstehen bei diesem Vorgehen wiederverwendbare Artefakte, die bei der n\u00e4chsten Integration eine signifikante Beschleunigung und damit auch eine signifikante Kostenreduktion erm\u00f6glichen.<\/p>\n<p>&nbsp;<\/p>\n<h2>Bereitstellung von Off-the-Shelf-Komponenten mittels Eclipse BaSyx<\/h2>\n<p>Eines der Ziele von Eclipse BaSyx ist die Bereitstellung von Off-the-Shelf-Komponenten, die genau diese Herausforderung adressieren. Diese Komponenten k\u00f6nnen mit minimalem Aufwand konfiguriert und deployed werden \u2013 sprich, einfach aus dem Regal genommen und in die Anwendung gebracht werden. Ein Kernkonzept von Eclipse BaSyx ist dabei die Verwaltungsschale (VWS). Aufbauend auf dem Konzept des Digitalen Zwillings wurde von der Plattform Industrie 4.0 mit der VWS eine Spezifikation geschaffen, welche ein einheitliches Verst\u00e4ndnis schafft und \u00fcber ein definiertes Metamodell sowie Zugriffs-APIs die Interoperabilit\u00e4t der Implementierung des DZs garantiert.<\/p>\n<p>In diesem Blog-Beitrag wird anhand eines einfachen Beispiels aufgezeigt, welchen Beitrag Eclipse BaSyx zur Device-Integration liefern kann. Durch die Bereitstellung des Beispiels als direkt ausf\u00fchrbarem Code bzw. als einfach startbarem <em>docker compose file<\/em> auf <a href=\"https:\/\/github.com\/eclipse-basyx\/basyx-java-examples\/blob\/main\/basyx.examples.deviceintegration\/src\/main\/resources\/compose.yaml\">GitHub<\/a> kann das Beispiel direkt nachvollzogen und als Blaupause f\u00fcr eigene Projekte genutzt werden.<\/p>\n<p>&nbsp;<\/p>\n<h2>Beispiel: Die Integration eines Heizelements in dessen Verwaltungsschale<\/h2>\n<p>Im Folgenden wird die Device-Integration beispielhaft anhand eines Heizelements betrachtet. Das Heizelement verf\u00fcgt dabei \u00fcber eine einfache Schnittstelle:<\/p>\n<ul>\n<li>Ein Heizsollwert kann per http\/REST in Grad Fahrenheit konfiguriert werden.<\/li>\n<li>Der zuletzt konfigurierte Sollwert kann per http\/REST abgefragt werden.<\/li>\n<li>Jede Sekunde wird der aktuell gemessene Temperaturwert in Grad Fahrenheit als MQTT-Event zur Verf\u00fcgung gestellt.<\/li>\n<\/ul>\n<p>Im ersten Schritt erfolgt die Erstellung des Digitalen Zwillings in Form der Verwaltungsschale, z. B. mit dem <a href=\"https:\/\/github.com\/admin-shell-io\/aasx-package-explorer\">AASX Package Explorer<\/a>. In Abbildung 1 ist eine m\u00f6gliche Abbildung des Assets auf der Verwaltungsschale dargestellt. Typischerweise w\u00fcrde das Asset noch weitere Teilmodelle wie etwa das <a href=\"https:\/\/www.plattform-i40.de\/IP\/Redaktion\/DE\/Downloads\/Publikation\/Submodel_Templates-Asset_Administration_Shell-digital_nameplate.html\">Digital Nameplate<\/a> enthalten \u2013 aus Gr\u00fcnden der \u00dcbersichtlichkeit wurde darauf aber im Folgenden verzichtet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10216\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild1-698x156.png\" alt=\"Darstellung von zwei Teilmodellen im AASX Package Explorer\" width=\"698\" height=\"156\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild1-698x156.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild1-400x90.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild1-768x172.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild1.png 794w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 1 &#8211; Verwaltungsschale f\u00fcr das Heizelement<\/p>\n<p>Konkret beinhaltet die VWS zwei Teilmodelle:<\/p>\n<ul>\n<li><strong>TemperatureSensor<\/strong>: Repr\u00e4sentiert den Temperatursensor-Aspekt des Assets und enth\u00e4lt die aktuell gemessene Temperatur in Grad Celsius<\/li>\n<li><strong>HeaterControl<\/strong>: Repr\u00e4sentiert den Heizelement-Aspekt des Assets und bietet eine Operation zum Setzen des Heizsollwerts an. Analog dazu stellt das Teilmodell den zuletzt gesetzten Heizsollwert \u00fcber ein Property bereit. Der Heizsollwert wird in diesem Beispiel in Grad Fahrenheit angegeben. Zus\u00e4tzlich sind beide SubmodelElemente mit Qualifiern annotiert. Die Bedeutung dieser Qualifier wird im sp\u00e4teren Verlauf dieses Artikels noch erkl\u00e4rt.<\/li>\n<\/ul>\n<p>Im Beispielszenario wird das HeaterControl-Teilmodell mit einer Applikation aus den USA integriert, weswegen der native Temperaturmesswert in Grad Fahrenheit belassen wird. Das TemperatureSensor-Teilmodell dagegen dient zur Darstellung des aktuellen Prozesses in einer Dashboard-Anwendung f\u00fcr den europ\u00e4ischen Markt, weswegen hier Daten in Grad Celsius angeboten werden.<\/p>\n<p>Die definierte Verwaltungsschale kann nun in <a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/industrie-4-0-it-infrastructure-for-digital-twins-part2\/\">VWS-Infrastruktur<\/a> geladen werden\u00a0 und es entsteht die in Abbildung 2 gezeigte Architektur. Dort existiert sie allerdings im ersten Schritt losgel\u00f6st vom reellen Device. Mit Eclipse BaSyx kann nun die Datenintegration auf einfache Art und Weise erfolgen. Daf\u00fcr bietet Eclipse BaSyx verschiedene Mittel, die im Folgenden genauer vorgestellt werden:<\/p>\n<ul>\n<li>Integration per Property-Delegation<\/li>\n<li>Integration per Operation-Delegation<\/li>\n<li>Datenintegration mit der Eclipse BaSyx DataBridge<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10217\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild2-698x121.png\" alt=\"\" width=\"698\" height=\"121\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild2-698x121.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild2-400x70.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild2-768x134.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild2.png 857w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 2 &#8211; Vereinfachte VWS-Architektur ohne Datenintegration<\/p>\n<p>&nbsp;<\/p>\n<h2>Device-Integration per Property-Delegation<\/h2>\n<p>Soll ein einfacher Datenpunkt direkt, also ohne Transformation, mit einem Teilmodell integriert werden, ist die Property-Delegation ein geeigneter Ansatz. Bei diesem Integrationsmechanismus wird die Abfrage eines Propertys durch die VWS-Applikation vom VWS-Server weiterdelegiert. Der Datenpunkt wird also vom VWS-Server bei einem Asset abgefragt und an die VWS-Applikation zur\u00fcckgegeben. Folglich ist diese Delegation bzw. Weiterleitung dabei voll transparent und damit f\u00fcr die VWS-Applikation unsichtbar. Der Vorteil ist deutlich: \u00c4nderungen an Device-Integrationen lassen sich so ohne jegliche \u00c4nderungen an den VWS-Applikationen durchf\u00fchren. Somit lassen sich auch noch nachtr\u00e4glich Design-Entscheidungen \u00e4ndern, ohne dass zus\u00e4tzlicher Tailoring-Aufwand entsteht. Die aus diesem Vorgehen resultierende Architektur ist in Abbildung 3 dargestellt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10218\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild3-698x206.png\" alt=\"\" width=\"698\" height=\"206\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild3-698x206.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild3-400x118.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild3-768x227.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild3.png 857w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 3 &#8211; Property-Abfrage \u00fcber Property-Delegation<\/p>\n<p>Wie aber ist diese Integration nun per Property-Delegation mit Eclipse BaSyx m\u00f6glich? Die gute Nachricht lautet: Ganz einfach \u2013 und das ohne eine einzige Zeile Code. Die <a href=\"https:\/\/wiki.eclipse.org\/BaSyx_\/_Documentation_\/_Components_\/_AAS_Server\">VWS-Server-Komponente<\/a> von BaSyx unterst\u00fctzt die <a href=\"https:\/\/wiki.eclipse.org\/BaSyx_\/_Documentation_\/_Components_\/_AAS_Server_\/_Features_\/_Property_Delegation\">Property-Delegation<\/a> mit einer einfachen Konfiguration. Konkret muss zur Nutzung und Konfiguration der Property-Delegation nur der \u00bbdelegatedTo\u00ab-Qualifier eines Properties gesetzt werden. In Abbildung 1 ist dieser Qualifier auf den Wert <a href=\"http:\/\/host.docker.internal:8082\/heater\/targetTemperature\/last\">http:\/\/host.docker.internal:8082\/heater\/targetTemperature\/last<\/a> gesetzt \u2013 jede Anfrage an dieses Property wird also automatisch an die genannte URL delegiert und dadurch aufgel\u00f6st. Die Annahme hierbei ist, dass das Asset unter dem delegierten Endpunkt die Daten bereits in einem f\u00fcr das Teilmodell passenden Format bereitstellt. Sind Datentransformationen notwendig, dann ist die DataBridge eine sinnvolle Alternative. Was das genau bedeutet, wird im weiteren Verlauf dieses Artikels geschildert.<\/p>\n<p>&nbsp;<\/p>\n<h2>Device-Integration per Operation-Delegation<\/h2>\n<p>Oft bieten Assets Interaktionspunkte wie z. B. http\/REST Endpunkte an, \u00fcber die sich Konfigurationen vornehmen oder Aktionen ausl\u00f6sen lassen. Diese Endpunkte k\u00f6nnen ebenfalls \u00fcber einen Delegationsmechanismus mit Teilmodellen integriert werden. Analog zur Property-Delegation bietet BaSyx mit der <a href=\"https:\/\/wiki.eclipse.org\/BaSyx_\/_Documentation_\/_Components_\/_AAS_Server_\/_Features_\/_Operation_Delegation\">Operation-Delegation<\/a> ein einfach zu konfigurierendes Feature, das genau diesen Use Case adressiert. Ein an den VWS-Server \u00fcbermittelter Operationsaufruf kann also ebenfalls volltransparent delegiert werden. Dieses Feature erm\u00f6glicht denselben Vorteil wie die Property-Delegation: Designentscheidungen lassen sich einfach \u00e4ndern, ohne eine \u00fcbergeordnete Anpassung von Applikationen vornehmen zu m\u00fcssen. Die Konfiguration dieses Features gestaltet sich \u00e4hnlich zur Property-Delegation:<\/p>\n<p>Eine einfache Nutzung des \u00bbinvocationDelegation\u00ab-Qualifiers mit der Ziel-URL als Wert reicht. In Abbildung 1 ist dieser Wert auf \u00bb<a href=\"http:\/\/host.docker.internal:8082\/heater\/setTargetTemperature\/invoke\">http:\/\/host.docker.internal:8082\/heater\/setTargetTemperature\/invoke<\/a>\u00ab gesetzt \u2013 jeder Aufruf dieser Operation wird also automatisch an die genannte URL delegiert. Die sich aus diesem Feature ergebende Architektur ist in Abbildung 4 veranschaulicht.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10219\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild4-698x206.png\" alt=\"\" width=\"698\" height=\"206\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild4-698x206.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild4-400x118.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild4-768x227.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild4.png 857w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 4 \u2013 Operationsaufruf \u00fcber Operation-Delegation<\/p>\n<p>&nbsp;<\/p>\n<h2>Device-Integration mit der Eclipse BaSyx DataBridge<\/h2>\n<p>Wie bereits im Kapitel \u00bbIntegration per Property-Delegation\u00ab angesprochen, eignet sich der dort aufzeigte Integrationsmechanismus vor allem f\u00fcr einfache Integrationen. Sind komplexe Transformationen von Datenpunkten notwendig, eignet er sich nicht. Aber auch in diesen Szenarien kann BaSyx unterst\u00fctzen: Die L\u00f6sung liegt in der <a href=\"https:\/\/wiki.eclipse.org\/BaSyx_\/_Documentation_\/_Components_\/_DataBridge\">BaSyx DataBridge<\/a>.<\/p>\n<p>Bei der BaSyx DataBridge handelt es sich um eine einfach nutzbare Off-the-Shelf-Komponente, die als Docker Image auf <a href=\"https:\/\/hub.docker.com\/r\/eclipsebasyx\/databridge\">DockerHub<\/a> zu finden ist. Sie unterst\u00fctzt die Datenintegration mit einer Vielzahl an Protokollen wie OPC UA, http\/REST, MQTT, ActiveMQ oder auch Kafka. Zus\u00e4tzlich erm\u00f6glicht sie die Transformation der \u00fcber die Protokolle bereitgestellten Daten. Beispielsweise k\u00f6nnen JSON-Dateien \u00fcber einfache Ausdr\u00fccke in <a href=\"https:\/\/jsonata.org\/\">JSONata<\/a> \u2013 eine Transformationssprache f\u00fcr JSON \u2013 umgerechnet werden.<\/p>\n<p>Konkret unterst\u00fctzt die BaSyx DataBridge zwei Integrationsmuster:<\/p>\n<ul>\n<li>Zyklische Integration: Daten werden in regelm\u00e4\u00dfigen Abst\u00e4nden bzw. eventgetrieben abgefragt, transformiert und in die VWS integriert (-&gt; Push).<\/li>\n<li>On-Demand Delegation: Auf Anfrage des VWS-Servers hin wird ein Datenpunkt abgefragt, transformiert und zur\u00fcckgegeben (-&gt; Pull).<\/li>\n<\/ul>\n<p>Abbildung 5 stellt diese zwei Integrationsmuster gegen\u00fcber. Hauptunterschied hierbei ist der Kontrollfluss zwischen dem VWS-Server und der DataBridge.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10220\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild5-698x357.png\" alt=\"\" width=\"698\" height=\"357\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild5-698x357.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild5-400x205.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild5-768x393.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild5.png 858w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 5 &#8211; Gegen\u00fcberstellung der Integrationsmuster (a) Delegation und (b) zyklisches Update<\/p>\n<p>Im Beispiel des Heizelements kommt die DataBridge im Zuge der sek\u00fcndlichen Temperaturmesswertabfrage und der entsprechenden Transformation von Grad Fahrenheit in Grad Celsius sowie der Datenablage im \u00bbcurrentTemperature\u00ab-Property zum Einsatz. F\u00fcr diese Integration sind verschiedene Beschreibungen als Konfiguration der DataBridge notwendig. Folgende Beschreibungen sind dabei am wichtigsten:<\/p>\n<ul>\n<li>Beschreibung des MQTT-Endpunkts, der den Temperaturwert bereitstellt<\/li>\n<li>Beschreibung der Datentransformation in JSONata, die den Temperaturwert selektiert und in Grad Celsius \u00fcberf\u00fchrt<\/li>\n<li>Beschreibung des Teilmodell-Endpunkts und des Propertys, in dem die Daten abgelegt werden sollen<\/li>\n<li>Zusammenf\u00fchrung der einzelnen Elemente zu einer Datenintegrationsroute<\/li>\n<\/ul>\n<p>Im Folgenden werden die unterschiedlichen Konfigurationen aufgezeigt. Diese sind analog auch auf <a href=\"https:\/\/github.com\/eclipse-basyx\/basyx-java-examples\/tree\/main\/basyx.examples.deviceintegration\/src\/main\/resources\/databridge\">GitHub<\/a> verf\u00fcgbar.<\/p>\n<p>Der MQTT-Endpunkt wird wie folgt beschrieben:<\/p>\n<p style=\"padding-left: 40px;\"><em>{<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;uniqueId&#8220;: &#8222;temperatureSensor&#8220;,<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;serverUrl&#8220;: &#8222;host.docker.internal&#8220;,<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;serverPort&#8220;: 1884,<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;topic&#8220;: &#8222;heater\/temperature&#8220;<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>}<\/em><\/p>\n<p>Der <em>uniqueId<\/em>-Eintrag spezifiziert den Namen des Datenverarbeitungsknotens, der in der weiteren Integration genutzt wird. s<em>erverURL <\/em>&amp; s<em>erverPort<\/em> beschreiben den Zugriffspunkt, unter dem der MQTT-Broker auffindbar ist. Der Eintrag <em>topic<\/em> beschreibt das MQTT-Topic, unter dem die Temperaturdaten ver\u00f6ffentlicht werden.<\/p>\n<p>Im n\u00e4chsten Schritt wird die Datentransformation beschrieben. Die per MQTT versendeten JSON-Nachrichten sehen beispielsweise wie folgt aus:<\/p>\n<p style=\"padding-left: 40px;\"><em>{<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;temperature&#8220;: 32,<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>&#8222;timestamp&#8220;: 1674025471<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>}<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Um die Temperatur zu selektieren und von Grad Fahrenheit in Grad Celsius umzurechnen, ist ein anschlie\u00dfender JSONata-Ausdruck notwendig:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"padding-left: 40px;\"><em>$floor((temperature &#8211; 32) * 5 \/ 9)<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><em>$floor<\/em> ist dabei eine JSONata-Funktion, die den errechneten Wert auf die n\u00e4chste Ganzzahl abrundet.<\/p>\n<p>&nbsp;<\/p>\n<p>Die Datei mit diesem JSONata-Ausdruck wird \u00fcber folgende Konfiguration mit einem Routen-Eintrag verkn\u00fcpft:<\/p>\n<p style=\"padding-left: 40px;\"><em>[<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>{<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;uniqueId&#8220;: &#8222;temperatureTransformer&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;queryPath&#8220;: &#8222;temperatureTransformer.jsonata&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;inputType&#8220;: &#8222;JsonString&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;outputType&#8220;: &#8222;JsonString&#8220;<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>}<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>]<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Analog zur Endpunktbeschreibung von MQTT ist auch hier die <em>uniqueId<\/em> der Name des Datenverarbeitungsknoten. <em>queryPath<\/em> spezifiziert den Dateinamen, unter dem der vorherige JSONata-Ausdruck abgelegt ist. Der Eintrag <em>JsonString <\/em>f\u00fcr<em> inputType<\/em> &amp; <em>outputType <\/em>gibt an, dass ein JSON verarbeitet werden soll.<\/p>\n<p>Der n\u00e4chste Schritt beschreibt den Teilmodell-Endpunkt und das Ziel-Property \u00fcber folgende Konfiguration:<\/p>\n<p style=\"padding-left: 40px;\"><em>[<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>{<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;uniqueId&#8220;: &#8222;TemperatureSubmodel&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;submodelEndpoint &#8222;: &#8222;http:\/\/host.docker.internal:4001\/aasServer\/shells\/heaterAAS\/aas\/submodels\/ temperatureSensor \/submodel&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;idShortPath&#8220;: &#8222;currentTemperature&#8220;<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>}<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>]<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Der <em>uniqueId<\/em>-Eintrag hat auch hier dieselbe Bedeutung wie in den obigen Beschreibungen. \u00dcber <em>submodelEndpoint <\/em>wird die URL des Teilmodell-Endpunkts angegeben, der <em>idShortPath<\/em>-Eintrag verweist auf das konkret zu bef\u00fcllende Property.<\/p>\n<p>Final kombiniert eine weitere Konfiguration die einzelnen Datenverarbeitungsknoten zu einer Route. Dies geschieht wie folgt:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"padding-left: 40px;\"><em>[<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>{<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;datasource&#8220;: &#8222;temperatureSensor&#8220;,<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;transformers&#8220;: [&#8222;temperatureTransformer&#8220;],<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;datasinks&#8220;: [&#8222;TemperatureSubmodel&#8220;],<\/em><\/p>\n<p style=\"padding-left: 120px;\"><em>&#8222;trigger&#8220;: &#8222;event&#8220;<\/em><\/p>\n<p style=\"padding-left: 80px;\"><em>}<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>]<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Die DataBridge erstellt dann anhand der verschiedenen <em>uniqueIds <\/em>die Route von der <em>datasource <\/em>\u00fcber die <em>transformers <\/em>zum <em>datasink. <\/em>Da es sich um eine eventgetriebene Route handelt, ist als <em>trigger <\/em>der Wert <em>event <\/em>angegeben. Auf GitHub finden sich auch Beispiele f\u00fcr eine <a href=\"https:\/\/github.com\/eclipse-basyx\/basyx-databridge\/tree\/main\/basyx.components.databridge.examples\/basyx.components.databridge.examples.httppolling-jsonata-aas\/src\/main\/resources\">zeitgetriebene Integration<\/a> und eine <a href=\"https:\/\/github.com\/eclipse-basyx\/basyx-databridge\/tree\/main\/basyx.components.databridge.examples\/basyx.components.databridge.examples.httppolling-jsonata-delegator\/src\/main\/resources\">delegierte<\/a> Integration mittels der DataBridge.<\/p>\n<p>&nbsp;<\/p>\n<h2>Einfache Device-Integration mittels der BaSyx Off-the-Shelf-Komponenten<\/h2>\n<p>Wurden die zuvor genannten Konfigurationen vorgenommen, steht dem Start der VWS-Infrastruktur (sprich VWS Server, VWS Registry, VWS GUI), der DataBridge sowie des simulierten Assets nichts mehr im Wege. Im Beispiel l\u00e4sst sich daf\u00fcr <em>docker compose<\/em> einsetzen. Mehr Infos dazu stehen ebenfalls \u00fcber GitHub bereit.<\/p>\n<p>Nach dem Start der kompletten Container-Landschaft ergibt sich das in Abbildung 1 dargestellte Gesamtsystem.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10221\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild6-698x465.png\" alt=\"\" width=\"698\" height=\"465\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild6-698x465.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild6-400x266.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild6-768x511.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild6.png 897w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 6 &#8211; Containerlandschaft der Device-Integration<\/p>\n<p>&nbsp;<\/p>\n<p>Das VWS-GUI ist danach per <a href=\"http:\/\/localhost:3000\">http:\/\/localhost:3000<\/a> im Browser aufrufbar und in Abbildung 7 dargestellt. Nach Konfiguration der Registry-URL als <a href=\"http:\/\/localhost:4000\/registry\">http:\/\/localhost:4000\/registry<\/a> sowie Aktivierung des Auto-Syncs im GUI per Button oben rechts ist ein direkter Zugriff auf die Verwaltungsschale mit ihren Teilmodellen m\u00f6glich.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-10222\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild7-698x319.png\" alt=\"\" width=\"698\" height=\"319\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild7-698x319.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild7-400x183.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild7-768x351.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/02\/Bild7.png 1207w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p>Abbildung 7 &#8211; \u00dcberblick \u00fcber das VWS GUI<\/p>\n<p>\u00dcber die <em>setTargetTemperature<\/em>-Operation im <em>heaterControl<\/em>-Teilmodell kann nun eine Zieltemperatur in Grad Fahrenheit eingestellt werden, die danach im <em>lastTargetTemperature<\/em>-Property abrufbar ist. Durch Auswahl des <em>currentTemperature<\/em>-Property kann per Mausklick im <em>temperatureSensor<\/em>-Teilmodell live verfolgt werden, wie die Temperatur eingeregelt wird.<\/p>\n<p>&nbsp;<\/p>\n<h2>Zusammenfassung &amp; Ausblick: Nutzen und Zukunft der BaSyx DataBridge<\/h2>\n<p>Das in diesem Blog-Beitrag gezeigte Beispiel veranschaulicht, wie Eclipse BaSyx und die BaSyx DataBridge die Device-Integration mittels Verwaltungsschalen enorm vereinfachen k\u00f6nnen \u2013 und das ganz ohne jegliche Programmierkenntnisse. \u00dcber die Bereitstellung der DataBridge als Docker Image l\u00e4sst sich die gezeigte Device-Integration ganz einfach nachvollziehen und als Blaupause f\u00fcr eigene Use Cases nutzen. Zus\u00e4tzlich zeigt das Beispiel auf, welche weiteren Mehrwerte die OTS-Komponenten von BaSyx bieten.<\/p>\n<p>Zuk\u00fcnftige Updates der DataBridge werden weitere Protokolle integrieren, wie z.B. Automatisierungsbusse. Zus\u00e4tzlich wird die Spezifikation des <em>Asset Interfaces Description <\/em>Teilmodells der IDTA nach Release zur Konfiguration der DataBridge genutzt. In dieser Spezifikation werden zuk\u00fcnftig mehrere Teilmodelle definiert, die die Kommunkationsendpunkte sowie notwendige Datentransformationen der Assets (wie etwa Ger\u00e4te) beschreiben.<\/p>\n<p>Die verschiedenen Features sowie die enge Verzahnung der einzelnen BaSyx-Komponenten erm\u00f6glichen eine schnelle Umsetzung von Use Cases. BaSyx erlaubt es seinen Anwender*innen somit also, den Fokus auf die Mehrwerte ihrer Use Cases zu richten \u2013 die Infrastrukturarbeit \u00fcbernimmt BaSyx.<\/p>\n<div class=\"info-box\">\n<p>Sie haben noch Fragen und\/oder wollen noch mehr zum Thema \u00bbDevice-Integration mittels der Eclipse BaSyx DataBridge\u00ab erfahren? \u2013 <a href=\"mailto:%20frank.schnicke@iese.fraunhofer.de\">Melden Sie sich gerne bei uns!<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Lesen Sie au\u00dferdem auch gerne unsere anderen Blog-Artikel zu Eclipse BaSyx:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/industry-4-0-it-infrastructure-for-digital-twins\/\">Building the Industrie 4.0 IT Infrastructure for Digital Twins<\/a><\/li>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/industrie-4-0-it-infrastructure-for-digital-twins-part2\/\">Implementing the Industrie 4.0 IT Infrastructure for Digital Twins<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Digitale Zwillinge sind eine Schl\u00fcsseltechnologie zur Zielerreichung von Industrie 4.0. Sie dienen als vereinheitlichte virtuelle Repr\u00e4sentation von Assets wie Ger\u00e4ten, Produkten oder Sensoren und deren Eigenschaften. Die Nutzung von Konzepten wie der Verwaltungsschale (kurz: VWS) erm\u00f6glicht die Schaffung einer standardisierten&#8230;<\/p>\n","protected":false},"author":76,"featured_media":10291,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[211,94],"tags":[537,120,477],"coauthors":[317],"class_list":["post-10211","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitale-transformation","category-industrie-4-0","tag-basyx","tag-digitaler-zwilling","tag-virtual-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Device-Integration mit Eclipse BaSyx einfach machen<\/title>\n<meta name=\"description\" content=\"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Device-Integration mit Eclipse BaSyx einfach machen\" \/>\n<meta property=\"og:description\" content=\"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/\" \/>\n<meta property=\"og:site_name\" content=\"Fraunhofer IESE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/FraunhoferIESE\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-14T13:24:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-26T10:02:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"702\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Frank Schnicke\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:site\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Frank Schnicke\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Frank Schnicke\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/\"},\"author\":{\"name\":\"Frank Schnicke\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/6508db45546b3cce421931dc38d4a8f1\"},\"headline\":\"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen\",\"datePublished\":\"2023-03-14T13:24:18+00:00\",\"dateModified\":\"2024-02-26T10:02:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/\"},\"wordCount\":2310,\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Device-Integration.jpg\",\"keywords\":[\"BaSyx\",\"Digitaler Zwilling\",\"Virtual Engineering\"],\"articleSection\":[\"Digitale Transformation\",\"Industrie 4.0\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/\",\"name\":\"Device-Integration mit Eclipse BaSyx einfach machen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Device-Integration.jpg\",\"datePublished\":\"2023-03-14T13:24:18+00:00\",\"dateModified\":\"2024-02-26T10:02:20+00:00\",\"description\":\"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Device-Integration.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Device-Integration.jpg\",\"width\":1400,\"height\":702,\"caption\":\"Device-Integration mit BaSyx\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/device-integration-mit-basyx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"name\":\"Fraunhofer IESE\",\"description\":\"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\",\"name\":\"Fraunhofer IESE\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"width\":183,\"height\":50,\"caption\":\"Fraunhofer IESE\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/FraunhoferIESE\\\/\",\"https:\\\/\\\/x.com\\\/FraunhoferIESE\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/fraunhoferiese\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/FraunhoferIESE\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/6508db45546b3cce421931dc38d4a8f1\",\"name\":\"Frank Schnicke\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/schnicke-frank_320-250_5D3_9948-96x96.jpg22964df4fa0931b3ee0c148d30b634ee\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/schnicke-frank_320-250_5D3_9948-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/schnicke-frank_320-250_5D3_9948-96x96.jpg\",\"caption\":\"Frank Schnicke\"},\"description\":\"Frank Schnicke ist Leiter der Abteilung Digital Twin Engineering am Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering. Die von ihm geleitete Abteilung konzentriert sich auf die Bereitstellung skalierbarer L\u00f6sungen f\u00fcr die Arbeit mit der Asset Administration Shell, die sowohl in missionskritischen Bereichen als auch in AAS-Datenr\u00e4umen eingesetzt werden k\u00f6nnen. Au\u00dferdem ist er Projektleiter f\u00fcr Eclipse BaSyx und Eclipse AAS4J, die eine einfache und nachhaltige Implementierung von AAS-basierten Anwendungsf\u00e4llen erm\u00f6glichen.\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/author\\\/frank-schnicke\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Device-Integration mit Eclipse BaSyx einfach machen","description":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/","og_locale":"de_DE","og_type":"article","og_title":"Device-Integration mit Eclipse BaSyx einfach machen","og_description":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.","og_url":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/","og_site_name":"Fraunhofer IESE","article_publisher":"https:\/\/www.facebook.com\/FraunhoferIESE\/","article_published_time":"2023-03-14T13:24:18+00:00","article_modified_time":"2024-02-26T10:02:20+00:00","og_image":[{"width":1400,"height":702,"url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","type":"image\/jpeg"}],"author":"Frank Schnicke","twitter_card":"summary_large_image","twitter_creator":"@FraunhoferIESE","twitter_site":"@FraunhoferIESE","twitter_misc":{"Verfasst von":"Frank Schnicke","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten","Written by":"Frank Schnicke"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#article","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/"},"author":{"name":"Frank Schnicke","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/6508db45546b3cce421931dc38d4a8f1"},"headline":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen","datePublished":"2023-03-14T13:24:18+00:00","dateModified":"2024-02-26T10:02:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/"},"wordCount":2310,"publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","keywords":["BaSyx","Digitaler Zwilling","Virtual Engineering"],"articleSection":["Digitale Transformation","Industrie 4.0"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/","name":"Device-Integration mit Eclipse BaSyx einfach machen","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#primaryimage"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","datePublished":"2023-03-14T13:24:18+00:00","dateModified":"2024-02-26T10:02:20+00:00","description":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen! \u2013 Ein \u00bbHow to\u00ab geben wir im Fraunhofer IESE-Blog an die Hand.","breadcrumb":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#primaryimage","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","width":1400,"height":702,"caption":"Device-Integration mit BaSyx"},{"@type":"BreadcrumbList","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/device-integration-mit-basyx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.iese.fraunhofer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Device-Integration mit Verwaltungsschalen und Eclipse BaSyx einfach machen"}]},{"@type":"WebSite","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","name":"Fraunhofer IESE","description":"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering","publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iese.fraunhofer.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization","name":"Fraunhofer IESE","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","width":183,"height":50,"caption":"Fraunhofer IESE"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/FraunhoferIESE\/","https:\/\/x.com\/FraunhoferIESE","https:\/\/www.linkedin.com\/company\/fraunhoferiese\/","https:\/\/www.youtube.com\/c\/FraunhoferIESE"]},{"@type":"Person","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/6508db45546b3cce421931dc38d4a8f1","name":"Frank Schnicke","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/04\/schnicke-frank_320-250_5D3_9948-96x96.jpg22964df4fa0931b3ee0c148d30b634ee","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/04\/schnicke-frank_320-250_5D3_9948-96x96.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/04\/schnicke-frank_320-250_5D3_9948-96x96.jpg","caption":"Frank Schnicke"},"description":"Frank Schnicke ist Leiter der Abteilung Digital Twin Engineering am Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering. Die von ihm geleitete Abteilung konzentriert sich auf die Bereitstellung skalierbarer L\u00f6sungen f\u00fcr die Arbeit mit der Asset Administration Shell, die sowohl in missionskritischen Bereichen als auch in AAS-Datenr\u00e4umen eingesetzt werden k\u00f6nnen. Au\u00dferdem ist er Projektleiter f\u00fcr Eclipse BaSyx und Eclipse AAS4J, die eine einfache und nachhaltige Implementierung von AAS-basierten Anwendungsf\u00e4llen erm\u00f6glichen.","url":"https:\/\/www.iese.fraunhofer.de\/blog\/author\/frank-schnicke\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2023\/03\/Device-Integration.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/10211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/comments?post=10211"}],"version-history":[{"count":10,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/10211\/revisions"}],"predecessor-version":[{"id":10256,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/10211\/revisions\/10256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media\/10291"}],"wp:attachment":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media?parent=10211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/categories?post=10211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/tags?post=10211"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/coauthors?post=10211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}