Sebastian Biallas’s research while affiliated with RWTH Aachen University and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (18)


Automatic Error Cause Localization of Faulty PLC Programs
  • Article

December 2015

·

26 Reads

·

3 Citations

IFAC-PapersOnLine

Sebastian Biallas

·

·

·

When a model checker detects a violation of an all-quantified specification, it generates a counterexample trace that explains how to reach a violating state. In the context of PLCs, the counterexample contains the required stimuli for the program to cause erroneous behavior. Although these counterexamples are tremendously helpful to assess the violation, the actual cause of the erroneous behavior, i. e., the faulty line in the program, can be hidden anywhere in the counterexample trace. Finding the cause manually still takes great effort if the counterexample is long. In this paper, we present a technique to automatically find possible causes of such a violation of PLC programs running in cyclic scanning mode.




Analyzing the Restart Behavior of Industrial Control Applications

June 2015

·

33 Reads

·

3 Citations

Lecture Notes in Computer Science

Critical infrastructure such as chemical plants, manufacturing facilities or tidal barrages are usually operated using specialized control devices. These devices are programmed using domain-specific programming languages for which static code analysis techniques are not widely used yet. This paper compares a sophisticated academic tool to a lightweight compliance check approach regarding the detection of programming errors that only occur after program restart. As this is a common problem in industrial control code, the paper proposes a way to improve the accuracy of analyses for this class of errors.


Applying static code analysis on industrial controller code

January 2015

·

49 Reads

·

19 Citations

Static code analysis techniques are a well-established tool to improve the efficiency of software developers and for checking the correctness of safety-critical software components. However, their use is often limited to general purpose or 'mainstream' programming languages. For these languages, static code analysis has found its way into many integrated development environments and is available to a large number of software developers. In other domains, e. g., for the programming languages used to develop many industrial control applications, tools supporting sophisticated static code analysis techniques are rarely used. This paper reports on the experience of the authors while adapting static code analysis to a software development environment for engineering the control software of industrial process automation systems. The applicability of static code analysis for industrial controller code is demonstrated by a case study using a real-world control system.


Efficient Handling of States in Abstract Interpretation of Industrial Programmable Logic Controller Code

May 2014

·

12 Reads

·

7 Citations

IFAC Proceedings Volumes

This paper presents an efficient static analysis for programmable logic controller code. For each program line (or each function block call), the analysis calculates an over-approximation of the possible values each variable can assume during all possible executions. This information can then be used to automatically check for certain critical program conditions such as division-by-zero and array-out-of-bounds. To make this approach applicable to large programs comprising many variables, we present a technique that only stores the values of a subset of the variables based on their context and liveness. We show how to detect typical problems in real PLC code.


Predicate Abstraction for Programmable Logic Controllers

September 2013

·

45 Reads

·

4 Citations

Lecture Notes in Computer Science

In this paper, we present a predicate abstraction for programs for programmable logic controllers (PLCs) so as to allow for model checking safety related properties. Our contribution is twofold: First, we give a formalization of PLC programs in first order logic, which is then used to automatically derive a predicate abstraction using SMT solving. Second, we employ an abstraction called predicate scoping which reduces the evaluation of predicates to certain program locations and thus can be used to exploit the cyclic scanning mode of PLC programs. We show the effectiveness of this approach in a small case study using programs from industry and academia.


Boolean and Modular Abstractions for Programmable Logic Controllers

September 2013

·

9 Reads

·

1 Citation

IFAC Proceedings Volumes

This paper introduces a Boolean and a modular abstraction of programs for programmable logic controllers in order to make them amenable for formal verification. In the Boolean abstraction, complex control-flow conditions are replaced by fresh Boolean input variables to defer the evaluation of such conditions. The modular abstraction replaces function block calls by so-called function block summaries, which over-approximate their possible return values. Both abstractions can subsequently be refined in an automatic process to allow for checking of complex programs using expressive formulae. The approach has been implemented in the Arcade.PLC model checker, which is used to show the effectiveness in a case-study.


PtrTracker: Pragmatic pointer analysis
  • Conference Paper
  • Full-text available

September 2013

·

138 Reads

·

8 Citations

Static program analysis for bug detection in industrial C/C++ code has many challenges. One of them is to analyze pointer and pointer structures efficiently. While there has been much research into various aspects of pointer analysis either for compiler optimization or for verification tasks, both classical categories are not optimized for bug detection, where speed and precision are important, but soundness (no missed bugs) and completeness (no false positives) do not necessarily need to be guaranteed.

Download

Static Analysis of Lockless Microcontroller C Programs

November 2012

·

43 Reads

·

3 Citations

Electronic Proceedings in Theoretical Computer Science

Concurrently accessing shared data without locking is usually a subject to race conditions resulting in inconsistent or corrupted data. However, there are programs operating correctly without locking by exploiting the atomicity of certain operations on a specific hardware. In this paper, we describe how to precisely analyze lockless microcontroller C programs with interrupts by taking the hardware architecture into account. We evaluate this technique in an octagon-based value range analysis using access-based localization to increase efficiency.


Citations (13)


... While control engineers can use them to automate test case execution and monitoring, the frameworks still require users to write the test cases manually and not generate them. Researchers have proposed several automated PLC test case generation approaches, often based on model checking [7], [8], symbolic execution [9], [10], or search-based techniques [11], [12]. These approaches often provide a thorough test case coverage but may suffer from state space explosion problems and produce test cases that are difficult to maintain. ...

Reference:

Automated Control Logic Test Case Generation using Large Language Models
Automatic test case generation for PLC programs using coverage metrics
  • Citing Conference Paper
  • September 2015

... While different automata classes have previously been utilised as specifications, e.g. by Frey et al. (2012), our work is different in that it uses automaton-like high-level function block summaries to alleviate the complexity of verifying modular PLC software. While this idea is related to predicate abstraction based verification (Biallas et al. 2013;Graf and Saïdi 1997) we employ a lightweight static analysis called mode abstraction to compute the abstraction, prior to running the actual verification procedure. This is possible since we do not treat all variables equally but focus on variables that encode a block's mode. ...

Predicate Abstraction for Programmable Logic Controllers
  • Citing Conference Paper
  • September 2013

Lecture Notes in Computer Science

... Arcade.PLC is a framework for model checking, test case generation and static analysis of PLC code with the aim of finding errors in industrial controller code [6]. It supports the languages Instruction List, Structured Text, Sequential Function Chart and Function Block Diagram according to the IEC 61131-3 standard but also including a few vendor specific extensions to improve compatibly to industrial code. ...

Applying static code analysis on industrial controller code
  • Citing Article
  • January 2015

... 13 14 primary studies (14% of all studies that perform an evaluation) perform the evaluation on communication protocols, e. g., to evaluate graphical counterexample representations [32,42,111,112,144] or counterexample minimization [74,86,145]. 14 further primary studies (14%) perform the evaluation in the hardware domain, e. g., with applications such as PLC software [36,115,146] and circuits [69,100]. ...

Automatic Error Cause Localization of Faulty PLC Programs
  • Citing Article
  • December 2015

IFAC-PapersOnLine

... A mathematical model, which is part of a digital twin, is able to calculate optimal operating modes to improve equipment performance. There is a growing interest in the possibility of using cloud computing and big data technologies ( Big Data ) for industrial automation [8][9][10] . This technology is often used in the development of digital twins using predictive diagnostics, which can facilitate the timely detection of possible defects at early stages of development [11] . ...

Cloud-Based Control: A Multi-tenant, Horizontally Scalable Soft-PLC
  • Citing Conference Paper
  • July 2015

... The general drawback of the model-checking approach is that the verification it provides cannot be exhaustive, it cannot model any possible number of executions during the states of a timing chart, contrary to deductive verification. On the other hand, abstract interpretation has also been used for a long time for verifying software, in particular microcontroller software [17,27] and PLC software [6] (in combination with model-checking). Contrary to modelchecking, abstract interpretation gives a full guarantee when it detects no error in a program, but it is dedicated to compute the possible values of variables during the execution of a program, and is not suited for verifying temporal properties. ...

Efficient Handling of States in Abstract Interpretation of Industrial Programmable Logic Controller Code
  • Citing Conference Paper
  • May 2014

IFAC Proceedings Volumes

... The most closely related techniques to algebraic program analysis are those that build summaries for whole programs in "bottom-up" fashion. Such analyses have been formalized in various ways, including: recursion on the abstract syntax tree (AST) of a program [51], AST rewriting [8], and graph rewriting [47,60]. Algebraic program analysis provides a unifying foundation for such analyses, in the same way that dataflow analysis [39] and (iterative) abstract interpretation [22] provide a unifying foundation for iterative program analyses. ...

Loop Leaping with Closures
  • Citing Conference Paper
  • September 2012

Lecture Notes in Computer Science

... A significant body of research has focused on verifying the correctness of logical control systems. This includes modeling programmable logic controllers (PLCs) so that a formal specification of the desired behavior can be verified (Moon 1994;Rausch and Krogh 1998;Canet et al. 2000;Gourcuff et al. 2008;Biallas et al. 2010;Darvas et al. 2013). The basic approach consists of the following steps: ...

Counterexample-guided abstraction refinement for PLCs
  • Citing Conference Paper
  • October 2010

... The control module plays a significant role in the industry, which aims to use PLCs [26] that sense the inputs, execute the program, and write the outputs. Traditional PLCs are connected to the equipment in the terminal, which cannot realize the decoupling of a traditional PLC and equipment. ...

Arcade.PLC: A verification platform for programmable logic controllers
  • Citing Conference Paper
  • September 2012