This presentation was given at the 4th International Workshop on The Globalization of Modeling Languages (GEMOC) 2016 (http://gemoc.org/gemoc2016/).
Abstract:
AutomationML is an emerging IEC standard for storing and exchanging engineering data among the heterogeneous software tools involved in the engineering of production systems. One important subset of such engineering data is the plant behavior. To make this data exchangeable, AutomationML uses the existing industry data format PLCopen XML. However, at the development stages of production systems, the plant behavior is usually defined using other representation means, such as Gantt charts, impulse diagrams, and sequential function charts. To make such plant behavior models exchangeable, AutomationML introduces the so-called Intermediate Modeling Layer (IML) with corresponding transformation rules to decouple the employed modeling languages from the target format PLCopen XML. However, IML itself as well as the transformations from and to IML are only semi-formally described. This not only hinders the adoption of IML as a common language for representing plant behavior, but also renders impossible the composition of heterogeneous plant behavior models for carrying out integrated analyses of the global plant behavior. In this work, we aim at clarifying syntactical and semantical aspects of IML by proposing a metamodel and operational semantics for IML. This constitutes the first step towards formalizing and validating transformations between behavioral modeling languages currently employed in the production domain (e.g., Gantt charts), IML, and PLCopen XML. Having this foundation, we aim at utilizing IML as the semantic domain for the composition of heterogeneous plant behavior models.
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
Towards the Semantic Integration of Plant Behavior Models with AutomationML’s Intermediate Modeling Layer
1. Business Informatics Group
Institute of Software Technology and Interactive Systems
TU Wien
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
Towards the Semantic Integration of Plant Behavior Models
with AutomationML’s Intermediate Modeling Layer
Tanja Mayerhofer, Manuel Wimmer, Luca Berardinelli, Emanuel Mätzler
Business Informatics Group, TU Wien, Austria
Nicole Schmidt
Faculty of Mechanical Engineering, Otto-v.-Guericke University Magdeburg, Germany
Tanja Mayerhofer
2. 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
Production Systems Engineering Motivation
2
domain
tool
artifact
Software
Engineering
Control
Engineering
Mechanical
Engineering
Electrical
Engineering
3. Automation Markup Language Motivation
Open, vendor neutral, free XML format for the storage and exchange of
plant engineering data
Integrates, extends and adapts existing standard XML data formats
International Electrotechnical Commission (IEC) standard 62714
3
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
4. Plant Behavior Models Motivation
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
4
5. Plant Behavior Models Motivation
Translations from/to PLCopen XML
5
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>
6. Plant Behavior Models Motivation
Translations from/to PLCopen XML
6
Tool A
Tool B
Tool C
Gantt Chart
PERT Chart
Impulse Diagram
…
Diverse Plant Behavior
Modeling Languages
Complex transformations
PLCopen XML
(IEC 61131-10)
<SFC>
<actionBlock>
<action>
<addData>
<data name=”http://
<AutomationML>
<ActionStatus>
current
</ActionStatus>
</AutomationML>
</data>
</addData>
<action>
</actionBlock>
7. Intermediate Modeling Layer Motivation
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
7
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>
8. Semi-formal Definition of IML Problem
IML and the transformations from/to IML are only semi-formally defined
Arising Problems:
How to validate that transformations are correct?
How to check semantic preservation?
How to compose heterogeneous models?
8
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>
No formal definitions
9. IML as Semantic Domain and Integration Layer for
Plant Behavior Models Contribution
9
M2M … Model-to-Model Transformation
MM … Metamodel
OS … Operational Semantics
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>
M2MM2M
Syntax Semantics
MM OS
10. IML as Semantic Domain and Integration Layer for
Plant Behavior Models Contribution
10
M2M … Model-to-Model Transformation
MM … Metamodel
OS … Operational Semantics
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>
M2MM2M
Syntax Semantics
MM OS
11. Metamodel for IML Contribution
11
Comment
content : String
ElementHeader
name : String
Variable
name : String
type : String
content : String
SIUnit : String
initialValue : String
address : String
SelectionConvergence
SelectionDivergence
SimultaneousConvergence
SimultaneousDivergence
members
*
activities
*
booleanGuard
0..1
source1target1
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
13. Operational Semantics for IML Contribution
13
IML Operational Semantics
IML Abstract Syntax
«merge»
Header
execute()
State
current : boolean
activate()
deactivate()
executeActivities()
/currentStates
*
ConnectionPoint
isEnabled() : boolean
fire()
Variable
value : String
Activity
execute()
current : boolean
14. Operational Semantics for IML Contribution
14
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
source1target1
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 *
15. Operational Semantics for IML Contribution
15
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
source1target1
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 *
begin
initial ← {m ∈ members |
m.isTypeOf(State) ∧ m.init}
initial.activate()
terminate ← false
while ¬terminate do
foreach s ∈ currentStates do
if s.target.isEnabled() then
s.target.fire()
if ts ∈ {cs ∈ currentStates |
cs.terminal} then
terminate ← true
16. Tool Support for IML Contribution
Workbench: GEMOC Studio
http://gemoc.org/studio
Implementation of IML
Abstract syntax: Ecore
Concrete syntax: Sirius
Operational semantics: Kermeta
Code repository:
https://github.com/moliz/moliz.gemoc/tree/master/examples/iml
16
The engineering of industry plants is a multidisciplinary process involving various engineering disciplines, such as mechanical engineering, electrical engineering, control engineering, HMI (human-machine) interface engineering, etc.
In such a complex process, the engineers are using specialized tools optimized for performing their engineering activities and they produce diverse artifacts specific to the task at hand.
Therefore, a heterogeneous landscape of engineering tools is needed for designing, running, and maintaining a production system.
Furthermore, engineering a production system is a multi-staged process with different development stages in which engineering activities are executed in parallel.
Thereby, different engineering activities depend on each other and require results of other engineering activities.
Thus, the need for exchange artifacts/engineering data between the heterogeneous tools arises.
How is this data exchange currently achieved?
In most cases artifacts are exchanged via PDFS or print-outs and models have to be manually re-defined in specific tools.
For instance, hall plans created in a specialized tool, such as MicroStation, are re-defined in tools specialized for production line planning; or time schedules developed by mechanical engineers with Microsoft Office tools are manually transferred to PLC programming IDEs.
This is of course highly inefficient and error-prone and leads to substantial costs in the engineering process.
In the light of current movements towards smart production systems, this becomes an even bigger problem, since they demand for more flexibility of production systems, which increases the frequency of engineering activities and the need for integrating engineering activities, engineering tools and improving the cooperation among engineers.
AutomationML Consortium: industrial consortium founded 2006, initiated by Daimler; early members: ABB, KUKA, Rockwell Automation, Siemens, NettAllied, Zühlke, university of Karlsruhe and Magdeburg.
CAEX:
Topology data defining the hierarchical structure of the production system resources ranging from plant level over cell and function levels down to devices and mechanical parts; defining their attributes, relations, interfaces
COLLADA:
Mechanical construction of the production system reflected by geometry and kinematics. Usually it is given by mechanical drawings (MCAD). In addition it contains physical properties like forces, speed, and torsion; or chemical properties like material information.
PLCopen XML:
Control related logic data
Information relevant to characterize the function of a production system component. Thus, it contains functional models of controlled and uncontrolled behavior, functional parameters, technological parameters, etc. all relevant to appropriately describe the production process as well as other processes executable by the component.
Further XML Standard Formats
PLCopen XML is a standard XML format for exchanging PLC code used for programming industrial electo-mechanical processes (industrial control programming).
I.e., the aim is to enable the exchange of PLC (Programmable Logic Controller) programs, libraries and projects between development environments.
(PLCopen XML is a data format applicable as an open interface between all different kinds of software environments providing the ability to transfer PLC programming project information to other platforms.)
In particular, it allows to exchange PLC programs written in any of the five programming languages defined in the IEC 61131 standards.
IEC 61131 programming languages:
- Structured text (textual)
- Instruction list (textual)
- Ladder Diagram (graphical)
- Function Block Diagram (graphical)
- Sequential Function Charts (SFC)
Range from abstract process planning modelled as sequences with Gantt or PERT Charts (planning: plant planning, mechanical engineering, electrical engineering)
over sequencing and interlocking of field device signals modelled by Impulse Diagrams and Logic Networks (PLC programming, robot programming, HMI programming; Impulse diagram: control system behavior; Logical networks: Interlocking)
down to detailed code representation as PLCopen programs or detailed component behaviour modelling based on the automaton approach following Harels State Charts [22]. (SFC+Statechart: mechanical engineering, electrical engineering, PLC programming, robot programming, HDMI programming, virtual commissioning)
Gantt charts: discrete event models to describe the order and execution time of activities.
PERT charts: network plans; describe and analyze temporal relations of the execution of a set of interdependent nodes (timing and interdependence of manufacturing processes).
Impulse diagrams: temporal course of states of system components together with signals among them to activate state changes.
SFC: easy implementation of sequences of operations within controlled system; state-based operation sequences, temporal conditions
State charts: reachable state space
PLCopen XML is a standard XML format for exchanging PLC code used for programming industrial electomechanical processes (industrial control programming).
I.e., the aim is to enable the exchange of PLC (Programmable Logic Controller) programs, libraries and projects between development environments.
(PLCopen XML is a data format applicable as an open interface between all different kinds of software environments providing the ability to transfer PLC programming project information to other platforms.)
In particular, it allows to exchange PLC programs written in any of the five programming languages defined in the IEC 61131 standards.
IEC 61131 programming languages:
- Structured text (textual)
- Instruction list (textual)
- Ladder Diagram (graphical)
- Function Block Diagram (graphical)
- Sequential Function Charts (SFC)
Range from abstract process planning modelled as sequences with Gantt or PERT Charts (planning: plant planning, mechanical engineering, electrical engineering)
over sequencing and interlocking of field device signals modelled by Impulse Diagrams and Logic Networks (PLC programming, robot programming, HMI programming; Impulse diagram: control system behavior; Logical networks: Interlocking)
down to detailed code representation as PLCopen programs or detailed component behaviour modelling based on the automaton approach following Harels State Charts [22]. (SFC+Statechart: mechanical engineering, electrical engineering, PLC programming, robot programming, HDMI programming, virtual commissioning)
Gantt charts: discrete event models to describe the order and execution time of activities.
PERT charts: network plans; describe and analyze temporal relations of the execution of a set of interdependent nodes (timing and interdependence of manufacturing processes).
Impulse diagrams: temporal course of states of system components together with signals among them to activate state changes.
SFC: easy implementation of sequences of operations within controlled system; state-based operation sequences, temporal conditions
State charts: reachable state space
PLCopen XML is a standard XML format for exchanging PLC code used for programming industrial electomechanical processes (industrial control programming).
I.e., the aim is to enable the exchange of PLC (Programmable Logic Controller) programs, libraries and projects between development environments.
(PLCopen XML is a data format applicable as an open interface between all different kinds of software environments providing the ability to transfer PLC programming project information to other platforms.)
In particular, it allows to exchange PLC programs written in any of the five programming languages defined in the IEC 61131 standards.
IEC 61131 programming languages:
- Structured text (textual)
- Instruction list (textual)
- Ladder Diagram (graphical)
- Function Block Diagram (graphical)
- Sequential Function Charts (SFC)
Range from abstract process planning modelled as sequences with Gantt or PERT Charts (planning: plant planning, mechanical engineering, electrical engineering)
over sequencing and interlocking of field device signals modelled by Impulse Diagrams and Logic Networks (PLC programming, robot programming, HMI programming; Impulse diagram: control system behavior; Logical networks: Interlocking)
down to detailed code representation as PLCopen programs or detailed component behaviour modelling based on the automaton approach following Harels State Charts [22]. (SFC+Statechart: mechanical engineering, electrical engineering, PLC programming, robot programming, HDMI programming, virtual commissioning)
Gantt charts: discrete event models to describe the order and execution time of activities.
PERT charts: network plans; describe and analyze temporal relations of the execution of a set of interdependent nodes (timing and interdependence of manufacturing processes).
Impulse diagrams: temporal course of states of system components together with signals among them to activate state changes.
SFC: easy implementation of sequences of operations within controlled system; state-based operation sequences, temporal conditions
State charts: reachable state space
Is currently under standardization (IEC 62714-4). International Electrotechnical Commission.
Thereby, IML does not constitute a new language, but is instead based on the sequential
function charts (SFC) language defined by the IEC 61131-3 standard [17]. Therewith,
IML essentially allows the definition of plant behaviors as discrete state-based operation
sequences. However, IML applies restrictions on SFCs to simplify mappings from and
to IML, and also extends SFCs to make plant behavior models defined with different
languages expressible with IML.
However, by clarifying these aspects of IML, a true exchange of plant behavior models could be achieved and we could even go one step further, namely use IML also as a semantic integration layer for plant behavior models.
And this is what we are proposing in this paper.
In particular, we are proposing to give IML a formal grounding, i.e., formalizing its syntax and semantics and to also formalize the transformations from and to IML by means of model-to-model transformations.
Having that we could actually validate the transformations in terms of checking that they are semantic preserving.
In fact, we could then use IML as semantic domain for plant behavior models allowing us to analyze dynamic properties of that models in IML. For instance, we could conduct model simulations for plant behavior models, check refinement relationships, check consistency among heterogeneous plant behavior models etc.
And we would like to go even one step further and utilize IML as a semantic integration layer for plant behavior models. So we could compose heterogeneous plant behavior models in IML and perform analyses of the global plant behavior expressed in those models.
In this work, we did the first step towards achieving this.
In particular, we defined a metamodel for IML that formalizes its abstract syntax, and we defined an operational semantics for IML formalizing its execution semantics, and we utilized these formalizations to conduct model simulations.
Let’s have a look at these developed artifeacts.
Here you can see an excerpt of the metamodel that we defined for IML.
As I said before, IML is based on sequential function chars, and thus, allows to define basically discrete state-based operation sequences.
So the main elements of IML are States that can execute a sequence of activities and that are connected with state transitions. Besides that there are control structures for expressing concurrent branches in the behavior of elements and alternative branches.
For defining the operational semantics of IML models, we defined additional properties for representing the execution state of an IML model and operations that implement the execution steps involved in the execution.