Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR AUTOMATICALLY TESTING A PROGRAM FOR SAFETY-RELATED AUTOMATION SYSTEMS
Document Type and Number:
WIPO Patent Application WO/2010/108594
Kind Code:
A1
Abstract:
The invention relates to a method for automatically testing a program for automation systems (1), in particular programmable logic controllers, with regard to maintaining programming guidelines for program design for automation systems, wherein, in a first step, a copy of a program or a part of a program is exported from a development system (21) for automation systems as a copy to be tested, in a second step, the program copy to be tested is loaded into a test device (22) for testing programs, wherein the test device (22) has access to programming guidelines for program testing, and in a third step, the program test with regard to maintaining programming guidelines is performed automatically and the test result is output.

Inventors:
NEUPAERTL HEINRICH (DE)
SCHWARTZ MARIO (DE)
GRAMBERG OLIVER (DE)
DRATH RAINER (DE)
VERYHA YAUHENI (DE)
Application Number:
PCT/EP2010/001503
Publication Date:
September 30, 2010
Filing Date:
March 11, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ABB AG (DE)
NEUPAERTL HEINRICH (DE)
SCHWARTZ MARIO (DE)
GRAMBERG OLIVER (DE)
DRATH RAINER (DE)
VERYHA YAUHENI (DE)
International Classes:
G06F9/45; G05B19/05; G06F11/36
Foreign References:
US7003765B12006-02-21
US20040260940A12004-12-23
DE102007043214A12009-03-12
US7003765B12006-02-21
Other References:
HALANG W A ET AL: "Computerised controllers for safety critical medical applications", INTERNATIONAL JOURNAL OF MEDICAL INFORMATICS, ELSEVIER SCIENTIFIC PUBLISHERS, SHANNON, IR LNKD- DOI:10.1016/S1386-5056(98)00037-9, vol. 49, no. 2, 1 April 1998 (1998-04-01), pages 139 - 155, XP004149448, ISSN: 1386-5056
ENGLER D ET AL: "CHECKING SYSTEM RULES USING SYSTEM-SPECIFIC, PROGRAMMER-WRITTEN COMPILER EXTENSIONS", 4TH SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION. OCT. 23-25, 2000, SAN DIEGO, CA, USENIX ASSOCIATION, US, 1 January 2000 (2000-01-01), XP001544737
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur automatischen Prüfung eines Programms für ein - wenigstens teilweise sicherheitsgerichtetes Automatisierungssystem (1) mit wenigstens einer sicherheitsgerichteten speicherprogrammierbaren Steuerung hinsichtlich Einhaltung von Programmierrichtlinien für die Gestaltung von Programmen für die sicherheitsgerichtete speicherprogrammierbare Steuerung, wobei,

- in einem ersten Schritt eine Kopie eines - wenigstens teilweise - sicherheitsgerichteten Programms oder eines Teils eines sicherheitsgerichteten Programms, welches in einer Programmierumgebung für die Erarbeitung eines sicherheitsgerichteten Programms in einem Entwicklungssystem (21) für Automatisierungssysteme abliegt, aus dem Entwicklungssystem (21) als zu prüfendes Programmkopie exportiert wird,

- in einem zweiten Schritt die zu prüfende Programmkopie in eine Prüfeinrichtung (22) zur Prüfung von - wenigstens teilweise - sicherheitsgerichteten Programmen geladen wird, wobei die Prüfeinrichtung (22) Zugriff auf Richtlinien für die Gestaltung von Programmen für - wenigstens teilweise - sicherheitsgerichtete speicherprogrammierbare Steuerungen hat, und

- in einem dritten Schritt dort die Programmprüfung hinsichtlich einer Einhaltung der Programmierrichtlinien für die Gestaltung von Programmen für - wenigstens teilweise - sicherheits- gerichtete speicherprogrammierbare Steuerungen automatisch durchgeführt und das Prüfergebnis ausgegeben wird.

2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass in einem vierten Schritt eine bei der Prüfung als fehlerhaft ermittelte Programm-Kopie überarbeitet und erneut geprüft wird, bis entweder Fehlerfreiheit erreicht ist, oder eine verbleibende Abweichung von Programmierrichtlinien als unkritisch erkannt und die Prüfung abgeschlossen wird.

3. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Programmierrichtlinien in maschinenlesbarer Form vorliegen und während des Prüfprogrammlaufes interpretiert werden.

4 Verfahren nach einem der vorstehenden Ansprüche, dadurch abgewandelt, dass anstelle eines besonderen Exports der Programmkopie gemäß dem ersten Schritt, mittels der Prüfeinrichtung (22) das zu prüfende Sicherheitsprogramm direkt im Entwicklungssystem lokalisiert wird und automatisch geladen wird

5. Verfahren nach einem der Ansprüche 1 bis 3, dadurch abgewandelt, dass anstelle eines besonderen Exports der Programmkopie gemäß dem ersten Schritt, mittels der Prüfeinrichtung (22) auf das zu prüfende Sicherheitsprogramm direkt im Entwicklungssystem zugegriffen wird und auf dieser Grundlage die Prüfung des Sicherheitsprogramms innerhalb des Entwicklungssystems durchgeführt wird.

6. System zur Durchführung des Verfahrens gemäß Anspruch 1 , wobei

- ein - wenigstens teilweise - sicherheitsgerichtetes Automatisierungssystem (1) mit einem Entwicklungsrechner (2) zusammenwirkt,

- der Entwicklungsrechner (2) ein Entwicklungssystem (21) mit einer Programmierumgebung für die Erarbeitung eines - wenigstens teilweise - sicherheitsgerichteten Programms und eine Prüfeinrichtung (22) zur Prüfung einer zuvor geladenen Kopie des - wenigstens teilweise - sicherheitsgerichteten Programms enthält, und

- die Prüfeinrichtung (22), automatisch die Prüfung des - wenigstens teilweise - sicherheitsgerichteten Programms bezüglich der Einhaltung von Programmierrichtlinien für die Gestaltung von Programmen für - wenigstens teilweise - sicherheitsgerichtete speicherprogrammierbare Steuerungen durchführt und das Prüfergebnis ausgibt.

7. System nach Anspruch 6, dadurch gekennzeichnet, dass die Prüfeinrichtung (22) eine bei der Prüfung auf der Grundlage der Programmierrichtlinien als fehlerhaft ermittelte Programm-Kopie überarbeitet und erneut geprüft, bis entweder Fehlerfreiheit erreicht ist, oder eine verbleibende Abweichung von Programmierrichtlinien als unkritisch erkannt und die Prüfung abgeschlossen ist.

8. System nach Anspruch 6 bis 7, dadurch gekennzeichnet, dass die Pro- grammierrichtlinien in maschinenlesbarer Form vorliegen und während des Prüfprogrammlaufes interpretierbar sind.

9. System nach Anspruch 7 bis 8, dadurch gekennzeichnet, die Prüfeinrichtung (22) das zu prüfende sicherheitsgerichtete Programm direkt im Entwicklungssystem lokalisiert und automatisch lädt.

10. System nach Anspruch 7 bis 8, dadurch gekennzeichnet, dass, die Prüfeinrichtung direkt im Entwicklungssystem auf das zu prüfende sicherheitsgerichtete Programm zugreift und die Prüfung des Sicherheitsprogramms durchführt.

11. System nach Anspruch 7 bis 10, dadurch gekennzeichnet, dass die Programmierrichtlinien Richtlinien, Regeln und Vorgaben, insbesondere Programmierrichtlinien für die Gestaltung von Programmen für speicherprogrammierbare, insbesondere sicherheitsgerichtete, Steuerungen sind.

12. System nach Anspruch 7 bis 11 , dadurch gekennzeichnet, dass das Entwicklungssystem (21) eine vorzertifizierte Komponente ist.

Description:
System und Verfahren zur automatischen Prüfung eines Programms für sicherheits- gerichtete Automatisierungssysteme

Beschreibung

Die Erfindung bezieht sich auf ein Verfahren und ein System zur automatischen Prüfung eines Programms für insbesondere wenigstens teilweise sicherheitsgerichtete Automatisierungssysteme, beispielsweise sicherheitsgerichtete speicherprogrammierbare Steuerungen, hinsichtlich der Einhaltung von Richtlinien, insbesondere von Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen.

Um die Zertifizierung eines Automatisierungssystems, insbesondere eines sicher- heitsgerichteten Automatisierungssystems, möglichst einfach und kostengünstig durchzuführen, werden bei der Erstellung eines solchen Systems möglichst viele vorzertifizierte Komponenten eingesetzt. Diese vorzertifizierten Komponenten sind beispielsweise:

- Hardwarekomponenten, wie speicherprogrammierbare Steuerung, Ein-/ Ausgabe- Module, Bussysteme, Sensoren, Aktoren;

- Firmware auf intelligenten Komponenten wie der speicherprogrammierbaren Steuerung;

- Softwarekomponenten, wie Entwicklungssystem für Programme für Automatisierungssysteme;

- Prozesse für die Entwicklung eines sicherheitsgerichteten Automatisierungssystems; und

- Organisationen, die einen solchen Prozess durchführen.

Die einzige Komponente eines sicherheitsgerichteten Automatisierungssystems, die vom geplanten Einsatz abhängig ist, daher nicht vorgefertigt und damit auch nicht vorzertifiziert werden kann, ist das Programm der speicherprogrammierbaren, insbesondere sicherheitsgerichteten, Steuerung.

Die Zertifizierung des Programms der sicherheitsgerichteten speicherprogrammierbaren Steuerung wird erleichtert, wenn das Programm strukturell und inhaltlich so gestaltet ist, dass die zertifizierende Stelle die Funktionsweise des Programms mit geringst möglichem Aufwand verstehen kann. Das kann vor allem damit erreicht werden, dass die Möglichkeiten, die die verwendete Programmiersprache für speicherprogrammierbare Steuerungen bietet, beim Einsatz für ein sicherheitsgehchtetes Automatisierungssystem eingeschränkt werden.

Solche Einschränkungen lassen sich in Form von Richtlinien darstellen, die dann beim Erstellen des Programms der sicherheitsgerichteten speicherprogrammierbaren Steuerung zu beachten sind. Die Prüfung auf die Einhaltung solcher Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen bedeutet allerdings eine zeitaufwändige und fehleranfällige Tätigkeit für das Entwicklungspersonal oder die das sicherheitsgerichtete Automatisierungssystem zertifizierende Stelle.

Im Bereich der Software-Entwicklung besteht seit Jahrzehnten für unterschiedliche Programmiersprachen die Möglichkeit eine automatische Programmprüfung durchzuführen. Man unterscheidet dabei unterschiedliche Typen von Prüfungen, wie beispielsweise

- Prüfung auf Übereinstimmung mit bestimmten Regeln, wie beispielsweise Prüfung von Syntax oder Typkompatibilität,

- Prüfung auf Korrektheit, beispielsweise Prüfung gegen Feldindex-Überlauf, Zeigerüberlauf, Speicherüberlauf, endlose Schleifen, nicht zugewiesenen oder nicht freigegebenen Speicher, nicht initialisierte Variablen oder unsichere Typumwandlungen,

- Prüfung von Laufzeiteigenschaften, wie beispielsweise Performanz- oder Stresstests. Gemäß dem Stand der Technik ist es üblich, bei sicherheitsgerichteten speicherprogrammierbaren Steuerungen Mittel zur Programmprüfung in einem Entwicklungssystem für sicherheitsgerichtete Programme zu implementieren. Diese Vorgehensweise führt zu einer zeitaufwendigen Softwareentwicklung und ist mit hohen Kosten verbunden, da das Entwicklungssystem für die Anwendung in insbesondere sicherheitsgerichteten Automatisierungssystemen vorzertifiert ist und die Integration der Mittel zur Programmprüfung in das Entwicklungssystem eine Änderung an dem Entwicklungssystem darstellt, was eine erneute Zertifizierung desselben erforderlich macht.

Der Erfindung liegt daher die Aufgabe zugrunde, eine Lösung für eine automatische Prüfung eines Programms für Automatisierungssysteme, insbesondere für sicherheitsgerichtete Automatisierungssysteme, hinsichtlich Einhaltung von Richtlinien, Regeln und Vorgaben, auch als Programmierrichtlinien bezeichnet, insbesondere von Programmierrichtlinien für die Gestaltung von Programmen für speicherprogrammierbare, insbesondere sicherheitsgerichtete, Steuerungen anzugeben.

Diese Aufgabe wird gelöst durch ein Verfahren für eine automatische Prüfung eines Programms für sicherheitsgerichtete Automatisierungssysteme, insbesondere sicherheitsgerichtete speicherprogrammierbare Steuerungen, das die im Anspruch 1 angegebenen Merkmale aufweist. Vorteilhafte Ausgestaltungen und ein entsprechendes System sind in weiteren Ansprüchen angegeben.

Mit der Erfindung wird demnach vorgeschlagen, eine automatische Prüfung von Steuerungsprogramme oder Programmteilen des Automatisierungssystems hinsichtlich der Einhaltung von Programmierrichtlinien, wie beispielsweise Richtlinien, Regeln und Vorgaben, für die Gestaltung von Programmen für, insbesondere sicherheitsgerichtete, speicherprogrammierbare Steuerungen außerhalb einer Entwicklungsumgebung für Sicherheitssoftware, auch als sicherheitsgerichtetes Programm bezeichnet, durchzuführen. Vorzugsweise betrifft die automatische Prüfung sicherheitsgerichtete Steuerungsprogramme oder Programmteile eines sicherheitsgerichteten Automatisierungssystems.

Damit lässt sich vorteilhaft eine Änderung am Entwicklungssystem vermeiden, wenn beispielsweise die Richtlinien für die Gestaltung von Programmen für sicherheitsge- richtete speicherprogrammierbare Steuerungen erstmals integriert oder nachträglich geändert werden, weil die sicherheitsgerichtete speicherprogrammierbare Steuerung für eine höhere Sicherheitsintegritätsebene auch als Safety Integrity Level bezeichnet, beispielsweise gemäß der Norm IEC 61508) zertifiziert werden soll, also an unterschiedliche Niveaus von Sicherheitsanwendungen angepasst werden soll.

Eine weitere Erläuterung der Erfindung und deren Vorteile ergeben sich aus der nachstehenden Beschreibung von Ausführungsbeispielen anhand der Figuren.

Es zeigen:

Fig. 1 einen beispielhaften Ablaufplan zum erfindungsgemäßen Verfahren und Fig. 2 eine beispielhafte Anordnung zur Durchführung des Verfahrens.

Fig. 1 zeigt in einem Ablaufplan nach dem Start eines Verfahrens zur automatisch durchzuführenden Programmprüfung als ersten Schritt einen Export einer Kopie eines Programms, auch als Originalprogramm bezeichnet, aus einem Entwicklungssystem für ein beispielhaftes sicherheitsgerichtetes Automatisierungssystem. Gemäß einem zweiten Schritt wird diese Programmkopie, auch als Sicherheitsprogramm bezeichnet, in eine, hier auch als Prüfeinrichtung bezeichnete, andere Einrichtung geladen. Diese Prüfeinrichtung ist für eine Programmprüfung eingerichtet und enthält eine für - in einem dritten Schritt durchzuführende - Programmprüfung geeignete Software, die zur Prüfung eines gegebenen Satzes an Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen, nachfolgend auch als Programmierrichtlinien bezeichnet, vorgesehen ist.

Die Programmierrichtlinien liegen vorzugsweise einer maschinenlesbaren Form vor und werden dann während des Prüfprogrammlaufes interpretiert.

Das im Entwicklungssystem erarbeitete und zu prüfende Programm kann beispielsweise in einer Programmiersprache gemäß der Norm IEC 61131 vorliegen, z.B. als Structured- Text -Programm, als Funktionsblockdiagramm oder als Kontaktplan. Wenn das Prüfergebnis besagt, dass die zu prüfende Programmkopie gemäß den Programmierrichtlinien, insbesondere den Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen, fehlerfrei ist, wird dies an das Entwicklungssystem und/oder den Programmierer ausgegeben, und der Verfahrensablauf ist damit beendet.

Werden Fehler, die Verstöße gegen die Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen darstellen, so werden diese markiert bzw. bezeichnet und/oder angezeigt. In einer vorteilhaften Ausgestaltung der Erfindung erfolgt nun eine Überarbeitung oder Korrektur des fehlerhaften Programms. Dieser Vorgang ist in der Fig. 1 als Schritt 4 dargestellt. Nach einer Überarbeitung des Originalprogramms im Entwicklungssystem wird dieses erneut exportiert und in die Prüfeinrichtung geladen.

Die Wiederholungsprozedur wird entweder so lange durchgeführt, bis keine Verstöße des zu prüfenden Programms gegen die Programmierrichtlinien mehr festgestellt werden oder bis lediglich Verstöße gegen solche Richtlinien festgestellt werden, die im vorliegenden Fall von untergeordneter Bedeutung sind, so dass dadurch keine Verzögerung der angestrebten Zertifizierung zu erwarten ist und die neue Programmversion im sicherheitsgerichteten Automatisierungssystem verwendet werden kann. Eine Festlegung der Verstöße gegen diejenigen Programmierrichtlinien, die von untergeordneter Bedeutung sind, wird vorzugsweise beim Start des erfindungsgemäßen Verfahrens durchgeführt.

Gemäß einer - nicht in Fig. 1 dargestellten - weiteren Ausführungsform des erfindungsgemäßen und vorstehend beschriebenen Verfahren kann auf den ersten Schritt, also den Export einer Kopie des Programms aus dem Entwicklungssystem verzichtet werden, wenn die Prüfeinrichtung so ausgeführt ist, das zu prüfende Sicherheitsprogramm direkt im Entwicklungssystem zu lokalisieren und automatisch, also ohne zusätzlichen Exportschritt, zu laden.

Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens wird auf den ersten Schritt, also den Export einer Programmkopie verzichtet. In diesem Fall ist die Prüfeinrichtung dafür eingerichtet, direkt im Entwicklungssystem auf das zu prüfende Sicherheitsprogramm zuzugreifen und damit die Prüfung des Programms innerhalb des Entwicklungssystems durchzuführen. Die Prüfeinrichtung verändert dabei das Programm innerhalb des Entwicklungssystems nicht, es sei denn, dass ein Anwender eine Modifikation veranlasst.

Fig. 2 zeigt beispielhaft ein System oder eine Anordnung zur Durchführung des erfindungsgemäßen Verfahrens. Dabei wirkt ein sicherheitsgerichtetes Automatisierungssystem 1 mit einem Entwicklungsrechner 2 zusammen. Das sicherheitsgerich- tete Automatisierungssystem 1 enthält eine sicherheitsgerichtete speicherprogrammierbare Steuerung 11 und eine damit kommunizierende nicht sicherheitsgerichtete speicherprogrammierbare Steuerung 12. Außerdem sind sicherheitsgerichtete Ein- /Ausgabe-Geräte 13 und nicht sicherheitsgerichtete Ein/Ausgabe-Geräte 14 vorhanden, die mittels eines Datenübertragungssystems mit den Steuerungen 11 und 12 verbunden sind.

Der Entwicklungsrechner 2 enthält ein Entwicklungssystem 21 mit einer Programmierumgebung für die Erarbeitung eines sicherheitsgerichteten Programms, auch als Sicherheitssoftware bezeichnet, und eine Prüfeinrichtung 22 zur Prüfung der Sicherheitssoftware. Ein Programmierer 3 hat sowohl auf das Entwicklungssystem 21 als auch auf die Prüfeinrichtung 22 Zugriff. Der Entwicklungsrechner 2 kann mit der sicherheitsgerichteten speicherprogrammierbaren Steuerung 11 und/oder der nicht sicherheitsgerichteten speicherprogrammierbaren Steuerung 12 verbunden sein. Die Arbeitsweise der in Fig. 2 dargestellten Anordnung entspricht dem anhand der Fig. 1 beschriebenen Ablauf.

Das erfindungsgemäße Verfahren und das entsprechende System entlasten einen Programmierer nicht nur von der zeitaufwendigen Programmprüfung, sondern sind insofern auch rückwirkungsfrei, als dass die Prüfeinrichtung keine Modifikation des Originalprogramms in dem Entwicklungssystem bewirkt. Dies ist Voraussetzung dafür, dass das Entwicklungssystem weiterhin als vorzertifiziert ohne weitere Prüfung bei der Entwicklung des Programms für das sicherheitsgerichtete System eingesetzt werden kann. Ein weiterer Vorteil besteht darin, dass eine flexible Anpassung der Programmierrichtlinien für die Gestaltung von Programmen für, insbesondere sicherheitsgerichte- te, speicherprogrammierbare Steuerungen an ein jeweils erforderliches SIL- Niveau (Safety Integrity Level) möglich ist.

Besonders vorteilhaft ist es, Modifikationen an der Prüfeinrichtung, insbesondere den zu prüfenden Richtlinien für die Gestaltung von Programmen für sicherheitsgerichtete speicherprogrammierbare Steuerungen, vorzunehmen zu können, ohne dabei das Entwicklungssystem zu verändern und dieses deswegen erneut zertifizieren zu müssen.