https://www.mdu.se/

mdu.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
PyLC: A Framework for Transforming and Validating PLC Software using Python and Pynguin Test Generator
Mälardalen University, School of Innovation, Design and Engineering, Embedded Systems.
Mälardalen University, School of Innovation, Design and Engineering, Embedded Systems.ORCID iD: 0000-0003-2416-4205
Mälardalen University, School of Innovation, Design and Engineering, Embedded Systems.ORCID iD: 0000-0003-0611-2655
Mälardalen University, School of Innovation, Design and Engineering, Embedded Systems.ORCID iD: 0000-0003-2870-2680
2023 (English)In: Proceedings of the ACM Symposium on Applied Computing, Association for Computing Machinery , 2023, p. 1476-1485Conference paper, Published paper (Refereed)
Abstract [en]

Many industrial application domains utilize safety-critical systems to implement Programmable Logic Controllers (PLCs) software. These systems typically require a high degree of testing and stringent coverage measurements that can be supported by state-of-the-art automated test generation techniques. However, their limited application to PLCs and corresponding development environments can impact the use of automated test generation. Thus, it is necessary to tailor and validate automated test generation techniques against relevant PLC tools and industrial systems to efficiently understand how to use them in practice. In this paper, we present a framework called PyLC, which handles PLC programs written in the Function Block Diagram and Structured Text languages such that programs can be transformed into Python. To this end, we use PyLC to transform industrial safety-critical programs, showing how our approach can be applied to manually and automatically create tests in the CODESYS development environment. We use behaviour-based, translation rules-based, and coverage-generated tests to validate the PyLC process. Our work shows that the transformation into Python can help bridge the gap between the PLC development tools, Python-based unit testing, and test generation.

Place, publisher, year, edition, pages
Association for Computing Machinery , 2023. p. 1476-1485
Keywords [en]
code translation, FBD, IEC 61131-3, PLC, pynguin, python, ST, translation validation, Accident prevention, Application programs, Automation, Programmable logic controllers, Software testing, Applications domains, Automated test generations, Development environment, Generation techniques
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:mdh:diva-63850DOI: 10.1145/3555776.3577698ISI: 001124308100209Scopus ID: 2-s2.0-85162895923ISBN: 9781450395175 (print)OAI: oai:DiVA.org:mdh-63850DiVA, id: diva2:1782206
Conference
38th Annual ACM Symposium on Applied Computing, SAC 2023, Tallinn, Estonia, 27 March 2023 through 31 March 2023
Available from: 2023-07-12 Created: 2023-07-12 Last updated: 2024-04-02Bibliographically approved
In thesis
1. Enabling Test Automation for Industrial PLC Programs
Open this publication in new window or tab >>Enabling Test Automation for Industrial PLC Programs
2024 (English)Licentiate thesis, comprehensive summary (Other academic)
Abstract [en]

Testing safety-critical systems, particularly those controlled by Programmable Logic Controllers (PLC), is crucial for ensuring the safe and reliable operation of industrial processes. This thesis addresses the critical need for automated testing of safety-critical PLC systems used in various industrial settings. Despite the significance of testing, current practices rely heavily on manual methods, leading to challenges in scalability and reliability. This work investigates enabling test automation for PLCs to facilitate and assist the current manual testing procedures in the industry. The thesis proposes and evaluates test automation techniques and tools tailored to PLCs, focusing on Function Block Diagram and Structured Text languages commonly used in industry. We systematically compare test automation tools for PLC programs, after which we propose a PLC to Python translation framework called PyLC to facilitate automated test generation. The experiment employing the EARS requirement engineering pattern reveals that while engineers use semi-formal notations in varied ways to create requirements, leading to completeness issues, it confirms the viability of employing EARS requirements for PLC system testing. Subsequently, the proposed automation approaches are fully implemented and evaluated using real-world PLC case studies, comparing their efficiency against manual testing procedures. The findings highlight the feasibility and benefits of automating PLC testing, offering insights into improving development and testing processes through carefully selected automation tools for the CODESYS IDE, a well-known PLC development environment. Additionally, we show that leveraging Python-based automated testing techniques and mutation analysis enhances testing effectiveness. Furthermore, incorporating best practices in requirement engineering, as demonstrated by the EARS approach, contributes to further enhancing testing efficiency and effectiveness in PLC development.

Place, publisher, year, edition, pages
Mälardalens universitet, 2024. p. 249
Series
Mälardalen University Press Licentiate Theses, ISSN 1651-9256 ; 358
Keywords
PLC, PLC Testing, Automated Testing, PyLC, EARS Syntax, FBD, ST
National Category
Computer Systems
Research subject
Computer Science
Identifiers
urn:nbn:se:mdh:diva-66351 (URN)978-91-7485-643-9 (ISBN)
Presentation
2024-04-07, Gamma, Mälardalens universitet, Västerås, 09:15 (English)
Opponent
Supervisors
Projects
VeriDevOps, SmartDelta
Available from: 2024-04-03 Created: 2024-04-02 Last updated: 2024-04-16Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Salari, Mikael EbrahimiEnoiu, Eduard PaulAfzal, WasifSeceleanu, Cristina

Search in DiVA

By author/editor
Salari, Mikael EbrahimiEnoiu, Eduard PaulAfzal, WasifSeceleanu, Cristina
By organisation
Embedded Systems
Software Engineering

Search outside of DiVA

GoogleGoogle Scholar

doi
isbn
urn-nbn

Altmetric score

doi
isbn
urn-nbn
Total: 173 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf