model-based co-evolution of production systems and their libraries with automationml
TRANSCRIPT
Business Informatics GroupInstitute of Software Technology and Interactive Systems Vienna University of TechnologyFavoritenstraße 9-11/188-3, 1040 Vienna, Austriaphone: +43 (1) 58801-18804 (secretary), fax: +43 (1) [email protected], 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 in Factory Automation 2015
Best Paper Award
3
Introduction: AutomationML
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-basedartifacts
CAEX.xsd
overall system design
mechanical engineering
electricalengineering
softwareengineering
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 BlockConveyor
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 BlockConveyor
PI ControllerInductive
Sensor
Turntable
.plc
PLC ProgramMotor
are
s
External Interface
• Elements’ connection points as
Internal Link
• Elements’ connection as
• Attributes
nominal speed = 9000
AML ArtifactPROTOTYPES «library»L∈
name = value
AML concepts for representing L:
66
Introduction: (some) AutomationML Concepts
Inductive Sensor
Motornominal speed = 9000
AML Artifact
Wooden BlockConveyor
PI ControllerInductive
Sensor
Turntable
.plc
PLC ProgramMotor
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
EngineerEvolution
Co-evolution 7
Contribution: Framework for prototype/clone co-evolution
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
EngineerEvolution
Co-evolution 8
Contribution: Framework for prototype/clone co-evolution
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
EngineerEvolution
Co-evolution 9
Contribution: Framework for prototype/clone co-evolution
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
EngineerEvolution
Co-evolution
CLONESCLONES
PROTOTYPESPROTOTYPES
10
Contribution: Framework for prototype/clone co-evolution
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
Co-evolution
EngineerEvolution
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 ClonesGeneric 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
17
3. Change Types on Prototypes and their Impact on Prototype/Clone Consistency
Operation L0 L1a L1b L1c L2ObjectStore::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 based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone Consistency
ExampleDesired 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 based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone Consistency
ExampleDesired 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 based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone Consistency
ExampleDesired 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
Tool support
Object Constraint Language
- Metamodeling- Modeling (Editor)
- Validation- Co-evolution (fixing rules)
22
Conclusion
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 GroupInstitute of Software Technology and Interactive Systems Vienna University of TechnologyFavoritenstraße 9-11/188-3, 1040 Vienna, Austriaphone: +43 (1) 58801-18804 (secretary), fax: +43 (1) [email protected], 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