webpackJsonp([9],{"/TYz":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=i("iA8U"),s=!1;var n=function(e){s||i("DDjm")},o=i("VU/8")(null,a.a,!1,n,null,null);o.options.__file="pages\\index.vue",t.default=o.exports},DDjm:function(e,t,i){var a=i("Kc09");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);i("rjj0")("24fa40f9",a,!1)},Kc09:function(e,t,i){(e.exports=i("YHym")(!1)).push([e.i,".home h2{margin-top:1rem}.home .card{max-width:33%;margin:0 1rem 1rem}.home .card .card-content{padding:.5rem;font-size:.75rem}.home .card.is-pulled-left{margin-left:0}.home .card.is-pulled-right{margin-right:0}.home .card.is-pulled-right .card-content{text-align:right}",""])},iA8U:function(e,t,i){"use strict";var a=function(){var e=this.$createElement;this._self._c;return this._m(0)};a._withStripped=!0;var s={render:a,staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"home"},[t("div",[t("h1",{staticClass:"title is-3"},[this._v("\n      Understand Industry devices\n    ")]),t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/languages.png",alt:"Overview Languages",title:"Overview Languages"}})])]),t("div",{staticClass:"card-content"},[this._v("Languages of the world")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n      Imagine the following: You go on vacation to a foreign country and want to get by. Usually you will neither have the time nor the resources to learn a new language for each trip. Luckily this is not necessary. A handful of simple phrases such as "),t("i",[this._v("hello")]),this._v(", "),t("i",[this._v("I am hungry")]),this._v(", etc. are already sufficient to cope with many situations. To have such phrases at hand you don’t need to be fluent in a language, a mini phrase book will already cover a good portion. Thus, to master common situations in different languages you will be well served by a collection of mini phrase books in different languages. \n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/machines.jpg",alt:"EDM machines",title:"EDM machines"}})])]),t("div",{staticClass:"card-content"},[this._v("Machines in production")])]),t("p",{staticClass:"is-clearfix"},[this._v("\n    A similar experience we face in Industry 4.0: Imagine you are a system integrator, you want to realize a monitoring application for plants of a manufacturer and, since the Eclipse iot stack realizes a good portion of functionality you need to implement, you want to build your application on top of it. It would really help you if you can communicate with the machines on a simple, commonly understood protocol that is easily processible by the existing stack. However, there are a lot of different machines out there, using a lot of different languages and accents. Older machines especially do not speak new protocols (e.g. OPC-UA). Yet, we need to understand how to monitor their condition or interpret specific measurements."),t("br"),this._v("\n    A simple approach to send and understand such industry-specific content implemented for multiple systems would ease the use of the existing Eclipse iot stack and thereby help a lot on the way to a connected industry.\n    ")])]),t("div",[t("div",{staticClass:"card is-pulled-right"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/analysis.jpg",alt:"Cooperation",title:"Cooperation"}})])]),t("div",{staticClass:"card-content"},[this._v("Collaboration with partner")])]),t("h2",{staticClass:"title is-4"},[this._v("Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(")")]),t("p",{staticClass:"is-clearfix"},[this._v("\n    Through hands-on experience and collaboration with customers and partners we learned which information is key in understanding industry devices. For example, when sending measurements, the currently produced part or lot number together with machine identification are crucial to get any useful interpretation out of the information."),t("br"),this._v("\n    We started to capture this information in a simple payload specification and just like in the introducing language example where you can use phrases via phone, letter or in person, the payload is meant to be sent over different protocols (REST, MQTT, AMQP). This payload is the Production Performance Management Protocol ("),t("i",[this._v("PPMP")]),this._v(").\n    ")]),t("div",{staticClass:"card is-pulled-left"},[t("div",{staticClass:"card-image"},[t("figure",{staticClass:"image"},[t("img",{attrs:{src:"images/eclipse-426x100.png",alt:"Eclipse logo",title:"Eclipse logo"}})])])]),t("p",[this._v("\n    In order to, first, leverage the Eclipse IoT stack in Industry 4.0 scenarios and, second, build a lively community around the specification, we consider the Eclipse iot working group as the premier place to host Unide. \n    ")])])])}]};t.a=s}});