Formale Analyse von Sequential Function Charts Zur Erlangung des akademischen Grades eines Doktor-Ingenieurs vom Fachbereich Chemietechnik der Universität Dortmund genehmigte Dissertation von Diplom-Ingenieur Nanette Constance Bauer aus Stuttgart Tag der mündlichen Prüfung: 28. März 2003 1. Gutachter: Prof. Dr.-Ing. Sebastian Engell, Dortmund 2. Gutachter: Prof. Dr.-Ing. Eckehard Schnieder, Braunschweig Dortmund, 2003
Schriftenreihe des Lehrstuhls für Anlagensteuerungstechnik der Universität Dortmund (Prof.-Dr. Sebastian Engell) Band 1/2004 Nanette Bauer Formale Analyse von Sequential Function Charts. D 290 (Diss. Universität Dortmund) Shaker Verlag Aachen 2004
Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Zugl.: Dortmund, Univ., Diss., 2003. Copyright Shaker Verlag 2004 Alle Rechte, auch das des auszugsweisen Nachdruckes, der auszugsweisen oder vollständigen Wiedergabe, der Speicherung in Datenverarbeitungsanlagen und der Übersetzung, vorbehalten. Printed in Germany. ISBN 3-8322-2298-7 ISSN 0948-7018 Shaker Verlag GmbH Postfach 101818 52018 Aachen Telefon: 02407 / 95 96-0 Telefax: 02407 / 95 96-9 Internet: www.shaker.de email: info@shaker.de
Vorwort Die vorliegende Arbeit entstand während meiner Tätigkeit als wissenschaftliche Mitarbeiterin am Lehrstuhl für Anlagensteuerungstechnik des Fachbereichs Chemietechnik der Universität Dortmund. Mein Dank gilt der Deutschen Forschungsgemeinschaft, die mich durch ein Stipendium im Graduiertenkolleg Modellierung und modellbasierte Entwicklung komplexer technischer Systeme finanziell unterstützt hat. Zum Gelingen dieser Arbeit haben viele Leute direkt oder indirekt beigetragen, ihnen allen möchte ich hier danken. Mein besonderer Dank gilt Prof. Dr.-Ing. Sebastian Engell, nicht nur für die Möglichkeit, bei ihm am Lehrstuhl zu promovieren, sondern auch für die Ermutigung der vorliegenden Arbeit und ihre Förderung durch konstruktiven Ideen. An dieser Stelle möchte ich mich auch bei Stefan Kowalewski bedanken. Er hat mein Interesse für das Gebiet der diskreten Systeme bereits während meiner Diplomarbeit geweckt und wertvolle Anregungen für diese Arbeit gegeben. Prof. E. Schnieder, der sich freundlicherweise bereit erklärt hat, meine Arbeit zu begutachten, danke ich für das entgegengebrachte Interesse und für wertvolle Korrekturhinweise. Prof. H. Schmidt-Traub und Prof. A. Gorak möchte ich für die freundliche Mitwirkung in der Prüfungskommission danken. Die Arbeit würde nicht in der vorliegenden Form existieren ohne die gute Zusammenarbeit mit Ralf Huuck und Ben Lukoschus vom Lehrstuhl für Softwaretechnologie der Universität Kiel. Ihnen möchte ich für die zahlreichen zum Großteil über Emails ausgetragenen Diskussionen aller möglichen und unmöglichen Details von SFCs danken. Allen meinen Kolleginnen und Kollegen am Lehrstuhl für Anlagensteuerungstechnik danke ich für die ausgesprochen angenehme Arbeitsatmosphäre. Insbesondere erwähnen möchte ich Heinz Treseler, Kai Dadhe, Sabine Pegel, Sven Lohmann, Jörg Preußig, die zwar nicht alle gleichzeitig das Büro mit mir geteilt haben. Dabei sei insbesondere Kai Dadhe für die Aufrechterhaltung des Schokoladenund Weihnachtsgebäckpegels in unserem Büro gedankt und die damit notwendige Nervennahrung in der Endphase des Zusammenschreibens. Den in der Menge der Bürokollegen nicht enthaltenen Mitgliedern der diskret-/hybriden Arbeitsgruppe, Olaf Stursberg, Goran Frehse und Manuel Remelhe danke ich für ihre Bereitschaft auftretende Fragen, Ergebnisse, anstehende Vorträge usw. zu diskutieren. Außerdem gebührt mein Dank auch einigen Korrekturlesern, die sich freiwillig durch die vorliegende Arbeit oder Teile davon gequält und verschiedenste Fehler gefunden haben. Hervorheben möchte ich hier Olaf Stursberg und Hartmut Bauer. Danken für moralische Unterstützung möchte ich meiner Zwillingsschwester Natali Bauer, die mir mit dem Fertigwerden ihrer Dissertation Ansporn zur Vollendung meiner Arbeit gab und verständige Zuhörerin in Krisensituationen war, meinem Bruder Benjamin Bauer sowie Peter Hachmann und Oliver Wilhelm. Schließlich danke ich meinen Eltern für ihre fortwährende vielfältige Unterstützung und Hilfe auf meinem (Bildungs-)weg, sie haben Studium und Dissertation ermöglicht und ermutigt und waren immer für mich da, wenn ich sie brauchte. Nanette Bauer
Kurzfassung Im Rahmen des in zunehmendem Maße geforderten Nachweises der Korrektheit von Steuerungssoftware verfahrenstechnischer, insbesondere pharmazeutischer Anlagen erlangen die Spezifikation der Steuerungen mit geeigneten Sprachen und ihre Analyse in Hinblick auf ihre Korrektheit immer größere Bedeutung. In der Praxis geschieht der Steuerungsentwurf in der Regel aber noch informell ohne den Einsatz geeigneter Spezifikationssprachen oder Dokumentation. Die Überprüfung der Korrektheit erfolgt nicht vollständig, sondern nur durch Tests, die meist erst während der Inbetriebnahme stattfinden, so dass gefundene Fehler u. U. nur noch durch hohen Aufwand zu beheben sind. Ziel dieser Arbeit ist es, einen Beitrag zu einem systematischeren Steuerungsentwurf zu leisten. Dazu wird untersucht, wie sich die Methode der formalen Verifikation für die Analyse von Ablaufsteuerungen einsetzen lässt, die in der Sprache Sequential Function Charts (SFC) programmiert sind. Mit Hilfe der Verifikation ist im Gegensatz zum Test ein formaler Nachweis möglich, dass ein gesteuertes System bestimmte Anforderungen erfüllt. SFC hat als eine graphische Programmiersprache für Speicherprogrammierbare Steuerungen (SPSen) gegenüber den anderen eher implementierungsnahen SPS-Programmiersprachen den Vorteil, dass sie eine prozessnahe, d. h. problemorientierte Sprache ist, die bereits während der Spezifikation und damit durchgängig im Entwurfsprozess eingesetzt werden kann. SFCs werden durch die Norm IEC 61131-3 definiert, jedoch sind die Definitionen nur informell, mehrdeutig und unvollständig. Für eine Analyse der Programme durch formale Verifikation wird aber eine formale Semantik benötigt. In einem ersten Schritt werden daher die Unzulänglichkeiten der Semantikdefinition von SFCs identifiziert. Diese resultieren insbesondere aus dem Fehlen eines Ausführungsmodells für SFCs, d. h. einer Vorgabe, wie ein SFC-Programm auf einer SPS abzuarbeiten ist, und aus der unvollständigen Definition einiger Sprachelemente. Anhand von Simulationen verschiedener mehrdeutiger Beispiel-SFCs mit unterschiedlichen SPS-Programmierumgebungen, welche die Implementierung von SFCs unterstützen, wird dann überprüft, ob und wie sich diese Mehrdeutigkeiten und Definitionslücken in den realisierten Semantiken niederschlagen. Das Ergebnis der Untersuchungen zeigt, dass in den untersuchten Tools tatsächlich unterschiedliche Semantiken realisiert wurden. Dies kann dazu führen, dass ein SFC-Programm von unterschiedlichen Implementierungsumgebungen unterschiedlich interpretiert wird. Auf Basis der Erkenntnisse wird eine formale Semantik für SFCs definiert, die die wichtigsten der implementierungsabhängigen Unterschiede in Form von Parametern abbildet. Durch Vorgabe dieser Parameter lässt sich die Semantik an spezielle Toolsemantiken anpassen. Basierend auf der Formalisierung von SFCs werden ferner Transformationsmethoden in die Model- Checker SMV und Uppaal entwickelt. Diese ermöglichen eine formale Verifikation von SFCs ohne Zeitaspekte (SMV) oder von zeitbewerteten SFCs bzw. SFCs unter Zuhilfenahme eines zeitbewerteten Anlagenmodells (Uppaal). Im letzten Teil der Arbeit werden ein Vergleich von SFCs mit der Modellierungssprache Statecharts sowie ein Ansatz zur Integration der beiden Formalismen vorgestellt. Damit wird der Tatsache Rechnung getragen, dass nicht nur die Analyse, sondern auch der Einsatz geeigneter Spezifikationssprachen für den Entwurf korrekter Steuerungen von Bedeutung ist. Der Vergleich von SFCs und Statecharts zeigt, dass beide Sprachen komplementäre Stärken haben und sich gut im Steuerungsentwurf verfahrenstechnischer Anlagen ergänzen und somit die Integration sinnvoll ist.