# Exploring Code Clones in Programmable Logic Controller Software

**Authors:** Hannes Thaller, Rudolf Ramler, Josef Pichler, Alexander Egyed

arXiv: 1706.03934 · 2018-06-26

## TL;DR

This paper investigates code clones in PLC software, extending detection tools for IEC 61131-3 languages, and evaluates clone types and their impact on software maintenance in industrial automation.

## Contribution

It introduces an extended clone detection tool tailored for IEC 61131-3 languages and analyzes clone characteristics in real-world PLC systems.

## Key findings

- Clone detection is feasible and useful for PLC software.
- Different clone types have varying relevance for refactoring.
- Tool adaptation improves clone management in industrial automation.

## Abstract

The reuse of code fragments by copying and pasting is widely practiced in software development and results in code clones. Cloning is considered an anti-pattern as it negatively affects program correctness and increases maintenance efforts. Programmable Logic Controller (PLC) software is no exception in the code clone discussion as reuse in development and maintenance is frequently achieved through copy, paste, and modification. Even though the presence of code clones may not necessary be a problem per se, it is important to detect, track and manage clones as the software system evolves. Unfortunately, tool support for clone detection and management is not commonly available for PLC software systems or limited to generic tools with a reduced set of features. In this paper, we investigate code clones in a real-world PLC software system based on IEC 61131-3 Structured Text and C/C++. We extended a widely used tool for clone detection with normalization support. Furthermore, we evaluated the different types and natures of code clones in the studied system and their relevance for refactoring. Results shed light on the applicability and usefulness of clone detection in the context of industrial automation systems and it demonstrates the benefit of adapting detection and management tools for IEC 611313-3 languages.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1706.03934/full.md

## Figures

8 figures with captions in the complete paper: https://tomesphere.com/paper/1706.03934/full.md

## References

45 references — full list in the complete paper: https://tomesphere.com/paper/1706.03934/full.md

---
Source: https://tomesphere.com/paper/1706.03934