Business Informatics Group
Institute of Software Technology and Interactive Systems
Vienna University of Technology
Favoritenstraße 9-11/188-3, 1040 Vienna, Austria
phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
office@big.tuwien.ac.at, www.big.tuwien.ac.at
Model-Based Co-Evolution of Production Systems
and their Libraries with AutomationML
20th IEEE International Conference on Emerging Technologies and
Factory Automation (ETFA) 2015
Luca Berardinelli, Stefan Biffl, Emanuel Maetzler,
Tanja Mayerhofer, Manuel Wimmer
Emerging Technology in Factory Automation 2015
2Best Paper Award
Introduction: AutomationML
3
 AutomationML (AML) standard for tool
data exchange
 AML docs are XML-based artifacts
 AML as pivotal language: Tool-
specific docs can be transformed in
AML docs
= domain = tool = doc
XML-based
artifacts
CAEX.xsd
overall system design
mechanical
engineering
electrical
engineering
software
engineering
Industry 4.0
Introduction: AutomationML Example
4
Lab-sized Production System
“Equipment Center for Distributed Systems,”
http://www.iafbg.ovgu.de/en/technische ausstattung cvs.html, Institute of
Ergonomics, Manufacturing Systems and Automation at Otto-v.-Guericke
University Magdeburg.
5
Turntable Conveyor
PI Controller
Introduction: AutomationML Example::Model Overview
AML Artifact
Wooden Block
Conveyor
Inductive
Sensor
Turntable
.plc
PLC Program
«conformsTo»
 Reusable model elements
collected in Libraries. Its
elements represents
prototypes.
 The model is obtained by
cloning elements from
libraries in hierarchies of
connected elements.
Its elements are cloned
from prototypes
«model»
mCLONES
Motor
∈
PROTOTYPES «library»
L∈
PI Controller
Introduction: (some) AutomationML Concepts
System Unit Class
• Reusable Modeling Elements as
System Unit Class Library
• Set of reusable modeling elements Wooden Block
Conveyor
PI Controller
Inductive
Sensor
Turntable
.plc
PLC Program
Motor
are
s
External Interface
• Elements’ connection points as
Internal Link
• Elements’ connection as
• Attributes
nominal speed = 9000
AML Artifact
PROTOTYPES «library»
L∈
name = value
AML concepts for representing L:
66
Introduction: (some) AutomationML Concepts
Inductive
Sensor
Motor
nominal speed = 9000
AML Artifact
Wooden Block
Conveyor
PI Controller
Inductive
Sensor
Turntable
.plc
PLC Program
Motor
nominal speed = 9000
Instance Hierarchy
• Main model container:
Internal Element
• Its constituting elements as
External Interface
• Elements’ connection points as
Internal Link
• Elements’ connection as
• Attributes
name = value
AML concepts for representing m:
«model»
mCLONES ∈
are
s
«clones»
6
Problem Description: Challenges
 Challenge: Evolution of engineering data has to be managed
 Engineers from diverse domains working in parallel
 Challenge: Co-evolution of prototypes and clones has to be managed
CLONES
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 7
Contribution: Framework for prototype/clone co-evolution
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
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 8
Contribution: Framework for prototype/clone co-evolution
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
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 9
Contribution: Framework for prototype/clone co-evolution
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
Engineer
Evolution
Co-evolution
CLONESCLONES
PROTOTYPESPROTOTYPES
10
Contribution: Framework for prototype/clone co-evolution
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
PROTOTYPESPROTOTYPES
CLONES
Co-evolution
Engineer
Evolution
11
1. Generic Metamodel for Prototype-Based Languages
 A general metamodel for prototypes
and clones (prototype clone metamodel,
PCMM) 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 *
*
*
12
PCMM
1. 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 *
*
*
Generic Artifact based on PCMM
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
13
PCMM
2. Levels of Consistency Rigor between Prototypes and Clones
Generic Artifact based on PCMM
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
«conforms to»
«library»
L
«model»
m
 Clones and prototypes
may evolve
independently
 Different levels of
consistency between
clones and prototypes
may apply
CLONES
14
2. 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
or classification mechanism
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: the same but values
Level 2: Full Compliance
 Clones may not evolve independently of
prototypes
PROTOTYPES
«conforms to»
«library»
L
«model»
m
 Clones and prototypes
may evolve
independently
 Different levels of
consistency between
clones and prototypes
may apply
CLONES
15
3. Change Types on Prototypes and their Impact on
Prototype/Clone Consistency
17
Operation L0 L1a L1b L1c L2
ObjectStore::createObject ↑ ↑ ↑ ↑ ↑
ObjectStore::deleteObject ≠ ≠ ≠ ≠ ≠
Object::addSlot ↑ ≠ ↑ ≠ ≠
Object::deleteSlot ↑ ↑ ≠ ≠ ≠
Object::modifySlot ↑ ≠ ≠ ↑ ≠
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 *
*
*
PROTOTYPES
«conforms to»
«library»
L‘
«model»
m‘
CLONES
Engineer
↑ = non-breaking
≠ =breaking
are
s
are
s
PCMM
Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
18
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘

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
Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
19
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘
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
s3: Slot
- name = "min rotation speed"
- value = 5800
addSlot()


Engineer
Evolution
Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
20
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2: Object
- id = 2
- name = "M1"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
CLONES
s3: Slot
- name = "min rotation speed"
- value = 5800
addSlot()
Engineer
Evolution
s4: Slot
- name = "min rotation speed"
- value = 5800
addSlot()


Co-evolution
Case Study: AutomationML
21
 Tool support
Object
Constraint
Language
- Metamodeling
- Modeling (Editor)
- Validation
- Co-evolution (fixing rules)
Conclusion
22
 Presented an approach for dealing with evolving libraries and co-
evolving system models
 Introduced a general metamodel to characterize prototype-based
languages
 Adapted the general metamodel for AutomationML
 Deduced a minimal change model and classified changes w.r.t.
consistency levels
 Showed possible tool support for consistency checks and (semi-)
automated fixing
 Ongoing and Future work:
 Define nesting and inheritance for prototypes in PCMM
 Full AutomationML support (e.g., interfaces and roles)
 Versioning support
Business Informatics Group
Institute of Software Technology and Interactive Systems
Vienna University of Technology
Favoritenstraße 9-11/188-3, 1040 Vienna, Austria
phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
office@big.tuwien.ac.at, www.big.tuwien.ac.at
Model-Based Co-Evolution of Production Systems
and their Libraries with AutomationML
20th IEEE International Conference on Emerging Technologies and
Factory Automation (ETFA) 2015
Luca Berardinelli, Stefan Biffl, Emanuel Maetzler,
Tanja Mayerhofer, Manuel Wimmer

Model-Based Co-Evolution of Production Systems and their Libraries with AutomationML

  • 1.
    Business Informatics Group Instituteof Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna, Austria phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at Model-Based Co-Evolution of Production Systems and their Libraries with AutomationML 20th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA) 2015 Luca Berardinelli, Stefan Biffl, Emanuel Maetzler, Tanja Mayerhofer, Manuel Wimmer
  • 2.
    Emerging Technology inFactory Automation 2015 2Best Paper Award
  • 3.
    Introduction: AutomationML 3  AutomationML(AML) standard for tool data exchange  AML docs are XML-based artifacts  AML as pivotal language: Tool- specific docs can be transformed in AML docs = domain = tool = doc XML-based artifacts CAEX.xsd overall system design mechanical engineering electrical engineering software engineering Industry 4.0
  • 4.
    Introduction: AutomationML Example 4 Lab-sizedProduction System “Equipment Center for Distributed Systems,” http://www.iafbg.ovgu.de/en/technische ausstattung cvs.html, Institute of Ergonomics, Manufacturing Systems and Automation at Otto-v.-Guericke University Magdeburg.
  • 5.
    5 Turntable Conveyor PI Controller Introduction:AutomationML Example::Model Overview AML Artifact Wooden Block Conveyor Inductive Sensor Turntable .plc PLC Program «conformsTo»  Reusable model elements collected in Libraries. Its elements represents prototypes.  The model is obtained by cloning elements from libraries in hierarchies of connected elements. Its elements are cloned from prototypes «model» mCLONES Motor ∈ PROTOTYPES «library» L∈ PI Controller
  • 6.
    Introduction: (some) AutomationMLConcepts System Unit Class • Reusable Modeling Elements as System Unit Class Library • Set of reusable modeling elements Wooden Block Conveyor PI Controller Inductive Sensor Turntable .plc PLC Program Motor are s External Interface • Elements’ connection points as Internal Link • Elements’ connection as • Attributes nominal speed = 9000 AML Artifact PROTOTYPES «library» L∈ name = value AML concepts for representing L: 66
  • 7.
    Introduction: (some) AutomationMLConcepts Inductive Sensor Motor nominal speed = 9000 AML Artifact Wooden Block Conveyor PI Controller Inductive Sensor Turntable .plc PLC Program Motor nominal speed = 9000 Instance Hierarchy • Main model container: Internal Element • Its constituting elements as External Interface • Elements’ connection points as Internal Link • Elements’ connection as • Attributes name = value AML concepts for representing m: «model» mCLONES ∈ are s «clones» 6
  • 8.
    Problem Description: Challenges Challenge: Evolution of engineering data has to be managed  Engineers from diverse domains working in parallel  Challenge: Co-evolution of prototypes and clones has to be managed CLONES PROTOTYPESPROTOTYPES CLONES Engineer Evolution Co-evolution 7
  • 9.
    Contribution: Framework forprototype/clone co-evolution 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 PROTOTYPESPROTOTYPES CLONES Engineer Evolution Co-evolution 8
  • 10.
    Contribution: Framework forprototype/clone co-evolution 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 PROTOTYPESPROTOTYPES CLONES Engineer Evolution Co-evolution 9
  • 11.
    Contribution: Framework forprototype/clone co-evolution 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 Engineer Evolution Co-evolution CLONESCLONES PROTOTYPESPROTOTYPES 10
  • 12.
    Contribution: Framework forprototype/clone co-evolution 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 PROTOTYPESPROTOTYPES CLONES Co-evolution Engineer Evolution 11
  • 13.
    1. Generic Metamodelfor Prototype-Based Languages  A general metamodel for prototypes and clones (prototype clone metamodel, PCMM) 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 * * * 12 PCMM
  • 14.
    1. Generic Metamodelfor 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 * * * Generic Artifact based on PCMM 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 13 PCMM
  • 15.
    2. Levels ofConsistency Rigor between Prototypes and Clones Generic Artifact based on PCMM 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 «conforms to» «library» L «model» m  Clones and prototypes may evolve independently  Different levels of consistency between clones and prototypes may apply CLONES 14
  • 16.
    2. Levels ofConsistency Rigor between Prototypes and Clones Level 0: Uncontrolled Compliance  Clones may evolve completely independent from Prototypes  Prototypes are solely used as templates or classification mechanism 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: the same but values Level 2: Full Compliance  Clones may not evolve independently of prototypes PROTOTYPES «conforms to» «library» L «model» m  Clones and prototypes may evolve independently  Different levels of consistency between clones and prototypes may apply CLONES 15
  • 17.
    3. Change Typeson Prototypes and their Impact on Prototype/Clone Consistency 17 Operation L0 L1a L1b L1c L2 ObjectStore::createObject ↑ ↑ ↑ ↑ ↑ ObjectStore::deleteObject ≠ ≠ ≠ ≠ ≠ Object::addSlot ↑ ≠ ↑ ≠ ≠ Object::deleteSlot ↑ ↑ ≠ ≠ ≠ Object::modifySlot ↑ ≠ ≠ ↑ ≠ 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 * * * PROTOTYPES «conforms to» «library» L‘ «model» m‘ CLONES Engineer ↑ = non-breaking ≠ =breaking are s are s PCMM
  • 18.
    Generic Artifact basedon PCMM 4. Repair Operations to Re-Establish Prototype/Clone Consistency 18 Example Desired consistency level: L1a Extension «conforms to» «library» L‘ «model» m‘  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
  • 19.
    Generic Artifact basedon PCMM 4. Repair Operations to Re-Establish Prototype/Clone Consistency 19 Example Desired consistency level: L1a Extension «conforms to» «library» L‘ «model» m‘ 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 s3: Slot - name = "min rotation speed" - value = 5800 addSlot()   Engineer Evolution
  • 20.
    Generic Artifact basedon PCMM 4. Repair Operations to Re-Establish Prototype/Clone Consistency 20 Example Desired consistency level: L1a Extension «conforms to» «library» L‘ «model» m‘ obj1: Object - id = 1 - name = "Motor" s1: Slot - name = "nominal speed" - value = 9000 obj2: Object - id = 2 - name = "M1" s2: Slot - name = "nominal speed" - value = 9000 +prototype +clones PROTOTYPES CLONES s3: Slot - name = "min rotation speed" - value = 5800 addSlot() Engineer Evolution s4: Slot - name = "min rotation speed" - value = 5800 addSlot()   Co-evolution
  • 21.
    Case Study: AutomationML 21 Tool support Object Constraint Language - Metamodeling - Modeling (Editor) - Validation - Co-evolution (fixing rules)
  • 22.
    Conclusion 22  Presented anapproach for dealing with evolving libraries and co- evolving system models  Introduced a general metamodel to characterize prototype-based languages  Adapted the general metamodel for AutomationML  Deduced a minimal change model and classified changes w.r.t. consistency levels  Showed possible tool support for consistency checks and (semi-) automated fixing  Ongoing and Future work:  Define nesting and inheritance for prototypes in PCMM  Full AutomationML support (e.g., interfaces and roles)  Versioning support
  • 23.
    Business Informatics Group Instituteof Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna, Austria phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at Model-Based Co-Evolution of Production Systems and their Libraries with AutomationML 20th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA) 2015 Luca Berardinelli, Stefan Biffl, Emanuel Maetzler, Tanja Mayerhofer, Manuel Wimmer