WO2016138956A1 - Error-resilient control for an automation system - Google Patents

Error-resilient control for an automation system Download PDF

Info

Publication number
WO2016138956A1
WO2016138956A1 PCT/EP2015/054579 EP2015054579W WO2016138956A1 WO 2016138956 A1 WO2016138956 A1 WO 2016138956A1 EP 2015054579 W EP2015054579 W EP 2015054579W WO 2016138956 A1 WO2016138956 A1 WO 2016138956A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
result
control device
processor device
control
Prior art date
Application number
PCT/EP2015/054579
Other languages
German (de)
French (fr)
Inventor
Thomas Grosch
Maximilian Walter
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to PCT/EP2015/054579 priority Critical patent/WO2016138956A1/en
Publication of WO2016138956A1 publication Critical patent/WO2016138956A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring

Definitions

  • the invention relates to a method for controlling a plant component of an automation system.
  • the invention also includes a control device for carrying out the method and an automation system with the control device.
  • a control device can generate output values for setting the system component, as can be generated, for example, on the basis of a control algorithm or a controller algorithm in dependence on input values of the automation system.
  • a control device for a system component that heats a boiler can regulate a heating output as output value as a function of an input value "temperature.”
  • the control device can be designed, for example, as a programmable logic controller (PLC).
  • a control device can be arranged in the field of the automation system where the process to be carried out by the automation system takes place. This can lead to a thermal and / or mechanical stress or radiation exposure of the control device. This may cause the processor device to malfunction when executing the control routine. For example, memory contents can be falsified in a memory of the processor device, ie bits can be tilted or changed.
  • fail-safe control devices are used in industrial automation technology in many places.
  • simple interlocking and / or limit value monitoring there is an increasing need to also implement safety functions with more complex evaluations.
  • this includes the calcula- More complex filtering algorithms or fail-safe use of matrix operations.
  • a control routine for setting an installation component can have so-called functionally secured processing steps for this purpose.
  • a functionally secured processing step also includes an additional check for error-free execution. For example, a falsification of a memory content can be detected, as it can be caused by radioactive radiation or heat.
  • a fail-safe control device can be realized, for example, by means of coded processing.
  • the safety-relevant processing steps are performed on the basis of coded data as well as coded operations.
  • the data and control commands are supplemented by an arithmetic transparent coding with redundant information.
  • This arithmetically transparent coding is referred to here for short as arithmetic coding.
  • An arithmetic coding is characterized in that the coding is retained even after arithmetic operations. For example, if A and B are valid coded values, A + B is the valid coded result of adding these values without decoding as an intermediate step.
  • the operation "+" must be modified for this procedure, which is generally referred to as "coded processing".
  • coded processing The execution or processing of such coded commands is time consuming. Coded processing can increase the runtime by several orders of magnitude, which limits the possible use of fail-safe control.
  • the invention has for its object to provide a robust control for a system component of an automation system.
  • the invention comprises a method for controlling a plant component of an automation plant.
  • the method is carried out by a control device executing a control routine by means of a first processor device.
  • the control routine may e.g. to realize a controller.
  • the control routine generates output values for setting the system component as a function of input values of the automation system.
  • the control routine comprises at least one section, each having at least one functionally-secured processing step. Such a section will be referred to as a safe section below.
  • a functionally-assured processing step in the manner described also includes checking for error-free performance of the processing step in addition to processing or calculating or checking values for generating the output values.
  • each functionally-secured processing step may be formed by an arithmetic-coded processor instruction and / or coded data values and / or it may be checked to verify plausibility of a result of the processing step whether the result of the processing step lies within a predetermined interval of allowable values.
  • the check additionally provided by the functional fuse does not change the result but only generates an additional signal that the processing step was error-free (no bit errors and / or result of the processing step within an allowable value interval) or that the processing step was erroneous (bit error, implausible) Result outside the value interval).
  • the processing step may be provided by means of the described "coded processing".
  • a secure section is realized by unsecured processing steps whose execution remains unchecked in terms of a plausibility of the processing step.
  • the described signal is not calculated or generated for erroneous or error-free execution of the respective method step.
  • the control routine also has an unsafe section.
  • the unsafe portion includes at least one unsecured processing step, that is, a processing step that is performed unchecked.
  • the first processor device generates a first unchecked result by executing the unsafe portion.
  • the result may be a numeric value.
  • the at least one secure section it is not clear at the end of the uncertain section whether the unchecked first result is corrupted by a bit error in the first processor device. For this, the first unchecked result has been determined with a lower calculation effort and thus with a shorter duration than in the case where the first result is determined on the basis of functionally-secured processing steps.
  • the method provides that the non-safe section is additionally executed by a second processor device and as a result the second processor device generates a second unchecked result.
  • the first and / or the second processor device compare the first result and the second result. By comparing, a signal can be generated that signals whether the unsafe portion in both processor devices has expired identically.
  • the advantage of the invention is that time-critical or complex calculations can be carried out quickly by means of the uncertain section. At the same time, verification of the result of the unsafe portion is made possible by calculating the unsafe portion twice, each from one of the two processor devices.
  • the method can also be provided with several unsafe sections.
  • the invention also includes developments, which give additional advantages.
  • each functionally-secured processing step is provided by arithmetic-coded commands. By checking using the arithmetic coding, a bit corruption of the commands is detected.
  • each functionally-assured processing step is stored in a memory of the processor device as an arithmetic-coded instruction or by means of arithmetic coding. Accordingly, the at least one unsecured processing step of the uncertain section redundancy is free, that is stored without arithmetic coding in a memory of the first processor device.
  • At least one intermediate value which was generated by a preceding secure section, is transmitted to the second processor device at the beginning of the non-secure section.
  • the unchecked second result is calculated or determined or generated by the second processor device.
  • at least one predetermined safe substitute value is used instead of the results.
  • an output value can be provided or used, by which the system component is stopped or stopped.
  • the comparison of the results is carried out in a secure section. This results in the advantage that the comparison can be performed by a single one of the processor devices and yet a falsification of the comparison result can be detected.
  • control routine provides or realizes a real-time loop.
  • a real-time loop generates an associated output value within a predetermined maximum time duration for a specific input value.
  • the maximum duration may be in the range of 10 milliseconds to one second.
  • Another term for real-time loop is loop or control loop. The maximum duration can be maintained in an advantageous manner by realizing runtime-critical sections as unsafe sections.
  • the second processor device performs the same control routine as the first processor device.
  • the two processor devices transmit their respective unchecked result to the other control device.
  • the two processor devices cross their respective unchecked result crosswise. That is, the second processor device is used not only to generate an uncertain result, but also to generate the output values to provide the plant component. This has the advantage that if the first processor device fails, the second without the set-up time or start time, the control of the system component can take over.
  • the second processor device comprises at least one processor core of the control device.
  • the first processor device and the second processor device are provided by different processor cores of the same processor. This has the advantage that the parallel or redundant or simultaneous execution of the unsafe section can be carried out in one and the same device.
  • the second processor device is provided by a computing device arranged separately from the control device and coupled to the control device via a communication network. This results in the advantage that at least the second processor device can be operated in a secure environment, for example in an air-conditioned environment or in a radiation-protected environment.
  • the second processor device executes a respective unsafe section for at least one further control device.
  • the second processor device is assigned not only to a control device, but to a plurality of control devices, each performing a control routine with an insecure section and using the second processor device as a redundant processor device for parallel or simultaneous or redundant execution of its respective non-secure section.
  • the invention also includes a control device for a system component of an automation system.
  • the control device has a receiving device for receiving input values and an output device for outputting output signals. th and a first processor device.
  • the control device can be designed, for example, as a programmable logic controller.
  • the receiving device may comprise, for example, a connection for a sensor and / or a bus connection for connecting a communication bus, for example a fieldbus.
  • the output device may, for example, include a connection for connecting the system component and for outputting control signals for the system component.
  • the output device may additionally or alternatively also include a bus connection.
  • the processor device may comprise, for example, a central processing unit (CPU) or a microcontroller or an ASIC (application specific integrated circuit).
  • the first processor device is configured to generate the output values from the input values by means of a control routine having at least one secure section and at least one non-secure section.
  • Each secure section comprises at least one functionally secured processing step as described.
  • Each unsafe section comprises at least one unsecured processing step as described.
  • the control device is designed to trigger the execution of the unsafe section at the beginning of each insecure section at a second processor device. In other words, the control device is designed to trigger a parallel or simultaneous or redundant execution or execution of each non-secure section in a second processor device.
  • the second processor device may be part of the control device itself.
  • the first processor device and the second processor device may each be formed by at least one processor core of a multi-core processor, wherein the at least one processor core of the first processor device and the at least one processor core of the second processor device are different.
  • the second processor device can also be arranged outside the control device, for example in a further computing device of the automation system.
  • the invention also includes the automation system with at least one system component, for each of which a control device is provided which in each case has a first processor device.
  • the control device provided in each case is an embodiment of the control device according to the invention.
  • at least one further processor device is provided, and the automation system is designed to carry out an embodiment of the method according to the invention by means of the at least one further processor device.
  • the at least one further processor device in each case represents a second processor device with regard to the unsafe sections of the control routines.
  • FIG. 1 shows a schematic representation of an embodiment of the automation system according to the invention
  • FIG. 2 shows a schematic representation of a first and a second processor device, as may be provided in the automation system of FIG. 1, and
  • FIG. 3 shows a schematic representation of an arrangement of a plurality of control devices and a central computing device, as may be provided in the automation system of FIG.
  • the exemplary embodiment explained below is a preferred embodiment of the invention.
  • the described components of the embodiment in each case represent individual features of the invention, which are to be considered independently of one another, which further develop the invention independently of one another and which may also be considered as part of the invention individually or in any other than the combination shown.
  • the described embodiment can also be supplemented by further features of the invention already described.
  • a production process can be carried out, by which a product is produced, for example motor vehicles.
  • the process may also be a process by which a process is carried out, for example, the recovery of electrical energy from nuclear power or the bottling of a beverage.
  • the process may also be a control process, for example the control of traffic lights of a traffic light system in a traffic route network, for example a district.
  • the automation system can have system components 2, 3, of which only two are shown in FIG. 1 for the sake of clarity.
  • the plant component 2, 3 can each be, for example, a production cell (PROD), that is, for example, a CNC milling machine or a robot.
  • the plant component 2, 3 can also be, for example, a production line for conveying a product or intermediate product.
  • the plant component 2, 3 can also be, for example, a single signal generator in a signaling system, e.g. a traffic light.
  • the plant component can generally represent an actuator device.
  • a control device 4 For controlling the system component 2, a control device 4 is provided, which may be, for example, a programmable logic controller (PLC).
  • the control device 4 can via a data network 5, for example a Fieldbus, such as a Profinet bus, be coupled to the system component 2.
  • the control device 4 can be connected to the data network 5 via an output device 6, for example a bus coupling device.
  • the control device 4 can have a first processor device 7, by means of which a control routine 8 can be carried out in a manner known per se.
  • the control routine 8 can realize or provide, for example, a controller for the system component 2.
  • output values 10 can be generated by the processor device 7 from input values which can be transmitted via the output device 6 to the system component 2.
  • the output values 10 may represent a control signal for the system component 2.
  • the input values 9 can be received by the control device 4 via a receiving device 11.
  • the receiving device 11 may be, for example, a bus coupler or a bus connection.
  • the input values 9 can be generated, for example, by sensors 12, which, for example, can detect temperature values of the system component 2, 3 or speed values or other current values of an operating variable or an operating parameter of the automation system 1 as input values.
  • the control routine 8 can be realized, for example, as a real-time program loop or real-time loop. In other words, the control routine 8 is executed repeatedly or periodically by the processor device 7, it being ensured that each pass does not exceed a predetermined maximum time duration. So that a run of the control routine 8 is possible within the maximum period, the control routine 8 is subdivided into at least one secure section 13 and at least one non-secure section 14. Each secure section 13 is implemented by at least one functionally-secured processing step. For example, each processing step may be formed by a coded processor instruction and coded data values and / or it may be used to verify a result of the processing. be checked whether a result of the processing step in a predetermined interval of acceptable values.
  • Each unsafe section 14, on the other hand, is realized by unsecured processing steps, the execution of which remains unchecked in terms of a plausibility of the processing step.
  • a functionally-assured processing step requires more runtime or processing time compared to a functionally identical unsecured processing step.
  • the control routine 8 can be accelerated and thereby, for example, the predetermined maximum time duration for the real-time loop or real-time control can be maintained.
  • a second processor device 17 is provided, which can be realized, for example, by a further processor core in the control device 4.
  • the second processor device 17 can also be provided, for example (as shown in FIG. 1), by a computing device that is different from the control device 4.
  • each unsafe portion 14 can be performed.
  • the intermediate values 16 can be transmitted via a communication channel 18 from the first processor device 7 to the second processor device 17.
  • the communication channel 18 may be a shared memory area. If the processor devices 7, 17 are provided by different devices, the communication channel 18 may comprise, for example, a communication network or data network.
  • the section 14 ⁇ carried out by the second processor device 17 an unchecked second result 19 is generated on the basis of the transmitted intermediate values 16, which can be transmitted again to the first processor device 7 via the communication channel 18.
  • the processor device 7, the first and the second unchecked result 15, 19 can be compared with one another. This makes it possible to determine whether there has been an error in the calculation of the results 15, 19. If the results 15, 19 match, it can be assumed that there is no error and the result 15 can be used for the subsequent safe section 13. Otherwise, a secure replacement value 20 can be used.
  • a further redundancy can also be provided in that the second processor device 17 executes a control routine 8 ⁇ , which is identical to the control routine 8.
  • secure sections 13 ⁇ can also be performed by the second processor device 17, wherein the secure sections 13 ⁇ are identical to the secure sections 13.
  • redundant output values 10 ⁇ can be generated by the processor device 17. If one of the processor devices 7, 17 fails, then the remaining processor device is ready to generate output values 10, 10 ⁇ .
  • program parts of the control routine 8 which does not encode can be processed or processed in parallel via hardware redundancy. All other program parts continue to be processed in the usual way, for example, coded as secure sections 13 without hardware redundancy.
  • two methods for robust or fail-safe processing of input values 9 for generating output values 10 are thus combined.
  • the hardware redundancy can be understood both in the form of a second, physical control and in the form of a second virtual control, which is executed on a second processor core.
  • FIG 2 again illustrates the basic operation.
  • a program part representing the unsafe portion is uncoded and processed redundantly in an identical manner.
  • program parts which, for example, are coded and processed without hardware redundancy, continue to be processed as secure sections before and after the program part of the non-secure section 14 to be processed redundantly. These program parts are not affected by the redundant processing. Coded and non-coded, but redundant program parts can alternate.
  • the coded intermediate values 16 are first decoded in a decoding step 23 (DEC-decode) and converted to the second by means of, for example, an error-proof transmission method (for example PROFISafe) Processor device 17 transmitted.
  • an error-proof transmission method for example PROFISafe
  • the intermediate values 16 are received in a receiving step 24 (REC - receive) and checked for corruption.
  • the calculated result 19 of the second processor device 17 is sent back from the latter in a fail-safe manner in a transmission step 25 (SND-send).
  • the first processor device 7 receives the result 19 of the second processor device 17 and compares this with the result 15 calculated by itself in a comparison step 26 (CHK / ENC check / encode).
  • the received result 19 is coded, and the comparison is coded, that is functionally secured.
  • the comparison step 26 is a functionally assured processing step.
  • the output values 10 are then calculated with identical results 15, 19 from the result 15 or 19 by coded processing without hardware redundancy on the first processor device 7.
  • the method described makes it possible to reliably detect errors in the processing of the uncoded redundant operations.
  • a safety integrity level For a user program consisting of coded and uncoded but redundant parts, a safety integrity level (SIL) can be achieved for applications in industrial automation technology.
  • the prerequisite for the method is that the redundant program parts must be present on both processor devices. This can be supported and ensured, for example, by an engineering system.
  • each control device 4 is connected to the common remote second processor device 17 via a data network 27.
  • the data network 27 may be provided, for example, as an Ethernet network.
  • the shared remote second processor device 17 is able to process the respective redundantly executed program parts of each control device 4 in parallel.
  • a secure remote function call or procedure call 28 RPC
  • RPC procedure call 28
  • numerous control devices 4 for the processing of complex program parts can be upgraded at low cost.
  • the procedure call 28 initiates the execution of the respective unsafe section in the second processor device 17.
  • output values 10, 10 ⁇ can thereby be generated in a redundant manner.
  • Such systems can be used to increase the availability, since in this case, both of the control devices, the same control routine 8, 8 ⁇ execute and thereby mutually results 15, 15 ⁇ of unsafe sections 14, 14 exchange ⁇ .
  • the example shows how the invention can provide a method for the secure execution of complex operations by means of secure remote procedure call (RPC).
  • RPC secure remote procedure call

Abstract

The invention relates to a method for controlling a system component (2) of an automation system (1), wherein a control routine (8) is executed by a control device (4) by means of a first processor device (7) and, in dependence on input values (9), output values (10) for adjusting the system component (2) are generated by the control routine (8), wherein the control routine (8) has at least one secure portion (13) with at least one functionally secured processing step. Runtime-critical processing steps should also be secured. For this purpose, the control routine (8) comprises an unsecure portion (14) with at least one unsecured processing step. By executing the unsecure portion (14), the first processor device (7) generates an unverified first result (15). The unsecure portion (14) is additionally executed by a second processor device (17). As a result, the second processor device (17) generates an unverified second result (19). The first result (15) and the second result (19) are compared by the first and/or the second processor device (7, 17).

Description

Beschreibung description
Fehlerrobuste Steuerung für eine Automatisierungsanlage Error-proof control for an automation system
Die Erfindung betrifft ein Verfahren zum Steuern einer Anlagenkomponente einer Automatisierungsanlage. Zu der Erfindung gehören auch eine Steuervorrichtung zum Durchführen des Verfahrens sowie eine Automatisierungsanlage mit der Steuervorrichtung . The invention relates to a method for controlling a plant component of an automation system. The invention also includes a control device for carrying out the method and an automation system with the control device.
Zum Steuern einer Anlagenkomponente kann eine Steuervorrichtung Ausgangswerte zum Stellen der Anlagenkomponente erzeugen, wie sie beispielsweise auf der Grundlage eines Steueralgorithmus oder eines Regleralgorithmus in Abhängigkeiten von Eingangswerten der Automatisierungsanlage erzeugt werden können. Beispielsweise kann also eine Steuervorrichtung für eine Anlagenkomponente, die einen Kessel heizt, in Abhängigkeit von einem Eingangswert „Temperatur" eine Heizleistung als Ausgangswert regeln. Die Steuervorrichtung kann beispielsweise als speicherprogrammierbare Steuerung (SPS) ausgestaltet sein . For controlling a system component, a control device can generate output values for setting the system component, as can be generated, for example, on the basis of a control algorithm or a controller algorithm in dependence on input values of the automation system. Thus, for example, a control device for a system component that heats a boiler can regulate a heating output as output value as a function of an input value "temperature." The control device can be designed, for example, as a programmable logic controller (PLC).
Eine Steuervorrichtung kann im Feld der Automatisierungsanlage, wo der von der Automatisierungsanlage durchzuführende Prozess stattfindet, angeordnet sein. Hierbei kann es zu einer thermischen und/oder mechanischen Belastung oder einer Strahlenbelastung der Steuervorrichtung kommen. Dies kann dazu führen, dass die Prozessoreinrichtung beim Durchführen der Steuerroutine fehlerhaft arbeitet. Beispielsweise können in einem Speicher der Prozessoreinrichtung Speicherinhalte verfälscht werden, also Bits gekippt oder verändert werden. A control device can be arranged in the field of the automation system where the process to be carried out by the automation system takes place. This can lead to a thermal and / or mechanical stress or radiation exposure of the control device. This may cause the processor device to malfunction when executing the control routine. For example, memory contents can be falsified in a memory of the processor device, ie bits can be tilted or changed.
Aus diesem Grund kommen fehlersichere Steuervorrichtungen in der industriellen Automatisierungstechnik an vielen Stellen zum Einsatz. Neben einfachen Verriegelungen und/oder Grenzwertüberwachungen steigt der Bedarf, auch Sicherheitsfunktionen mit komplexeren Auswertungen zu realisieren. Darunter fallen neben trigonometrischen Operationen auch die Berech- nung komplexerer Filteralgorithmen oder fehlersichere Verwendung von Matrix-Operationen. Eine Steuerroutine zum Stellen einer Anlagenkomponente kann hierzu sogenannte funktionalgesicherte Verarbeitungsschritte aufweisen. Ein funktional- gesicherter Verarbeitungsschritt umfasst neben dem eigentlichen Berechnungs- oder Überprüfungsschritt auch eine zusätzliche Überprüfung auf fehlerfreie Durchführung. Beispielsweise kann also eine Verfälschung eines Speicherinhalts erkannt werden, wie sie durch radioaktive Strahlung oder Hitze verur- sacht werden kann. Eine fehlersichere Steuervorrichtung kann z.B. mittels kodierter Verarbeitung realisiert werden. Dabei werden die sicherheitsrelevanten Verarbeitungsschritte sowohl auf Basis kodierter Daten als auch mittels kodierter Operationen durchgeführt. Mit anderen Worten sind die Daten und Steuerbefehle durch eine arithmetische transparente Kodierung mit redundanten Informationen ergänzt. Diese arithmetisch transparente Kodierung wird hier kurz als arithmetische Kodierung bezeichnet. Eine arithmetische Kodierung ist dadurch gekennzeichnet, dass die Kodierung auch nach arithmetischen Verknüpfungen erhalten bleibt. Wenn beispielsweise A und B gültig kodierte Werte sind, ist A+B das gültig kodiert Ergebnis der Addition dieser Werte, ohne das eine Dekodierung als Zwischenschritt erfolgen muss. Je nach gewählter Kodierung muss die Operation „+" dafür abgewandelt werden. Diese Vorge- hensweise wird allgemein als „coded processing" (kodiertes Verarbeiten) bezeichnet. Die Abarbeitung oder Verarbeitung derart kodierter Befehle ist aber zeitaufwendig. Durch kodiertes Verarbeiten kann die Laufzeit um mehrere Größenordnungen ansteigen, was die Einsatzmöglichkeit der fehlersiche- ren Steuerung begrenzt. For this reason, fail-safe control devices are used in industrial automation technology in many places. In addition to simple interlocking and / or limit value monitoring, there is an increasing need to also implement safety functions with more complex evaluations. In addition to trigonometric operations, this includes the calcula- More complex filtering algorithms or fail-safe use of matrix operations. A control routine for setting an installation component can have so-called functionally secured processing steps for this purpose. In addition to the actual calculation or verification step, a functionally secured processing step also includes an additional check for error-free execution. For example, a falsification of a memory content can be detected, as it can be caused by radioactive radiation or heat. A fail-safe control device can be realized, for example, by means of coded processing. The safety-relevant processing steps are performed on the basis of coded data as well as coded operations. In other words, the data and control commands are supplemented by an arithmetic transparent coding with redundant information. This arithmetically transparent coding is referred to here for short as arithmetic coding. An arithmetic coding is characterized in that the coding is retained even after arithmetic operations. For example, if A and B are valid coded values, A + B is the valid coded result of adding these values without decoding as an intermediate step. Depending on the coding selected, the operation "+" must be modified for this procedure, which is generally referred to as "coded processing". The execution or processing of such coded commands is time consuming. Coded processing can increase the runtime by several orders of magnitude, which limits the possible use of fail-safe control.
Der Erfindung liegt die Aufgabe zugrunde, eine robuste Steuerung für eine Anlagenkomponente einer Automatisierungsanlage bereitzustellen . The invention has for its object to provide a robust control for a system component of an automation system.
Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Weiterbildungen der Erfin- dung ergeben sich durch die Merkmale der abhängigen Patentansprüche . The object is solved by the subject matters of the independent claims. Advantageous developments of the invention tion result from the features of the dependent claims.
Die Erfindung umfasst ein Verfahren zum Steuern einer Anlagenkomponente einer Automatisierungsanlage. Das Verfahren wird durchgeführt, indem eine Steuervorrichtung mittels einer ersten Prozessoreinrichtung eine Steuerroutine ausführt. Die Steuerroutine kann z.B. einen Regler realisieren. The invention comprises a method for controlling a plant component of an automation plant. The method is carried out by a control device executing a control routine by means of a first processor device. The control routine may e.g. to realize a controller.
Durch die Steuerroutine werden in Abhängigkeit von Eingangswerten der Automatisierungsanlage Ausgangswerte zum Stellen der Anlagenkomponente erzeugt. Die Steuerroutine umfasst mindestens einen Abschnitt mit jeweils mindestens einem funktional-gesicherten Verarbeitungsschritt. Ein solcher Abschnitt wird im Folgenden als sicherer Abschnitt bezeichnet. Ein funktional-gesicherter Verarbeitungsschritt umfasst in der beschriebenen Weise zusätzlich zur Verarbeitung oder Berechnung oder Überprüfung von Werten zur Erzeugung der Ausgangswerte auch eine Überprüfung auf fehlerfreie Durchführung des Verarbeitungsschritts . The control routine generates output values for setting the system component as a function of input values of the automation system. The control routine comprises at least one section, each having at least one functionally-secured processing step. Such a section will be referred to as a safe section below. A functionally-assured processing step in the manner described also includes checking for error-free performance of the processing step in addition to processing or calculating or checking values for generating the output values.
Beispielsweise kann jeder funktional-gesicherten Verarbeitungsschritt durch einen arithmetisch kodierten Prozessorbefehl und/oder kodierte Datenwerte gebildet sein und/oder es kann zum Verifizieren einer Plausibilität eines Resultats des Verarbeitungsschritts überprüft werden, ob das Resultat des Verarbeitungsschrittes in einem vorbestimmten Intervall zulässiger Werte liegt. Die durch die funktionale Sicherung zusätzlich vorgesehene Prüfung verändert insbesondere nicht das Resultat, sondern erzeugt nur ein zusätzliches Signal, dass der Verarbeitungsschritt fehlerfrei war (keine Bitfehler und/oder Resultat des Verarbeitungsschritts innerhalb eines zulässigen Werteintervalls) oder dass der Verarbeitungsschritt fehlerhaft war (Bitfehler, unplausibles Resultat außerhalb des Werteintervalls) . Bei einem fehlerhaften Verarbeitungsschritt wird insbesondere das Resultat verworfen. Beispielsweise kann der Verarbeitungsschritt mittels des beschriebenen „coded processing" bereitgestellt sein. Ein sicherer Abschnitt ist dagegen durch ungesicherte Verarbeitungsschritte realisiert, deren Durchführung in Bezug auf eine Plausibilität des Verarbeitungsschrittes ungeprüft bleibt. Mit anderen Worten wird das beschriebene Signal zur fehlerhaften oder fehlerfreien Durchführung des jeweiligen Verfahrensschrittes nicht berechnet oder erzeugt. For example, each functionally-secured processing step may be formed by an arithmetic-coded processor instruction and / or coded data values and / or it may be checked to verify plausibility of a result of the processing step whether the result of the processing step lies within a predetermined interval of allowable values. In particular, the check additionally provided by the functional fuse does not change the result but only generates an additional signal that the processing step was error-free (no bit errors and / or result of the processing step within an allowable value interval) or that the processing step was erroneous (bit error, implausible) Result outside the value interval). In the case of a faulty processing step, in particular the result is discarded. For example, the processing step may be provided by means of the described "coded processing". A secure section, on the other hand, is realized by unsecured processing steps whose execution remains unchecked in terms of a plausibility of the processing step. In other words, the described signal is not calculated or generated for erroneous or error-free execution of the respective method step.
Um auch komplexe Berechnungen robust oder gegen Fehler gesichert ausführen zu können, ist bei dem erfindungsgemäßen Verfahren dennoch zusätzlich vorgesehen, dass die Steuerroutine auch einen unsicheren Abschnitt aufweist. Der unsichere Abschnitt umfasst mindestens einen ungesicherten Verarbeitungsschritt, das heißt einen Verarbeitungsschritt, der ungeprüft durchgeführt wird. Es wird also nicht überprüft, ob beispielsweise in einem Speicher der Prozessoreinrichtung die Steuerbefehle, die den Verarbeitungsschritt repräsentieren, durch Bitfehler verfälscht wurden. Die erste Prozessoreinrichtung erzeugt durch Ausführen des unsicheren Abschnitts ein erstes ungeprüftes Ergebnis. Bei dem Ergebnis kann es sich beispielsweise um einen Zahlenwert handeln. Anders als bei dem mindestens einen sicheren Abschnitt ist nun am Ende des unsicheren Abschnitts nicht klar, ob das ungeprüfte erste Ergebnis durch einen Bitfehler in der ersten Prozessoreinrichtung verfälscht ist. Dafür ist das erste ungeprüfte Ergebnis mit geringerem Berechnungsaufwand und damit mit geringerer Laufzeit ermittelt worden als in dem Fall, dass das erste Ergebnis auf Grundlage von funktional-gesicherten Verarbeitungsschritten ermittelt wird. In order to be able to carry out complex calculations robustly or against errors, it is additionally provided in the method according to the invention that the control routine also has an unsafe section. The unsafe portion includes at least one unsecured processing step, that is, a processing step that is performed unchecked. Thus, it is not checked whether, for example, in a memory of the processor device, the control commands representing the processing step have been corrupted by bit errors. The first processor device generates a first unchecked result by executing the unsafe portion. For example, the result may be a numeric value. Unlike the at least one secure section, it is not clear at the end of the uncertain section whether the unchecked first result is corrupted by a bit error in the first processor device. For this, the first unchecked result has been determined with a lower calculation effort and thus with a shorter duration than in the case where the first result is determined on the basis of functionally-secured processing steps.
Um das erste ungeprüfte Ergebnis überprüfen zu können, sieht das Verfahren vor, dass der unsichere Abschnitt zusätzlich durch eine zweite Prozessoreinrichtung ausgeführt wird und hierdurch die zweite Prozessoreinrichtung ein zweites ungeprüftes Ergebnis erzeugt. Durch die erste und/oder die zweite Prozessoreinrichtung werden das erste Ergebnis und das zweite Ergebnis verglichen. Durch das Vergleichen kann ein Signal erzeugt werden, das signalisiert, ob der unsichere Abschnitt in beiden Prozessoreinrichtungen identisch abgelaufen ist. Durch die Erfindung ergibt sich der Vorteil, dass mittels des unsicheren Abschnitts auch laufzeitkritische oder komplexe Berechnungen schnell durchgeführt werden können. Gleichzeitig ist die Überprüfung des Ergebnisses des unsicheren Abschnitts ermöglicht, indem der unsichere Abschnitt zweimal berechnet wird, jeweils von einer der beiden Prozessoreinrichtungen. Bei dem Verfahren können auch mehrere unsichere Abschnitte vorgesehen sein. In order to be able to check the first unchecked result, the method provides that the non-safe section is additionally executed by a second processor device and as a result the second processor device generates a second unchecked result. The first and / or the second processor device compare the first result and the second result. By comparing, a signal can be generated that signals whether the unsafe portion in both processor devices has expired identically. The advantage of the invention is that time-critical or complex calculations can be carried out quickly by means of the uncertain section. At the same time, verification of the result of the unsafe portion is made possible by calculating the unsafe portion twice, each from one of the two processor devices. The method can also be provided with several unsafe sections.
Zu der Erfindung gehören auch Weiterbildungen, durch welche sich zusätzliche Vorteile ergeben. The invention also includes developments, which give additional advantages.
In einer Weiterbildung wird jeder funktional-gesicherte Verarbeitungsschritt durch arithmetisch kodierte Befehle bereitgestellt. Durch die Überprüfung anhand der arithmetischen Kodierung wird eine Bitverfälschung der Befehle detektiert. Mit anderen Worten ist jeder funktional-gesicherte Verarbeitungsschritt in einem Speicher der Prozessoreinrichtung als arithmetisch kodierter Befehl oder mittels einer arithmetischen Kodierung gespeichert. Entsprechend ist der zumindest eine ungesicherte Verarbeitungsschritt des unsicheren Abschnitts redundanz frei , das heißt ohne arithmetische Kodierung in einem Speicher der ersten Prozessoreinrichtung gespeichert. In a development, each functionally-secured processing step is provided by arithmetic-coded commands. By checking using the arithmetic coding, a bit corruption of the commands is detected. In other words, each functionally-assured processing step is stored in a memory of the processor device as an arithmetic-coded instruction or by means of arithmetic coding. Accordingly, the at least one unsecured processing step of the uncertain section redundancy is free, that is stored without arithmetic coding in a memory of the first processor device.
Durch die Verwendung arithmetisch kodierter Befehle ergibt sich somit für den zumindest einen sicheren Abschnitt jeweils ein „coded processing". The use of arithmetically coded commands thus results in a "coded processing" for the at least one secure section.
Gemäß einer Weiterbildung wird mit Beginn des unsicheren Abschnitts mindestens ein Zwischenwert, der durch einen vorangegangen sicheren Abschnitt erzeugt wurde, an die zweite Prozessoreinrichtung übertragen. Hierdurch ergibt sich der Vorteil, dass die erste Prozessoreinrichtung und die zweite Prozessoreinrichtung koordiniert oder synchronisiert werden. Durch die zweite Prozessoreinrichtung wird aus dem mindestens einen Zwischenwert dann das ungeprüfte zweite Ergebnis berechnet oder ermittelt oder erzeugt. Gemäß einer Weiterbildung wird für den Fall, dass bei dem Vergleich des ersten Ergebnisses mit dem zweiten Ergebnis ein Unterschied zwischen den beiden Ergebnissen erkannt wird, anstelle der Ergebnisse mindestens ein vorbestimmter sicherer Ersatzwert verwendet. Beispielsweise kann als Ersatzwert ein Ausgabewert bereitgestellt oder verwendet werden, durch welchen die Anlagenkomponente angehalten oder gestoppt wird. According to a development, at least one intermediate value, which was generated by a preceding secure section, is transmitted to the second processor device at the beginning of the non-secure section. This results in the advantage that the first processor device and the second processor device are coordinated or synchronized. From the at least one intermediate value then the unchecked second result is calculated or determined or generated by the second processor device. According to a development, in the event that a difference between the two results is detected in the comparison of the first result with the second result, at least one predetermined safe substitute value is used instead of the results. For example, as an alternative value, an output value can be provided or used, by which the system component is stopped or stopped.
Gemäß einer Weiterbildung wird das Vergleichen der Ergebnisse in einem sicheren Abschnitt durchgeführt. Hierdurch ergibt sich der Vorteil, dass der Vergleich durch eine einzelne der Prozessoreinrichtungen durchgeführt werden kann und dennoch eine Verfälschung des Vergleichsergebnisses erkannt werden kann . According to a development, the comparison of the results is carried out in a secure section. This results in the advantage that the comparison can be performed by a single one of the processor devices and yet a falsification of the comparison result can be detected.
Gemäß einer Weiterbildung wird durch die Steuerroutine eine Echtzeit-Schleife bereitgestellt oder realisiert. Eine Echtzeit-Schleife erzeugt zu einem bestimmten Eingangswert einen zugehörigen Ausgabewert innerhalb einer vorbestimmten Höchstzeitdauer. Die Höchstzeitdauer kann beispielsweise in einem Bereich von 10 Millisekunden bis einer Sekunde liegen. Eine andere Bezeichnung für Echtzeit-Schleife ist auch Loop oder Regelschleife. Die Höchstzeitdauer kann in vorteilhafter Weise dadurch eingehalten werden, indem laufzeitkritische Abschnitte als unsichere Abschnitte realisiert werden. According to a development, the control routine provides or realizes a real-time loop. A real-time loop generates an associated output value within a predetermined maximum time duration for a specific input value. For example, the maximum duration may be in the range of 10 milliseconds to one second. Another term for real-time loop is loop or control loop. The maximum duration can be maintained in an advantageous manner by realizing runtime-critical sections as unsafe sections.
Gemäß einer Weiterbildung führt die zweite Prozessoreinrich- tung dieselbe Steuerroutine wie die erste Prozessoreinrich- tung durch. Die beiden Prozessoreinrichtungen übertragen ihr jeweiliges ungeprüftes Ergebnis an die jeweils andere SteuerVorrichtung. Mit anderen Worten tauschen die beiden Prozes- soreinrichtungen ihr jeweiliges ungeprüftes Ergebnis kreuz- weise aus. Das heißt, die zweite Prozessoreinrichtung wird nicht nur zum Erzeugen eines unsicheren Ergebnisses, sondern auch zum Erzeugen der Ausgabewerte zum Stellen der Anlagen- komponente genutzt. Hierdurch ergibt sich der Vorteil, dass bei Ausfall der ersten Prozessoreinrichtung die zweite Pro- zessoreinrichtung ohne Rüstzeit oder Startzeit das Steuern der Anlagenkomponente übernehmen kann. According to a development, the second processor device performs the same control routine as the first processor device. The two processor devices transmit their respective unchecked result to the other control device. In other words, the two processor devices cross their respective unchecked result crosswise. That is, the second processor device is used not only to generate an uncertain result, but also to generate the output values to provide the plant component. This has the advantage that if the first processor device fails, the second without the set-up time or start time, the control of the system component can take over.
Gemäß einer Weiterbildung umfasst die zweite Prozessoreinrichtung mindestens einen Prozessorkern der Steuervorrichtung. Mit anderen Worten werden die erste Prozessoreinrichtung und die zweite Prozessoreinrichtung durch unterschiedliche Prozessorkerne desselben Prozessors bereitgestellt. Hierdurch ergibt sich der Vorteil, dass die parallele oder redundante oder zeitgleiche Ausführung des unsicheren Abschnitts in ein und demselben Gerät durchgeführt werden kann. According to a development, the second processor device comprises at least one processor core of the control device. In other words, the first processor device and the second processor device are provided by different processor cores of the same processor. This has the advantage that the parallel or redundant or simultaneous execution of the unsafe section can be carried out in one and the same device.
In einer alternativen Weiterbildung wird die zweite Prozessoreinrichtung durch eine von der Steuervorrichtung getrennt angeordnete und über ein Kommunikationsnetzwerk mit der Steuervorrichtung gekoppelte Recheneinrichtung bereitgestellt. Hierdurch ergibt sich der Vorteil, dass zumindest die zweite Prozessoreinrichtung in einem sicheren Umfeld betrieben werden kann, beispielsweise in einem klimatisierten Umfeld oder in einem strahlengeschützten Umfeld. In an alternative development, the second processor device is provided by a computing device arranged separately from the control device and coupled to the control device via a communication network. This results in the advantage that at least the second processor device can be operated in a secure environment, for example in an air-conditioned environment or in a radiation-protected environment.
Gemäß einer Weiterbildung führt die zweite Prozessoreinrichtung einen jeweiligen unsicheren Abschnitt für mindestens eine weitere Steuervorrichtung aus. Mit anderen Worten ist die zweite Prozessoreinrichtung nicht nur einer Steuervorrichtung zugeordnet, sondern mehreren Steuervorrichtungen, die jeweils eine Steuerroutine mit einem unsicheren Abschnitt durchführen und die zweite Prozessoreinrichtung als redundante Prozessoreinrichtung zum parallelen oder zeitgleichen oder redundanten Ausführen ihres jeweiligen unsicheren Abschnitts nutzen. According to a development, the second processor device executes a respective unsafe section for at least one further control device. In other words, the second processor device is assigned not only to a control device, but to a plurality of control devices, each performing a control routine with an insecure section and using the second processor device as a redundant processor device for parallel or simultaneous or redundant execution of its respective non-secure section.
Hierdurch ergibt sich der Vorteil, dass die zweite Prozessoreinrichtung effizienter ausgenutzt wird. This has the advantage that the second processor device is utilized more efficiently.
Zur Durchführung des erfindungsgemäßen Verfahrens umfasst di Erfindung auch eine Steuervorrichtung für eine Anlagenkomponente einer Automatisierungsanlage. Die Steuervorrichtung weist eine Empfangseinrichtung zum Empfangen von Eingangswer ten und eine Ausgabeeinrichtung zum Ausgeben von Ausgabewer- ten sowie eine erste Prozessoreinrichtung auf. Die Steuervorrichtung kann beispielsweise als speicherprogrammierbare Steuerung ausgestaltet sein. Die Empfangseinrichtung kann beispielsweise einen Anschluss für einen Sensor und/oder einen Busanschluss zum Anschließen eines Kommunikationsbusses, beispielsweise eines Feldbusses, umfassen. Die Ausgabeeinrichtung kann beispielsweise einen Anschluss zum Anschließen der Anlagenkomponente und zum Ausgeben von Steuersignalen für die Anlagenkomponente umfassen. Die Ausgabeeinrichtung kann zusätzlich oder alternativ dazu auch einen Busanschluss umfassen. Die Prozessoreinrichtung kann beispielsweise eine zentrale Recheneinheit (CPU - central processing unit) oder einen Mikrokontroller oder einen ASIC (application specific integrated circuit) umfassen. Die erste Prozessoreinrichtung ist dazu ausgelegt, die Ausgabewerte aus den Eingabewerten mittels einer Steuerroutine mit mindestens einem sicheren Abschnitt und mindestens einem unsicheren Abschnitt zu erzeugen. Jeder sichere Abschnitt umfasst in der beschriebenen Weise mindestens einen funktional-gesicherten Verarbeitungsschritt. Jeder unsichere Abschnitt umfasst in der beschriebenen Weise mindestens einen ungesicherten Verarbeitungsschritt. Die Steuervorrichtung ist dazu ausgelegt, mit Beginn jedes unsicheren Abschnitts bei einer zweiten Prozessoreinrichtung das Ausführen des unsicheren Abschnitts auszulösen. Mit anderen Worten ist die Steuervorrichtung dazu ausgelegt, eine parallele oder zeitgleiche oder redundante Ausführung oder Durchführung jedes unsicheren Abschnitts in einer zweiten Prozessoreinrichtung auszulösen. Die zweite Prozessoreinrichtung kann Bestandteil der Steuervorrichtung selbst sein. Beispielsweise können die erste Prozessoreinrichtung und die zweite Prozessoreinrichtung jeweils durch mindestens einen Prozessorkern eines Mehrkern-Prozessors gebildet sein, wobei der mindestens eine Prozessorkern der ersten Prozessoreinrichtung und der mindestens eine Prozessorkern der zweiten Prozessoreinrichtung verschieden sind. Die zweite Prozessoreinrichtung kann auch außerhalb der Steuervorrichtung angeordnet sein, beispielsweise in einer weiteren Recheneinrichtung der Automatisierungsanlage. Zur der Erfindung gehört auch die Automatisierungsanlage mit mindestens einer Anlagenkomponente, für welche jeweils eine Steuervorrichtung bereitgestellt ist, die jeweils eine erste Prozessoreinrichtung aufweist. Bei der jeweils bereitgestellten Steuervorrichtung handelt es sich um eine Ausführungsform der erfindungsgemäßen Steuervorrichtung. In der erfindungsgemäßen Automatisierungsanlage ist mindestens eine weitere Prozessoreinrichtung bereitgestellt, und die Automatisierungsanlage ist dazu ausgelegt, mittels der mindestens einen weiteren Prozessoreinrichtung eine Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Die mindestens eine weitere Prozessoreinrichtung stellt bezüglich der unsicheren Abschnitte der Steuerroutinen jeweils einen zweite Prozessoreinrichtung dar. To carry out the method according to the invention, the invention also includes a control device for a system component of an automation system. The control device has a receiving device for receiving input values and an output device for outputting output signals. th and a first processor device. The control device can be designed, for example, as a programmable logic controller. The receiving device may comprise, for example, a connection for a sensor and / or a bus connection for connecting a communication bus, for example a fieldbus. The output device may, for example, include a connection for connecting the system component and for outputting control signals for the system component. The output device may additionally or alternatively also include a bus connection. The processor device may comprise, for example, a central processing unit (CPU) or a microcontroller or an ASIC (application specific integrated circuit). The first processor device is configured to generate the output values from the input values by means of a control routine having at least one secure section and at least one non-secure section. Each secure section comprises at least one functionally secured processing step as described. Each unsafe section comprises at least one unsecured processing step as described. The control device is designed to trigger the execution of the unsafe section at the beginning of each insecure section at a second processor device. In other words, the control device is designed to trigger a parallel or simultaneous or redundant execution or execution of each non-secure section in a second processor device. The second processor device may be part of the control device itself. For example, the first processor device and the second processor device may each be formed by at least one processor core of a multi-core processor, wherein the at least one processor core of the first processor device and the at least one processor core of the second processor device are different. The second processor device can also be arranged outside the control device, for example in a further computing device of the automation system. The invention also includes the automation system with at least one system component, for each of which a control device is provided which in each case has a first processor device. The control device provided in each case is an embodiment of the control device according to the invention. In the automation system according to the invention, at least one further processor device is provided, and the automation system is designed to carry out an embodiment of the method according to the invention by means of the at least one further processor device. The at least one further processor device in each case represents a second processor device with regard to the unsafe sections of the control routines.
Im Folgenden ist ein Ausführungsbeispiel der Erfindung beschrieben . Hierzu zeigt : In the following an embodiment of the invention is described. This shows:
FIG 1 eine schematische Darstellung einer Ausführungsform der erfindungsgemäßen Automatisierungsanlage, 1 shows a schematic representation of an embodiment of the automation system according to the invention,
FIG 2 eine schematische Darstellung einer ersten und einer zweiten Prozessoreinrichtung, wie sie in der Automatisierungsanlage von FIG 1 bereitgestellt sein können, und 2 shows a schematic representation of a first and a second processor device, as may be provided in the automation system of FIG. 1, and
FIG 3 eine schematische Darstellung einer Anordnung aus mehreren Steuervorrichtungen und einer zentralen Recheneinrichtung, wie sie in der Automatisierungsanlage von FIG 1 bereitgestellt sein kann. 3 shows a schematic representation of an arrangement of a plurality of control devices and a central computing device, as may be provided in the automation system of FIG.
Bei dem im Folgenden erläuterten Ausführungsbeispiel handelt es sich um eine bevorzugte Ausführungsform der Erfindung. Bei dem Ausführungsbeispiel stellen die beschriebenen Komponenten der Ausführungsform jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden und da- mit auch einzeln oder in einer anderen als der gezeigten Kombination als Bestandteil der Erfindung anzusehen sind. Des Weiteren ist die beschriebene Ausführungsform auch durch weitere der bereits beschriebenen Merkmale der Erfindung ergänzbar . The exemplary embodiment explained below is a preferred embodiment of the invention. In the exemplary embodiment, the described components of the embodiment in each case represent individual features of the invention, which are to be considered independently of one another, which further develop the invention independently of one another and which may also be considered as part of the invention individually or in any other than the combination shown. Furthermore, the described embodiment can also be supplemented by further features of the invention already described.
In den Figuren sind funktionsgleiche Elemente jeweils mit denselben Bezugszeichen versehen. In the figures, functionally identical elements are each provided with the same reference numerals.
FIG 1 zeigt eine Automatisierungsanlage 1 zum Durchführen eines Prozesses. Beispielsweise kann als Prozess ein Produkti- onsprozess durchgeführt werden, durch welchen ein Produkt hergestellt wird, beispielsweise Kraftfahrzeuge. Bei dem Prozess kann es sich auch um einen Verfahrensprozess handeln, durch welchen ein Verfahren durchgeführt wird, beispielsweise das Gewinnen von elektrischer Energie aus Kernkraft oder das Abfüllen eines Getränks in Flaschen. Der Prozess kann auch ein Steuerprozess sein, beispielsweise das Steuern von Ampeln einer Ampelanlage in einem Verkehrswegenetz, beispielsweise einem Stadtteil. 1 shows an automation system 1 for carrying out a process. For example, as a process, a production process can be carried out, by which a product is produced, for example motor vehicles. The process may also be a process by which a process is carried out, for example, the recovery of electrical energy from nuclear power or the bottling of a beverage. The process may also be a control process, for example the control of traffic lights of a traffic light system in a traffic route network, for example a district.
Zum Durchführen des Prozesses kann die Automatisierungsanlage Anlagenkomponenten 2, 3 aufweisen, von denen in FIG 1 der Übersichtlichkeit halber nur zwei dargestellt sind. To carry out the process, the automation system can have system components 2, 3, of which only two are shown in FIG. 1 for the sake of clarity.
Die Anlagenkomponente 2, 3 kann jeweils beispielsweise eine Produktionszelle (PROD) sein, also beispielsweise eine CNC- Fräsmaschine oder ein Roboter. Die Anlagenkomponente 2, 3 kann auch beispielsweise ein Fließband zum Fördern eines Produktes oder Zwischenproduktes sein. Die Anlagenkomponente 2, 3 kann auch beispielsweise ein einzelner Signalgeber in einer Signalanlage sein, also z.B. eine Ampel. Die Anlagenkomponente kann allgemein eine Aktoreinrichtung darstellen. The plant component 2, 3 can each be, for example, a production cell (PROD), that is, for example, a CNC milling machine or a robot. The plant component 2, 3 can also be, for example, a production line for conveying a product or intermediate product. The plant component 2, 3 can also be, for example, a single signal generator in a signaling system, e.g. a traffic light. The plant component can generally represent an actuator device.
Zum Steuern der Anlagenkomponente 2 ist eine Steuervorrichtung 4 bereitgestellt, die beispielsweise eine speicherprogrammierbare Steuerung (SPS) sein kann. Die Steuervorrichtung 4 kann über ein Datennetzwerk 5, beispielsweise einen Feldbus, wie beispielsweise einen Profinet-Bus, mit der Anlagenkomponente 2 gekoppelt sein. Die Steuervorrichtung 4 kann an das Datennetzwerk 5 über eine Ausgabeeinrichtung 6, beispielsweise einen Busankoppler, angeschlossen sein. For controlling the system component 2, a control device 4 is provided, which may be, for example, a programmable logic controller (PLC). The control device 4 can via a data network 5, for example a Fieldbus, such as a Profinet bus, be coupled to the system component 2. The control device 4 can be connected to the data network 5 via an output device 6, for example a bus coupling device.
Die Steuervorrichtung 4 kann eine erste Prozessoreinrichtung 7 aufweisen, durch welche in an sich bekannter Weise eine Steuerroutine 8 ausgeführt werden kann. Die Steuerroutine 8 kann beispielsweise einen Regler für die Anlagenkomponente 2 realisieren oder bereitstellen. Mittels der Steuerroutine 8 können durch die Prozessoreinrichtung 7 aus Eingangswerten 9 Ausgangswerte 10 erzeugt werden, die über die Ausgabeeinrichtung 6 an die Anlagenkomponente 2 übertragen werden können. Die Ausgabewerte 10 können ein Steuersignal für die Anlagenkomponente 2 darstellen. Die Eingangswerte 9 kann die Steuervorrichtung 4 über eine Empfangseinrichtung 11 empfangen. Die Empfangseinrichtung 11 kann beispielsweise ein Busankoppler oder ein Busanschluss sein. Die Eingangswerte 9 können beispielsweise durch Sensoren 12 erzeugt werden, die beispielsweise als Eingangswerte Temperaturwerte der Anlagenkomponente 2, 3 oder Geschwindigkeitswerte oder andere aktuelle Werte einer Betriebsgröße oder eines Betriebsparameters der Automatisierungsanlage 1 erfassen können. The control device 4 can have a first processor device 7, by means of which a control routine 8 can be carried out in a manner known per se. The control routine 8 can realize or provide, for example, a controller for the system component 2. By means of the control routine 8 9 output values 10 can be generated by the processor device 7 from input values which can be transmitted via the output device 6 to the system component 2. The output values 10 may represent a control signal for the system component 2. The input values 9 can be received by the control device 4 via a receiving device 11. The receiving device 11 may be, for example, a bus coupler or a bus connection. The input values 9 can be generated, for example, by sensors 12, which, for example, can detect temperature values of the system component 2, 3 or speed values or other current values of an operating variable or an operating parameter of the automation system 1 as input values.
Die Steuerroutine 8 kann beispielsweise als Echtzeit- Programmschleife oder Echtzeit-Schleife realisiert sein. Mit anderen Worten wird die Steuerroutine 8 zirkulär oder periodisch von der Prozessoreinrichtung 7 wiederholt durchgeführt, wobei sichergestellt ist, dass jeder Durchlauf eine vorbestimmte Höchstzeitdauer nicht überschreitet. Damit innerhalb der Höchstzeitdauer ein Durchlauf der Steuerroutine 8 möglich ist, ist die Steuerroutine 8 in mindestens einen sicheren Abschnitt 13 und zumindest einen unsicheren Abschnitt 14 unterteilt. Jeder sichere Abschnitt 13 ist durch mindestens einen funktional-gesicherten Verarbeitungsschritt realisiert. Beispielsweise kann jeder Verarbeitungsschritt durch einen kodierten Prozessorbefehl und kodierte Datenwerte gebildet sein und/oder es kann zum Überprüfen eines Resultats des Verarbei- tungsschritts überprüft werden, ob ein Ergebnis des Verarbeitungsschrittes in einem vorbestimmten Intervall zulässiger Werte liegt. Jeder unsichere Abschnitt 14 ist dagegen durch ungesicherte Verarbeitungsschritte realisiert, deren Durchführung in Bezug auf eine Plausibilität des Verarbeitungsschrittes ungeprüft bleibt. Ein funktional-gesicherter Verarbeitungsschritt erfordert im Vergleich zu einem funktional identischen ungesicherten Verarbeitungsschritt mehr Laufzeit oder Bearbeitungszeit. Durch Bereitstellen des mindestens einen unsicheren Abschnitts 14 kann die Steuerroutine 8 beschleunigt werden und hierdurch beispielsweise die vorgegebene HöchstZeitdauer für die Echtzeit-Schleife oder Echtzeit- Steuerung eingehalten werden. The control routine 8 can be realized, for example, as a real-time program loop or real-time loop. In other words, the control routine 8 is executed repeatedly or periodically by the processor device 7, it being ensured that each pass does not exceed a predetermined maximum time duration. So that a run of the control routine 8 is possible within the maximum period, the control routine 8 is subdivided into at least one secure section 13 and at least one non-secure section 14. Each secure section 13 is implemented by at least one functionally-secured processing step. For example, each processing step may be formed by a coded processor instruction and coded data values and / or it may be used to verify a result of the processing. be checked whether a result of the processing step in a predetermined interval of acceptable values. Each unsafe section 14, on the other hand, is realized by unsecured processing steps, the execution of which remains unchecked in terms of a plausibility of the processing step. A functionally-assured processing step requires more runtime or processing time compared to a functionally identical unsecured processing step. By providing the at least one insecure section 14, the control routine 8 can be accelerated and thereby, for example, the predetermined maximum time duration for the real-time loop or real-time control can be maintained.
Nach dem Durchführen eines unsicheren Abschnitts 14 ergibt sich ein ungeprüftes erstes Ergebnis 15, das anders als ein Zwischenwert 16 beispielsweise des vorangegangenen sicheren Abschnitts 13 nicht auf fehlerfreie Durchführung überprüft ist. Um dennoch auch das erste ungeprüfte Ergebnis überprüfen zu können, ist eine zweite Prozessoreinrichtung 17 bereitgestellt, die beispielsweise durch einen weiteren Prozessorkern in der Steuervorrichtung 4 realisiert sein kann. Die zweite Prozessoreinrichtung 17 kann auch beispielsweise (wie in FIG 1 dargestellt) durch eine von der Steuervorrichtung 4 verschiedenen Recheneinrichtung bereitgestellt sein. Durch die zweite Prozessoreinrichtung 17 kann ebenfalls jeder unsichere Abschnitt 14 durchgeführt werden. Hierzu können zu Beginn jedes unsicheren Abschnitts 14 die Zwischenwerte 16 über einen Kommunikationskanal 18 von der ersten Prozessoreinrichtung 7 an die zweite Prozessoreinrichtung 17 übertragen werden. After performing an unsafe section 14 results in an unchecked first result 15, unlike an intermediate value 16, for example, the previous safe section 13 is not checked for error-free implementation. In order nevertheless to be able to check the first unchecked result, a second processor device 17 is provided, which can be realized, for example, by a further processor core in the control device 4. The second processor device 17 can also be provided, for example (as shown in FIG. 1), by a computing device that is different from the control device 4. By the second processor means 17 also each unsafe portion 14 can be performed. For this purpose, at the beginning of each insecure section 14, the intermediate values 16 can be transmitted via a communication channel 18 from the first processor device 7 to the second processor device 17.
Falls die erste und die zweite Prozessoreinrichtung 7, 17 durch Prozessorkerne desselben Mehrkern-Prozessors bereitgestellt sind, kann der Kommunikationskanal 18 beispielsweise ein gemeinsam genutzter Speicherbereich sein. Falls die Prozessoreinrichtungen 7, 17 durch unterschiedliche Vorrichtungen bereitgestellt sind, kann der Kommunikationskanal 18 beispielsweise ein Kommunikationsnetzwerk oder Datennetzwerk umfassen . Durch den von der zweiten Prozessoreinrichtung 17 durchgeführten Abschnitt 14 Λ wird auf Grundlage der übertragenen Zwischenwerte 16 ein ungeprüftes zweites Ergebnis 19 erzeugt, das über den Kommunikationskanal 18 wieder an die erste Prozessoreinrichtung 7 übertragen werden kann. Durch die Prozessoreinrichtung 7 können das erste und das zweite ungeprüfte Ergebnis 15, 19 miteinander verglichen werden. Hierdurch kann ermittelt werden, ob es zu einem Fehler bei der Berechnung der Ergebnisse 15, 19 gekommen ist. Falls die Ergebnisse 15, 19 übereinstimmen, kann davon ausgegangen werden, dass kein Fehler vorliegt und das Ergebnis 15 für den nachfolgenden sicheren Abschnitt 13 genutzt werden kann. Andernfalls kann auf einen sicheren Ersatzwert 20 zurückgegriffen werden. For example, if the first and second processor devices 7, 17 are provided by processor cores of the same multi-core processor, the communication channel 18 may be a shared memory area. If the processor devices 7, 17 are provided by different devices, the communication channel 18 may comprise, for example, a communication network or data network. By means of the section 14 Λ carried out by the second processor device 17, an unchecked second result 19 is generated on the basis of the transmitted intermediate values 16, which can be transmitted again to the first processor device 7 via the communication channel 18. By means of the processor device 7, the first and the second unchecked result 15, 19 can be compared with one another. This makes it possible to determine whether there has been an error in the calculation of the results 15, 19. If the results 15, 19 match, it can be assumed that there is no error and the result 15 can be used for the subsequent safe section 13. Otherwise, a secure replacement value 20 can be used.
Es kann auch eine weitere Redundanz vorgesehen sein, indem die zweite Prozessoreinrichtung 17 eine Steuerroutine 8 Λ ausführt, die mit der Steuerroutine 8 identisch ist. Mit anderen Worten können auch sichere Abschnitte 13 Λ durch die zweite Prozessoreinrichtung 17 durchgeführt werden, wobei die sicheren Abschnitte 13 Λ identisch mit den sicheren Abschnitten 13 sind. Hierdurch können durch die Prozessoreinrichtung 17 redundante Ausgabewerte 10 Λ erzeugt werden. Bei einem Ausfall einer der Prozessoreinrichtungen 7, 17 steht dann die verbleibende Prozessoreinrichtung zum Erzeugen von Ausgabewerten 10, 10 Λ bereit. Beim Durchführen der unsicheren Abschnitte 14, 14 Λ ist es dann nötig, dass nicht nur das zweite Ergebnis 19 von der zweiten Prozessoreinrichtung 17 an die erste Prozessoreinrichtung 17 übertragen wird, sondern umgekehrt auch das Ergebnis 15 in die entgegengesetzte Richtung von der Prozessoreinrichtung 7 an die Prozessoreinrichtung 17 übertragen wird, damit auch durch die Prozessoreinrichtung 17 der nachfolgende sichere Abschnitt 13 Λ in der beschriebenen Weise durch Vergleichen der Ergebnisse 15, 19 weiter ausgeführt werden kann. A further redundancy can also be provided in that the second processor device 17 executes a control routine 8 Λ , which is identical to the control routine 8. In other words, secure sections 13 Λ can also be performed by the second processor device 17, wherein the secure sections 13 Λ are identical to the secure sections 13. As a result, redundant output values 10 Λ can be generated by the processor device 17. If one of the processor devices 7, 17 fails, then the remaining processor device is ready to generate output values 10, 10 Λ . When performing the unsafe sections 14, 14 Λ , it is then necessary that not only the second result 19 is transmitted from the second processor device 17 to the first processor device 17, but vice versa, the result 15 in the opposite direction from the processor device 7 to the Processor device 17 is transferred so that also by the processor means 17, the subsequent secure section 13 Λ in the manner described by comparing the results 15, 19 can be carried out further.
Bei der Automatisierungsanlage 1 wird somit die Idee realisiert, Programmteile der Steuerroutine 8, die nicht kodiert abgearbeitet oder verarbeitet werden können, über Hardware- Redundanz parallel abzuarbeiten. Alle anderen Programmteile werden weiterhin in gewohnter Weise beispielsweise kodiert als sichere Abschnitte 13 ohne Hardware-Redundanz abgearbeitet. In der Automatisierungsanlage 1 sind somit zwei Verfahren zur robusten oder fehlersicheren Bearbeitung von Eingangswerten 9 zur Erzeugung von Ausgabewerten 10 kombiniert. In the automation system 1 thus the idea is realized, program parts of the control routine 8, which does not encode can be processed or processed in parallel via hardware redundancy. All other program parts continue to be processed in the usual way, for example, coded as secure sections 13 without hardware redundancy. In the automation system 1, two methods for robust or fail-safe processing of input values 9 for generating output values 10 are thus combined.
Die Hardware-Redundanz kann sowohl in Form einer zweiten, physikalischen Steuerung als auch in Form einer zweiten virtuellen Steuerung verstanden werden, die auf einem zweiten Prozessorkern zum Ablauf gebracht wird. The hardware redundancy can be understood both in the form of a second, physical control and in the form of a second virtual control, which is executed on a second processor core.
FIG 2 veranschaulicht noch einmal die grundlegende Funktionsweise. Auf einer lokalen Prozessoreinrichtung 7 und einer davon verschiedenen zweiten Prozessoreinrichtung 17 wird ein Programmteil, der den unsicheren Abschnitt darstellt, unkodiert und in einer identischen Art und Weise redundant abgearbeitet. Auf der ersten Prozessoreinrichtung 7 ergibt sich hierdurch der unsichere Abschnitt 14, auf der zweiten Prozessoreinrichtung 17 der unsichere Abschnitt 14 Λ . Ein Programmcode für den jeweiligen Abschnitt 14, 14' kann in einem Speicher 21, 22 der jeweiligen Prozessoreinrichtung 7, 17 bereitgestellt sein. Durch die erste Prozessoreinrichtung 7 werden weiterhin vor und nach dem redundant abzuarbeitenden Programmteil des unsicheren Abschnitts 14 auch Programmteile, die beispielsweise kodiert und ohne Hardware-Redundanz abgearbeitet werden, als sichere Abschnitte abgearbeitet. Diese Programmteile sind von der redundanten Verarbeitung nicht betroffen. Kodierte und nicht kodierte, aber redundant ablaufende Programmteile können sich abwechseln. FIG 2 again illustrates the basic operation. On a local processor device 7 and a second processor device 17 different therefrom, a program part representing the unsafe portion is uncoded and processed redundantly in an identical manner. On the first processor device 7, this results in the insecure section 14, on the second processor device 17 of the unsafe section 14 Λ . A program code for the respective section 14, 14 'can be provided in a memory 21, 22 of the respective processor device 7, 17. Through the first processor device 7, program parts which, for example, are coded and processed without hardware redundancy, continue to be processed as secure sections before and after the program part of the non-secure section 14 to be processed redundantly. These program parts are not affected by the redundant processing. Coded and non-coded, but redundant program parts can alternate.
Zu Beginn eines redundant ablaufenden Programmteils, also in FIG 2 des unsicheren Abschnitts 14, werden die kodierten Zwi- schenwerte 16 zunächst in einem Dekodierschritt 23 (DEC - decode) dekodiert und mit Hilfe beispielsweise eines fehler- sicheren Übertragungsverfahrens (zum Beispiel PROFISafe) zur zweiten Prozessoreinrichtung 17 übertragen. Auf der zweiten Prozessoreinrichtung 17 werden die Zwischenwerte 16 in einem Empfangsschritt 24 (REC - receive) empfangen und auf Verfälschung geprüft. Nach der redundanten Verarbeitung auf den beiden Prozessoreinrichtungen 7, 17 in den unsicheren Abschnitten 14 und 14 Λ wird das berechnete Ergebnis 19 der zweiten Prozessoreinrichtung 17 von dieser fehlersicher in einem Sendeschritt 25 (SND - send) zurückgesendet. Die erste Prozessoreinrichtung 7 empfängt das Ergebnis 19 der zweiten Prozessoreinrichtung 17 und vergleicht dieses mit dem von ihm selbst errechneten Ergebnis 15 in einem Vergleichsschritt 26 (CHK/ENC - check/encode ) . Hierbei wird das empfangene Ergebnis 19 kodiert, und der Vergleich erfolgt kodiert, das heißt funktional gesichert. Mit anderen Worten ist der Vergleichsschritt 26 ein funktional gesicherter Verarbeitungsschritt. Die Ausgabewerte 10 werden dann bei identischen Ergebnissen 15, 19 aus dem Ergebnis 15 oder 19 durch kodierte Verarbeitung ohne Hardware-Redundanz auf der ersten Prozessoreinrichtung 7 berechnet. At the beginning of a redundantly executing program part, that is to say in FIG. 2 of the unsafe section 14, the coded intermediate values 16 are first decoded in a decoding step 23 (DEC-decode) and converted to the second by means of, for example, an error-proof transmission method (for example PROFISafe) Processor device 17 transmitted. On the second Processor device 17, the intermediate values 16 are received in a receiving step 24 (REC - receive) and checked for corruption. After the redundant processing on the two processor devices 7, 17 in the unsafe sections 14 and 14 Λ , the calculated result 19 of the second processor device 17 is sent back from the latter in a fail-safe manner in a transmission step 25 (SND-send). The first processor device 7 receives the result 19 of the second processor device 17 and compares this with the result 15 calculated by itself in a comparison step 26 (CHK / ENC check / encode). Here, the received result 19 is coded, and the comparison is coded, that is functionally secured. In other words, the comparison step 26 is a functionally assured processing step. The output values 10 are then calculated with identical results 15, 19 from the result 15 or 19 by coded processing without hardware redundancy on the first processor device 7.
Durch das beschriebene Verfahren ist es möglich, Fehler bei der Abarbeitung der unkodiert redundant ablaufenden Operationen ausreichend sicher zu erkennen. Für ein aus kodierten und unkodierten, aber redundanten Teilen bestehendes Anwenderprogramm kann ein für die Anwendungen in der industriellen Automatisierungstechnik ausrechender Sicherheitsintegritätslevel (SIL) erreicht werden. Voraussetzung für das Verfahren ist, dass die redundant ablaufenden Programmteile auf beiden Prozessoreinrichtungen vorhanden sein müssen. Dies kann zum Beispiel durch ein Engineering-System unterstützt und sichergestellt werden. The method described makes it possible to reliably detect errors in the processing of the uncoded redundant operations. For a user program consisting of coded and uncoded but redundant parts, a safety integrity level (SIL) can be achieved for applications in industrial automation technology. The prerequisite for the method is that the redundant program parts must be present on both processor devices. This can be supported and ensured, for example, by an engineering system.
Bei der Automatisierungsanlage 1 ergibt sich somit eine fehlersichere Kombination von kodiert ablaufenden Programmteilen mit Programmteilen, die unkodiert, jedoch mittels Hardware- Redundanz bearbeitet werden, in einem Anwenderprogramm. Die unkodiert ablaufenden Programmteile implementieren Performance-kritische Programmteile, die kodiert zu langsam ablaufen würden. FIG 3 zeigt ein vorteilhaftes Ausführungsbeispiel, bei welchem mehrere Steuervorrichtungen 4 (F-PLC - functionally secured programmable logic Controller - funktional gesicherte speicherprogrammierbare Steuerung) gemeinsam eine einzige entfernte zweite Prozessoreinrichtung 17 (REM-PLC - remote PLC - entfernte speicherprogrammierbare Steuerung) zur sicheren Abarbeitung komplexer Programmteile nach dem beschriebenen Verfahren, das heißt mittels eines unsicheren Abschnitts 14, nutzen. Dabei ist jede Steuervorrichtung 4 mit der gemeinsamen entfernten zweiten Prozessoreinrichtung 17 über ein Datennetzwerk 27 verbunden. Das Datennetzwerk 27 kann beispielsweise als Ethernet-Netzwerk bereitgestellt sein. In the automation system 1 thus results in a fail-safe combination of coded running program parts with program parts that are uncoded, but processed by means of hardware redundancy, in a user program. The uncoded program parts implement performance-critical program parts that would run too slowly in coded form. 3 shows an advantageous embodiment in which a plurality of control devices 4 (F-PLC - functionally secured programmable logic controller - functionally secured programmable logic controller) together a single remote second processor device 17 (REM-PLC - remote PLC - remote programmable logic controller) for safe processing Complex program parts according to the described method, that is, by means of an unsafe section 14, use. In this case, each control device 4 is connected to the common remote second processor device 17 via a data network 27. The data network 27 may be provided, for example, as an Ethernet network.
Die gemeinsam genutzten entfernte zweite Prozessoreinrichtung 17 ist in der Lage, die jeweils redundant ausgeführten Programmteile einer jeden Steuervorrichtung 4 parallel abzuarbeiten. Hierbei wird ein sicherer entfernter Funktionsaufruf oder Prozeduraufruf 28 (RPC - Remote-Procedure-Call ) zwischen jeder Steuervorrichtung einerseits und der gemeinsamen, entfernten Prozessoreinrichtung 17 andererseits durchgeführt. Mit dieser Architektur können bei geringen Kosten zahlreiche Steuervorrichtungen 4 für die Abarbeitung komplexer Programmteile ertüchtigt werden. Durch den Prozeduraufruf 28 wird das Ausführen des jeweiligen unsicheren Abschnitts in der zweiten Prozessoreinrichtung 17 ausgelöst. The shared remote second processor device 17 is able to process the respective redundantly executed program parts of each control device 4 in parallel. Here, a secure remote function call or procedure call 28 (RPC) between each control device on the one hand and the common, remote processor device 17 on the other hand is performed. With this architecture, numerous control devices 4 for the processing of complex program parts can be upgraded at low cost. The procedure call 28 initiates the execution of the respective unsafe section in the second processor device 17.
Ein Eins-Eins-Aufbau, wie er in FIG 1 gezeigt ist, das heißt bei dem jeder Steuervorrichtung 4 genau eine entfernte Prozessoreinrichtung 17 zugeordnet ist, ist ebenfalls denkbar und insbesondere in Verbindung mit dem Betrieb beider Steuerungen als vollwertige Steuervorrichtung sinnvoll. Mit anderen Worten können hierdurch in redundanter Weise Ausgabewerte 10, 10 Λ erzeugt werden. Derartige Systeme können zur Steigerung der Verfügbarkeit verwendet werden, da in diesem Fall beide Steuervorrichtungen die gleiche Steuerroutine 8, 8Λ abarbeiten und hierbei gegenseitig Ergebnisse 15, 15 Λ von unsicheren Abschnitten 14, 14 Λ austauschen. Insgesamt zeigt das Beispiel, wie durch die Erfindung ein Verfahren zur sicheren Ausführung komplexer Operationen mittels sicherem Remote-Procedure-Call (RPC) bereitgestellt wer- den kann . A one-one construction, as shown in FIG. 1, that is to say in which each control device 4 is assigned exactly one remote processor device 17, is likewise conceivable and makes sense, in particular in connection with the operation of both controllers as a full-value control device. In other words, output values 10, 10 Λ can thereby be generated in a redundant manner. Such systems can be used to increase the availability, since in this case, both of the control devices, the same control routine 8, 8 Λ execute and thereby mutually results 15, 15 Λ of unsafe sections 14, 14 exchange Λ. Overall, the example shows how the invention can provide a method for the secure execution of complex operations by means of secure remote procedure call (RPC).
Bezugszeichenliste LIST OF REFERENCE NUMBERS
1 Automatisierungsanlage1 automation system
2 Anlagenkomponente 2 plant component
3 Anlagenkomponente  3 plant component
4 Steuervorrichtung  4 control device
5 Datennetzwerk  5 data network
6 Ausgabeeinrichtung  6 output device
7 Erste Prozessoreinrichtung 7 First processor device
8 Steuerroutine 8 control routine
9 Eingangswerte  9 input values
10 Ausgabewerte  10 output values
11 Empfangeinrichtung  11 receiving device
12 Sensoren  12 sensors
13 Sicherer Abschnitt  13 Safe section
14 Unsicherer Abschnitt  14 Uncertain section
15 Ungeprüftes erstes Ergebnis 15 Unchecked first result
16 Zwischenwerte 16 intermediate values
17 Zweite Prozessoreinrichtung 17 Second processor device
18 Kommunikationskanal 18 communication channel
19 Ungeprüftes zweites Ergebnis 19 Unchecked second result
20 Sicherer Ersatzwert 20 Safe substitute value
21 Speicher  21 memory
22 Speicher  22 memory
23 Decodierschritt  23 decoding step
24 Empfangsschritt  24 reception step
25 Sendeschritt  25 transmission step
26 Vergleichsschritt  26 comparison step
27 Datennetzwerk  27 data network
28 Prozeduraufruf  28 procedure call

Claims

Patentansprüche claims
1. Verfahren zum Steuern einer Anlagenkomponente (2) einer Automatisierungsanlage (1), wobei durch eine Steuervorrich- tung (4) mittels einer ersten Prozessoreinrichtung (7) eine Steuerroutine (8) ausgeführt wird und durch die Steuerroutine (8) in Abhängigkeit von Eingangswerten (9) der Automatisierungsanlage (1) Ausgabewerte (10) zum Stellen der Anlagenkomponente (2) erzeugt werden, wobei die Steuerroutine (8) min- destens einen sicheren Abschnitt (13) mit mindestens einem funktional-gesicherten Verarbeitungsschritt, der eine Überprüfung auf fehlerfreie Durchführung umfasst, aufweist, dadurch gekennzeichnet, dass 1. A method for controlling a system component (2) of an automation system (1), wherein by a Steuervorrich- device (4) by means of a first processor means (7), a control routine (8) is executed and by the control routine (8) in response to input values (9) the automation system (1) produces output values (10) for setting the system component (2), wherein the control routine (8) has at least one secure section (13) with at least one functionally-secured processing step that checks for error-free processing Implementation comprises, characterized in that
die Steuerroutine (8) einen unsicheren Abschnitt (14) mit mindestens einem ungesicherten Verarbeitungsschritt umfasst, wobei jeder ungesicherte Verarbeitungsschritt ungeprüft durchgeführt wird, und die erste Prozessoreinrichtung (7) durch Ausführen des unsicheren Abschnitts (14) ein ungeprüftes erstes Ergebnis (15) erzeugt, und dass the control routine (8) comprises an unsafe portion (14) having at least one unsecured processing step, each unsecured processing step being performed unchecked, and the first processor means (7) generating an unchecked first result (15) by executing the unsafe portion (14), and that
der unsichere Abschnitt (14) zusätzlich durch eine zweitethe unsafe section (14) additionally by a second
Prozessoreinrichtung (17) ausgeführt wird und hierdurch die zweite Prozessoreinrichtung (17) ein ungeprüftes zweites Ergebnis (19) erzeugt und durch die erste und/oder die zweite Prozessoreinrichtung (7, 17) das erste Ergebnis (15) und das zweite Ergebnis (19) verglichen werden. Processor means (17) is executed and thereby the second processor means (17) generates an unchecked second result (19) and by the first and / or the second processor means (7, 17) the first result (15) and the second result (19) be compared.
2. Verfahren nach Anspruch 1, wobei jeder funktionalgesicherte Verarbeitungsschritt jeweils durch mindestens einen arithmetisch kodierten Befehl bereitgestellt wird und durch die Überprüfung anhand der arithmetischen Kodierung eine jeweilige Bitverfälschung jedes Befehls detektiert wird. A method according to claim 1, wherein each functionally assured processing step is provided by at least one arithmetic-coded instruction, and by the arithmetic-coding verification, a respective bit-corruption of each instruction is detected.
3. Verfahren nach einem der vorhergehenden Ansprüche, wobei mit Beginn des unsicheren Abschnitts (14) mindestens ein Zwi- schenwert (16), der durch einen vorangegangenen sicheren Abschnitt (13) erzeugt wurde, an die zweite Prozessoreinrichtung (17) übertragen wird. 3. The method according to any one of the preceding claims, wherein at the beginning of the unsafe portion (14) at least one intermediate value (16), which was generated by a previous secure portion (13), is transmitted to the second processor means (17).
4. Verfahren nach einem der vorhergehenden Ansprüche, wobei für den Fall, dass bei dem Vergleich ein Unterschied zwischen den beiden Ergebnissen (15, 19) erkannt wird, anstelle der Ergebnisse (15, 19) mindestens ein vorbestimmter sicherer Ersatzwert (20) verwendet wird. 4. The method according to any one of the preceding claims, wherein in the case that in the comparison, a difference between the two results (15, 19) is detected, instead of the results (15, 19) at least one predetermined safe substitute value (20) is used ,
5. Verfahren nach einem der vorhergehenden Ansprüche, wobe das Vergleichen der Ergebnisse (15, 19) in einem sicheren schnitt (13) durchgeführt wird. A method according to any one of the preceding claims, wherein the comparing of the results (15, 19) is performed in a secure section (13).
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei durch die Steuerroutine (8) eine Echtzeit-Schleife, bei welcher zu einem bestimmten Eingangswert (9) der zugehörige Ausgabewert (10) innerhalb einer vorbestimmten Höchstzeitdauer erzeugt wird, bereitgestellt wird. 6. The method according to any one of the preceding claims, wherein the control routine (8) is a real-time loop in which to a particular input value (9) of the associated output value (10) is generated within a predetermined maximum period of time is provided.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zweite Prozessoreinrichtung (17) dieselbe Steuerroutine (8) wie die erste Prozessoreinrichtung (7) durchführt und die beiden Prozessoreinrichtungen (7, 17) ihr jeweiliges ungeprüftes Ergebnis (15,19) an die jeweils andere Steuervorrichtung (17, 7) übertragen. 7. The method according to any one of the preceding claims, wherein the second processor means (17) performs the same control routine (8) as the first processor means (7) and the two processor means (7, 17) their respective unchecked result (15,19) to each other control device (17, 7) transmitted.
8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zweite Prozessoreinrichtung (17) durch mindestens einen Prozessorkern der Steuervorrichtung (4) oder durch eine von der Steuervorrichtung (4) getrennt angeordnete und über ein Kommunikationsnetzwerk (27) mit der Steuervorrichtung (4) gekoppelte Recheneinrichtung bereitgestellt wird. 8. The method according to any one of the preceding claims, wherein the second processor means (17) by at least one processor core of the control device (4) or by a separately from the control device (4) and coupled via a communication network (27) to the control device (4) Computing device is provided.
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zweite Prozessoreinrichtung (17) einen jeweiligen unsicheren Abschnitt (14) für mindestens eine weitere Steuervorrichtung (4) ausführt. 9. The method according to any one of the preceding claims, wherein the second processor means (17) performs a respective unsafe portion (14) for at least one further control device (4).
10. Steuervorrichtung (4) für eine Anlagenkomponente (2) einer Automatisierungsanlage (1), wobei die Steuervorrichtung (4) eine Empfangseinrichtung (11) zum Empfangen von Eingangs- werten (9) und eine Ausgabeeinrichtung (6) zum Ausgegeben von Ausgabewerten (10) und eine erste Prozessoreinrichtung (7) aufweist und wobei die erste Prozessoreinrichtung (7) dazu ausgelegt ist, die Ausgabewerte (10) aus den Eingabewerten (9) mittels einer Steuerroutine (8) mit mindestens einem sicheren Abschnitt (13) und mindestens einem unsicheren Abschnitt (14) zu erzeugen, wobei die Steuervorrichtung (4) dazu ausgelegt ist, mit Beginn jedes unsicheren Abschnitts (14) bei einer zweiten Prozessoreinrichtung (17) das Ausführen des jeweiligen unsicheren Abschnitts (14) auszulösen. 10. Control device (4) for a system component (2) of an automation system (1), wherein the control device (4) has a receiving device (11) for receiving input signals. and an output device (6) for outputting output values (10) and a first processor device (7), and wherein the first processor device (7) is adapted to output the output values (10) from the input values (9) Control routine (8) having at least one secure section (13) and at least one non-secure section (14), wherein the control device (4) is adapted to execute execution at the beginning of each non-secure section (14) at a second processor device (17) of the respective unsafe section (14).
11. Automatisierungsanlage (1) mit mindestens einer Anlagenkomponente (2), für welche jeweils eine eine erste Prozessoreinrichtung (7) aufweisende Steuervorrichtung (4) bereitge- stellt ist, 11. automation system (1) with at least one system component (2), for each of which a control device (4) having a first processor device (7) is provided,
durch gekennzeichnet, dass characterized in that
in der Automatisierungseinlage (1) mindestens eine zweite Prozessoreinrichtung (17) bereitgestellt ist und jede Steuervorrichtung (4) gemäß Anspruch 10 ausgestaltet ist und die Automatisierungsanlage (1) dazu ausgelegt ist, mittels der mindestens einen zweiten Prozessoreinrichtung (17) ein Verfahren nach einem der Ansprüche 1 bis 9 durchzuführen. at least one second processor device (17) is provided in the automation insert (1) and each control device (4) is designed according to claim 10 and the automation system (1) is designed to use the at least one second processor device (17) to perform a method according to one of Perform claims 1 to 9.
PCT/EP2015/054579 2015-03-05 2015-03-05 Error-resilient control for an automation system WO2016138956A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/054579 WO2016138956A1 (en) 2015-03-05 2015-03-05 Error-resilient control for an automation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/054579 WO2016138956A1 (en) 2015-03-05 2015-03-05 Error-resilient control for an automation system

Publications (1)

Publication Number Publication Date
WO2016138956A1 true WO2016138956A1 (en) 2016-09-09

Family

ID=52682684

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2015/054579 WO2016138956A1 (en) 2015-03-05 2015-03-05 Error-resilient control for an automation system

Country Status (1)

Country Link
WO (1) WO2016138956A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018114193A1 (en) * 2016-12-21 2018-06-28 Endress+Hauser SE+Co. KG Electronic circuit for a field device used in automation technology

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARTIN HOFFMANN ET AL: "Experiences with software-based soft-error mitigation using AN codes", SOFTWARE QUALITY JOURNAL, 22 November 2014 (2014-11-22), pages 1 - 27, XP055209592, ISSN: 0963-9314, DOI: 10.1007/s11219-014-9260-4 *
PETER ULBRICH ET AL: "Eliminating Single Points of Failure in ? Software-Based Redundancy", DISKUSSIONSKREIS FEHLERTOLERANZ 2012 WORKSHOP TALK IN NUREMBERG, GERMANY, 22 November 2012 (2012-11-22), pages 1 - 25, XP055209597, Retrieved from the Internet <URL:https://www4.cs.fau.de/Publications/2012/ulbrich_12_dft_slides.pdf> [retrieved on 20150826] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018114193A1 (en) * 2016-12-21 2018-06-28 Endress+Hauser SE+Co. KG Electronic circuit for a field device used in automation technology
CN110268342A (en) * 2016-12-21 2019-09-20 恩德莱斯和豪瑟尔欧洲两合公司 Electronic circuit for the field device in automatic technology

Similar Documents

Publication Publication Date Title
EP1738233B1 (en) Safety-oriented control system
DE102007042353B4 (en) A method for detecting faults in a vehicle system of an active front steering
DE102005055428B4 (en) Bus module for connection to a bus system and use of such a bus module in an AS-i bus system
EP2447843B1 (en) Method for verifying an application program of an error-free memory-programmable control device and memory-programmable control device for carrying out the method
DE102007054672A1 (en) Field device for determining or monitoring a process variable in process automation
WO2016008948A1 (en) Control and data-transfer system, gateway module, i/o module, and method for process control
EP2441003B1 (en) Floating point arithmetic with error recognition
DE10219501B4 (en) System and method for improving fault control measures, in particular in automation systems
EP4235323A2 (en) Method and device for automatically validating security functions on a modular security system
DE10320522A1 (en) Method and device for controlling a safety-critical process
DE102014100970A1 (en) Method and device for safely switching off an electrical load
WO2016138956A1 (en) Error-resilient control for an automation system
EP3207386B1 (en) Checking a functional module of an automation system
WO2014122063A1 (en) Device and method for detecting unauthorised manipulations of the system state of an open-loop and closed-loop control unit of a nuclear plant
EP2237118B1 (en) Safety system for ensuring error-free control of electrical devices and safety device
EP1928091B1 (en) Sensing unit with safety system
EP3470937A1 (en) Method and devices for monitoring the response time of a security function provided by a security system
DE102009002734A1 (en) Field device for determining or monitoring process variable in process automation, has sensor, which works according to defined measuring principle, and control or evaluation unit, which processes and evaluates measured data
EP3620869A1 (en) Method and conversion components for data exchange between two systems with different security concepts for functional safety
EP2741451A1 (en) Method for connecting a hardware module to a field bus
DE102013218269A1 (en) Method and apparatus for detecting a processing order of program instructions
EP2667267B1 (en) Output circuit for analog signal with a plurality of analog signal output channels.
WO2021219329A1 (en) Method and safety-oriented system for performing safety functions
DE102019201728A1 (en) Method for securing data using at least two processing units and a decision unit in communication with the at least two processing units
EP2960632B1 (en) Method and system for the preparation of sensor values generated by sensors assembled in a vehicle

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15709876

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15709876

Country of ref document: EP

Kind code of ref document: A1