EP2583178A1 - Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode - Google Patents

Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode

Info

Publication number
EP2583178A1
EP2583178A1 EP10748054.3A EP10748054A EP2583178A1 EP 2583178 A1 EP2583178 A1 EP 2583178A1 EP 10748054 A EP10748054 A EP 10748054A EP 2583178 A1 EP2583178 A1 EP 2583178A1
Authority
EP
European Patent Office
Prior art keywords
program code
coded
control device
controlling
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP10748054.3A
Other languages
English (en)
French (fr)
Inventor
Thomas Grosch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of EP2583178A1 publication Critical patent/EP2583178A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated

Definitions

  • Apparatus and method for controlling a machine with coded and non-coded program code
  • the present invention relates to a device for controlling a machine having a first control device, with which a first program code for controlling is processable, a parallel second control device, with which a second program code for controlling is processable, and a synchronization device for synchronizing the first control device with the second control device. Moreover, the present invention relates to a corresponding method for controlling a machine.
  • a generally available high-availability automation system in the automation environment is characterized by the following basic features.
  • Two or more computer systems 1, 2 (hereinafter also referred to as control devices, subsystems or simply systems) are coupled to one another via a synchronization connection.
  • the two computer systems 1, 2 serve to control or control peripheral units.
  • the peripheral units 4, 5 are here connected via a bus system 6 to the computer systems 1, 2.
  • the peripheral units 4, 5 controlled by the computer systems 1, 2 can in principle be operated by both subsystems 1, 2. However, one of the two subsystems 1, 2 is leading with respect to the peripherals connected to the overall computer system or a part thereof. This leading computer system represents the so-called "master". In other words, expenditure is only carried out by one of the two subsystems, in the present case the computer system 1. This is symbolized in FIG. 1 by a solid line which connects the computer system 1 to the bus 6.
  • the second computer system 2 is passive with regard to the peripheral connection and represents the so-called "standby system.” As a rule, it does not issue any outputs to the bus 6. However, if the leading computer system 1 fails, the second computer system 2 takes over the control and generates the corresponding outputs to the peripheral units 4, 5.
  • Intervals are synchronized. With regard to the frequency of the synchronization and its scope, different characteristics can be distinguished (warm standby, hot standby). In order to unambiguously identify the faulty system when switching over in the event of an error, a corresponding system diagnostics must be provided.
  • the document DE 102 19 501 B4 describes a system and method for improving fault control measures, in particular in automation systems.
  • Such an automation system consists of at least one standard CPU module with integrated software, at least one fail-safe I / O module and at least one communication channel for communication between the standard CPU module and the fail-safe I / O module.
  • the software of the standard CPU module consists of operating system and user program. Checking for errors in safety-critical data or checking for errors in the processing of safety-critical data within the standard CPU module uses a combination of diverse and coded processing of data and / or operators.
  • the object of the present invention is to provide a platform-independent diagnostic concept for fault-tolerant automation systems and to propose a corresponding device and a corresponding method.
  • this object is achieved by a device for controlling a machine with a first control unit. direction, with which a first program code for controlling is processable, a parallel second control device, with which a second program code for controlling is processable, and a synchronization device for synchronizing the first control device with the second control device, wherein the first program code is a coded program code at the second program code is a non-coded program code in which work instructions and / or data structures are not coded with respect to the source code, and the synchronization device has an encoder in order to store data that is stored in the source code Synchronization to be coded or decoded according to the coding of the first program code depending on the communication direction.
  • the invention provides a method of controlling a machine by processing a first program code for controlling with a first controller, processing a second program code for controlling with a parallel second controller, synchronizing the first controller with the second controller, the first program code being a coded one Program code is where work instructions and / or data structures are encoded relative to an underlying source code, the second program code is a non-encoded program code, in which work instructions and / or data structures are not encoded relative to the underlying source code, and which are synchronized between the two Controllers communicated data according to the coding of the first program code depending on the communication direction coded or decoded.
  • the first control device is connected to a first compiler device, with which a source code can be translated into the encoded first program code
  • the second control device is connected to a second compiler device, with which the source code can be translated into the non-encoded second program code.
  • the first control device can have an error detection device with which an error can be detected on the basis of the coding during the processing of the coded first program code.
  • an error detection device with which an error can be detected on the basis of the coding during the processing of the coded first program code.
  • the second control device can be used without the error detection device, since it runs as a standby system in normal operation only parallel to the master system and is used only in the short-term usually in case of error of the system.
  • the second control device which runs without coded processing, may have a correspondingly lower computing power. It is thus cheaper to realize accordingly.
  • the overall system can have a debugging device or can be connected to a debugger in the creation phase of the control program. This is easily possible because an uncoded processing takes place in the second control device.
  • the debugger could not be connected to the first controller in which coded processing is running. Since the two control devices are synchronized with each other, can Thus, via the second control device, a debugging of the first control device, which processes coded, takes place indirectly.
  • the system according to the invention has the double advantage that on the one hand in the control device with coded processing a reliable, automated error detection and in the second device in which is not coded processed, cross-system debugging can take place.
  • FIG. 2 shows the architecture of a highly available coded processing system according to the present invention.
  • the embodiments described in more detail below represent preferred embodiments of the present invention.
  • the high-availability system according to the present invention is shown in FIG 2 for the sake of clarity without any peripheral units or communication channels (eg bus) between computer systems and peripheral units.
  • FIG. 2 essentially only the two computer systems 1 and 2 (here also called control devices 1 and 2 or systems A and B) are shown.
  • the first control device 1 performs a coded processing. It has a corresponding coded program code 7. For example, it is a coded binary code.
  • the second control device 2 has a non-coded code, z. Eg a standard program code 8.
  • the basis for the program codes is on
  • Source code 9 This source code 9 is firstly translated into coded program code 7 by means of a "coded compiler" 10. The same source code 9 is exchanged with a standard computer. ler 11 or a system-specific compiler translated into the standard program code 8 or a system-specific program code.
  • a synchronization between the two control devices 1 and 2 ie between systems A and B is necessary).
  • a synchronization connection 3 is also provided, with which bidirectional data exchange is possible.
  • an encoder is for the synchronization of both units in the synchronization link 3 / Decoder unit 12 is provided.
  • control device 1 sends data to the standby system (control device 2) for the purpose of synchronization
  • its coded data must be decoded for the standby system.
  • the standby system 2 returns data to the master 1 or, for example, makes a request, the corresponding data is to be coded, because in the simple standby system 2, the data is created or processed uncoated.
  • This uncoded processing of the data in the second control device 2 has the additional advantage that a debugger 13 can be connected to the second control device 2 for the purpose of system analysis during the creation of the program. Although the debugger 13 can then analyze only the second control device, since it has essentially the same state as the first control device due to the synchronization, it is therefore also possible indirectly to conclude the state of the first control device 1.
  • FIG. 2 thus shows an automation system in which a platform-independent diagnostic strategy is possible is.
  • the coded processing as mentioned, enables automatic fault diagnosis in one control device, and the other control device, which is usually used as a standby system, can be designed simply without automatic fault diagnosis.
  • the overall system can be a hot standby or an arm standby system.
  • the two control devices 1, 2 work the logically identical user program (source code 9).
  • source code 9 one of the two subsystems (in FIG. 2 the control device 1) operates in a form coded in a suitable manner.
  • the second control device 2 operates in uncoded mode.
  • a possible coded operation may be the so-called "coded processing" according to the article by Forin mentioned in the introduction, in which a computer system does not execute the original instructions but processes coded instructions or data structures System A or error detection possible on the control device 1.
  • the error detection which can be implemented on the basis of the coding is platform-independent and can therefore be easily ported
  • Program code 8 serves, as mentioned, the identical source code 9.
  • Both subsystems 1, 2 are synchronized via an encoder or decoder 12. Due to the fact that both subsystems 1, 2 process the user program in different ways, this synchronization must be done via a suitable translator, which converts the different data structures into each other.
  • the synchronization of the coded with the uncoded program is possible in principle, because for each coded statement also an uncoded statement exists.
  • the coder / decoder 12 required for the synchronization can be based on the technical implementation of the coder 10 for the coded subsystem (here system A or control device 1).
  • the translation of the data structures into coded form takes place during synchronization at runtime (ie online), while it is processed offline during the compiler run.
  • such a coded operating system is combined with an uncoded operating system to a highly available system.
  • This allows for a platform-independent diagnosis that does not include any special hardware requirements.
  • another fundamental problem is solved which makes the use of coded processing in known systems considerably more difficult. Namely, the coded user program 7 can not be debugged for the user since all data and commands are in coded form.
  • this problem is circumvented by using for debugging the subsystem (control device 2) which processes the uncoded code (system B). Since both subsystems run synchronously, troubleshooting in the user program is possible without having to give up the encoded processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Es soll ein hochverfügbares System insbesondere für die Automatisierungstechnik mit einer plattformunabhängigen Diagnose realisiert werden. Daher wird eine Vorrichtung zum Steuern einer Maschine mit einer ersten Steuereinrichtung (1), mit der ein erster Programmcode (7) zum Steuern verarbeitbar ist, einer parallelen zweiten Steuereinrichtung (2), mit der ein zweiter Programmcode (8) zum Steuern verarbeitbar ist, und einer Synchronisationseinrichtung zum Synchronisieren der ersten Steuereinrichtung mit der zweiten Steuereinrichtung bereitgestellt. Der erste Programmcode (7) ist ein codierter Programmcode, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber einem zugrunde liegenden Quellcode (9) codiert sind. Der zweite Programmcode (8) ist ein nicht codierter Programmcode, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber dem Quellcode (9) nicht codiert sind. Die Synchronisationseinrichtung (3) weist eine Codiereinrichtung (12) auf, um Daten, die bei der Synchronisation kommuniziert werden entsprechend der Codierung des ersten Programmcodes (7) in Abhängigkeit von der Kommunikationsrichtung zu codieren oder zu decodieren.

Description

Beschreibung
Vorrichtung und Verfahren zum Steuern einer Maschine mit codiertem und nicht codiertem Programmcode
Die vorliegende Erfindung betrifft eine Vorrichtung zum Steuern einer Maschine mit einer ersten Steuereinrichtung, mit der ein erster Programmcode zum Steuern verarbeitbar ist, einer parallelen zweiten Steuereinrichtung, mit der ein zweiter Programmcode zum Steuern verarbeitbar ist, und einer Synchronisationseinrichtung zum Synchronisieren der ersten Steuereinrichtung mit der zweiten Steuereinrichtung. Darüber hinaus betrifft die vorliegende Erfindung ein entsprechendes Verfahren zum Steuern einer Maschine.
Im Automatisierungsumfeld werden verstärkt hochverfügbare Lösungen gefordert, die eventuell auftretende Stillstandzeiten der Anlage auf ein Minimum reduzieren. Die Entwicklung derartiger hochverfügbarer Lösungen ist sehr kostenintensiv. FIG 1 zeigt den grundlegenden Aufbau eines hochverfügbaren Automatisierungssystems .
Ein im Automatisierungsumfeld übliches hochverfügbares Automatisierungssystem zeichnet sich durch folgende grundlegenden Merkmale aus. Zwei oder mehr Rechnersysteme 1, 2 (nachfolgend auch Steuereinrichtungen, Teilsysteme oder einfach Systeme genannt) sind über eine Synchronisationsverbindung miteinander gekoppelt. Die beiden Rechnersysteme 1, 2 dienen zur Regelung bzw. Steuerung von Peripherieeinheiten. Die Peripherieeinheiten 4, 5 sind hier über ein Bussystem 6 an die Rechnersysteme 1, 2 angeschlossen.
Die von den Rechnersystemen 1, 2 gesteuerten Peripherieeinheiten 4, 5 können prinzipiell von beiden Teilsystemen 1, 2 bedient werden. Eines der beiden Teilsysteme 1, 2 ist jedoch bezüglich der an das Gesamtrechnersystem angeschlossenen Peripherie oder eines Teils davon führend. D.h. dieses führende Rechnersystem stellt den so genannten „Master" dar. Dies wie- derum bedeutet, dass Ausgaben nur von einem der beiden Teilsysteme durchgeführt werden, im vorliegenden Fall das Rechnersystem 1. Dies ist in FIG 1 durch eine durchgezogene Linie symbolisiert, die das Rechnersystem 1 mit dem Bus 6 verbin- det .
Das zweite Rechnersystem 2 ist bezüglich der Peripherieanbin- dung passiv und stellt das so genannte „Standby-System" dar. Es setzt im Regelfall keine Ausgaben an den Bus 6 ab. Wenn allerdings das führende Rechnersystem 1 ausfällt, übernimmt das zweite Rechnersystem 2 die Steuerung und generiert die entsprechenden Ausgaben an die Peripherieeinheiten 4, 5.
Damit beide Teilsysteme 1, 2 synchron ablaufen können, müssen sie über eine Synchronisationsverbindung 3 in regelmäßigen
Abständen synchronisiert werden. Bezüglich der Häufigkeit der Synchronisation und deren Umfang können verschiedene Ausprägungen unterschieden werden (Warm-Standby, Hot-Standby) . Um bei der Umschaltung im Fehlerfall das fehlerbehaftete System eindeutig zu identifizieren, ist eine entsprechende Systemdiagnose vorzusehen.
Der Aufwand für die Umsetzung eines derartigen Systems ist relativ hoch. Dies liegt nicht zuletzt an den aufwendigen Di- agnoseverfahren, welche zur Umsetzung eines hochverfügbaren Automatisierungssystems erforderlich sind. Besonders aufwendig ist dabei der Umstieg auf eine neue Systemplattform, da in diesem Fall die Systemdiagnose üblicherweise neu entwickelt werden muss.
Da in den bislang bekannten, hochverfügbaren Systemen keine plattformunabhängigen Diagnosekonzepte existieren, besteht die Lösung im Wesentlichen in einer Neuentwicklung der Diagnoseverfahren für die neue Systemplattform.
Aus dem Artikel von Forin, P.: „Vital coded microprocessor principles and application for various transit Systems" in Perrin, J. P.: Control, Computers, Communications in Transportation; Selected Papers from the IFAC/IFIP/IFORS Symposium, Pergamon, Oxford UK, 1990, Seiten 79 bis 84, ist ein fehlersicheres Systems bekannt. Es besteht aus fehlersicheren Eingangsbaugruppen, die die Eingangssignale codieren. Außer- dem besteht es aus einer Standard-CPU (Coded Microprocessor) , die aus dem codierten Eingangssignalen durch codierte Operationen, codierte Zustands- und Ausgangssignale berechnet. Aus den codierten Ausgangssignalen wird eine Signatur berechnet. Das fehlersichere System verfügt ferner über einen fehlersi- cheren Dynamikcontroller, der die von der Standard-CPU berechnete Signatur überprüft und im Fehlerfall die Ausgangsbaugruppen abschaltet. Bei der Codierung werden verschiedene Verfahren kombiniert, nämlich arithmetische Codierung und Signaturverfahren .
Darüber hinaus beschreibt die Druckschrift DE 102 19 501 B4 ein System und Verfahren zur Verbesserung von Fehlerbeherrschungsmaßnahmen, insbesondere bei Automatisierungssystemen. Ein derartiges Automatisierungssystem besteht aus wenigstens einer Standard-CPU-Baugruppe mit integrierter Software, wenigstens einer fehlersicheren Peripheriebaugruppe und wenigstens einem Kommunikationskanal zur Kommunikation zwischen der Standard-CPU-Baugruppe und der fehlersicheren Peripheriebaugruppe. Die Software der Standard-CPU-Baugruppe besteht aus Betriebssystem und Anwenderprogramm. Bei der Überprüfung auf Fehler in sicherheitskritischen Daten bzw. bei der Überprüfung auf Fehler bei der Verarbeitung von sicherheitskritischen Daten innerhalb der Standard-CPU-Baugruppe wird eine Kombination aus diversitärer und kodierter Verarbeitung von Daten und/oder Operatoren verwendet.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein plattformunabhängiges Diagnosekonzept für hochverfügbare Automatisierungssysteme zu schaffen und eine entsprechende Vor- richtung sowie ein entsprechendes Verfahren vorzuschlagen.
Erfindungsgemäß wird diese Aufgabe gelöst durch eine Vorrichtung zum Steuern einer Maschine mit einer ersten Steuerein- richtung, mit der ein erster Programmcode zum Steuern verarbeitbar ist, einer parallelen zweiten Steuereinrichtung, mit der ein zweiter Programmcode zum Steuern verarbeitbar ist, und einer Synchronisationseinrichtung zum Synchronisieren der ersten Steuereinrichtung mit der zweiten Steuereinrichtung, wobei der erste Programmcode ein codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber einem zugrunde liegenden Quellcode codiert sind, der zweite Programmcode ein nicht codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber dem Quellcode nicht codiert sind, und die Synchronisationseinrichtung eine Codiereinrichtung aufweist, um Daten, die bei der Synchronisation kommuniziert werden, entsprechend der Codierung des ersten Programmcodes in Abhängigkeit von der Kommunikationsrichtung zu codieren oder zu decodieren.
Darüber hinaus wird erfindungsgemäß bereitgestellt ein Verfahren zum Steuern einer Maschine durch Verarbeiten eines ersten Programmcodes zum Steuern mit einer ersten Steuereinrichtung, Verarbeiten eines zweiten Programmcodes zum Steuern mit einer parallelen zweiten Steuereinrichtung, Synchronisieren der ersten Steuereinrichtung mit der zweiten Steuereinrichtung, wobei der erste Programmcode ein codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber einem zugrunde liegenden Quellcode codiert sind, der zweite Programmcode ein nicht codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber dem zugrunde liegenden Quellcode nicht codiert sind, und die bei dem Synchronisieren zwischen den Steuereinrichtungen kommunizierten Daten entsprechend der Codierung des ersten Programmcodes abhängig von der Kommunikationsrichtung codiert oder decodiert werden.
In vorteilhafter Weise ist es durch die Codierung in einer der Steuereinrichtungen, d. h. in einem der Systeme bzw.
Rechnersysteme möglich, eine plattformunabhängige Fehlerdiagnose durchzuführen. In der anderen der beiden Steuereinrichtungen bzw. in dem anderen der beiden Systeme erfolgt hinge- gen eine uncodierte Verarbeitung, wodurch beispielsweise in diesem parallelen System ( Stand-by-System) ein Debugging möglich ist.
Optional ist die erste Steuereinrichtung an eine erste Compilereinrichtung, mit der ein Quellcode in den kodierten ersten Programmcode übersetzbar ist, und die zweite Steuereinrichtung an eine zweite Compilereinrichtung, mit der der Quellcode in den nicht codierten zweiten Programmcode übersetzbar ist, angeschlossen. Damit muss das Gesamtsystem nur mit dem zugrunde liegenden Quellcode gespeist werden, und es kann daraus systemintern sowohl der codierte Programmcode als auch der nicht codierte Programmcode erzeugt werden.
Die erste Steuereinrichtung kann eine Fehlererkennungseinrichtung aufweisen, mit der beim Verarbeiten des codierten ersten Programmcodes anhand der Codierung ein Fehler erkennbar ist. Somit kann in der ersten Steuereinrichtung, die in der Regel als führendes System eingesetzt wird, eine zuverlässige, rechnerbasierte Fehlerdiagnose stattfinden. Dafür ist eine Steuereinrichtung mit hoher Rechenleistung notwendig. Die zweite Steuereinrichtung hingegen kann ohne die Fehlererkennungseinrichtung genutzt werden, da sie als Standby- System im normalen Betriebsfall nur parallel zu dem Master- System läuft und nur im Fehlerfall des Systems in der Regel kurzfristig eingesetzt wird. Die zweite Steuereinrichtung, die ohne codierte Verarbeitung läuft, kann eine entsprechend geringere Rechenleistung aufweisen. Sie ist damit entsprechend günstiger zu realisieren.
Wie bereits angedeutet wurde, kann das Gesamtsystem eine De- bug-Einrichtung aufweisen, bzw. in der Erstellungsphase des Steuerprogramms an einen Debugger angeschlossen werden. Dies ist deswegen problemlos möglich, da in der zweiten Steuereinrichtung eine uncodierte Verarbeitung stattfindet. Der Debugger könnte nicht an die erste Steuereinrichtung angeschlossen werden, in der eine codierte Verarbeitung läuft. Da die beiden Steuereinrichtungen miteinander synchronisiert sind, kann also über die zweite Steuereinrichtung indirekt ein Debugging der ersten Steuereinrichtung, die ja codiert verarbeitet, stattfinden. Das erfindungsgemäße System besitzt also den doppelten Vorteil, dass zum einen in der Steuereinrichtung mit codierter Verarbeitung eine zuverlässige, automatisierte Fehlererkennung und in der zweiten Einrichtung, in der nicht codiert verarbeitet wird, ein systemübergreifendes Debugging stattfinden kann. Die vorliegende Erfindung ist anhand der beigefügten Zeichnungen näher erläutert, in denen zeigen:
FIG 1 den grundlegenden Aufbau eines hochverfügbaren Systems gemäß dem Stand der Technik und
FIG 2 die Architektur eines hochverfügbaren Systems mit codierter Verarbeitung gemäß der vorliegenden Erfindung . Die nachfolgend näher geschilderten Ausführungsbeispiele stellen bevorzugte Ausführungsformen der vorliegenden Erfindung dar.
Das hochverfügbare System gemäß der vorliegenden Erfindung ist in FIG 2 der Übersicht halber ohne etwaige Peripherieeinheiten bzw. Kommunikationskanäle (z. B. Bus) zwischen Rechnersystemen und Peripherieeinheiten dargestellt. Es sind in FIG 2 im Wesentlichen nur die zwei Rechnersysteme 1 und 2 (hier auch Steuereinrichtungen 1 und 2 bzw. Systeme A und B genannt) dargestellt. Die erste Steuereinrichtung 1 vollführt eine codierte Verarbeitung. Sie besitzt einen entsprechenden codierten Programmcode 7. Beispielsweise handelt es sich um einen codierten Binärcode. Die zweite Steuereinrichtung 2 besitzt hingegen einen nicht codierten Code, z. B. einen Stan- dardprogrammcode 8. Basis für die Programmcodes ist ein
Quellcode 9. Dieser Quellcode 9 wird zum einen mithilfe eines „coded Compiler" 10 in den codierten Programmcode 7 übersetzt. Der gleiche Quellcode 9 wird mit einem Standardcompi- ler 11 bzw. einem systemspezifischen Compiler in den Standard-Programmcode 8 bzw. einem systemspezifischen Programmcode übersetzt. Zur Realisierung eines hochverfügbaren Automatisierungssystems ist wie in dem Beispiel von FIG 1 eine Synchronisation zwischen den beiden Steuereinrichtungen 1 und 2 (d. h. zwischen den Systemen A und B notwendig) . Dazu ist wie in dem Automatisierungssystem von FIG 1 auch eine Synchronisations- Verbindung 3 vorgesehen, mit der ein bidirektionaler Datenaustausch möglich ist. Da jedoch im vorliegenden Fall ein Datenaustausch zwischen den Steuereinrichtungen 1 und 2 nicht ohne Weiteres möglich ist, da die erste Steuereinrichtung 1 eine codierte Verarbeitung und die zweite Steuereinrichtung 2 eine nicht codierte Verarbeitung vollzieht, ist für die Synchronisation beider Einheiten in der Synchronisationsverbindung 3 eine Codierer/Decodierer-Einheit 12 vorgesehen.
Schickt also der Master (Steuereinrichtung 1) zum Zwecke der Synchronisation Daten an das Standby-System ( Steuereinrich- tung 2), so müssen seine codierten Daten für das Standby- System decodiert werden. Umgekehrt, wenn das Standby-System 2 an den Master 1 Daten zurücksendet bzw. beispielsweise eine Anfrage macht, so sind die entsprechenden Daten zu codieren, denn in dem einfachen Standby-System 2 werden die Daten unco- diert erstellt bzw. verarbeitet.
Dieses uncodierte Verarbeiten der Daten in der zweiten Steuereinrichtung 2 hat den zusätzlichen Vorteil, dass ein Debugger 13 an die zweite Steuereinrichtung 2 zum Zwecke der Sys- temanalyse beim Erstellen des Programms angeschlossen werden kann. Der Debugger 13 kann dann zwar nur die zweite Steuereinrichtung analysieren, da aber diese aufgrund der Synchronisation im Wesentlichen den gleichen Zustand besitzt wie die erste Steuereinrichtung, kann somit auch indirekt auf den Zu- stand der ersten Steuereinrichtung 1 geschlossen werden.
Zusammenfassend zeigt FIG 2 also ein Automatisierungssystem, bei dem eine plattformunabhängige Diagnosestrategie möglich ist. Insbesondere ermöglicht die codierte Verarbeitung, wie erwähnt, in der einen Steuervorrichtung eine automatische Fehlerdiagnose, und die andere Steuereinrichtung, die in der Regel als Standby-System genutzt wird, kann ohne automatische Fehlerdiagnose einfach ausgelegt sein. Bei dem Gesamtsystem kann es sich, wie ebenfalls bereits erwähnt wurde, um ein Hot-Standby oder ein arm-Standby-System handeln.
Nachfolgend wird die Funktion dieses hochverfügbaren Automatisierungssystems konkreter erläutert. Die beiden Steuereinrichtungen 1, 2 arbeiten das logisch identische Anwenderprogramm (Quellcode 9) ab. Dabei arbeitet eines der beiden Teilsysteme (in FIG 2 die Steuereinrichtung 1) in einer in geeigneter Weise codierten Form. Die zweite Steuereinrichtung 2 arbeitet in uncodierter Arbeitsweise. Eine mögliche codierte Arbeitsweise kann das so genannte „coded processing" gemäß dem eingangs erwähnten Artikel von Forin sein, bei der ein Rechnersystem nicht die ursprünglichen Anweisungen ausführt, sondern codierte Anweisungen bzw. Datenstrukturen bearbeitet. Der Zweck der codierten Verarbeitung liegt in der dadurch auf dem System A bzw. auf der Steuereinrichtung 1 möglichen Fehlererkennung. Die auf der Basis der Codierung realisierbare Fehlererkennung ist plattformunabhängig und kann damit leicht portiert werden. Die Erzeugung des codierten Programms geschieht durch einen speziellen Compiler 10. Als Quelle für den codierten Programmcode 7 sowie den Standard-Programmcode 8 dient, wie erwähnt, der identische Quellcode 9.
Beide Teilsysteme 1, 2 werden über einen Codierer bzw. Deco- dierer 12 synchronisiert. Aufgrund der Tatsache, dass beide Teilsysteme 1, 2 das Anwenderprogramm auf unterschiedliche Art und Weise verarbeiten, muss diese Synchronisation über einen geeigneten Übersetzer erfolgen, der die unterschiedlichen Datenstrukturen ineinander umwandelt. Die Synchronisation des codierten mit dem uncodierten Programm ist prinzipiell möglich, da zu jeder codierten Anweisung auch eine uncodierte Anweisung existiert. Der für die Synchronisation erforderliche Codierer/Decodierer 12 kann auf der technischen Umsetzung des Compilers 10 für das codierte Teilsystem (hier System A bzw. Steuereinrichtung 1) aufsetzen. Die Übersetzung der Datenstrukturen in codierte Form erfolgt bei der Synchronisation zur Laufzeit (also online), während sie beim Compilerlauf offline abgearbeitet wird. In vorteilhafter Weise wird so ein codiert arbeitendes System mit einem uncodiert arbeitenden System zu einem hochverfügbaren System kombiniert. Dadurch wird zum einen eine plattformunabhängige Diagnose ermöglicht, die keine speziellen Hardware-Anforderungen beinhaltet. Zum anderen wird aber auch ein anderes grundlegendes Problem gelöst, das einen Einsatz codierter Verarbeitung in bekannten Systemen erheblich erschwert. Das codiert ablaufende Anwenderprogramm 7 ist für den Anwender nämlich nicht zu debuggen, da sämtliche Daten und Befehle in codierter Form vorliegen. In dem erfindungsgemäßen, hochverfügbaren System wird dieses Problem umgangen, indem für das Debuggen das Teilsystem (Steuereinrichtung 2) verwendet wird, welches den uncodierten Code abarbeitet (System B) . Da beide Teilsysteme synchron laufen, ist dadurch eine Fehlersuche im Anwenderprogramm möglich, ohne die codierte Verarbeitung aufgeben zu müssen.
Bezugs zeichenliste
1, 2 Steuereinrichtungen
3 SynchronisationsVerbindung
4, 5 Peripherieeinheiten
6 Bussystem
7 codierter Programmcode
8 Standardprogrammcode
9 Quellcode
10 codierender Compiler
11 Standardcompiler
12 Codierer/Decodierer-Einheit 13 Debugger

Claims

Patentansprüche
1. Vorrichtung zum Steuern einer Maschine mit
- einer ersten Steuereinrichtung (1), mit der ein erster
Programmcode (7) zum Steuern verarbeitbar ist,
einer parallelen zweiten Steuereinrichtung (2), mit der ein zweiter Programmcode (8) zum Steuern verarbeitbar ist, und
- einer Synchronisationseinrichtung (3) zum Synchronisieren der ersten Steuereinrichtung (1) mit der zweiten Steuereinrichtung (2) ,
dadurch gekennzeichnet, dass
der erste Programmcode (7) ein codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber einem zugrunde liegenden Quellcode (9) codiert sind, der zweite Programmcode (8) ein nicht codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber dem Quellcode (9) nicht codiert sind, und - die Synchronisationseinrichtung (3) eine Codiereinrichtung (12) aufweist, um Daten, die bei der Synchronisation kommuniziert werden, entsprechend der Codierung des ersten Programmcodes (7) in Abhängigkeit von der Kommunikationsrichtung zu codieren oder zu decodieren.
2. Vorrichtung nach Anspruch 1, wobei die erste Steuereinrichtung (1) an eine erste Compilereinrichtung (10) angeschlossen ist, mit der der Quellcode (9) in den codierten ersten Programmcode (7) übersetzbar ist, und die zweite Steu- ereinrichtung (2) an eine zweite Compilereinrichtung (11) angeschlossen ist, mit der der Quellcode (9) in den nicht codierten zweiten Programmcode (8) übersetzbar ist.
3. Vorrichtung nach Anspruch 1 oder 2, wobei die erste Steu- ereinrichtung (1) eine Fehlererkennungseinrichtung aufweist, mit der beim Verarbeiten des codierten ersten Programmcodes (7) anhand der Codierung ein Fehler erkennbar ist.
4. Vorrichtung nach einem der vorhergehenden Ansprüche, die eine Debug-Einrichtung (13) aufweist, mit der eine Verarbeitung des nicht codierten Programmcodes (8) in der zweiten Steuereinrichtung (2) hinsichtlich Fehler überprüfbar ist, so dass wegen der Synchronisation auch die Verarbeitung in der ersten Steuereinrichtung (1) indirekt überprüfbar ist.
5. Verfahren zum Steuern einer Maschine durch
- Verarbeiten eines ersten Programmcodes (7) zum Steuern mit einer ersten Steuereinrichtung (1),
Verarbeiten eines zweiten Programmcodes (8) zum Steuern mit einer parallelen zweiten Steuereinrichtung (2),
Synchronisieren der ersten Steuereinrichtung (1) mit der zweiten Steuereinrichtung (2),
dadurch gekennzeichnet, dass
der erste Programmcode (7) ein codierter Programmcode ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber einem zugrunde liegenden Quellcode (9) codiert sind,
- der zweite Programmcode (8) ein nicht codierter Programm- code ist, bei dem Arbeitsanweisungen und/oder Datenstrukturen gegenüber dem zugrunde liegenden Quellcode (9) nicht codiert sind, und
die bei dem Synchronisieren zwischen den Steuereinrichtungen kommunizierten Daten entsprechend der Codierung des ersten Programmcodes (7) abhängig von der Kommunikationsrichtung codiert oder decodiert werden.
6. Verfahren nach Anspruch 5, wobei der Quellcode (9) in den codierten ersten Programmcode (7) für die erste Steuerein- richtung (1) und der gleiche Quellcode (9) in den nicht codierten zweiten Programmcode (8) für die zweite Steuereinrichtung (2) übersetzt wird.
7. Verfahren nach Anspruch 5 oder 6, wobei beim Verarbeiten des codierten ersten Programmcodes (7) anhand der Codierung ein Fehler detektiert wird.
8. Verfahren nach einem der Ansprüche 5 bis 7, wobei ein Ve arbeiten des ersten Programmcodes (7) in der ersten Steuereinrichtung (1) indirekt dadurch überprüft wird, dass das Verarbeiten des zweiten Programmcodes (8) in der synchronisierten zweiten Steuereinrichtung (2) durch einen Debugger (13) überprüft wird.
EP10748054.3A 2010-08-19 2010-08-19 Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode Ceased EP2583178A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/005100 WO2012022362A1 (de) 2010-08-19 2010-08-19 Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode

Publications (1)

Publication Number Publication Date
EP2583178A1 true EP2583178A1 (de) 2013-04-24

Family

ID=42829404

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10748054.3A Ceased EP2583178A1 (de) 2010-08-19 2010-08-19 Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode

Country Status (2)

Country Link
EP (1) EP2583178A1 (de)
WO (1) WO2012022362A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075295A1 (en) * 2004-10-04 2006-04-06 Cisco Technology, Inc., A California Corporation Method of debugging "active" unit using "non-intrusive source-level debugger" on "standby" unit of high availability system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10219501B4 (de) * 2002-04-30 2010-04-01 Siemens Ag System und Verfahren zur Verbesserung von Fehlerbeherrschungsmassnahmen, insbesondere in Automatisierungssystemen
JP4710688B2 (ja) * 2006-03-28 2011-06-29 沖電気工業株式会社 冗長システムのファイル更新方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075295A1 (en) * 2004-10-04 2006-04-06 Cisco Technology, Inc., A California Corporation Method of debugging "active" unit using "non-intrusive source-level debugger" on "standby" unit of high availability system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENG WANG ET AL: "Compiler-Managed Software-based Redundant Multi-Threading for Transient Fault Detection", FIFTH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO '07). MARCH 11-14, 2007, IEEE, PI, 11 March 2007 (2007-03-11), pages 244 - 258, XP058094934, ISBN: 978-0-7695-2764-2, DOI: 10.1109/CGO.2007.7 *
See also references of WO2012022362A1 *
UTE WAPPLER ET AL: "Software Encoded Processing: Building Dependable Systems with Commodity Hardware", 18 September 2007, COMPUTER SAFETY, RELIABILITY, AND SECURITY; [LECTURE NOTES IN COMPUTER SCIENCE], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 356 - 369, ISBN: 978-3-540-75100-7, XP019071856 *

Also Published As

Publication number Publication date
WO2012022362A1 (de) 2012-02-23

Similar Documents

Publication Publication Date Title
DE102009054157C5 (de) Steuerungssystem zum Steuern von sicherheitskritischen und nichtsicherheitskritischen Prozessen
DE102005055428B4 (de) Busmodul zum Anschluss an ein Bussystem sowie Verwendung eines solchen Busmoduls in einem AS-i-Bussystem
EP1743225B1 (de) Redundantes automatisierungssystem umfassend ein master- und ein stand-by-automatisierungsgerät
WO2014161909A1 (de) Steuer- und datenübertragungsanlage, prozesseinrichtung und verfahren zur redundanten prozesssteuerung mit dezentraler redundanz
DE102017109886A1 (de) Steuerungssystem zum Steuern von sicherheitskritischen und nichtsicherheitskritischen Prozessen mit Master-Slave-Funktionalität
EP2441003B1 (de) Gleitkommaarithmetik mit fehlererkennung
EP2246756B1 (de) Verfahren und Bediengerät zum Bedienen einer sicherheitsgerichteten industriellen Automatisierungskomponente
DE102008009652A1 (de) Überwachungseinrichtung und Überwachungsverfahren für einen Sensor, sowie Sensor
EP1989470A1 (de) Sicherheitskonzept für eine getriebestellvorrichtung
DE102004018857A1 (de) Sicherheitssteuerung
EP3493000A1 (de) Verfahren zum fehlersicheren erfassen eines messwertes und automatisierungssystem
DE102004035901B4 (de) Einrichtung zum Steuern eines sicherheitskritischen Prozesses
EP2418580B1 (de) Verfahren zum Betreiben eines Netzwerkes und Netzwerk
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102010041437B4 (de) Überprüfung von Funktionen eines Steuersystems mit Komponenten
EP2075655A1 (de) Sicherheitssteuerung
EP2583178A1 (de) Vorrichtung und verfahren zum steuern einer maschine mit codiertem und nicht codiertem programmcode
DE102005007477B4 (de) Programmierbare Steuerung zur Maschinen-und/oder Anlagenautomatisierung mit Standard-Steuerungs- und Sicherheitsfunktionen und Kommunikation mit einer Sicherheits-EA sowie Verfahren zum Betrieb der programmierbaren Steuerung
EP2864845B1 (de) Automatisierte rekonfiguration eines ereignisdiskreten regelkreises
DE10147763A1 (de) Synchronisationsverfahren für ein hochverfügbares Automatisierungssystem
WO2011113405A1 (de) Steuergeräteanordnung
EP4211525B1 (de) Vorrichtung und verfahren zur erzeugung und übertragung von steuerbefehlen für ein automatisiert fahrendes kraftfahrzeug
EP3971662B1 (de) Verfahren zum betreiben eines redundanten automatisierungssystems
DE10319903B4 (de) Eigensichere Rechneranordnung
DE10357797A1 (de) Peripherieeinheit für ein redundantes Steuersystem

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20121220

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20150209

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS AKTIENGESELLSCHAFT

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20191017