blob: 15c87cefef98b072bb85238bb6c7e22126295bd3 [file] [log] [blame]
<!DOCTYPE html>
<html data-n-head="" data-n-head-ssr>
<head>
<meta data-n-head="true" charset="utf-8"><meta data-n-head="true" content="width=device-width,initial-scale=1" name="viewport"><meta data-n-head="true" content="Eclipse Unide: Understand Industry devices" name="description" data-hid="description"><title data-n-head="true">Eclipse unide - Specification for process messages</title><link href="/unide/favicon.ico" rel="icon" data-n-head="true" type="image/x-icon"><base href="/unide/"><link href="/unide/files/app.afe60790845d32718c70d2bd3d6005bc.css" rel="stylesheet"><style data-vue-ssr-id="d5b0f30e:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}header.nav-header{box-shadow:0 3px 5px 0 #ddd;margin-bottom:2em;padding-bottom:0}header.nav-header nav.navbar{display:flex;align-items:flex-end;border-bottom:5px solid #50237f}header.nav-header nav.navbar .navbar-burger{margin-left:0;height:auto}header.nav-header nav.navbar .navbar-burger span{height:2px;width:25px}header.nav-header nav.navbar .navbar-burger span:first-child{margin-top:-9px}header.nav-header nav.navbar .navbar-burger span:nth-child(3){margin-top:7px}header.nav-header nav.navbar .navbar-brand{align-self:stretch}header.nav-header nav.navbar .navbar-brand .navbar-item img{max-height:none;width:240px}header.nav-header nav.navbar .navbar-item,header.nav-header nav.navbar .navbar-link,header.nav-header nav.navbar .navbar-link a{color:#a7a7a7}header.nav-header nav.navbar .navbar-item.is-active,header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a.is-active,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link.is-active,header.nav-header nav.navbar .navbar-link:hover{color:#78be20}header.nav-header nav.navbar .navbar-item:hover,header.nav-header nav.navbar .navbar-link a:hover,header.nav-header nav.navbar .navbar-link:hover{background-color:transparent;text-decoration:none;font-weight:700}header.nav-header nav.navbar .navbar-item .dropdown-trigger,header.nav-header nav.navbar .navbar-link .dropdown-trigger,header.nav-header nav.navbar .navbar-link a .dropdown-trigger{display:flex}@media screen and (min-width:1024px){.nav-header .container>.navbar .navbar-menu{margin-right:1rem}}@media screen and (max-width:1007px){header.nav-header nav.navbar{flex-direction:column;align-items:stretch}header.nav-header nav.navbar .navbar-menu{order:1;box-shadow:none}}@media screen and (min-width:1008px){nav.navbar .container .navbar-menu{height:40px}}</style><style data-vue-ssr-id="0d7afdaa:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.specification .card-content{padding:.5em}.specification img.is-centered{max-width:100%;margin-left:auto;margin-right:auto;display:block}.specification .property.card{margin-bottom:2em}.specification .property.card .card-content{font-size:.875em}.specification .property.card .card-content pre[class*=language-]{width:100%}.specification .property.card .card-content .field-body{display:block}.specification .property.card .card-content .field-body>div:not(:last-child){margin-bottom:.75rem}.specification .property.card>.card-header{background-color:#f5f5f5}.specification .property.card>.card-header p{margin-bottom:0}.specification .property.card>.card-header .card-header-icon{text-decoration:none}.specification #messageDetail.columns{margin-top:3em;border-bottom:2px solid #50237f;margin-bottom:2em}.specification #messageDetail.columns>.column a{font-size:1.2rem;color:#a7a7a7;display:block;text-decoration:none}.specification #messageDetail.columns>.column a:hover{color:#78be20;font-weight:700}.specification #messageDetail.columns>.column.nuxt-link-active a{color:#78be20}</style><style data-vue-ssr-id="188b52d2:0">.schemaDetail a{text-decoration:none}.schemaDetail .property ul{list-style-type:disc;padding-left:1em;margin-left:0;margin-top:0}</style><style data-vue-ssr-id="52cedc5e:0">@keyframes spinAround{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.card.collapsibleCard>header{cursor:pointer;background-color:#f5f5f5;border-bottom:1px solid hsla(0,0%,4%,.1)}.card.collapsibleCard>header .card-header-icon{text-decoration:none}.card.collapsibleCard>header .card-header-title{font-weight:400}.card.collapsibleCard>header p{margin-bottom:0}.card.collapsibleCard.collapsed header{border-bottom:none}.card.collapsibleCard>div.collapsing{position:relative;height:0;overflow:hidden;display:block;transition-property:height;transition-duration:.35s;transition-timing-function:ease}</style>
</head>
<body data-n-head="">
<div id="__nuxt" data-server-rendered="true"><div class="nuxt-progress" style="width:0%;height:2px;background-color:#50237f;opacity:0"></div><div id="__layout"><div><header class="nav-header"><div class="container"><nav class="navbar"><div class="navbar-menu" id="navMenu"><div class="navbar-start"><a href="/unide/" class="navbar-item">
Home
</a><a href="/unide/proposal" class="navbar-item">
Proposal
</a><a href="/unide/specification" class="navbar-item is-active">
Specification
</a><a href="/unide/blog" class="navbar-item">
Blog Archives
</a><a href="/unide/faq" class="navbar-item">
FAQ
</a></div></div><div class="navbar-brand"><div class="navbar-burger burger"><span></span><span></span><span></span></div><a href="/unide/" class="navbar-item nuxt-link-active"><img src="logo.svg"></a></div></nav></div></header><div class="container"><div class="header clearfix"></div><div class="specification"><div class="content"><h1><a id="PPMP-Specification" title="PPMP Specification"></a>
PPMP Specification
</h1><h2>Rationale</h2><p>
Noticeably in recent years, there is a continuous increase in demand, price pressure and complexity in manufacturing. Things need to move faster, be more flexible, and fulfill higher quality standards forcing manufacturers to optimize their processes.
<p>
Production facilities and their performance have a huge impact on the overall performance of manufacturing processes. However, to identify bottlenecks and possibilities for improvements detailed data from machines are required.
<p>
Such data is surely provided by machines either via modern protocols such as OPC UA or via proprietary access methods but it is not provided in a common and easily accessible format, which can be used to do performance analysis and optimization. This renders holistic process improvement efforts infeasible for many, especially smaller organizations.
<p>
The Production Performance Management Protocol (PPMP) specifies a format that allows to capture data that is required to do performance analysis of production facilities. It allows monitoring backends to collect and evaluate key metrics of machines in the context of a production process. It is doing that by allowing to relate the machine status with currently produced parts.
<p>
The specification is structured into three payload formats: Measurement payload, message payload and process payload. The Measurement payload contains measurements from machines such as the temperature of a machine at a specific point in time together with the currently produced part. The message payload contains arbitrary messages sent by a machine, e.g. alerts or the like. A process message consists of information about a discrete e.g. tightening or welding processes with all their characterising data which are needed to describe and analyze it.
<p>
The default way of transporting the json payload is via http to allow for an easy integration into various backend systems. Other transportation methods are possible and welcome.
</div><div class="columns" id="messageDetail"><div class="column"><a href="/unide/specification#messageDetail">Overview</a></div><div class="column"><a href="/unide/specification/v2/machine-message#messageDetail">Machine Message</a></div><div class="column"><a href="/unide/specification/v2/measurement-message#messageDetail">Measurement Message</a></div><div class="column"><a href="/unide/specification/v2/process-message#messageDetail">Process Message</a></div></div><div class="process-message content"><h1><a id="Process-Payload" title="Process Payload"></a>
Process Payload
</h1><p>The process message is the format to exchange data out of discrete processes. It also allows to transport process information, part information and measurement data for each phase of the process.</p><img src="images/specification/v2/processPayload.svg" alt="Class diagram of the process data payload" title="Class diagram of the process data payload" class="is-center"><div class="schemaDetail is-loading" id="schema-detail"><div class="accordion"><!----><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
Minimal message example
</p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
<span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/process-message#v2"</span><span class="token punctuation">,</span>
<span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.888Z"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.988Z"</span><span class="token punctuation">,</span>
<span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">26</span><span class="token punctuation">,</span>
<span class="token number">23</span><span class="token punctuation">,</span>
<span class="token number">24</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">52.4</span><span class="token punctuation">,</span>
<span class="token number">46.32</span><span class="token punctuation">,</span>
<span class="token number">44.2432</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span></code></pre></div></div></div><div class="card collapsibleCard collapsed"><header class="card-header"><p class="card-header-title">
Process message example
</p><a class="card-header-icon"><span class="icon"><i class="fa fa-angle-up"></i></span></a></header><div style="display:none"><div class="card-content"><pre class="language-json"><code class="language-json"><span class="token punctuation">{</span>
<span class="token property">"content-spec"</span><span class="token operator">:</span> <span class="token string">"urn:spec://eclipse.org/unide/process-message#v2"</span><span class="token punctuation">,</span>
<span class="token property">"device"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"deviceID"</span><span class="token operator">:</span> <span class="token string">"a4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
<span class="token property">"operationalStatus"</span><span class="token operator">:</span> <span class="token string">"normal"</span><span class="token punctuation">,</span>
<span class="token property">"metaData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"swVersion"</span><span class="token operator">:</span> <span class="token string">"2.0.3.13"</span><span class="token punctuation">,</span>
<span class="token property">"swBuildId"</span><span class="token operator">:</span> <span class="token string">"41535"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"part"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"SINGLE"</span><span class="token punctuation">,</span>
<span class="token property">"partTypeID"</span><span class="token operator">:</span> <span class="token string">"F00VH07328"</span><span class="token punctuation">,</span>
<span class="token property">"partID"</span><span class="token operator">:</span> <span class="token string">"420003844"</span><span class="token punctuation">,</span>
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"NOK"</span><span class="token punctuation">,</span>
<span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"HUH289"</span><span class="token punctuation">,</span>
<span class="token property">"metaData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"toolId"</span><span class="token operator">:</span> <span class="token string">"32324-432143"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"process"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"externalProcessId"</span><span class="token operator">:</span> <span class="token string">"b4927dad-58d4-4580-b460-79cefd56775b"</span><span class="token punctuation">,</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.888Z"</span><span class="token punctuation">,</span>
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"NOK"</span><span class="token punctuation">,</span>
<span class="token property">"shutoffPhase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
<span class="token property">"program"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Programm 1"</span><span class="token punctuation">,</span>
<span class="token property">"lastChangedDate"</span><span class="token operator">:</span> <span class="token string">"2002-05-30T09:30:10.123+02:00"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"shutoffValues"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:11.888Z"</span><span class="token punctuation">,</span>
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
<span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">26</span><span class="token punctuation">,</span>
<span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">22</span><span class="token punctuation">,</span>
<span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">25</span><span class="token punctuation">,</span>
<span class="token property">"lowerWarn"</span><span class="token operator">:</span> <span class="token number">23</span><span class="token punctuation">,</span>
<span class="token property">"target"</span><span class="token operator">:</span> <span class="token number">24</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token number">50</span><span class="token punctuation">,</span>
<span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">52</span><span class="token punctuation">,</span>
<span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">48</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"metaData"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"maxDuration"</span><span class="token operator">:</span> <span class="token string">"30min"</span><span class="token punctuation">,</span>
<span class="token property">"escalation"</span><span class="token operator">:</span> <span class="token string">"shift leader"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"measurements"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:01.988Z"</span><span class="token punctuation">,</span>
<span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 1"</span><span class="token punctuation">,</span>
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"heating up"</span><span class="token punctuation">,</span>
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
<span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"0000 EE01"</span><span class="token punctuation">,</span>
<span class="token property">"limits"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token number">4444</span><span class="token punctuation">,</span>
<span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token number">44</span><span class="token punctuation">,</span>
<span class="token property">"upperWarn"</span><span class="token operator">:</span> <span class="token number">2222</span><span class="token punctuation">,</span>
<span class="token property">"lowerWarn"</span><span class="token operator">:</span> <span class="token number">46</span><span class="token punctuation">,</span>
<span class="token property">"target"</span><span class="token operator">:</span> <span class="token number">35</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"upperError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">27</span><span class="token punctuation">,</span>
<span class="token number">24</span><span class="token punctuation">,</span>
<span class="token number">25</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"lowerError"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">25</span><span class="token punctuation">,</span>
<span class="token number">22</span><span class="token punctuation">,</span>
<span class="token number">23</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">"specialValues"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token number">12</span><span class="token punctuation">,</span>
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"turning point"</span><span class="token punctuation">,</span>
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
<span class="token property">"force"</span><span class="token operator">:</span> <span class="token number">50</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">30</span><span class="token punctuation">,</span>
<span class="token number">36</span><span class="token punctuation">,</span>
<span class="token number">42</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"force"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">26</span><span class="token punctuation">,</span>
<span class="token number">23</span><span class="token punctuation">,</span>
<span class="token number">24</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"pressure"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">52.4</span><span class="token punctuation">,</span>
<span class="token number">46.32</span><span class="token punctuation">,</span>
<span class="token number">44.2432</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"temperature"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">45.4243</span><span class="token punctuation">,</span>
<span class="token number">46.42342</span><span class="token punctuation">,</span>
<span class="token number">44.2432</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">"ts"</span><span class="token operator">:</span> <span class="token string">"2018-04-27T08:52:02.318Z"</span><span class="token punctuation">,</span>
<span class="token property">"phase"</span><span class="token operator">:</span> <span class="token string">"phase 2"</span><span class="token punctuation">,</span>
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"processing"</span><span class="token punctuation">,</span>
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token string">"OK"</span><span class="token punctuation">,</span>
<span class="token property">"series"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">"$_time"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">0</span><span class="token punctuation">,</span>
<span class="token number">23</span><span class="token punctuation">,</span>
<span class="token number">24</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">"temperature"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token number">49.2</span><span class="token punctuation">,</span>
<span class="token number">48.8</span><span class="token punctuation">,</span>
<span class="token number">50</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span></code></pre></div></div></div></div><h1><a id="v2/process-schema-detail" title="v2/process Fields definition"></a>
Fields definition
</h1></div></div></div></div><footer class="footer"><div class="container"><div class="content has-text-centered"><ul><span><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></span><span><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></span><span><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></span><span><a href="https://eclipse.org/security/">Security reports</a></span><span><a href="http://www.eclipse.org/legal/">Legal</a></span></ul></div></div></footer></div></div></div><script type="text/javascript">window.__NUXT__={layout:"default",data:[{isStatic:!0},{}],error:null,state:{},serverRendered:!0}</script><script defer src="/unide/files/manifest.feb13c258fe68de31509.js"></script><script defer src="/unide/files/layouts_default.19e29c13ea8f8ffe3260.js"></script><script defer src="/unide/files/pages_specification.019a3d73137721bf46a2.js"></script><script defer src="/unide/files/pages_specification_v2_process-message.4c628f89a8a036d97abc.js"></script><script defer src="/unide/files/vendor.3960437a749191406982.js"></script><script defer src="/unide/files/app.ac89eaaf53fc974d7229.js"></script>