AutomationML Conference 2026

PPR as a boundary object
between MBSE and AutomationML

Two communities.
One shared structure.

David Hoffmann

Otto von Guericke University Magdeburg

two communities · one interface
Systems modeling standard

SysML v2

.sysml Native constructs
  • Usagepart
  • Definitionpart def
  • Relationsflow · perform · allocation · succession
Shared structure

PPR

  • Product
  • Process
  • Resource
Production engineering

AutomationML

.aml CAEX constructs
  • UsageInternalElement
  • DefinitionRoleClass
  • RelationsExternalInterface + InternalLink
Boundary object Shared structure. Local meaning.
after Star & Griesemer, 1989
02 · Guess the standard02 · The reveal

Which standard
is it?
It’s
SysML V2!

“Next-generation systems modeling with improved precision, automation, and interoperability for modern engineering.”

OMG · SysML v2

03 · Let's investigate

Eight years, next door.

M
Model-based systems engineeringThe system model carries engineering intent.
  • requirements
  • behaviour
  • architecture
S
Systems Modeling LanguageA standard language used within MBSE.
  • graphical notation
  • UML profile
  • adopted 2006
v2
A ground-up redesignNew semantics, notation and tool access.
  • KerML
  • textual + graphical
  • API & Services
SysML v2 programme2017–2026

SysML v2 RFP issued

API & Services RFP

Beta specifications

Three specifications adopted

Certification launched

04 · The room next door

The room next door operates at another scale.

Community
46
AutomationML member organisations
28,000
INCOSE members, 88 countries
AutomationML · −16%
INCOSE CAB · +19%

Different membership models; the organisational trend still runs in opposite directions.

Approximate annual dues base
≈€100k
AutomationML
≈$5m
INCOSE
AutomationML INCOSE

Order-of-magnitude estimate from published membership counts and fee schedules.

Key message: INCOSE — the organisation behind SysML v2 — was able to scale where the AutomationML association was not.

05 · The reversal

What SysML v2 does not fully provide (yet)

SysML v2 Language
+ API
the technical core
SysML v2 today

Elements carry IDs in a repository. Keeping one object recognisable across different tools and round trips is not yet settled practice.

A kernel and a notation: the grammar. The domain vocabulary a receiving tool can act on is left to each project.

No worked-out account of how a plant gets engineered: who models what, in which order, handing over to whom.

A healthy open-source reference implementation — not yet a tool chain a production engineer opens on a Monday morning.

AutomationML already brings

IDs that survive export and re-import between engineering tools — round-trip engineering, not file conversion.

Role class, interface class and system unit class libraries, the DMI library among them — agreed, reusable domain meaning.

Twenty years of plant-engineering handovers between tools — ECAD to PLC in AR APC is one of them.

Editors, SDKs and validators that production engineers already work with.

06 · The concept

Boundary object

Star & Griesemer · 1989 · Social Studies of Science

“Plastic enough to adapt to local needs … yet robust enough to maintain a common identity across sites.”

C1 Shared structure

Something recognisable survives the crossing.

C2 Local interpretation

Each side reads it its own way.

C3 Standardised methods

A repeatable route across. Not a meeting.

We have built one before

AutomationML's own success story. One agreed structure; electrical design and control engineering each read it their own way.

  • C1
  • C2
  • C3

Not one merged model.A smaller agreement.

07 · Bigger than SysML v2

The question is bigger than SysML v2

Arndt's keynote put liaison on this conference's agenda. Here is the version of that question I would keep.

The relationships exist. The slot on each one is what is empty.

A liaison tells us who to call.

A boundary object tells us what to work on together.

  • What is the object we share with the OPC Foundation?
  • What is the object we share with NAMUR?
  • What is the object we share with DEXPI?
  • What is the object we share with the systems-engineering community?

We ask how they should use AutomationML. The better question is what they already have that we should be reading.Keep the models. Name the shared object. Build the crossing.

08 · The proposition

For SysML v2, I have a candidate: PPR

Three reasons it is the right size for a boundary.

01

It is already ours

In the modelling core of AutomationML since year three. Not an import.

product process resource three views, one plant — linked, not merged
02

It is already intelligible there

Native constructs on both sides. Nobody has to invent a concept.

item panel action weld joint set item body side part robot RB-10 perform
03

It is small enough to share

Neither community adopts the other’s metamodel.

.aml CAEX .sysml SysML v2 PPR one model · two conformant files
Hamza Bassam Co-Chair, INCOSE Sustainability Working Group First contact with AutomationML.

The format needed explaining.Product–Process–Resource did not.

09 · The boundary object in software

The boundary object, made editable

One PPR graph. AutomationML keeps its three-view concept; SysML v2 reads the same meaning through native definitions.

PPR editor one canonical, editable graph
PPR / DIAGRAM PPR Levels Process Product Resource 13 USAGES · 11 RELATIONS ADD TO MODEL PRODUCT PROCESS RESOURCE FROM LIBRARY Body-Side Panel Spot-Weld Joint Set Welding Robot consumed_by · 1 produces · 1 performs PRODUCT · IN Body-Side Panel DX54D+Z · 0.8 mm PROCESS Spot-Weld Joint Set weld current 9500 A PRODUCT · OUT Welded Body 24 welds RESOURCE Servo-Gun Welding Robot payload 165 kg SEMANTIC EDITOR PPR KIND Product DEFINITION BINDING Body-Side Panel ATTRIBUTES thickness0.8 mm PPR KIND Process DEFINITION BINDING Spot-Weld Joint Set ATTRIBUTES weld current9500 A PPR KIND Resource DEFINITION BINDING Servo-Gun Welding Robot ATTRIBUTES payload165 kg
AutomationML workspace Edit the PPR graph once.
AutomationML SysML v2
Same definition, read natively
item def <def_body_side_panel>
'Body-Side Panel';
Same definition, read natively
action def <def_spot_weld_joint_set>
'Spot-Weld Joint Set';
Same definition, read natively
part def <def_welding_robot>
'Servo-Gun Welding Robot';
10 · The same model, written twice

Different syntax. Same information load.

The files do not look alike. They preserve the same identities, PPR kinds, values, units and relation meaning.

AutomationML ppr-model.aml
<SystemUnitClass Name="Body-Side Panel" ID="def_panel">
  <SupportedRoleClass RefRoleClassPath="…/Product"/>
  <Attribute Name="thickness" Unit="mm" AttributeDataType="xs:double">
    <Value>0.8</Value></Attribute></SystemUnitClass>
<SystemUnitClass ID="def_weld" …><SupportedRoleClass …/Process/>
<SystemUnitClass ID="def_robot" …><SupportedRoleClass …/Resource/>
  <Attribute Name="payload" Unit="kg" AttributeDataType="xs:double">
    <Value>165</Value></Attribute></SystemUnitClass>
<InstanceHierarchy Name="PPR Model">
  <InternalElement ID="panel" RefBaseSystemUnitPath="…/Body-Side Panel">
    <ExternalInterface Name="out" RefBaseClassPath="…/PPRConnector"/>
  <InternalElement ID="weld" RefBaseSystemUnitPath="…/Spot-Weld Joint Set">
    <ExternalInterface Name="panelInput" RefBaseClassPath="…/PPRConnector">
      <Attribute Name="requestedQuantity"><Value>1</Value> …
    <ExternalInterface Name="performedBy" …/PPRConnector/>
  <InternalElement ID="robot" RefBaseSystemUnitPath="…/Welding Robot">
    <ExternalInterface Name="performs" …/PPRConnector/>
  <InternalLink ID="panel_to_weld"
      RefPartnerSideA="panel:out" RefPartnerSideB="weld:panelInput"/>
  <InternalLink ID="robot_performs_weld"
      RefPartnerSideA="robot:performs" RefPartnerSideB="weld:performedBy"/>
</InstanceHierarchy>
SysML v2 ppr-model.sysml
item def <def_panel> 'Body-Side Panel' {
  attribute 'thickness' : Real = 0.8 [mm];
}
action def <def_weld> 'Spot-Weld Joint Set';
part def <def_robot> 'Welding Robot' {
  attribute 'payload' : Real = 165 [kg];
}
 
part productOccurrences {
  item <panel> 'Panel at Infeed' : def_panel;
}
action processOccurrences {
  action <weld> 'Spot-Weld Joint Set' : def_weld {
    in item panelInput : def_panel {
      attribute requestedQuantity : Real = 1; } }
  flow <panel_to_weld> from productOccurrences.panel to weld.panelInput;
}
part resourceOccurrences {
  part <robot> 'Robot RB-10' : def_robot {
    perform action <robot_performs_weld> references processOccurrences.weld; }
}
8 stable identities 3 PPR kinds 2 values with units 2 relation meanings

This is already implemented as an MVP in the PPR editor.

11 · Liaison and boundary

A boundary object is not yet a liaison (and vice versa)

Two relationships, at opposite ends of the same problem.

SysML v2 · OMG · INCOSE

We still need to talk to them.

Engaging that community was not part of the mandate when I started.

In a narrower standards environment, that made sense.

2026: start that conversation deliberately.

OPC Foundation × AutomationML

We built the bridge. What is the boundary object?

  • Organisation
  • Connectivity
  • Mapping
  • Shared object

Asset? · Device? · Capability? · Engineering configuration? · Information model? · PPR context?

Joint work since 2013/14. The open question is a different one.

What survives the boundary?

End of talk Thank you. Questions & discussion