Automatizare Macarale-61-77
Automatizare Macarale-61-77
Automatizare Macarale-61-77
1. An application engineer receives the newest version of the Crane Core platform
and the tool from a central repository.
2. The application engineer runs the tool and follows the instructions for inputting
the crane specification. Alternatively, the engineer can load a previous crane
specification and continue with that.
4. After the configuration process has finished, the tool generates a log file, which
can be investigated for in-depth information about the results.
6. If the application engineer is satisfied with the results, the platform can then be
extended manually with application specific software. Otherwise, if the results
were not satisfactory, the platform can then be configured manually or the tool
could be run with different parameters.
6.1.3 Implementation
The tool is implemented with C# using .NET Framework SDK 4.8. It uses Windows
Forms UI framework2 for building the desktop user interface. The tool utilizes
.NET-based TIA Portal Openness API for interacting with TIA Portal, and it
requires the use of .NET Framework SDK 4.8. The implementation tries to follow
SOLID principles [52] and general Object-Oriented Programming (OOP) guidelines
by structuring the program into well-defined reusable objects.
The tool utilizes many of the .NET-based APIs and libraries. The most essential
ones are LINQ to XML3 , Json.NET4 and AeroWizard5 . LINQ to XML allows, for
example, manipulating XML trees, which makes it possible to import modified func-
tion blocks to TIA Portal. Json.NET allows JSON serialization and deserialization
of any .NET objects, which is used for saving and loading crane configuration data.
Finally, AeroWizard is used for creating the stepwise wizard user interface.
6.1.4 Design
The architecture of Crane Configurator consists of three main layers: presentation
layer, service layer and data layer, which can be seen in Figure 27. The presentation
layer is responsible for the user interface and the logic in it. It interacts with the user
and communicates the information to the service layer. The service layer implements
all of the configuration tasks and the connection to TIA Portal. It contains three
2
https://learn.microsoft.com/en-us/dotnet/desktop/winforms/?view=netdesktop-7.0
3
https://learn.microsoft.com/en-us/dotnet/standard/linq/linq-xml-overview
4
https://www.newtonsoft.com/json
5
https://github.com/dahall/AeroWizard
62
Figure 28: An overview of the Crane Configurator user interface. The figure shows
four of the six main views in the user interface: a) Welcome page b) General info
page c) Hardware configuration page d) Project generation options.
Parameter configuration and CRC issues are additional technical challenges that
the application engineers are facing. As variability in Crane Core is mostly realized
by parametrization, it is a major part of the platform configuration, and therefore
takes significant effort from the application engineers. CRC values, which are an
essential part of failsafe parameters, also bring their own challenges to the application
development. Although issues with CRC values can be quite situational, not planning
for them in advance can lead to significant work in the future.
Other essential and time-consuming configuration tasks, such as hardware and
machinery configuration, are also included in the application development process.
They are not as serious challenges as there are already valid approaches for managing
them that have been used in the past. During the discussion with the application en-
gineers, it was discovered that, for example, it is common to create project hardware
configuration from previous projects by applying the clone-and-own-approach. More-
over, configuring new machineries in Crane Core is not that common, as most of the
projects include three or four machineries, and the platform is already preconfigured
with four machineries. Although the clone-and-own technique does not fit into the
basis of SPLE, moving from an already validated and working approach to a new
practice could just cause more problems.
Another problem in crane application development is the lack of harmonization
among the development practices. During the analysis of different application projects,
it was noticed that individual application engineers working on different projects
have subjective design paradigms and individual programming practices, which
have been formed over time. As crane application specifications themselves vary
considerably, this makes maintenance and variability management increasingly more
difficult. As application projects diverge more and more from the common platform,
the development approach starts to transfer from SPLE to a more product-centric
development. As discussed in Section 2.3, solving issues then requires more effort as
they need to be addressed on a product-by-product basis [17].
An additional problem related to the development approaches is the difficulty in
sharing and utilizing reusable software artifacts. Although Crane Core manages to
capitalize on the commonalities and variabilities among crane applications, it does
not include many of the functionalities developed as part of the crane applications.
As a result, the application engineers must constantly communicate with each other
to find reusable artifacts and avoid reimplementing the same functionalities. All the
identified problems in crane application development are presented in Table 1 in
addition to the solutions implemented in Crane Configurator, which are covered in
the answer to the second research question.
keeping the tool user-friendly. Based on the collected data, three main tasks of
the application configuration were identified: hardware, machinery, and parameter
configuration. Each of these components are further divided into subtasks for more
specific configuration tasks.
Hardware configuration includes creating new field devices, setting their param-
eters and configuring the network that connects them. Machinery configuration
consists of configuring the appropriate number of machinery objects in the PLC
project and linking the I/O tags to hardware interface variables. Lastly, the parame-
ter configuration involves setting PLC program parameters based on a given crane
specification and calculating CRC values.
All these configuration tasks were included in Crane Configurator as they solve
the identified problems covered in the answer to the first research question. The
tasks are presented as solutions in Table 1 along with the corresponding problems
and their impact in application development.
Table 1: The identified problems in crane application development and the solutions
to them in Crane Configurator.
Problem Impact Solution
Laborious I/O tag Automated linking of the I/O tags to
High
configuration hardware interface variables
Automated parameter configuration
Laborious parameter
High based on a crane specification and
configuration
parameter templates
Laborious hardware Automated configuration of field
Low
configuration devices and network connections
Laborious addition/removal Automated configuration of
Low
of machinery objects machineries
Lack of harmonization
Automated standard approaches to
among crane application Medium
many configuration tasks
development
Difficulty in efficiently Automated reuse of components such
utilizing reusable software Medium as machinery objects and common
artifacts predefined field devices
66
7 Discussion
This chapter discusses the meaning and importance of the results of the study. First,
it addresses what has been confirmed and refuted, as well as what can be interpreted
based on the findings and the answers to the research questions. After that, the
chapter presents the contributions and the implications of this work, along with
its limitations. Finally, the validity threats of the research and their mitigation
strategies are discussed.
The research problem of the thesis was the lack of an automatic tool for configuring
varied crane applications in Konecranes Oyj. The problem was successfully resolved
by the development of a crane configurator tool, which allows for extending the
Software Product Line practices and better utilization of the Crane Core PLC
software platform in the company. Discussions with the application engineers and
the validation iteration confirmed that the tool is capable of reducing the workload
and time spent in the configuration process. It was also confirmed that the tool is
easy-to-use and can be extended with new features. From a technical standpoint, no
issues were found that would prevent the deployment and further development of
the tool.
Ideally, a crane configurator solution would produce a fully configured application
based on a given crane feature profile i.e., a product specification and the common
software platform. This form of process is described as a production line by Krueger
et al. [17], and it enables rapid production of variants for any of the products in a
product portfolio. In this kind of product factory, products are not manually created
but instantiated. However, this approach is not realistic for the entire crane product
family, as there will always be a demand for specialized custom crane solutions
that require some form of manual tailoring. Nevertheless, more automatic crane
application configuration could be achieved with further tool development in some of
the more standard solutions, which are mostly implemented by copying parts of the
software from earlier projects. With automatic generation of varying custom crane
applications, the benefits of SPLE discussed in Section 2.2.5 would be fully realized.
et al. [6] in which it was shown that clone-and-own is a simple and quickly available
method for reuse. The configurator tool cannot compete with the clone-and-own
approach in these aspects in its current form. However, in cases where additional
device parametrization is required in the hardware configuration, the tool would be
more valuable.
Furthermore, the tool supports the use of a central repository for reusable field
devices as part of the hardware configuration, realizing many of the benefits of
systematic reuse discussed in Section 2.2.5, such as increased productivity and
reduced maintenance overhead. To encourage wider adoption of the tool among the
application engineers, it is important to promote these benefits and convince them
that the tool is effective and yields better results compared to previous methods.
7.1.2 RQ2
Regarding the answer to the second research question, it was seen that solving
the identified problems required the inclusion of multiple configuration tasks in
the tool. Although the wide coverage of automated configuration tasks assists the
application engineers effectively in multiple areas, it also comes with its own challenge
of maintaining the implemented functionalities during the rapid development cycles
of both Crane Core and TIA Portal. Streamlining the tool to only focus on the
most important configuration tasks, such as I/O tag configuration, would reduce the
maintenance workload. However, it would then lose the potential of becoming an
extensive product configurator as part of an automated production line. The question
then becomes whether it is worth pursuing the Software Product Line approach
further in hopes of large long-term benefits or settling with a simpler support tool.
7.3 Limitations
Although the tool was validated to some degree by the author, the findings do not
fully support the practicality and maintainability of the tool in crane application
development. Some problems could possibly come to light only after full adaptation
of the tool among end-users. Nevertheless, even if the tool fails to effectively
support application engineers or becomes deprecated at some point, overall the study
has extensively contributed to the existing knowledge base and provided valuable
information to practitioners in the field of industrial automation as discussed in
Section 7.2.
An additional limitation of the study is the fact that the feasibility of using crane
feature models, which describe the relationships of the features, as part of the tool was
not assessed in the study. As variability modelling is an essential part of successful
SPLE, it is certainly something that could be further researched as a part of the
tool. For example, a similar kind of toolchain to the one that Papakonstantinou and
Sierla presented in their study [2], in which control software product line assets were
generated based on feature models, could provide additional value to the configurator
tool.
One major limitation of the developed configurator tool is its dependence on
Crane Core and TIA Portal automation software platforms. The tool is built around
both entities, and although the design considers the change sensitivity of the Crane
Core platform, it still requires that the common development rules of the platform
are followed and the applications are built in a predefined way. Waste-to-Energy
applications are generally built differently compared to other applications, and they do
not fully follow the defined configuration guidelines. This means that the configurator
tool offers less benefit when configuring WtE applications as, for example, the I/O
configuration of the tool does not follow the practices used in WtE applications.
Moreover, the dependence on TIA Portal through the use of TIA Portal Openness
API complicates the migration of the tool to support another automation platform.
Additionally, the frequent development cycles of both TIA Portal and TIA Portal
Openness cause the risk of increased maintenance efforts in the future.
69
Construct Validity: The author did not have experience in crane application
development and most of the knowledge was possessed by the application engineers
and not shared extensively within the company. Moreover, the application engineers
had limited knowledge of TIA Portal Openness and the concept of a product config-
urator in SPLE. For these reasons, there were some gaps of knowledge between the
author and the application engineers. This leads to the risk that some concepts and
terms might have been understood differently during the focus group discussions
with application engineers. To counter this threat, the discussed constructs are first
defined in the meetings to form a collective understanding among the participants.
Internal Validity: Since the focus group discussions consisted of multiple persons
and no previous contact was made with most of them, there is a risk that many of
them were cautious in their talks and did not properly express their opinions. This
suggests that the data collected during the discussions may have been incomplete,
or some valuable information may not have been captured. To mitigate this risk,
private discussions were held with some of the application engineers in which detailed
questions were asked in a more casual setting.
Because generally the focus groups only consisted of a handful of application
engineers, the gathered data might also have been inconsistent or biased based on the
individual experiences of the engineers. For example, the application engineers might
have different opinions on what they regard the most time-consuming or challenging
tasks in crane application development. This risk was tried to mitigate by selecting
a variety of different application engineers with diverse backgrounds and years of
experience as participants to the discussions. By cross verifying and gathering data
from multiple sources, known as triangulation [54], the findings are more reliable
while also widening the overall understanding of the data.
Furthermore, there is a possibility that some of the data collected from artifacts,
such as engineering documents and crane application projects, was incomplete or
inaccurate. Moreover, essential information might also have been missing from the
artifacts. This risk was countered by returning to the application engineers and
checking for accuracy with their experiences. This validation technique is called
member checking [55].
External Validity: This study was conducted only at one company with their
proprietary common software platform. Therefore, the evaluation of the configurator
tool is specific to that company and the findings from it are not generalizable in the
field of industrial automation. Moreover, the generalization within the company, for
example, to other crane types, is also limited due to the utilization of the particular
platform and technologies. However, the study acts as a representative case for
researchers and practitioners to encourage further research and development on
70
Software Product Line approaches in the automation industry. For example, the
study can be replicated in other domains with similar technologies or expanded within
the company. Additionally, researchers and practitioners interested in software reuse,
SPLE, or generative programming could extract parts from this study and expand
on them in their own work.
Reliability: As the author had previous knowledge of the common software platform
(Crane Core), C# and TIA Portal Openness API, it was a substantial benefit regarding
the development work of the tool. Other researchers with strong technical backgrounds
could easily replicate this study given a similar context. Application and platform
engineers were actively consulted during the work to mitigate subjective design
choices and to effectively drive the development of the tool towards the goals of the
stakeholders. Along with the use of triangulation and member checking, the study was
designed well with clear research questions and well-defined methodology to increase
reliability and ensure that the results are consistent, accurate, and reproducible.
71
8 Conclusions
8.1 Summary
This study examined the automatic configuration of a common PLC software plat-
form for creating industrial crane applications in the context of Software Product
Line Engineering. First, in Chapter 2, software reuse and variability management
approaches are discussed and compared. The chapter also described the benefits
of Software Product Line Engineering and how the concept can be realized in soft-
ware development. It also covered the reasons why non-systematic software reuse
approaches are still widely used despite their well-known drawbacks.
Chapter 3 presented an industrial crane, its control system and connection to
software development and variability management. It also discussed the common
software platform that contributed a major part of the tool development. The
methodology of the thesis was covered in Chapter 4. The chapter introduced Design
Science Research methodology, which provided a systematic approach for the tool
design, development, and evaluation. It also described the data collection methods
and technologies used throughout the study.
In Chapter 5, the development process of the tool is described during the four
iterations in the context of the regulative cycle framework. The chapter gave insight
into the development process by highlighting some of the challenges, technical details,
and results. Chapter 6 revisited the research questions of the thesis and presented
the results regarding the finished tool implementation. Finally, Chapter 7 showed
how the findings fit the existing knowledge, how they contributed and what were the
limitations of the study. It also covered threats to the validity of the research and
how they were mitigated.
References
[1] R. Bashroush, M. Garba, R. Rabiser, I. Groher, and G. Botterweck, “Case tool
support for variability management in software product lines,” ACM Comput.
Surv., vol. 50, no. 1, 2017. [Online]. Available: https://doi.org/10.1145/3034827
[9] D. Faust and C. Verhoef, “Software product line migration and deployment,”
Software: Practice and Experience, vol. 33, no. 10, pp. 933–955, 2003. [Online].
Available: https://doi.org/10.1002/spe.530
[12] C. W. Krueger, “Software reuse,” ACM Comput. Surv., vol. 24, no. 2, p.
131–183, 1992. [Online]. Available: https://doi.org/10.1145/130844.130856
[14] L. Northrop, “Sei’s software product line tenets,” IEEE Software, vol. 19, no. 4,
pp. 32–40, 2002. [Online]. Available: https://doi.org/10.1109/MS.2002.1020285
[16] J. Klein, G. Chastek, S. Cohen, R. Kazman, and J. McGregor, “An early look
at defining variability requirements for system of systems platforms,” in 2012
Second IEEE International Workshop on Requirements Engineering for Systems,
Services, and Systems-of-Systems (RESS), 2012, pp. 30–33. [Online]. Available:
https://doi.org/10.1109/RES4.2012.6347693
[17] C. Krueger and P. Clements, “Systems and software product line engineering,”
Encyclopedia of Software Engineering, vol. 2, pp. 1–14, 2013.
[34] Konecranes Oyj, “Material bank,” 2023, unpublished internal company database.
[35] H. S. Bedi and K. Arora, “Monitoring and controlling of industrial crane using
programmable logic controllers,” Indonesian Journal of Electrical Engineering
and Informatics (IJEEI), vol. 3, no. 2, pp. 115–118, 2015.
[39] Konecranes Oyj, “Software architecture document crane core,” 2023, unpublished
internal company document.
[40] ——, “Feature description document crane core,” 2023, unpublished internal
company document.
[43] P. Runeson and M. Höst, “Guidelines for conducting and reporting case study
research in software engineering,” Empirical Software Engineering, vol. 14, pp.
131–164, 2009.
[47] ——, “Simatic tia portal openness: Api for automation of engi-
neering workflows,” 2023, online; accessed 6-April-2023. [Online].
Available: https://support.industry.siemens.com/cs/document/109815199/
simatic-tia-portal-openness-api-for-automation-of-engineering-workflows?dti=
0&lc=en-GB
[51] H. Pham, Software reliability. Springer Science & Business Media, 2000.