Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SAFETY-RELATED CONTROL UNIT, AND METHOD FOR CONTROLLING AN AUTOMATED SYSTEM
Document Type and Number:
WIPO Patent Application WO/2010/121796
Kind Code:
A1
Abstract:
The invention relates to a safety-related control unit for controlling an automated system (12) according to an application program (34) running therein, said system (12) comprising a plurality of sensors (16) and a plurality of actuators (14). The application program (34) includes a plurality of control instructions (44, 46, 48) for controlling the actuators (14). The safety-related control unit comprises a first processor (20) that is designed to execute at least some of the control instructions (44) by processing a plurality of first program variables and determine a first test value (CRCFSV1A(n)) for at least one of the first program variables (FSV1A) in accordance with a current value (FSV1A(n)) for said first program variable (FSV1A) at a first defined point in time, a second processor (22) that is designed to execute at least some of the control instructions (48) by processing a plurality of second program variables and determine a second test value (CRCFSV1B(n)) corresponding to the first test value (CRCFSV1A(n)), and a data memory (92) that is designed to store the first test value (CRCFSV1A(n)) and the second test value (CRCFSV1B(n)). The invention further relates to a corresponding method and a corresponding computer program product.

Inventors:
MOOSMANN PETER (DE)
Application Number:
PCT/EP2010/002436
Publication Date:
October 28, 2010
Filing Date:
April 20, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PILZ GMBH & CO KG (DE)
MOOSMANN PETER (DE)
International Classes:
G05B19/05; G05B9/03
Foreign References:
DE19802728A11999-07-29
DE202006016012U12006-12-21
Other References:
None
Attorney, Agent or Firm:
DUHME, Torsten et al. (DE)
Download PDF:
Claims:
Patentansprüche

1. Sicherheitssteuerung zum Steuern einer automatisierten Anlage (12) gemäß einem in ihr ablaufenden Anwenderprogramm (34), wobei die Anlage (12) eine Vielzahl von Sensoren (16) und eine Vielzahl von Aktuatoren (14) umfasst, wobei das Anwenderprogramm (34) eine Vielzahl von Steueranweisungen (44, 46, 48) zum Steuern der Aktuatoren (14) umfasst,

mit einem ersten Prozessor (20), der dazu ausgebildet ist, durch Verarbeiten einer Vielzahl von ersten Programmvariablen zumindest einen Teil der Steueranweisungen (44) abzuarbeiten, wobei der erste Prozessor (20) weiter dazu ausgebildet ist, für zumindest eine der ersten Programmvariablen (FSVlA) einen ersten Prüfwert (CRCFSVlA(n)) in Abhängigkeit eines für diese erste Programmvariable (FSVlA) zu einem ersten definierten Zeitpunkt vorliegenden Momentanwertes (FSVlA(n) zu ermitteln,

mit einem zweiten Prozessor (22), der dazu ausgebildet ist, durch Verarbeiten einer Vielzahl von zweiten Programmvariablen zumindest einen Teil der Steuerungsanweisungen (48) abzuarbeiten, wobei der zweite Prozessor (22) weiter dazu ausgebildet ist, einen mit dem ersten Prüfwert (CRCFSV lA(n)) korrespondierenden zweiten Prüfwert (CRCFSVlB(n)) zu ermitteln,

mit einem Datenspeicher (92), der dazu ausgebildet ist, den Momentanwert (FSVlA(n), den ersten Prüfwert (CRCFSVlA(n)) und den zweiten Prüfwert (CRCFSVl B(n)) abzuspeichern.

2. Sicherheitssteuerung nach Anspruch 1, dadurch gekennzeichnet, dass der zweite Prozessor (22) weiter dazu ausgebildet ist, den zweiten Prüfwert (CRCFSVlB(n)) in Abhängigkeit eines Momentanwertes (FSVlB(n)) einer der zweiten Programmvariablen (FSVlB) zu ermitteln, wobei die zweite Pro- grammvariable (FSVlB) mit der ersten Programmvariable (FSVlA) korrespondiert.

3. Sicherheitssteuerung nach Anspruch 2, dadurch gekennzeichnet, dass der Momentanwert (FSVlA(n) der ersten Programmvariabein (FSVlA) und der Momentanwert (FSVlB(n)) der zweiten Programmvariablen (FSVlB) in demselben Taskzyklus (n) vorliegen.

4. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Sicherheitssteuerung (10) dazu ausgebildet ist, die beiden Prüfwerte (CRCFSVlA(n), CRCFSVlB(n)) diversitär zu ermitteln.

5. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Datenspeicher (92) als nicht-flüchtiger Datenspeicher ausgebildet ist.

6. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Sicherheitssteuerung (10) dazu ausgebildet ist, die beiden Prüfwerte (CRCFSVlA(n), CRCFSVlB(n)) wiederholt für aufeinanderfolgende Zeitpunkte zu ermitteln.

7. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der erste Prozessor (20) weiter dazu ausgebildet ist, einen Momentanwertvergleich durchzuführen.

8. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Sicherheitssteuerung (10) dazu ausgebildet ist, bei deren Neustart eine Gültigkeitsüberprüfung des Momentanwertes (FSVlA(n) durchzuführen, wobei die Sicherheitssteuerung (10) weiter dazu ausgebildet ist, mittels des ersten Prozessors (20) den Momentanwert (FSVlA(n) mit dem ersten Prüfwert (CRCFSVlA(n)) zu plausibiliseren und mittels des zweiten Pro- zessors (22) den Momentanwert (FSVlA(n) mit dem zweiten Prüfwert (CRCFSVlB(n)) zu plausibilisieren.

9. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Datenspeicher (92) zwei der ersten Programmvaria- beln (116) zugeordnete Speicherbereiche (130 ,132) aufweist.

10. Sicherheitssteuerung nach Anspruch 9, dass die Sicherheitssteuerung (10) dazu ausgebildet ist, den Momentanwert (FSVlA(n) und die beiden Prüfwerte (CRCFSVlA(n), CRCFSVlB(n)) abwechselnd in die beiden Speicherbereiche (130, 132) zu speichern.

11. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest einer der beiden Prozessoren (20, 22) dazu ausgebildet ist, einen Wert (SZA(n), SZB(n)) für einen Schreibzähler (SZA, SZB) zu ermitteln.

12. Sicherheitssteuerung nach Anspruch 11, dadurch gekennzeichnet, dass der erste Prozessor (20) weiter dazu ausgebildet ist, den ersten Prüfwert (CRCFSVlA(n)) in Abhängigkeit des Momentanwertes (FSVlA(n) und des Wertes (SZA(n)) des Schreibzählers (SZA) zu ermitteln.

13. Sicherheitssteuerung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass es sich bei den ersten und bei den zweiten Programmvariablen jeweils um sicherheitsrelevante Programmvariablen handelt.

14. Verfahren zum Steuern einer automatisierten Anlage (12), wobei die Anlage (12) eine Vielzahl von Sensoren (16) und eine Vielzahl von Aktuatoren (14) umfasst, mit den Schritten:

Verarbeiten einer Vielzahl von ersten Programmvariablen, Ermitteln eines ersten Prüfwerts (CRCFSVlA(n)) für zumindest eine der ersten Programmvariablen (FSVlA) in Abhängigkeit eines für diese erste Programmvariable (FSVlA) zu einem ersten definierten Zeitpunkt vorliegenden Momentanwertes (FSVlA(n)),

Verarbeiten einer Vielzahl von zweiten Programmvariablen,

Ermitteln eines mit dem ersten Prüfwert (CRCFSVlA(n)) korrespondierenden zweiten Prüfwerts (CRCFSVlB(n)),

Abspeichern des Momentanwerts (FSVlA(n)), des ersten Prüfwerts (CRCFSVl A(n)) und des zweiten Prüfwerts (CRCFSVl B(n)) in einem Datenspeicher (92).

15. Computerprogrammprodukt mit einem Datenträger mit Programmcode, der dazu ausgebildet ist, ein Verfahren nach Anspruch 14 durchzuführen, wenn der Programmcode auf einer Sicherheitssteuerung (10) nach einem der Ansprüche 1 bis 13 abläuft.

Description:
Sicherheitssteuerung und Verfahren zum Steuern einer automatisierten Anlage

Die vorliegende Erfindung betrifft eine Sicherheitssteuerung zum Steuern einer automatisierten Anlage gemäß einem in ihr ablaufenden Anwenderprogramm, wobei die Anlage eine Vielzahl von Sensoren und eine Vielzahl von Aktuatoren umfasst, wobei das Anwenderprogramm eine Vielzahl von Steueranweisungen zum Steuern der Aktuatoren umfasst.

Die Erfindung betrifft des weiteren ein Verfahren zum Steuern einer automatisierten Anlage, wobei die Anlage eine Vielzahl von Sensoren und eine Vielzahl von Aktuatoren umfasst.

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.

Wie bereits erwähnt, werden bei einer Sicherheitssteuerung extrem hohe Anforderungen an die eigene Fehlersicherheit, d.h. mit Blick auf in der Sicherheitssteuerung auftretende Fehler gestellt. Eine Maßnahme besteht beispielsweise darin, eine Sicherheitssteuerung zumindest in den Daten verarbeitenden Komponenten, wie beispielsweise den Prozessoren, redundant auszulegen. Somit wird eine größtmögliche Verfügbarkeit der Sicherheitssteuerung mit Blick auf in der Sicherheitssteuerung auftretende Fehler erzielt. Ebenso ist eine hohe Verfügbarkeit einer Sicherheitssteuerung mit Blick auf außerhalb der Sicherheitssteuerung möglicherweise auftretende Fehler wünschenswert. So sollte eine Sicherheitssteuerung beispielsweise nach einem Spannungsausfall wieder problemlos in demjenigen Zustand weiter betrieben werden, den die Sicherheitssteuerung vor dem Spannungsausfall einnahm. Aber gerade hinsichtlich der Verfügbarkeit bei außerhalb der Sicherheitssteuerung auftretenden Fehlern sind Sicherheitssteuerungen noch nicht optimal.

Es ist daher eine Aufgabe der vorliegenden Erfindung eine Sicherheitssteuerung und ein Verfahren der eingangs genannten Art weiterzubilden, um die Verfügbarkeit von Sicherheitsteuerung bezüglich außerhalb der Sicherheitssteuerung auftretender Fehler zu erhöhen und gleichzeitig die Kosten für eine Sicherheitssteuerung zu reduzieren.

Diese Aufgabe wird durch eine Sicherheitssteuerung der eingangs genannten Art gelöst, die folgende Einheiten aufweist: einen ersten Prozessor, der dazu ausgebildet ist, durch Verarbeiten einer Vielzahl von ersten Programmvariablen zumindest einen Teil der Steueranweisungen abzuarbeiten, wobei der erste Prozessor weiter dazu ausgebildet ist, für zumindest eine der ersten Programmvariablen einen ersten Prüfwert in Abhängigkeit eines für diese erste Programmvariable zu einem ersten definierten Zeitpunkt vorliegenden Momentanwertes zu ermitteln, einen zweiten Prozessor, der dazu ausgebildet ist, durch Verarbeiten einer Vielzahl von zweiten Programmvariablen zumindest einen Teil der Steuerungsanweisungen abzuarbeiten, wobei der zweite Prozessor weiter dazu ausgebildet ist, einen mit dem ersten Prüfwert korrespondierenden zweiten Prüfwert zu ermitteln, einen Datenspeicher, der dazu ausgebildet ist, den Momentanwert, den ersten Prüfwert und den zweiten Prüfwert abzuspeichern.

Die Aufgabe wird ferner durch ein Verfahren der eingangs genannten Art gelöst, bei dem folgende Schritte ausgeführt werden:

Verarbeiten einer Vielzahl von ersten Programmvariablen,

Ermitteln eines ersten Prüfwerts für zumindest eine der ersten Programmvariablen in Abhängigkeit eines für diese erste Programmvariable zu einem ersten definierten Zeitpunkt vorliegenden Momentanwertes,

Verarbeiten einer Vielzahl von zweiten Programmvariablen,

Ermitteln eines mit dem ersten Prüfwert korrespondierenden zweiten Prüfwerts,

Abspeichern des Momentanwerts, des ersten Prüfwerts und des zweiten Prüfwerts in einem Datenspeicher.

Der neuen Sicherheitssteuerung und dem neuen Verfahren liegt die Idee zugrunde, in einem Datenspeicher für eine Programmvariable einen Momentanwert und sowohl einen ersten Prüfwert, der mit einem ersten Prozessor und somit für einen ersten Kanal der Sicherheitssteuerung ermittelt wird, und einen zweiten Prüfwert, der mit einem zweiten Prozessor und somit für einen zweiten Kanal ermittelt wird, zu speichern. Somit kann bei einem Neustart, beispielsweise nach einer unerwarteten Unterbrechung des Betriebsablaufs, für beide Kanäle die Gültigkeit des noch gespeicherten Momentanwerts redundant überprüft werden. Dies erhöht die Verfügbarkeit der Sicherheitssteuerung. Da beide Prüfwerte in einem Datenspeicher gespeichert werden, reicht es aus, für lediglich einen der beiden Kanäle einen Datenspeicher vorzusehen. Es ist nicht erforderlich, für jeden der beiden Kanäle einen eigenen Datenspeicher vorzusehen. Dies reduziert die Kosten für die Realisierung einer Sicherheitsteuerung.

Die oben genannte Aufgabe ist daher vollständig gelöst.

In einer Ausgestaltung der Erfindung ist der zweite Prozessor weiter dazu ausgebildet, den zweiten Prüfwert in Abhängigkeit eines Momentanwertes einer der zweiten Programmvariablen zu ermitteln, wobei die zweite Programmvariable mit der ersten Programmvariable korrespondiert.

In einigen Varianten dieser Ausgestaltung ist sind die erste und zweite Programmvariable zueinander redundante Programmvariablen, die einen gemeinsamen Momentanwert der gesteuerten Anlage repräsentieren. Diese Maßnahme besitzt mehrere Vorteile. Zum einen werden die beiden Prüfwerte eigenständig und somit unabhängig voneinander ermittelt. Dadurch wird die Überprüfung, ob der gespeicherte Momentanwert gültig ist oder nicht, zuverlässiger. Zudem steht für jeden der beiden Kanäle ein eigener Prüfwert zur Verfügung. Für beide Kanäle kann somit eine eigenständige Gültigkeitsprüfung und Plausibilisierung des gespeicherten Momentanwerts vorgenommen werden. Diese Redundanz erhöht die Verfügbarkeit der Sicherheitssteuerung und somit der zu steuernden Anlage. In einer weiteren Ausgestaltung der zuvor genannten Maßnahme liegen der Momentanwert der ersten Programmvariabein und der Momentanwert der zweiten Programmvariablen in demselben Taskzyklus vor.

In der Regel arbeiten die Prozessoren ihr jeweiliges Steuerprogramm zyklisch ab, wobei jeder Prozessor seine Programmvariablen zyklisch wiederholt einliest. In dieser Ausgestaltung stammen die erste und zweite Programmvariable aus einem gemeinsamen Zyklus. Sie repräsentieren daher zwei weitgehend zeitgleich vorliegende Momentanwerte. Durch diese Maßnahme wird sichergestellt, dass sich die beiden Momentanwerte zeitlich einander entsprechen. Sie sind daher besser vergleichbar und es reicht aus, für eine Gültigkeitsprüfung lediglich einen Momentanwert abzuspeichern. Dies ermöglicht eine kostengünstige Dimensionierung des Datenspeichers. Der Taskzyklus ist vorteilhaft durch den ersten definierten Zeitpunkt definiert.

In einer weiteren Ausgestaltung ist die Sicherheitssteuerung dazu ausgebildet, die beiden Prüfwerte diversitär zu ermitteln.

Diese Maßnahme trägt dazu bei, die Zuverlässigkeit einer Gültigkeitsprüfung zu erhöhen. Vorzugsweise werden für die beiden Kanäle einer Sicherheitssteuerung unterschiedliche Algorithmen für das Ermitteln des jeweiligen Prüfwerts verwendet.

In einer weiteren Ausgestaltung ist der Datenspeicher als nicht-flüchtiger Datenspeicher ausgebildet.

Diese Maßnahme stellt sicher, dass der gespeicherte Momentanwert und die beiden gespeicherten Prüfwerte bei einem Neustart der Sicherheitssteuerung, insbesondere nach einer unerwarteten Unterbrechung, sofort verfügbar sind. Die Anlage kann schneller wieder in Betrieb genommen werden. Vorzugsweise ist der Datenspeicher als sogenannter Magneto-resistive Random Access Memory (MRAM) oder als Ferroe- lectric Random Access Memory (FRAM) ausgebildet. In einer weiteren Ausgestaltung ist die Sicherheitssteuerung dazu ausgebildet, die beiden Prüfwerte wiederholt für aufeinanderfolgende Zeitpunkte zu ermitteln.

Diese Maßnahme stellt sicher, dass die gespeicherten Momentanwert wiederholt aktualisiert werden. Vorzugsweise erfolgt die Aktualisierung in regelmäßigen Zeitintervallen. Die Ausgestaltung trägt vorteilhaft dazu bei, dass ein Neustart der Anlage jeweils mit recht aktuellen Werten erfolgen kann. Ein Neustart der Anlage kann daher einfacher und schneller erfolgen.

In einer weiteren Ausgestaltung der Erfindung ist der erste Prozessor weiter dazu ausgebildet, einen Momentan wertvergleich durchzuführen.

In dieser Ausgestaltung vergleicht der erste Prozessor Momentanwerte von unterschiedlichen Zeitpunkten. Diese Maßnahme ermöglicht ein optimiertes Speichern des jeweils aktuellen Momentanwerts und der beiden Prüfwerte. Der Momentanwertvergleich wird durchgeführt, um festzustellen, ob eine Änderung des Momentanwertes gegenüber einem vorhergehenden, bereits gespeicherten Momentwert vorliegt. Wird festgestellt, dass keine Änderung vorliegt, werden der aktuelle Momentanwert und die beiden aktuellen Prüfwerte nicht noch einmal zusätzlich abgespeichert. Mit anderen Worten erfolgt ein Speichern vorteilhafterweise nur dann, wenn tatsächlich eine Änderung vorliegt. Dadurch kann ein kleinerer Datenspeicher eingesetzt werden, was zu einer Kostenersparnis führt. Hinsichtlich der Arbeitsweise der Sicherheitssteuerung bewirkt diese Maßnahme eine Aufwandsoptimierung. Diese Maßnahme führt nämlich dazu, dass nicht für jeden Taskzyklus ein Momentanwert und zugehörige Prüfwerte gespeichert werden.

In einer weiteren Ausgestaltung ist die Sicherheitssteuerung dazu ausgebildet, beim Neustart eine Gültigkeitsüberprüfung des Momentanwertes durchzuführen und mittels des ersten Prozessors den Momentanwert mit dem ersten Prüfwert zu plausibi- liseren und mittels des zweiten Prozessors den Momentanwert mit dem zweiten Prüfwert zu plausibilisieren. Diese Maßnahme hat den Vorteil, dass mit nur einem Momentanwert, der zudem für nur einen der beiden Kanäle ermittelt wird, für die beiden Kanäle einer Sicherheitssteuerung eine Gültigkeitsprüfung vorgenommen werden kann. Dadurch lässt sich beispielsweise der Aufwand für das Speichern des Momentanwerts reduzieren. So reicht es aus, lediglich einen einzigen Datenspeicher bereitzustellen. Vorzugsweise ist dieser Datenspeicher demjenigen Kanal der Sicherheitssteuerung zugeordnet, in dem sowohl sicherheitsrelevante Programmvariablen als auch nicht-sicherheitsrelevante Programmvariablen verarbeitet werden.

In einer weiteren Ausgestaltung weist der Datenspeicher zwei der ersten Programmvariable zugeordnete Speicherbereiche auf.

Diese Maßnahme ermöglicht es, einen aktuellen Momentanwert und die beiden jeweils zugehörigen Prüfwerte für zwei unterschiedliche Zeitpunkte und somit zwei unterschiedliche Taskzyklen, abzuspeichern. Bevorzugt wird also eine Historie des Momentanwertes über zumindest zwei verschiedene Taskzyklen in den Speicherbereichen gespeichert. Dadurch wird die Verfügbarkeit der zu steuernden Anlage bei einem Neustart weiter erhöht. Wird bei der Gültigkeitsprüfung festgestellt, dass der zuletzt gespeicherte, aktuelleste Momentanwert nicht gültig ist und somit für die Initialisierung der Sicherheitssteuerung nicht verwendet werden kann, steht immer noch ein zuvor gespeicherter, älterer Momentanwert zur Verfügung, der vorteilhaft für den Neustart verwendet werden kann.

In einer weiteren Ausgestaltung ist die Sicherheitssteuerung dazu ausgebildet, den Momentanwert und die beiden Prüfwerte abwechselnd in die beiden Speicherbereiche zu speichern.

Diese Ausgestaltung verwendet zwei Speicherbereiche, um die Historie des Momentanwertes wechselweise zu aktualisieren. Die Ausgestaltung hält zu jedem Zeitpunkt einen aktuellsten Momentanwert (aus dem aktuellen Taskzyklus Z) in dem einen Speicherbereich und einen älteren Momentanwert (aus dem vorhergehenden Taskzyklus Z-I) in dem anderen Speicherbereich bereit. Wenn nun im nächstfolgenden Taskzyklus Z+l ein aktueller Momentan wert eingelesen wird, überschreibt diese Ausgestaltung den jeweils ältesten gespeicherten Momentan wert. Diese Ausgestaltung stellt sicher, dass im Betrieb der Sicherheitssteuerung stets die beiden jüngsten Generationen der Momentanwerte mit einem Minimum an Speicherbedarf gespeichert sind und somit für eine Initialisierung der Sicherheitssteuerung nach einer Unterbrechung zur Verfügung stehen.

In einer weiteren Ausgestaltung ist zumindest einer der beiden Prozessoren dazu ausgebildet, einen Wert für einen Schreibzähler zu ermitteln.

Vorteilhaft repräsentiert der Schreibzähler, welcher der beiden zuvor genannten Speicherbereiche den jeweils jüngsten Momentanwert enthält. Mit dieser Ausgestaltung kann man für den Fall, dass in dem Datenspeicher mehrere zu unterschiedlichen Zeitpunkte vorliegende Momentanwerte gespeichert sind, leichter feststellen, welcher dieser Momentan werte der jüngste ist und somit als erstes einer Gültigkeitsprüfung zu unterziehen ist. Vorzugsweise ermittelt jeder der beiden Prozessoren einen eigenen Schreibzähler. Dadurch wird die Verfügbarkeit der Sicherheitsteuerung weiter erhöht.

In einer weiteren Ausgestaltung ist der erste Prozessor weiter dazu ausgebildet, den ersten Prüfwert in Abhängigkeit des Momentanwertes und des Wertes des Schreibzählers zu ermitteln.

In dieser Ausgestaltung berücksichtigt der erste Prozessor nicht nur den Momentanwert, sondern auch den Schreibzählerwert bei der Ermittlung der Prüfsumme. Vorzugsweise wird der erste Prüfwert wie folgt ermittelt: der Momentanwert und der Wert des Schreibzählers sind in zwei Speicherzellen eines Speicherbereichs gespeichert. Der erste Prüfwert wird dann über die Werte in den beiden Speicherzellen ermittelt. Die Ausgestaltung besitzt den Vorteil, dass der Prüfwert sowohl den Mo- mentanwert als auch dessen Aktualität absichert, was die Zuverlässigkeit der Information bei einem Neustart der Anlage weiter erhöht.

In einer weiteren Ausgestaltung handelt es sich bei den ersten und bei den zweiten Programmvariablen jeweils um sicherheitsrelevante Programm variablen.

Diese Maßnahme gewährleistet, dass bei einem Neustart und einer damit verbundenen Initialisierung die Werte derjenigen Programm variabeln verfügbar sind, die in der Sicherheitssteuerung zur Bearbeitung der Sicherheitssteueranweisungen benötigt werden. Damit ist die Betriebssicherheit der Anlage vom Neustart an gewährleistet. Es können aber auch Momentanwerte von nicht-sicherheitsrelevanten Programmvariablen in dem Datenspeicher gespeichert werden.

Die Daten, die bei einem Neustart der Sicherheitssteuerung zur Verfügung stehen müssen und somit in dem Datenspeicher zu speichern sind, werden allgemein als nullspannungssichere Daten bezeichnet. Wie bereits ausgeführt, sind nullspannungs- sichere Daten im wesentlichen sicherheitsrelevante Daten. Hierbei kann es sich um Momentanwerte von sicherheitsrelevanten Prögrammeingangsvariablen, um Momentanwert von sicherheitsrelevanten Programmausgangsvariablen oder um Momentanwerte von sicherheitsrelevanten Programmzwischenvariablen handeln. Kurzum, es kann sich um Daten handeln, die beim Abarbeiten von sicherheitsrelevanten Steueranweisungen anfallen. Es kann sich aber auch um nicht- sicherheitsrelevante Daten handeln, die beim Abarbeiten von nicht- sicherheitsrelevanten Steueranweisungen anfallen, also um Momentanwerte von nicht-sicherheitsrelevanten Programmeingangsvariablen, um Momentanwert von nicht-sicherheitsrelevanten Programmausgangsvariablen oder um Momentanwerte von nicht-sicherheitsrelevanten Programmzwischenvariablen. Auch nicht- sicherheitsrelevante Daten können für ein Hochfahren einer Anlage von Bedeutung sein. Als Beispiel sei eine nicht-sicherheitsrelevante Zählervariable genannt, deren Momentan wert die Anzahl derjenigen Sessel einer Sesselbahn repräsentiert, die sich nicht mehr auf dem Transportseil, sondern bereits in einem Lagerdepot befinden. Vorzugsweise kann der erste Prozessor dazu ausgebildet sein, für eine beliebige Anzahl von ersten Programmvariablen jeweils einen ersten Prüfwert zu ermitteln. In entsprechender Weise kann der zweite Prozessor dazu ausgebildet sein, für jeden der ersten Prüfwerte einen korrespondierenden zweiten Prüfwert zu ermitteln.

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:

Fig. 1 eine schematische Darstellung einer zu steuernden Anlage;

Fig. 2 eine schematische Darstellung eines Datenspeichers zur Erläuterung des Abspeicherns von Daten gemäß einer ersten Ausführungsform;

Fig. 3 eine schematische Darstellung eines Datenspeichers zur Erläuterung des Abspeicherns von Daten gemäß einer zweiten Ausführungsform.

In Fig. 1 ist eine Sicherheitssteuerung mit der Bezugsziffer 10 bezeichnet. Die Sicherheitssteuerung 10 ist dazu ausgebildet, eine in ihrer Gesamtheit mit der Bezugsziffer 12 bezeichnete automatisierte Anlage zu steuern. Die Anlage 12 umfasst eine Vielzahl von Aktuatoren 14 und eine Vielzahl von Sensoren 16. Exemplarisch ist ein in der Anlage 12 enthaltener Verbraucher 18 dargestellt, bei dem es sich beispielsweise um einen Roboter handeln kann

Die Sicherheitssteuerung 10 ist zweikanalig-redundant aufgebaut, um die erforderliche Fehlersicherheit zum Steuern sicherheitskritischer Anwendungen bzw. Prozesse zu erreichen. Stellvertretend für den zweikanaligen Aufbau sind in Fig. 1 zwei von- einander getrennte Prozessoren, nämlich ein erster Prozessor 20 und ein zweiter Prozessor 22, dargestellt. Die beiden Prozessoren 20, 22 stehen über eine bidirektionale Kommunikationsschnittstelle 24 miteinander in Verbindung, um sich gegenseitig zu überwachen und Daten austauschen zu können. Bevorzugt sind die beiden Kanäle der Sicherheitssteuerung 10 und die beiden Prozessoren 20, 22 diversitär, d.h. verschieden voneinander, aufgebaut, um systematische Fehler weitgehend auszuschließen.

Mit der Bezugsziffer 26 ist eine Ein-/Ausgabeeinheit bezeichnet, die mit jedem der beiden Prozessoren 20, 22 in Verbindung steht. Die Ein-/ Ausgabeeinheit 26 nimmt Steuerungseingangssignale 28 von den Sensoren 16 auf und leitet diese in einem angepassten Datenformat an jeden der beiden Prozessoren 20, 22 weiter. Ferner erzeugt die Ein-/Ausgabeeinheit 26 in Abhängigkeit von den Prozessoren 20, 22 Steuerungsausgangssignale 30-mtt-denen-die-Aktuatoren 14 angesteuert werden.

Mit der Bezugsziffer 32 ist ein Programmspeicher bezeichnet, in dem ein Anwenderprogramm 34 in Form von Maschinencode abgespeichert ist. Das Anwenderprogramm 34 wird von der Sicherheitssteuerung 10 abgearbeitet. Das Anwenderprogramm 34 wird insgesamt mit Hilfe eines Programmiertools erstellt, wobei zunächst ein Quellcode erstellt wird, der dann in einen Maschinencode umgesetzt wird. Bei dem Programmiertool handelt es sich beispielsweise um ein Computerprogramm 36, welches auf einem herkömmlichen PC 38 ausgeführt werden kann. Vorzugsweise ist der Programmspeicher 32 als SD-Card oder als CF-Card ausgeführt. Dies ermöglicht einen einfachen Austausch des Anwenderprogramms 34 auch ohne direkten An- schluss an den PC 38. Alternativ hierzu kann das Anwenderprogramm 34 auch in einem fest in der Sicherheitssteuerung 10 eingebauten Speicher, beispielsweise einem EEPROM, abgespeichert sein. In jedem Fall ist der Programmspeicher 32 nullspan- nungssicher ausgeführt.

Für ein fehlersicheres Verarbeiten von sicherheitsrelevanten Programmvariablen sind im Programmspeicher 32 ein erster Maschinencode 40 und ein zweiter Maschinencode 42 abgespeichert. Der erste Maschinencode 40 ist für den ersten Prozessor 20 und der zweite Maschinencode 42 ist für den zweiten Prozessor 22 bestimmt. Der erste Maschinencode 40 umfasst einen ersten Sicherheitscode 44 und einen Standardcode 46. Der erste Sicherheitscode 44 umfasst diejenigen Sicherheitssteueranweisungen, die vom ersten Prozessor 20 im Rahmen der von der Sicherheitssteuerung 10 zu erledigenden Sicherheitsaufgaben abzuarbeiten sind. Der Standardcode 46 umfasst diejenigen Standardsteueranweisungen, die vom ersten Prozessor 20 im Rahmen der von der Sicherheitssteuerung 10 zu erledigenden Standardaufgaben abzuarbeiten sind. Der zweite Maschinencode 42 umfasst einen zweiten Sicherheitscode 48, der diejenigen Sicherheitssteueranweisungen umfasst, die vom zweiten Prozessor 22 abzuarbeiten sind. Die Sicherheitssteueranweisungen und Standardsteueranweisungen werden hier zusammenfassend als Steueranweisungen bezeichnet.

In Abhängigkeit des Bearbeitungsfortganges wird in dem ersten Prozessor 20 zum einen eine erste aktuelle Sicherheitssteueranweisung 50 und zum anderen eine aktuelle Standardsteueranweisung 52 abgearbeitet. Im Wesentlichen zeitgleich wird in dem zweiten Prozessor 22 eine zweite aktuelle Sicherheitssteueranweisung 54 abgearbeitet.

Im Rahmen der Bearbeitung der aktuellen Standardsteueranweisung 52, bei der es sich um eine nicht-sicherheitsrelevante Steueranweisung handelt, werden erste nicht- sicherheitsrelevante Daten 56 zwischen dem ersten Prozessor 20 und der Ein- /Ausgabeeinheit 26 ausgetauscht. Hierbei werden dem ersten Prozessor 20 unter Verwendung von nicht-sicherheitsrelevanten Programmeingangsvariablen Momentanwerte von nicht-sicherheitsrelevanten Steuerungseingangssignalen 58 zugeführt, die von nicht-sicherheitsrelevanten Sensoren 60 erzeugt werden. Bei den nicht- sicherheitsrelevanten Sensoren 60 handelt es sich um Sensoren, deren Signale in erster Linie für den Betriebsablauf der Anlage von Bedeutung sind, von denen jedoch bei einem Fehler keine unmittelbare Gefährdung von Leib und Leben ausgeht. Beispielsweise erfassen nicht-sicherheitsrelevante Sensoren die Position eines Werkzeugs zur Bearbeitung eines Werkstücks. Die nicht-sicherheitsrelevanten Sensoren 60 sind in der Regel nicht-fehlersicher ausgebildet. Der Ein-/Ausgabeeinheit 26 werden unter Verwendung von nicht-sicherheitsrelevanten Programmausgangsvariablen Momentanwerte von nicht-sicherheitsrelevanten Steuerungsausgangssignalen 62 zugeführt, die nicht-sicherheitsrelevanten Aktuatoren 64 zu deren Ansteuerung zugeführt werden. Bei den nicht-sicherheitsrelevanten Aktuatoren 64 kann es sich beispielsweise um Motoren oder Stellzylinder handeln. Die Momentanwerte der nicht-sicherheitsrelevanten Steuerungsausgangssignale 62 werden in Abhängigkeit der nicht-sicherheitsrelevanten Steuerungseingangssignale 58 gemäß den Standardsteueranweisungen ermittelt. Hierbei kann es erforderlich sein, Zwischengrößen zu ermitteln, deren Momentanwerte nicht-sicherheitsrelevanten Programmzwischenvariablen zugewiesen werden. Die Momentanwerte der nicht-sicherheitsrelevanten Programmzwischenvariablen werden mittels zweiter nicht-sicherheitsrelevanter Daten 66 einem Arbeitsspeicher 68 zugeführt und dort zwischengespeichert werden.

Im Rahmen der Bearbeitung der ersten aktuellen Sicherheitssteueranweisung 50, bei der es sich um eine sicherheitsrelevante Steueranweisung handelt, werden erste sicherheitsrelevante Daten 70 zwischen dem ersten Prozessor 20 und der Ein- /Ausgabeeinheit 26 ausgetauscht. Hierbei werden dem ersten Prozessor 20 unter Verwendung von sicherheitsrelevanten Programmeingangsvariablen Momentanwerte von sicherheitsrelevanten Steuerungseingangssignalen 72 zugeführt, die von sicherheitsrelevanten Sensoren 74 erzeugt werden. Bei den sicherheitsrelevanten Sensoren 74 handelt es sich beispielsweise um Not-Aus-Taster, Schutztürschalter, Lichtgitter, Drehzahlüberwachungsgeräte oder andere Sensoren zur Aufnahme sicherheitsrelevanter Parameter. Der Ein-/Ausgabeeinheit 26 werden unter Verwendung von sicherheitsrelevanten Programmausgangsvariablen Momentanwerte von sicherheitsrelevanten Steuerungsausgangssignalen 76 zugeführt, die sicherheitsrelevanten Aktuatoren 78 zu deren Ansteuerung zugeführt werden. Bei den sicherheitsrelevanten Aktuatoren 78 handelt es sich beispielsweise um Schütze, deren Arbeitskontakte in der Verbindung zwischen einer Stromversorgung 80 und dem Verbraucher 18 angeordnet sind, um sicherheitsrelevante Magnetventile oder um andere Aktuatoren, mit denen ein gefährlicher Antrieb zuverlässig stillgesetzt werden kann. Somit kann die Stromversorgung 80 des Verbrauchers 18 abgeschaltet werden, wodurch es möglich ist, bei Auftritt einer entsprechenden Fehlfunktion zumindest den Verbraucher 18 in einen sicheren Zustand zu überführen. Die Momentanwerte der sicherheitsrelevanten Steuerungsausgangssignale 76 werden in Abhängigkeit der sicherheitsrelevanten Steuerungseingangssignale 72 gemäß den Sicherheitssteueranweisungen ermittelt. Hierbei kann es erforderlich sein, sicherheitsrelevante Zwischengrößen zu ermitteln, deren Momentanwerte sicherheitsrelevanten Programmzwischenvariablen zugewiesen werden. Die Momentanwerte der sicherheitsrelevanten Programmzwischenvariablen werden mittels zweiter sicherheitsrelevanter Daten 82 dem Arbeitsspeicher 68 zugeführt und dort zwischengespeichert.

Im Rahmen der Bearbeitung der zweiten aktuellen Sicherheitssteueranweisung 54, bei der es sich um eine sicherheitsrelevante Steueranweisung handelt, wird entsprechend der ersten aktuellen Sicherheitssteueranweisung 50 verfahren. Bezüglich der zweiten aktuellen Sicherheitssteueranweisung 54 werden dritte sicherheitsrelevante Daten 84, die den ersten sicherheitsrelevanten Daten 70 entsprechen, und vierte sicherheitsrelevante Daten 86, die den zweiten sicherheitsrelevanten Daten 82 entsprechen, in entsprechender Weise verwendet.

Der erste Prozessor 20 ist somit dazu ausgebildet, durch logische Verknüpfungen einer Vielzahl von ersten Programmvariablen zumindest einen Teil der Steueranweisungen des Anwenderprogramms abzuarbeiten. Der erste Prozessor 20 ist Teil eines ersten Kanals 88, der als Kanal A bezeichnet wird. Der zweiten Prozessor 22 ist somit dazu ausgebildet, durch Verarbeiten einer Vielzahl von zweiten Programmvariablen zumindest einen Teil der Steuerungsanweisungen des Anwenderprogramms abzuarbeiten. Der zweite Prozessor 22 ist Teil eines zweiten Kanals 90, der als Kanal B bezeichnet wird.

Für das Speichern von nullspannungssicheren Daten ist in der Sicherheitssteuerung 10 ein Datenspeicher 92 vorhanden. Bei diesen nullspannungssicheren Daten handelt es sich um solche Daten, die beispielsweise beim Einschalten der Sicherheitssteuerung 10 nach einem Spannungsausfall und somit dem Hochfahren der zu steuernden Anlage 12 vorhanden sein müssen. Dieser Datenspeicher ist als nicht-flüchtiger Datenspeicher ausgebildet. Der Datenspeicher 92 ist dem ersten Prozessor 20 zugeordnet, also demjenigen Prozessor, der sowohl Sicherheitssteueranweisungen als auch Standardsteueranweisungen verarbeitet. Dies hat den Vorteil, dass in einfacher Art und Weise sicherheitsrelevante Daten und nicht sicherheitsrelevante Daten, die von dem ersten Prozessor 20 verarbeitet werden, in dem Datenspeicher 92 gespeichert werden können. Sicherheitsrelevante Daten, die in dem zweiten Prozessor 22 verarbeitet werden und in dem Datenspeicher 92 gespeichert werden sollen, werden dem ersten Prozessor 20 über die bidirektionale Kommunikationsschnittstelle 24 zum Einschreiben in den Datenspeicher 92 zugeführt. In entsprechend umgekehrter Vorgehensweise erhält der zweite Prozessor 22 in dem Datenspeicher 92 gespeicherte Daten zurück. Die Zuordnung des Datenspeichers 92 zu dem ersten Prozessor 20 soll keine einschränkende Wirkung haben. Es ist auch denkbar, den Datenspeicher 92 dem zweiten Prozessor 22 zuzuordnen. Ebenso ist es denkbar, dass beide Prozessoren 20, 22 direkt auf den Datenspeicher 92 zugreifen können.

Das Einschreiben von Daten in den Datenspeicher 92 ist durch einen Pfeil 94 und das Auslesen von Daten aus dem Datenspeicher 92 ist durch einen Pfeil 96 dargestellt. Welche Daten konkret in den Datenspeicher 92 geschrieben und somit in ihm gespeichert werden, wird im Zusammenhang mit den Fig. 2 und 3 erläutert.

Über die Ein-/Ausgabeeinheit 26 werden zwischen der Sicherheitssteuerung 10 und den sicherheitsrelevanten Sensoren 74 sowie den sicherheitsrelevanten Aktuatoren 78 Testsignale 98 ausgetauscht. Mit Hilfe der Testsignale 98 kann in der Sicherheitssteuerung 10 festgestellt werden, ob die an sie angeschlossenen Komponenten fehlerfrei arbeiten, was erforderlich ist, da ein sicherer Zustand der zu steuernden Anlage 12 gewährleistet sein muss, sobald an einem mit der Sicherheitssteuerung 10 verbundenen Geräte eine Fehlfunktion auftritt.

Die vorstehenden Ausführungen, gemäß denen sowohl vom ersten Prozessor 20 als auch vom zweiten Prozessor 22 Momentanwerte für die sicherheitsrelevanten Steuerungsausgangssignale 76 erzeugt werden, bedeutet nicht, dass die von diesen beiden Prozessoren 20, 22 erzeugten Momentanwerte gleichzeitig als Steuerungsausgangssignale 76 ausgegeben werden. Die vorstehenden Ausführungen sollen lediglich den bezüglich der zu erledigenden Sicherheitsaufgaben redundanten Aufbau der Sicher- heitssteuerung 10 wiedergeben. Beide Prozessoren 20, 22 sind dazu ausgebildet, Momentanwerte für die sicherheitsrelevanten Steuerungsausgangssignale 76 zu ermitteln. Während des fehlerfreien Betriebs der Sicherheitssteuerung 10 werden lediglich die von einem Prozessor, beispielsweise dem ersten Prozessor 20, ermittelten Werte ausgegeben. Die in Fig. 2 gewählte Darstellung, gemäß der in der Sicherheitssteuerung 10 sowohl nicht-sicherheitsrelevante Steueranweisungen als auch sicherheitsrelevante Steueranweisungen verarbeitet werden, soll keine einschränkende Wirkung haben. Es ist auch denkbar, dass die Sicherheitssteuerung 10 für die ausschließliche Verarbeitung von sicherheitsrelevanten Steueranweisungen ausgebildet ist.

In Fig. 2 ist der Datenspeicher 92 dargestellt, in den verschiedene Werte nach einer ersten Ausführungsform gespeichert werden. Der Datenspeicher 92 weist einen ersten Speicherteilbereich 110 auf, der für das Abspeichern von sicherheitsrelevanten Programmvariablen vorgesehen ist. Ferner weist der Datenspeicher 92 einen zweiten Speicherteilbereich 112 auf, der für das Abspeichern von nicht-sicherheitsrelevanten Programmvariablen vorgesehen ist. Dieser Aufbau des Datenspeichers 92 soll keine einschränkende Wirkung haben. Es ist auch denkbar, zwei baulich eigenständige Datenspeicher vorzusehen, von denen einer für die sicherheitsrelevanten Programmvariablen und der andere für die nicht-sicherheitsrelevanten Programmvariablen vorgesehen ist.

Wie bereits im Zusammenhang mit Fig. 1 ausgeführt, ist die Sicherheitssteuerung 10 zweikanalig redundant aufgebaut. Mit der Bezugsziffer 114 ist eine in einem ersten Kanal 88 stattfindende Verarbeitung einer Vielzahl von ersten sicherheitsrelevanten Programmvariablen bezeichnet. Eine der in dem ersten Kanal 88 verarbeiteten ersten sicherheitsrelevanten Programmvariablen ist die mit der Bezugsziffer 116 bezeichnete sicherheitsrelevante Programmvariable FSVlA. Die verwendete Nomenklatur hat dabei folgende Bedeutung: FS steht für „failsafe" und zeigt somit an, dass es sich um eine sicherheitsrelevante Programmvariable handelt. Vl ist der eigentliche Name der betrachteten sicherheitsrelevanten Programmvariablen, anhand dem diese in der Vielzahl von ersten sicherheitsrelevanten Programmvariabein, die von dem ersten Prozessor 20 verarbeitet werden, identifiziert werden kann. Der Buchstabe A weist darauf hin, dass es sich um eine in dem ersten Kanal 88 verarbeitete Programmvariable handelt. Diese Nomenklatur wird für die Fig. 2 und 3 einheitlich verwendet.

Mit der Bezugsziffer 118 ist ein im ersten Kanal 88 verwendeter Schreibzähler SZA bezeichnet. Der Wert des Schreibzählers SZA gibt dabei die Anzahl der Schreibvorgänge an, mit denen Momentanwerte der sicherheitsrelevanten Programmvariablen FSVlA in den ersten Speicherteilbereich 110 geschrieben sind. Bezugsziffer 120 bezeichnet eine in dem ersten Kanal 88 durchgeführte Prüfwertermittlung CRCFSVlA für die sicherheitsrelevante Programmvariable FSVlA. Durch die Buchstaben CRC (cyclic redundancy check) ist angedeutet, dass besagte Prüfwertermittlung nach einem CRC-Verfahren erfolgt.

Mit der Bezugsziffer 122 ist eine in einem zweiten Kanal 90 stattfindende Verarbeitung einer Vielzahl von zweiten sicherheitsrelevanten Programmvariablen bezeichnet. Eine der in dem zweiten Kanal 90 verarbeiteten zweiten sicherheitsrelevanten Programm variablen ist die mit der Bezugsziffer 124 bezeichnete sicherheitsrelevante Programmvariable FSVlB. Der Buchstabe B weist darauf hin, dass es sich um eine in dem zweiten Kanal 90 verarbeitete Programmvariable handelt. Mit der Bezugsziffer 126 ist ein im zweiten Kanal 90 verwendeter Schreibzähler SZB bezeichnet. Der Wert des Schreibzählers SZB entspricht dabei dem Wert des Schreibzählers SZA. Bezugsziffer 128 bezeichnet eine in dem zweiten Kanal 90 durchgeführte Prüfwertermittlung CRCFSVlB für die sicherheitsrelevante Programmvariable FSVlB.

Die sicherheitsrelevante Programmvariable FSVlB korrespondiert dabei mit der sicherheitsrelevanten Programmvariablen FSVlA. Darunter ist Folgendes zu verstehen: Wie bereits in Zusammenhang mit Fig. 1 ausgeführt, sind für ein fehlersicheres Arbeiten der Sicherheitssteuerung 10 in dem Programmspeicher 32 ein erster Maschinencode 40 für den ersten Kanal 88 und ein zweiter Maschinencode 42 für den zweiten Kanal 90 abgespeichert, wobei beide Maschinencodes 40, 42 jeweils einen eigenständigen Sicherheitscode 44, 48 umfassen. Mit jedem der beiden Sicherheitscodes 44, 48 werden dieselben sicherheitsrelevanten Steuerungseingangssignale 72 der sicherheitsrelevanten Sensoren 74 verarbeitete und für dieselben sicherheitsrelevanten Aktuatoren 78 sicherheitsrelevante Steuerungsausgangssignale 76 ermittelt. Hierfür enthält jeder der beiden Sicherheitscodes 44, 48 eigene Programmvariablen, der erste Sicherheitscode 44 erste sicherheitsrelevante Programmvariablen und der zweite Sicherheitscode 48 zweite sicherheitsrelevante Programmvariablen. Diese sind zwar in dem Sinne voneinander unabhängig, dass die ersten Programmvariablen und die zweiten Programmvariablen eigenständige Speicherbereiche in den jeweiligen Speichern belegen. Die beiden Sicherheitscodes 44, 48 enthalten jedoch paarweise korrespondierende Programmvariablen. So enthält sowohl der erste Sicherheitscode 44 als auch der zweite Sicherheitscode 48 beispielsweise jeweils eine sicherheitsrelevante Programmeingangsvariable, mit dem Momentanwerte des von demselben Not- Aus-Tasters erzeugten Sensorsignals eingelesen werden können. Entsprechendes gilt für sicherheitsrelevante Programmausgangsvariablen und gegebenenfalls benötigte sicherheitsrelevante Programmzwischenvariablen.

In dem ersten Speicherteilbereich 110 werden nun Momentanwerte der sicherheitsrelevanten Programmvariablen FSVlA, Werte des Schreibzählers SZA, und mit den beiden Prüfwertermittlungen CRCFSVlA und CRCFSVlB ermittelte Prüfwerte wie folgt abgespeichert: Der erste Speicherteilbereich weist zwei Speicherbereiche 130, 132 auf. Ein zu einem ersten definierten Zeitpunkt vorliegender Momentan wert FSVlA(n) der ersten Programmvariablen FSVlA wird in dem ersten Speicherbereich 130 in einer ersten Speicherzelle 134 abgespeichert, was durch einen Pfeil 136 dargestellt ist. Die verwendete Nomenklatur hat dabei folgende Bedeutung: Der angehängte Klammerausdruck (n) zeigt an, dass es sich um einen Momentanwert handelt. Dieser Momentanwert liegt dabei zu einem ersten definierten Zeitpunkt vor, wobei dieser Zeitpunkt innerhalb des Taskzykluses n liegt. Der Taskzyklus ist dabei diejenige Zeitdauer, die die Sicherheitssteuerung 10 benötigt, das Anwenderprogramm einmal zu durchlaufen, beginnend mit dem Aktualisieren des Eingangsabbildes, dem Abarbeiten der einzelnen Steueranweisungen und endend mit dem Bereitstellen des Ausgangsabbildes. Folglich reicht es beispielsweise bei einer sicherheitsrelevanten Programmeingangsvariablen und einer sicherheitsrelevanten Programmausgangsvariablen aus, als kleinste Zeiteinheit auf den Taskzyklus abzustellen, da für diese Pro- grammvariablen pro Taskzyklus lediglich eine Änderung erfolgt. Somit ergibt sich folgende Bedeutung: Der Kleinbuchstabe n bezeichnet einen ersten definierten Zeitpunkt und somit denjenigen Taskzyklus, in dem dieser Zeitpunkt liegt. Der Term (n-1) bezeichnet einen älteren Zeitpunkt und somit einen der vorhergehenden Taskzyklen. Der Term (n+1) bezeichnet einen jüngeren Zeitpunkt und somit einen der nachfolgenden Taskzyklen.

Der zu dem ersten definierten Zeitpunkt vorliegende Wert SZA(n) des Schreibzählers SZA wird ebenfalls in dem ersten Speicherbereich 130 abgespeichert, und zwar in eine zweite Speicherzelle 138, was durch einen Pfeil 140 dargestellt ist. Des Weiteren werden in dem ersten Speicherbereich 130 ein erster Prüfwert CRCFSVlA(n), der in Abhängigkeit des Momentanwertes FSVlA(n) von der Prüfwertermittlung CRCFSVlA ermittelt wird und ein zweiter Prüfwert CRCFSVlB(n) abgespeichert, und zwar in einer dritten Speicherzelle 142 und in einer vierten Speicherzelle 144, was durch Pfeile 146, 148 dargestellt ist.

Der mit der zweiten Prüfwertermittlung CRCFSVlB ermittelte zweite Prüfwert CRCFSVlB(n) korrespondiert dabei mit dem ersten Prüfwert CRCFSVlA(n). Zum einen wird der zweite Prüfwert CRCFSVlB(n) in Abhängigkeit eines Momentanwertes derjenigen zweiten Programmvariablen FSVlB ermittelt, die mit der ersten Programmvariablen FSVlA korrespondiert. Ferner liegt der Momentanwert der zweiten Programmvariablen FSVlB in demselben Taskzyklus vor, wie der Momentanwert FSVlA(n) der ersten Programmvariablen FSVlA. Vorzugsweise werden die beiden Prüfwerte CRCFSVlA(n) und CRCFSVlB(n) diversitär ermittelt. Hierzu sind die beiden Prüfwertermittelung CRCFSVlA und CRCFSVlB hardwaretechnisch und/oder softwaretechnisch diversitär ausgeführt.

In dem zweiten Speicherbereich 132 sind für einen älteren Zeitpunkt und somit einen vorhergehenden Taskzyklus ein Momentanwert FSVlA(n-l) der ersten Programmvariablen FSVlA, ein Wert SZA(n-l) des Schreibzählers SZA, ein erster Prüfwert CRCFSVlA(n-l) und ein zweiter Prüfwert CRCFSVlB(n-l) in einer fünften Speicherzelle 150, einer sechsten Speicherzelle 152, einer siebten Speicherzelle 154 und einer achten Speicherzelle 156 abgespeichert, was durch Pfeile 158, 160, 162, 164 dargestellt ist. Die einzelnen in dem Speicherbereich 132 gespeicherten Werte werden in entsprechender Weise ermittelt, wie dies für die entsprechenden, in dem Speicherbereich 130 gespeicherten Werte beschrieben ist.

Die in den Speicherzellen 134, 138, 142, 150, 152, 154 gespeicherten Werten werden von dem ersten Prozessor 20 ermittelt. Die in den Speicherzellen 144, 156 gespeicherten Werte werden von dem zweiten Prozessor 22 ermittelt.

Sowohl der Momentanwert der ersten Programmvariablen FSVlA als auch die beiden mit den Prüfwertermittelungen CRCFSVlA und CRCFSVlB ermittelten Prüfwerte werden abwechselnd in den beiden Speicherbereichen 130, 132 gespeichert. Die beiden Prüfwerte werden somit wiederholt für aufeinanderfolgende Zeitpunkte ermittelt und abgespeichert. Für einen jüngeren Zeitpunkt und somit einen nachfolgenden Taskzyklus werden der zu diesem Zeitpunkt vorliegende Momentanwert FSVlA(n+l) und die beiden Prüfwerte CRCFSVlA(n+l) und CRCFSVlB(n+l) dann in den entsprechenden Speicherzellen 150, 152, 154, 156 des Speicherbereiches 132 gespeichert.

Der Datenspeicher 92 weist zwei Speicherbereiche 130, 132 auf, die der sicherheitsrelevanten Programmvariablen FSVlA zugeordnet sind. Werden weitere sicherheitsrelevante Programmvariablen nach der vorstehend beschriebenen Vorgehensweise in dem Datenspeicher 92 gespeichert, so weist dieser für jede dieser Programmvariablen ebenfalls zwei Speicherbereiche auf.

Der erste Prozessor 20 kann dazu ausgebildet sein, einen Momentanwertvergleich durchzuführen. Mit diesem Momentanwertvergleich werden die zu unterschiedlichen Zeitpunkten vorliegenden Momentanwerte der sicherheitsrelevanten Pro- grammvariablen FSVlA untereinander verglichen. Wird durch den Momentan wertvergleich festgestellt, dass sich die beiden Momentanwerte zweier unmittelbar aufeinanderfolgender Zeitpunkte nicht unterscheiden, so kann auf das Speichern des jüngeren Momentanwerte und der beiden jüngeren Prüfwerte verzichtet werden. Mit anderen Worten: es werden nur dann der jüngere Momentanwert und die beiden jüngeren Momentanwerte gespeichert, wenn sich der jüngere Momentanwert von dem für den unmittelbar vorhergehenden Zeitpunkt vorliegenden Momentanwert unterscheidet.

Vorstehend ist ausgeführt, dass beispielsweise der erste Prüfwert CRCFSVlA(n) in Abhängigkeit des Momentanwerts FSVlA(n) durch die Prüfwertermittlung CRCFSVlA ermittelt wird. In entsprechender Weise wird beispielsweise der zweite Prüfwert CRCFSVlB(n) in Abhängigkeit des Momentanwerts FSVlB(n) durch die Prüfwertermittlung CRCFSVlB ermittelt wird. Dies kann so verstanden werden, dass der jeweilige Prüfwert allein für den Momentanwert der zugehörigen sicherheitsrelevanten Programmvariablen ermittelt wird. Alternativ kann der erste Prüfwert CRCFSVlA(n) auch für die Kombination ermittelt werden, die sich aus dem Momentanwert FSVlA(n) und dem Wert SZA(n) des Schreibzählers SZA ergibt. Entsprechend kann für den zweiten Prüfwert CRCFSVl B(n) verfahren werden.

Dem vorstehend beschriebenen Speichern von Momentanwerten, Schreibzählerwerten und Prüfwerten in dem ersten Speicherteilbereich liegt folgende Überlegung zugrunde. Solange beispielsweise kein Spannungsausfall vorliegt, die Sicherheitssteuerung 10 also störungsfrei arbeitet, weisen die beiden sicherheitsrelevanten Programmvariablen FSVlA und FSVlB in den einzelnen Taskzyklen identische Momentanwerte auf. Folglich reicht es aus, in den Datenspeicher 92 lediglich die Momentanwerte der sicherheitsrelevanten Programmvariablen FSVlA abzuspeichern. Die beiden Schreibzähler SZA und SZB weisen innerhalb eines Taskzykluses ebenfalls identische Werte auf.

Anhand der beiden für die beiden Kanäle 88, 90 individuell ermittelten Prüfwerte kann nun überprüft werden, ob der zuletzt in dem Datenspeicher 92 gespeicherte Momentanwert FSVlA(n) gültig ist oder nicht. Hierzu werden beispielsweise bei einem Neustart, der nach einem Spannungsausfall erforderlich ist, dem ersten Prozessor 20 der Momentanwert FSVlA(n) und der erste Prüfwert CRCFSVlA(n) zugeführt. Dem zweiten Prozessor 22 wird ebenfalls der Momentanwert FSVlA(n), jedoch der zweite Prüfwert CRCFSVlB(n) zugeführt. Hat die Sicherheitssteuerung 10 in dem Zeitfenster störungsfrei gearbeitet, in welchem die beiden Prüfwerte CRCFSVlA(n) und CRCFSVlB(n) ermittelt und sowohl der Momentanwert FSVlA(n) als auch diese beiden Prüfwerte im Datenspeicher 92 abgespeichert wurden, dann ergibt eine nochmaliges Ermitteln eines ersten aktuellen Prüfwertes CRCFSVlA(n+l) und eines aktuelle zweiten Prüfwertes CRCFSVlB(n+l), dass sowohl der gespeicherte erste Prüfwert CRCFSVlA(n) und der aktuelle erste Prüfwert CRCFSVlA(n+l) identisch sind als auch der gespeicherte zweite Prüfwert CRCFSVl B(n) und der aktuelle zweite Prüfwert CRCFSVlB(n+l) identisch sind. In diesem Fall ist der gespeicherte Momentanwert FSVlA(n) gültig und kann für die Initialisierung der Sicherheitssteuerung 10 verwendet werden. Er wird in beiden Kanälen 88, 90 verarbeitet. Wird dagegen festgestellt, dass entweder der gespeicherte erste Prüfwert CRCFSVlA(n) und der aktuelle erste Prüfwert CRCFSVlA(n+l) nicht identisch sind oder der gespeicherte zweite Prüfwert CRCFSVlB(n) und der aktuelle zweite Prüfwert CRCFSVlB(n+l) nicht identisch sind, dann ist der gespeicherte Momentanwert FSVlA(n) nicht gültig und kann somit nicht für die Initialisierung der Sicherheitssteuerung 10 verwendet werden. In diesem Fall wird statt dessen der zuvor gespeicherte Momentanwert FSVlA(n-l) für die Initialisierung verwendet. Vorzugsweise wird dieser Momentanwert, bevor er für die Initialisierung verwendet wird, zunächst ebenfalls einer Gültigkeitsüberprüfung unterzogen. Somit können die Sicherheitssteuerung 10 und die Anlage 12 wieder gestartet werden, ohne dass hiefür der Einsatz von Defaultwerten für die erste sicherheitsrelevante Programmvariable FSVlA oder das Durchführen einer Referenzfahrt erforderlich wären.

Bei der vorstehend beschriebenen Gültigkeitsüberprüfung wird zunächst anhand der Werte SZA(n) und SZA(n-l) des Schreibzählers SZA festgestellt, welcher der beiden Momeritanwerte, die in der ersten Speicherzelle 134 und der fünften Speicherzelle 150 gespeichert sind, der jüngere ist. Der jüngere Momentanwert wird zunächst bei der Gültigkeitsüberprüfung geprüft. Der Datenspeicher 92 weist einen zweiten Speicherteilbereich 112 auf, der für das Abspeichern von nicht-sicherheitsrelevanten Programmvariablen vorgesehen ist, wobei die nicht-sicherheitsrelevanten Programmvariablen in dem ersten Kanal 88 verarbeitet werden.

Mit der Bezugsziffer 166 ist eine in einem ersten Kanal 88 stattfindende Verarbeitung einer Vielzahl von nicht-sicherheitsrelevanten Programmvariablen bezeichnet. Eine der in dem ersten Kanal 88 verarbeiteten ersten nicht-sicherheitsrelevanten Programmvariablen ist die mit der Bezugsziffer 168 bezeichnete sicherheitsrelevante Programmvariable STVlA. Dabei steht ST für „Standard" und zeigt somit an, dass es sich um eine nicht-sicherheitsrelevante Programmvariable handelt. Die Bedeutung der Bezeichnung Vl und des Buchstabens A kann den Ausführungen zu der mit der Bezugsziffer 114 bezeichneten Verarbeitung entnommen werden. Bezugsziffer 170 bezeichnet eine in dem ersten Kanal 88 durchgeführte Prüfwertermittlung CRCSTVlA für die nicht-sicherheitsrelevante Programmvariable STVlA.

In dem zweiten Speicherteilbereich 112 werden nun Momentanwerte der nicht- sicherheitsrelevanten Programmvariablen STVlA, Werte des Schreibzählers SZA, und mit der Prüfwertermittlung CRCSTVlA ermittelte Prüfwerte wie folgt abgespeichert: Der zweite Speicherteilbereich 112 weist zwei Speicherbereiche 172, 174 auf. Ein zu einem ersten definierten Zeitpunkt vorliegender Momentan wert STVlA(n) der ersten nicht-sicherheitsrelevanten Programmvariablen STVlA wird in dem dritten Speicherbereich 172 in einer neunten Speicherzelle 176 abgespeichert, was durch einen Pfeil 178 dargestellt ist. Der zu dem ersten definierten Zeitpunkt vorliegende Wert SZA(n) des Schreibzählers SZA wird ebenfalls in einer zehnten Speicherzelle 180 abgespeichert, was durch einen Pfeil 182 dargestellt ist. Des Weiteren wird ein Prüfwert CRCSTVlA(n) abgespeichert, der in Abhängigkeit des Momentanwertes STVlA(n) von der Prüfwertermittlung CRCSTVlA ermittelt wird, und zwar in einer elften Speicherzelle 184, was durch einen Pfeil 186 dargestellt ist.

In dem vierten Speicherbereich 174 sind für einen älteren Zeitpunkt und somit einen vorhergehenden Taskzyklus ein Momentanwert STVlA(n-l) der nicht- sicherheitsrelevanten Programmvariablen STVlA, ein Wert SZA(n-l) des Schreibzählers SZA und ein Prüfwert CRCSTVlA(n-l) einer zwölften Speicherzelle 188, einer dreizehnten Speicherzelle 190 und einer vierzehnten Speicherzelle 192 abgespeichert, was durch Pfeile 194, 196, 198 dargestellt ist. Die einzelnen in dem vierten Speicherbereich 1174 gespeicherten Werte werden in entsprechender Weise ermittelt, wie dies für die entsprechenden, in dem dritten Speicherbereich 172 gespeicherten Werte beschrieben ist. Die in den Speicherzellen 176, 180, 184, 188, 190, 192 gespeicherten Werte werden von dem ersten Prozessor 20 ermittelt.

Sowohl der Momentanwert der nicht-sicherheitsrelevanten Programmvariablen STVlA als auch der mit der Prüfwertermittelung CRCSTVlA ermittelte Prüfwert werden abwechselnd in den beiden Speicherbereichen 172, 174 gespeichert. Für einen jüngeren Zeitpunkt und somit einen nachfolgenden Taskzyklus werden der zu diesem Zeitpunkt vorliegende Momentanwert STVlA(n+l) und der Prüfwert CRCSTVlA(n+l) dann in den entsprechenden Speicherzellen 188, 190, 192 des vierten Speicherbereiches 174 gespeichert.

Der Datenspeicher 92 weist zwei Speicherbereiche 172, 174 auf, die der nicht- sicherheitsrelevanten Programmvariablen STVlA zugeordnet sind. Werden weitere nicht-sicherheitsrelevante Programmvariablen nach der vorstehend beschriebenen Vorgehensweise in dem Datenspeicher 92 gespeichert, so weist dieser für jede dieser Programmvariablen ebenfalls zwei Speicherbereiche auf.

Auch das Speichern von nicht-sicherheitsrelevanten Programmvariablen kann unter Berücksichtigung eines Momentanwertvergleichs erfolgen. Ebenso kann der Wert des Schreibzählers SZA bei dem Ermitteln von Prüfwerten berücksichtigt werden. Die Gültigkeitsprüfung eines zuletzt gespeicherten Momentanwerts STVlA(n) erfolgt entsprechend, wie dies vorstehend für die sicherheitsrelevanten Programmvariabein beschrieben ist. In entsprechender Weise kann auch für die nicht-sicherheitsrelevante Programmvariable STVlA überprüft werden, ob der zuletzt in dem Datenspeicher 92 gespeicherte Momentanwert STVlA(n) gültig ist oder nicht.

Hierzu werden beispielsweise bei einem Neustart der Sicherheitssteuerung 10 dem ersten Prozessor 20 der Momentanwert STVlA(n) und der Prüfwert CRCSTVlA(n) zugeführt. Hat die Sicherheitssteuerung 10 in dem Zeitfenster störungsfrei gearbeitet, in welchem der Prüfwert CRCSTVlA(n) ermittelt und sowohl der Momentanwert STVlA(n) als auch der Prüfwert CRCSTVlA(n) im Datenspeicher 92 abgespeichert wurden, dann ergibt eine nochmaliges Ermitteln eines aktuellen Prüfwertes CRCSTVlA(n+l), dass der gespeicherte Prüfwert CRCSTVlA(n) und der aktuelle Prüfwert CRCSTVlA(n+l) identisch sind. In diesem Fall ist der gespeicherte Momentanwert STVlA(n) gültig und kann für die Initialisierung der Sicherheitssteuerung 10 verwendet werden. Er wird in dem ersten Kanal 88 verarbeitet. Wird dagegen festgestellt, dass der gespeicherte Prüfwert CRCSTVlA(n) und der aktuelle Prüfwert CRCSTVlA(n+l) nicht identisch sind, dann ist der gespeicherte Momentanwert STVlA(n) nicht gültig und kann somit nicht für die Initialisierung der Sicherheitssteuerung 10 verwendet werden. In diesem Fall wird statt dessen der zuvor gespeicherte Momentanwert STVlA(n-l) für die Initialisierung verwendet. Vorzugsweise wird dieser Momentanwert, bevor er für die Initialisierung verwendet wird, zunächst ebenfalls einer Gültigkeitsüberprüfung unterzogen. Somit können die Sicherheitssteuerung 10 und die Anlage 12 wieder gestartet werden, ohne dass hiefür der Einsatz von Defaultwerten für die nicht-sicherheitsrelevante Programmvariable STVlA oder das Durchführen einer Referenzfahrt erforderlich wären.

Bei der vorstehend beschriebenen Gültigkeitsüberprüfung wird zunächst anhand der Werte SZA(n) und SZA(n-l) des Schreibzählers SZA festgestellt, welcher der beiden Momentanwerte, die in der neunten Speicherzelle 176 und der zwölften Speicherzelle 188 gespeichert sind, der jüngere ist. Der jüngere Momentan wert wird zunächst bei der Gültigkeitsüberprüfung geprüft. Die mit dem ersten Prozessor 20 verarbeiteten Programmvariablen werden zusammenfassend als erste Programmvariablen und die mit dem zweiten Prozessor 22 verarbeiteten Programmvariabein werden zusammenfassend als zweite Programmvariablen bezeichnet.

In Fig. 3 ist der Datenspeicher 92 dargestellt, in den verschiedene Werte nach einer zweiten Ausführungsform gespeichert werden.

Mit der Bezugsziffer 114' ist eine in dem ersten Kanal 88 stattfindende Verarbeitung einer Vielzahl von ersten sicherheitsrelevanten Programmvariablen bezeichnet, die sich von der Verarbeitung 114 dadurch unterscheidet, dass kein Schreibzähler SZA berücksichtigt wird. In entsprechender Weise bezeichnet die Bezugsziffer 122' eine in dem zweiten Kanal 90 stattfindende Verarbeitung von zweiten sicherheitsrelevanten Programmvariablen und die Bezugsziffer 166' eine in dem ersten Kanal 88 stattfindende Verarbeitung von nicht-sicherheitsrelevanten Programmvariablen.

In einem fünften Speicherbereich 200 sind ein Momentanwert FSVlA(n) der ersten Programmvariablen FSVlA, ein erster Prüfwert CRCFSVlA(n) und ein zweiter Prüfwert CRCFSVl B (n) in einer fünfzehnten Speicherzelle 202, einer sechzehnten Speicherzelle 204 und einer siebzehnten Speicherzelle 206 abgespeichert, was durch Pfeile 208, 210, 212 dargestellt ist. In einem sechsten Speicherbereich 214 sind ein Momentanwert STVlA(n) der einer nicht-sicherheitsrelevanten Programmvariablen STVlA und ein Prüfwert CRCSTVl A(n) in einer achtzehnten Speicherzelle 216 und einer neunzehnten Speicherzelle 218 abgespeichert, was durch Pfeile 220, 222 dargestellt ist.

Die in den Speicherzellen 202, 204, 216, 218 gespeicherten Werte werden von dem ersten Prozessor 20 ermittelt. Der in der Speicherzelle 206 gespeicherte Wert wird von dem zweiten Prozessor 22 ermittelt. Die einzelnen gespeicherten Werte werden entsprechend den Ausführungen zu Fig. 2 ermittelt. Sollen weitere sicherheitsrelevante Programmvariablen in dem Datenspeicher 92 gespeichert werden, so weist dieser eine entsprechend größere Anzahl von fünften Speicherbereichen 200 auf. Entsprechendes gilt für die nicht-sicherheitsrelevanten Programmvariablen und den sechsten Speicherbereich 214. Ebenfalls kann das Speichern der nicht-sicherheitsrelevanten Programmvariablen und der sicherheitsrelevanten Programmvariablen unter Berücksichtigung eines Momentanwertvergleichs erfolgen.

Die Gültigkeitsüberprüfung der gespeicherten Momentanwerte FSVlA(n) und STVlA(n) erfolgt ebenso, wie dies im Zusammenhang mit Fig. 2 beschrieben ist. Allerdings mit folgendem Unterschied: wird festgestellt, dass beispielsweise der Momentanwert FSVlA(n) nicht gültig ist, so ist in dem Datenspeicher 92 kein weiterer Momentan wert für die erste sicherheitsrelevante Programm variable FSVlA abgespeichert, der anstelle des Momentanwerts FSVlA(n) verwendet werden könnte. In diesem Fall muss die Sicherheitssteuerung 10 entweder mit einem Defaultwert für die erste sicherheitsrelevante Programmvariable FSVlA initialisiert werden oder es muss eine Referenzfahrt mit der Anlage 12 durchgeführt werden. Entsprechendes gilt für die nicht-sicherheitsrelevante Programmvariable STVlA.

Das anhand von Fig. 3 beschriebene Speicherkonzept hat jedoch gegenüber dem anhand von Fig. 2 beschriebenen Speicherkonzept den Vorteil, dass der Datenspeicher 92 kleiner dimensioniert werden kann und somit kostengünstiger ist.

Auf das Speicherkonzept, welches beim Speichern von nicht-sicherheitsrelevanten Daten angewendet wird, ist in der vorliegenden Anmeldung explizit kein Schutz gerichtet. Es bleibt vorbehalten, ein auf dieses Speicherkonzept gerichtetes Schutzbegehren zu formulieren und zu verfolgen.