170 research outputs found
Measuring the Overall Complexity of Graphical and Textual IEC 61131-3 Control Software
Software implements a significant proportion of functionality in factory
automation. Thus, efficient development and the reuse of software parts,
so-called units, enhance competitiveness. Thereby, complex control software
units are more difficult to understand, leading to increased development,
testing and maintenance costs. However, measuring complexity is challenging due
to many different, subjective views on the topic. This paper compares different
complexity definitions from literature and considers with a qualitative
questionnaire study the complexity perception of domain experts, who confirm
the importance of objective measures to compare complexity. The paper proposes
a set of metrics that measure various classes of software complexity to
identify the most complex software units as a prerequisite for refactoring. The
metrics include complexity caused by size, data structure, control flow,
information flow and lexical structure. Unlike most literature approaches, the
metrics are compliant with graphical and textual languages from the IEC 61131-3
standard. Further, a concept for interpreting the metric results is presented.
A comprehensive evaluation with industrial software from two German plant
manufacturers validates the metrics' suitability to measure complexity.Comment: 8 pages, https://ieeexplore.ieee.org/abstract/document/9444196
Laiteohjaimien Structured Text -kielisten ohjelmien luonti käyttäen simulointityökaluja
Model-based design is a relatively new technique of developing software for embedded systems. It aims to reduce the cost of the software development process by generating the code from a simulation model. The code is generated automatically using a tool that is developed for this purpose. This way the errors in the system can be found and eliminated early in the development process compared to traditional software development project for embedded systems. As mentioned, the tools are at the time of this study still relatively new, and especially when considering code that has to comply with functional safety standards, the code has to fulfill certain requirements and it has to be clear enough so that it can be traced back to each function of the model. This study aims to determine how well these methods can be used with software development for embedded systems in mind. More precisely, this thesis focuses on MathWorks’ Simulink as the modelling software, and CODESYS as the coding language of the programmable logic controller and ultimately the compatibility of these with each other. The workflow of a model-based design software generation process is determined and presented as the result of this study. That process includes building, testing and verifying the model, preparing it for code generation, configuring and using the code generation tool and finally verifying the generated code. An example model of a battery cell balancing system for the code generation process is built, and thus that area is also studied. In the end of this study, some different possible uses of this technique are briefly discussed as well as further possible areas of study regarding this topic.Mallipohjainen ohjelmistosuunnittelu on melko uusi tekniikka sulautettujen järjestelmien ohjelmistosuunnittelussa. Sillä tähdätään pienempiin kehityskustannuksiin luomalla järjestelmien koodi suoraan simulointiin tehdystä systeemin mallista. Koodi luodaan hyödyntäen automatisoituja työkaluja, jotka ovat kehitetty tähän tarkoitukseen. Näin toimien mahdolliset kehitysvaiheessa tulevat virheet voidaan huomata ja poistaa paljolti jo hyvin aikaisessa vaiheessa kehitystyötä verrattuna perinteiseen sulautettujen järjestelmien ohjelmistokehitykseen. Kuten mainittu, tähän tarvittavat työkalut ovat tämän työn kirjoittamisen aikaan vielä melko uusia, ja erityisesti turvallisuuskriittistä koodia ajatellen koodin on täytettävä tietyt vaatimukset ja sen on oltava riittävän selkeää, jotta tietyt osat koodista voidaan jäljittää vastaaviin osiin mallista. Tämän työn tarkoituksena on selvittää, onko nämä menetelmät käyttökelpoisia sulautettujen järjestelmien ohjelmistokehitystä varten. Erityisesti tämä työ keskittyy MathWorks:n simulointiohjelmistoon Simulink, sekä ohjelmoitavan logiikan yhteydessä käytettyyn ohjelmointikieleen CODESYS sekä näiden yhteensopivuutta tätä prosessia ajatellen. Mallipohjaisen ohjelmistosuunnitteluprosessin suositeltu työnkulku mainittuja työkaluja hyödyntäen määritellään ja esitetään työn tuloksena. Tähän prosessiin kuuluu mallin rakentaminen, sen testaaminen ja toiminnallisuuden todentaminen, sen valmistelu koodin luontia varten, koodin luontiohjelmiston määritys ja käyttö sekä lopulta luodun koodin testaaminen ja toiminnallisuuden todentaminen. Esimerkkinä rakennetaan malli, joka tasapainottaa akkukennojen jännitteitä, jonka vuoksi myös tätä aihetta tutkitaan hieman. Työn lopussa käsitellään lyhyesti mahdollisia erilaisia tätä tekniikkaa hyödyntäviä sovelluksia sekä pohditaan millä tavoin tätä aihetta voisi tutkia edelleen
Modularity and Architecture of PLC-based Software for Automated Production Systems: An analysis in industrial companies
Adaptive and flexible production systems require modular and reusable
software especially considering their long term life cycle of up to 50 years.
SWMAT4aPS, an approach to measure Software Maturity for automated Production
Systems is introduced. The approach identifies weaknesses and strengths of
various companie's solutions for modularity of software in the design of
automated Production Systems (aPS). At first, a self assessed questionnaire is
used to evaluate a large number of companies concerning their software
maturity. Secondly, we analyze PLC code, architectural levels, workflows and
abilities to configure code automatically out of engineering information in
four selected companies. In this paper, the questionnaire results from 16
German world leading companies in machine and plant manufacturing and four case
studies validating the results from the detailed analyses are introduced to
prove the applicability of the approach and give a survey of the state of the
art in industry
Maintainability and evolvability of control software in machine and plant manufacturing -- An industrial survey
Automated Production Systems (aPS) have lifetimes of up to 30-50 years,
throughout which the desired products change ever more frequently. This
requires flexible, reusable control software that can be easily maintained and
evolved. To evaluate selected criteria that are especially relevant for
maturity in software maintainability and evolvability of aPS, the approach
SWMAT4aPS+ builds on a questionnaire with 52 questions. The three main research
questions cover updates of software modules and success factors for both
cross-disciplinary development as well as reusable models. This paper presents
the evaluation results of 68 companies from machine and plant manufacturing
(MPM). Companies providing automation devices and/or engineering tools will be
able to identify challenges their customers in MPM face. Validity is ensured
through feedback of the participating companies and an analysis of the
statistical unambiguousness of the results. From a software or systems
engineering point of view, almost all criteria are fulfilled below
expectations
Increasing System Test Coverage in Production Automation Systems
An approach is introduced, which supports a testing technician in the
identification of possibly untested behavior of control software of fully
integrated automated production systems (aPS). Based on an approach for guided
semi-automatic system testing, execution traces are recorded during testing,
allowing a subsequent coverage assessment. As the behavior of an aPS is highly
dependent on the software, omitted system behavior can be identified and
assessed for criticality. Through close cooperation with industry, this
approach represents the first coverage assessment approach for system testing
in production automation to be applied on real industrial objects and evaluated
by industrial experts
LLM4PLC: Harnessing Large Language Models for Verifiable Programming of PLCs in Industrial Control Systems
Although Large Language Models (LLMs) have established pre-dominance in
automated code generation, they are not devoid of shortcomings. The pertinent
issues primarily relate to the absence of execution guarantees for generated
code, a lack of explainability, and suboptimal support for essential but niche
programming languages. State-of-the-art LLMs such as GPT-4 and LLaMa2 fail to
produce valid programs for Industrial Control Systems (ICS) operated by
Programmable Logic Controllers (PLCs). We propose LLM4PLC, a user-guided
iterative pipeline leveraging user feedback and external verification tools
including grammar checkers, compilers and SMV verifiers to guide the LLM's
generation. We further enhance the generation potential of LLM by employing
Prompt Engineering and model fine-tuning through the creation and usage of
LoRAs. We validate this system using a FischerTechnik Manufacturing TestBed
(MFTB), illustrating how LLMs can evolve from generating structurally flawed
code to producing verifiably correct programs for industrial applications. We
run a complete test suite on GPT-3.5, GPT-4, Code Llama-7B, a fine-tuned Code
Llama-7B model, Code Llama-34B, and a fine-tuned Code Llama-34B model. The
proposed pipeline improved the generation success rate from 47% to 72%, and the
Survey-of-Experts code quality from 2.25/10 to 7.75/10. To promote open
research, we share the complete experimental setup, the LLM Fine-Tuning
Weights, and the video demonstrations of the different programs on our
dedicated webpage.Comment: 12 pages; 8 figures; Appearing in the 46th International Conference
on Software Engineering: Software Engineering in Practice; for demo website,
see https://sites.google.com/uci.edu/llm4plc/hom
Towards a seamless integration between process modeling descriptions at Business and Production levels - work in progress
To fulfill increasing requirements in the manufacturing sector, companies are faced with several challenges. Three major challenges have been identified regarding time-to-market, vertical feedback loops and level of automation. Grafchart, a graphical language aimed for supervisory control applications, can be used from the process-planning phase, through the implementation phase and all the way to the phase for execution of the process control logics, on the lower levels of the Automation triangle. Work in progress is examining if the same concepts could be used on the higher levels of the Automation triangle as well. By splitting the execution engine and the visualization engine of Grafchart various different visualization tools could potentially be used, however connected by the shared Grafchart semantics. Traditional Business languages, e.g. BPMN, could therefore continue to be used for the process-planning phase whereas traditional production languages, e.g. Grafchart or other SFC-like languages, could be used for the execution. Since they are connected through the semantics, advantages regarding the three identified challenges could be achieved; time-to-market could be reduced, the time delays in the vertical feedback loops could be reduced by allowing KPI visualization, and the level of automation could be increased
An Architecture-based Approach for Change Impact Analysis of Software-intensive Systems
A main property of software-intensive technical systems is sustainability. Sustainable systems need to change continuously. A change to a system element can result in further changes to other system elements. If these elements originate from different domains, the change can also propagate between several domains. This book presents an architecture-based approach to change propagation analysis of software-intensive technical systems that considers heterogeneous elements from different domain
- …