Multi Level Modeling in the Wild with AutomationML Invited Talk @ - - PowerPoint PPT Presentation

multi level modeling in the wild with automationml
SMART_READER_LITE
LIVE PREVIEW

Multi Level Modeling in the Wild with AutomationML Invited Talk @ - - PowerPoint PPT Presentation

Multi Level Modeling in the Wild with AutomationML Invited Talk @ Multi Level Modeling Workshop, MODELS 2018 Copenhagen, October 2018 Manuel Wimmer CDL MINT Business Informatics Group Institute of Information Systems Engineering Vienna


slide-1
SLIDE 1

Multi‐Level Modeling in the Wild with AutomationML

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

CDL‐MINT Business Informatics Group Institute of Information Systems Engineering Vienna University of Technology

Favoritenstraße 9‐11/188‐3, 1040 Vienna, Austria phone: +43 (1) 58801‐18804 (secretary), fax: +43 (1) 58801‐18896

  • ffice@big.tuwien.ac.at, www.big.tuwien.ac.at

Manuel Wimmer

slide-2
SLIDE 2

Preview: What this talk is about?

2

slide-3
SLIDE 3

3

My Background & Ongoing Work

slide-4
SLIDE 4

My Background

4

Data Engineering Model Engineering W eb Engineering I ndustrial Engineering

slide-5
SLIDE 5

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

5

M M’ Ma Mb

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

slide-6
SLIDE 6

Artefacts in CPPS Engineering Process

6

slide-7
SLIDE 7

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.

slide-8
SLIDE 8

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 other engineering 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 artifact

Software Engineering Control Engineering Mechanical Engineering Electrical Engineering

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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 62424

Plant topology

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

Object A Object A1 Object A2 Object An

. . .

COLLADA

ISO/PAS 17506:2012

Geometry Kinematics Further XML Standard Format Further engineering data PLCopen XML

IEC 61131-10

Behavior Sequencing

Init Step 1 End

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

12

A Model-Driven Perspective

slide-13
SLIDE 13

AutomationML: Automation Markup Language

13

  • Open, vendor neutral, free XML format for the storage and exchange
  • f plant engineering data
  • Integrates, extends and adapts existing standard XML data formats

CAEX

IEC 62424

Plant topology

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

Object A Object A1 Object A2 Object An

. . .

COLLADA

ISO/PAS 17506:2012

Geometry Kinematics Further XML Standard Format Further engineering data PLCopen XML

IEC 61131-10

Behavior Sequencing

Init Step 1 End

slide-14
SLIDE 14

AutomationML: Automation Modeling Language?

14

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

CAEX

IEC 62424

Plant topology

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

Object A Object A1 Object A2 Object An

. . .

COLLADA

ISO/PAS 17506:2012

Geometry Kinematics Further XML Standard Format Further engineering data PLCopen XML

IEC 61131-10

Behavior Sequencing

Init Step 1 End

slide-15
SLIDE 15

15

CAEX

I EC 6 2 4 2 4

slide-16
SLIDE 16

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

slide-17
SLIDE 17

technology

CAEX: Language Realization (1/3)

17

  • CAEX is a language which is specified with XSD

IH IE RC

CAEX.xsd XSD example.aml XML

«conforms to»

JAXP Xerces

slide-18
SLIDE 18

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 WebML

to 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 to
  • xText. In Proc. of SLE 2015: 71-76

AML Metamodel AML Model AML XSDs

conformsTo

Ecore XSD AML XML Correspondences

conformsTo conformsTo conformsTo

Metamodel Transformation

implies implies

Model Transformation

18

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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.org Institute for Automation and Information Systems (AIS) TUM ‐ TU München

slide-21
SLIDE 21

Example: PPU in CAEX

21

Out

IH IE ExtI IE ExtI

In 1.Stack 2.Crane

Attr quantity: 1

PPU

IL IE ExtI

In 3.Ramp Out

ExtI IL

System Model

1 2 3

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

STACK CRANE RAMP

slide-22
SLIDE 22

Interface Types

Example: PPU in CAEX

22

Out

IH IE ExtI IE ExtI

In 1.Stack 2.Crane

Attr quantity: 1 IClib IC IC

MechOutput MechInput PPU SysInterfaces

IL IE ExtI

In 3.Ramp Out

ExtI IL

System Model

1 2 3

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

STACK CRANE RAMP

  • Set of Interface Classes
  • Interface Class

ICLib IC

slide-23
SLIDE 23

Interface Types

Example: PPU in CAEX

23

Out

IH IE ExtI IE ExtI

In 1.Stack 2.Crane

Attr quantity: 1 IClib IC IC

MechOutput MechInput PPU SysInterfaces

IL SUClib SUC SUC

Stack Crane SysComp

SUC

Ramp

IE ExtI

In 3.Ramp Out

ExtI IL

Prototyping

System Model

1 2 3

The Pick and Place Unit http://www.ppu‐demonstrator.org Institute 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
slide-24
SLIDE 24

Interface Types

Example: PPU in CAEX

24

Out

IH IE ExtI IE ExtI

In 1.Stack 2.Crane

Attr quantity: 1 RClib RC ExtI

Resource Input

ExtI

Output

IClib IC IC

MechOutput MechInput PPU SysInterfaces

IL SUClib SUC SUC

Stack Crane SysComp

SUC

Ramp

IE ExtI

In 3.Ramp Out

ExtI IL

Semantics Anchoring Prototyping

System Model

1 2 3

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

STACK CRANE RAMP RC Product

  • Set of Role Classes
  • Role Class

RCLib RC

slide-25
SLIDE 25

AML: Standard Editor

25

Available at: www.automationml.org

slide-26
SLIDE 26

AML: SysML-based Realization in EA

26

Available at: www.sysml4industry.org

slide-27
SLIDE 27

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

slide-28
SLIDE 28

28

IML

I EC 6 2 4 2 4

slide-29
SLIDE 29

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

slide-30
SLIDE 30

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>

slide-31
SLIDE 31

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>

slide-32
SLIDE 32

IML as Semantic Domain and Integration Layer for Plant Behavior Models

32 Model Execution Model Simulation Consistency Analysis Refinement Analysis

… …

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>

M2M M2M

Syntax Semantics

MM OS

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

slide-33
SLIDE 33

Operational Semantics for IML

33

Comment content : String Element Variable name : String type : String content : String SIUnit : String initialValue : String address : String SelectionConvergence SelectionDivergence SimultaneousConvergence SimultaneousDivergence members * activities * booleanGuard 0..1 source 1 target 1 comment 0..1 IdentifiableElement IdentifiableElement IdentifiableElement IdentifiableElement Time delay : Real duration : Real time 0..1 Activity name : String start : Real [2] end : Real [2] StateTransition name : String State name : String init : boolean terminal : boolean /target 0..1 IdentifiableElement id : String Connection /source 0..1 ConnectionPoint Header name : String execute() current : boolean activate() deactivate() executeActivities() value : String current : boolean execute() isEnabled() fire() /currentStates *

slide-34
SLIDE 34

Tool Support for IML based on

34

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

slide-35
SLIDE 35

35

A Multi-Level Perspective

slide-36
SLIDE 36

AutomationML Realization: Important Concepts/Relationships

36 Ecore/XSD/… RoleClass (RC) SystemUnit Class (SUC) InternalElement (IE)

slide-37
SLIDE 37

What is modelled with AutomationML?

37 Robot KUKA Mobile Robot 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

slide-38
SLIDE 38

Most Basic Pattern: SUC  IE

38 Robot KUKA Mobile Robot 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

slide-39
SLIDE 39

Challenge 1: Relationship between IEs and SUCs

39 KUKA Mobile Robot Model A KUKA Mobile Robot Exampler

SystemUnitClass InternalElement baseSystemUnit 0..1

Metamodel Model

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

slide-40
SLIDE 40

Challenge 1: Relationship between IEs and SUCs

40 KUKA Mobile Robot Model A KUKA Mobile Robot Exampler

SystemUnitClass InternalElement baseSystemUnit 0..1

Metamodel Model

PROTOTYPE CLONE

«conformsTo» «manifestation» «???»

Semantics? Pragmatics?

slide-41
SLIDE 41

Challenge 1: Relationship between IEs and SUCs

41 Content: slots Content: slots KUKA Mobile Robot Model A KUKA Mobile Robot Exampler

context SUC::createClone() post: new c:IE |

  • - clone refers to its prototype

c.prototype = self and

  • - clone contains all prototype slots

self.slots -> forAll(pS | c.slots -> one(cS | pS.name = cS.name and pS.value = cS.value)) and

  • - clone only contains prototype slots

c.slots -> forAll(cS | self.slots -> one(pS | cS.name = pS.name and cS.value = pS.value))

slide-42
SLIDE 42

Challenge 1: Relationship between IEs and SUCs

42 KUKA Mobile Robot Model A KUKA Mobile Robot Exampler KUKA Mobile Robot Model A KUKA Mobile Robot Exampler KUKA Mobile Robot Model A KUKA Mobile Robot Exampler KUKA Mobile Robot Model A KUKA Mobile Robot Exampler

slide-43
SLIDE 43

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

43

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

slide-44
SLIDE 44

Framework for prototype/clone co-evolution

44

  • 1. Generic metamodel for prototype-based languages
  • 2. Levels of consistency rigor between and
  • 3. Change types on and their impact on prototype/clone

consistency

  • 4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES PROTOTYPES CLONES PROTOTYPES PROTOTYPES CLONES

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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 *

* *

  • bjstore1:ObjectStore
  • bj1: Object
  • id = 1
  • name = "Motor"

s1: Slot

  • name = "nominal speed"
  • value = 9000
  • bj2: Object
  • id = 2
  • name = “Motor"

s2: Slot

  • name = "nominal speed"
  • value = 9000

+prototype +clones

PROTOTYPES CLONES Attr Attr

46

slide-47
SLIDE 47

Framework for prototype/clone co-evolution

47

  • 1. Generic metamodel for prototype-based languages
  • 2. Levels of consistency rigor between and
  • 3. Change types on and their impact on prototype/clone

consistency

  • 4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES PROTOTYPES CLONES PROTOTYPES PROTOTYPES CLONES

slide-48
SLIDE 48

Levels of Consistency Rigor between Prototypes and Clones

  • bjstore1:ObjectStore
  • bj1: Object
  • id = 1
  • name = "Motor"

s1: Slot

  • name = "nominal speed"
  • value = 9000
  • bj2: Object
  • id = 2
  • name = “Motor"

s2: Slot

  • name = "nominal speed"
  • value = 9000

+prototype +clones

PROTOTYPES

«conforms to» «library»

L «model» m

CLONES

48

slide-49
SLIDE 49

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» m

CLONES

49

slide-50
SLIDE 50

Formalization of Consistency Levels: Consistency Constraints

50

Level 0: Uncontrolled Compliance No consistency constraint required Level 1a: Extension Level 1b: Restriction Level 1c: Redefinition Level 2: Full Compliance Post-condition of createClone() operation must always hold

‐‐ clone defines all prototype slots but may define additional slots context 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 slots inv: self.slots ‐> forAll(cS | self.prototype.slots ‐> one(pS | cS.name = pS.name and cS.value = pS.value)) ‐‐ clone may redefine values of prototype slots context 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))

slide-51
SLIDE 51

Framework for prototype/clone co-evolution

51

  • 1. Generic metamodel for prototype-based languages
  • 2. Levels of consistency rigor between and
  • 3. Change types on and their impact on prototype/clone

consistency

  • 4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES PROTOTYPES CLONES CLONES PROTOTYPES PROTOTYPES

slide-52
SLIDE 52

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

slide-53
SLIDE 53

Framework for prototype/clone co-evolution

53

  • 1. Generic metamodel for prototype-based languages
  • 2. Levels of consistency rigor between and
  • 3. Change types on and their impact on prototype/clone

consistency

  • 4. Repair operations to re-establish prototype/clone consistency

PROTOTYPES CLONES PROTOTYPES CLONES PROTOTYPES CLONES PROTOTYPES

slide-54
SLIDE 54
  • 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 requires
  • 1. Detection of inconsistent clones through consistency constraint
  • 2. Application of repair operations on clones to resolve inconsistency

Operation L0 L1a L1b L1c L2 ObjectStore::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

slide-55
SLIDE 55
  • 4. Repair Operations to Re-Establish Prototype/Clone

Consistency

55

Example Desired 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 slots context Object [self.prototype <> OclUndefined] inv: self.prototype.slots ‐> forAll(pS | self.slots ‐> one(cS | pS.name = cS.name and pS.value = cS.value))

addSlot()

slide-56
SLIDE 56
  • 4. Repair Operations to Re-Establish Prototype/Clone

Consistency

56

Example Desired 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" do for (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()

slide-57
SLIDE 57

Challenge 3: Multiple Instantiations (1/2)

57 KUKA Mobile Robot Model A KUKA Mobile Robot Configuration

SystemUnitClass InternalElement baseSystemUnit 0..1

Metamodel Model KUKA Mobile Robot Configuration A KUKA Mobile Robot Exampler

slide-58
SLIDE 58

Challenge 3: Multiple Instantiations (2/2)

58 KUKA Mobile Robot Model A KUKA Mobile Robot Exampler

SystemUnitClass InternalElement baseSystemUnit 0..1

Metamodel Model A KUKA Mobile Robot Exampler @ T1 Operational Viewpoint

slide-59
SLIDE 59

Robot

RC

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 Mobile Robot Model MobileRobot A KUKA Mobile Robot Configuration A KUKA Mobile Robot Exampler

RC RC

Robot

RC

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).

slide-60
SLIDE 60

60

Lessons Learned

slide-61
SLIDE 61

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!
slide-62
SLIDE 62

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)

slide-63
SLIDE 63

Lesson Learned #3: Language Design

63

  • Reducing CAEX to Clabject

modeling language

  • Constraints for modeling concepts
  • n a particular level
  • Objects are potentially trees of
  • bjects
  • 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 *

* *

slide-64
SLIDE 64

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!
slide-65
SLIDE 65

65

Wrap-Up

slide-66
SLIDE 66

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?

slide-67
SLIDE 67

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

67

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

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

slide-68
SLIDE 68

68

The Future

slide-69
SLIDE 69

»Pre-Knowledge« MDE Practice in 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, …

Community Knowledge Explicit Knowledge

Consolidation, I ntegration, Verification, Com m unication, and I ndustrialization

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.

slide-70
SLIDE 70

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

slide-71
SLIDE 71

AML: Automation Markup Modeling Language!

Thank you!

Comments? Questions? Feedback?

Manuel Wimmer

wimmer@big.tuwien.ac.at Christian Doppler Laboratory (CDL-MINT)

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

71