Most of the papers available from this document appear in print, and the corresponding copyright is held by the publisher. Please, act in accordance with the corresponding copyright laws.
2009
Ansgar Fehnker, Ralf Huuck, Bastian Schlich, and Michael TappAutomatic Bug Detection in Microcontroller Software by Static Program Analysis
35th International Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM), January 24-30, 2009, Czech Republic
Abstract.
Microcontroller software typically consists of a few hundred
lines of code only, but it is rather different from standard application
code. The software is highly hardware and platform specific, and bugs
are often a consequence of neglecting subtle specifications of the
microcontroller
architecture. Currently, there are hardly any tools for analyzing such
software automatically. In this paper, we outline specifics of
microcontroller software that explain why those programs are different
to standard C/C++ code. We develop a static program analysis for a
specific microcontroller, in our case the ATmega16, to spot code deffciencies,
and integrate it into our generic static analyzer Goanna. Finally, we
illustrate the results by a case study of an automotive application. The
case study highlights that - even without formal proof - the proposed
static techniques can be valuable in pinpointing software bugs that are
otherwise hard to find.
Paper:
[PDF file]
2008
Ansgar Fehnker, Joerg Brauer, Ralf Huuck, Sean SeefriedGoanna: Syntactic Software Model Checking
6th International Symposium on Automated Technology for Verification and Analysis (ATVA), October 20-23, 2008 Seoul, Korea.
Abstract.
Goanna is an industrial-strength static analysis tool used in
academia and industry alike to find bugs in C/C++ programs. Unlike existing
approaches Goanna uses the off-the-shelf NuSMV model checker as its core
analysis engine on a syntactic flow-sensitive program abstraction. The
CTL-based model checking approach enables a high degree of flexibility in
writing checks, scales to large number of checks, and can scale to large code
bases. Moreover, the tool incorporates techniques from constraint solving,
classical data flow analysis and a CEGAR inspired counterexample based path
reduction. In this paper we describe Goanna's core technology, its features
and the relevant techniques, as well as our experiences of using Goanna on
large code bases such as the Firefox web browser.
Paper:
[PDF file]
Ansgar Fehnker, Ralf Huuck, Felix Rauch, Sean Seefried
Some Assembly Required - Program Analysis of Embedded System Code
Proceedings of the Eighth IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), 28th-29th September 2008, Beijing, China
Abstract.
Programming embedded system software typically involves
more than one programming language. Normally,
a high-level language such as C/C++ is used for application
oriented tasks and a low-level assembly language for
direct interaction with the underlying hardware. In most
cases those languages are closely interwoven and the assembly
is embedded in the C/C++ code. Verification of
such programs requires the integrated analysis of both languages
at the same time. However, common algorithmic
verification tools fail to address this issue. In this work
we present a model-checking based static analysis approach
which seamlessly integrates the analysis of embedded ARM
assembly with C/C++ code analysis. In particular, we show
how to automatically check that the ARM code complies to
its interface descriptions. Given interface compliance, we
then provide an extended analysis framework for checking
general properties of ARM code. We implemented this analysis
in our source code analysis tool Goanna, and applied
to the source code of an L4 micro kernel implementation.
Paper:
[PDF file]
Kai Engelhardt, Ralf Huuck
Smaller Abstractions for ACTL* without Next
In the Festschrift of Correctness, Concurrency, and Compositionality for Willem-Paul de Roever, Kiel, Germany 2008.
Abstract.
The successful application of model-checking to large systems relies
strongly on the choice of good abstractions. In this work we present an
approach for constructing abstractions when checking next-free universal ACTL*
properties. It is known that functional abstractions are safe and that
next-free universal ACTL* is insensitive to finite stuttering. We exploit
these results by introducing a safe next-free abstraction} that is typically
smaller than the usual functional one while at the same time more precise,
i.e., it has less spurious counter-examples.
Paper:
[PDF file]
Ansgar Fehnker, Ralf Huuck, Sean Seefried
Counterexample Guided Path Reduction for Static Program Analysis
In the Festschrift of Correctness, Concurrency, and Compositionality for Willem-Paul de Roever, Kiel, Germany 2008.
Abstract.
In this work we introduce counterexample guided path reduction based on
interval constraint solving for static program analysis. The aim of this
technique is to reduce the number of false positives by reducing the number of
feasible paths in the abstraction iteratively. Given a counterexample, a set
of observers is computed which exclude infeasible paths in the next
iteration. This approach combines ideas from counterexample guided abstraction
refinement for software verification with static analysis techniques that
employ interval constraint solving. The advantage is that the analysis becomes
less conservative than static analysis, while it benefits from the fact that
interval constraint solving deals naturally with loops. We demonstrate that
the proposed approach is effective in reducing the number of false positives,
and compare it to other static checkers for C/C++ program analysis.
Paper:
[PDF file]
2007
Ansgar Fehnker, Ralf Huuck, Felix Rauch and Sean SeefriedAnalysing Embedded System Software
Proceedings of C/C++ Verification Workshop, Oxford, UK, July, 2007
Abstract.
The verification of real-life C/C++ code is inherently hard. Not only are there
numerous challenging language constructs, but the precise semantics
is often elusive or at best vague. This is even more true for
systems software where non-ANSI compliant constructs are used,
hardware is addressed directly and assembly code is embedded. In
this work we present a lightweight solution to detect software bugs
in C/C++ code. Our approach performs static checking on
C/C++ code by means of model checking. While it cannot guarantee
full functional correctness, it can be a valuable tool to increase
the reliability and trustworthiness of real-life system code. This
paper explains the general concepts of our approach, discusses its
implementation in our C/C++ checking tool Goanna, and
presents some performance results on large software packages.
Extended Abstract:
[PDF file]
Ansgar Fehnker, Ralf Huuck, Patrick Jayet, Michel Lussenburg and Felix Rauch
Model checking software at compile time
Proceedings of the 1st IEEE & IFIP International Symposium on Theoretical Aspects of Software Engineering, Shanghai, China, June, 2007
Abstract.
Software has been under scrutiny by the verification
community from various angles in the recent past. There
are two major algorithmic approaches to ensure the correctness
of and to eliminate bugs from such systems: software
model checking and static analysis. Those approaches
are typically complementary. In this paper we use a model
checking approach to solve static analysis problems. This
not only avoids the scalability and abstraction issues typically
associated with model checking, it allows for specifying
new properties in a concise and elegant way, scales well
to large code bases, and the built-in optimizations of modern
model checkers enable scalability also in terms of numbers
of properties to be checked. In particular, we present
Goanna, the first C/C++ static source code analyzer using
the off-the-shelf model checker NuSMV, and we demonstrate
Goanna’s suitability for developer machines by evaluating
its run-time performance, memory consumption and scalability
using the source code of OpenSSL as a test bed.
Paper:
[PDF file]
2006
Ansgar Fehnker, Ralf Huuck, Patrick Jayet, Michel Lussenburg and Felix RauchGoanna - A Static Model Checker In the proceedings of 11th International Workshop on Formal Methods for Industrial Critical Systems (FMICS), Bonn, Germany, August, 2006.
Abstract.
In this work we present Goanna, the first tool that uses an
off-the-shelf model checker for the static analysis of C/C++ source
code. We outline its architecture and show how syntactic properties
can be expressed in CTL. Once the properties have been defined the
tool analyses source code automatically and efficiently. We
demonstrate its applicability by presenting experimental results on
analysing OpenSSL and the GNU coreutils.
Paper:
[PDF file]
2005
Kevin Elphinstone, Gernot Heiser, Ralf Huuck, Stefan M. Petters and Sergio Ruocco.L4cars. In the proceedings of Embedded Security in Cars (escar 2005), Cologne, Germany, November, 2005.
Abstract.
Automotive components present unique challenges in reliability,
security, performance and cost. Consolidation of different functions
in multi-purpose units drives up complexity, and raises not only
reliability concerns, but also the issue of liability for
sub-component suppliers. It is of foremost importance to guarantee
reliability and security right from the start when designing such
systems. In this work we present a complete approach grounded in a
flexible and secure microkernel, supported by a flexible operating
system and component architecture on top. This is coupled with
rigorous software development to assure the reliability and
security.
Paper:
[PDF file]
Gerwin Klein, Ralf Huuck
High Assurance System Software. In: Tony Cant (ed), Proc. 10th Australian Workshop on Safety Critical Systems and Software (SCS'05), Conferences in Research and Practice in Information Technology, 55, 2005.
Abstract.
This paper describes an approach to developing high
assurance system software. We demonstrate how
different formal methods can be applied in the development
process by matching specific techniques
and tools to the different levels of system requirements
and how those techniques can complement each
other.
Keywords.
System software, kernel design, theorem
proving, static analysis.
Semantics and Analysis of Instruction List Programs
Proceedings of the Second Workshop on Semantic Foundations of Engineering Design Languages (SFEDL 2004). Electronic Notes in Theoretical Computer Science 115, Elsevier, pages 3-18, January 2005.
Abstract.
Instruction List (IL) is a simple typed assembly language commonly used in
embedded control. There is little tool support for IL and, although defined
in the IEC 61131-3 standard, there is no formal semantics. In this work we
develop a formal operational semantics. Moreover, we present an abstract
semantics, which allows approximative program simulation for a (possibly
infinte) set of inputs in one simulation run. We also extended this
framework to an abstract interpretation based analysis, which is implemented
in our tool Homer. All these analyses can be carried out without knowledge
of formal methods, which is typically not present in the IL community.
Paper:
[PDF file]
2004
Nanette Bauer, Ralf Huuck, Ben Lukoschus, Sebastian Engell.A Unifying Semantics for Sequential Function Charts.
Integration of Software Specification Techniques for Applications in Engineering, Priority Program SoftSpez of the German Research Foundation (DFG), Final Report. Lecture Notes in Computer Science 3147, Springer 2004, pages 400-418. ISBN 3-540-23135-8
Abstract.
Programmable Logic Controllers (PLC) are widely used as device
controllers for assembly lines, chemical processes, or power plants.
Sequential Function Charts (SFC) form one of the main programming
languages for PLCs and, therefore, the correctness of the PLC software
implemented as SFCs is crucial for a safe operation of the controlled
process. A prerequisite for reasoning about program correctness is a
clear understanding of the program semantics. As we show in this work,
this is currently not the case for SFCs. Although syntactically
specified in the IEC 61131-3 standard, SFCs lack an unambiguous,
complete semantic description. We point out a number of problems and
explain how these lead to different interpretations in commercial
programming environments. To remedy this situation we introduce a
parameterized formal semantics for SFCs including many high-level
programming features such as parallelism, hierarchy, actions and
activity manipulation. Moreover, we show how to extend the semantics
to include time, clocks, and timed actions. The presented semantics is
general enough to comprise different existing interpretations while at
the same time being adjustable to precisely represent each of them.
Paper:
[Link
to Electronic Version]
Nanette Bauer, Sebastian Engell, Ralf Huuck, Sven Lohmann, Ben Lukoschus, Manuel Remelhe, Olaf Stursberg.
Verification of PLC Programs given as Sequential Function Charts.
Integration of Software Specification Techniques for Applications in Engineering, Priority Program SoftSpez of the German Research Foundation (DFG), Final Report. Lecture Notes in Computer Science 3147, Springer 2004, pages 517-540. ISBN 3-540-23135-8
Abstract.
Programmable Logic Controllers (PLC) are widespread in the
manufacturing and processing industries to realize sequential
procedures and to avoid safety-critical behavior. For the
specification and implementation of PLC programs, the
graphical and hierarchical language Sequential Function
Charts (SFC) has an increasing importance. To investigate the
correctness of SFC programs with respect to a given set of
requirements, this contribution advocates the use of
verification techniques. In detail, we present two different
approaches to algorithmically convert the SFC program into
automata models that are amenable to model checking. While
the first approach translates untimed SFC into the input
language of the tool Cadence SMV, the second converts timed
SFC into timed automata which can be analyzed by the tool
Uppaal. Using the example of a controlled chemical processing
system, we illustrate the complete procedure consisting of
controller specification, model transformation, consideration
of plant models, and identifying design failures by the use
of verification.
Paper:
[Link
to Electronic Version]
Nanette Bauer, Ralf Huuck, Sven Lohmann, Ben Lukoschus.
Sequential Function Charts: Die Notwendigkeit formaler Analyse.
atp - Automatisierungstechnische Praxis, pages 61-67. Oldenbourg Wissenschaftsverlag, August 2004. ISSN 0178-2320.
Zusammenfassung. Sequential Function Charts (SFCs, im Deutschen auch als Ablaufsprache bezeichnet), stellen eine in der Norm IEC 61131-3 definierte Koordinations- und Programmiersprache für speicherprogrammierbare Steuerungen (SPS) dar. Gerade für die bei SFCs besonders interessanten strukturellen Konzepten Parallelismus und Hierarchie liefert die Norm jedoch nur informale und zum Teil mehrdeutige Beschreibungen der Programmsemantik. Der Beitrag zeigt anhand eines Vergleichs von SPS-Entwicklungswerkzeugen verschiedener Hersteller, dass daher das Verhalten eines SFC-Programms nicht immer klar vorhersagbar und somit auch nicht immer portabel ist, und nennt Vorschläge zur Umgehung von Mehrdeutigkeiten. Außerdem wird ein Ansatz zur formalen Analyse von SFCs vorgestellt, der im Gegensatz zu herkömmlichen Testverfahren eine weitgehend automatisierte Verifikation von Programmeigenschaften ermöglicht.
2003
Ralf HuuckSoftware Verification for Programmable Logic Controllers Dissertation, Institute of Computer Science and Applied Mathematics, University of Kiel, April 17, 2003.
Abstract.
Programmable logic controllers (PLCs) occupy a big share in automation
control. Their programming languages are, however, born out of historical needs
and do not comply to state-of-the art programming concepts. Moreover,
programming is mostly undertaken by the designers of the control systems. In
sum this adds to the creation of erroneous software and, even more, unsafe
control systems. In this work we focus on the software verification aspects for
PLCs. For two selected programming languages, Sequential Function Charts (SFC)
and Instruction List (IL) we discuss semantic issues as well as verification
approaches. For SFCs we develop a model checking framework while for IL we
suggest static analysis techniques, i.e., a combination of data flow analysis
and abstract interpretation. Several case studies corrobate our approach.
Keywords.
Software Verification, Programmable Logic Controllers, Sequential Function
Charts, Instruction List, Model-checking, Abstract interpretation, Data Flow
Analysis, Embedded Systems, Control Systems, Semantics
Electronic Version
[PDF file]
Ralf Huuck, Ben Lukoschus, Nanette Bauer.
A Model-Checking Approach to Safe SFCs.
CESA 2003: IMACS Multiconference on Computational Engineering in Systems Applications, Lille, France, July 9-11, 2003. ISBN 2-9512309-5-8.
Abstract.
Sequential function charts (SFC) are a high-level graphical programming
language for programmable logic controllers. Their main purpose is to provide
a structure and organization of the control flow. Therefore, various
features such as parallelism, priorities on branching transitions, and
activity manipulations are incorporated. The syntactic rules for building
SFCs are formally defined in IEC 61131-3. It is, however, still possible to
derive SFCs from these rules whose structure do not make sense. In this work
we give a characterization for so-called safe SFCs. Moreover, we
present a semantic definition for them, as well as an algorithmic approach to
automatically detect whether an SFC is safe or not.
Paper (updated version):
[PDF file]
2002
Ralf HuuckSoftware Verification for Embedded Systems.
In the Proceedings of MMAR '02: The 8th IEEE International Conference on Methods and Models in Automation and Robotics, Szczecin, Poland, 2-5 September 2002
Abstract.
Embedded systems have the characteristics of reactive, real-time, distributed
systems. For these kind of systems formal verification is by nature complex,
even more since the system interaction with its environment is often modeled,
e.g., as hybrid systems. However, every embedded control system will certainly
fail, if its software fails. In this work we present an approach to the formal
verification of Programmable Logic Controller (PLC) software. We present a tool
that translates PLC programs written in the language Sequential Function Charts
automatically into an abstract model that can be read by a standard model
checker. Moreover, we demonstrate its effectiveness by an application to a
sorting plant and show that software verification can indeed contribute to
system reliability.
[PDF file]
Ralf Huuck, Ben Lukoschus, Goran Frehse, and Sebastian Engell
Compositional Verification of Continuous-Discrete Systems
Modelling, Analysis and Design of Hybrid Systems, Lecture Notes in Control and Information Sciences 279, pages 225-246. Springer-Verlag, 2002. ISBN 3-540-43812-2
Abstract. Hybrid systems are well-suited as a design and modeling framework to describe the interaction of discrete controllers with a continuous environment. However, the systems described are often complex and so are the resulting models. Therefore, a formal framework and a formal verification to prove the correctness of system properties is highly desirable. Since complexity is inherent, standard formal verification techniques like model checking soon reach their limits. In this work we present several options how to tackle the complexity arising in the formal verification of hybrid systems. In particular we combine the model checking approach with abstraction and decomposition techniques such as the assumption/commitment method as well as deductive methods.
Goran Frehse, Olaf Stursberg, Sebastian Engell, Ralf Huuck, Ben Lukoschus.
Modular Analysis of Discrete Controllers for Distributed Hybrid Systems.
b '02: The XV. IFAC World Congress, Barcelona, Spain, July 21-26, 2002.
Abstract. The algorithmic analysis of control systems for large and distributed hybrid systems is considerably restricted by its computational
complexity. In order to enable the verification of discrete controllers for such hybrid systems, this contribution proposes an approach that combines
decomposition, model checking and deduction. The system under examination is first decomposed into a set of modules represented by communicating
linear hybrid automata. The Assumption/Commitment method is used to to prove properties of coupled modules and to derive conclusions about the
behavior of the entire system. The individual Assumption/Commitment-pairs are proven using standard model checking.
[PDF
file]
Nanette Bauer, Ralf Huuck, Ben Lukoschus
A Stopwatch Semantics for Hybrid Controllers.
b '02: The XV. IFAC World Congress, Barcelona, Spain, July 21-26, 2002.
Abstract. Programmable Logic Controllers (PLC) are frequently
used in the automation industry for the control of hybrid systems. Although the
programming languages for PLCs are given in the standard IEC 61131-3, their
semantics are ambiguously and not completely defined. This holds in particular
for the graphical language Sequential Function Charts (SFC), a high-level
programming language comprising such interesting features as parallelism,
activity manipulation, priorities and hierarchy. In this work we present a
formal semantics for timed SFCs, which belong to the class of linear hybrid
systems.
[
gzip-compressed PostScript]
Nanette Bauer, Ralf Huuck
A Parameterized Semantics for Sequential Function Charts.
In the proceedings of SFEDL (Semantic Foundations of Engineering Design Languages) 2002, Satellite Event of ETAPS 2002, 6-14.4.2002, pages 69-83.
Abstract. The language Sequential Function Charts (SFC) is one
of the five programmable logic controller (PLC) languages defined in the IEC
61131-3 standard. It includes many interesting concepts such as parallelism,
hierarchy, priorities, and activity manipulation. However, the standard only
gives an informal ambiguous semantics for SFCs, which leads to the
implementation of different SFC semantics by PLC tool vendors. The validation
and analysis of a given SFC is therefore difficult. This work addresses this
point by presenting a formal parameterized semantics coping with the different
concepts as well as unifying the various interpretations.
[
gzip-compressed PostScript]
2001
Nanette Bauer, Ralf HuuckTowards Automatic Verification of Embedded Control Software
APAQS 2001: IEEE Asian Pacific Conference on Quality Software, Hong Kong, December 10-11, pages 375-383, 2001. ISBN 0-7695-1287-9.
Abstract.
The language sequential function charts (SFC) is a
programming and structuring language for programmable logic controllers
(PLC). It is defined in the IEC 61131-3 standard and includes various
interesting concepts such as parallelism, hierarchy, priorities, and activity
manipulation. Although SFCs are perpetually used in the engineering
community for programming and the design of embedded control systems, there
are hardly any specific verification approaches for them. Existing approaches
for Petri Nets, Grafcets, or (UML-)Statecharts do not really apply to SFCs,
whose structures are similar, but include distinct features. In this work we
present a method to model-check SFCs. This is done by defining a translation
of SFCs into the native language of the Cadence Symbolic Model Verifier
(CaSMV). This translation is specifically tailored to cover all the concepts
of SFCs and can be performed automatically. Moreover, we demonstrate our
approach by an application to a control process in chemical engineering.
[gzip-compressed PostScript]
Ralf Huuck, Ben Lukoschus, Yassine Lakhnech.
Verifying Untimed and Timed Aspects of the Experimental Batch Plant.
European Journal of Control, 7(4):400-415, September 2001. Special Issue: Verification of Hybrid Systems - Results of a European Union Esprit Project. Hermes Science Publishing. ISSN 0947-3580.
Abstract.
We thoroughly examine the experimental batch plant in its two major operation
modes: a normal operation mode and a failure operation mode. In order to do so,
we use discrete condition/event system as well as timed automata for the
specification and the model checking tools SMV, Kronos and HyTech for
verification.
Keywords.
Controller synthesis, Hybrid Systems, Model checking, Verification.
[gzip-compressed PostScript]
Goran F. Frehse, Olaf Stursberg, Sebastian Engell, Ralf Huuck, Ben Lukoschus.
Verification of Hybrid Controlled Processing Systems based on Decomposition and Deduction.
ISIC 2001: 2001 IEEE International Symposium on Intelligent Control, Mexico City, Mexico, September 5-7, 2001, pages 150-155. IEEE Press. ISBN 0-7803-6733-2 (CD-ROM: 0-7803-6735-9).
Abstract.
While formal verification has been successfully used to analyze several
academic examples of controlled hybrid systems, the application to real-world
processing systems is largely restricted by the complexity of modeling and
computation. This contribution aims at improving the applicability by using
decomposition and deduction techniques: A given system is first decomposed into
a set of physical and/or functional units and modeled by communicating timed
automata or linear hybrid automata. The so-called
Assumption/Commitment method allows to formulate requirements for the
desired behavior of single modules or groups of modules.
Model-Checking is an appropriate technique to analyze whether the requirements
(e.g., the exclusion of critical states) are fulfilled. By combining the
analysis results obtained for single modules, properties of composed
modules can be deduced. As illustrated for a laboratory plant, properties
of the complete system for which direct model-checking is prohibitively
expensive can be inferred by the iterative application of analysis and
deduction.
Keywords.
Abstraction, Assumption/Commitment, Deductive Analysis, Discrete Controller,
Hybrid System, Verification.
[gzip-compressed
PostScript]
Stefan Kowalewski, Peter Herrmann, Sebastian Engell, Heiko Krumm, Heinz Treseler, Yassine Lakhnech, Ralf Huuck, Ben Lukoschus.
Approaches to the Formal Verification of Hybrid Systems.
at-Automatisierungstechnik, 49(2):66-74, February 2001. Special Issue: Hybrid Systems II: Analysis, Modeling, and Verification. Oldenbourg Verlag. ISSN 0178-2312.
Abstract.
This paper presents two different approaches to the problem of formally
verifying the correctness of control systems which consist of a logic
controller and a continuous plant and, thus, constitute a hybrid system. One
approach aims at algorithmic verification and combines Condition/Event Systems
with Timed Automata. The first framework is used to model the controller and
the plant in a block-diagram representation, which is then translated into the
latter model for analysis by available tools. A second approach is presented
which is based on deductive verification. It allows for a structured analysis
of compositional specifications formulated in a temporal logic called
cTLA. This logic is a compositional style oft he Temporal Logic of Actions
established in computer science by Lamport. Both approaches are introduced
using a common example and the results of their application are discussed. As
an outlook, a possible strategy for integrating algorithmic and deductive
verification of hybrid systems is sketched at the end of the paper.
[gzip-compressed PostScript]
2000
Sébastien Bornot, Ralf Huuck, Yassine Lakhnech, Ben Lukoschus.Utilizing Static Analysis for Programmable Logic Controllers.
ADPM 2000: The 4th International Conference on Automation of Mixed Processes: Hybrid Dynamic Systems, Dortmund, Germany, September 18-19, 2000, pages 183-187, Aachen, Germany, 2000. Shaker Verlag. ISSN 0945-4659, ISBN 3-8265-7836-8.
Abstract.
Programmable logic controllers (PLCs) occupy a big share in automation
control. However, hardly any validation tools for their software are
available.
In this work we present a lightweight verification technique for PLC
programs. In particular, static analysis is applied to programs written in
Instruction List, a standardized language commonly used for PLC programming.
We illustrate how these programs are annotated automatically by an abstract
interpretation algorithm which is guaranteed to terminate and is applicable
to large-scale programs. The resulting annotations allow static checking for
possible run-time errors and provide information about the program structure,
like existence of dead code or infinite loops, which in combination
contributes to more reliable PLC systems.
[gzip-compressed PostScript]
Sébastien Bornot, Ralf Huuck, Yassine Lakhnech, Ben Lukoschus.
An Abstract Model for Sequential Function Charts.
Discrete Event Systems: Analysis and Control, Proceedings of WODES 2000: 5th Workshop on Discrete Event Systems, Ghent, Belgium, August 21-23, 2000, pages 255-264, Boston, Dordrecht, London, 2000. Kluwer Academic Publishers. ISBN 0-7923-7897-0.
Abstract.
Sequential function charts (SFCs) are systems where every step can contain
other SFCs as well as state transformations. The standard by IEC 1131-3
explicitly defines some languages for this. In this paper we point out that the
standard has many ambiguities, and that it is crucial to have a formal
framework for the definition of SFCs. We define the syntax and semantics of
them. The semantics we give is general enough to cope with different possible
implementations of the standard.
[gzip-compressed PostScript]
Sébastien Bornot, Ralf Huuck, Yassine Lakhnech, Ben Lukoschus.
Verification of Sequential Function Charts using SMV.
PDPTA 2000: International Conference on Parallel and Distributed Processing Techniques and Applications, Monte Carlo Resort, Las Vegas, Nevada, USA, June 26-29, 2000, volume V, pages 2987-2993. CSREA Press, June 2000. ISBN 1-892512-51-3.
Abstract.
Sequential function charts (SFCs) are defined as a modeling language in
the IEC 1131-3 standard and can be used to structure and drive
programmable logic controllers (PLCs). It includes interesting concepts as
hierarchy, history variables and priority. As the typical application area
of this language is the control of industrial processes, it is obvious that
safety and reliability is a crucial goal for systems using SFCs. In this
work we give an abstract formal model for SFCs and present a method to
automatically verify properties concerning the safety of such systems using
the model checking tool SMV (Symbolic Model Verifier).
[gzip-compressed PostScript]
Sébastien Bornot, Ralf Huuck, Ben Lukoschus.
Statische Analysetechniken für speicherprogrammierbare Steuerungen.
FBT 2000: 10. GI/ITG-Fachgespräch: Formale Beschreibungstechniken für verteilte Systeme, Lübeck, Germany, June 22/23, 2000, pages 175-181, Aachen, Germany, June 2000. Shaker Verlag. ISSN 0945-0807, ISBN 3-8265-7491-5.
Zusammenfassung.
Speicherprogrammierbare Steuerungen (SPS) unterliegen einer stark
zunehmenden Verbreitung in der Automatisierungstechnik. Während diese
in der Vergangenheit meist nur zur Steuerung einfacher Abläufe
eingesetzt wurden, sind sie heutzutage verantwortlich für die
Steuerung komplexer hybrider Systeme, sei es in der petrochemischen
Industrie oder in Kraftwerken. Daher ist eine korrekt funktionierende
Steuerungssoftware von grundsätzlicher Bedeutung. In diesem Vortrag
wird die Methode der statischen Analyse für eine standardisierte
SPS-Sprache, Anweisungsliste (AWL), vorgestellt. Statische Analyse
umfaßt Techniken, die Laufzeitverhalten ermitteln bzw. nachweisen,
ohne den Code selbst auszuführen. Insbesondere die Technik der
abstrakten Interpretation spielt hier eine wichtige Rolle. Wir werden
diese Techniken mit Bezug auf AWL vorstellen und aufzeigen, welche
statischen Analyseziele für AWL erreichbar sind. Ferner gehen wir
darauf ein, was statische Analyse im Vergleich zu anderen
Verifikationstechniken leistet und wie diese in Kombination genutzt
werden können.
[gzip-compressed PostScript]
1998
Ralf Huuck, Yassine Lakhnech, Ben Lukoschus, Luis Urbina, Sebastian Engell, Stefan Kowalewski, and Jörg Preußig.Integrating Timed Condition/Event Systems and Timed Automata for the Verification of Hybrid Systems.
Parallel and Distributed Computing Practices, 1(2):45-60, June 1998.
Abstract.
In this paper we integrate two different approaches for the
specification and verification of timed systems being used in
control theory and computer science. These are the timed
condition/event systems and the timed automata formalisms.
Our main result states that timed condition/event systems can
be efficiently transformed into timed automata which then can
be analyzed automatically.
[gzip-compressed PostScript]
Stefan Kowalewski, Sebastian Engell, Ralf Huuck, Yassine Lakhnech, Ben Lukoschus, and Luis Urbina.
Using Model-Checking for Timed Automata to Parameterize Logic Control Programs.
8th European Symposium on Computer Aided Process Engineering (ESCAPE8), Brugge, Belgium, May 1998.
Proceedings appear in Computers and Chemical Engineering.
Abstract.
In this contribution we describe how the modeling and
analysis framework of Timed Automata can be used to determine
valid parameter ranges for timers in logic control programs.
The procedure is illustrated by means of a simple process
engineering example for which the complete Timed Automata
model is presented. To analyse the model, the tool HyTech is
used which provides routines to determine values of model
parameters depending on reachability conditions.
[gzip-compressed PostScript]
Ralf Huuck.
Transforming Timed Condition/Event Systems into Timed Automata: An Approach to Automatic Verification.
Master's Thesis, Christian-Albrechts-Universität zu Kiel, Germany, June 1998.
Abstract.
We thoroughly investigate the relationship between timed condition/event
systems and timed automata. One result is an effective function mapping to each
timed condition/event system an "equivalent" timed automaton, i.e., a timed
automaton which has essentially the same real-time behaviors. A benefit from
providing such a function is that analysis tools developed for timed automata
can now be applied to analyze timed c/e systems. Moreover, we provide another
effective function mapping to each timed i/o automaton a timed condition/event
system.
[gzip-compressed PostScript]
1997
Ralf Huuck, Yassine Lakhnech, Luis Urbina, Sebastian Engell, Stefan Kowalewski and Jörg Preußig. Comparing Timed C/E Systems with Timed Automata.Proceedings Int. Workshop on Hybrid and Real-Time Systems (HART'97), Grenoble, Frankreich, March 26-28, 1997, Lecture Notes in Computer Science 1201, Springer, pp. 81-86
Abstract.
We investigate the relationship between timed c/e systems and timed
automata. We provide an effective function that associates to each timed c/e
system an "equivalent" timed automaton. Equivalence
has to be understood here as
describing essentially the same real-time behaviors.
A benefit from providing such a function is that analysis tools
developed for timed automata can now be
applied to analyze timed c/e systems. We also prove that timed
automata can be translated into equivalent timed c/e systems.
[
gzip-compressed PostScript]
Ralf Huuck, Yassine Lakhnech, Luis Urbina, Sebastian Engell, Stefan Kowalewski and Jörg Preußig.
Combining a Computer Science and a Control Theory Approach to the Verification of Hybrid Systems.
5th Int. Workshop on Parallel and Distributed Real-Time Systems (WPDRTS'97), Geneva, Switzerland, April 1-3,1997, IEEE Computer Society, ISBN 0-8186-8096-2/97.
Abstract.
We report on the project "Specification and Verification of Discrete
Controllers for Continuous Systems Based on Modular Models and Compositional
Analysis". Within this project we aim at developing an automatic verification
tool for discrete controllers of technical systems which can be applied to
systems of industrial size. To reach this objec tive we combine two different
approaches being used in control theory and computer science. These are the
"Timed Condition/Event Systems" (TCESs) and the "Timed
Automata" (TAs) formalisms. The state of the project is such
that, because of the equivalence of TCESs and TAs we have shown
in, it is possible to automatically analyze real-time syste
ms modeled by TCESs with analysis tools developed for TAs. In this paper we
desc ribe in detail motivation, goal and state of our project, and illustrate
the equ ivalence of TCESs and TAs.
[
gzip-compressed PostScript]
Stefan Kowalewski, Jörg Preußig, Sebastian Engell, Ralf Huuck, Yassine Lakhnech, and Ben Lukoschus.
Analyse zeitbewerteter Bedingung/Ereignis-Systeme mittels Echtzeitautomaten-Tools.
5. Fachtagung Entwurf komplexer Automatisierungssysteme (EKA '97), 1:180-194, Braunschweig, Germany, May 1997.
Zusammenfassung.
Der Beitrag beschreibt, wie aus zeitbewerteten
Bedingung/Ereignis-Systemen bestehende, modular aufgebaute
Modelle mit Hilfe von Werkzeugen für Echtzeitautomaten
automatisch analysiert werden können. Dies geschieht,
indem eine Übersetzungsvorschrift angewendet wird, die
einem zeitbewerteten Bedingung/Ereignis-System einen
Echtzeitautomaten mit äquivalentem Verhalten zuordnet. Der
Ansatz wird anhand des aus der Literatur bekannten
Bahnschranken-Beispiels illustriert. Als Werkzeug wird KRONOS
eingesetzt.
[gzip-compressed PostScript]