71
MultiLevel Modeling in the Wild with AutomationML Invited Talk @ Multi Level Modeling Workshop, MODELS 2018 Copenhagen, October 2018 CDLMINT Business Informatics Group Institute of Information Systems Engineering Vienna University of Technology Favoritenstraße 911/1883, 1040 Vienna, Austria phone: +43 (1) 5880118804 (secretary), fax: +43 (1) 5880118896 [email protected], www.big.tuwien.ac.at Manuel Wimmer

Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Multi‐Level Modeling in the Wild with AutomationML

Invited Talk @ Multi Level Modeling Workshop, MODELS 2018Copenhagen, October 2018

CDL‐MINTBusiness Informatics GroupInstitute of Information Systems EngineeringVienna University of TechnologyFavoritenstraße 9‐11/188‐3, 1040 Vienna, Austriaphone: +43 (1) 58801‐18804 (secretary), fax: +43 (1) 58801‐[email protected], www.big.tuwien.ac.at

Manuel Wimmer

Page 2: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Preview: What this talk is about?

2

Page 3: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

3

My Background &

Ongoing Work

Page 4: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

My Background

4

Data Engineering

Model Engineering Web Engineering

Industrial Engineering

Page 5: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Christian Doppler Laboratory Model-Integrated Smart Production (CDL-MINT)

5

M M’Ma Mb

https://cdl-mint.big.tuwien.ac.at

Page 6: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Artefacts in CPPS Engineering Process

6

Page 7: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Some Challenges in CPPS (1/2)

7

Various engineering disciplines are involved in the engineering process

Solutions often lack support for… Model exchange Model versioning Model linking Model consistency …

Typical industrial plant engineering process taken from: R. Drath, B. Schröter, and M. Hoernicke, “Datenkonsistenz im Umfeld heterogener Engineering-Werkzeuge”, in Proc. of the Automation Conference, 2011, pp. 29-32.

Page 8: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Some Challenges in CPPS (2/2)

8

Multidisciplinary process involving various engineering disciplines Different disciplines and engineering activities require

specialized software tools and produce specific artifacts> Heterogeneous engineering tool landscape

Multi-staged and parallel process Different engineering activities depend on

each other, i.e., require results of otherengineering activities

> Need for a lossless data exchange

How is the data exchange achieved? PDFs, printouts, manual transfer

> Inefficient and error-prone process leading to substantial costs> Current movements towards smart production aggravate this problem

discipline

tool

artifactSoftware

Engineering

ControlEngineering

Mechanical Engineering

Electrical Engineering

Page 9: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML Association

9

Standardize data exchange in the engineering process of production systems

Large industrial and academic consortium (over 50 members)

AutomationML website: http://www.automationml.org IEC 62714 - Engineering data exchange format for use in industrial automation systems engineering

- AutomationML, www.iec.ch, 2014.

Whitepapers Application

Recommendations Best Practice

Recommendations

Page 10: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Data Exchange: AutomationML (AML) as Common Format

10

Foundation for harmonizing engineering data coming from heterogeneous tool networks by means of a unified format and data model

Collection and integration of existing standards

CAEX IEC 62424Plant topology

• Plants• Cells• Components• Attributes• Interfaces• Relations• References

Object A

Object A1

Object A2

Object An

...

COLLADA ISO/PAS 17506:2012

GeometryKinematics

Further XML Standard Format

Further engineering data

PLCopen XMLIEC 61131-10

BehaviorSequencing

Init

Step 1

End

AutomationML in a Nutshellhttps://www.automationml.org/o.red/uploads/dateien/1447420977-AutomationML%20in%20a%20Nutshell_151104.pdf

Page 11: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML = Automation (Markup | Modeling) Language?

S. Faltinski, O. Niggemann, N. Moriz, A. Mankowski: AutomationML: From data exchange to system planning and simulation, in Proc. of ICIT, 2012, pp. 378–383. 11

Page 12: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

12

A Model-Driven Perspective

Page 13: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML: Automation Markup Language

13

Open, vendor neutral, free XML format for the storage and exchange of plant engineering data

Integrates, extends and adapts existing standard XML data formats

CAEX IEC 62424Plant topology

• Plants• Cells• Components• Attributes• Interfaces• Relations• References

Object A

Object A1

Object A2

Object An

...

COLLADA ISO/PAS 17506:2012

GeometryKinematics

Further XML Standard Format

Further engineering data

PLCopen XMLIEC 61131-10

BehaviorSequencing

Init

Step 1

End

Page 14: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML: Automation Modeling Language?

14

How can we best support AutomationML? Language engineering viewpoint Production systems engineering viewpoint

CAEX IEC 62424Plant topology

• Plants• Cells• Components• Attributes• Interfaces• Relations• References

Object A

Object A1

Object A2

Object An

...

COLLADA ISO/PAS 17506:2012

GeometryKinematics

Further XML Standard Format

Further engineering data

PLCopen XMLIEC 61131-10

BehaviorSequencing

Init

Step 1

End

Page 15: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

15

CAEXIEC 62424

Page 16: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML = Automation (Markup | Modeling) Language?

Object-Oriented Format Automation object: physical or logical entity in the automated system

Currently it is a Tree-Based Format Plant topology information: The plant topology acts as the top-level data

structure of the plant engineering information and shall be modelled by means of the data format CAEX according to IEC 62424:2008, Clause 7, Annex A and Annex C. Semantic extensions of CAEX are described separately. Multiple and crossed hierarchy structures shall be used by means of the mirror object concept according to IEC 62424:2008, A.2.14. Mirror objects shall not be modified; all changes shall be done at the master object.

16

Page 17: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

technology

CAEX: Language Realization (1/3)

17

CAEX is a language which is specified with XSD

IH

IE

RCCAEX.xsd

XSD

example.aml

XML

«conforms to»

JAXP Xerces

Page 18: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

CAEX: Language Realization (2/3)

AutomationML family is defined by a set of XML Schemas Systematic metamodel creation process

Step 1: Generative approach to produce initial Ecore-based metamodel Step 2: Refactorings for improving language design

Resulting metamodels Are complete and correct with respect to XML Schemas Allow to import/export data from/to XML data Available at: https://github.com/amlModeling

A. Schauerhuber, M. Wimmer, E. Kapsammer, W. Schwinger, W. Retschitzegger: Bridging WebMLto Model-Driven Engineering: From DTDs to MOF. IET Software 1(3), 2007.

P. Neubauer, A. Bergmayr, T. Mayerhofer, J. Troya, M. Wimmer: XMLText: from XML schema toxText. In Proc. of SLE 2015: 71-76

AML Metamodel

AML Model

AML XSDs

conformsTo

EcoreXSD

AML XML

Correspondences

conformsTo

conformsTo

conformsTo

Metamodel Transformation

implies

implies

Model Transformation

18

Page 19: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

technology

CAEX: Language Realization (3/3)

19

CAEX is a language which is now also specified by a metamodel

https://eclipse.org/modeling/emf/

example.aml

XML

«conforms to»

CAEX.ecore

Ecore

Page 20: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Example: Pick And Place Unit (PPU)

20

PPU produces different types of tanks PPU resources are its stations of different types TUM provides set of models and descriptions for the PPU

STACK

CRANE STAMP

CONVEYOR

RAMP

RAMP

RAMP

The Pick and Place Unit http://www.ppu‐demonstrator.orgInstitute for Automation and Information Systems (AIS)TUM ‐ TU München

Page 21: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Example: PPU in CAEX

21

Out

IHIE

ExtI

IE

ExtI In

1.Stack

2.Crane

Attr quantity: 1

PPU

IL

IEExtI In

3.Ramp

OutExtIIL

System Model

1 2

3

The Pick and Place Unit http://www.ppu‐demonstrator.orgInstitute for Automation and Information Systems (AIS)TUM ‐ TU München

STACK CRANE

RAMP

Page 22: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Interface Types

Example: PPU in CAEX

22

Out

IHIE

ExtI

IE

ExtI In

1.Stack

2.Crane

Attr quantity: 1

IClib

IC

IC

MechOutput

MechInput

PPU

SysInterfaces

IL

IEExtI In

3.Ramp

OutExtIIL

System Model

1 2

3

The Pick and Place Unit http://www.ppu‐demonstrator.orgInstitute for Automation and Information Systems (AIS)TUM ‐ TU München

STACK CRANE

RAMP

• Set of Interface Classes

• Interface Class

ICLibIC

Page 23: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Interface Types

Example: PPU in CAEX

23

Out

IHIE

ExtI

IE

ExtI In

1.Stack

2.Crane

Attr quantity: 1

IClib

IC

IC

MechOutput

MechInput

PPU

SysInterfaces

IL

SUClibSUC

SUC

Stack

Crane

SysComp

SUCRamp

IEExtI In

3.Ramp

OutExtIIL

Prototyping

System Model

1 2

3

The Pick and Place Unit http://www.ppu‐demonstrator.orgInstitute for Automation and Information Systems (AIS)TUM ‐ TU München

STACK CRANE

RAMP

System Unit Class• Reusable Modeling Elements as

System Unit Class Library• Set of reusable modeling elements

Page 24: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Interface Types

Example: PPU in CAEX

24

Out

IHIE

ExtI

IE

ExtI In

1.Stack

2.Crane

Attr quantity: 1RClib

RC

ExtIResource

Input

ExtI Output

IClib

IC

IC

MechOutput

MechInput

PPU

SysInterfaces

IL

SUClibSUC

SUC

Stack

Crane

SysComp

SUCRamp

IEExtI In

3.Ramp

OutExtIIL

Semantics AnchoringPrototyping

System Model

1 2

3

The Pick and Place Unit http://www.ppu‐demonstrator.orgInstitute for Automation and Information Systems (AIS)TUM ‐ TU München

STACK CRANE

RAMP

RC Product

• Set of Role Classes

• Role Class

RCLibRC

Page 25: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AML: Standard Editor

25Available at: www.automationml.org

Page 26: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AML: SysML-based Realization in EA

26Available at: www.sysml4industry.org

Page 27: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AML: Research conducted in the last 4 years…

27

Modeling Support AML Metamodel AML UML Profile AML SysML Profile AML Diagram AML Text

Evolution Support AML Language Evolution AML Library Evolution

Constraints and Query Support Automation Query Language Cardinalities Well-formdness rules

For references please check: https://big.tuwien.ac.at/publications/?pub_searchType=full&pub_search=AutomationML&pub_year=all&pub_commit=Search

Page 28: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

28

IMLIEC 62424

Page 29: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Plant Behavior Models

29

PLCopen XML Standard XML format for exchanging PLC code Supports all programming languages defined in IEC 61131-3 standard

Structured text, instruction list, ladder diagram, function block diagram, sequential function charts

Common Plant Behavior Modeling Languages AutomationML supports five modeling languages for defining plant

behaviors on different levels of abstraction Abstract process planning: Gantt charts, PERT charts System behavior design: Impulse diagrams Detailed component behavior design: Sequential function charts, state

charts

> Requires translations from/to PLCopen XML

Page 30: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Plant Behavior Models

30

Translations from/to PLCopen XML

Tool A

Tool B

Tool C

Gantt Chart

PERT Chart

Impulse Diagram

Diverse Plant Behavior Modeling Languages

PLCopen XML(IEC 61131-10)

<SFC> <actionBlock> <action> <addData> <data name=”http://<AutomationML> <ActionStatus> current </ActionStatus> </AutomationML> </data> </addData> 

<action></actionBlock>

Page 31: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Intermediate Modeling Layer

31

AutomationML introduces Intermediate Modeling Layer (IML) IML is based on sequential function charts defined by IEC 61131-3

standard Simplifies transformations from/to PLCopen XML Decouples PLCopen XML from plant behavior modeling languages

Facilitates extensibility with new plant behavior modeling languages Enables automated transformations between plant behavior modeling

languages

Tool A

Tool B

Tool C

Gantt Chart

PERT Chart

Impulse Diagram

Diverse Plant Behavior Modeling Languages

Intermediate Modeling Layer (IML)

IML

PLCopen XML(IEC 61131-10)

<SFC> <actionBlock> <action> <addData> <data name=”http://<AutomationML> <ActionStatus> current </ActionStatus> </AutomationML> </data> </addData> 

<action></actionBlock>

Page 32: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

IML as Semantic Domain and Integration Layer for Plant Behavior Models

32

Model Execution

ModelSimulation

ConsistencyAnalysis

RefinementAnalysis ……

Tool A

Tool B

Tool C

Gantt Chart

PERT Chart

Impulse Diagram

Diverse Plant Behavior Modeling Languages

Intermediate Modeling Layer (IML)

IML

PLCopen XML(IEC 61131-10)

<SFC> <actionBlock> <action> <addData> <data name=”http://<AutomationML> <ActionStatus> current </ActionStatus> </AutomationML> </data> </addData> 

<action></actionBlock>

M2MM2M

Syntax SemanticsMM OS

Mayerhofer, Wimmer, Berardinelli, Mätzler, Schmidt: Towards Semantic Integration of Plant BehaviorModels with AutomationML's Intermediate Modeling Layer. GEMOC@MoDELS 2016: 28-37

Page 33: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Operational Semantics for IML

33

Comment

content : String

Element

Variable

name : Stringtype : Stringcontent : StringSIUnit : StringinitialValue : Stringaddress : String

SelectionConvergence

SelectionDivergence

SimultaneousConvergence

SimultaneousDivergence

members

*

activities

*

booleanGuard

0..1

source1target1

comment

0..1

IdentifiableElement

IdentifiableElement

IdentifiableElement

IdentifiableElement

Time

delay : Realduration : Real

time 0..1

Activity

name : String

start : Real [2]end : Real [2]

StateTransition

name : String

State

name : Stringinit : booleanterminal : boolean

/target0..1

IdentifiableElement

id : String

Connection

/source0..1 ConnectionPoint

Header

name : String

execute()

current : boolean

activate()deactivate()executeActivities()

value : String

current : boolean

execute()

isEnabled()fire()

/currentStates *

Page 34: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Tool Support for IML based on 

34

https://github.com/moliz/moliz.gemoc/tree/master/examples/iml

Page 35: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

35

A Multi-Level Perspective

Page 36: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AutomationML Realization: Important Concepts/Relationships

36

Ecore/XSD/…

RoleClass (RC)

SystemUnitClass (SUC)InternalElement

(IE)

Page 37: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

What is modelled with AutomationML?

37

Robot

KUKA MobileRobot Model 

Resource

AutomationMLObject

MobileRobot

A KUKA Mobile Robot Configuration

A KUKA Mobile Robot Exampler

RoleClass

RoleClass

A KUKA Mobile Robot Exampler @ RunTime

Model Metamodel

RoleClass

RoleClass

SystemUnitClass

InternalElement/SystemUnitClass

InternalElement

InternalElement

Ontology(Standardization)

Components(Vendors)

Systems(Engineers/Operators)

RC

RC

RC

RC

Page 38: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Most Basic Pattern: SUC IE

38

Robot

KUKA MobileRobot Model 

Resource

AutomationMLObject

MobileRobot

A KUKA Mobile Robot Configuration

A KUKA Mobile Robot Exampler

RoleClass

RoleClass

A KUKA Mobile Robot Exampler @ Runtime

Model Metamodel

RoleClass

RoleClass

SUC

SUC / IE

IE

IE@RT

Ontology(Standardization)

Components(Vendors)

Systems(Engineers/Operators)

RC

RC

RC

RC

Page 39: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 1: Relationship between IEs and SUCs

39

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

SystemUnitClass

InternalElement

baseSystemUnit0..1

Metamodel

Model

Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systemsand their libraries with AutomationML. Proc. of ETFA 2015: 1-8

Page 40: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 1: Relationship between IEs and SUCs

40

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

SystemUnitClass

InternalElement

baseSystemUnit0..1

Metamodel

Model

PROTOTYPE

CLONE

«conformsTo»«manifestation»

«???»

Semantics?

Pragmatics?

Page 41: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 1: Relationship between IEs and SUCs

41

Content: slots

Content: slots

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

context SUC::createClone()post: new c:IE |-- clone refers to its prototypec.prototype = self and-- clone contains all prototype slotsself.slots -> forAll(pS | c.slots -> one(cS | pS.name = cS.name and pS.value = cS.value)) and-- clone only contains prototype slotsc.slots -> forAll(cS | self.slots -> one(pS | cS.name = pS.name and cS.value = pS.value))

Page 42: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 1: Relationship between IEs and SUCs

42

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

Page 43: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 2: Co-Evolution

Evolution of engineering data has to be managed Engineers from diverse domains working in parallel

Co-evolution of prototypes and clones has to be managed

Evolution

Co-evolution

43Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systemsand their libraries with AutomationML. Proc. of ETFA 2015: 1-8

Page 44: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Framework for prototype/clone co-evolution

44

1. Generic metamodel for prototype-based languages2. Levels of consistency rigor between and3. Change types on and their impact on prototype/clone

consistency4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES

PROTOTYPES

CLONES

PROTOTYPESPROTOTYPES

CLONES

Page 45: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Generic Metamodel for Prototype-Based Languages

A general metamodel for prototypes and clones whose concepts can be adopted for several modeling languages.

PROTOTYPES CLONES and as roles

A Object can play different roles, depending on its current relationships

ObjectStore

+ createObject() :Object+ deleteObject() :void

Slot

- name :String- value :Object[*]

+objects

+slots

Object

- id :int- name :String

+ createClone():Object+ addSlot() :Slot+ deleteSlot() :void+ modifySlot() :void

+prototype 0..1+clones *

*

*

45

Page 46: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Generic Metamodel for Prototype-Based Languages

ObjectStore

+ createObject() :Object+ deleteObject() :void

Slot

- name :String- Value :Object[*]

+objects

+slots

Object

- id :int- name :String

+ createClone():Object+ addSlot() :Slot+ deleteSlot() :void+ modifySlot() :void

+prototype 0..1+clones *

*

*

objstore1:ObjectStore

obj1: Object- id = 1- name = "Motor"

s1: Slot- name = "nominal speed"- value = 9000

obj2: Object- id = 2- name = “Motor"

s2: Slot- name = "nominal speed"- value = 9000

+prototype

+clones

PROTOTYPES

CLONES

Attr

Attr

46

Page 47: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Framework for prototype/clone co-evolution

47

1. Generic metamodel for prototype-based languages2. Levels of consistency rigor between and3. Change types on and their impact on prototype/clone

consistency4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES

PROTOTYPES

CLONES

PROTOTYPESPROTOTYPES

CLONES

Page 48: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Levels of Consistency Rigor between Prototypes and Clonesobjstore1:ObjectStore

obj1: Object- id = 1- name = "Motor"

s1: Slot- name = "nominal speed"- value = 9000

obj2: Object- id = 2- name = “Motor"

s2: Slot- name = "nominal speed"- value = 9000

+prototype

+clones

PROTOTYPES

«conforms to»

«library»L

«model»mCLONES

48

Page 49: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Levels of Consistency Rigor between Prototypes and Clones

Level 0: Uncontrolled Compliance Clones may evolve completely

independent from Prototypes Prototypes are solely used as templates

Level 1: Substantial Compliance Evolution of clones is partially restricted

Level 1a: Extension: all or more slots

Level 1b: Restriction: at most all the slots

Level 1c: Redefinition: some slots, different values

Level 2: Full Compliance Clones may not evolve independently of

prototypes

PROTOTYPES

«conforms to»

«library»L

«model»mCLONES

49

Page 50: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Formalization of Consistency Levels: Consistency Constraints

50

Level 0: Uncontrolled ComplianceNo consistency constraint required

Level 1a: Extension

Level 1b: Restriction

Level 1c: Redefinition

Level 2: Full CompliancePost-condition of createClone() operation must always hold

‐‐ clone defines all prototype slots but may define additional slotscontext Object [self.prototype <> OclUndefined]inv: self.prototype.slots ‐> forAll(pS | self.slots ‐> one(cS | pS.name = cS.name and pS.value = cS.value))

‐‐ clone defines subset of prototype slotsinv: self.slots ‐> forAll(cS | self.prototype.slots ‐> one(pS | cS.name = pS.name and cS.value = pS.value))

‐‐ clone may redefine values of prototype slotscontext Object [self.prototype <> OclUndefined]inv: self.slots ‐> forAll(cS | self.prototype.slots ‐> one(pS | cS.name = pS.name))inv: self.prototype.slots ‐> forAll(pS | self.slots ‐> one(cS | pS.name = cS.name))

Page 51: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Framework for prototype/clone co-evolution

51

1. Generic metamodel for prototype-based languages2. Levels of consistency rigor between and3. Change types on and their impact on prototype/clone

consistency4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES

PROTOTYPES

CLONESCLONES

PROTOTYPESPROTOTYPES

Page 52: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Change Types on Prototypes and their Impact on Consistency

52

ObjectStore

+ createObject() :Object+ deleteObject() :void

Slot

- name :String- Value :Object[*]

+objects

+slots

Object

- id :int- name :String

+ createClone():Object+ addSlot() :Slot+ deleteSlot() :void+ modifySlot() :void

+prototype 0..1+clones *

*

*

↑ non-breaking≠ breaking

Page 53: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Framework for prototype/clone co-evolution

53

1. Generic metamodel for prototype-based languages2. Levels of consistency rigor between and3. Change types on and their impact on prototype/clone

consistency4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES

PROTOTYPES

CLONES

PROTOTYPES

CLONES

PROTOTYPES

Page 54: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

4. Repair Operations to re-establish Prototype/Clone Consistency

54

Breaking changes lead to inconsistencies between prototypes and clones and violations of consistency levels

Re-establishing prototype/clone consistency requires1. Detection of inconsistent clones through consistency constraint 2. Application of repair operations on clones to resolve inconsistency

Operation L0 L1a L1b L1c L2ObjectStore::createObject ↑ ↑ ↑ ↑ ↑ObjectStore::deleteObject ≠ ≠ ≠ ≠ ≠Object::addSlot ↑ ≠ ↑ ≠ ≠Object::deleteSlot ↑ ↑ ≠ ≠ ≠Object::modifySlot ↑ ≠ ≠ ↑ ≠≠ manual resolution needed ≠ automated resolution possible

> Add slot to clones> Remove slot from clones> Update slot value in clones

if preconditions hold

Page 55: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

4. Repair Operations to Re-Establish Prototype/Clone Consistency

55

ExampleDesired consistency level: L1a Extension

Motor : Object

- id = 1- name = "Motor"

: Slot

- name = "nominal speed"- value = 9000

M1 : Object

- id = 2- name = "M1"

: Slot

- name = "nominal speed"- value = 9000

: Slot

- name = "min rotation speed"- value = 5800

+prototype +clones

‐‐ clone defines all prototype slots but may define additional slotscontext Object [self.prototype <> OclUndefined]inv: self.prototype.slots ‐> forAll(pS | self.slots ‐> one(cS | pS.name = cS.name and pS.value = cS.value))

addSlot()

Page 56: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

4. Repair Operations to Re-Establish Prototype/Clone Consistency

56

ExampleDesired consistency level: L1a Extension

Motor : Object

- id = 1- name = "Motor"

: Slot

- name = "nominal speed"- value = 9000

M1 : Object

- id = 2- name = "M1"

: Slot

- name = "nominal speed"- value = 9000

: Slot

- name = "min rotation speed"- value = 5800

+prototype +clones

addSlot()

fix title : "Add missing slots from prototype" dofor (pS : self.prototype.slots)if (not self.slots ‐> exists(cS | cS.name = pS.name)) self.addSlot(pSlot.copy())

: Slot

- name = "min rotation speed"- value = 5800

addSlot()

Page 57: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 3: Multiple Instantiations (1/2)

57

KUKA MobileRobot Model 

A KUKA Mobile Robot Configuration

SystemUnitClass

InternalElement

baseSystemUnit0..1

Metamodel

Model

KUKA MobileRobot Configuration

A KUKA Mobile Robot Exampler

Page 58: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Challenge 3: Multiple Instantiations (2/2)

58

KUKA MobileRobot Model 

A KUKA Mobile Robot Exampler

SystemUnitClass

InternalElement

baseSystemUnit0..1

Metamodel

Model

A KUKA Mobile Robot Exampler @ T1

Operational Viewpoint

Page 59: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

RobotRC

Challenge 5: Deep Query Support

59

Domain experts need automated queries to access models For instance: find all robots in a system

Automation Query Language (AQL) By-example query language for AML

A KUKA Mobile Robot Exampler

Robot

KUKA MobileRobot Model 

MobileRobot

A KUKA Mobile Robot Configuration

A KUKA Mobile Robot Exampler

RC

RC

RobotRC

Example 1

Query Model

Example 2

M. Wimmer, A. Mazak: "From AutomationML to AutomationQL: A By-Example Query Language for CPPS Engineering Models"; Proc. of the 14th International Conference on Automation Science and Engineering (CASE), (2018).

Page 60: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

60

Lessons Learned

Page 61: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Lesson Learned #1: Technology

61

Model-based technologies speed-up tool development drastically From years to weeks

Two-level based technologies seem sufficient for data exchange Especially for syntactic concerns at a first glance But may not be enough for semantic concerns

Multi-level based technologies seem handy for providing Semantics Pragmatics Additional modeling features

Help is needed!

Page 62: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Lesson Learned #2: Organization

62

Levels help to organize work Standardization Component provider Component configuration Systems engineering Systems operation

Important for Keeping the language constant Allowing for different model imports Building up large component repositories New applications: ordering a robot, virtual commissioning, etc.

Currently not flexible enough!

Ontology(Standardization Bodies)

Components(Vendors)

Systems(Engineers)

Page 63: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Lesson Learned #3: Language Design

63

Reducing CAEX to Clabjectmodeling language

Constraints for modeling concepts on a particular level

Objects are potentially trees of objects

Modernization of CAEX modeling capabilities Potency Constraints …

ObjectStore

+ createObject() :Object+ deleteObject() :void

Slot

- name :String- value :Object[*]

+objects

+slots

Object

- id :int- name :String

+ createClone():Object+ addSlot() :Slot+ deleteSlot() :void+ modifySlot() :void

+prototype 0..1+clones *

*

*

Page 64: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Lesson Learned #4: Hurdles

64

Conflict: Structural guidance vs. flexibility CAEX provides dedicated concepts for dedicated purposes

Commonalities between different concepts not clearly abstracted SUC <- IE, RC <- IE, RC <- SUC, …

Type/Instance Pattern already a big step – what about Clabjects? Engineers are often used to model solely on the instance level

More expressive language needed, but CAEX is the standard How to realize Industry 4.0 requirements? Introduce further language concepts as role classes

Not-invented-here syndrom!

Page 65: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

65

Wrap-Up

Page 66: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Wrap-Up

66

Most of AutomationML’s languages are already supported by Metamodels (Ecore-based) Additional Constraint Checks (OCL-based) Transformations to other languages (SysML, PMIF, …)

→ Starting point for ML-AML?

Page 67: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Friends of AML: ISA-95 Information Models & Co.

67

B2MML: XML-based language for defining the Manufactoring Execution System (MES)

Source: IEC 62264-1Enterprise-Control System IntegrationPart 1: Models and Terminology

Page 68: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

68

The Future

Page 69: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

»Pre-Knowledge«

MDE Practicein CPPS

Appropriateness of some standards questionable (SysML) – not yet adopted

Automation-tool vendors jump on the MDE bandwagon

Implicit Knowledge

MDE Research in CPPS

Many different proposals, application areas and goals E.g., DSMLs, Models@Runtime,

Model-based Testing, Simulation, Validation, and Verification, Multi-Paradigm Modeling, Model Management, Megamodeling, Multi-Level Modeling …

Emerging standards and initiatives E.g., ISA-95, AutomationML,

OPC-UA, …

CommunityKnowledge

Explicit Knowledge

Consolidation, Integration, Verification, Communication,and Industrialization

Our Main Challenge

69

How to transition from implicit to explicit knowledge about MDE in particular fields?

. C.W. Choo: The Knowing Organization: How Organizations Use Information to Construct Meaning, Create Knowledge, and Make Decisions, Oxford University Press, 1998.

Page 70: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

Many thanks to…

Tanja Mayerhofer Gerti Kappel Alexandra Mazak Sabine Wolny Luca Berardinelli Emanuel Mätzler Rainer Drath Arndt Lüder and many more …

70

Page 71: Multi Level Modeling in the Wild with AutomationML · 2018-10-17 · Berardinelli, Biffl, Mätzler, Mayerhofer, Wimmer: Model-based co-evolution of production systems and their libraries

AML: Automation Markup Modeling Language!

Thank you!Comments? Questions? Feedback?

Manuel [email protected]

Christian Doppler Laboratory (CDL-MINT)https://cdl-mint.big.tuwien.ac.at

71