Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROCESSING APPLICATION PROGRAMS IN A DISTRIBUTED AUTOMATION SYSTEM
Document Type and Number:
WIPO Patent Application WO/2020/104198
Kind Code:
A1
Abstract:
The invention relates to the processing of a safety-related user program for a safety control system and, in a particularly preferred embodiment, in particular to the creation, start-up and maintenance of safety-related user programs of a control device for automation machines by means of mobile terminals, such as a smartphone, tablet, notebook or PC, for which purpose the editors run on the mobile terminal in question, whereas the compilers for producing the machine code run on a remote cloud computer. The machine code for the safety-related control system is therefore produced on a cloud computer. The identification between the mobile terminal and the control device, which consequently is, in particular, safety-related, is unique, and the data required for producing the machine code, such as the source code data of the user program, are secured by means of a unique signature and transmitted to the cloud computer. On the cloud computer, the machine code is produced from the transmitted data. A new signature is generated by means of the arising data and the signature from the previous step. If the machine code is successfully produced, the produced machine code, with the signature and possible metadata, can be automatically or manually forwarded to a test environment. In particular, the entire safety life cycle is covered, including simulation of the application, start-up and distribution to the machines, because every step in the lift cycle is automatically documented and can be clearly tracked at any time and corruptions of a step can be detected.

Inventors:
FRANK TOBIAS (DE)
KOOP HARRY (DE)
BARTEL JULIAN (DE)
Application Number:
PCT/EP2019/080475
Publication Date:
May 28, 2020
Filing Date:
November 07, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PHOENIX CONTACT GMBH & CO (DE)
International Classes:
H04L29/06; G06F21/51; H04L29/08; G06F8/73
Foreign References:
US20180227116A12018-08-09
US20180329693A12018-11-15
US20180189732A12018-07-05
EP0997807A22000-05-03
EP2363770B12012-03-21
DE102015209108A12016-11-24
Attorney, Agent or Firm:
BLUMBACH ZINNGREBE PATENTANWÄLTE PARTG MBB (DE)
Download PDF:
Claims:
Patentansprüche

1 . Verfahren zum Bearbeiten eines sicherheitsbezogenen Anwenderprogramms für eine

Sicherheitssteuerung, die dazu eingerichtet ist, wenigstens eine automatisierte Vorrichtung zu steuern, welche wenigstens eine Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, wobei das Anwenderprogramm logische Verknüpfungen in Abhängigkeit eines jeweiligen Zustandes der wenigstens einen Sicherheitsfunktion für die Sicherheitssteuerung zum Steuern der automatisierten Vorrichtung durch die

Sicherheitssteuerung festlegt, gekennzeichnet durch die Schritte:

- Erzeugen von Daten für ein Anwenderprogramm nacheinander auf einer Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen, welche jeweils ein sicherheitsbezogenes Anwenderprogramm-Bearbeitungswerkzeug zur Verfügung stellen, wobei die Daten für das Anwenderprogramm auf einer jeweiligen der Geräteumgebungen über das jeweils von dieser Geräteumgebung zur Verfügung gestellte sicherheitsbezogene Anwenderprogramm-Bearbeitungswerkzeug erzeugt werden und nach dem Erzeugen der Daten (Proj.Data; Comp. Data; Com. Data) die erzeugten Daten zusammen mit einer Signatur (Sig.1 ; Sig.2; Sig.4) an eine andere dieser Geräteumgebungen übergeben werden (1 ; 2; 5),

- wobei vor der Übergabe der erzeugten Daten zusammen mit der Signatur, diese Signatur zumindest unter Zugrundelegung der Gesamtheit der erzeugten Daten durch eine

Signatureinrichtung der Geräteumgebung generiert wird, auf welcher die Daten für das Anwenderprogramm erzeugt worden sind,

- wobei nach der Übergabe der erzeugten Daten zusammen mit der Signatur, auf der diese Daten und Signatur empfangenden Geräteumgebung

o die empfangene Signatur durch eine Signatureinrichtung dieser Geräteumgebung geprüft wird, und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung o erneut Daten für das Anwenderprogramm unter Zugrundelegung der empfangenen Daten erzeugt werden, und die dann mit diesen erneut erzeugten Daten zusammen zu übergebende Signatur zumindest unter Zugrundelegung der Gesamtheit der auf dieser Geräteumgebung erzeugten Daten und der jeweils empfangenen Signatur durch die Signatureinrichtung dieser Geräteumgebung generiert wird. 2. Verfahren nach vorstehendem Anspruch, wobei Daten für das Anwenderprogramm zumindest bis zum Abschluss einer vollständigen bestimmungsgemäßen Inbetriebnahme des Anwenderprogramms nacheinander auf den verteilt voneinander entfernt angeordneten Geräteumgebungen erzeugt werden.

3. Verfahren nach einem der vorstehenden Ansprüche, wobei beim jeweiligen Übergeben der erzeugten Daten zusammen mit der Signatur zusätzlich jeweils Metadaten, insbesondere betreffend die Geräteumgebung, auf welcher die erzeugten Daten erzeugt worden sind, betreffend das Datum der Datenerzeugung und/oder betreffend einen Nutzer des die Daten erzeugenden Anwenderprogramm-Bearbeitungswerkzeuges, und/oder SmartContract-Daten betreffend die Geräteumgebung, an welche die erzeugten Daten übergeben werden, übergeben werden.

4. Verfahren nach einem der vorstehenden Ansprüche, wobei

- auf einer ersten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen Quellcodedaten für das Anwenderprogramm erzeugt werden und von dieser als erzeugte Daten an eine zweite der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen übergeben werden,

- auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen nach Empfangen der Quellcodedaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung Maschinencodedaten für das

Anwenderprogramm erzeugt werden,

- die Maschinencodedaten als erzeugte Daten an wenigstens eine dritte der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen übergeben werden.

5. Verfahren nach vorstehendem Anspruch 4, wobei

- zusätzlich zu den Maschinencodedaten, insbesondere auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen nach Empfangen der Quellcodedaten, Inbetriebnahmedaten für das Anwenderprogramm erzeugt werden, und

- die Maschinencodedaten und Inbetriebnahmedaten als erzeugte Daten an wenigstens eine dritte der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen zur Inbetriebnahme des Anwenderprogramms übergeben werden.

6. Verfahren nach vorstehendem Anspruch 4, wobei - zusätzlich zu den Maschinencodedaten, insbesondere auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen nach Empfangen der Quellcodedaten, Testprozedurdaten für das Anwenderprogramm erzeugt werden, und

- die Maschinencodedaten und Testprozedurdaten als erzeugte Daten an eine vierte der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen zum Testen des Anwenderprogramms übergeben werden,

- auf der vierten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen nach Empfangen der Maschinencodedaten und Testprozedurdaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung eine Testprozedur durchlaufen und Testergebnisdaten für das Anwenderprogramm erzeugt werden,

- die Testergebnisdaten als erzeugte Daten an die zweite der Mehrzahl von verteilt

voneinander entfernt angeordneten Geräteumgebungen übergeben werden.

7. Verfahren nach vorstehendem Anspruch 6, wobei

- auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen nach Empfangen der Testergebnisdaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung Inbetriebnahmedaten für das

Anwenderprogramm erzeugt werden,

und

- die Inbetriebnahmedaten als erzeugte Daten zusammen mit den zuvor erzeugten

Maschinencodedaten an eine dritte der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen zur Inbetriebnahme des Anwenderprogramms übergeben werden.

8. Verfahren nach vorstehenden Ansprüchen 5 oder 7, wobei

- auf der dritten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen nach Empfangen der Maschinencodedaten und Inbetriebnahmedaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung eine

Inbetriebnahmeprozedur durchlaufen und Inbetriebnahme-Validierungsdaten für das Anwenderprogramm erzeugt werden,

und

- die Inbetriebnahme-Validierungsdaten als erzeugte Daten an die zweite der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen zum Abschluss der vollständigen bestimmungsgemäßen Inbetriebnahme des Anwenderprogramms übergeben werden.

9. Verfahren nach vorstehendem Anspruch 8, wobei

auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen nach Empfangen der Inbetriebnahme-Validierungsdaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung Zertifizierungsdaten für das Anwenderprogramm erzeugt werden.

10. Verfahren nach vorstehendem Anspruch 9, wobei die erzeugten Zertifizierungsdaten und auf der zweiten der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen gespeichert werden.

1 1 . Verfahren nach vorstehendem Anspruch 9 oder 10, wobei

die Zertifizierungsdaten als erzeugte Daten zusammen mit den zuvor erzeugten

Maschinencodedaten an eine Anzahl von dritten der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen übergeben werden.

12. Verfahren nach vorstehendem Anspruch 1 1 , wobei

auf der Anzahl von dritten der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen nach Empfangen der Zertifizierungsdaten und Maschinencodedaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung das Anwenderprogram bestimmungsgemäß abgearbeitet wird.

13. Automatisierungssystem zur Durchführung des Verfahrens nach einem der vorstehenden Ansprüche 1 bis 12, umfassend:

- eine Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen, welche jeweils ein sicherheitsbezogenes Anwenderprogramm-Bearbeitungswerkzeug zur Erzeugung von Daten für ein Anwenderprogramm für eine Sicherheitssteuerung zur Verfügung stellen, wobei das Anwenderprogramm-Bearbeitungswerkzeug ferner eine Signatureinrichtung umfasst,

- wobei

- eine erste Geräteumgebung dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen, auf einer Kommunikations-Benutzerendeinrichtung, welche insbesondere als mobile Kommunikations-Benutzerendeinrichtung eingerichtet ist,

- eine zweite Geräteumgebung dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen, auf einem Cloud-Rechner eingerichtet ist, und

- wenigstens eine weitere Geräteumgebungen dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen eingerichtet ist, wobei

- die erste Geräteumgebung, die zweite Geräteumgebung und die wenigstens eine weitere Geräteumgebung Schnittstellen besitzen und ausgebildet sind, zum Übergeben von jeweils erzeugten Daten zusammen mit einer jeweils generierten Signatur von der ersten an die zweite Geräteumgebung, von der zweiten an die wenigstens eine weitere Geräteumgebung und von der wenigstens einen weiteren an die zweite Geräteumgebung,

und insbesondere wobei

- die erste Geräteumgebung als Anwenderprogramm-Bearbeitungswerkzeug ein

sicherheitsbezogenes Programmierwerkzeug zur Erzeugung eines Quellcodes des Anwenderprogramms sowie eine mit dem Programmierwerkzeug zusammenwirkende Signatureinrichtung zur Generierung einer Signatur zumindest unter Zugrundelegung der

Gesamtheit des erzeugten Quellcodes zur Verfügung stellt,

- die zweite Geräteumgebung als Anwenderprogramm-Bearbeitungswerkzeug ein

sicherheitsbezogenes Compilierwerkzeug zur Erzeugung eines Maschinencodes des Anwenderprogramms sowie bevorzugt ferner ein sicherheitsbezogenes Werkzeug zur Erzeugung von Inbetriebnahmedaten und/oder von Testprozedurdaten für das

Anwenderprogramm zur Verfügung stellt, und wobei die zweite Geräteumgebung eine mit dem Werkzeug bzw. den Werkzeugen zusammenwirkende Signatureinrichtung zum Prüfen einer jeweils aktuell empfangenen Signatur und zur Generierung einer Signatur zumindest unter Zugrundelegung der Gesamtheit von auf der zweiten Geräteumgebung erzeugten Daten und der letzten jeweils geprüften Signatur.

Description:
Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten

Automatisierungssystem

Beschreibung

Die Erfindung betrifft ein Verfahren zum Bearbeiten eines sicherheitsbezogenen

Anwenderprogramms für eine Sicherheitssteuerung, die dazu eingerichtet ist, eine automatisierte Vorrichtung zu steuern, welche wenigstens eine Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, wobei das Anwenderprogramm logische Verknüpfungen in

Abhängigkeit eines jeweiligen Zustandes der wenigstens einen Sicherheitsfunktion für die

Sicherheitssteuerung zum Steuern der Maschine durch die Sicherheitssteuerung festlegt, sowie ein Automatisierungssystem zur Durchführung des Verfahrens.

Bekanntermaßen laufen heutzutage Anwendungen zur Erstellung, Inbetriebnahme, Wartung und Erzeugung des Codes von sicherheitsbezogenen Anwenderprogrammen als geschlossene

Anwendung auf einem Gerät.

In diesem Zusammenhang offenbart z.B. die EP 0 997 807 A2 ein Verfahren zum Online-Update sicherheitskritischer Software in der Eisenbahn-Signaltechnik, insbesondere zum Einbringen von Produktionssoftware in bestimmte Zielrechner. Hierzu erhält jeder Teilnehmer in der

Bearbeitungskette einen öffentlichen und geheimen Schlüssel. Ferner wird eine Zertifizierungsinstanz bestimmt, welche die Zugehörigkeit der Schlüssel zu den Teilnehmern mit einem Zertifikat bestätigt. Beim Erstellen und Testen der sicherheitskritischen Software in aufeinanderfolgenden Schritten der Bearbeitungskette erhält daraufhin ein jeweiliger Teilnehmer als Vorgabe jeweils die Software und die mit dem geheimen Schlüssel erzeugten Unterschriften und Schlüsselzertifikate der Vorgänger.

Ferner offenbart z.B. die EP 2 363 770 B1 eine Sicherheitsvorrichtung mit einer

Konfigurationseinrichtung und einer hiermit konfigurierbaren Sicherheitssteuerung. Die

Konfigurationseinrichtung erzeugt hierbei einen Zahlencode, welcher Logikregeln repräsentiert, basierend auf welchen von einem Steuerungsprogramm der Sicherheitssteuerung ein

Steuerungssignal in Abhängigkeit von Eingangssignalen erzeugt wird Aus der DE 10 2015 209 108 A1 ist ein Verfahren zum Autorisieren einer Funktion eines eingebetteten Zielsteuergerätes bekannt, wobei ein Entscheidungsgateway von einem Hardware- Sicherheitsmodul eine für das Zielsteuergerät bestimmte Funktionsanforderung anfordert und diese daraufhin von dem Hardware-Sicherheitsmodul empfängt, wobei die Funktionsanforderung zuvor durch das Hardware-Sicherheitsmodul signiert worden ist. Über einen auf eine kryptografische Identität des Entscheidungsgateways gestützten Kommunikationskanal sendet dieses die empfangene Funktionsanforderung auch einem Backend und empfängt daraufhin von dem Backend ein der Funktionsanforderung entsprechendes, durch das Backend signiertes Ticket und legt dieses ab. Nach einer Anfrage um Freigabe der Funktion durch das Zielsteuergerät wird diese bei gültigem Ticket entsprechend freigegeben und daraufhin das Ticket entwertet.

Es ist eine Aufgabe der Erfindung einen technischen Weg aufzuzeigen, bei dem die Entwicklung auch von komplexerer Steuerungslogik und folglich das Bearbeiten von Anwendungsprogrammen einschl. des Erzeugens eines entsprechenden sicherheitsbezogenen Maschinencodes auch auf

verschiedenen Geräten stattfinden und dennoch eindeutig nachvollzogen werden kann.

Die technische Lösung gemäß der Erfindung ist durch ein Verfahren nach Anspruch 1 gegeben. Bevorzugte Weiterbildungen sind Gegenstand der abhängigen Ansprüche.

Zur technischen Lösung schlägt die Erfindung zum Bearbeiten eines sicherheitsbezogenen

Anwenderprogramms für eine Sicherheitssteuerung, die dazu eingerichtet ist, wenigstens eine automatisierte Vorrichtung zu steuern, welche wenigstens eine Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, wobei das Anwenderprogramm logische

Verknüpfungen in Abhängigkeit eines jeweiligen Zustandes der wenigstens einen Sicherheitsfunktion für die Sicherheitssteuerung zum Steuern der Maschine durch die Sicherheitssteuerung festlegt, folglich ein Verfahren vor, bei welchem Daten für ein Anwenderprogramm nacheinander auf einer Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen, welche jeweils ein sicherheitsbezogenes Anwenderprogramm-Bearbeitungswerkzeug zum Erzeugen von Daten zur Verfügung stellen, erzeugt werden, und welches sich ferner durch folgende Schritte kennzeichnet.

Auf einer jeweiligen der Geräteumgebungen werden Daten für das Anwenderprogramm über das jeweils von dieser Geräteumgebung zur Verfügung gestellte sicherheitsbezogene

Anwenderprogramm-Bearbeitungswerkzeug erzeugt und nach dem Erzeugen der Daten werden diese erzeugten Daten für das Anwenderprogramm jeweils an eine der anderen dieser

Geräteumgebungen übergeben. Vor einer jeweiligen Übergabe von erzeugten Daten wird jeweils eine Signatur zumindest unter Zugrundelegung der Gesamtheit der erzeugten Daten durch die Signatureinrichtung der

Geräteumgebung generiert, auf welcher die zu übergebenen Daten für das Anwenderprogramm erzeugt worden sind, und die generierte Signatur wird zusammen mit den erzeugten Daten übergeben.

Nach einer jeweiligen Übergabe von erzeugten Daten zusammen mit einer erzeugten Signatur wird auf der diese Daten und Signatur empfangenden Geräteumgebung eine Prüfung der empfangenen Signatur durch eine Signatureinrichtung dieser empfangenden Geräteumgebung vorgenommen, wobei bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung, erneut Daten für das Anwenderprogramm unter Zugrundelegung der empfangenen Daten erzeugt werden, und die dann mit diesen erneut erzeugten Daten zusammen zu übergebende Signatur zumindest unter

Zugrundelegung der Gesamtheit der auf dieser Geräteumgebung erzeugten Daten und der jeweils empfangenen Signatur durch die Signatureinrichtung des Anwenderprogramm- Bearbeitungswerkzeuges generiert wird.

Ein Wesentlicher Vorteil besteht somit darin, dass jeder Schritt bei der Bearbeitung eines sicherheitsbezogenen Anwenderprogramms, d.h. jedwede Erzeugung von Daten für das

Anwenderprogramm automatisch dokumentiert und jederzeit eindeutig nachverfolgt werden kann ohne, dass hierzu auf einem gemeinsamen Gerät eine in sich geschlossene Anwendung notwendig ist. Verfälschungen eines Bearbeitungsschrittes können folglich auch auf anderen und auch unterschiedlichen Geräten automatisch erkannt werden.

Die technische Lösung gemäß der Erfindung spiegelt sich auch in einem Automatisierungssystem durch ein Verfahren nach Anspruch 13 wieder.

Für ein zur Durchführung des erfindungsgemäßen Verfahrens ausgebildetes Automatisierungssystem sieht die Erfindung somit ferner vor, dass dieses Automatisierungssystem eine Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen umfasst, welche jeweils ein

sicherheitsbezogenes Anwenderprogramm-Bearbeitungswerkzeug zur Erzeugung von Daten für ein Anwenderprogramm für eine Sicherheitssteuerung zur Verfügung stellen, wobei das

Anwenderprogramm-Bearbeitungswerkzeug ferner eine Signatureinrichtung zur Generierung einer Signatur und zur Prüfung von Signaturen umfasst. Zweckmäßig ist hierbei eine erste

Geräteumgebung dieser Mehrzahl von verschiedenen, verteilt voneinander entfernt angeordneten Geräteumgebungen, auf einer Kommunikations-Benutzerendeinrichtung, insbesondere mobilen Kommunikations-Benutzerendeinrichtung eingerichtet, eine zweite Geräteumgebung auf einem Cloud-Rechner eingerichtet und es ist ferner wenigstens eine weitere Geräteumgebung dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen eingerichtet.

Darüber hinaus besitzen die erste Geräteumgebung, die zweite Geräteumgebung und die wenigstens eine weitere Geräteumgebung Schnittstellen und sind ausgebildet, zum Übergeben von jeweils erzeugten Daten zusammen mit einer jeweils generierten Signatur von der ersten an die zweite Geräteumgebung, von der zweiten an die wenigstens eine weitere Geräteumgebung und besonders bevorzugt auch von der wenigstens einen weiteren an die zweite Geräteumgebung.

Die erste Geräteumgebung stellt hierbei als Anwenderprogramm-Bearbeitungswerkzeug zweckmäßig ein sicherheitsbezogenes Programmierwerkzeug zur Erzeugung eines Quellcodes des

Anwenderprogramms sowie eine mit dem Programmierwerkzeug zusammenwirkende

Signatureinrichtung zur Generierung einer Signatur zumindest unter Zugrundelegung der Gesamtheit des erzeugten Quellcodes zur Verfügung und die zweite Geräteumgebung stellt als

Anwenderprogramm-Bearbeitungswerkzeug zweckmäßig ein sicherheitsbezogenes

Compilierwerkzeug zur Erzeugung eines Maschinencodes des Anwenderprogramms zur Verfügung, sowie besonders bevorzugt auch ein sicherheitsbezogenes Werkzeug zur Erzeugung von

Inbetriebnahmedaten und/oder von Testprozedurdaten für das Anwenderprogramm, und stellt eine mit den Werkzeugen zusammenwirkende Signatureinrichtung zum Prüfen einer jeweils aktuell empfangenen Signatur und zur Generierung einer Signatur zumindest unter Zugrundelegung der Gesamtheit von auf der zweiten Geräteumgebung erzeugten Daten und der letzten jeweils geprüften Signatur zur Verfügung.

Die Bearbeitung eines sicherheitsbezogenen Anwenderprogramms einer Sicherheitssteuerung, d.h. insbesondere die Erstellung, Inbetriebnahme und Wartung von sicherheitsbezogenen

Anwenderprogrammen kann folglich bevorzugt auf mobilen Kommunikations- Benutzerendeinrichtungen, z.B. Phone, Tablet, Notebook oder PC mit entsprechenden Editoren gestartet werden. Die Werkzeuge zum Erstellen des Maschinencodes sowie der

Inbetriebnahmedaten und/oder Testprozedurdaten für das sicherheitsbezogene Anwenderprogramm der Sicherheitssteuerung sind hingegen auf einem Cloud-Rechner ausgelagert. Die Erzeugung des Maschinencodes sowie der Inbetriebnahmedaten und/oder Testprozedurdaten findet somit im Rahmen der Erfindung entfernt und unabhängig vom mobilen Endgerät auf einem solchen Cloud- Rechner statt, der mit der entsprechend eingerichteten Geräteumgebung folglich die einzelnen bzw. anwendungsbedingten Werkzeuge und hierfür notwendigen Dienste in einem über ein Rechnernetz zugreifbaren, besonders bevorzugt auch über das Internet zugreifbaren, jedoch zentral bedienbaren System vereint.

Die Identifizierung zwischen den einzelnen Geräteumgebungen, wie Phone, Tablet, Cloud-Rechner usw. und der Sicherheitssteuerung ist durch die jeweilige, erfindungsgemäße

Signaturgenerierung, -Übergabe und -prüfung dennoch eindeutig. Die zum Erzeugen des

Maschinencodes erforderlichen Daten, und also insbesondere die Quelldaten für das

Anwenderprogramm, zweckmäßig einschließlich etwaig eingebundener Objekt-, Parametrierungsund/oder Bibliotheksdaten und/oder -dateien, werden mit einer eindeutigen Signatur gesichert und an den Cloud-Rechner übertragen.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen, in welchen zeigen:

Fig. 1 eine stark schematisierte Darstellung einer Ausführungsform eines Automatisierungssystems im Rahmen der Erfindung,

Fig. 2 einen stark schematisierten Ablauf einer Ausführungsform eines Verfahrens im Rahmen der Erfindung, und

Fig. 3 einen stark schematisierten Ablauf einer weiteren Ausführungsform eines Verfahrens im Rahmen der Erfindung.

Nachfolgend werden unter Bezugnahme auf die Zeichnungen bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens zum Bearbeiten eines sicherheitsbezogenen Anwenderprogramms für eine in den Figuren aus Gründen der Übersichtlichkeit nicht näher dargestellte

Sicherheitssteuerung sowie ein dazu zweckmäßig eingerichtetes Automatisierungssystem zu dessen Durchführung näher beschrieben. Die Sicherheitssteuerung ist hierbei dazu eingerichtet, eine automatisierte Vorrichtung zu steuern, welche wenigstens eine in den Figuren aus Gründen der Übersichtlichkeit gleichermaßen nicht näher dargestellte Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, wobei das Anwenderprogramm logische

Verknüpfungen in Abhängigkeit eines jeweiligen Zustandes der wenigstens einen Sicherheitsfunktion für die Sicherheitssteuerung zum Steuern der Maschine durch die Sicherheitssteuerung festlegt. Derartige Sicherheitssteuerungen und deren Anwendungen sind dem Fachmann an und für sich bekannt und werden daher vorliegend nicht im Einzelnen beschrieben. Für die Anwendung einer solchen Sicherheitssteuerung kann als automatisierte Vorrichtung mit wenigstens einer Schutzreinrichtung beispielsweise eine Maschine, z.B. eine Stanzmaschine, mit einer die

Sicherheitsfunktionen eines Not-Halt und einer Lichtschranke integrierenden Schutzeinrichtung genannt werden. Die Schutzeinrichtung wird somit vom Maschinenhersteller zur Risikominderung auf Seiten des Anwenders eingesetzt, d.h. um Gefahren für Mensch und/oder Umwelt auf Seiten des Anwenders vorzubeugen bzw. zu vermeiden, und also im obigen Beispiel insbesondere, um mit einer aus einem Not-Halt und einer Lichtschranke bestehenden Schutzeinrichtung Gefahren für das die Maschine betreuende Personal vorzubeugen. So darf der Antrieb dieser Maschine nur aktiviert werden, wenn beide Sicherheitsfunktionen, d.h. der Not-Halt und die Lichtschranke, der

Schutzeinrichtung einen sicheren Zustand melden. Die Überwachung dieser Schutzeinrichtung wird durch eine sicherheitsbezogene Steuerung, d.h. im Rahmen der Terminologie der vorliegenden Beschreibung und Ansprüche durch eine Sicherheitssteuerung ausgeführt, welche entsprechend dem Überwachungsergebnis den Antrieb aktiviert oder auch deaktiviert und somit die Maschine auch insgesamt steuert, z.B. auch in einen sicheren Zustand fährt. Herkömmlicher Weise erstellt hierzu ein Programmierer mit einer dazu geeigneten Software, ein sicherheitsbezogenes Anwenderprogramm für die Sicherheitssteuerung, wodurch die logischen Verknüpfungen in Abhängigkeit eines jeweiligen Zustandes der wenigstens einen Sicherheitsfunktion für die Sicherheitssteuerung zum Steuern der automatisierten Vorrichtung durch die Sicherheitssteuerung festlegt werden. Beispiele von automatisierten Vorrichtungen sind in den Fig. 2 und 3 mit M1 , M2, M3 und M4 gekennzeichnet. Die Sicherheitssteuerung kann hierbei in der automatisierten Vorrichtung sein oder diese von extern steuern.

Fig. 1 zeigt in stark schematisierter Darstellung eine Ausführungsform eines

Automatisierungssystems mit welchem im Gegensatz zur herkömmlichen Erstellung eines solchen sicherheitsbezogenen Anwenderprogramms eine wie z.B. bei Fig. 2 oder Fig. 3 jeweils in stark schematisiertem Ablauf dargestellte Ausführungsform eines Verfahrens im Rahmen der Erfindung durchgeführt werden kann, d.h. mit welchem das Bearbeiten von Anwendungsprogrammen, und also insbesondere die einzelnen Schritte beim Erstellens von Anwendungsprogrammen auf verschiedenen Geräten erfolgt. Jedes Gerät ist hierbei folglich in einer eigenen Geräteumgebung eingebunden bzw. stellt eine solche bereit. Mit anderen Worten ist folglich eine Mehrzahl von, im Rahmen der Erfindung an der Bearbeitung eines jeweiligen Anwendungsprogramms beteiligten Geräteumgebungen, z.B. die Geräteumgebungen E1 , E2, E3a und E4 gemäß Fig.1 , welche jeweils ein sicherheitsbezogenes Anwenderprogramm-Bearbeitungswerkzeug T1 , T2, T3a und T4 zum Erzeugen von Daten für ein Anwenderprogramm für eine Sicherheitssteuerung zur Verfügung stellen, verteilt voneinander entfernt angeordnet und also auf unterschiedlichen Geräten eingerichtet. Die für ein Anwenderprogramm jeweils notwendigen Daten, d.h. insbesondere beginnend mit der Erstellung eines Quellcodes über das Kompilieren bis hin zur für die Inbetriebnahme und Wartung notwendige Daten, werden somit nacheinander auf solchen verteilt voneinander entfernt angeordneten Geräteumgebungen erzeugt und anschließend zusammen mit einer Signatur an eine andere dieser Geräteumgebungen übergeben.

Eine erste Geräteumgebung E1 ist ferner zweckmäßig auf einer Kommunikations- Benutzerendeinrichtung eingerichtet, insbesondere auf einem PC, einem Notebook oder einem Mobilgerät wie z.B. Tablet oder Smartphone. Die erste Geräteumgebung E1 verfügt als

Anwenderprogramm-Bearbeitungswerkzeug T1 bevorzugt über ein sicherheitsbezogenes, zur Erstellung eines Quellcodes des Anwenderprogramms eingerichtetes Programmierwerkzeug sowie eine mit dem Programmierwerkzeug zusammenwirkende Signatureinrichtung zur Generierung einer Signatur zumindest unter Zugrundelegung der Gesamtheit des erzeugten Quellcodes.

Bevorzugt ist die erste Geräteumgebung E1 auf einer mobilen Kommunikations- Benutzerendeinrichtung eingerichtet, so dass ein die Bearbeitung eines Anwenderprograms startender oder einleitender Programmierer hierbei möglichst Ortsungebunden tätig werden kann.

Eine zweite, mit dem Bezugszeichen E2 gekennzeichnete Geräteumgebung dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen ist bevorzugt auf einem Cloud- Rechner eingerichtet. Zusätzlich zur Bereitstellung von an und für sich bekannten

Computingdiensten, wie z.B. Server, Speicher, Datenbanken, Netzwerkkomponenten, Software, Analyse- oder intelligente Funktionen etc., über ein Rechnernetz („die Cloud“), wie z.B. ein

Firmennetz oder das Internet , kann folglich eine solche Geräteumgebung in zweckmäßiger Weise die einzelnen bzw. anwendungsbedingten Werkzeuge und Dienste in einem über das Rechnernetz zugreifbaren, besonders bevorzugt auch über das Internet zugreifbaren jedoch zentral bedienbaren System vereinen.

Wie bei Fig. 1 angedeutet, sind die erste Geräteumgebung E1 und die zweite Geräteumgebung E2 mit Schnittstellen 11 , 12 ausgestattet und zur Übergabe der jeweils auf ersten Geräteumgebung E1 erzeugten Daten zusammen mit einer dort generierten Signatur von der ersten Geräteumgebung E1 an die zweite Geräteumgebung E2 eingerichtet. Die zweite Geräteumgebung E2, die folglich zum Empfangen dieser auf der ersten Geräteumgebung E1 erzeugten Daten, also insbesondere des Quellcodes, zweckmäßig einschließlich etwaig eingebundener Objekt-, Parametrierungs- und/oder Bibliotheksdaten und/oder -dateien, und generierten Signatur eingerichtet ist, verfügt als Anwenderprogramm-Bearbeitungswerkzeug T2 zweckmäßig über ein sicherheitsbezogenes Compilierwerkzeug zur Erzeugung eines

Maschinencodes des Anwenderprogramms. Ferner umfasst das Anwenderprogramm- Bearbeitungswerkzeug T2 der zweiten Geräteumgebung E2 bevorzugt auch ein

sicherheitsbezogenes Werkzeug zur Erzeugung von Inbetriebnahmedaten und/oder von

Testprozedurdaten für das Anwenderprogramm, wie nachfolgend noch näher erläutert. Darüber hinaus verfügt die zweite Geräteumgebung E2, zweckmäßig als Teil des Anwenderprogramm- Bearbeitungswerkzeugs T2, eine mit den Werkzeugen zusammenwirkende Signatureinrichtung zum Prüfen einer jeweils aktuell empfangenen Signatur und zur Generierung einer Signatur zumindest unter Zugrundelegung der Gesamtheit von auf der zweiten Geräteumgebung E2 erzeugten Daten und der letzten jeweils geprüften Signatur.

Ferner besitzt das Automatisierungssystem im Rahmen der Erfindung wenigstens eine weitere eingerichtete Geräteumgebung. Bei Fig. 1 sind fünf weitere Geräteumgebungen E3a, E3b, E3c, E3d und E4 gezeigt, die mit Schnittstellen I3a, I3b, I3c, I3d und I4 ausgestattet sind. Bevorzugt ist folglich eine Mehrzahl von weiteren eingerichteten Geräteumgebungen vorgesehen. Diese wenigstens eine weitere Geräteumgebung E3a, E3b, E3c, E3d bzw. E4 und die zweite Geräteumgebung E2 sind ferner in zweckmäßiger Weise eingerichtet, zum Übergeben von jeweils erzeugten Daten zusammen mit einer jeweils generierten Signatur von der zweiten an die wenigstens eine weitere

Geräteumgebung und besonders bevorzugt auch von der wenigstens einen weiteren an die zweite Geräteumgebung.

Wenigstens eine dieser weiteren Geräteumgebungen, bei Fig. 1 z.B. die vier weiteren

Geräteumgebungen E3a, E3b, E3c und E3d, sind hierbei zweckmäßig auf einer automatisierten Vorrichtung eingerichtet, für deren Steuerung erfindungsgemäß das sicherheitsbezogene

Anwenderprogramm der Sicherheitssteuerung bearbeitet wird. In diesem Fall werden also bevorzugt auch auf der Geräteumgebung E2 erzeugte Inbetriebnahmedaten an eine solche weitere

Geräteumgebung übergeben.

Ergänzend oder alternativ kann jedoch auch eine dieser weiteren Geräteumgebungen, bei Fig. 1 z.B. die weitere Geräteumgebung E4 auf einem eine Testumgebung bereitstellenden Gerät eingerichtet sein. In diesem Fall werden also bevorzugt auch auf der Geräteumgebung E2 erzeugte

Testprozedurdaten an eine solche weitere Geräteumgebung übergeben.

Wie zuvor bereits hingewiesen, zeigen die Fig. 2 oder Fig. 3 jeweils in stark schematisiertem Ablauf bevorzugte Ausführungsform des mit einem solchen Automatisierungssystem erfindungsgemäßen Bearbeiten eines sicherheitsbezogenen Anwenderprogramms. Hierbei werden folglich jeweilige Daten für das Anwenderprogramm auf einer jeweiligen der Geräteumgebungen über das jeweils von dieser Geräteumgebung zur Verfügung gestellte sicherheitsbezogene Anwenderprogramm- Bearbeitungswerkzeug erzeugt und unter Zugrundelegung der Gesamtheit dieser erzeugten Daten eine Signatur generiert. Anschließend werden diese erzeugten Daten zusammen mit der Signatur an eine andere dieser Geräteumgebungen übergeben.

Gemäß Fign. 2 und 3 werden beispielsweise auf der Geräteumgebung E1 die mit proj.data bezeichneten Daten erzeugt und zumindest unter Zugrundelegung dieser Daten, d.h. insbesondere des Quellcodes, zweckmäßig einschließlich etwaig eingebundener Objekt-, Parametrierungsund/oder Bibliotheksdaten und/oder -dateien, die mit Sig1 bezeichnete Signatur generiert.

Anschließend werden die mit proj.data bezeichneten Daten, also insbesondere die Quellcodedaten, zweckmäßig einschließlich etwaig eingebundener Objekt-, Parametrierungs- und/oder

Bibliotheksdaten und/oder -dateien, zusammen mit der mit Sig1 bezeichneten Signatur an die Geräteumgebung E2 übergeben, wie mit dem mit dem Bezugszeichen 1 gekennzeichneten Pfeil angezeigt.

Nach der Übergabe solcher erzeugten Daten zusammen mit der Signatur wird auf der diese Daten und Signatur empfangenen Geräteumgebung zunächst die empfangene Signatur durch eine Signatureinrichtung dieser Geräteumgebung geprüft. Bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung werden auf dieser Geräteumgebung erneut Daten für das Anwenderprogramm unter Zugrundelegung der empfangenen Daten erzeugt. Eine dann mit diesen erneut erzeugten Daten zusammen zu übergebende Signatur wird ferner zumindest unter Zugrundelegung der Gesamtheit der auf dieser Geräteumgebung erzeugten Daten und der jeweils empfangenen Signatur durch die Signatureinrichtung dieser Geräteumgebung generiert.

Gemäß Fign. 2 und 3 werden beispielsweise auf der Geräteumgebung E2 nach fehlerfreier Prüfung der mit Sig.1 bezeichneten Signatur erneut die mit comp.data bezeichneten Daten erzeugt, und zwar zumindest unter Zugrundelegung der empfangenen, mit proj.data bezeichneten Daten. Diese auf der io

Geräteumgebung E2 erzeugten, mit comp.data bezeichneten Daten werden zweckmäßig auch dort gespeichert. Ferner wird dann unter Zugrundelegung der erneut erzeugten, mit comp.data bezeichneten Daten sowie der empfangen, mit Sig1 bezeichneten Signatur die mit Sig2 bezeichnete Signatur generiert.

Derartig erneut erzeugte Daten zusammen mit der hierfür generierten Signatur können folglich im Rahmen an eine andere, im Ablauf der Bearbeitung der Daten nachfolgende Geräteumgebung übergeben werden oder auch je nach Bearbeitungsabfolge und von der Bearbeitung umfassten Bearbeitungsschritten an eine Geräteumgebung übergeben werden, auf welcher keine erneuten Daten mehr erzeugt werden.

Bevorzugt werden jedoch Daten für das Anwenderprogramm zumindest bis zum Abschluss einer vollständigen bestimmungsgemäßen Inbetriebnahme des Anwenderprogramms nacheinander auf den verteilt voneinander entfernt angeordneten Geräteumgebungen erzeugt, wie nachfolgend noch ersichtlich.

Wie den Ausführungsformen gemäß Fign. 2 und 3 entnehmbar, werden in bevorzugter Weiterbildung ferner beim jeweiligen Übergeben der erzeugten Daten und Signatur zusätzlich jeweils Metadaten, in den Figuren, mit MetaData bezeichnet, übergeben. Diese können insbesondere die jeweilige Geräteumgebung betreffen, auf welcher die erzeugten Daten erzeugt worden sind, und/oder das Datum der Datenerzeugung und/oder einen Nutzer eines die Daten erzeugenden

Anwenderprogramm-Bearbeitungswerkzeuges. Auch können, wie der Ausführungsform gemäß Fig. 3 ersichtlich, auch SmartContract-Daten, in der Fig. mit SmartContract bezeichnet, mit übergeben werden, insbesondere betreffend die Geräteumgebung, an welche die erzeugten Daten übergeben werden, übergeben werden. Wie an und für sich bekannt, basieren SmartContracts auf

Computerprotokollen, insbesondere unter Nutzung einer Blockchain-Technologie, und ermöglichen automatische Verträge, die bei bestimmten Ereignissen in Kraft treten, ohne dass eine menschliche Überwachung dabei nötig ist. Im Rahmen der Erfindung kann folglich unter Verwendung von SmartContracts bei Eintritt eines bestimmten Ereignisses automatisch eine vorbestimmte weitere Aktion, insbesondere auf der die übergebenen Daten empfangenen Geräteumgebung ausgelöst werden.

Unter Berücksichtigung vorstehender Ausführungen in Bezug auf die Fign. 1 , 2 und 3 werden folglich bevorzugt gemäß Fign. 2 und 3 auf der Geräteumgebung E1 als mit proj.data bezeichnete Daten Quellcodedaten für das Anwenderprogramm erzeugt und auf der Geräteumgebung E2 als mit comp.data bezeichnete Daten Maschinencodedaten für das Anwenderprogramm erzeugt.

Die in Fign. 2 und 3 gezeigten Ausführungsformen repräsentieren somit insbesondere ein

Ausführungsbeispiel, bei welchem das sicherheitsbezogene Anwenderprogramm im Rahmen eines bestimmten Projekts zunächst mittels eines Programmierwerkzeuges, also zweckmäßigerweise mittels eines Programmeditors entwickelt und ein Quellcode für dieses sicherheitsbezogene Anwenderprogramm erzeugt wird. Die Geräteumgebung E1 besitzt somit in spezieller Ausführung dieses Programmierwerkzeug als Anwenderprogramm-Bearbeitungswerkzeug (T1 , Fig. 1 ) und ist bevorzugt als oder auf einer Kommunikations-Benutzerendeinrichtung, z.B. in Art eines PCs, Notebooks oder Mobilgeräts, wie z.B. Tablet oder Smartphone, eingerichtet. Nachdem die mit proj.data bezeichnete Daten, d.h. im speziellen die Quellcodedaten für dieses sicherheitsbezogene Anwenderprogramm im Rahmen eines bestimmten Projekts erzeugt worden sind, werden diese Daten, zweckmäßig einschließlich etwaig eingebundener Objekt-, Parametrierungs- und/oder Bibliotheksdaten und/oder -dateien, an mindestens einen Compiler als Compilierwerkzeug des Anwenderprogramm-Bearbeitungswerkzeuges (T2, Fig. 1 ) der Geräteumgebung E2 übergeben, vgl. Bezugsziffer 1 , wobei die Geräteumgebung E2 bei diesem Ausführungsbeispiel auf einem Cloud- Rechner eingerichtet ist. Die Übergabe geschieht zweckmäßig in Form einer die alle diese Daten enthaltenden Datei. Bevorzugt werden jedoch auch weitere Metadaten, wie z.B. den Namen des Bearbeiters der die letzte Änderung vorgenommen hat, übergeben, wobei die vorerwähnte Datei zweckmäßig auch diese Metadaten enthält. Alternativ zu den Metadaten oder auch zusätzlich werden in besonders bevorzugter Weiterbildung (Fig. 3) über das Anwenderprogramm- Bearbeitungswerkzeug (T1 , Fig. 1 ), insbesondere in Form eines Programms erzeugte SmartContract- Daten übergeben, welche die Bedingung(en) für eine automatische Weiterverarbeitung enthalten, wobei die vorerwähnte Datei zweckmäßig auch diese SmartContract-Daten enthält. Insbesondere die auf der Geräteumgebung E1 erzeugten Quellcodedaten werden hierbei zweckmäßig ferner gegen jegliche Art der Verfälschung im Rahmen der Übergabe gesichert. Anschließend wird noch unter Zugrundelegung der Gesamtheit der auf der Geräteumgebung E1 erzeugten Daten eine Signatur Sig.1 generiert, wobei hierzu zweckmäßig eine über die Gesamtheit dieser, auf der Geräteumgebung E1 erzeugten Daten eindeutige Signatur berechnet wird. Die Signatur Sig.1 wird an die erzeugten Daten angehängt und zusammen mit diesen übergeben, vgl. Bezugszeichen 1 , vorzugsweise gleichermaßen innerhalb der vorerwähnten Datei. Der bzw. die Compiler laufen auf dem Cloud-Rechner mit der Geräteumgebung E2. Diese/r Compiler prüft vor der Weiterberarbeitung des sicherheitsbezogenen Anwenderprogramms die empfangene Signatur Sig.1 und erzeugt nach erfolgreicher Prüfung insbesondere aus den in der empfangenen Datei enthaltenen Quellcodedaten die mit comp.data in den Fig. 2 und 3 bezeichneten Daten, also gemäß Ausführungsbeispiel ausführbaren Maschinencode für die Sicherheitssteuerung. Ist der Kompiliervorgang erfolgreich abgeschlossen, kann in einfachster Ausführung im Rahmen der Erfindung unter Zugrundelegung dieser erzeugten Daten bereits erneut eine Signatur generiert, also insbesondere über den Maschinencode erneut eine Signatur berechnet werden, wobei hierbei zusätzlich noch die zuvor empfangene Signatur Sig.1 miteinbezogen wird, und die neu generierte Signatur zumindest zusammen mit dem Maschinencode an eine weitere Geräteumgebung dieser Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen übertragen werden. Diese kann z.B. auf einer zu steuernden automatisierten Vorrichtung eingerichtet sein.

Zweckmäßig, insbesondere je nach anwendungsspezifisch gegebenenfalls mit übergebenen und also empfangenen SmartContract-Daten, werden über das Anwenderprogramm-Bearbeitungswerkzeug (T2, Fig. 1 ) der Geräteumgebung E2 zusätzlich zu den Maschinencodedaten zumindest noch Inbetriebnahmedaten für das Anwenderprogramm erzeugt und die Maschinencodedaten und Inbetriebnahmedaten als erzeugte Daten an die wenigstens eine weitere Geräteumgebung zur Inbetriebnahme des Anwenderprogramms übergeben. In diesem Fall erfolgt die erneute Generierung der mit zu übergebenden Signatur folglich zusätzlich zumindest unter weiterer Zugrundelegung der Inbetriebnahmedaten als erzeugte Daten. Es sei jedoch darauf hingewiesen, dass solche

Inbetriebnahmedaten für das Anwenderprogramm in Abwandlung auch auf einer anderen, in den Fign. aus Gründen der Übersichtlichkeit nicht dargestellten Geräteumgebung erzeugt werden können, welche zunächst lediglich den Maschinencode zusammen mit der hierzu neu generierten Signatur von der Geräteumgebung E2 erhält, und diese andere Geräteumgebung daraufhin die

Inbetriebnahmedaten als erzeugte Daten zusammen mit einer entsprechend neu generierten Signatur und den Maschinencodedaten an die wenigstens eine weitere Geräteumgebung zur Inbetriebnahme des Anwenderprogramms übergibt.

In besonders bevorzugter Ausbildung, werden jedoch, wie auch bei den Ausführungsbeispielen nach Fign. 2 und 3, über das Anwenderprogramm-Bearbeitungswerkzeug (T2, Fig. 1 ) der Geräteumgebung E2 zusätzlich zu den Maschinencodedaten, d.h. insbesondere bei erfolgreichen Abschluss des Kompiliervorgangs, Testprozedurdaten, in den Fign. 2 und 3 mit testdata bezeichnet, für das Anwenderprogramm erzeugt und die Maschinencodedaten und Testprozedurdaten als erzeugte Daten zunächst an eine weitere Geräteumgebung E4 der Mehrzahl von verteilt voneinander entfernt angeordneten Geräteumgebungen zum Testen des Anwenderprogramms übergeben. In diesem Fall erfolgt die erneute Generierung der mit zu übergebenden Signatur Sig.2 folglich zusätzlich zumindest unter weiterer Zugrundelegung der Testprozedurdaten als erzeugte Daten. Es sei jedoch darauf hingewiesen, dass solche Testprozedurdaten für das Anwenderprogramm in Abwandlung auch auf einer anderen, in den Fign. aus Gründen der Übersichtlichkeit nicht dargestellten Geräteumgebung erzeugt werden können, welche zunächst lediglich den Maschinencode zusammen mit der hierzu neu generierten Signatur von der Geräteumgebung E2 erhält, und diese andere Geräteumgebung daraufhin die Testprozedurdaten als erzeugte Daten zusammen mit einer entsprechend neu generierten Signatur und den Maschinencodedaten an die wenigstens eine weitere Geräteumgebung E4 zum Testen des Anwenderprogramms übergibt.

Auf der weiteren Geräteumgebung E4 werden daraufhin nach Empfangen der Maschinencodedaten und Testprozedurdaten und bei Vorliegen eines fehlerfreien Ergebnisses der Prüfung der empfangen Signatur Sig.2 eine Testprozedur durchlaufen und Testergebnisdaten, in den Fign. 2 und 3 mit testrec.data bezeichnet, für das Anwenderprogramm erzeugt. Diese Testergebnisdaten werden daraufhin als erzeugte Daten in besonders bevorzugter Ausführung wieder zurück an die

Geräteumgebung E2 übergeben, wobei hier bei der Generierung für die mit zu übergebende Signatur Sig.3 folglich zumindest die erzeugten Daten testrec.data zugrunde gelegt werden sowie die zuvor empfangene Signatur Sig.2 miteinbezogen wird. Es sei jedoch darauf hingewiesen, dass die Testergebnisdaten in Abwandlung auch an eine andere, in den Fign. aus Gründen der

Übersichtlichkeit nicht dargestellten Geräteumgebung anstelle der Geräteumgebung E2 übergeben werden können.

Ist somit zurückkommend auf das mit Bezug auf die in Fign. 2 und 3 gezeigten Ausführungsformen zuvor beschriebene Ausführungsbeispiel auf der Geräteumgebung E2 der Kompiliervorgang zur Erzeugung der mit comp.data in den Fig. 2 und 3 bezeichneten Daten aus den in der empfangenen Datei enthaltenen Quellcodedaten erfolgreich abgeschlossen und bei zusätzlich übergebenen SmartContract-Daten (Fig. 3) somit ein bestimmtes Ereignis eingetreten, werden für das

sicherheitsbezogene Anwenderprogramm auf der Geräteumgebung E2 Testprozedurdaten testdata für einzelne Testfälle erzeugt. Anschließend wird über den Maschinencode comp.data, die

Testprozedurdaten testdata und zweckmäßig über weitere Metadaten, wie z.B. Informationen zu dem/den Compiler/n, die Signatur Sig.1 aus dem vorherigen Bearbeitungsschritt und/oder zweckmäßig über weitere Bedingungen zur automatischen Weiterberarbeitung in Form von SmartContract-Daten die neue Signatur Sig.2 berechnet. Eine in den SmartContract-Daten enthaltene Bedingung kann z.B. sein, dass nach der erfolgreichen Durchführung aller Testfälle die Ergebnisse in festgelegter Weise automatisch an die Geräteumgebung E2, d.h. gemäß Ausführungsbeispiel an den Cloud-Rechner zurück übertragen werden. Die eben genannten Daten werden zweckmäßig wiederum in Form einer Datei an eine Testumgebung weitergereicht, d.h. gemäß Fig. 2 und 3 an die weitere Geräteumgebung E4 übergeben, vgl. Bezugszeichen 2.

Nachdem der Test erfolgreich durchgeführt wurde und entsprechende Testergebnisdaten, testrec.data erzeugt worden sind, ist eine wie die vorgenannte Bedingung erfüllt. Die Ergebnisse werden folglich zweckmäßig automatisch an die Geräteumgebung E2 rückübertragen, wobei die hierzu mit zu übertragene Signatur Sig.3 über die, die Testergebnisse enthaltenen Testprozedurdaten testdata, die Signatur Sig.2 aus dem vorhergegangenen Bearbeitungsschritt der Geräteumgebung E2 und gegebenenfalls über weitere Metadaten, wie z.B. Informationen zur Testumgebung, und/oder SmartContract-Daten neu berechnet und also generiert wird. An den Cloud-Rechner werden somit die vorgenannten Daten zusammen mit der Signatur Sig.3 zweckmäßig wiederum in Form einer Datei übertragen, vgl. Bezugszeichen 3.

Nachdem die Testergebnisse des erfolgreich durchgeführten Tests auf dem Cloud-Rechner, d.h. allgemein der Geräteumgebung E2 vorliegen, wird dort zunächst wieder die empfange Signatur Sig.3 geprüft und bei Vorliegen eines fehlerfreien Ergebnisses dieser Signaturprüfung werden gemäß dargestellter bevorzugter Ausführung anschließend Inbetriebnahmedaten für das

Anwenderprogramm, wie zuvor bereits beschrieben, erzeugt. Der Cloud-Rechner, d.h. allgemein die Geräteumgebung E2, stellt folglich in besonders bevorzugter Weiterbildung dann erst die

Inbetriebnahmedaten, bei Fign. 2 und 3 mit startdata bezeichnet, als erzeugte Daten zusammen mit den zuvor erzeugten Maschinencodedaten comp.data zur Verfügung, z.B. in Form einer

Inbetriebnahmedatei, und übergibt diese dann an die vorstehend bereits beschriebene weitere, oder auch dritte Geräteumgebung E3a, zur Inbetriebnahme des Anwenderprogramms. Diese

Maschinencodedaten wurden, wie vorstehend gesagt, zweckmäßig auf der Geräteumgebung E2 gespeichert. Zusammen mit diesen erzeugten Daten, insbesondere auch innerhalb einer solchen Datei wird wieder eine Signatur Sig.4 übergeben, die wieder unter Zugrundelegung aller, wie zuvor beschriebenen Daten und der empfangenen Signatur generiert wird, d.h. insbesondere über den Maschinencode, die Inbetriebnahmedaten, bevorzugt auch über weitere Metataden, wie z. B. wer die Inbetriebnahmedaten generiert hat und/oder eine weitere SmartContract-Daten, wie z.B., dass für eine Freigabe eine vollständige Validierung der Verdrahtung erfolgt sein muss, und über die empfangene Signatur aus Schritt 3 berechnet wird. Zusammen mit der Signatur Sig.4 wird dann diese Datei auf Geräteumgebung E3a, welche auf einer zu steuernden automatisierten Vorrichtung eingerichtet ist, zur Inbetriebnahme übertragen, vgl. Bezugszeichen 4.

Auf der Geräteumgebung E3a der Mehrzahl von verteilt voneinander entfernt angeordneten

Geräteumgebungen wird nach Empfangen der Maschinencodedaten und Inbetriebnahmedaten und bei Vorliegen eines fehlerfreien Ergebnisses der Prüfung der Signatur Sig.4 eine

Inbetriebnahmeprozedur durchlaufen und, wenn die Inbetriebnahme vollständig abgeschlossen ist, werden zweckmäßig Inbetriebnahme-Validierungsdaten, bei Fign. 2 und 3 mit com.data bezeichnet, für das Anwenderprogramm erzeugt.

Es wird eine Datei mit dem Validierungsergebnis erzeugt. Diese, insbesondere wieder in einer Datei enthaltenen Inbetriebnahme-Validierungsdaten, werden ergänzt um eine neue Signatur Sig.5. Diese wird in entsprechender Weise zu den vorangegangenen Bearbeitungsschritten generiert und demnach insbesondere über die zuvor empfangene Signatur Sig.4 des vorangegangenen

Bearbeitungsschrittes, über die Ergebnisse, d.h. die Inbetriebnahme-Validierungsdaten, sowie zweckmäßig über weitere Metadaten, wie z.B. wer die Validierung durchgeführt hat, und/oder weitere SmartContract-Daten berechnet. Anschließend werden diese Inbetriebnahme-Validierungsdaten als erzeugte Daten zusammen mit den weiteren gegebenenfalls in der Datei enthaltenen Daten sowie der Signatur Sig.5, insbesondere zum Abschluss der vollständigen bestimmungsgemäßen

Inbetriebnahme des Anwenderprogramms, wiederum äußerst zweckmäßig zurück an die

Geräteumgebung E2, d.h. im speziellen Ausführungsbeispiel an den Cloud-Rechner übertragen, vgl. Bezugszeichen 5. Es sei jedoch darauf hingewiesen, dass die Inbetriebnahme-Validierungsdaten in Abwandlung auch an eine andere, in den Fign. aus Gründen der Übersichtlichkeit nicht dargestellten Geräteumgebung anstelle der Geräteumgebung E2 übertragen werden können.

Ist der Schritt der Inbetriebnahme und Validierung abgeschlossen gilt das sicherheitsbezogene Anwenderprogramm als zertifiziert. Hierzu werden gemäß dargestellter bevorzugter Ausführung auf der Geräteumgebung E2 bei Vorliegen eines fehlerfreien Ergebnisses der Prüfung der Signatur Sig.5 Zertifizierungsdaten, bei Fign. 2 und 3 mit machine certificate bezeichnet, für das Anwenderprogramm erzeugt und zweckmäßig auf der Geräteumgebung E2 gespeichert, insbesondere in einem Zertifikat für Geräteumgebungen, die auf einer zu steuernden automatisierten Vorrichtung, welche die wenigstens eine Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, eingerichtet sind. Ferner wird eine neue Signatur Sig.6 generiert, d.h. insbesondere über die Zertifizierungsdaten als erzeugte Daten, über den zuvor erzeugten Maschinencode und zweckmäßig weitere Metadaten und/oder SmartContract-Daten, sowie die aus dem vorhergegangenen

Bearbeitungsschritt empfangene Signatur Sig.5 eine neue Signatur Sig.6 berechnet. Diese neu generierte Signatur Sig.6 wird zweckmäßig gleichermaßen in vorgenanntes Zertifikat eingetragen, welches bevorzugt auf dem Cloud-Rechner, d.h. allgemein auf der Geräteumgebung E2 liegt.

Anschließend können die vorgenannten Daten zusammen mit der neu generierten Signatur Sig.6 automatisiert auf mehrere Geräteumgebungen E3b, E3c und/oder E3d, ergänzend oder alternativ aber auch E3a, die auf einer zu steuernden automatisierten Vorrichtung, welche die wenigstens eine Schutzreinrichtung zum Ausführen wenigstens einer Sicherheitsfunktion beinhaltet, eingerichtet sind, übertragen werden, vgl. Bezugszeichen 6. Wie zuvor beschrieben sind solche automatisierten Vorrichtung in den Fig. 2 und 3 mit M1 , M2, M3 und M4 gekennzeichnet.

Auf den Geräteumgebungen E3b, E3c, E3d und/oder E3a kann daraufhin nach Empfangen der Zertifizierungsdaten und Maschinencodedaten und bei Vorliegen eines fehlerfreien Ergebnisses der Signaturprüfung das Anwenderprogramm bestimmungsgemäß abgearbeitet werden. Zur Prüfung der Signatur Sig.6 ist in bevorzugter Weiterbildung insbesondere vorgesehen, dass auf den

Geräteumgebungen E3b, E3c, E3d und/oder E3a und also insbesondere die automatisierte

Vorrichtung eine Online Verifikation durchführt und prüft, ob die Signatur Sig.6 der empfangenen Datei in dem entsprechenden Maschinenzertifikat auf der Geräteumgebung E2 eingetragen ist. Bei positivem Ergebnis der Prüfung wird der Maschinencode dann zur Ausführung gebracht. Es sei jedoch darauf hingewiesen, dass das Zertifikat grundsätzlich auch auf einer anderen, in den Fign. aus Gründen der Übersichtlichkeit nicht dargestellten Geräteumgebung anstelle der Geräteumgebung E2, gespeichert sein kann.

Unter Würdigung vorstehender Beschreibung ist somit ersichtlich, dass die Erzeugung von

Inbetriebnahme- und/oder Testprozedurdaten weder zwingend erfolgen muss noch, dass im Falle des Erzeugens solcher Inbetriebnahme- und/oder Testprozedurdaten zwingend auf der Geräteumgebung E2 erfolgen muss. Auch ist es folglich nicht zwingend, dass nach Durchlaufen der Testprozedur und/oder Inbetriebnahme hierauf basierte, neu erzeugte Daten wieder zurück an die

Geräteumgebung E2 übergeben werden müssen. So können neben der Geräteumgebung E2 auch weitere bzw. andere Geräteumgebungen oder Instanzen im Rahmen der Erfindung umfasst sein, auf welchen dann die jeweiligen, gemäß vorstehender Beschreibung in bevorzugter Ausführung jeweils auf der Geräteumgebung E2 durchgeführten Bearbeitungsschritte durchgeführt werden. Sofern hierbei auch auf die Maschinencodedaten zurückgegriffen werden muss, ist dann folglich dieser in entsprechend signierter Weise wie zuvor beschrieben, auch an die für den entsprechenden

Bearbeitungsschritt vorgesehene, weitere bzw. andere Geräteumgebung zu übertragen.

Unter Würdigung vorstehender Beschreibung betrifft die vorliegende Erfindung folglich im Rahmen ferner der Bearbeitung eines sicherheitsbezogenen Anwenderprogramms für eine

Sicherheitssteuerung, in besonders bevorzugter Ausgestaltung insbesondere die Erstellung, Inbetriebnahme und Wartung von sicherheitsbezogenen Anwenderprogrammen eines

Steuerungsgerätes für Automatisierungsmaschinen mittels mobiler Endgeräte, wie z.B. Smartphone, Tablet, Notebook oder PC, wobei hierfür die Editoren auf dem jeweiligen mobilen Endgerät laufen und die Compiler zum Erzeugen des Maschinencodes indessen auf einem entfernten Cloud-Rechner laufen. Die Erzeugung des Maschinencodes für die sicherheitsbezogene Steuerung findet hierbei somit auf einem Cloud-Rechner statt. Die Identifizierung zwischen dem mobilen Endgerät und dem folglich insbesondere sicherheitsbezogenen Steuerungsgerät ist eindeutig und die zum Erzeugen des Maschinencodes erforderlichen Daten, wie z.B. die Quellcodedaten des Anwenderprogramms, werden mit einer eindeutigen Signatur gesichert und an den Cloud-Rechner übertragen. Auf dem Cloud-Rechner wird aus den übertragenen Daten der Maschinencode erzeugt. Über die dabei entstandenen Daten und die Signatur aus dem vorhergehenden Schritt wird eine neue Signatur generiert. Der erzeugte Maschinencode mit der Signatur und möglichen Metadaten kann bei einem erfolgreichen Erzeugen des Maschinencodes automatisch oder manuell an eine Testumgebung weitergegeben werden. Dieser Automatismus ist bevorzugt in Form eines sogenannten Smart Contracts in der Signatur vorgegeben. Der Code des Smart Contract ist bei der Verwendung von Smart Contracts auch über die Signatur gesichert. In einer Testumgebung können daraufhin Testfälle zur Prüfung des sicherheitsbezogenen Anwenderprogramms ausgeführt werden. Sind die Tests erfolgreich durchgeführt, wird über die Testdaten und die evtl, vorhandenen Metadaten wieder eine Signatur berechnet, in der auch die Signatur des vorhergehenden Schrittes eingebunden wird. Auch hier ist bevorzugt über die Smart Contracts vorgegeben, dass nur nach einem erfolgreichen Test die Daten mit der neu berechneten Signatur zweckmäßiger Weise wieder an den Cloud-Rechner oder grundsätzlich auch eine andere Instanz übertragen werden. War der Test erfolgreich, wird über den Maschinencode mit evtl, weiteren Inbetriebnahmedaten und der Signatur des vorhergehenden Schrittes wieder eine Signatur berechnet und für eine Inbetriebnahme an eine Maschine übertragen. Auch hierbei wird festgelegt, dass eine automatische Freigabe des Programms nur nach erfolgreicher Inbetriebnahme geschieht. Ist die Inbetriebnahme erfolgreich abgeschlossen, wird über den

Maschinencode mit evtl, weiteren Daten, wie z.B. Zertifizierungsdaten, sowie der Signatur aus dem vorhergehenden Schritt wieder eine Signatur berechnet und die Daten auf die Maschinen verteilt. Mit Hilfe der Signatur, die zweckmäßig mit zur Maschine übertragen wurde, kann der gesamte Sicherheitslebenszyklus, auch als Safety Lebenszyklus bezeichnet, nachvollzogen und von der Maschine ferner eine Online Verifikation gegen ein zweckmäßiger Weise auf dem Cloud-Rechner oder grundsätzlich auch auf einer anderen Instanz abgelegtes Maschinen Zertifikat verglichen werden. Somit ist sichergestellt, dass das sicherheitsbezogene Anwenderprogramm alle Schritte des Sicherheitslebenszyklus durchlaufen hat, und das Programm zertifiziert ist.

Insbesondere ist der gesamte Safety Lebenszyklus mit Simulation der Applikation, Inbetriebnahme und Verteilung auf die Maschinen mit abgedeckt, da jeder Schritt im Lebenszyklus automatisch dokumentiert wird und jederzeit eindeutig nachverfolgt werden kann sowie Verfälschungen eines Schrittes erkannt werden können.