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 Tapp
Automatic 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 Seefried
Goanna: 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 Seefried
Analysing 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 Rauch
Goanna - 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.



Ralf Huuck
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 Huuck
Software 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 Huuck
Software 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 Huuck
Towards 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]