DE102009019088A1 - Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung - Google Patents

Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung Download PDF

Info

Publication number
DE102009019088A1
DE102009019088A1 DE102009019088A DE102009019088A DE102009019088A1 DE 102009019088 A1 DE102009019088 A1 DE 102009019088A1 DE 102009019088 A DE102009019088 A DE 102009019088A DE 102009019088 A DE102009019088 A DE 102009019088A DE 102009019088 A1 DE102009019088 A1 DE 102009019088A1
Authority
DE
Germany
Prior art keywords
data
control
safety
configuration
hardware components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102009019088A
Other languages
English (en)
Inventor
Stefan Dr. Wöhrle
Matthias Reusch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pilz GmbH and Co KG
Original Assignee
Pilz GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pilz GmbH and Co KG filed Critical Pilz GmbH and Co KG
Priority to DE102009019088A priority Critical patent/DE102009019088A1/de
Priority to EP10717544.0A priority patent/EP2422243B1/de
Priority to CN201080027566.3A priority patent/CN102549508B/zh
Priority to JP2012506393A priority patent/JP2012524354A/ja
Priority to PCT/EP2010/002437 priority patent/WO2010121797A1/de
Publication of DE102009019088A1 publication Critical patent/DE102009019088A1/de
Priority to US13/275,855 priority patent/US9188964B2/en
Priority to HK12107172.1A priority patent/HK1166525A1/xx
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14006Safety, monitoring in general
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements

Abstract

Die vorliegende Erfindung betrifft eine Sicherheitssteuerung zum Steuern einer automatisierten Anlage (10) gemäß einem in ihr ablaufenden Anwenderprogramm, mit einer Vielzahl von Steuerungshardwarekomponenten (26), wobei zumindest ein Teil der Steuerungshardwarekomponenten (26) jeweils eine Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') aufweist, wobei die Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') jeweils dazu ausgebildet ist, Daten zu empfangen und zu versenden, mit einem Datenbus (34, 116), an den die Vielzahl von Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) über die jeweilige Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') zum Austausch von Daten angeschlossen sind, mit einer Konfigurationsschnittstelle (124, 130, 136), die dazu ausgebildet ist, Konfigurationsdaten (58) zu empfangen, wobei die Konfigurationsdaten (58) in Abhängigkeit von Zuordnungsdaten (120) ermittelt sind und wobei die Konfigurationsdaten (58) zumindest eine Eigenschaft des Datenbusses (34, 116) oder zumindest einer Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') festlegen. Die Erfindung betrifft ferner ein Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung sowie ein entsprechendes Computerprogramm.

Description

  • Die vorliegende Erfindung betrifft eine Sicherheitssteuerung zum Steuern einer automatisierten Anlage gemäß einem in ihr ablaufenden Anwenderprogramm und ein Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung.
  • Eine Sicherheitssteuerung im Sinne der vorliegenden Erfindung ist ein Gerät, oder eine Vorrichtung, das bzw. die von Sensoren gelieferte Eingangssignale aufnimmt und daraus durch logische Verknüpfungen und eventuell weitere Signal- oder Datenverarbeitungsschritte Ausgangssignale erzeugt. Die Ausgangssignale können dann Aktuatoren zugeführt werden, die in Abhängigkeit von den Eingangssignalen Aktionen oder Reaktionen in einer gesteuerten Anlage bewirken.
  • Ein bevorzugtes Anwendungsgebiet für derartige Sicherheitssteuerungen ist die Überwachung von Not-Aus-Tastern, Zwei-Hand-Steuerungen, Schutztüren oder Lichtgittern im Bereich der Maschinensicherheit. Derartige Sensoren werden verwendet, um beispielsweise eine Maschine, von der im Betrieb eine Gefahr für Menschen oder materielle Güter ausgeht, abzusichern. Beim Öffnen der Schutztür oder beim Betätigen des Not-Aus-Tasters wird jeweils ein Signal erzeugt, das der Sicherheitssteuerung als Eingangssignal zugeführt ist. In Reaktion darauf schaltet die Sicherheitssteuerung dann beispielsweise mit Hilfe eines Aktuators den gefahrbringenden Teil der Maschine ab.
  • Charakteristisch an einer Sicherheitssteuerung ist im Gegensatz zu einer ”normalen” Steuerung, dass die Sicherheitssteuerung selbst dann, wenn bei ihr oder einem mit ihr verbundenen Gerät eine Fehlfunktion auftritt, stets einen sicheren Zustand der gefahrbringenden Anlagen oder Maschinen gewährleistet. Daher werden bei Sicherheitssteuerungen extrem hohe Anforderungen an die eigene Fehlersicherheit gestellt, was einen erheblichen Aufwand bei der Entwicklung und Herstellung zur Folge hat.
  • In der Regel benötigen Sicherheitssteuerungen vor ihrer Verwendung eine besondere Zulassung durch zuständige Aufsichtsbehörden, wie beispielsweise in Deutschland durch die Berufsgenossenschaften oder den TÜV. Die Sicherheitssteuerung muss dabei vorgegebene Sicherheitsstandards einhalten, die beispielsweise in der europäischen Norm EN 954-1 oder einer vergleichbaren Norm, beispielsweise der Norm IEC 61508 oder der Norm EN ISO 13849-1, niedergelegt sind. Im Folgenden wird daher unter einer Sicherheitssteuerung ein Gerät bzw. eine Vorrichtung verstanden, die zumindest die Sicherheitskategorie 3 der genannten europäischen Norm EN 954-1 erfüllt oder deren Safety Integrity Level (SIL) zumindest die Stufe 2 gemäß der genannten Norm IEC 61508 erreicht.
  • Eine programmierbare Sicherheitssteuerung bietet dem Anwender die Möglichkeit, die logischen Verknüpfungen und gegebenenfalls weitere Signal- oder Datenverarbeitungsschritte mit Hilfe einer Software, dem so genannten Anwenderprogramm, seinen Bedürfnissen entsprechend individuell festzulegen. Daraus resultiert eine große Flexibilität im Vergleich zu früheren Lösungen, bei denen die logischen Verknüpfungen durch eine definierte Verdrahtung zwischen verschiedenen Sicherheitsbausteinen erzeugt wurden. Ein Anwenderprogramm kann beispielsweise mit Hilfe eines handelsüblichen Personalcomputers (PC) und unter Verwendung entsprechend eingerichteter Softwareprogramme erstellt werden.
  • Bei aus einer Vielzahl von Anlagenhardwarekomponenten aufgebauten großen und somit komplexen Anlagen nach dem Stand der Technik kommen üblicherweise verteilte Sicherheitssteuerungen zum Einsatz. Verteilte Sicherheitssteuerungen bestehen aus einer Vielzahl von Steuerungshardwarekomponenten. Hierbei handelt es sich um Steuereinheiten, Sensoren und Aktuatoren. Die einzelnen Steuerungshardwarekomponenten sind einzelnen Anlagenhardwarekomponenten zugeordnet. Hinsichtlich der Hardware zeichnen sich verteilte Sicherheitssteuerungen durch eine große Flexibilität aus. So kann eine Sicherheitssteuerung aus einer beliebigen Vielzahl unterschiedlicher Steuerungshardwarekomponenten aufgebaut und somit sehr flexibel an die Gegebenheiten der zu steuernden Anlage angepasst werden. Hinsichtlich der Konfiguration der Kommunikationsbeziehungen zwischen den einzelnen Steuerungshardwarekomponenten und somit der Belange der Datenverarbeitung sind verteilte Sicherheitssteuerungen jedoch noch nicht optimal. So ist eine automatische Konfiguration dieser Kommunikationsbeziehungen nicht vorgesehen.
  • Die Konfiguration der Kommunikationsbeziehungen zwischen den einzelnen Steuerungshardwarekomponenten umfasst dabei folgende Konfigurationsparameter:
    Konfigurationsparameter die definieren, was für Daten übertragen werden, d. h. welchen Datentyp die zu übertragenden Daten haben. Konfigurationsparameter die definieren, von wo nach wo Daten übertragen werden, d. h. beispielsweise zwischen welchen Steuerungshardwarekomponenten ein Datenaustausch stattfindet. Konfigurationsparameter die definieren, wie häufig einzelne Daten zu übertragen sind. Und Konfigurationsparameter die definieren, wie schnell die Sicherheitssteuerung hinsichtlich der Sicherheitsfunktion auf äußere Gegebenheiten reagieren muss. Unter einer automatischen Konfiguration der Kommunikationsbeziehungen zwischen den einzelnen Steuerungshardwarekomponenten wird dabei Folgendes verstanden: Die Konfiguration wird selbsttätig entweder durch das Computerprogramm selbst, mit dem das Anwenderprogramm für die Sicherheitssteuerung erstellt wird, oder durch ein weiteres, speziell für das Konfigurieren eingerichtetes Computerprogramm, erstellt. Die hierfür erforderlichen Daten werden dabei beispielweise aus dem Anwenderprogramm selbst oder von den für das Erstellen des Anwenderprogramms vorgenommenen Eingaben hergeleitet. Dabei soll zwar noch vorgesehen sein, dass der Programmierer des Anwenderprogramms Eingaben, die für die Konfiguration der Kommunikationsbeziehungen relevant sind, vornehmen kann. Das eigentliche Konfigurieren muss er jedoch nicht durchführen, dies erfolgt selbstständig durch besagtes Computerprogramm. Nachfolgend wird anstelle der Formulierung ”Konfiguration der Kommunikationsbeziehungen zwischen den einzelnen Steuerungshardwarekomponenten” abkürzend die Formulierung ”Konfiguration der Kommunikationsbeziehungen” verwendet.
  • Dadurch, dass die Konfiguration der Kommunikationsbeziehungen nicht automatisch erfolgt, ergibt sich ein großer Zeitaufwand für das Konfigurieren und somit insgesamt für das Erstellen des gesamten Projektes, welches die auf der gesteuerten Anlage ablaufende Anwendung repräsentiert. Dies erhöht unnötig die Kosten für die Realisierung einer Sicherheitssteuerung. Zudem zieht der mangelnde Automatismus weitere Nachteile nach sich. Bei einer Sicherheitssteuerung, die aus einer sehr großen Anzahl von Steuerungshardwarekomponenten aufgebaut ist, ist die Konfiguration der sehr großen Anzahl von Kommunikationsbeziehungen sehr komplex und teilweise sogar unübersichtlich. Dies birgt das Risiko für einen Fehler, der eine unkontrollierte Situation und damit einen gefährlichen Zustand bei der zu steuernden Anlage hervorrufen kann. Auch ist ein fehlender Automatismus bei der Konfiguration der Kommunikationsbeziehungen der Flexibilität abträglich, da bei einer Änderung innerhalb eines Projektes die Konfiguration nicht in einfacher Art und Weise automatisch, sondern mühsam von Hand aktualisiert werden muss.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Sicherheitssteuerung und ein Verfahren der eingangs genannten Art weiterzubilden, um eine automatische Konfiguration der Kommunikationsbeziehungen zwischen den einzelnen Steuerungshardwarekomponenten der Sicherheitssteuerung zu ermöglichen und gleichzeitig die Realisierung einer Sicherheitssteuerung zu vereinfachen, um somit eine kostengünstigere, flexiblere und hinsichtlich der Fehlersicherheit weiter optimierte Sicherheitssteuerung zu ermöglichen.
  • Diese Aufgabe wird durch eine Sicherheitssteuerung der eingangs genannten Art gelöst, die folgende Einheiten aufweist: Eine Vielzahl von Steuerungshardwarekomponenten, wobei zumindest ein Teil der Steuerungshardwarekomponenten jeweils eine Datenbusschnittstelle aufweist, wobei die Datenbusschnittstelle jeweils dazu ausgebildet ist, Daten zu empfangen und zu versenden, einen Datenbus, an den die Vielzahl von Steuerungshardwarekomponenten über die jeweilige Datenbusschnittstelle zum Austausch von Daten angeschlossen sind, und eine Konfigurationsschnittstelle, die dazu ausgebildet ist, Konfigurationsdaten zu empfangen, wobei die Konfigurationsdaten in Abhängigkeit von Zuordnungsdaten ermittelt sind, und wobei die Konfigurationsdaten zumindest eine Eigenschaft des Datenbusses oder zumindest einer Datenbusschnittstelle festlegen.
  • Die Aufgabe wird ferner durch ein Verfahren der eingangs genannten Art gelöst, wobei die Sicherheitssteuerung dazu ausgebildet ist, eine automatisierte Anlage gemäß einem in ihr ablaufenden Anwenderprogramm zu steuern, wobei die Sicherheitssteuerung aus einer Vielzahl von Steuerungshardwarekomponenten aufgebaut ist und einen Datenbus umfasst, wobei zumindest ein Teil der Steuerungshardwarekomponenten jeweils eine Datenbusschnittstelle aufweist, wobei die Datenbusschnittstelle jeweils dazu ausgebildet ist, Daten zu empfangen und Daten zu versenden, und wobei die Vielzahl von Steuerungshardwarekomponenten über die jeweilige Datenbusschnittstelle an den Datenbus zum Austausch von Daten angeschlossen sind, bei dem folgende Schritte ausgeführt werden:
    • – Ermitteln von Zuordnungsdaten, und
    • – Ermitteln von Konfigurationsdaten in Abhängigkeit der Zuordnungsdaten, wobei die Konfigurationsdaten zumindest eine Eigenschaft des Datenbusses oder zumindest einer Datenbusschnittstelle festlegen.
  • An dieser Stelle sei darauf hingewiesen, dass im Sinne der vorliegenden Anmeldung das Erstellen des Anwenderprogramms über das reine Erstellen des Quellcodes und des Maschinencodes des Anwenderprogramms hinausgeht und auch das Verteilen des Maschinencodes und somit der Konfigurationsdaten auf zumindest einen Teil der Steuerungshardwarekomponenten umfassen soll.
  • Der neuen Sicherheitssteuerung und dem neuen Verfahren liegt die Idee zugrunde, die für eine Konfiguration der Kommunikationsbeziehungen benötigten Konfigurationsdaten in Abhängigkeit von Zuordnungsdaten zu ermitteln und diese dann über eine Konfigurationsschnittstelle in die Sicherheitssteuerung zu übertragen. Die Konfigurationsdaten legen dabei zumindest eine Eigenschaft des Datenbusses oder eine Eigenschaft zumindest einer der in den Steuerungshardwarekomponenten enthaltenen Datenbusschnittstellen fest. Dadurch wird eine automatische Konfiguration der Kommunikationsbeziehungen ermöglicht. Es vereinfacht sich folglich die aus dem Erstellen des Anwenderprogramms und der Konfiguration der Kommunikationsbeziehungen bestehende Projektierung der Sicherheitssteuerung. Insgesamt reduziert sich der Zeitaufwand und somit auch die Kosten für die Realisierung einer Sicherheitssteuerung.
  • Die automatische Konfiguration der Kommunikationsbeziehungen erhöht zudem die Fehlersicherheit der Sicherheitssteuerung. Durch den Automatismus werden Fehlerquellen, die bei einer nicht automatisch ablaufenden Konfiguration vorhanden sein können, ausgeschlossen. Zudem wird die Flexibilität erhöht. Bei Änderungen im Projekt oder in der realisierten Sicherheitssteuerung können hieraus ggf. resultierende angepasste Konfigurationsdaten in einfacher Art und Weise ermittelt und in die Sicherheitssteuerung übertragen werden. Solche Änderungen können beispielsweise bei folgenden Konstellationen erforderlich sein: Wird beispielsweise nach der Projektierung einer Sicherheitssteuerung im Probebetrieb festgestellt, dass die Performance der Sicherheitssteuerung bezüglich eines Parameters zu gering ausfällt, so kann dies durch Austausch einer bereits vorhandenen Steuerungshardwarekomponente oder durch Einfügen einer zusätzlichen Steuerungshardwarekomponente behoben werden. Bei beiden Änderungen ist eine Anpassung der Konfigurationsdaten erforderlich, da eine Änderung oder Ergänzung der Kommunikationsbeziehungen erfolgt ist. Ein weiteres Beispiel ist der Austausch einer defekten Steuerungshardwarekomponente bei einer bereits in Betrieb befindlichen Sicherheitssteuerung.
  • Zudem wird durch eine automatische Konfiguration der Kommunikationsbeziehungen eine Optimierung des Datenaustauschs zwischen den einzelnen Steuerungshardwarekomponenten erreicht. Dies eröffnet einen größeren Spielraum, die Vorgaben des Betreibers der zu steuernden Anlage hinsichtlich der Reaktionszeit der Sicherheitssteuerung zu erfüllen. Insgesamt lassen sich somit kürzere Reaktionszeiten realisieren.
  • Vorzugsweise legen die Konfigurationsdaten sowohl die für den Datenaustausch relevanten Eigenschaften des Datenbusses als auch die für den Datenaustausch relevanten Eigenschaften der in den Steuerungshardwarekomponenten enthaltenen Datenbusschnittstellen fest. Dabei kann es sich teilweise um dieselben oder teilweise um unterschiedliche Eigenschaften handeln.
  • Die Zuordnungsdaten repräsentieren vorteilhafterweise Zuordnungen einzelner Teilumfänge des Anwenderprogramms untereinander oder Zuordnungen einzelner Teilumfänge des Anwenderprogramms zu einzelnen Steuerungshardwarekomponenten. Aus diesen Zuordnungen ergeben sich die für die Konfiguration der Kommunikationsbeziehungen relevante Daten. So lassen sich aus diesen Zuordnungen beispielsweise Angaben herleiten, was für Daten übertragen werden bzw. von wo nach wo diese Daten übertragen werden. Ein Teilumfang des Anwenderprogramms kann beispielsweise ein in dem Anwenderprogramm enthaltenes Programmmodul sein. oder eine Vielzahl von Steueranweisungen.
  • Die oben genannte Aufgabe ist daher vollständig gelöst.
  • In einer weiteren Ausgestaltung der Erfindung ist das Anwenderprogramm aus einer Vielzahl von Programmmodulen aufgebaut, wobei die Zuordnungsdaten Programmmodulzuordnungsdaten umfassen, wobei die Programmmodulzuordnungsdaten eine Anzahl von Programmmodulzuordnungen repräsentieren, wobei die Programmmodulzuordnungen jeweils definieren, welcher Steuerungshardwarekomponente das jeweilige Programmmodul zugeordnet ist.
  • Die Programmmodulzuordnungsdaten repräsentieren eine räumliche Aufteilung des Anwenderprogramms auf die verteilt aufgebaute Sicherheitssteuerung. Es handelt sich um eine hardwaretechnische Zuordnung, die wiedergibt, welches Programmmodul welcher Steuerungshardwarekomponente zugeordnet ist. Somit ist für die einzelnen Programmmodule der jeweilige Verarbeitungsort innerhalb der Sicherheitssteuerung bekannt. Diese Information ist für die Realisierung eines Datenaustauschs innerhalb einer verteilt aufgebauten Sicherheitssteuerung von Bedeutung. Aus dieser Information lässt sich herleiten, welche Daten in welcher Steuerungshardwarekomponente erzeugt und welche Daten in welcher Steuerungshardwarekomponente konsumiert werden.
  • Zudem ermöglicht diese Maßnahme, die Datenübertragung innerhalb einer verteilt aufgebauten Sicherheitssteuerung gemäß unterschiedlichster Aspekte zu optimieren. Gemäß einem ersten Aspekt werden die einzelnen Programmmodule so den einzelnen Steuerungshardwarekomponenten zugeordnet, dass die Programmmodule und somit die durch diese jeweils definierten Teilumfänge des Anwenderprogramms vor Ort verarbeitet werden. Dadurch wird der Datenaustausch zwischen einzelnen Steuerungshardwarekomponenten reduziert. Vor Ort bedeutet in diesem Zusammenhang, dass die Programmmodule dort verarbeitet werden, wo für deren Verarbeitung benötigte Daten verfügbar sind. Also beispielsweise in einer Steuereinheit, die sich in unmittelbarer Nähe eines Sensors befindet, dessen Sensorsignal als Eingangssignal für die Ermittlung eines Ansteuersignals für einen Aktuator benötigt wird. Diese Zuordnung ermöglicht die Realisierung kurzer Reaktionszeiten. Vorzugsweise wird die Zuordnung der Programmmodule zu den einzelnen Steuerungshardwarekomponenten vom Ersteller des Anwenderprogramms vorgenommen.
  • Gemäß einem zweiten Aspekt werden die einzelnen Programmmodule den einzelnen Steuerungshardwarekomponenten automatisch durch das Computerprogramm, mit dem das Anwenderprogramm erstellt wird, zugeordnet. Diese Zuordnung kann beispielsweise anhand von Datenverarbeitungskennzahlen erfolgen. Bei dieser Zuordnung lassen sich in der Sicherheitssteuerung vorhandene Ressourcen, beispielsweise Datenspeicher oder Mikroprozessoren, optimal nutzen. Dies ermöglicht eine optimale Anpassung der Konfiguration der Kommunikationsbeziehungen an die technischen Gegebenheiten der Sicherheitssteuerung.
  • Vorteilhafterweise müssen nicht sämtliche Programmmodule eines Anwenderprogramms Steuerungshardwarekomponenten zugeordnet werden. Es ist auch denkbar, lediglich für einen Teil der Programmmodule eine Zuordnung vorzunehmen.
  • In einer weiteren Ausgestaltung der Erfindung besteht das Anwenderprogramm aus einer Vielzahl von Steueranweisungen, wobei die Zuordnungsdaten Verarbeitungszuordnungsdaten umfassen, wobei die Verarbeitungszuordnungsdaten eine Anzahl von Verarbeitungszuordnungen repräsentieren, wobei die Verarbeitungszuordnungen für zumindest einen Teil der Steueranweisungen eine Verarbeitungsreihenfolge der einzelnen Steueranweisungen definieren.
  • Die Verarbeitungszuordnungsdaten repräsentieren eine Verarbeitungsreihenfolge und somit einen Datenfluss zwischen einzelnen Steueranweisungen. Es handelt sich um eine softwaretechnische oder programmiertechnische Zuordnung, die wiedergibt, welche Daten zwischen einzelnen Steueranweisungen ausgetauscht werden. Dadurch lässt sich der Datenfluss umfassend darstellen, was eine optimale Auslegung der Konfigurationsdaten und somit Konfiguration der Kommunikationsbeziehungen ermöglicht. Zudem ermöglicht dies eine modularisierte Konfiguration der Kommunikationsbeziehungen und letztlich eine einfache Handhabe.
  • Vorteilhafterweise handelt es sich bei dem Teil der Steueranweisungen um diejenigen Steueranweisungen, die in einem Programmmodul enthalten sind. Alternativ umfasst der Teil der Steueranweisungen einen ersten Teilumfang an Steueranweisungen, der in einem ersten Programmmodul enthalten ist und einen zweiten Teilumfang an Steueranweisungen, der in einem zweiten Programmmodul enthalten ist. Dadurch lässt sich der Datenaustausch zwischen einzelnen Programmmodulen optimieren.
  • In einer weiteren Ausgestaltung der Erfindung umfassen die Vielzahl von Steueranweisungen eine Vielzahl von Daten erzeugenden Steueranweisungen und eine Vielzahl von Daten konsumierenden Steueranweisungen, wobei beim Ermitteln der Verarbeitungszuordnungsdaten berücksichtigt ist, ob es sich um Daten konsumierende Steueranweisungen oder um Daten erzeugende Steueranweisungen handelt.
  • Diese Maßnahme besitzt zum einen den Vorteil, dass für Daten erzeugende Steueranweisungen und für Daten konsumierende Steueranweisungen unterschiedliche Spezifikationen berücksichtigt werden können. Zum anderen wird durch diese Maßnahme sichergestellt, dass bei der Darstellung des Datenflusses sämtliche Zwischenschritte erfasst sind. Insgesamt ermöglicht diese Maßnahme eine umfassende und somit optimale Konfiguration der Kommunikationsbeziehungen.
  • In einer weiteren Ausgestaltung der Erfindung sind die Konfigurationsdaten ferner in Abhängigkeit einer Anzahl von vordefinierten Steuerungsparameterwerten ermittelt.
  • Diese Maßnahme besitzt den Vorteil, dass der Betreiber der zu steuernden Anlage zunächst unabhängig von dem konkreten Aufbau der Sicherheitssteuerung ein für die zu realisierende Sicherheitssteuerung gefordertes Steuerungsverhalten vorgeben kann. Nach diesem geforderten Steuerungsverhalten richten sich dann die Gegebenheiten der Sicherheitssteuerung. So werden beispielsweise die in der Sicherheitssteuerung zu verbauenden Einzelkomponenten danach ausgewählt. Zudem ergeben sich daraus Vorgaben für den in der Sicherheitssteuerung zu realisierenden Datenaustausch. Somit können die Anforderungen des Betreibers mit den technischen Gegebenheiten der Steuerungshardwarekomponenten abgestimmt werden. Die Konfigurationsdaten werden in Abhängigkeit invarianter, d. h. fest vorgegebener Steuerungsparameterwerte ermittelt. Die Steuerungsparameterwerte können beispielsweise während des Erstellens des Anwenderprogramms definiert werden. Es ist aber auch denkbar, die Steuerungsparameterwerte erst danach zu definieren.
  • Vorteilhafterweise repräsentiert jeder der Steuerungsparameter einen eigenständigen Teilaspekt des Steuerungsverhaltens der Sicherheitssteuerung. Hierbei kann es sich um einen Teilaspekt des Gesamtsteuerungsverhaltens handeln, wobei das Gesamtsteuerungsverhalten durch die aus einer Vielzahl von Steuerungshardwarekomponenten aufgebauten gesamten Sicherheitssteuerung definiert ist. Der Teilaspekt kann aber auch das Steuerungsverhalten einer einzelnen, in der Sicherheitssteuerung enthaltenen Steuerungshardwarekomponente betreffen.
  • Diese Maßnahme ermöglicht vorteilhafterweise eine automatische Überprüfung, ob einzelne für die Realisierung der Sicherheitssteuerung ausgewählte Steuerungshardwarekomponenten überhaupt dazu geeignet sind, die vordefinierten Steuerungsparameterwerte zu erfüllen.
  • In einer weiteren Ausgestaltung der zuvor genannten Maßnahme handelt es sich bei den berücksichtigten Steuerungsparametern um zumindest einen der folgenden Steuerungsparameter: einen ersten Steuerungsparameter, der eine Reaktionszeit repräsentiert, einen zweiten Steuerungsparameter, der eine Zykluszeit repräsentiert, und einen dritten Steuerungsparameter, der eine Abtastrate repräsentiert.
  • Es handelt sich hierbei um die wesentlichen, das Steuerungsverhalten einer Sicherheitssteuerung charakterisierenden Steuerungsparameter. Somit ist eine vollständige Konfiguration der Kommunikationsbeziehungen möglich.
  • Bei der Reaktionszeit kann es sich um die Reaktionszeit der Sicherheitssteuerung insgesamt handeln. Es kann sich aber auch um die Reaktionszeit hinsichtlich einer einzelnen von der Sicherheitssteuerung realisierten Sicherheitsfunktion handeln. So ist es denkbar, dass für einzelne mit der Sicherheitssteuerung überwachte Anlagenteile unterschiedliche Reaktionszeiten vorgegeben werden können.
  • Bei der Zykluszeit kann es sich um eine einheitlich für die gesamte Sicherheitssteuerung vorgegebene Zykluszeit handeln. Es kann sich aber auch um eine Zykluszeit handeln, die individuell für eine Steuerungshardwarekomponente oder gar für eine in einer Steuerungshardwarekomponente enthaltene Datenverarbeitungseinheit, beispielsweise eine Datenbusschnittstelle, vorgegeben ist. Es kann sich aber auch um die Zykluszeit des Datenbusses handeln. Ebenso ist denkbar, dass sich die Zykluszeit auf eine Signalverarbeitungskette bezieht. Bei einer Signalverarbeitungskette handelt es sich um eine Folge von Steueranweisungen, wie diese beispielsweise innerhalb eines Programmmoduls vorliegen. Allgemein handelt es sich um Steueranweisungen, zwischen denen eine Verarbeitungsreihenfolge besteht.
  • Bei der Abtastrate handelt es sich um die Zykluszeit von in der Sicherheitssteuerung enthaltenen Ein-/Ausgabegeräten. Für die gesamte Sicherheitssteuerung kann eine einheitliche Abtastrate gelten. Die Abtastrate kann aber auch individuell vorgegeben sein, beispielsweise für einzelne Steuerungshardwarekomponenten oder für einzelne in Steuerungshardwarekomponenten enthaltene Datenverarbeitungseinheiten.
  • In einer weiteren Ausgestaltung der Erfindung sind die Konfigurationsdaten ferner in Abhängigkeit einer Anzahl von Datenverarbeitungskennzahlen ermittelt.
  • Eine Datenverarbeitungskennzahl repräsentiert eine für die Datenverarbeitung relevante Eigenschaft einer bei der Datenverarbeitung eingesetzten Komponente. Eine Datenverarbeitungskennzahl lässt somit eine Aussage über die Leistungsfähigkeit dieser Komponente bezüglich der Datenverarbeitung zu. Hierbei handelt es sich beispielsweise um die Taktfrequenz eines Mikroprozessors, um die Speicherkapazität eines Datenspeichers oder um die Datenübertragungsrate beispielsweise des Datenbusses oder einer Datenbusschnittstelle. Vorteilhafterweise beziehen sich die Daten verarbeitungskennzahlen auf die einzelnen Steuerungshardwarekomponenten und repräsentieren somit die Eigenschaften der in der jeweiligen Steuerungshardwarekomponente verbauten Datenverarbeitungseinheiten. Durch die Berücksichtigung von Datenverarbeitungskennzahlen können hardwaretechnische Gegebenheiten bei der Konfiguration der Kommunikationsbeziehungen berücksichtigt werden. Somit ist es möglich, die vom Anlagenbetreiber gemachten Vorgaben für das Steuerungsverhalten mit den hardwaretechnischen Gegebenheiten abzustimmen.
  • Vorzugsweise sind für die einzelnen Steuerungshardwarekomponenten die Werte der Datenverarbeitungskennzahlen in einer Datenbank hinterlegt, wobei sich die Datenbank auf demjenigen Computer befindet, mit dem das Computerprogramm für das Erstellen des Anwenderprogramms ausgeführt wird. Alternativ können diese Werte auch in den einzelnen Steuerungshardwarekomponenten hinterlegt sein und werden dann ausgelesen.
  • In einer weiteren Ausgestaltung der Erfindung sind die Zuordnungsdaten, insbesondere die Programmmodulzuordnungsdaten in Abhängigkeit der Anzahl von Datenverarbeitungskennzahlen ermittelt.
  • Die Maßnahme, die Zuordnungsdaten in Abhängigkeit von Datenverarbeitungskennzahlen zu ermitteln, hat den Vorteil, dass Teilumfänge des Anwenderprogramms unter dem Gesichtspunkt einer optimierten Datenverarbeitung einzelnen Steuerungshardwarekomponenten zugeordnet werden können. So können Teilumfänge des Anwenderprogramms, zu deren Verarbeitung eine hohe Rechenleistung erforderlich ist, beispielsweise in Steuerungshardwarekomponenten verarbeitet werden, die mit einem leistungsfähigen Mikroprozessor ausgestattet sind. Dies ermöglicht eine besonders optimierte Konfiguration der Kommunikationsbeziehungen.
  • Bei der Maßnahme, gemäß der die Programmmodulzuordnungsdaten in Abhängigkeit der Datenverarbeitungskennzahlen ermittelt sind, ist folgende vorteilhafte Vorgehensweise denkbar: Zunächst kann der Programmierer des Anwenderpro gramms die Programmmodulzuordnungen im Sinne einer Verarbeitung vor Ort vorgeben. Anschließend kann durch eine Berücksichtigung von Datenverarbeitungskennzahlen überprüft werden, ob die jeweiligen Steuerungshardwarekomponenten für das Verarbeiten der jeweiligen Programmmodule leistungsfähig genug sind. Gegebenenfalls kann ein Hinweis an den Programmierer erfolgen, eine Änderung in der Programmmodulzuordnung vorzunehmen. Es ist aber auch denkbar, eine automatische Optimierung der Programmmodulzuordnungen durch das Computerprogramm, mit dem das Anwenderprogramm erstellt wird, zuzulassen.
  • In einer weiteren Ausgestaltung der Erfindung weist zumindest ein Teil der Steuerungshardwarekomponenten jeweils einen Datenspeicher auf, wobei die Datenspeicher jeweils dazu ausgebildet sind, ihnen jeweils zugeführte Daten zu speichern, wobei die Sicherheitssteuerung ferner eine Verteileinheit aufweist, wobei die Verteileinheit dazu ausgebildet ist, zumindest einen Teil der Konfigurationsdaten über den Datenbus auf zumindest einen Teil der Steuerungshardwarekomponenten zu verteilen.
  • Diese Maßnahme besitzt den Vorteil, dass Konfigurationsdaten gezielt in einzelnen Datenspeichern abgespeichert werden können. Dies ermöglicht beispielsweise, Konfigurationsdaten in sog. intelligenten Ein-/Ausgabe-Einheiten abzuspeichern. Hierbei handelt es sich insbesondere um sicherheitsrelevante Sensoren und Aktuatoren, die über Datenverarbeitungseinheiten, beispielsweise Mikroprozessoren und Datenspeicher, verfügen. Dadurch können in einer Sicherheitssteuerung vorhandene Datenspeicher, die ansonsten zu einem Großteil ungenutzt bleiben würden, mit Konfigurationsdaten belegt und somit genutzt werden. Dadurch können in einer Sicherheitssteuerung vorhandene Steuereinheiten zukünftig mit kleineren Datenspeichern ausgestattet und somit die Kosten für eine Sicherheitssteuerung reduziert werden. Gleichzeitig ermöglicht diese Maßnahme die Realisierung kurzer Reaktionszeiten. Konfigurationsdaten können dort abgespeichert werden, wo sie zu verarbeiten sind. Dies reduziert den Datenaustausch zwischen den Steuerungshardwarekomponenten.
  • Vorzugsweise werden die Konfigurationsdaten in Abhängigkeit der Zuordnungsdaten, insbesondere der Programmmodulzuordnungsdaten auf die einzelnen Steuerungshardwarekomponenten verteilt. Des Weiteren ist es von Vorteil, wenn zumindest ein Teil der Datenspeicher dazu ausgebildet ist, die jeweils zugeführten Konfigurationsdaten nullspannungssicher zu speichern. Diese Maßnahme hat den Vorteil, dass die Konfigurationsdaten beispielsweise nach einem Spannungsausfall oder nach Abschalten der Sicherheitssteuerung nach wie vor vorliegen. Dadurch wird die Verfügbarkeit der Sicherheitssteuerung erhöht. Es ist keine Neuinitialisierung der Sicherheitssteuerung erforderlich. Beispielsweise werden hierfür Speicherkarten in Form von SD-Cards oder CF-Cards verwendet oder aber Flash-Speicher eingesetzt.
  • In einer weiteren Ausgestaltung der zuvor genannten Maßnahme ist zumindest ein Teil der Konfigurationsdaten redundant in den Datenspeichern gespeichert.
  • Das redundante Abspeichern der Konfigurationsdaten wird dadurch erreicht, dass die jeweiligen Konfigurationsdaten gedoppelt werden. Die gedoppelten Konfigurationsdaten werden dann eigenständig auf die Datenspeicher verteilt, und zwar unter der Maßgabe, dass die ursprünglichen Konfigurationsdaten und die gedoppelten Konfigurationsdaten jeweils in einem anderen Datenspeicher gespeichert sind. Durch diese Maßnahme wird die Verfügbarkeit der Sicherheitssteuerung und somit der gesteuerten Anlage erhöht. Fällt beispielsweise eine nicht-sicherheitsrelevante Steuerungshardwarekomponente aus, so stehen nach wie vor die Konfigurationsdaten, die in ihrem Datenspeicher gespeichert waren, zur Verfügung, da diese noch in einem anderen Datenspeicher gespeichert sind.
  • Vorteilhafterweise werden nicht nur die Konfigurationsdaten, sondern auch Programmdaten und/oder Parametrisierungsdaten auf die einzelnen Steuerungshardwarekomponenten verteilt. Die Programmdaten repräsentieren dabei das Anwenderprogramm und werden beim Erstellen des Anwenderprogramms erzeugt. Besonders bei den Programmdaten ist es von Vorteil, diese dort abspeichern zu können, wo beispielsweise benötigte Sensorsignale vorliegen oder Ansteuersignale für Aktuatoren bereitzustellen sind. Die Parametrisierungsdaten repräsentieren Wertebereiche für einzelne im Anwenderprogramm verwendete Variablen oder Funktionalitäten. Die Konfigurationsdaten, die Programmdaten und die Parametrisierungsdaten werden zusammengefasst als Projektdaten bezeichnet, die eine auf der Anlage ablaufende Anwendung repräsentieren. Sowohl für die Programmdaten als auch für die Parametrisierungsdaten gelten die vorstehenden Ausführungen hinsichtlich Zuordnung, Abspeicherung und Ausgestaltung der Datenspeicher entsprechend.
  • In einer weiteren Ausgestaltung der Erfindung handelt es sich bei der Verteileinheit um einen der Datenspeicher.
  • Diese Maßnahme besitzt den Vorteil, dass für das Verteilen der Konfigurationsdaten keine zusätzliche Einheit in der Sicherheitssteuerung vorzusehen ist. Das Verteilen der Konfigurationsdaten wird von einem der ohnehin in der Sicherheitssteuerung vorhandenen Datenspeicher durchgeführt. Dies ermöglicht eine kostengünstige Realisierung der Sicherheitssteuerung. Vorteilhafterweise ist hierfür zumindest einer der Datenspeicher dazu ausgebildet, zugeführte Konfigurationsdaten an zumindest einen anderen Datenspeicher weiterzuleiten oder in einem anderen Datenspeicher gespeicherte Konfigurationsdaten anzufordern. Dies ermöglicht ein flexibles Verteilen der Konfigurationsdaten auf die einzelnen Datenspeicher. Dadurch ist es sogar möglich, die Konfigurationsdaten beliebig auf die Datenspeicher zu verteilen.
  • Alternativ kann eine externe Verteileinheit verwendet werden, die zumindest zeitweise an eine in der Sicherheitssteuerung hierfür vorgesehene Schnittstelle angeschlossen ist. Besonders vorteilhaft ist es, wenn sich die externe Verteileinheit in demjenigen Computer befindet, mit dem das Anwenderprogramm erstellt wird. Dadurch können die Konfigurationsdaten direkt von dem Computer auf die Sicherheitssteuerung übertragen werden.
  • In einer weiteren Ausgestaltung der Erfindung sind die Konfigurationsdaten in eine Vielzahl von Datenblöcke aufgeteilt, wobei zumindest ein Datenblock dem Datenbus zugeordnet ist und die restlichen Datenblöcke jeweils zumindest einer der Datenbusschnittstellen zugeordnet sind.
  • Diese Maßnahme hat den Vorteil, dass die Konfigurationsdaten entsprechend einem Verteilkriterium gezielt dem Datenbus und den Datenbusschnittstellen zugewiesen werden können. Die Konfigurationsdaten können vor Ort verarbeitet werden, wodurch unter anderem kurze Reaktionszeiten ermöglicht werden.
  • Was die Anordnung eines für den Betrieb des Datenbus benötigten Datenbusmanagers angeht, so sind mehrere Ausgestaltungen denkbar. Der Datenbusmanager kann in einer der Steuerungshardwarekomponenten enthalten sein. In diesem Fall wird der dem Datenbus zugeordnete Datenblock in dem Datenspeicher dieser Steuerungshardwarekomponente abgespeichert. In einer anderen Ausgestaltung kann der Datenbusmanager eigenständig ausgeführt sein und ist somit nicht in einer der Steuerungshardwarekomponenten enthalten. Der dem Datenbus zugeordnete Datenblock wird dann vorzugsweise in einem Datenspeicher abgespeichert, der in dem Datenbusmanager enthalten ist.
  • In einer weiteren Ausgestaltung der Erfindung handelt es sich bei den Konfigurationsdaten um folgende Daten:
    • – Gültigkeitszeitdaten, die eine Gültigkeitszeitdauer repräsentieren, während der erzeugte Daten gültig sind, und/oder
    • – Wartezeitdaten, die eine Wartezeitdauer repräsentieren, während der eine Daten konsumierende Steueranweisung auf von ihr zu konsumierende Daten wartet, und/oder
    • – Terminierungszykluszeitdaten, die eine Terminierungszykluszeit repräsentieren, wobei die Terminierungszykluszeit einer Vielzahl von Steueranweisungen zugrunde liegt, und/oder
    • – Synchronisationsdaten, in deren Abhängigkeit die Steuerungshardwarekomponenten synchronisierbar sind, und/oder
    • – Datenrahmenzuweisungsdaten, die eine Anzahl von Datenrahmenzuweisungen repräsentieren, wobei die Datenrahmenzuweisungen für zumindest eine der Steuerungshardwarekomponenten diejenigen Datenfelder innerhalb eines für den Datenbus spezifizierten Datenrahmens definieren, die der Steuerungshardwarekomponente für die von ihr zu sendenden Daten und für die von ihr zu empfangenden Daten zugewiesen sind.
  • Die Gültigkeitszeitdaten betreffen Daten erzeugende Steueranweisungen. Vorzugsweise wird für jede Daten erzeugende Steueranweisung individuell eine Gültigkeitszeitdauer definiert. Es ist aber auch denkbar, für eine Vielzahl von Daten erzeugenden Steueranweisungen, die beispielsweise über Verarbeitungszuordnungen zusammenhängen, eine gemeinsame Gültigkeitszeitdauer vorzugeben.
  • Die Wartezeitdaten betreffen Daten konsumierende Steueranweisungen. Auch hier wird vorzugsweise für jede Daten konsumierende Steueranweisung eine individuelle Wartezeitdauer definiert. Entsprechend den Ausführungen zu den Gültigkeitszeitdaten kann auch für eine Vielzahl von Daten konsumierenden Steueranweisungen eine gemeinsame Wartezeitdauer vorgegeben werden. Die Wartezeitdauer kann in einer alternativen Betrachtungsweise auch so aufgefasst werden, dass es sich um diejenige Zeitdauer handelt, innerhalb der eine Daten erzeugende Steueranweisung Daten bereitzustellen hat, die von einer anderen Steueranweisung verarbeitet bzw. konsumiert werden.
  • Das Einführen einer Terminierungszykluszeit bewirkt, dass Sicherheitssteuerungen, die von Haus aus hinsichtlich der Reaktionszeit nicht unbedingt ein deterministisches Verhalten aufweisen, diesbezüglich ein deterministisches Verhalten zeigen. Durch die Terminierungszykluszeit sind äquidistant beabstandete Zeitpunkte defi niert, zu denen Daten, die von Daten erzeugenden Steueranweisungen erzeugt werden, einheitlich vorliegen müssen. Dies bewirkt ein deterministisches Verhalten. Vorzugsweise ist für die Vielzahl von Steueranweisungen, denen die Terminierungszykluszeit zugrunde liegt, durch eine Anzahl von Verarbeitungszuordnungen eine Verarbeitungsreihenfolge definiert. Vorzugsweise ist zumindest ein Teil der individuellen Gültigkeitszeitdauern so definiert, dass diese jeweils zu einem der durch die Terminierungszykluszeit definierten Zeitpunkt ablaufen, wobei die einzelnen Gültigkeitszeitdauern vorzugsweise zu unterschiedlichen Zeitpunkten ablaufen.
  • Vorzugsweise werden mit den Synchronisationsdaten die einzelnen Uhren und/oder die einzelnen Timer Interrupt Requests der Steuerungshardwarekomponenten synchronisiert. Weiterhin vorzugsweise kann durch die Synchronisationsdaten auch die Arbeitsweise des Datenbusses beeinflusst werden.
  • Die Datenrahmenzuweisungsdaten ermöglichen den Einsatz eines ethernetbasierten Feldbusses, insbesondere eines Datenbussystems, welches nach dem auf die Anmelderen zurückgehenden SafetyNetp®-Kommunikationsmodell arbeitet. Bei solch einem Datenbussystem erzeugt eine erste an den Datenbus angeschlossene Steuerungshardwarekomponente einen Datenrahmen mit einer Vielzahl von Datenfeldern. Jeder weiteren Steuerungshardwarekomponente ist zumindest ein Datenfeld zum Belegen mit Sendedaten eindeutig zugewiesen. Der Datenrahmen wird als hinlaufender Datenrahmen von einer Steuerungshardwarekomponente zur nächsten gesendet, wobei jede Steuerungshardwarekomponente ein ihr zugewiesenes Datenfeld mit Sendedaten belegt. Die letzte Steuerungshardwarekomponente sendet den Datenrahmen als zurücklaufenden Datenrahmen an die Reihe der Steuerungshardwarekomponenten zurück. Dabei lesen die Steuerungshardwarekomponenten fremde Sendedaten aus den Datenfeldern des zurücklaufenden Datenrahmens aus, wobei die jeweiligen Datenfelder den Steuerungshardwarekomponenten individuell zugewiesen sind.
  • Des Weiteren kann es sich bei den Konfigurationsdaten um Festlegungsdaten handeln, die für die einzelnen Steuerungshardwarekomponenten die jeweils zu verarbeitenden Daten nach ihrem Datentyp definieren. Wird ein Datenbussystem eingesetzt, bei dem Daten mit unterschiedlichen Datenbuszykluszeiten übertragen werden können, wie dies bei dem vorgenannten nach dem SafetyNetp®-Kommunikationsmodell arbeitenden Datenbussystem der Fall ist, so kann es sich bei den Konfigurationsdaten auch um Datenbuszyklusdaten handeln, die für einzelne oder eine Vielzahl von Steueranweisungen festlegen, mit welcher Datenbuszykluszeit deren Daten zu übertragen sind.
  • Mit den vorstehend aufgeführten Konfigurationsdaten ist eine umfassende Konfiguration der Kommunikationsbeziehungen möglich.
  • Mit der neuen Sicherheitssteuerung und dem neuen Verfahren können die Kommunikationsbeziehungen umfassend automatisch konfiguriert werden. Dies beinhaltet eine Konfiguration der Eingangsabbilder und der Ausgangsabbilder der einzelnen Steuerungshardwarekomponenten, eine Zuordnung zwischen den einzelnen Eingangsabbildern und den einzelnen Ausgangsabbildern, sowie das Ermitteln der Konfigurationsdaten für die Steuerungshardwarekomponenten, insbesondere den jeweils enthaltenen Datenbusschnittstellen, und den Datenbus.
  • Vorteilhafterweise ermöglicht eine Datenbusschnittstelle nicht nur den Datenaustausch zwischen dem Datenbus und derjenigen Steuerungshardwarekomponente, in der sie enthalten ist, sondern sie ist auch für die Organisation des Datenaustauschs innerhalb der Steuerungshardwarekomponente zuständig.
  • Die auf der zu steuernden Anlage ablaufende Anwendung kann auch als Prozess bezeichnet werden, der sowohl Standardsteuerungsaufgaben als auch Sicherheitssteuerungsaufgaben umfasst.
  • Es versteht sich, dass die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden in der nachfolgenden Beschreibung näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung einer zu steuernden Anlage;
  • 2 eine schematische Darstellung von an einer Anlagenhardwarekomponente angeordneten Steuerungshardwarekomponenten;
  • 3 eine vereinfachte Darstellung einer verteilt aufgebauten Sicherheitssteuerung;
  • 4 eine vereinfachte Darstellung einer grafischen Oberfläche für das Erstellen eines Anwenderprogramms;
  • 5 ein Zeitdiagramm zur Erläuterung von Verarbeitungszuordnungen und daraus sich ergebender Konfigurationsdaten;
  • 6 eine vereinfachte Darstellung einer Sicherheitssteuerung und ein zugehöriger Abhängigkeitsgraph zur Erläuterung von Verarbeitungszuordnungen; und
  • 7 ein vereinfachtes Flussdiagramm zur Erläuterung des neuen Verfahrens.
  • In 1 ist eine zu steuernde Anlage in ihrer Gesamtheit mit der Bezugsziffer 10 bezeichnet.
  • Die Anlage 10 besteht aus einer Vielzahl von Anlagenhardwarekomponenten 12. Im vorliegenden Ausführungsbeispiel handelt es sich um eine Bestückungsstation 14, eine Bearbeitungsstation 16, eine Teststation 18, eine Fördereinheit 20 und um eine Verpackungs- und Palettierstation 22. Des Weiteren ist eine Sicherheitssteuerung in ihrer Gesamtheit mit der Bezugsziffer 24 bezeichnet. Die Sicherheitssteuerung 24 besteht aus einer Vielzahl von Steuerungshardwarekomponenten 26. Bei den Steuerungshardwarekomponenten 26 handelt es sich um Steuereinheiten 28, Sensoren 30 und Aktuatoren 32. Dabei sind die einzelnen Steuereinheiten 28, Sensoren 30 und Aktuatoren 32 jeweils einer der Anlagenhardwarekomponenten 12 zugeordnet und dort verbaut. Die Steuerungshardwarekomponenten 12 sind über einen Datenbus 34 untereinander verbunden. Hierzu sind die einzelnen Steuerungshardwarekomponenten 26 mit nicht dargestellten Datenbusschnittstellen ausgestattet. Bei dem Datenbus 34 handelt es sich um einen Datenbus, der beispielsweise als ethernetbasierter Feldbus ausgebildet ist. Vorzugsweise kommt ein Datenbus und somit insgesamt ein Datenbussystem zum Einsatz, welches nach dem auf die Anmelderin zurückgehenden SafetyNetp®-Kommunikationsmodell arbeitet.
  • Mit der Bestückungsstation 14 wird die Bearbeitungsstation 16 mit Werkstücken befüllt. Diese Werkstücke werden in der Bearbeitungsstation 16 bearbeitet. Anschließend werden die bearbeiteten Werkstücke von der Bearbeitungsstation 16 an die Teststation 18 weitergegeben, in der überprüft wird, ob das bearbeitete Werkstück entsprechende Prüfkriterien erfüllt. Sind diese Prüfkriterien erfüllt, kann die Bearbeitungsstation 16 wieder mit einem neuen Werkstück befüllt werden. Das bearbeitete Werkstück wird mittels der Fördereinheit 20 an die Verpackungs- und Palettierstation 22 übergeben. In dieser werden mehrere bearbeitete Werkstücke zu Gebinden zusammengefasst, die dann auf einer Palette gestapelt werden.
  • Die Arbeitsbereiche der einzelnen Stationen 14, 16, 18, 22 können beispielsweise durch Schutztüren gesichert sein, die mit Sicherheitsschaltern ausgestattet sind, durch die sich eine Zuhaltung mit Verriegelung realisieren lässt. Alternativ oder ergänzend können auch Lichtgitter oder Lichtvorhänge eingesetzt werden. Darüber hinaus können die einzelnen Stationen 14, 16, 18, 22 mit Not-Aus-Tastern versehen sein, mit denen die jeweilige Station durch Trennen von der Stromversorgung in einen sicheren Zustand überführt werden kann. Hierfür werden in der jeweiligen Stromversorgung angeordnete Schütze entsprechend angesteuert. Bei den vorstehend genannten Schutztüren, Lichtgittern, Lichtvorhängen und Not-Aus-Tastern handelt es sich um sicherheitsrelevante Sensoren, die in den Sensoren 30 enthalten sind. Bei den Schützen handelt es sich um sicherheitsrelevante Aktuatoren, die in den Aktuatoren 32 enthalten sind. Die Sensoren 30 können des Weiteren nicht-sicherheitsrelevante Sensoren umfassen. Dies sind Sensoren, die beispielsweise für eine Antriebsregelung benötigte Eingangsgrößen, wie beispielsweise Drehzahlen, Winkel oder Geschwindigkeiten erfassen. Die Aktuatoren 32 können auch nicht-sicherheitsrelevante Aktuatoren umfassen. Hierbei kann es sich beispielsweise um Motoren oder Stellzylinder handeln. Von den Sensoren 30 und den Aktuatoren 32 sind vorzugsweise die sicherheitsrelevanten Sensoren und die sicherheitsrelevanten Aktuatoren intelligent ausgebildet.
  • Im vorliegenden Ausführungsbeispiel ist jeder Station 14, 16, 18, 22 eine Steuereinheit 28 zugeordnet. Hierfür sind die Steuereinheiten 28 als baulich eigenständige Komponenten ausgebildet. Dies gilt ebenso für die Sensoren 30 und die Aktuatoren 32. Dies soll jedoch keine einschränkende Wirkung haben. Es ist auch denkbar, beispielsweise zwei Stationen eine gemeinsame Steuereinheit zuzuordnen. Die einzelnen Anlagenhardwarekomponenten 12 können baulich und räumlich voneinander getrennt sein. Es ist aber auch denkbar, dass einzelne dieser Komponenten wirktechnisch miteinander verbunden sind.
  • In 1 sind funktionsgleiche Komponenten mit derselben Bezugsziffer versehen, wobei durch die Verwendung von Strichen angedeutet ist, dass die einzelnen Komponenten derselben Bezugsziffer aufgrund der individuellen Zuordnung zu einzelnen Anlagenhardwarekomponenten 12 durchaus unterschiedlich ausgestaltet sein können. Entsprechendes gilt auch für Signale. Diese Form der Kennzeichnung gilt auch für die nachfolgenden Figuren.
  • In 2 sind in einer detaillierteren Darstellung die Bearbeitungsstation 16 und die ihr zugeordneten Steuerungshardwarekomponenten dargestellt. Hierbei handelt es sich um eine Steuereinheit 28', um Sensoren 30' und um Aktuatoren 32', die durch den Datenbus 34 untereinander verbunden sind.
  • Die Steuereinheit 28' ist zweikanalig-redundant aufgebaut, um die erforderliche Fehlersicherheit zum Steuern sicherheitskritischer Anwendungen bzw. Prozesse zu erreichen. Stellvertretend für den zweikanaligen Aufbau sind in 2 zwei voneinander getrennte Prozessoren, nämlich ein erster Prozessor 40 und ein zweiter Prozessor 42, dargestellt. Die beiden Prozessoren 40, 42 stehen über eine bidirektionale Kommunikationsschnittstelle 44 miteinander in Verbindung, um sich gegenseitig kontrollieren und Daten austauschen zu können. Bevorzugt sind die beiden Kanäle der Steuereinheit 28' und die beiden Prozessoren 40, 42 diversitär, d. h. verschieden voneinander, aufgebaut, um systematisch Fehler weitgehend auszuschließen.
  • Mit der Bezugsziffer 46 ist eine Datenbusschnittstelle bezeichnet, die mit jedem der beiden Prozessoren 40, 42 in Verbindung steht. Die Datenbusschnittstelle 46 nimmt Steuerungseingangssignale 48, 48' von den Sensoren 30' auf und leitet diese in einem angepassten Datenformat an jeden der beiden Prozessoren 40, 42 weiter. Ferner erzeugt die Datenbusschnittstelle 46 in Abhängigkeit von den Prozessoren 40, 42 Steuerungsausgangssignale 50, 50' mit denen die Aktuatoren 32' angesteuert werden.
  • Mit der Bezugsziffer 52 ist ein Datenspeicher bezeichnet, in dem Projektdaten 54 in Form von Datenblöcken gespeichert sind. Hierbei handelt es sich um einen ersten Datenblock 56, welcher Konfigurationsdaten 58 für die Datenbusschnittstelle 46 enthält. Darüber hinaus enthält der Datenspeicher 52 einen zweiten Datenblock 60 und einen dritten Datenpaket 62. Diese beiden Datenblöcke enthalten Programmdaten, die denjenigen Umfang eines Anwenderprogramms repräsentieren, der in der Steuereinheit 28' abgearbeitet wird. Der Datenspeicher 52 ist so ausgebildet, dass die insgesamt in ihm gespeicherten Projektdaten 54 nullspannungssicher gespeichert sind. Hierzu ist der Datenspeicher 52 beispielsweise als Flashspeicher oder als SD-Card oder als CF-Card ausgeführt. Aus Gründen der Übersichtlichkeit wurde auf die Darstellung von eventuell in den Projektdaten 54 enthaltenen Parametrisierungsdaten verzichtet.
  • Die Aktuatoren 32' und die Sensoren 30' sind ebenfalls mit Datenbusschnittstellen 46', 46'', 46''', 46'''' ausgestattet. Darüber hinaus verfügen die Aktuatoren 32' und die Sensoren 30' ebenfalls über Datenspeicher 52', 52'', 52''', 52'''' Speichern der jeweiligen Datenblöcke 56', 56'', 56''', 56'''', die Konfigurationsdaten der jeweiligen Datenbusschnittstelle 46', 46'', 46''', 46'''' enthalten. Dies soll keine einschränkende Wirkung haben. Es müssen nicht alle Steuerungshardwarekomponenten Datenspeicher aufweisen. Die Konfigurationsdaten derjenigen Steuerungshardwarekomponenten, die über keinen Datenspeicher verfügen, können auch in einem Datenspeicher einer anderen Steuerungshardwarekomponente gespeichert sein. Ein hierfür gegebenenfalls erforderlicher Austausch von Konfigurationsdaten ist durch Pfeile 64 angedeutet.
  • Bei dem Datenspeicher 52 und der Datenbusschnittstelle 46 handelt es sich um Datenverarbeitungseinheiten. Die Datenbusschnittstelle 46 stellt sicher, dass ein Datenaustausch zwischen der Steuereinheit 28' und dem Datenbus 34 gemäß einem Kommunikationsprotokoll des Datenbusses 34 erfolgt. Vorzugsweise handelt es sich bei dem Datenbus 34 um einen ethernetbasierten Datenbus. Die Datenbusschnittselle 46 erzeugt dann ethernetkompatible Bustelegramme, in die Datenrahmen mit den zwischen einzelnen Steuerungshardwarekomponenten auszutauschenden Daten eingebettet sind. Die Datenbusschnittstelle 46 kann weitere Funktionseinheiten enthalten, die in 2 jedoch aus Gründen der Übersichtlichkeit nicht dargestellt sind. Hierbei kann es sich um einen Eventbroker handeln, mit dem ereignisbasiert Daten ausgetauscht werden können. Es kann sich auch um einen Databroker handeln, mit dem ein datenbasierter Datenaustausch erfolgen kann. Der in 2 dargestellte Datenbus 34 soll ein Kommunikationsmedium, einen Switch und einen Datenbusmanager umfassen.
  • Die Projektdaten 54 liegen in Form von Maschinencode vor. Für ein fehlersicheres Arbeiten der Steuereinheit 28' sind im Datenspeicher 52 zwei Datenblöcke 60, 62 mit Programmdaten abgespeichert. Der zweite Datenblock 60 ist für den ersten Prozessor 40 und der dritte Datenblock 62 für den zweiten Prozessor 42 bestimmt. Der zweite Datenblock 60 umfasst einen ersten Sicherheitscode 66 und einen Standardcode 68. Der erste Sicherheitscode 66 umfasst diejenigen Steueranweisungen, die vom ersten Prozessor 40 im Rahmen der von der Steuereinheit 28 zu erledigenden Sicherheitsaufgaben abzuarbeiten sind. Diese Art von Steueranweisungen werden nachfolgend als Sicherheitssteueranweisungen bezeichnet. Der Standardcode 68 umfasst diejenigen Steueranweisungen, die von dem ersten Prozessor 40 im Rahmen der von der Steuereinheit 28' zu erledigenden Standardaufgaben abzuarbeiten sind. Diese Art von Steueranweisungen werden nachfolgend als Standardsteueranweisungen bezeichnet. Der dritte Datenblock 62 umfasst einen zweiten Sicherheitscode 70, der diejenigen Steueranweisungen umfasst, die vom zweiten Prozessor 42 abzuarbeiten sind. Diese Steueranweisungen werden nachfolgend ebenfalls als Sicherheitssteueranweisungen bezeichnet.
  • In Abhängigkeit des Bearbeitungsfortganges wird in dem ersten Prozessor 40 zum einen eine erste aktuelle Sicherheitssteueranweisung 72 und zum anderen eine aktuelle Standardsteueranweisung 74 abgearbeitet. Im Wesentlichen zeitgleich wird in dem zweiten Prozessor 42 eine zweite aktuelle Sicherheitssteueranweisung 76 abgearbeitet.
  • Im Rahmen der Bearbeitung der aktuellen Standardsteueranweisung 74, bei der es sich um eine nicht-sicherheitsrelevante Steueranweisung handelt, werden erste nicht-sicherheitsrelevante Daten 78 zwischen dem ersten Prozessor 40 und der Datenbusschnittstelle 46 ausgetauscht. Hierbei werden dem ersten Prozessor 40 Momentanwerte von nicht-sicherheitsrelevanten Steuerungseingangssignalen 48 zugeführt, die von nicht-sicherheitsrelevanten Sensoren 80' erzeugt werden. Bei den nicht-sicherheitsrelevanten Sensoren 80' handelt es sich um solche Sensoren, die beispielsweise für eine Antriebsregelung benötigte Eingangsgrößen erfassen. Die nicht-sicherheitsrelevanten Sensoren 80' sind nicht-fehlersicher ausgebildet. Der Datenbusschnittstelle 46 werden Momentanwerte von nicht-sicherheitsrelevanten Steuerungsausgangssignalen 50 zugeführt, die nicht-sicherheitsrelevanten Aktuatoren 82' zu deren Ansteuerung zugeführt werden. Die Momentanwerte der nicht-sicherheitsrelevanten Steuerungsaungangssignale 50 werden in Abhängigkeit der nicht-sicherheitsrelevanten Steuerungseingangssignale 48 gemäß den Standardsteueranweisungen ermittelt. Hierbei kann es erforderlich sein, Zwischengrößen zu ermitteln, deren Momentanwerte mittels zweiter nicht-sicherheitsrelevanter Daten 84 einem Arbeitsspeicher 86 zugeführt und dort zwischengespeichert werden.
  • Im Rahmen der Bearbeitung der ersten aktuellen Sicherheitssteueranweisung 72, bei der es sich um eine sicherheitsrelevante Steueranweisung handelt, werden erste sicherheitsrelevante Daten 88 zwischen dem ersten Prozessor 40 und der Datenbusschnittstelle 46 ausgetauscht. Hierbei werden dem ersten Prozessor 40 Momentanwerte von sicherheitsrelevanten Steuerungseingangssignalen 48' zugeführt, die von sicherheitsrelevanten Sensoren 90' erzeugt werden. Bei den sicherheitsrelevanten Sensoren 90' handelt es sich beispielsweise um Not-Aus-Taster, Schutztüren, Drehzahlüberwachungsgeräte oder andere Sensoren zur Aufnahme sicherheitsrelevanter Parameter. Der Datenbusschnittstelle 46 werden Momentanwerte von sicherheitsrelevanten Steuerungsausgangssignalen 50' zugeführt, die sicherheitsrelevanten Aktuatoren 92' zu deren Ansteuerung zugeführt werden. Bei den sicherheitsrelevanten Aktuatoren 92' handelt es sich beispielsweise um Schütze, deren Arbeitskontakte in der Verbindung zwischen einer Stromversorgung 94 und der Bearbeitungsstation 16 angeordnet sind. Somit kann die Stromversorgung 94 der Bearbeitungsstation 16 abgeschaltet werden, wodurch es möglich ist, bei Auftritt einer entsprechenden Fehlfunktion zumindest die Bearbeitungsstation 16 in einen sicheren Zustand zu überführen. Die Momentanwerte der sicherheitsrelevanten Steuerungsausgangssignale 50' werden in Abhängigkeit der sicherheitsrelevanten Steuerungseingangssignale 48' gemäß den Sicherheitssteueranweisungen ermittelt. Hierbei kann es erforderlich sein, sicherheitsrelevante Zwischengrößen zu ermitteln, deren Momentanwerte mittels zweiter sicherheitsrelevanter Daten 96 dem Arbeitsspeicher 86 zugeführt und dort zwischengespeichert werden.
  • Im Rahmen der Bearbeitung der zweiten aktuellen Sicherheitssteueranweisung 76, bei der es sich um eine sicherheitsrelevante Steueranweisung handelt, wird entsprechend der ersten aktuellen Sicherheitssteueranweisung 72 verfahren. Bezüglich der zweiten aktuellen Sicherheitssteueranweisung 76 werden dritte sicherheitsrelevante Daten 98, die den ersten sicherheitsrelevanten Daten 88 entsprechen, und vierte sicherheitsrelevante Daten 100, die den zweiten sicherheitsrelevanten Daten 96 entsprechen, in entsprechender Weise verwendet.
  • Die vorstehenden Ausführungen, gemäß denen sowohl vom ersten Prozessor 40 als auch vom zweiten Prozessor 42 Momentanwerte für die sicherheitsrelevanten Steuerungsausgangssignale 50' erzeugt werden, bedeutet nicht, dass die von diesen beiden Prozessoren erzeugten Momentanwerte gleichzeitig als Steuerungsausgangssignale 50' ausgegeben werden. Die vorstehenden Ausführungen sollen lediglich den bezüglich der zu erledigenden Sicherheitsaufgaben redundanten Aufbau der Steuereinheit 28' wiedergeben. Beide Prozessoren 40, 42 sind dazu ausgebildet, Momentanwerte für die sicherheitsrelevanten Steuerungsausgangssignale 50' zu ermitteln. Während des fehlerfreien Betriebs der Steuereinheit 28' werden lediglich die von einem Prozessor, beispielsweise dem ersten Prozessor 40, ermittelten Werte ausgegeben. Die in 2 gewählte Darstellung, gemäß der in der Steuereinheit 28' sowohl nicht-sicherheitsrelevante Steueranweisungen als auch sicherheitsrelevante Steueranweisungen verarbeitet werden, soll keine einschränkende Wirkung haben. Es ist auch denkbar, dass die Steuereinheit 28' für die ausschließliche Verarbeitung von sicherheitsrelevanten Steueranweisungen ausgebildet ist.
  • Werden im weiteren Verlauf die Formulierungen „Daten erzeugende Steueranweisungen” oder „Daten konsumierende Steueranweisungen” verwendet, so kann es sich in beiden Fällen sowohl um Sicherheitssteueranweisungen als auch um Standardsteueranweisungen handeln.
  • In 3 sind entsprechend dem Aufbau der in 1 dargestellten Anlage 10 die Steuereinheiten 28, 28', 28'', 28''', nicht-sicherheitsrelevante Sensoren 80, 80', 80'', 80''', nicht-sicherheitsrelevante Aktuatoren 82, 82', 82'', 82''', sicherheitsrelevante Sensoren 90, 90', 90'', 90''' und sicherheitsrelevante Aktuatoren 92, 92', 92'', 92''' mitsamt den in ihnen enthalten Datenbusschnittstellen 46, 46', 46'', 46''', 46'''', Datenspeichern 52, 52', 52'', 52''', 52'''' und den die Konfigurationsdaten enthaltenden ersten Datenblöcken 56, 56', 56'', 56''', 56'''' dargestellt. Aus Gründen der Übersichtlichkeit sind vorwiegend lediglich die in der obersten Zeichenebene dargestellten Komponenten mit Bezugsziffern versehen. Die einzelnen Steuerungshardwarekomponenten sind untereinander über den Datenbus 34 verbunden.
  • In 3 ist ein Computer mit der Bezugsziffer 110 bezeichnet. Der Computer 110 ist mit einer Anzeigeeinheit 112 verbunden. Auf dem Computer 110 wird ein Computerprogramm 114 ausgeführt. Das Computerprogramm 114 ermöglicht das Erstellen von Projektdaten, die eine auf der zu steuernden Anlage 10 ablaufende Anwendung repräsentieren. Die Projektdaten umfassen dabei Programmdaten, Konfigurationsdaten 58 und Parametrisierungsdaten. Das Computerprogramm 114 wird in der Fachterminologie häufig als Programmiertool bezeichnet. Der Computer 110 kann als PC und die Anzeigeeinheit 112 als Monitor ausgeführt sein.
  • Gemäß der Erfindung werden die mit dem Computer 110 erzeugten Konfigurationsdaten 58 auf die Datenspeicher 52, 52', 52'', 52''', 52'''' und einen Datenbusmanager 116 übertragen. Hierzu sind die Konfigurationsdaten 58 in eine Vielzahl von ersten Datenblöcken 56, 56', 56'', 56''', 56'''' und einen vierten Datenblock 118 aufgeteilt. Die einzelnen ersten Datenblöcke 56, 56', 56'', 56''', 56'''' sind jeweils einem der Datenspeicher 52, 52', 52'', 52''', 52'''' zugeordnet. Der vierte Datenblock 118 ist dem Datenbusmanager 116 zugeordnet. Die Konfigurationsdaten 58, genauer gesagt die einzelnen ersten Datenblöcke 56, 56', 56'', 56''', 56'''' und der vierte Datenblock 118 werden dabei in Abhängigkeit von Zuordnungsdaten 120 auf die einzelnen Datenspeicher 52, 52', 52'', 52''', 52'''' und den Datenbusmanager 116 verteilt. Somit sind sowohl dem Datenbus 34 als auch den Datenbusschnittstellen 46, 46', 46'', 46''', 46'''' jeweils Konfigurationsdaten 58 zugeordnet. Folglich kann sowohl zumindest eine Eigenschaft des Datenbusses 34 als auch zumindest eine Eigenschaft einer Datenbusschnittstelle durch die Konfigurationsdaten 58 festgelegt werden.
  • Die Zuordnungsdaten 120 werden in dem Computer 110 erzeugt. Die Zuordnungsdaten 120 umfassen unter anderem Programmmodulzuordnungsdaten. Die Pro grammmodulzuordnungsdaten werden für das Verteilen der Konfigurationsdaten 58 auf die einzelnen Datenbusschnittstellen 46, 46', 46'', 46''', 46'''' und somit Datenspeicher 52, 52', 52'', 52''', 52'''' und den Datenbusmanager 116 verwendet. Vorzugsweise werden von dem Computer 110 nicht die kompletten Zuordnungsdaten, sondern lediglich die Programmmodulzuordnungsdaten für das Verteilen der Konfigurationsdaten 58 bereitgestellt.
  • Um die Konfigurationsdaten 58 verteilen zu können, werden diese einer Verteileinheit zugeführt. Erfindungsgemäß sind hier drei unterschiedliche Vorgehensweisen möglich. Dabei kann eine Sicherheitssteuerung 24 so ausgeführt sein, dass ein Programmierer nach seinem Belieben eine dieser drei Vorgehensweisen wählen kann. Es ist aber auch denkbar, dass lediglich eine oder zwei dieser Vorgehensweisen vorgesehen sind.
  • Eine erste Vorgehensweise ist durch eine erste Pfeilfolge 122 angedeutet. Hierbei werden sowohl die Konfigurationsdaten 58 als auch die Zuordnungsdaten 120 beispielsweise kabelgebunden von dem Computer 110 über eine hierfür vorgesehene erste Konfigurationsschnittstelle 124 auf den Datenspeicher 52 übertragen, der sich in der Steuereinheit 28 befindet. In diesem Fall handelt es sich bei der Verteileinheit um einen in der Sicherheitssteuerung 24 angeordneten Datenspeicher. Der in der Steuereinheit 28 angeordnete Datenspeicher 52 verteilt die Datenpakete 56, 56', 56'', 56''', 56'''', 118 gemäß den in den Zuordnungsdaten 120 enthaltenen Programmmodulzuordnungsdaten auf die einzelnen Datenspeicher 52, 52', 52'', 52''', 52'''' und den Datenbusmanager 116. Hierfür ist besagter Datenspeicher 52 dazu ausgebildet, ihm zugeführte Konfigurationsdaten 58 an zumindest einen anderen Datenspeicher oder den Datenbusmanager 116 weiterleiten zu können. Eine zweite Vorgehensweise ist durch eine zweite Pfeilfolge 126 dargestellt. Hierbei werden die Konfigurationsdaten 58 und die Zuordnungsdaten 120 zunächst auf einer in dem Computer 110 enthaltenen externen Verteileinheit 128 bereitgestellt. Die externe Verteileinheit 128 entspricht dabei in ihrer Funktionalität dem in der Steuereinheit 28 enthaltenen Datenspeicher 52. Die Konfigurationsdaten 58 werden dann beispielsweise kabelgebunden über eine hierfür vorgesehene zweite Konfigurationsschnittstelle 130 dem Datenbus 34 zugeführt und gemäß den in den Zuordnungsdaten 120 enthaltenen Programmmodulzuordnungsdaten auf die einzelnen Datenspeicher 52, 52', 52'', 52''', 52'''' und den Datenbusmanager 116 verteilt. Eine dritte Vorgehensweise ist durch eine dritte Pfeilfolge 132 angedeutet. Hierbei werden sowohl die Konfigurationsdaten 58 als auch die Zuordnungsdaten 120 auf ein mobiles Speichermedium 134 übertragen. Bei dem mobilen Speichermedium 134 kann es sich beispielsweise um eine SD-Card, eine CF-Card oder um einen USB-Stick handeln. Das mobile Speichermedium 134 wird dann in eine hierfür vorgesehene Aufnahmeeinheit 136 mit integrierter Konfigurationsschnittstelle eingeführt. Die Konfigurationsdaten 58 werden dann dem in der Steuereinheit 28 enthaltenen Datenspeicher 52 zugeführt, der dann das Verteilen der Datenpakete 56, 56', 56'', 56''', 56'''', 118 übernimmt. In entsprechender Weise können auch Programmdaten und Parametrisierungsdaten verteilt werden.
  • Was das Verteilen der Konfigurationsdaten 58 auf die einzelnen Datenspeicher 52, 52', 52'', 52''', 52'''' und den Datenbusmanager 116 angeht, so sind hierfür unterschiedliche Ansätze denkbar. Gemäß einem ersten Ansatz werden die Projektdaten 58 im Wesentlichen vor Ort, d. h. dort wo sie verarbeitet werden, abgespeichert. Also beispielsweise in demjenigen Datenspeicher derjenigen Steuereinheit, für deren Datenbusschnittstelle die Konfigurationsdaten bestimmt sind. Bei diesem Ansatz werden die Programmmodulzuordnungsdaten beispielsweise in Abhängigkeit von Zuordnungen, die der Ersteller des Anwenderprogramms vornimmt, ermittelt. Gemäß einem zweiten Ansatz werden die Zuordnungsdaten 120 in Abhängigkeit zumindest einer Datenverarbeitungskennzahl ermittelt. Bei diesem Ansatz werden die Konfigurationsdaten 58 dahingehend verteilt, dass sie bevorzugt in Steuerungshardwarekomponenten 26 abgespeichert werden, die über eine hohe Datenverarbeitungskapazität verfügen. Um ein beliebiges Verteilen der Konfigurationsdaten auf die einzelnen Datenspeicher 52, 52', 52'', 52''', 52'''' oder den Datenbusmanager 116 zu ermöglichen, muss zumindest ein Teil der Datenspeicher 52, 52', 52'', 52''', 52'''' oder der Datenbusmanager dazu ausgebildet sein, zugeführte Konfigurationsdaten weiterleiten und Konfigurationsdaten anfordern zu können. Zur Erhöhung der Verfügbarkeit der Sicherheitssteuerung 24 kann zumindest ein Teil der Konfigurationsdaten 58 redundant in den Datenspeichern 52, 52', 52'', 52''', 52'''' und dem Datenbusmanager 116 gespeichert. werden
  • In 4 ist eine grafische Oberfläche in ihrer Gesamtheit mit der Bezugsziffer 150 bezeichnet. Diese grafische Oberfläche 150 ermöglicht einem Programmierer das Erstellen eines Anwenderprogramms und somit von Programmdaten. Gleichzeitig werden neben den Programmdaten auch Parametrisierungsdaten und die Konfigurationsdaten 58 erstellt.
  • Die grafische Benutzeroberfläche 150 beinhaltet ein Anlagensoftwarekomponenten-Feld 152, welches eine Vielzahl vordefinierter Anlagensoftwarekomponenten 154 in Form von grafischen Symbolen enthält. Das Anwenderprogramm und somit die Programmdaten werden durch Bereitstellen einer Vielzahl von Anlagensoftwarekomponenten erstellt. Zu diesem Zweck beinhaltet die grafische Benutzeroberfläche 150 ein erstes Komponenten-Feld 156. Die bereitzustellenden Anlagensoftwarekomponenten werden ausgewählt und in das erste Komponenten-Feld 156 überführt, wie dies durch einen Pfeil 158 angedeutet ist. Das erste Komponenten-Feld 156 enthält somit eine Vielzahl von bereitgestellten Anlagensoftwarekomponenten 160. Durch logisches Verknüpfen der bereitgestellten Anlagensoftwarekomponenten 160 wird ein Komponententeilprogramm erstellt. Hierzu werden Logikeingänge und Logikausgänge dieser Anlagensoftwarekomponenten untereinander verbunden, was durch eine Vielzahl von Verbindungen 162 dargestellt ist. Zusätzlich zu der Auswahl vordefinierter Anlagensoftwarekomponenten können auch neue Anlagensoftwarekomponenten erstellt werden, wie dies durch eine neue Anlagensoftwarekomponente 164 angedeutet ist. Bei den einzelnen Anlagensoftwarekomponenten kann es sich um so genannte Elementarkomponenten handeln, die selbst keine weiteren Softwarekomponenten enthalten. Es kann sich aber auch um so genannte Gruppenkomponenten handeln, die selbst weitere Softwarekomponenten enthalten. Eine Elementarkomponente enthält mehrere Aspektblöcke. Jeder dieser Aspektblöcke ist einem von mehreren untereinander unterschiedlichen Steuerungsaspekten zugeordnet, wobei jeder dieser Steuerungsaspekte einen eigenständigen Teilaspekt der Sicherheitssteuerung repräsentiert. Die Anlagensoftwarekomponente enthält dabei all diejenigen Aspektblöcke, die für diejenige Anlagenhardwarekomponente von Bedeutung sind, die die Anlagensoftwarekomponente repräsentiert. Im Vergleich zu einer Elementarkomponente enthält eine Gruppenkomponente neben den Aspektblöcken zusätzlich Softwarekomponenten, die als Elementar- oder als Gruppenkomponente ausgeführt sein können. Durch die Verwendung von Gruppenkomponenten kann ein Anwenderprogramm mit mehreren Hierarchieebenen erstellt werden. Jede der bereitgestellten Anlagensoftwarekomponenten 160 repräsentiert eines derjenigen Programmmodule, aus denen das Anwenderprogramm insgesamt aufgebaut ist. Vorteilhafterweise kann es sich bei den untereinander unterschiedlichen Steuerungsaspekten um folgende Steuerungsaspekte handeln: Standardsteuerungsaspekt, Sicherheitssteuerungsaspekt, Diagnoseaspekt, Visualisierungsaspekt, Eintrittsregelungsaspekt, Kühlungsaspekt, Zugriffsberechtigungsaspekt, Wartungsaspekt, Verriegelungsaspekt, Handbetriebsaspekt oder Datenverwaltungsaspekt.
  • Für jeden in einer Anlagensoftwarekomponente enthaltenen Aspektblock sind zumindest diejenigen Logikgrößen und/oder diejenigen Parameter und/oder diejenigen Sensorsignale, die zur Verarbeitung benötigt werden und über zugehörige Eingänge dem Aspektblock zuzuführen sind, und diejenigen Logikgrößen und/oder diejenigen Parameter und/oder diejenigen Ausgangssignale, die in der Anzahl von Aspektblöcken jeweils ermittelt und über zugehörige Ausgänge von dem Aspektblock ausgegeben werden, zunächst dem Grunde nach festgelegt. Das Festlegen der konkreten Sensoren und/oder Aktuatoren, die mit dem jeweiligen Aspektblock zu verbinden sind, erfolgt letztlich erst beim Erstellen des Anwenderprogramms. Ferner ist zumindest in einem Teil der in einer Anlagensoftwarekomponente enthaltenen Aspektblöcke jeweils ein Funktionsprogramm hinterlegt, welches Aspekteigenschaften der Anlagenhardwarekomponente für denjenigen Steuerungsaspekt festlegt, dem der jeweilige Aspektblock zugeordnet ist.
  • Die grafische Oberfläche 150 beinhaltet ferner ein Aspektfeld 166. In diesem Aspektfeld 166 ist eine Vielzahl von Aspektblöcken 168 angeordnet. Jeder dieser Aspektblöcke ist demselben Steuerungsaspekt zugeordnet. Dabei umfasst die Vielzahl von Aspektblöcken 168 die in sämtlichen Hierarchieebenen des Anwenderprogramms enthaltenen Aspektblöcke. Die grafische Oberfläche 150 beinhaltet weiter ein Sensorenfeld 170. In diesem Sensorenfeld 170 ist eine Vielzahl von grafischen Sensorsymbolen 172 angeordnet. Für jeden in der zu steuernden Anlage 10 enthaltenen Sensor ist dabei ein grafisches Sensorsymbol vorgesehen. Als weiteres Feld enthält die grafische Oberfläche 150 ein Aktuatorenfeld 174. In diesem Aktuatorenfeld 174 ist eine Vielzahl von grafischen Aktuatorensymbolen 176 angeordnet. Für jeden in der zu steuernden Anlage 10 enthaltenen Aktuator ist dabei ein grafisches Aktuatorensymbol vorgesehen. Für die in dem Aspektfeld 166 enthaltene Vielzahl von Aspektblöcken 168 wird ein Aspektteilprogramm erstellt. Hierzu wird zumindest für einen Teil der Aspektblöcke sowohl für deren Eingänge als auch für deren Ausgänge ein so genanntes I/O-Mapping durchgeführt. Das heißt, zumindest einem Teil der Signaleingänge werden diejenigen Sensoren zugeordnet, deren Sensorsignale in dem jeweiligen Aspektblock verarbeitet werden. Dies ist beispielhaft durch einen Pfeil 178 dargestellt. Außerdem werden zumindest einem Teil der Steuerungsausgänge Aktuatoren zugeordnet, die mit den in dem jeweiligen Aspektblock ermittelten Ausgangssignalen angesteuert werden. Dies ist beispielhaft durch einen Pfeil 180 angedeutet. Alternativ kann das I/O-Mapping auch durch textuelle Eingaben in einem Eingabefeld 182 vorgenommen werden.
  • Die grafische Oberfläche 150 beinhaltet ein Steuerungssoftwarekomponenten-Feld 184, welches eine Vielzahl vordefinierter Steuerungssoftwarekomponenten 186 enthält. Jede dieser Steuerungssoftwarekomponenten 186 repräsentiert eine Steuerungshardwarekomponente 26, die in einer verteilt aufgebauten Sicherheitssteuerung 24 eingesetzt werden kann. Die grafische Oberfläche 170 beinhaltet ferner ein zweites Komponenten-Feld 188. In diesem zweiten Komponenten-Feld 188 kann der Programmierer des Anwenderprogramms diejenigen Steuerungssoftwarekomponenten einfügen, die diejenigen Steuerungshardwarekomponenten repräsentieren, aus denen die verteilte Sicherheitssteuerung 24 aufgebaut ist. Dies erfolgt durch Auswahl einzelner Steuerungssoftwarekomponenten 186 und Überführen in das zweite Komponenten-Feld 188, wie dies beispielhaft durch einen Pfeil 190 angedeutet ist. Das zweite Komponenten-Feld 188 enthält somit eine Vielzahl von bereitgestellten Steuerungssoftwarekomponenten 192. Möchte der Programmierer zumindest für einen Teilumfang des Anwenderprogramms festlegen, welche Projektdaten, insbesondere welche Programmdaten und welche Konfigurationsdaten in welcher Steuerungshardwarekomponente 26 verarbeitet und somit in dem zugehörigen Datenspeicher gespeichert werden sollen, so kann er zumindest einen Teil der bereitgestellten Anlagensoftwarekomponenten 160 den bereitgestellten Steuerungssoftwarekomponenten 192 zuordnen. Dies ist durch Programmmodulzuordnungen 194, 196 angedeutet. Aus diesen Programmmodulzuordnungen werden Programmmodulzuordnungsdaten und somit Zuordnungsdaten ermittelt, in deren Abhängigkeit dann die Konfigurationsdaten 58 ermittelt werden.
  • Die Programmmodulzuordnungsdaten können aber auch automatisch, d. h. ohne dass der Programmierer Programmmodulzuordnungen vornimmt, ermittelt werden. Hierfür ist für jede durch eine Steuerungssoftwarekomponente 192 repräsentierte Steuerungshardwarekomponente 26 zumindest ein Datenverarbeitungskennzahlenwert in einer Datenbank hinterlegt, so dass die Programmmodulzuordnungen beispielsweise in Abhängigkeit dieser Datenverarbeitungskennzahlenwerte vorgenommen werden können und somit die Programmmodulzuordnungsdaten ermittelt werden können. In diesem Fall erfolgt das Verteilen der Programmdaten und der Konfigurationsdaten auf die einzelnen Steuerungshardwarekomponenten und somit die Datenspeicher unter dem Gesichtspunkt der Datenverarbeitungskapazität der einzelnen Steuerungshardwarekomponenten. Es ist aber auch denkbar, die Programmmodulzuordnungsdaten sowohl in Abhängigkeit von Datenverarbeitungskennzahlenwerten als auch in Abhängigkeit von vom Programmierer vorgenommenen Programmmodulzuordnungen zu ermitteln. Beispielsweise kann unter Verwendung der Datenverarbeitungskennzahlenwerte zunächst ein Vorschlag für eine Zuordnung erstellt werden, den der Programmierer dann immer noch nach seinen Vorstellungen gemäß von ihm vorgenommenen Programmmodulzuordnungen abändern kann.
  • Für die Aspektblöcke 188 können vordefinierte Parametrisierungsdaten in einer Datenbank hinterlegt sein. Es besteht zudem auch die Möglichkeit, Parametrisierungsdaten beim Erstellen des Anwenderprogramms abzuändern oder überhaupt vorzugeben, beispielsweise durch entsprechende Eingaben in das Eingabefeld 182. Dies kann beispielsweise auch erfolgen, nachdem das Anwenderprogramm erstellt ist.
  • Die Programmmodulzuordnungen und somit die Programmmodulzuordnungsdaten enthalten nicht nur eine Information darüber, welches Programmmodul welcher Steuerungssoftwarekomponente und somit welcher Steuerungshardwarekomponente zugeordnet ist. Die Programmmodulzuordnungsdaten enthalten darüber hinaus weitergehende Informationen. Ausgehend von den Verbindungen 162 enthalten sie auch eine Information und somit Daten darüber, welche Steuerungshardwarekomponenten untereinander verbunden sind, und über welche Eingänge und Ausgänge der einzelnen Steuerungshardwarekomponenten dies realisiert ist. Ferner enthalten die Programmmodulzuordnungsdaten auch eine Information und somit Daten darüber, welche Sensoren und welche Aktuatoren den einzelnen Steuereinheiten zugeordnet sind. Mit Hilfe des Aspektfeldes 166 wird eine Zuordnung zwischen den einzelnen Aspektblöcken 168 und den Sensoren und Aktuatoren vorgenommen. Ferner ist bekannt, welche Funktionsprogramme in den einzelnen Aspektblöcken enthalten sind, d. h. welche Programmeingangsvariablen und Programmausgangsvariablen bzw. welche Daten konsumierenden Steueranweisungen und welche Daten erzeugenden Steueranweisungen in den einzelnen Aspektblöcken verarbeitet werden. Somit ist festgelegt, welcher Sensor welcher Programmeingangsvariable und welcher Aktuator welcher Programmausgangsvariable zugeordnet ist. Da die einzelnen Aspektblöcke jeweils eindeutig einer Anlagensoftwarekomponente zugeordnet sind, ist ferner bekannt, welcher Aspektblock in welcher Anlagensoftwarekomponente enthalten ist. Über die Programmmodulzuordnungen ist somit bekannt, welcher Sensor und welcher Aktuator mit welcher Steuereinheit verbunden ist. Aufgrund des für die Aspektblöcke durchgeführten I/O-Mappings ist zudem bekannt, welchen Eingangs- und Ausgangsklemmen die einzelnen Sensoren und Aktuatoren zugeordnet sind. Mit anderen Worten: Für die Steuereinheiten ist sowohl das Eingangsabbild als auch das Ausgangsabbild bekannt. Eine für eine umfassende Konfiguration der Kommunikationsbeziehungen relevante Information.
  • Der mit Hilfe von 4 beschriebenen Vorgehensweise für das Erstellen eines Anwenderprogramms und somit der Realisierung bzw. Projektierung einer Sicherheitssteuerung liegt ein neues Konzept für das Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung zugrunde. Bei diesem neuen Konzept wird zunächst eine funktionale Sicht auf die Applikation und somit das zu lösende Automatisierungsproblem eingenommen. Darauf aufbauend wird zunächst unabhängig von den später verwendeten Steuerungshardwarekomponenten eine funktionale Gesamtapplikation entwickelt. Hierbei handelt es sich um das im Zusammenhang mit dem ersten Komponentenfeld 156 beschriebene Erstellen eines Komponententeilprogramms und dem im Zusammenhang mit dem Aspektfeld 166 beschriebenen Erstellen von Aspektteilprogrammen und ggf. dem Erstellen der in den Aspektblöcken enthaltenen Funktionsprogrammen. In einem weiteren Schritt wird dann die funktionale Gesamtapplikation auf eine Gerätekonfiguration, d. h. auf eine Vielzahl von Steuerungshardwarekomponenten, bei denen es sich um Steuereinheiten, Sensoren und Aktuatoren handelt, aufgeteilt. Die Kommunikationsbeziehungen, die für den Datenaustausch innerhalb der Sicherheitssteuerung zwischen den einzelnen Steuerungshardwarekomponenten erforderlich sind, werden dabei automatisch ermittelt. Dieses neue Konzept hat gegenüber der bisherigen Vorgehensweise, bei der zunächst eine Gerätesicht eingenommen wird, d. h. eine Gerätekonfiguration erstellt und darauf aufbauend die einzelnen Programme für die in der Gerätekonfiguration enthaltenen Steuereinheiten programmiert und die Kommunikationsbeziehungen zwischen den einzelnen Steuereinheiten und den Sensoren und Aktuatoren aufwendig von Hand aus programmiert werden, folgende Vorteile: Ein einmal erstelltes Anwenderprogramm verfügt über eine hohe Wiederverwertbarkeit. Aufgrund der zunächst geräteunabhängigen Entwicklung der funktionalen Gesamtapplikation kann ein Anwenderprogramm bei einer identischen Anlage, die zu einem späteren Zeitpunkt aufgebaut wird, erneut eingesetzt werden. Die hohe Wiederverwertbarkeit betrifft nicht nur das gesamte Anwenderprogramm, sie betrifft auch die einzelnen Programmmodule, aus denen das Anwenderprogramm aufgebaut ist. Dies ist für den Fall von Vorteil, dass eine bereits bestehende Anlage modifiziert werden soll. Soll beispielsweise eine in einer Anlage vorhandene Prozessstation verdoppelt werden, um die Bearbeitungskapazität der Anlage zu erhöhen, so muss lediglich eine Kopie derjenigen Anlagensoftwarekomponente erstellt werden, die die Prozessstation repräsentiert. Die kopierte Anlagensoftwarekomponente muss dann lediglich noch mit den bereits vorhandenen Anlagensoftwarekomponenten verbunden werden.
  • Ein weiterer Vorteil besteht in der beliebigen Skalierbarkeit, die sich daraus ergibt, dass die funktionale Gesamtapplikation zunächst geräteunabhängig entwickelt wird. So kann ein und dasselbe Anwenderprogramm auf unterschiedlich konfigurierten Sicherheitssteuerungen implementiert werden. Beispielsweise auf einer Sicherheitssteuerung, die lediglich über eine große und somit leistungsfähige Steuereinheit verfügt oder aber auf einer verteilt aufgebauten Sicherheitssteuerung, die mehrere kleinere und somit leistungsschwächere Steuereinheiten enthält.
  • Zudem reduziert sich der Zeitaufwand für das Erstellen eines Anwenderprogrammes. Aufgrund der zentralen funktionalen Sicht auf ein verteiltes System und aufgrund der Tatsache, dass sich der Programmierer zunächst keine Gedanken über die zu verwendenden Steuerungshardwarekomponenten machen muss, kann er sich vollkommen auf die Entwicklung der funktionalen Gesamtapplikation konzentrieren. Zudem entfällt der Zeitaufwand für eine aufwendige manuelle Ausprogrammierung der Kommunikationsbeziehungen.
  • Mit dem neuen Konzept sind somit verteilt aufgebaute Sicherheitssteuerungen in einfacher Art und Weise beherrschbar. Somit sind alle Vorteile einer verteilt aufgebauten Sicherheitssteuerung nutzbar. Es erhöht sich die Anlagenverfügbarkeit, da sich eventuelle Störungen nur auf begrenzte Teilbereiche der Sicherheitssteuerung auswirken. Zudem können kürzere Reaktionszeiten realisiert werden, da eine echte Parallelisierung von Steuerungsaufgaben möglich ist und Teilumfänge eines Anwenderprogramms vor Ort ausgeführt werden können. Darüber hinaus können Sicherheitssteuerungen kostengünstiger realisiert werden. Zum einen sinken die Kosten für die Verdrahtung und das Erstellen des Anwenderprogramms. Zum anderen ergibt sich eine Kostensenkung daraus, dass Steuerungsfunktionalitäten auf ohnehin vorhandenen intelligenten Ein-/Ausgabegeräte implementiert werden können.
  • Die bereits erwähnte Geräteunabhängigkeit des neuen Konzepts manifestiert sich an zwei Stellen. Zum einen wird die funktionale Gesamtapplikation auf eine beliebig verteilt aufgebaute Sicherheitssteuerung verteilt. Dieser Vorgang wird als Deployment bezeichnet. Zum anderen wird durch Zuordnung von symbolischen Variablen zu physikalischen Ein-/Ausgängen der Steuereinheiten ein I/O-Mapping realisiert.
  • In 5 sind zwei Terminierungszyklen 210, 212 einer Signalverarbeitungskette dargestellt, wobei die Reihenfolge der Verarbeitungszuordnungen durch eine Buchstabenfolge a bis x angedeutet ist. Die Signalverarbeitungskette besteht aus mehreren Steueranweisungen, an denen mehrere Einheiten beteiligt sind. Bei diesen Einheiten handelt es sich um ein mit ”I/O” bezeichnetes Ein-/Ausgabegerät, eine mit ”PLC” bezeichnete Steuereinheit und um einen mit ”NM SNET” bezeichneten Datenbusmanager. Diesen Einheiten sind unterschiedliche Prioritäten zugeordnet, wobei die höchste Priorität mit ”Prio 1” und die niedrigste Priorität mit ”Prio 3” bezeichnet sind. Mit ”idle” sind weitere Steueranweisungen bezeichnet, deren Priorität niedriger als ”Prio 3” ist, die für die nachfolgende Betrachtung jedoch nicht von Bedeutung sind. Wie 5 zu entnehmen ist, muss der Datenbusmanager auf Daten warten, die von dem Ein-/Ausgabegerät erzeugt werden. Die Steuereinheit muss sowohl auf das Ein-/Ausgabegerät als auch auf den Datenbusmanager warten. Das Ein-/Ausgabegerät wartet auf Daten, die von der Steuereinheit in den davor liegenden Terminierungszyklus erzeugt werden.
  • In 5 sind verschiedene Gültigkeitszeitdauern eingetragen. Eine erste Gültigkeitszeitdauer 214 für von dem Ein-/Ausgabegerät erzeugte Daten. Eine zweite Gültigkeitszeitdauer 216 für von der Steuereinheit erzeugte Daten. Eine dritte Gültigkeitszeitdauer 218 für von dem Datenbusmanager erzeugte Daten. Darüber hinaus sind in 5 verschiedene Wartezeitdauern eingetragen. Die einzelnen Wartezeitdauern geben an, wie lange die jeweilige Einheit auf die von ihr zu konsumierenden Daten wartet. Eine erste Wartezeitdauer 220 des Ein-/Ausgabegeräts. Da das Ein-/Ausgabegerät jeweils den ersten Datenkonsum innerhalb eines Terminierungszyklus hat, ist diese Wartezeitdauer auf 0 Sekunden gesetzt. Eine zweite Wartezeitdauer 222 der Steuereinheit. Während dieser Wartezeitdauer wartet die Steuereinheit sowohl auf die von dem Ein-/Ausgabegerät erzeugten Daten als auch auf die von dem Datenbusmanager erzeugten Daten. Eine dritte Wartezeitdauer 224 des Datenbusmanagers. Während dieser Wartezeitdauer wartet der Datenbusmanager auf die von dem Ein-/Ausgabegerät erzeugten Daten. Wie der Darstellung in 5 zu entnehmen ist, sind die Wartezeitdauern der einzelnen Einheiten jeweils statisch, d. h. fest definiert. Die Zeitdauer, die zwischen dem Beginn und dem Ende der Wartezeitdauer liegt, ist für sämtliche Terminierungszyklen identisch. Dahingegen kann die Gültigkeitszeitdauer für die von einer Einheit erzeugten Daten für die einzelnen Terminierungszyklen variieren. Dies rührt daher, dass die jeweilige Gültigkeitszeitdauer angibt, wie viele Terminierungszyklen die erzeugten Daten gültig sind, wobei derjenige Terminierungszyklus mit berücksichtigt wird, in dem die Daten erzeugt werden. Dies führt dazu, dass beispielsweise die Gültigkeitszeitdauern 214, 214' des Ein-/Ausgabegeräts in den beiden Terminierungszyklen 210, 212 variieren, da die von dem Ein-/Ausgabegerät erzeugten Daten zu unterschiedlichen Zeitpunkten innerhalb des jeweiligen Terminierungszyklus bereitgestellt werden.
  • In dem Terminierungszyklus 210 werden sämtliche Daten so rechtzeitig erzeugt, dass diese für den jeweiligen Datenkonsum bereitstehen. Wohingegen im Terminierungszyklus 212 das Ein-/Ausgabegerät seine Daten nicht rechtzeitig innerhalb der Wartezeitdauer 224' des Datenbusmanagers bereitstellt. Aus diesem Grund stellt der Datenbusmanager zu dem mit s gekennzeichneten Zeitpunkt von ihm erzeugte Daten bereit, obwohl die von ihm benötigten Daten des Ein-/Ausgabegeräts nicht verfügbar sind. Dieser Mechanismus ermöglicht eine Weiterarbeit des Datenbusmanagers, so dass der Steuereinheit von ihr benötigte Daten vorliegen. Die Berücksichtigung von Wartezeiten ermöglicht ein Arbeiten der Sicherheitssteuerung, auch wenn einzelne Daten nicht rechtzeitig bereitgestellt werden. Was die Ausgabe von Daten durch den Datenbusmanager zu dem mit s gekennzeichneten Zeitpunkt angeht, sind mehrere Möglichkeiten denkbar. Beispielsweise kann ein vordefinierter Defaultwert ausgegeben werden oder erneut der im vorhergehenden Terminierungszyklus ausgegebene Wert.
  • 6 besteht aus zwei Teilfiguren 6a und 6b. Teilfigur 6a zeigt eine einfach aufgebaute Sicherheitssteuerung 230, die aus einer Steuereinheit 28'''' einem Ein-/Ausgabegerät 232 besteht, wobei beide zusammen eine bauliche Einheit bilden. In der Steuereinheit 28'''' wird folgendes Anwenderprogramm abgearbeitet:
    Figure 00410001
  • Die Ein- und Ausgänge des Ein-/Ausgabegerät 232 sind wie folgt definiert:
    Figure 00410002
  • Daraus ergibt sich folgendes I/O-Mapping:
    Figure 00410003
  • Dieser softwaretechnische Sachverhalt stellt sich insgesamt wie folgt dar: Die Steuereinheit 28'''' erzeugt aufgrund einer Daten erzeugenden Steueranweisung E1 einen Momentanwert für eine Ausgangsvariable out1, der von dem Ein-/Ausgabegerät 232 aufgrund einer Daten konsumierenden Steueranweisung K2 über seinen Ausgang PhyOut1 ausgegeben wird. Gleichzeitig liest das Ein-/Ausgabegerät 232 aufgrund einer Daten erzeugenden Steueranweisung E2 über seinen Eingang Phyln1 einen Momentanwert ein, der in der Steuereinheit 28'''' aufgrund einer Daten konsumierenden Steueranweisung K1 einer Eingangsvariable in1 zugewiesen wird.
  • Die vorstehend beschriebene Verarbeitungsreihenfolge der einzelnen Steueranweisungen E1, E2, K1, K2 ist in Teilfigur 6b mit Hilfe eines Abhängigkeitsgraphen 234, der eine Vielzahl von Verarbeitungszuordnungen 236 aufweist, dargestellt. Eine erste Verarbeitungszuordnung 238 ordnet die Daten erzeugende Steueranweisung E1 der Daten konsumierenden Steueranweisung K2 zu. Eine zweite Verarbeitungszuordnung 240 ordnet die Daten erzeugende Steueranweisung E2 der Daten konsumierenden Steueranweisung K1 zu. Des Weiteren hängt die Daten erzeugende Steueranweisung E2 von der Daten konsumierenden Steueranweisung K2 und die Daten erzeugende Steueranweisung E1 von der Daten konsumierenden Steueranweisung K1 ab, was durch eine dritte Verarbeitungszuordnung 242 und eine vierte Verarbeitungszuordnung 244 dargestellt ist. Die Verarbeitungszuordnungen 236 werden dabei nach folgenden Regeln ermittelt: Eine Daten konsumierende Steueranweisung hängt von einer Daten erzeugenden Steueranweisung dann ab, wenn die Daten konsumierende Steueranweisung eine Variable enthält, die ebenfalls in der Daten erzeugenden Steueranweisung enthalten ist. Eine Daten erzeugende Steueranweisung hängt von einer Daten konsumierenden Steueranweisung dann ab, beide Steueranweisungen zur selben Einheit, beispielsweise der Steuereinheit 28'''' gehören.
  • In der Abhängigkeit der Verarbeitungszuordnungsdaten, die die Verarbeitungszuordnungen 236 repräsentieren, können Konfigurationsdaten ermittelt werden. Hierzu wird wie folgt vorgegangen: Nachdem in einem ersten Schritt die Daten erzeugenden und Daten konsumierenden Steueranweisungen der zu betrachtenden Signalverarbeitungskette festgelegt und die Verarbeitungszuordnungen zwischen den einzelnen Steueranweisungen ermittelt sind, werden in einem zweiten Schritt die für diese Steueranweisungen geltenden Zykluszeiten ermittelt. Dabei wird von den für die Sicherheitssteuerung vordefinierten Zykluszeiten ausgegangen. Im vorliegenden Beispiel ist für die Steuereinheit 28'''' eine Zykluszeit von 20 Millisekunden vordefiniert. Für das Ein-/Ausgabegerät 232 ist dagegen keine Zykluszeit vordefiniert. Folglich gilt sowohl für die Daten erzeugende Steueranweisung E1 als auch für die Daten konsumierende Steueranweisung K1 eine Zykluszeit von 20 Millisekunden. Ausgehend von denjenigen Steueranweisungen, für die vordefinierte Zykluszeiten gelten, werden die Zykluszeiten für diejenigen Steueranweisungen ermittelt, für die keine vordefinierten Steueranweisungen gelten. Im vorliegenden Beispiel handelt es sich hierbei um die beiden Steueranweisungen E2 und K2.
  • Hierbei wird folgender Mechanismus angewandt: Ausgehend von einer Daten konsumierenden Steueranweisung, für die eine Zykluszeit vordefiniert ist, werden entgegen der durch die Verarbeitungszuordnungen vorgegebenen Verarbeitungsrichtungen, also rückwärts, diejenigen Daten erzeugenden und Daten konsumierenden Steueranweisungen ermittelt, die ausgehend von besagter Daten konsumierenden Steueranweisung direkt erreichbar sind. Für diese Steueranweisungen gilt ebenfalls die vordefinierte Zykluszeit. Dabei wird so lange verfahren, bis sich keine Änderung mehr ergibt. Im vorliegenden Beispiel ist für die Daten konsumierende Steueranweisung K1 die Daten erzeugende Steueranweisung E2 direkt erreichbar. Somit gilt auch für diese Steueranweisung die Zykluszeit 20 Millisekunden. Ausgehend von einer Daten erzeugenden Steueranweisung, für die eine Zykluszeit vordefiniert ist, werden entsprechend der durch die Verarbeitungszuordnungen vorgegebenen Verarbeitungsrichtungen, also vorwärts, diejenigen Daten erzeugenden und Daten konsumierenden Steueranweisungen ermittelt, die ausgehend von besagter Daten erzeugenden Steueranweisung direkt erreichbar sind. Für diese Steueranweisungen gilt ebenfalls die vordefinierte Zykluszeit. Dabei wird so lange verfahren, bis sich keine Änderung mehr ergibt. Im vorliegenden Beispiel ist für die Daten erzeugende Steueranweisung E1 die Daten konsumierende Steueranweisung K2 direkt erreichbar. Somit gilt auch für diese Steueranweisung die Zykluszeit 20 Millisekunden.
  • Sofern für eine Anzahl der Daten erzeugenden oder Daten konsumierenden Steueranweisungen jeweils eine Vielzahl von Zykluszeiten ermittelt werden, ist für jede einzelne dieser Steueranweisungen eine Basiszykluszeit zu ermitteln. Die Basiszykluszeit ergibt sich dabei jeweils als größter gemeinsamer Teiler der einzelnen Zykluszeiten. Das Erfordernis, Basiszykluszeiten zu ermitteln, ist vorwiegend dann gegeben, wenn Daten erzeugende und Daten konsumierende Steueranweisungen mehrerer miteinander verbundener Signalverarbeitungsketten betrachtet werden. Bei der Ermittlung von Basiszykluszeiten sind Randbedingungen, wie beispielsweise minima le und maximale Zykluszeiten und die Reaktionszeit der Sicherheitssteuerung zu berücksichtigen. Im vorliegenden Beispiel ist keine Basiszykluszeit zu ermitteln.
  • In einem weiteren Schritt wird eine Terminierungszykluszeit ermittelt. Diese ergibt sich als größter gemeinsamer Teiler der Zykluszeiten, ggf. der Basiszykluszeiten aller betrachteten Daten erzeugenden und Daten konsumierenden Steueranweisungen. Durch die Terminierungszykluszeit sind die einzelnen Zeitpunkte definiert, zu denen die Daten der betrachteten Daten erzeugenden Steueranweisungen spätestens vorliegen müssen, um ein deterministisches Verhalten der Sicherheitssteuerung zu erreichen. Vorteilhafterweise ist die Terminierungszykluszeit für ein Projekt insgesamt einheitlich. Es ist aber auch denkbar, innerhalb eines Projektes mehrere Terminierungszykluszeiten zuzulassen. Diese müssen dann allerdings im Verhältnis ganzer Zahlen zueinander stehen. Basis ist dabei die minimale Terminierungszykluszeit. Dies ist beispielsweise dann von Bedeutung, wenn innerhalb einer Sicherheitssteuerung eine Steuerungshardwarekomponente eingesetzt wird, die eine hohe minimale Terminierungszykluszeit aufweist. In diesem Fall soll verhindert werden, dass die übrigen Komponenten der Sicherheitssteuerung in ihrer Bearbeitungsgeschwindigkeit beeinträchtigt werden. Vorteilhafterweise kann auch eine Terminierungszykluszeit zugelassen werden, die kleiner als der größte gemeinsame Teiler ist. Im vorliegenden Beispiel beträgt die Terminierungszykluszeit 20 Millisekunden.
  • In einem weiteren Schritt werden für die betrachteten Daten erzeugenden Steueranweisungen jeweils Gültigkeitszeitdauern ermittelt. Vorteilhafterweise entspricht die jeweilige Gültigkeitszeitdauer der jeweiligen Zykluszeit, ggf. der jeweiligen Basiszykluszeit der Daten erzeugenden Steueranweisung. Dabei ist allerdings darauf zu achten, dass zyklische Abhängigkeiten aufgelöst werden. Es darf also nicht der Fall vorliegen, dass für alle betrachteten Daten erzeugenden Steueranweisungen die Gültigkeitszeitdauern zum selben Terminierungszyklus enden. Wäre dies der Fall, würde dies zu einer gegenseitigen Blockierung der Steueranweisungen führen. Eine zyklische Abhängigkeit wird dadurch aufgelöst, dass beispielsweise für eine der Daten erzeugenden Steueranweisungen die Gültigkeitszeitdauer verdoppelt wird. Im vorliegenden Beispiel haben beide Daten erzeugenden Steueranweisungen E1 und E2 jeweils eine Gültigkeitszeitdauer von 20 Millisekunden. Folglich liegt eine zyklische Abhängigkeit vor. Diese wird beispielsweise dadurch aufgelöst, dass die Gültigkeitszeitdauer für die Daten erzeugende Steueranweisung E1 auf 40 Millisekunden erhöht wird.
  • In einem weiteren Schritt werden für die betrachteten Daten konsumierenden Steueranweisungen die jeweiligen Wartezeitdauern ermittelt. Der Wert der Wartezeitdauer ergibt sich dabei als halber Wert der jeweiligen Zykluszeit, ggf. der jeweiligen Basiszykluszeit der jeweiligen Steueranweisung. Im vorliegenden Beispiel beträgt die Wartezeitdauer für die Daten konsumierende Steueranweisung K1 10 Millisekunden. Die Wartezeitdauer der Daten konsumierenden Steueranweisung K2 beträgt ebenfalls 10 Millisekunden.
  • Aus den Verarbeitungszuordnungsdaten lassen sich somit folgende Konfigurationsdaten ermittelt: die Terminierungszykluszeit, die Zykluszeiten bzw. Basiszykluszeiten der einzelnen Steueranweisungen, die Gültigkeitszeitdauern für die Daten erzeugenden Steueranweisungen und die Wartezeitdauern für die Daten konsumierenden Steueranweisungen.
  • Da im vorliegenden Beispiel die Steuereinheit 28'''' und das Ein-/Ausgabegerät 32 eine bauliche Einheit bilden, umfassen die Konfigurationsdaten keine Synchronisationsdaten. Für den Fall, dass die für eine Signalverarbeitungskette betrachteten Daten erzeugenden und Daten konsumierenden Steueranweisungen auf mehrere Steuerungshardwarekomponenten einer Sicherheitssteuerung aufgeteilt sind, werden in Abhängigkeit der Bearbeitungszuordnungsdaten auch Synchronisationsdaten ermittelt.
  • In Abhängigkeit von Programmmodulzuordnungsdaten werden Datenrahmenzuweisungsdaten ermittelt.
  • Somit können die Konfigurationsdaten in Abhängigkeit von Zuordnungsdaten umfassend ermittelt werden.
  • Der im Zusammenhang mit den Teilfiguren 6a und 6b beschriebenen Mechanismus wird von dem Computerprogramm 114 automatisch, d. h. selbsttätig abgearbeitet. Somit werden die Konfigurationsdaten automatisch ermittelt. Selbstverständlich kann dieser Mechanismus auf eine beliebige Vielzahl von Steueranweisungen angewandt werden. Beispielsweise auf die in einem Programmmodul enthaltenen Steueranweisungen. Somit können die Konfigurationsdaten auf die einzelnen Programmmodule bezogen ermittelt werden. Es ist aber auch denkbar, diesen Mechanismus einmalig auf sämtliche Steueranweisungen des Anwenderprogramms anzuwenden.
  • Mit dem vorstehend beschriebenen Mechanismus werden folgende Konfigurationsdaten für einen Datenbusmanager ermittelt: Eine Gültigkeitszeitdauer, Daten mit denen sich die einzelnen Uhren der einzelnen Steuerungshardwarekomponenten synchronisieren lassen und Daten, mit denen sich die einzelnen Timer Interrupts der einzelnen Steuerungshardwarekomponenten synchronisieren lassen.
  • Vorzugsweise wird vorstehend beschriebener Mechanismus für die Konfiguration von Kommunikationsbeziehungen angewandt, die der Übertragung von Echtzeitdaten dienen.
  • Das in 7 dargestellte Flussdiagramm zeigt den Ablauf des neuen Verfahrens. Gemäß einem Schritt 250 werden Anlagensoftwarekomponenten bereitgestellt. In einem nachfolgenden Schritt 252 werden die Anlagensoftwarekomponenten verknüpft. Daran schließt sich ein Schritt 254 an, in dem für die in den Anlagensoftwarekomponenten enthaltenen Aspektblöcke ein I/O-Mapping durchgeführt wird. In einem nachfolgenden Schritt 256 werden Steuerungssoftwarekomponenten bereitgestellt. In einem sich anschließenden Schritt 258 werden die Anlagensoftwarekomponenten den Steuerungssoftwarekomponenten zugeordnet. In einem weiteren Schritt 260 werden Steuerungsparameterwerte vordefiniert. Beispielsweise werden Werte für Zykluszeiten und Abtastraten vorgegeben oder die Reaktionszeit der Sicherheitssteuerung definiert. Wobei die Reaktionszeit diejenige Zeit ist, die vom Erkennen eines Eingangssignals bis zur Änderung eines damit verknüpften Ausgangssignals vergeht. In einem weiteren Schritt 262 werden Zuordnungsdaten ermittelt. Die Zuordnungsdaten umfassen dabei Programmmodulzuordnungsdaten und Verarbeitungszuordnungsdaten. Die Programmmodulzuordnungsdaten repräsentieren dabei beispielsweise von dem Programmierer des Anwenderprogramms vorgenommene Programmmodulzuordnungen. Die Programmmodulzuordnungsdaten können aber auch in Abhängigkeit von Datenverarbeitungskennzahlen ermittelte Programmmodulzuordnungen repräsentieren. Die Verarbeitungszuordnungsdaten repräsentieren dabei eine Anzahl von Verarbeitungszuordnungen, die für zumindest einen Teil der Steueranweisungen eine Verarbeitungsreihenfolge der einzelnen Steueranweisungen definieren. In einem nachfolgenden Schritt 264 werden Konfigurationsdaten in Abhängigkeit der Zuordnungsdaten ermittelt. In einem Schritt 266 werden dann die Konfigurationsdaten auf den Datenbusmanager und die einzelnen Steuerungshardwarekomponenten verteilt. Je nachdem, nach welcher Vorgehensweise das Verteilen der Konfigurationsdaten erfolgt, schließt sich der Schritt 266 nicht unmittelbar an den Schritt 264 an. Werden die Konfigurationsdaten unter Einsatz eines mobilen Speichermediums verteilt, so wird zwischen dem Schritt 264 und dem Schritt 266 ein Schritt 268 ausgeführt, in welchem die Konfigurationsdaten und die Zuordnungsdaten auf dem mobilen Speichermedium gespeichert werden.
  • Die neue Sicherheitssteuerung und das neue Verfahren ermöglichen ein automatisches Ermitteln der Konfigurationsdaten für die Kommunikationsbeziehungen einer Sicherheitssteuerung und somit ein automatisches Einrichten des zeitlichen Zusammenspiels der in einer Sicherheitssteuerung enthaltenen Steuerungshardwarekomponenten. Was das automatische Ermitteln der Konfigurationsdaten angeht, ist das Augemerk dabei darauf gerichtet, zum einen kurze Reaktionszeiten der Sicherheitssteuerung zu ermöglichen und zum anderen einen möglichen Jitter in der Prozesszeit zu minimieren.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - Norm EN 954-1 [0005]
    • - Norm IEC 61508 [0005]
    • - Norm EN ISO 13849-1 [0005]
    • - Norm EN 954-1 [0005]
    • - Norm IEC 61508 [0005]

Claims (15)

  1. Sicherheitssteuerung zum Steuern einer automatisierten Anlage (10) gemäß einem in ihr ablaufenden Anwenderprogramm, mit einer Vielzahl von Steuerungshardwarekomponenten (26), wobei zumindest ein Teil der Steuerungshardwarekomponenten (26) jeweils eine Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') aufweist, wobei die Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') jeweils dazu ausgebildet ist, Daten zu empfangen und zu versenden, mit einem Datenbus (34, 116), an den die Vielzahl von Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) über die jeweilige Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') zum Austausch von Daten angeschlossen sind, mit einer Konfigurationsschnittstelle (124, 130, 136), die dazu ausgebildet ist, Konfigurationsdaten (58) zu empfangen, wobei die Konfigurationsdaten (58) in Abhängigkeit von Zuordnungsdaten (120) ermittelt sind, und wobei die Konfigurationsdaten (58) zumindest eine Eigenschaft des Datenbusses (34, 116) oder zumindest einer Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') festlegen.
  2. Sicherheitssteuerung nach Anspruch 1, dadurch gekennzeichnet, dass das Anwenderprogramm aus einer Vielzahl von Programmmodulen aufgebaut ist, wobei die Zuordnungsdaten Programmmodulzuordnungsdaten umfassen, wobei die Programmmodulzuordnungsdaten eine Anzahl von Programmmodulzuordnungen (194, 196) repräsentieren, wobei die Programmmodulzuordnungen (194, 196) jeweils definieren, welcher Steuerungshardwarekomponente (26) das jeweilige Programmmodul zugeordnet ist.
  3. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Anwenderprogramm aus einer Vielzahl von Steueranweisungen (E1, E2, K1, K2) besteht, wobei die Zuordnungsdaten (120) Verarbeitungszuordnungsdaten umfassen, wobei die Verarbeitungszuordnungsdaten eine Anzahl von Verarbeitungszuordnungen (238, 240, 242, 244) repräsentieren, wobei die Verarbeitungszuordnungen (238, 240, 242, 244) für zumindest einen Teil der Steueranweisungen (E1, E2, K1, K2) eine Verarbeitungsreihenfolge der einzelnen Steueranweisungen (E1, E2, K1, K2) definieren.
  4. Sicherheitssteuerung nach Anspruch 3, dadurch gekennzeichnet, dass die Vielzahl von Steueranweisungen (E1, E2, K1, K2) eine Vielzahl von Daten erzeugenden Steueranweisungen (E1, E2) und eine Vielzahl von Daten konsumierenden Steueranweisungen (K1, K2) umfassen, wobei beim Ermitteln der Verarbeitungszuordnungsdaten berücksichtigt ist, ob es sich um Daten konsumierende Steueranweisungen (K1, K2) oder um Daten erzeugende Steueranweisungen (E1, E2) handelt.
  5. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Konfigurationsdaten (58) ferner in Abhängigkeit einer Anzahl von vordefinierten Steuerungsparameterwerten ermittelt sind.
  6. Sicherheitssteuerung nach Anspruch 6, dadurch gekennzeichnet, dass es sich bei den berücksichtigten Steuerungsparametern um zumindest einen der folgenden Steuerungsparameter handelt: einen ersten Steuerungsparameter, der eine Reaktionszeit repräsentiert, einen zweiten Steuerungsparameter, der eine Zykluszeit repräsentiert, und einen dritten Steuerungsparameter, der eine Abtastrate repräsentiert.
  7. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Konfigurationsdaten (58) ferner in Abhängigkeit einer Anzahl von Datenverarbeitungskennzahlen ermittelt sind.
  8. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Zuordnungsdaten (120), insbesondere die Programmmodulzuordnungsdaten in Abhängigkeit der Anzahl von Datenverarbeitungskennzahlen ermittelt sind.
  9. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein Teil der Steuerungshardwarekomponenten (26) jeweils einen Datenspeicher (52, 52', 52'', 52''', 52'''') aufweist, wobei die Datenspeicher (52, 52', 52'', 52''', 52'''') jeweils dazu ausgebildet sind, ihnen jeweils zugeführte Daten zu speichern, wobei die Sicherheitssteuerung (24) ferner eine Verteileinheit (52, 128) aufweist, wobei die Verteileinheit (52, 128) dazu ausgebildet ist, zumindest einen Teil der Konfigurationsdaten (58) über den Datenbus (34, 116) auf zumindest einen Teil der Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) zu verteilen.
  10. Sicherheitssteuerung nach Anspruch 9, dadurch gekennzeichnet, dass zumindest ein Teil der Konfigurationsdaten (58) redundant in den Datenspeichern (52, 52', 52'', 52''', 52'''') gespeichert ist.
  11. Sicherheitssteuerung nach einem Anspruch 9 oder 10, dadurch gekennzeichnet, dass es sich bei der Verteileinheit (52, 128) um einen der Datenspeicher (52) handelt.
  12. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Konfigurationsdaten (58) in eine Vielzahl von Datenblöcke (56, 56', 56'', 56''', 56'''', 118) aufgeteilt sind, wobei zumindest ein Datenblock (118) dem Datenbus zugeordnet ist und die restlichen Datenblöcke (56, 56', 56'', 56''', 56'''') jeweils zumindest einer der Datenbusschnittstellen (46, 46', 46'', 46''', 46'''') zugeordnet sind.
  13. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass es sich bei den Konfigurationsdaten (58) um folgende Daten handelt: – Gültigkeitszeitdaten, die eine Gültigkeitszeitdauer repräsentieren, während der erzeugte Daten gültig sind, und/oder – Wartezeitdaten, die eine Wartezeitdauer repräsentieren, während der eine Daten konsumierende Steueranweisung (K1, K2) auf von ihr zu konsumierende Daten wartet, und/oder – Terminierungszykluszeitdaten, die eine Terminierungszykluszeit repräsentieren, wobei die Terminierungszykluszeit einer Vielzahl von Steueranweisungen (E1, E2, K1, K2) zugrunde liegt, und/oder – Synchronisationsdaten, in deren Abhängigkeit die Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) synchronisierbar sind, und/oder – Datenrahmenzuweisungsdaten, die eine Anzahl von Datenrahmenzuweisungen repräsentieren, wobei die Datenrahmenzuweisungen für zumindest eine der Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) diejenigen Datenfelder innerhalb eines für den Datenbus (34, 116) spezifizierten Datenrahmens definieren, die der Steuerungshardwarekomponente (26, 28, 80, 82, 90, 92) für die von ihr zu sendenden Daten und für die von ihr zu empfangenden Daten zugewiesen sind.
  14. Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung (24), die dazu ausgebildet ist, eine automatisierte Anlage (10) gemäß einem in ihr ablaufenden Anwenderprogramm zu steuern, wobei die Sicherheitssteuerung (24) aus einer Vielzahl von Steuerungshardwarekomponenten (26) aufgebaut ist und einen Datenbus (34, 116) umfasst, wobei zumindest ein Teil der Steuerungshardwarekomponenten (26) jeweils eine Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') aufweist, wobei die Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') jeweils dazu ausgebildet ist, Daten zu empfangen und zu versenden, und wobei die Vielzahl von Steuerungshardwarekomponenten (26, 28, 80, 82, 90, 92) über die jeweilige Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') an den Datenbus (34, 116) zum Austausch von Daten angeschlossen sind, mit den Schritten: – Ermitteln von Zuordnungsdaten (120), und – Ermitteln von Konfigurationsdaten (58) in Abhängigkeit der Zuordnungsdaten (120), wobei die Konfigurationsdaten (58) zumindest eine Eigenschaft des Datenbusses (34, 116) oder zumindest einer Datenbusschnittstelle (46, 46', 46'', 46''', 46'''') festlegen.
  15. Computerprogramm mit Programmcodemitten zum Durchführen eines Verfahrens nach Anspruch 14, wenn das Computerprogramm (114) auf einem Computer (110) ausgeführt wird.
DE102009019088A 2009-04-20 2009-04-20 Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung Withdrawn DE102009019088A1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE102009019088A DE102009019088A1 (de) 2009-04-20 2009-04-20 Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
EP10717544.0A EP2422243B1 (de) 2009-04-20 2010-04-20 Sicherheitssteuerung zum steuern einer automatisierten anlage und verfahren zum erstellen eines anwenderprogramms für eine sicherheitssteuerung
CN201080027566.3A CN102549508B (zh) 2009-04-20 2010-04-20 用于控制自动化设备的安全控制装置和用于为安全控制装置创建应用程序的方法
JP2012506393A JP2012524354A (ja) 2009-04-20 2010-04-20 自動化システムを制御する安全コントローラおよびユーザプログラムを生成する方法
PCT/EP2010/002437 WO2010121797A1 (de) 2009-04-20 2010-04-20 Sicherheitssteuerung zum steuern einer automatisierten anlage und verfahren zum erstellen eines anwenderprogramms für eine sicherheitssteuerung
US13/275,855 US9188964B2 (en) 2009-04-20 2011-10-18 Safety controller for controlling an automated installation and method for generating a user program for a safety controller
HK12107172.1A HK1166525A1 (en) 2009-04-20 2012-07-23 Safety controller for an automated plant and method for creating an application program for a safety controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102009019088A DE102009019088A1 (de) 2009-04-20 2009-04-20 Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung

Publications (1)

Publication Number Publication Date
DE102009019088A1 true DE102009019088A1 (de) 2010-11-11

Family

ID=42272626

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009019088A Withdrawn DE102009019088A1 (de) 2009-04-20 2009-04-20 Sicherheitssteuerung zum Steuern einer automatisierten Anlage und Verfahren zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung

Country Status (7)

Country Link
US (1) US9188964B2 (de)
EP (1) EP2422243B1 (de)
JP (1) JP2012524354A (de)
CN (1) CN102549508B (de)
DE (1) DE102009019088A1 (de)
HK (1) HK1166525A1 (de)
WO (1) WO2010121797A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014221788A1 (de) * 2014-10-27 2016-04-28 Zumtobel Lighting Gmbh Gebäudetechnik-Bussystem zum Betrieb von Gebäudetechnik-Geräten

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009019096A1 (de) * 2009-04-20 2010-11-04 Pilz Gmbh & Co. Kg Sicherheitssteuerung und Verfahren zum Steuern einer automatisierten Anlage
EP2375636A1 (de) * 2010-03-29 2011-10-12 Sick Ag Vorrichtung und Verfahren zum Konfigurieren eines Bussystems
DE102010025515A1 (de) * 2010-06-29 2011-12-29 Phoenix Contact Gmbh & Co. Kg Kommunikationssystem zum Verbinden von Feldgeräten mit einer überlagerten Steuereinrichtung
EP2605096B1 (de) * 2011-12-14 2014-03-19 Siemens Aktiengesellschaft Sicherheitsgerichtete Steuerung in Kombination mit Cloud-Computing
EP2790078A1 (de) * 2013-04-09 2014-10-15 Siemens Aktiengesellschaft Manipulationssicheres Regeln einer Prozess- und/oder Fertigungs- und/oder Stellanlage
FR3005142B1 (fr) * 2013-04-24 2015-05-22 Dalkia France Systeme et procede de controle d'une installation sous pression, et installation equipee d'un tel systeme
EP2874030A1 (de) * 2013-11-19 2015-05-20 Siemens Aktiengesellschaft Automatisierungssystem
DE102014001462B4 (de) * 2014-02-05 2021-02-04 Festo Se & Co. Kg Feldbusmodul, Maschinensteuerung und Verfahren zur Parametrierung eines, insbesondere sicherheitsgerichteten, Feldbusmoduls
US20170082998A1 (en) * 2014-04-22 2017-03-23 Siemens Aktiengesellschaft Monitoring of failure tolerance for an automation installation
DE102015120314A1 (de) * 2015-11-24 2017-05-24 Pilz Gmbh & Co. Kg Verfahren zum Programmieren einer Sicherheitssteuerung
DE102016102282B4 (de) * 2016-02-10 2024-01-04 Phoenix Contact Gmbh & Co. Kg Verfahren und Vorrichtung zum Überwachen einer Datenverarbeitung und -übertragung in einer Sicherheitskette eines Sicherheitssystems
CN106737676B (zh) * 2016-12-28 2019-03-15 南京埃斯顿机器人工程有限公司 一种基于脚本可二次开发的工业机器人编程系统
EP3590038B1 (de) * 2017-03-16 2023-05-03 Siemens Aktiengesellschaft Verfahren und system für vorrichtungsbasiertes engineering von speicherprogrammierbaren steuergeräten (plc)
WO2018208984A1 (en) * 2017-05-09 2018-11-15 Brain Corporation System and method for motion control of robots
EP3611579A1 (de) * 2018-08-13 2020-02-19 Siemens Aktiengesellschaft Echtzeit-automatisierungseinrichtung mit einem echtzeit-datenbus
DE102018129354A1 (de) * 2018-11-21 2020-05-28 Phoenix Contact Gmbh & Co. Kg Verfahren zum Bearbeiten von Anwendungsprogrammen auf einem verteilten Automatisierungssystem
JP7087952B2 (ja) * 2018-11-22 2022-06-21 オムロン株式会社 制御システム、サポート装置、サポートプログラム
CN111708330B (zh) * 2020-06-10 2022-02-18 杭州凯尔达机器人科技股份有限公司 机器人数据传输系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282906A (ja) * 1990-03-30 1991-12-13 Omron Corp 分散制御システム用プログラマブルコントローラ
JPH04213299A (ja) * 1990-12-10 1992-08-04 Omron Corp 制御機器情報設定表示システム
JPH08328616A (ja) * 1995-05-31 1996-12-13 Nec Corp バッファの多重化による制御タイミングの調整方法および調整装置
US5781752A (en) * 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
DE19906695A1 (de) * 1999-02-18 2000-08-31 Wratil Peter Verfahren zur automatischen Dezentralisierung von Programmen in Steuerungseinrichtungen und zur Verteilung von Intelligenz
DE10025085A1 (de) * 2000-05-20 2001-12-06 Peter Wratil Modul zur Steuerung oder Regelung von sicherheitsrelevanten Vorgängen oder Abläufen für den Betrieb von Maschinen oder Anlagen
DE10108962A1 (de) * 2001-02-20 2002-09-12 Pilz Gmbh & Co Verfahren und Vorrichtung zum Programmieren einer Sicherheitssteuerung
US6889172B2 (en) * 2001-08-15 2005-05-03 National Instruments Corporation Network-based system for configuring a measurement system using software programs generated based on a user specification
JP2003186507A (ja) * 2001-12-18 2003-07-04 Hitachi Ltd 分散制御システム
JP4147379B2 (ja) * 2002-03-15 2008-09-10 オムロン株式会社 制御装置及びシステム
US20060056285A1 (en) * 2004-09-16 2006-03-16 Krajewski John J Iii Configuring redundancy in a supervisory process control system
DE102004063213B4 (de) 2004-12-24 2006-11-23 Pilz Gmbh & Co. Kg Steuerungssystem mit einer Vielzahl von räumlich verteilten Stationen sowie Verfahren zum Übertragen von Daten in einem solchen Steuerungssystem
CN1288527C (zh) * 2005-01-10 2006-12-06 北京太极英泰信息科技有限公司 计算机安全控制装置及其安全保护控制方法
WO2007075097A1 (en) 2005-12-26 2007-07-05 Siemens Aktiengesellschaft Processing unit and method for configuring a networked automation system
JP4759048B2 (ja) * 2006-04-07 2011-08-31 三菱電機株式会社 制御システム
CN101001314A (zh) * 2006-12-30 2007-07-18 深圳创维-Rgb电子有限公司 一种电视机系统保护方法和安全控制装置
JP4962725B2 (ja) * 2007-08-07 2012-06-27 オムロン株式会社 マルチplc・分散制御システムにおけるツール装置
CN201111056Y (zh) * 2007-10-16 2008-09-03 吴晓明 计算机信息安全控制装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Norm EN ISO 13849-1
Norm IEC 61508

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014221788A1 (de) * 2014-10-27 2016-04-28 Zumtobel Lighting Gmbh Gebäudetechnik-Bussystem zum Betrieb von Gebäudetechnik-Geräten

Also Published As

Publication number Publication date
CN102549508B (zh) 2015-12-02
WO2010121797A1 (de) 2010-10-28
US9188964B2 (en) 2015-11-17
EP2422243B1 (de) 2013-06-19
EP2422243A1 (de) 2012-02-29
CN102549508A (zh) 2012-07-04
HK1166525A1 (en) 2012-11-02
US20120078392A1 (en) 2012-03-29
JP2012524354A (ja) 2012-10-11

Similar Documents

Publication Publication Date Title
EP2422243B1 (de) Sicherheitssteuerung zum steuern einer automatisierten anlage und verfahren zum erstellen eines anwenderprogramms für eine sicherheitssteuerung
EP2098926B1 (de) Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung
EP2353051A1 (de) Verfahren und vorrichtung zum erstellen eines anwenderprogramms für eine sicherheitssteuerung
WO2013171234A1 (de) Verfahren zur überwachung, steuerung und datenerfassung von systemkomponenten eines service-orientierten automatisierungssystems sowie service-orientiertes automatisierungssystem zur durchführung des verfahrens
EP2356527B1 (de) Sicherheitssteuerung und verfahren zum steuern einer automatisierten anlage mit einer vielzahl von anlagenhardwarekomponenten
DE102009019089A1 (de) Verfahren und Vorrichtung zum Erstellen eines Anwenderprogramms für eine Sicherheitssteuerung
EP3098673B1 (de) Verfahren und vorrichtung zur automatischen validierung von sicherheitsfunktionen an einem modular aufgebauten sicherheitssystem
EP2098925A1 (de) Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung
EP2422248B1 (de) System und verfahren zum verteilen von projektdaten einer sicherheitssteuerung einer automatisierten anlage auf die steuerungskomponenten
EP2407842B1 (de) Verfahren zur Inbetriebnahme von Maschinen oder Maschinen einer Maschinenserie und Projektierungssystem
EP2732347B1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
EP1137972B1 (de) Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
EP2808749B1 (de) Verfahren zum Austausch von Steuerungsinformationen zwischen Bedien- und Beobachtungsgeräten eines industriellen Automatisierungssystems und industrielles Automatisierungssystem
EP2098928A1 (de) Verfahren und Vorrichtung zum Programmieren und/oder Konfigurieren einer Sicherheitssteuerung
EP2557464B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
EP3977301A1 (de) Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage
EP3420426A1 (de) Vorrichtung und verfahren zur anpassung einer numerischen steuerung an eine zu steuernde maschine
EP3295265A1 (de) Bedienmodul für eine maschine in der lebensmittelindustrie
EP2090948A1 (de) Automatisierungssystem und Verfahren zum Betrieb eines solchen Automatisierungssystems
DE102017123911A1 (de) Verfahren und Vorrichtung zum Überwachen der Reaktionszeit einer durch ein Sicherheitssystem bereitgestellten Sicherheitsfunktion
DE10055168A1 (de) Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte
EP1431898A2 (de) Automatisierungssystem und Verfahren zum Betrieb eines Automatisierungssystems
LU500646B1 (de) Technik zur Bereitstellung einer Diagnosefunktionalität für eine auf einer speicherprogrammierbaren Steuerung basierenden Anwendung
DE102021123596A1 (de) Technik zur Bereitstellung einer Diagnosefunktionalität für eine auf einer speicherprogrammierbaren Steuerung basierenden Anwendung
EP2386920A1 (de) Verfahren zum Auswerten von Diagnosemeldungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R120 Application withdrawn or ip right abandoned
R120 Application withdrawn or ip right abandoned

Effective date: 20140704