Professional Documents
Culture Documents
Eetu Suominen
Supervisor
Advisor
Preface
I would like to thank my advisor Imed Hammouda for all the support during the
thesis process. Without the many discussions and the invaluable feedback, the thesis
would not have reached its current shape. I could not have imagined a better advisor.
I would also like to thank Valeriy Vyatkin for supervising the thesis. I am also
grateful to my manager Otso Karhu for the opportunity to work on this topic at
Konecranes. Additionally, I would like to extend my thanks to my friends and fellow
students, Matias Mäki-Leppilampi and Sampo Vänninen for their proofreading and
the insightful conversations during lunches.
Finally, I would like to thank my dear family for supporting me in everything I
do. Without them, I would not be where I am today.
Otaniemi, 29.5.2023
Eetu Suominen
6
Contents
Abstract 3
Preface 5
Contents 5
Abbreviations 9
Glossary 9
1 Introduction 11
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Research Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Goal of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Scope, Limitations and Delimitations . . . . . . . . . . . . . . . . . . 13
1.5 Structure of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Methodology 36
4.1 Design Science Research . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Research Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Regulative Cycle Framework . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1 Problem Investigation . . . . . . . . . . . . . . . . . . . . . . 38
4.3.2 Solution Design . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.3 Design Validation . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Data Collection Methods . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4.1 Focus Group Discussions . . . . . . . . . . . . . . . . . . . . . 40
4.4.2 Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5 Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5.1 Totally Integrated Automation Portal . . . . . . . . . . . . . . 40
4.5.2 TIA Portal Openness . . . . . . . . . . . . . . . . . . . . . . . 41
4.5.3 .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5.4 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 Iterations 43
5.1 Iteration 1: Piloting . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Problem Investigation . . . . . . . . . . . . . . . . . . . . . . 43
5.1.2 Solution Design . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.3 Design Validation . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Iteration 2: I/O Tag Configuration . . . . . . . . . . . . . . . . . . . 50
5.2.1 Problem Investigation . . . . . . . . . . . . . . . . . . . . . . 50
5.2.2 Solution Design . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2.3 Design Validation . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Iteration 3: Configuration Wizard . . . . . . . . . . . . . . . . . . . . 54
5.3.1 Problem Investigation . . . . . . . . . . . . . . . . . . . . . . 54
5.3.2 Solution Design . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.3 Design Validation . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Iteration 4: Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4.1 Problem Investigation . . . . . . . . . . . . . . . . . . . . . . 58
8
6 Results 60
6.1 Crane Configurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.1.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.1.2 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.1.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.1.4 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.1.5 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2 Answers to Research Questions . . . . . . . . . . . . . . . . . . . . . 63
7 Discussion 66
7.1 Revisiting Research Questions . . . . . . . . . . . . . . . . . . . . . . 66
7.1.1 RQ1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.1.2 RQ2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2 Contributions and Implications . . . . . . . . . . . . . . . . . . . . . 67
7.3 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.4 Validity Threats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8 Conclusions 71
8.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.2 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.3 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9
Abbreviations
AML Automation Markup Language
API Application Programming Interface
CBD Component Based Development
CPU Central Processing Unit
CRC Cyclic Redundancy Check
DLL Dynamic Link Library
DSR Design Science Research
FBD Function Block Diagram
GSD General Station Description
GSDML General Station Description Markup Language
HMI Human-Machine Interface
I/O Input/Output
IEC International Electrotechnical Commission
IP Internet Protocol
IPC Industrial Personal Computer
LD Ladder Diagram
OOP Object-Oriented Programming
PLC Programmable Logic Controller
SCADA Supervisory Control And Data Acquisition
SFC Sequential Function Chart
SPL Software Product Line
SPLE Software Product Line Engineering
ST Structured Text
TIA Totally Integrated Automation
UI User Interface
UX User Experience
WtE Waste-to-Energy
XML Extensible Markup Language
10
Glossary
Artifact
Item produced during a software development life cycle.
Asset
An artifact that has a particular value and is intended to be reused.
Component
A clearly defined part of software that fulfills functionality within a software
system.
Crane application
Complete crane control software designed to meet customer requirements.
Crane Core
Proprietary PLC software platform that contains the essential functionalities
of crane control.
I/O tag
Symbolic name representing hardware input/output signal address used in a
PLC program.
Machinery
Crane Core software object that manages features related to one type of
movement axis of a crane, such as a hoist, a trolley, and a bridge.
1 Introduction
1.1 Motivation
To be successful, software development business requires certain aspects which include
reducing time to market, improving software quality, and being cost-effective [1].
Software Product Lines (SPLs), which are collections of similar software products,
aim to address these aspects by extensive and planned reuse of modular software
artifacts. Product lines offer many product options to customers while also reducing
development time and costs [2]. A key step in Software Product Line Engineering
(SPLE) is variability management in which commonalities and variabilities are
identified and managed among software variants and versions arising throughout the
development processes [1]. SPLE is often successfully applied in the field of software
engineering, however the approach is still not widespread in industrial automation,
where the importance of software has increased due to the achieved benefits in
flexibility and costs [3, 2].
The limited adaptation of SPLE is mostly due to the laborious identification
process of reusable software artifacts combined with the interdisciplinary nature of
industrial automation [3]. In the automation software industry, variants also arise
from modifications in other disciplines, such as electrical and mechanical engineering
(i.e., exchange of a sensor). Moreover, not all Programmable Logic Controller (PLC)
suppliers in the automation industry support the object-oriented extensions to
International Electrotechnical Commission (IEC) 61131-3 standard [4]. This can
cause variability management to be more difficult, as concepts such as inheritance
are not possible to implement.
Moreover, the automation industry commonly creates new software variants from
existing control software by copying and subsequently modifying [5]. This product-
centric development approach is referred to as clone-and-own. Despite its drawbacks,
it is a software reuse approach widely used and favored by many practitioners due
to its simplicity and availability [6]. However, in this kind of opportunistic and
unplanned software artifact reuse approach, tracking different types of variants is
difficult and usually proper documentation is not maintained. As a result, this causes
severe maintenance issues in the future [5]. This is because modifications inherently
cause the variants to diverge from their origin, increasing maintenance overhead as
changes must be propagated to all clones [7, 8].
This uncontrolled growth of variant systems, called software mitosis [9], will
eventually lead to a loss of overview [7]. Over time, the growth and compounding
of specific changes in these variant systems cause future changes to be even more
difficult and costly [9]. To achieve sustainable development, software variants must
be compared to extract commonalities and variabilities in them [7]. Maintenance
and software updates become easier when all the variants are formed from a common
software platform, which is then extended based on the captured variabilities. This
reduces maintenance effort as changes do not have to be merged with each individual
variant, only the shared codebase needs to be updated. However, depending on the
situation, this kind of approach might not always be possible or beneficial. Moreover,
12
eliminating clones and adopting a shared software platform increases coupling and
requires all systems to be retested in case the shared codebase is modified [6].
Overall, systematic software reuse and variability management are essential in terms
of competitiveness. With the increasing complexity of automation software systems
and the growing number of variants, managing variability becomes a challenging task
that requires considerable amount of time and effort.
To answer the research questions, discussions are held with crane application
engineers to identify the underlying variabilities and required configuration tasks while
also receiving insight into the current state of the application development processes.
Additionally, part of the identification process includes investigating the software of
the application variants as well as reading engineering and commissioning manuals.
The work will follow Design Science Research (DSR) methodology to identify and
understand the tool requirements prior to the development and evaluation of the
solution. The work will consist of multiple iterations in which a regulative cycle
framework is applied. The goal of each iteration is to improve the solution based
on the evaluation of the previous iteration. The regulative cycle in each iteration
consists of five phases: problem investigation, solution design, design validation,
implementation, and evaluation.
In addition, this thesis will only cover control software configuration in industrial
crane applications. It will not address other software systems (e.g., motor controller
software and web user interface) that can be included in crane applications. The
reason for this is that the other software systems are already mostly preconfigured
with no significant variability between the applications, while the control software
configuration remains the most time-consuming phase. Integration of other software
systems, such as a sales tool, to the configuration tool were also excluded from this
work. The configurator tool will be designed to support industrial cranes using Crane
Core software platform developed by Konecranes Oyj and implemented in Siemens’
Totally Integrated Automation (TIA) Portal automation software, meaning that
other crane types and automation software vendors are not considered in the scope
of this thesis.
The work is limited to the use of the Crane Core software platform as it is
the base software used in the delivered industrial cranes of the client of this work,
Konecranes Oyj. As a result, the developed configurator tool is also then limited by
the platform in terms of what should be configured in the software. The automation
software in which Crane Core is built also limits the choices of technology for the
automated configuration. The technologies chosen by the author, which are used
for configuring the software platform and building the tool, also have their own
technological limitations.