-
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:
-
Die
Ein- und Ausgänge des Ein-/Ausgabegerät
232 sind
wie folgt definiert:
-
Daraus
ergibt sich folgendes I/O-Mapping:
-
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]