Sebastian BiallasVerification of Programmable Logic Controller Code using Model Checking and Static Analysis | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ISBN: | 978-3-8440-4711-0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reihe: | Mathematik, Informatik | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schlagwörter: | Formel Verification; Programmable Logic Controller; Model Checking; Static Analysis | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Publikationsart: | Dissertation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sprache: | Englisch | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Seiten: | 166 Seiten | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gewicht: | 226 g | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Format: | 21 x 14,8 cm | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bindung: | Paperback | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Preis: | 48,80 € | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Erscheinungsdatum: | Oktober 2016 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kaufen: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Download: | Verfügbare Online-Dokumente zu diesem Titel: Sie benötigen den Adobe Reader, um diese Dateien ansehen zu können. Hier erhalten Sie eine kleine Hilfe und Informationen, zum Download der PDF-Dateien. Bitte beachten Sie, dass die Online-Dokumente nicht ausdruckbar und nicht editierbar sind.
Benutzereinstellungen für registrierte Online-Kunden Sie können hier Ihre Adressdaten ändern sowie bereits georderte Dokumente erneut aufrufen.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Weiterempfehlung: | Sie möchten diesen Titel weiterempfehlen? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rezensionsexemplar: | Hier können Sie ein Rezensionsexemplar bestellen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verlinken: | Sie möchten diese Seite verlinken? Hier klicken. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zusammenfassung: | This dissertation studies the formal methods model checking and static analysis to prove the correctness of Programmable Logic Controller (PLC) programs. For this, we developed the tool Arcade.PLC, which allow the automatic application of these methods to PLC programs written for different vendors. It extracts a model from the program by abstract simulation, which over-approximates the possible program behavior. The user is then able to verify whether the model obeys a specification, which can be written in the logic CTL or using automata.
For applying model checking, we demonstrate how the model can be extracted automatically, such that the approach scales to industrial size programs. For this, we develop different abstraction techniques. Further, we introduce a simplified formalism to write specifications, which is influenced by an automata-based language established in industry. We implement an algorithm to check programs using this formalism and show that this technique is even able to detect errors in the specification. Finally, we detail how counterexamples generated by the model checker can be analyzed automatically to locate the actual erroneous line in the program. The static analysis we developed is able to detect program errors in a fully automatic way. We detect typical errors such as division by zero and illegal array accesses, but also PLC specific errors, e. g., during a restart. The analysis is based on a value-set analysis, which determines the values of all program variables in each program location. These sets are then verified against the predefined checks or user-provided annotations. We show how to implement this analysis such that it scales to industrial size programs. The approach is evaluated on an industrial case study. |