DE112017007877B4 - Steuerung und Steuerungssystem - Google Patents

Steuerung und Steuerungssystem Download PDF

Info

Publication number
DE112017007877B4
DE112017007877B4 DE112017007877.6T DE112017007877T DE112017007877B4 DE 112017007877 B4 DE112017007877 B4 DE 112017007877B4 DE 112017007877 T DE112017007877 T DE 112017007877T DE 112017007877 B4 DE112017007877 B4 DE 112017007877B4
Authority
DE
Germany
Prior art keywords
hash value
plc
event
controller
event history
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112017007877.6T
Other languages
English (en)
Other versions
DE112017007877T5 (de
Inventor
Eietsu Domeki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017007877T5 publication Critical patent/DE112017007877T5/de
Application granted granted Critical
Publication of DE112017007877B4 publication Critical patent/DE112017007877B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Steuerung (1) zum Steuern eines Steuerungszielgeräts (60), wobei die Steuerung (1) umfasst:eine Hashwert-Berechnungseinheit (121) zum Berechnen eines ersten Hashwertes basierend auf Ereignishistorie-Daten eines Ereignisses, welches während des Betriebs der Steuerung (1) auftritt;eine Kommunikationseinheit (130) zum Übertragen des ersten Hashwertes an eine erste andere Steuerung (30; 2, ..., n), die extern zu der Steuerung (1) angeordnet ist und zum Empfangen eines zweiten Hashwertes, welcher basierend auf Ereignishistorie-Daten eines Ereignisses berechnet ist, welches in einer zweiten anderen Steuerung (30; 2, ..., n), die außerhalb der Steuerung (1) angeordnet ist, aufgetreten ist; undeine Speichereinheit (110) zum Speichern der Ereignishistorie-Daten, des ersten Hashwertes und des zweiten Hashwertes, wobeidie Ereignishistorie-Daten den zuvor in der Steuerung (1) berechneten ersten Hashwert und in der Steuerung (1) erzeugte Ereignisdaten enthalten, wobei die Ereignisdaten entweder auf einem Ereignis basieren, das in der Steuerung (1) zu diesem Zeitpunkt aufgetreten ist, oder die Ereignisdaten den von der zweiten anderen Steuerung (30; 2, ..., n) übertragenen zweiten Hashwert enthalten,die Hashwert-Berechnungseinheit (121) eine Hashkette bildet, indem ein neuer erster Hashwert basierend auf den Ereignishistorie-Daten erzeugt wird, undder in der Speichereinheit (110) gespeicherte erste Hashwert zum Verifizieren in einem Verifikationsgerät verwendet wird, welches sowohl von der Steuerung (1), der ersten anderen Steuerung (30; 2, ..., n) als auch der zweiten anderen Steuerung (30; 2, ..., n) verschieden ist, wobei das Verifikationsgerät den ersten Hashwert mit einem in der ersten anderen Steuerung (30; 2, ..., n) oder der zweiten anderen Steuerung (30; 2, ..., n) aufgezeichneten Hashwert vergleicht und verifiziert, ob der in der Speichereinheit (110) gespeicherte erste Hashwert ein korrekter Hashwert ist, welcher durch die Steuerung (1) berechnet und gespeichert wurde.

Description

  • Die vorliegende Erfindung betrifft eine Steuerung, welche eine Ereignisauftretenshistorie managt, und ein Steuerungssystem.
  • Hintergrund
  • Herkömmliche Geräte, wie beispielsweise speicherprogrammierbare Steuerungen (SPSen), nehmen Information über eine Historie des Auftretens eines Ereignisses auf, welches während des Betriebs auftritt. Das Ereignis ist ein vorbestimmter Geräteprozess, welcher ein Empfang einer Mitteilung von diversen Informationen ist, welche einem in Betrieb befindlichen Gerät von einem externen Gerät bereitgestellt werden. Das Ereignis in einer SPS ist beispielsweise ein Empfangsprozess einer Mitteilung über eine Änderung des Zustands eines zu steuernden Gerätes, welches von der SPS zu steuern ist, wobei die Mitteilung von dem zu steuernden Gerät an die SPS bereitgestellt wird und eine Mitteilung über eine Änderung eines Sensorwertes in dem zu steuernden Gerät, eine Mitteilung über eine Änderung eines Ausgabewertes in dem zu steuernden Gerät und eine Mitteilung über das Auftreten einer außerhalb der Toleranz liegenden Eingabe/Ausgabe in dem zu steuernden Gerät umfasst.
  • SPSen verfügen über eine verfügbare Speicherkapazität, welche verglichen mit der von Personal Computern (PCs) oder Cloud-Computing sehr gering ist. Darüber hinaus verfügen SPSen über eine geringe Datenkapazität für Ereignisinformation und eine geringe Menge von Computerressourcen, beispielsweise einer nutzbaren Speicherkapazität und einer Berechnungsmenge, die ein Computer zum Aufnehmen der Ereignisinformation verwendet. Aus diesem Grund bestand die Möglichkeit, dass in einer SPS aufgenommene Information von außerhalb der SPS über ein Netzwerk einfach verfälscht oder manipuliert werden kann.
  • Es wird eine Technik verwendet, um zu verifizieren, dass Daten über eine Ereignisauftretenshistorie, die in einem Gerät aufgenommen wurde, korrekt sind, indem für jedes Ereignis, das während des Betriebs auftritt, ein Hashwert eines aktuellen Ereignisses berechnet wird und dabei ein Hashwert einer vorherigen Ereignisinformation enthalten ist.
  • Patentliteratur 1 (Japanisches Patent JP 4 235 193 B2 ) offenbart eine Technik zum Erzeugen eines Hashwertes für jede auftretende Ereignisinformation zum Erzeugen eines Hashknotens, welcher den erzeugten Hashwert und die Ereignisinformation aufzeichnet, und zum Erzeugen einer Hashknotenkette durch Verketten der Knoten in der erzeugten Reihenfolge. Durch Verifizieren der Ereignisinformation evaluiert die Technik der Patentliteratur 1 die Gültigkeit der Hashknotenkette unter Verwendung des Hashwertes und der Ereignisinformation, die in dem Knoten aufgezeichnet sind, und verifiziert, ob die zu verifizierende Ereignisinformation mit der assoziierten Ereignisinformation, die in dem Hashknoten gespeichert ist, übereinstimmt oder nicht.
  • JP 2008 - 134 726 A betrifft Möglichkeiten zu Nachverfolgung von Informationsaufzeichnungen. US 2014 / 0 298 034 A1 betrifft digitale Signaturen zur Sicherstellung der Authentizität von Protokolldaten.
  • Zusammenfassung
  • Technisches Problem
  • Gemäß der Technik der Patentliteratur 1 wird jedoch ein Hashwert von (genau) einer Ereignisinformation nur in einem einzigen Hashknotenkette-Speicherserver in einem Ereignishistorieinformation-Speichersystem gespeichert. Wenn in diesem Fall ein gespeicherter Hashwert verfälscht wird, besteht ein Problem dahingehend, dass es unmöglich ist, zu verifizieren, dass die in dem Gerät aufgezeichneten Daten über eine Ereignishistorie die korrekten Daten sind.
  • Es ist daher bevorzugt, verifizieren zu können, dass die Daten über die Ereignishistorie die korrekten Daten sind, indem der Hashwert der Ereignisinformation an mehreren Orten gespeichert wird und das Risiko, nicht verifizieren zu können, dass die Daten über die Ereignishistorie die korrekten Daten sind, wenn der aufgezeichnete Hashwert der Ereignisinformation verfälscht ist, zu verteilen. Die Technik gemäß Patentliteratur 1 offenbart jedoch eine solche Risikoverteilung nicht.
  • Die vorliegende Erfindung wurde in Anbetracht des Obigen gemacht und es ist ein Ziel der vorliegenden Erfindung, eine Steuerung bereitzustellen, welche selbst dann verifizieren kann, ob Daten über eine Ereignishistorie korrekte Daten sind oder nicht, wenn ein in der Steuerung gespeicherter Hashwert der Ereignishistorie verfälscht ist.
  • Lösung des Problems
  • Um die oben beschriebenen Probleme zu lösen und das Ziel zu erreichen, ist eine Steuerung gemäß einem Aspekt der vorliegenden Erfindung eine Steuerung zum Steuern eines Steuerungszielgerätes, umfassend: eine Speichereinheit zum Aufnehmen von Ereignishistorie-Daten eines Ereignisses, welches während des Betriebs der Steuerung auftritt; eine Hashwert-Berechnungseinheit zum Berechnen eines Hashwertes basierend auf den Ereignishistorie-Daten; und eine Kommunikationseinheit zum Übertragen des Hashwertes an eine andere Steuerung, die extern zu der Steuerung ist.
  • Vorteilhafte Wirkungen der Erfindung
  • Die Steuerung gemäß der vorliegenden Erfindung bewirkt, dass es möglich ist, zu verifizieren, ob Daten über eine Ereignishistorie korrekte Daten sind oder nicht, selbst wenn ein in der Steuerung gespeicherter Hashwert der Ereignishistorie verfälscht wurde.
  • Figurenliste
    • 1 ist ein Diagramm, welches ein Beispiel einer funktionellen Konfiguration einer ersten speicherprogrammierbaren Steuerung zeigt, welche eine Steuerung gemäß einer ersten Ausführungsform der vorliegenden Erfindung ist.
    • 2 ist ein Ablaufdiagramm, welches einen Ablauf eines Ereignisaufnahmeprozesses in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 3 ist ein Diagramm, welches ein Verfahren zum Erzeugen von Ereignishistorie-Daten in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 4 ist ein Ablaufdiagramm, welches einen Ablauf eines ersten Hashwert-Empfangsprozesses in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 5 ist ein Diagramm, welches ein Beispiel einer Konfiguration eines SPS-Systems zeigt, welches ein Steuerungssystem gemäß der ersten Ausführungsform der vorliegenden Erfindung ist.
    • 6 ist ein Diagramm, welches ein Beispiel eines Datenflusses zeigt, wenn die Ereignishistorie-Daten in dem SPS-System gemäß der ersten Ausführungsform der vorliegenden Erfindung gespeichert werden.
    • 7 ist ein Diagramm, welches eine Konfiguration eines SPS-Systems gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 8 ist ein Ablaufdiagramm, welches einen Ablauf eines Empfang-Aktiv/Inaktiv-Bestimmungsprozesses in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 9 ist ein Ablaufdiagramm, welches einen Ablauf eines zweiten Hashwert-Empfangsprozesses, der den Empfang-Aktiv/Inaktiv-Bestimmungsprozess umfasst, in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 10 ist ein Ablaufdiagramm, welches einen Ablauf eines dritten Hashwert-Empfangsprozesses, der eine Zeitmitteilungsfunktion und eine Übertragung eines Hashwertes kombiniert, in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 11 ist ein Ablaufdiagramm, welches einen Ablauf eines Übertragungsprozesses einer Suchanfrage, die einen Hashwert enthält, in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 12 ist ein Ablaufdiagramm, welches einen Ablauf eines Empfangsprozesses einer Suchanfrage, die einen Hashwert enthält, in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 13 ist ein Ablaufdiagramm, welches einen Ablauf eines Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozesses in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 14 ist ein Ablaufdiagramm, welches einen Ablauf eines Suchebeantwortungsprozesses in der ersten SPS gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
    • 15 ist ein Diagramm zur Erläuterung eines Beispiels von Ereignishistorien, die in Ereignishistorie-Speichereinheiten der SPSen angehäuft und in einem Ereignishistorie-Server gemäß der ersten Ausführungsform der vorliegenden Erfindung gesammelt werden.
    • 16 ist ein Blockdiagramm, welches ein Beispiel einer Konfiguration eines Computergerätes schematisch darstellt, welches eine Funktion, wie die der SPS gemäß der ersten Ausführungsform implementiert.
  • Beschreibung einer Ausführungsform
  • Eine Steuerung und ein Steuerungssystem gemäß Ausführungsformen der vorliegenden Erfindung werden nachfolgend im Detail mit Bezug zu den Zeichnungen beschrieben. Es ist zu beachten, dass die vorliegende Erfindung nicht auf die Ausführungsformen beschränkt ist.
  • Erste Ausführungsform.
  • 1 ist ein Diagramm, welches ein Beispiel einer funktionellen Konfiguration einer ersten speicherprogrammierbaren Steuerung 1 zeigt, welche eine Steuerung gemäß einer ersten Ausführungsform der vorliegenden Erfindung ist. Nachfolgend wird die speicherprogrammierbare Steuerung als eine SPS bezeichnet. Die erste SPS 1 ist eine Steuerung, welche ein Steuerungszielgerät (das heißt ein zu steuerndes Gerät) 60durch Ausführung eines Programms steuert. Das Steuerungszielgerät 60 ist über eine Kommunikationsverbindung 70 mit der ersten SPS 1 verbunden und kann mit der ersten SPS 1 kommunizieren. Die erste SPS 1 hat eine Funktion des Aufnehmens von Ereignishistorie-Daten, welche eine Information über eine Historie des Auftretens eines Ereignisses sind, welches in der ersten SPS 1 während des Betriebs auftritt, eine Funktion des Übertragens eines Hashwertes der Ereignishistorie-Daten an eine andere SPS und eine Funktion des Speicherns eines Hashwertes, der von einer anderen SPS übertragen wurde. Nachfolgend werden die Funktionen der ersten SPS 1 im Detail beschrieben.
  • Die erste SPS 1 umfasst eine erste Speichereinheit 110, welche Ereignishistorie-Daten eines Ereignisses, welches während des Betriebs der ersten SPS 1 auftritt, und diverse Informationen speichert; eine erste Steuerungseinheit 120, welche eine Operation bezüglich der Erzeugung und Speicherung der Ereignishistorie-Daten für das in der ersten SPS 1 auftretende Ereignis und einen Hashwert steuert und den Betrieb der gesamten ersten SPS 1 steuert; und eine erste Kommunikationseinheit 130, welche eine Kommunikation mit einem anderen Gerät durchführt, welches außerhalb der ersten SPS 1 angeordnet ist. Diese Komponenten sind miteinander so verbunden, dass sie untereinander Information kommunizieren können.
  • Die erste Speichereinheit 110 umfasst eine erste Ereignishistorie-Speichereinheit 111, welche die Ereignishistorie-Daten speichert, eine erste Hashwerthistorie-Speichereinheit 112, welche den Hashwert speichert, und eine erste Programm-Speichereinheit 113, welche ein Steuerungsprogramm zur Steuerung des Steuerungszielgerätes 60 und ein Steuerungsprogramm zur Steuerung des Gesamtprozesses in der ersten SPS 1 speichert.
  • Das Ereignis, welches in der ersten SPS 1 auftritt, ist ein vorbestimmter Prozess in der ersten SPS 1, welcher ein Empfangsprozess einer Mitteilung von diversen Informationen, die der ersten SPS 1 während des Betriebs bereitgestellt werden, oder ein Übertragungsprozess von diversen Informationen von der im Betrieb befindlichen ersten SPS 1 ist. Das Ereignis, welches in der ersten SPS 1 auftritt, ist beispielsweise ein Empfangsprozess, welcher in einer später beschriebenen ersten Hashwert-Berechnungseinheit 121 durchgeführt wird, des Empfangens einer Mitteilung von diversen Informationen, welche der im Betrieb befindlichen ersten SPS 1 von dem Steuerungszielgerät 60 oder einem Gerät außerhalb der ersten SPS 1 bereitgestellt werden. Vorliegend umfassen die dem Ereignis zugeordneten diversen Informationen eine Information über eine Änderung eines Zustands des Steuerungszielgerätes 60 sowie den Hashwert, eine Zeitmitteilung und eine Suchanfrage, die von einer zu der ersten SPS 1 externen SPS übertragen wird, wobei die Information über eine Änderung eines Zustands des Steuerungszielgerätes eine Information über eine Änderung eines Sensorwerts, die angibt, dass sich der Sensorwert in dem Steuerungszielgerät 60 geändert hat, eine Information über eine Änderung eines Ausgabewertes, die angibt, dass sich der Ausgabewert aus dem Steuerungszielgerät 60 geändert hat, und eine Alarminformation, die durch eine Eingabe/Ausgabe, die außerhalb der Toleranz ist, in dem Steuerungszielgerät 60 verursacht ist, umfasst.
  • Ereignisdaten geben den Inhalt des Ereignisses an und sind ein Code, der mit dem Inhalt einer Datenübertragung an die erste SPS 1 assoziiert ist, die von einem Gerät durchgeführt wird, die außerhalb der ersten SPS 1 angeordnet ist. Die Ereignisdaten können auch Information umfassen, welche von einem Gerät empfangen wird, das von der ersten SPS 1 verschieden ist.
  • Die Ereignishistorie-Daten sind Daten, welche eine Ereignisauftrittshistorie angeben, die in der ersten SPS 1 für jedes Ereignis erzeugt wird, welches in der ersten SPS 1 während des Betriebs auftritt. Die Ereignishistorie-Daten sind kombinierte Daten, in welchen für jedes Ereignis, das in der ersten SPS 1 auftritt, der Hashwert, der zuvor in der ersten SPS 1 erzeugt wurde, mit aktuellen Ereignisdaten, die basierend auf dem zu diesem Zeitpunkt in der ersten SPS 1 aufgetretenen Ereignis erzeugt werden, kombiniert sind.
  • Die erste SPS 1 sammelt Information über ein Ereignis, welches während des Betriebs der ersten SPS 1 auftritt, und speichert die gesammelten Daten als die Ereignishistorie-Daten. Das heißt, die erste SPS 1 speichert die Ereignishistorie-Daten, welche Ereignisdaten des Ereignisses enthalten, welches während des Betriebs der ersten SPS 1 aufgetreten ist.
  • Die erste Ereignishistorie-Speichereinheit 111 speichert die aktuellsten Ereignishistorie-Daten jedes Mal, wenn ein Ereignis in der ersten SPS 1 auftritt. Wenn neue Ereignishistorie-Daten in einem Zustand gespeichert werden, in welchem Ereignishistorie-Daten bereits gespeichert sind, löscht die erste Ereignishistorie-Speichereinheit 111 die gespeicherten Ereignishistorie-Daten. Die Ereignishistorie-Daten, die von der ersten Ereignishistorie-Speichereinheit 111 gelöscht wurden, werden in einem Historiesammelspeicher 10 gespeichert, welcher außerhalb der ersten SPS 1 angeordnet ist, beispielsweise in einem Ereignishistorie-Server zum Sammeln von Ereignishistorien. Der Historiesammelspeicher 10 ist über eine Kommunikationsverbindung 20 mit der ersten SPS 1 verbunden und kann mit der ersten SPS 1 kommunizieren. Es ist zu beachten, dass der Historiesammelspeicher 10 mit der ersten SPS 1 drahtlos kommunizieren kann. Ein Prozess des Speicherns der Ereignishistorie-Daten in der ersten Ereignishistorie-Speichereinheit 111, ein Prozess des Löschens der Ereignishistorie-Daten und ein Prozess des Speicherns der Ereignishistorie-Daten in dem Historiesammelspeicher 10 werden durch die Steuerung der später beschriebenen ersten Hashwert-Berechnungseinheit 121 durchgeführt.
  • Es ist zu beachten, dass die erste Ereignishistorie-Speichereinheit 111 eine vorbestimmte Anzahl von Ereignishistorie-Daten speichern kann, die im Vorhinein eingestellt ist. In diesem Fall, wenn neue Ereignishistorie-Daten in dem Zustand gespeichert werden, in welchem die vorbestimmte Anzahl von Ereignishistorie-Daten gespeichert ist, löscht die erste Ereignishistorie-Speichereinheit 111 die zuerst gespeicherten Ereignishistorie-Daten.
  • Der Hashwert ist ein Hashwert von Ereignishistorie-Daten, welcher von der ersten Hashwert-Berechnungseinheit 121 basierend auf den Ereignishistorie-Daten berechnet wird.
  • Die erste Hashwerthistorie-Speichereinheit 112 speichert einen Hashwert der aktuellsten Ereignishistorie-Daten jedes Mal, wenn ein Ereignis in der ersten SPS 1 auftritt. Wenn ein neuer Hashwert in einem Zustand gespeichert wird, in welchem bereits ein Hashwert gespeichert ist, löscht die erste Hashwerthistorie-Speichereinheit 112 den gespeicherten Hashwert. Der durch die erste Hashwerthistorie-Speichereinheit 112 gelöschte Hashwert wird in dem Historiesammelspeicher 10 gespeichert, welcher außerhalb der ersten SPS 1 angeordnet ist, beispielsweise in einem Hashwerthistorie-Server zum Sammeln von Hashwerten. Ein Prozess des Speicherns des Hashwertes in der ersten Hashwerthistorie-Speichereinheit 112, ein Prozess des Löschens des Hashwertes und ein Prozess des Speicherns des Hashwertes in dem Historiesammelspeicher 10 werden durch die Steuerung der später beschriebenen ersten Hashwert-Berechnungseinheit 121 durchgeführt.
  • Es ist zu beachten, dass die erste Hashwerthistorie-Speichereinheit 112 eine vorbestimmte Anzahl von Hashwerten speichern kann, die im Vorhinein eingestellt ist. In diesem Fall, wenn ein neuer Hashwert in dem Zustand gespeichert wird, in welchem die vorbestimmte Anzahl von Hashwerten gespeichert ist, löscht die erste Hashwerthistorie-Speichereinheit 112 den zuerst gespeicherten Hashwert.
  • Die erste Steuerungseinheit 120 führt ein in der ersten Programm-Speichereinheit 113 gespeichertes Programm zur Steuerung der Operation betreffend die Erzeugung und Speicherung der Ereignishistorie-Daten und des Hashwertes und zur Steuerung des Betriebs der gesamten ersten SPS 1 inklusive der Steuerung des Steuerungszielgerätes 60 durch. Die erste Steuerungseinheit 120 umfasst die erste Hashwert-Berechnungseinheit 121 und eine erste Unregelmäßigkeit-Detektionseinheit 122.
  • Die erste Hashwert-Berechnungseinheit 121 erzeugt Ereignisdaten eines Ereignisses für jedes Ereignis, welches in der ersten SPS 1 auftritt, und berechnet ferner einen Hashwert basierend auf den Ereignisdaten. Die erste Hashwert-Berechnungseinheit 121 empfängt über die erste Kommunikationseinheit 130diverse Informationen von außerhalb der ersten SPS 1. Die erste Hashwert-Berechnungseinheit 121 überträgt über die erste Kommunikationseinheit 130zudem diverse Informationen nach außerhalb der ersten SPS 1.
  • Die erste Unregelmäßigkeit-Detektionseinheit 122 berechnet den Hashwert der Ereignishistorie-Daten neu, wenn die Ereignishistorie-Daten, die in der ersten Ereignishistorie-Speichereinheit 111 gespeichert sind, an den Historiesammelspeicher 10, beispielsweise den Ereignishistorie-Server, übertragen werden, und detektiert eine Unregelmäßigkeit in dem neu berechneten Hashwert.
  • Die erste Unregelmäßigkeit-Detektionseinheit 122 liest die in der ersten Ereignishistorie-Speichereinheit 111 gespeicherten Ereignishistorie-Daten und berechnet den Hashwert der gelesenen Ereignishistorie-Daten neu. Wenn der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert verfälscht wurde, haben der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert und der neu berechnete Hashwert unterschiedliche Werte. Auch wenn die in der ersten Ereignishistorie-Speichereinheit 111 gespeicherten Ereignishistorie-Daten verfälscht wurden, haben der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert und der neu berechnete Hashwert unterschiedliche Werte. Die erste Unregelmäßigkeit-Detektionseinheit 122 kann daher eine Unregelmäßigkeit in dem neu berechneten Hashwert bestimmen, indem der neu berechnete Hashwert mit dem in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherten Hashwert verglichen wird, welcher den Ereignishistorie-Daten zugeordnet ist, für welche der Hashwert neu berechnet wurde.
  • Das heißt, wenn der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert von dem neu berechneten Hashwert verschieden ist, bestimmt die erste Unregelmäßigkeit-Detektionseinheit 122, dass der neu berechnete Hashwert unregelmäßig ist und dass der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert oder die in der ersten Ereignishistorie-Speichereinheit 111 gespeicherten Ereignishistorie-Daten verfälscht wurden. Wenn der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert dem neu berechneten Hashwert gleich ist, bestimmt die erste Unregelmäßigkeit-Detektionseinheit 122, dass der neu berechnete Hashwert normal ist und dass die Ereignisdaten, die dem in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherten Hashwert zugeordnet sind, und die in der ersten Ereignishistorie-Speichereinheit 111 gespeicherten Ereignishistorie-Daten korrekte Daten sind, die in dem Ereignisaufnahmeprozess der ersten SPS 1 aufgenommen wurden.
  • Die erste Unregelmäßigkeit-Detektionseinheit 122 verwirft die Ereignishistorie-Daten, die in der ersten Ereignishistorie-Speichereinheit 111 gespeichert sind, wenn eine Unregelmäßigkeit in dem neu berechneten Hashwert detektiert wird. Daher werden die Ereignishistorie-Daten, für welche die Unregelmäßigkeit in dem neu berechneten Hashwert detektiert wurde, verworfen ohne von der ersten Hashwerthistorie-Speichereinheit 112 an den externen Historiesammelspeicher 10 übertragen zu werden. Es ist zu beachten, dass die erste Unregelmäßigkeit-Detektionseinheit 122 die Neuberechnung nicht nur dann durchführen kann, wenn die Ereignishistorie-Daten an den Historiesammelspeicher 10 übertragen werden, sondern an einem gegebenen Zeitpunkt.
  • Die erste Kommunikationseinheit 130 kommuniziert mit anderen Geräten, die außerhalb der ersten SPS 1 angeordnet sind, inklusive dem Historiesammelspeicher 10 und einer anderen Steuerung 30. Gemäß der Steuerung der ersten Hashwert-Berechnungseinheit 121 überträgt die erste Kommunikationseinheit 130 einen Hashwert in Assoziation mit einem Ereignis an die andere Steuerung 30. Vorliegend ist die andere Steuerung 30 ein Gerät zum Speichern des Hashwertes der Ereignishistorie-Daten des Ereignisses, welches in der ersten SPS 1 aufgetreten ist, und zum Teilen von Information mit der ersten SPS 1 und ist eine andere Steuerung, die außerhalb der ersten SPS 1 angeordnet ist. Die andere Steuerung 30 ist mit der ersten SPS 1 über eine Kommunikationsverbindung 40 verbunden und kann mit der ersten Kommunikationseinheit 130 kommunizieren. Es ist zu beachten, dass die andere Steuerung 30 mit der ersten Kommunikationseinheit 130 drahtlos kommunizieren kann.
  • Die erste Kommunikationseinheit 130 empfängt diverse Informationen betreffend ein Ereignis von dem anderen Gerät, welches außerhalb der ersten SPS 1 angeordnet ist, und überträgt die Information an die erste Hashwert-Berechnungseinheit 121. Ein Beispiel der diversen Informationen betreffend ein Ereignis umfasst einen Hashwert für Ereignishistorie-Daten eines Ereignisses, welches in einer anderen SPS aufgetreten ist. Ein weiteres Beispiel der diversen Informationen betreffend ein Ereignis umfasst von dem Steuerungszielgerät 60 übertragene Information, beispielsweise Information über eine Änderung eines Sensorwertes des Steuerungszielgerätes 60, Information über eine Änderung eines Ausgabewertes aus dem Steuerungszielgerät 60 und eine Alarminformation, die durch eine Eingabe/Ausgabe, die außerhalb der Toleranz liegt, in dem Steuerungszielgerät 60 verursacht ist. Mittel zur Kommunikation zwischen dem anderen Gerät und der ersten Kommunikationseinheit 130 sind nicht auf besondere Weise beschränkt.
  • Als nächstes wird ein grundlegender Ereignisaufnahmeprozess in der ersten SPS 1 gemäß der ersten Ausführungsform beschrieben. 2 ist ein Ablaufdiagramm, welches einen Ablauf des Ereignisaufnahmeprozesses in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. 3 ist ein Diagramm, welches ein Verfahren zum Erzeugen von Ereignishistorie-Daten in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Der Ereignisaufnahmeprozess wird gestartet, wenn nach der Aktivierung der ersten SPS 1 ein Ereignis in der ersten SPS 1 auftritt. Zuerst, in Schritt S10 des Ereignisaufnahmeprozesses, bezieht die erste Hashwert-Berechnungseinheit 121 einen „vorherigen Hashwert“, welcher der aktuellste Hashwert ist, der in der ersten Hashwerthistorie-Speichereinheit 112 gespeichert ist. Es ist zu beachten, dass ein „Hashwert von Ereignishistorie-Daten eines vorherigen Ereignisses“ einfach als „vorheriger Hashwert“ bezeichnet ist.
  • Als nächstes, in Schritt S20, kombiniert die erste Hashwert-Berechnungseinheit 121 in 3 dargestellte aktuelle Ereignisdaten und den vorherigen Hashwert, um in 3 dargestellte Ereignishistorie-Daten zu erzeugen. Vorliegend, wenn die aktuellen Ereignisdaten zu Beginn von Schritt S20 erzeugt wurden, erzeugt die erste Hashwert-Berechnungseinheit 121 die Ereignishistorie-Daten unter Verwendung der erzeugten aktuellen Ereignishistorie-Daten. Wenn die aktuellen Ereignisdaten zu Beginn von Schritt S20 noch nicht erzeugt wurden, erzeugt die erste Hashwert-Berechnungseinheit 121 die aktuellen Ereignisdaten basierend auf dem Ereignis, das in der ersten SPS 1 zu diesem Zeitpunkt aufgetreten ist. Die erste Hashwert-Berechnungseinheit 121 erzeugt anschließend die Ereignishistorie-Daten unter Verwendung der erzeugten Ereignisdaten.
  • Als nächstes, in Schritt S30, speichert die erste Ereignishistorie-Speichereinheit 111 die Ereignishistorie-Daten. Das heißt, die erste Hashwert-Berechnungseinheit 121 veranlasst die erste Ereignishistorie-Speichereinheit 111 dazu, die erzeugten Ereignishistorie-Daten zu speichern. Zudem kann die aktuelle Zeit, die von der ersten SPS 1 bereitgestellt wird, den Ereignishistorie-Daten hinzugefügt werden und in eine Ereignishistorie aufgenommen werden.
  • Als nächstes, in Schritt S40, berechnet die erste Hashwert-Berechnungseinheit 121 einen Hashwert der kombinierten Daten, die durch Kombinieren der in 3 dargestellten aktuellen Ereignisdaten und des vorherigen Hashwertes erhalten wurden, das heißt, einen Hashwert der Ereignishistorie-Daten. Anschließend dient der in Schritt S40 berechnete Hashwert als ein aktueller Hashwert. Es ist zu beachten, dass ein „Hashwert der Ereignishistorie-Daten des aktuellen Ereignisses“ einfach als der „aktuelle Hashwert“ bezeichnet ist.
  • Als nächstes, in Schritt S50, speichert die erste Hashwerthistorie-Speichereinheit 112 den aktuellen Hashwert. Das heißt, die erste Hashwert-Berechnungseinheit 121 veranlasst die erste Hashwerthistorie-Speichereinheit 112 dazu, den berechneten aktuellen Hashwert zu speichern.
  • Als nächstes, in Schritt S60, bestimmt die erste Hashwert-Berechnungseinheit 121, ob der berechnete aktuelle Hashwert an eine andere SPS als einem vorbestimmten Übertragungsziel übertragen werden soll oder nicht. Ob der aktuelle Hashwert übertragen werden soll oder nicht, wird basierend auf einer Bestimmungsbedingung bestimmt, beispielsweise wie oft der berechnete Hashwert an ein anderes Gerät zu übertragen ist. Die Bestimmungsbedingung ist im Vorhinein festgelegt und in der ersten Hashwert-Berechnungseinheit 121 gespeichert. Es ist zu beachten, dass die Bestimmungsbedingung in einer Komponente gespeichert sein kann, die von der ersten Hashwert-Berechnungseinheit 121 in der ersten SPS 1 verschieden ist.
  • Wenn bestimmt wird, dass der aktuelle Hashwert nicht übertragen werden soll, das heißt bei nein in Schritt S60, endet der Ereignisaufnahmeprozess.
  • Wenn bestimmt wird, dass der aktuelle Hashwert übertragen werden soll, das heißt bei ja in Schritt S60, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S70 voran und überträgt den Hashwert des aktuellen Ereignisses an eine andere SPS als dem vorbestimmten Übertragungsziel, womit der Ereignisaufnahmeprozess endet. Der Ereignisaufnahmeprozess in der ersten SPS 1 wird ausgeführt, indem der obige Prozess durchgeführt wird. Es ist zu beachten, dass die Anzahl von anderen SPSen, an welche der Hashwert des aktuellen Ereignisses übertragen wird, nicht begrenzt ist. Anschließend empfängt und speichert die andere SPS, an welche der Hashwert in Schritt S70 übertragen wurde, den Hashwert.
  • Anschließend, nach dem Ereignisaufnahmeprozess, liest die erste Unregelmäßigkeit-Detektionseinheit 122 der ersten SPS 1 die Ereignishistorie-Daten, die in der ersten Ereignishistorie-Speichereinheit 111 gespeichert sind, und berechnet den Hashwert der gelesenen Ereignishistorie-Daten erneut. Die erste Unregelmäßigkeit-Detektionseinheit 122 detektiert anschließend eine Unregelmäßigkeit in dem neu berechneten Hashwert durch Vergleichen des neu berechneten Hashwertes mit dem Hashwert, der in der ersten Hashwerthistorie-Speichereinheit 112 gespeichert ist und den Ereignishistorie-Daten zugeordnet ist, für welche der Hashwert neu berechnet wurde.
  • Wie oben beschrieben, hat die erste SPS 1 die Funktion, in welcher die erste Hashwert-Berechnungseinheit 121 den Hashwert der Ereignishistorie-Daten des Ereignisses, welches in der ersten SPS 1 aufgetreten ist, an die andere SPS überträgt. Hierdurch werden Hashwerte, die (genau) einem Ereignis zugeordnet sind, welches in der ersten SPS 1 aufgetreten ist, in einer Vielzahl von Geräten, inklusive der ersten SPS 1 und der anderen SPS, gespeichert. Ein Verifikationsgerät, welches separat von der ersten SPS 1 und der anderen SPS bereitgestellt ist, vergleicht daher die zwei Hashwerte, die in der ersten SPS 1 und der anderen SPS gespeichert sind, um verifizieren zu können, ob der in der ersten SPS 1 gespeicherte Hashwert der korrekte Hashwert, der in dem Ereignisaufnahmeprozess der ersten SPS 1 aufgenommen wurde, ist oder nicht. Das heißt, die erste SPS 1 kann eine Verfälschung des in der ersten SPS 1 gespeicherten Hashwertes detektieren, wenn die Hashwerte, die dem (genau) einen Ereignis zugeordnet und in der ersten SPS 1 und der anderen SPS gespeichert sind, unterschiedliche Werte haben. Daher kann die erste SPS 1 eine Verfälschung des in der ersten SPS 1 gespeicherten Hashwertes des Ereignisses einfach detektieren, indem der Hashwert des Ereignisses der ersten SPS 1, der in der ersten SPS 1 gespeichert ist, mit dem Hashwert, der in der anderen SPS gespeichert ist, verglichen wird.
  • Wie oben beschrieben, kann zudem die erste Unregelmäßigkeit-Detektionseinheit 122 bestimmen, ob der neue berechnete Hashwert normal oder unregelmäßig ist, wodurch sie verifizieren kann, ob der in der ersten Hashwerthistorie-Speichereinheit 112 gespeicherte Hashwert und die in der ersten Ereignishistorie-Speichereinheit 111 gespeicherten Ereignishistorie-Daten korrekte Daten sind oder nicht.
  • Als nächstes wird der Ereignisaufnahmeprozess beschrieben, welcher in der ersten SPS 1 durchgeführt wird, wenn die erste SPS 1 einen Hashwert von einer anderen SPS empfängt. Die andere SPS hat die gleiche Funktion wie die erste SPS 1. 4 ist ein Ablaufdiagramm, welches einen Ablauf eines ersten Hashwert-Empfangsprozesses in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Der erste Hashwert-Empfangsprozess wird zu einem vorbestimmten Zeitpunkt nach der Aktivierung der ersten SPS 1 gestartet. Zuerst, in Schritt S 110, bestimmt die erste Hashwert-Berechnungseinheit 121, ob ein Hashwert von einer anderen SPS empfangen wurde oder nicht. Die erste Kommunikationseinheit 130 überträgt Kommunikationsinformation, welche einen Hashwert enthält, an die erste Hashwert-Berechnungseinheit 121, wenn von einer anderen SPS die Kommunikationsinformation empfangen wurde, die den Hashwert enthält. Daher kann die erste Hashwert-Berechnungseinheit 121 bestimmen, ob von einer anderen SPS ein Hashwert empfangen wurde oder nicht, in Abhängigkeit davon, ob von der ersten Kommunikationseinheit 130 die Kommunikationsinformation, die den Hashwert enthält, empfangen wurde oder nicht.
  • Wenn bestimmt wird, dass kein Hashwert von einer anderen SPS empfangen wurde, das heißt bei nein in Schritt S 110, endet der Ereignisaufnahmeprozess.
  • Wenn bestimmt wird, dass ein Hashwert von einer anderen SPS empfangen wurde, das heißt bei ja in Schritt S110, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S120 voran und liest den empfangenen Hashwert in der Kommunikationsinformation, die den Hashwert enthält.
  • Als nächstes, in Schritt S130, erzeugt die erste Hashwert-Berechnungseinheit 121 Ereignisdaten, welche den gelesenen Hashwert enthalten, basierend auf dem gelesenen Hashwert. Anschließend dienen die in Schritt S130 erzeugten Ereignisdaten als Ereignisdaten, deren Ereignis der Empfang des Hashwertes der anderen SPS ist.
  • Als nächstes, in Schritt S140, führt die erste Hashwert-Berechnungseinheit 121 den in 2 gezeigten Ereignisaufnahmeprozess durch. Durch das Durchführen des obigen Prozesses wird der Ereignisaufnahmeprozess ausgeführt, wenn die erste SPS 1 den Hashwert von der anderen SPS empfängt. Der erste Hashwert-Empfangsprozess kann in regelmäßigen Abständen ausgeführt oder jedes Mal ausgeführt werden, wenn die erste SPS 1 Ereignishistorie-Daten speichert, und kann an einem gegebenen Zeitpunkt und mit einer gegebenen Frequenz ausgeführt werden, welche in der ersten SPS 1 eingestellt sind.
  • Wie oben beschrieben, weist die erste SPS 1 die Funktion auf, in welcher die erste Hashwert-Berechnungseinheit 121 den Hashwert der Ereignishistorie-Daten des Ereignisses, welches in der ersten SPS 1 aufgetreten ist, an die andere SPS überträgt, und weist auch die Funktion auf, in welcher die erste Hashwert-Berechnungseinheit 121 die erste Ereignishistorie-Speichereinheit 111 dazu veranlasst, den von der anderen SPS übertragenen Hashwert zu speichern und ihn dabei in die Ereignishistorie-Daten einzufügen. Die erste SPS 1 führt anschließend den oben beschriebenen ersten Hashwert-Empfangsprozess durch, um den Hashwert der Ereignishistorie-Daten des Ereignisses in der anderen SPS empfangen und ihn in der ersten SPS 1 speichern zu können.
  • Hierdurch werden die Hashwerte, die dem Ereignis entsprechen, welches in der ersten SPS 1 aufgetreten ist, in einer Vielzahl von Geräten, inklusive der ersten SPS 1 und der anderen SPS, gespeichert. Die erste SPS 1 verwendet ein Verifikationsgerät, welches separat von sowohl der ersten SPS 1 als auch der anderen SPS bereitgestellt ist, zum Vergleichen der zwei Hashwerte, die (genau) einem Ereignis zugeordnet sind und in der ersten SPS 1 und der anderen SPS gespeichert sind, um hierdurch verifizieren zu können, ob der Hashwert, der in der ersten SPS 1 gespeichert ist, der korrekte Hashwert ist oder nicht, der in dem Ereignisaufzeichnungsprozess der ersten SPS 1 aufgenommen wurde. Das heißt, die erste SPS 1 kann eine Verfälschung des Hashwertes, der in der ersten SPS 1 gespeichert ist, detektieren, wenn die Hashwerte, die (genau) einem Ereignis entsprechen und in der ersten SPS 1 und der anderen SPS gespeichert sind, unterschiedliche Werte haben.
  • Zudem werden die Hashwerte, die (genau) einem Ereignis zugeordnet sind, welches in einer anderen SPS aufgetreten ist, in einer Vielzahl von Geräten, inklusive der ersten SPS 1 und der anderen SPS, gespeichert. Auch in diesem Fall vergleicht ein Verifikationsgerät die zwei Hashwerte, die (genau) einem Ereignis zugeordnet sind und in der ersten SPS 1 und der anderen SPS gespeichert sind, wodurch es verifizieren kann, ob der Hashwert, der in der anderen SPS gespeichert ist, der korrekte Hashwert ist oder nicht, der in dem Ereignisaufnahmeprozess der anderen SPS aufgenommen wurde. Das heißt, die andere SPS kann eine Verfälschung des Hashwertes, der in der anderen SPS gespeichert ist, detektieren, wenn die Hashwerte, die dem (genau) einen Ereignis zugeordnet sind und in der ersten SPS 1 und der anderen SPS gespeichert sind, unterschiedliche Werte haben. Selbst wenn der Hashwert des Ereignisses, welcher in der anderen SPS gespeichert ist, verfälscht ist, kann die andere SPS daher die Verfälschung des Hashwertes des Ereignisses, welcher in der anderen SPS gespeichert ist, einfach detektieren, indem der Hashwert des Ereignisses, welcher in der anderen SPS gespeichert ist, mit dem Hashwert des Ereignisses der anderen SPS, welcher in der ersten SPS 1 gespeichert ist, verglichen wird.
  • Der in den 2 und 4 jeweils dargestellte Prozess wird von (genau) einer ersten SPS 1 ausgeführt. Eine Konfiguration, in welcher zwei SPSen kombiniert sind, die jeweils die Funktion der ersten SPS 1 haben, entspricht einer Konfiguration eines minimalen SPS-Systems, in welchem die SPSen die Hashwerte des jeweils anderen speichern können. Nachfolgend wird ein Datenfluss dargestellt, der auftritt, wenn der Hashwert jeder SPS in einer solchen Konfiguration des SPS-Systems gespeichert wird.
  • 5 ist ein Diagramm, welches ein Beispiel einer Konfiguration eines SPS-Systems 300 zeigt, welches ein Steuerungssystem gemäß der ersten Ausführungsform der vorliegenden Erfindung ist. Das SPS-System 300, gezeigt in 5, ist ein minimales SPS-System, in welchem die erste SPS 1 und eine zweite SPS 2 miteinander über ein Netzwerk 50 kommunizieren können und Hashwerte des jeweils anderen speichern können. In diesem Fall fungiert die erste SPS 1 oder die zweite SPS 2 als die andere Steuerung 30, die außerhalb der anderen SPS angeordnet ist.
  • Die zweite SPS 2 hat eine Konfiguration und Funktion, die denen der ersten SPS 1 ähnlich sind. Das heißt, die zweite SPS 2 umfasst eine zweite Speichereinheit 210, eine zweite Steuerungseinheit 220 und eine zweite Kommunikationseinheit 230. Diese Komponenten sind miteinander so verbunden, dass sie einander Information kommunizieren können. Die zweite Speichereinheit 210 entspricht der ersten Speichereinheit 110, die zweite Steuerungseinheit 220 entspricht der ersten Steuerungseinheit 120, und die zweite Kommunikationseinheit 230 entspricht der ersten Kommunikationseinheit 130.
  • Die zweite Speichereinheit 210 umfasst eine zweite Ereignishistorie-Speichereinheit 211, eine zweite Hashwerthistorie-Speichereinheit 212 und eine zweite Programm-Speichereinheit 213. Die zweite Ereignishistorie-Speichereinheit 211 entspricht der ersten Ereignishistorie-Speichereinheit 111, die zweite Hashwerthistorie-Speichereinheit 212 entspricht der ersten Hashwerthistorie-Speichereinheit 112, und die zweite Programm-Speichereinheit 213 entspricht der ersten Programm-Speichereinheit 113.
  • Die zweite Steuerungseinheit 220 umfasst eine zweite Hashwert-Berechnungseinheit 221 und eine zweite Unregelmäßigkeit-Detektionseinheit 222. Die zweite Hashwert-Berechnungseinheit 221 entspricht der ersten Hashwert-Berechnungseinheit 121, und die zweite Unregelmäßigkeit-Detektionseinheit 222 entspricht der ersten Unregelmäßigkeit-Detektionseinheit 122.
  • Die erste SPS 1 und die zweite SPS 2 übertragen einander durch zyklische Kommunikation einen Hashwert einer Ereignishistorie des aktuellsten Ereignisses, welches in der jeweiligen SPS aufgetreten ist. Die SPS, die den Hashwert der aktuellsten Ereignishistorie empfangen hat, speichert den empfangenen Hashwert als Ereignishistorie-Daten und berechnet und speichert einen Hashwert der Ereignishistorie-Daten. Die erste SPS 1 erzeugt Ereignisdaten basierend auf dem von der zweiten SPS 2 empfangenen Hashwert und erzeugt ferner Ereignishistorie-Daten aus den Ereignisdaten und einem vorherigen Hashwert in der ersten SPS 1 und speichert die erzeugten Ereignishistorie-Daten. Die zweite SPS 2 erzeugt Ereignisdaten basierend auf dem von der ersten SPS 1 empfangenen Hashwert und erzeugt ferner Ereignishistorie-Daten aus den Ereignisdaten und einem vorherigen Hashwert in der zweiten SPS 2 und speichert die erzeugten Ereignishistorie-Daten. Das heißt die erste SPS 1 und die zweite SPS 2 übertragen und empfangen wechselseitig die Hashwerte der Ereignishistorie, sodass die in jeder SPS gespeicherte Ereignishistorie den Hashwert der Ereignishistorie der anderen SPS umfasst, wodurch eine Hashkette der Ereignishistorie-Daten von sowohl der ersten SPS 1 als auch der zweiten SPS 2 gebildet wird.
  • Es ist zu beachten, dass die SPSen Hashwerte des jeweils anderen in dem SPS-System 300 speichern können, aber nicht notwendigerweise die Hashwerte untereinander austauschen müssen, wenn es möglich ist, eine Konfiguration anzunehmen, in welcher der Hashwert von (genau) einer SPS zu der anderen SPS übertragen und darin gespeichert wird.
  • 6 ist ein Diagramm, welches ein Beispiel eines Datenflusses zeigt, wenn die Ereignishistorie-Daten in dem SPS-System 300 gemäß der ersten Ausführungsform der vorliegenden Erfindung gespeichert werden. Es ist zu beachten, dass im Folgenden die erste SPS 1 und die zweite SPS 2 einfach als SPSen bezeichnet werden, wenn diese nicht unterschieden werden.
  • 6 zeigt das Beispiel, in welchem in der ersten SPS 1 die erste Hashwert-Berechnungseinheit 121 Ereignishistorie-Daten erzeugt, welche Ereignisdaten a1, welche Ereignisdaten eines Ereignisses sind, welches in der ersten SPS 1 aufgetreten ist, und einen Hashwert Ha1 eines vorherigen Ereignisses enthalten, und berechnet anschließend einen Hashwert Ha2 der erzeugten Ereignishistorie-Daten. Die erste Hashwert-Berechnungseinheit 121 veranlasst die erste Ereignishistorie-Speichereinheit 111 dazu, die erzeugten Ereignishistorie-Daten zu speichern, und veranlasst die erste Hashwerthistorie-Speichereinheit 112 dazu, den erzeugten Hashwert Ha2 zu speichern. Die erste Hashwert-Berechnungseinheit 121 überträgt zudem den erzeugten Hashwert Ha2 an die zweite SPS 2.
  • Als nächstes erzeugt die erste Hashwert-Berechnungseinheit 121 Ereignishistorie-Daten, welche Ereignisdaten a2, welche Ereignisdaten eines Ereignisses sind, welches in der ersten SPS 1 aufgetreten ist, und den Hashwert Ha2 des vorherigen Ereignisses enthalten, und berechnet anschließend einen Hashwert Ha3 der erzeugten Ereignishistorie-Daten. Die erste Hashwert-Berechnungseinheit 121 veranlasst die erste Ereignishistorie-Speichereinheit 111 dazu, die erzeugten Ereignishistorie-Daten zu speichern, und veranlasst die erste Hashwerthistorie-Speichereinheit 112 dazu, den erzeugten Hashwert Ha3 zu speichern.
  • Als nächstes erzeugt die erste Hashwert-Berechnungseinheit 121 Ereignishistorie-Daten, welche Ereignisdaten a3, welche Ereignisdaten sind, die einem von der zweiten SPS 2 übertragenen Hashwert Hb4 zugeordnet sind, und den Hashwert Ha3 des vorherigen Ereignisses enthalten, und berechnet anschließend einen Hashwert Ha4 der erzeugten Ereignishistorie-Daten. Vorliegend enthalten die Ereignisdaten a3 den von der zweiten SPS 2 übertragenen Hashwert Hb4.
  • Ferner zeigt 6 das Beispiel, in welchem in der zweiten SPS 2 die zweite Hashwert-Berechnungseinheit 221 Ereignishistorie-Daten erzeugt, welche Ereignisdaten b1, welche Ereignisdaten eines Ereignisses sind, welches in der zweiten SPS 2 aufgetreten ist, und einen Hashwert Hb1 eines vorherigen Ereignisses enthalten, und berechnet anschließend einen Hashwert Hb2 der erzeugten Ereignishistorie-Daten. Die zweite Hashwert-Berechnungseinheit 221 veranlasst die zweite Ereignishistorie-Speichereinheit 211 dazu, die erzeugten Ereignishistorie-Daten zu speichern, und veranlasst die zweite Hashwerthistorie-Speichereinheit 212 dazu, den erzeugten Hashwert Hb2 zu speichern.
  • Als nächstes erzeugt die zweite Hashwert-Berechnungseinheit 221 Ereignishistorie-Daten, welche Ereignisdaten b2, welche Ereignisdaten sind, die dem von der ersten SPS 1 übertragenen Hashwert Ha2 zugeordnet sind, und den Hashwert Hb2 des vorherigen Ereignisses enthalten, und berechnet anschließend einen Hashwert Hb3 der erzeugten Ereignishistorie-Daten. Die zweite Hashwert-Berechnungseinheit 221 veranlasst die zweite Ereignishistorie-Speichereinheit 211 dazu, die erzeugten Ereignishistorie-Daten zu speichern, und veranlasst zweite Hashwerthistorie-Speichereinheit 212 dazu, den erzeugten Hashwert Hb3 zu speichern. Vorliegend enthalten die Ereignisdaten b2 den von der ersten SPS 1 übertragenen Hashwert Ha2.
  • Als nächstes erzeugt die zweite Hashwert-Berechnungseinheit 221 Ereignishistorie-Daten, welche Ereignisdaten b3, welche Ereignisdaten eines Ereignisses sind, welches in der zweiten SPS 2 aufgetreten ist, und den Hashwert Hb3 des vorherigen Ereignisses enthalten, und berechnet anschließend den Hashwert Hb4 der erzeugten Ereignishistorie-Daten. Die zweite Hashwert-Berechnungseinheit 221 veranlasst die zweite Ereignishistorie-Speichereinheit 211 dazu, die erzeugten Ereignishistorie-Daten zu speichern, und veranlasst die zweite Hashwerthistorie-Speichereinheit 212 dazu, den erzeugten Hashwert Hb4 zu speichern. Die zweite Hashwert-Berechnungseinheit 221 überträgt ferner den erzeugten Hashwert Hb4 an die erste SPS 1.
  • Der Zeitpunkt zum Übertragen des Hashwertes der Ereignishistorie in der ersten SPS 1 und der zweiten SPS 2 ist nicht auf besondere Weise beschränkt. Wie oben beschrieben, kann der Hashwert jedes Mal übertragen werden, wenn Ereignishistorie-Daten in der jeweiligen SPS aufgenommen werden, oder kann mit Unterbrechungen übertragen werden, wenn eine vorbestimmte Anzahl der gespeicherten Hashwerte der Ereignishistorie angefallen ist. In Bezug auf das Übertragen eines korrekten Hashwertes der Ereignishistorie, der in der jeweiligen SPS gespeichert ist, und das Speichern desselben in der anderen SPS ist jedoch bevorzugt, dass der Hashwert jedes Mal übertragen wird, wenn Ereignishistorie-Daten in der jeweiligen SPS aufgenommen werden.
  • Außerdem muss die empfangende SPS, welche den übertragenen Hashwert empfängt, den übertragenen Hashwert nicht jedes Mal empfangen und speichern, sondern braucht den Hashwert nur gemäß der Nutzungsbedingung der empfangenden SPS empfangen und speichern. Die empfangende SPS, welche den übertragenen Hashwert empfängt, kann es in einigen Fällen versäumen oder nicht in der Lage sein, den Hashwert zu speichern. Das heißt, der Betrieb auf der empfangenden Seite kann unsicher sein und der Speicherprozess muss nur soweit durchgeführt werden, wie die empfangende Seite den Hashwert empfangen kann. In einem drahtlosen Kommunikationsnetzwerk, welches batteriebetrieben oder dergleichen ist, kann hierdurch der Energieverbrauch reduziert werden, indem die Häufigkeit von Übertragungs-/Empfangsprozessen reduziert wird.
  • Wie oben beschrieben, führen in dem SPS-System 300 die zwei SPSen, welche die erste SPS 1 und die zweite SPS 2 sind, den in 6 gezeigtem Prozess wechselseitig durch. Hierdurch speichern die zwei SPSen Hashwerte des jeweils anderen, indem die Hashwerte einander gesendet werden, sodass der Hashwert der Ereignishistorie-Daten eines einzigen Ereignisses, das in (genau) einer SPS aufgetreten ist, in den zwei SPSen gespeichert ist. Daher kann das SPS-System 300 eine Verfälschung des Hashwertes einfach detektieren, indem die in den zwei SPSen gespeicherten Hashwerte verglichen werden, selbst wenn der Hashwert des Ereignisses, der in einem der zwei SPSen gespeichert ist, verfälscht ist. Es ist auch möglich, ein SPS-System zu konfigurieren, in welchem drei oder mehr SPSen, die jeweils die gleiche Funktion wie die erste SPS 1 haben, kommunikativ miteinander verbunden sind. Die SPSen speichern jeweils einen Hashwert, welcher von der Hashwert-Berechnungseinheit berechnet wird, und einen Hashwert von wenigstens einer SPS der Vielzahl von anderen SPSen in dem SPS-System. Das heißt, dass die SPSen jeweils den Hashwert der anderen SPS speichern können, indem die Hashwerte einander gesendet werden.
  • Obwohl die SPS als die andere Steuerung 30 zum Speichern des Hashwertes (genau) eines Ereignisses in einem anderen Gerät und zum Teilen der Information in dem SPS-System 300 verwendet wird, ist zu beachten, dass die andere Steuerung 30 unter Verwendung eines Aktuelle-Zeit-Managementservers zum Managen der aktuellen Zeit oder durch einen Ereignishistorie-Speicherserver zum Speichern von Ereignisdaten implementiert sein kann. In dem Fall, in welchem der Aktuelle-Zeit-Managementserver als die andere Steuerung 30 verwendet wird, wird ein Hashwert von Ereignishistorie-Daten eines Ereignisses, welches in der SPS aufgetreten ist, in der SPS und in dem Aktuelle-Zeit-Managementserver gespeichert. In dem Fall, in welchem der Ereignishistorie-Speicherserver als die andere Steuerung 30 verwendet wird, wird ein Hashwert von Ereignishistorie-Daten eines Ereignisses, welches in der SPS aufgetreten ist, in der SPS und in dem Ereignishistorie-Speicherserver gespeichert.
  • Unter der Annahme, dass das Netzwerk 50 in dem SPS-System 300 unter Verwendung eines unsicheren Netzwerks implementiert ist, in welchem Verlust von übertragenen Daten, Zerstörung von übertragenen Daten und das Versäumen von empfangenen Daten mit einer bestimmten Häufigkeit auftreten, kann ein Hashwert, der empfangen werden soll, in einigen Fällen nicht empfangen werden. Bei einem solchen unsicheren Netzwerk kann die übertragende SPS tatsächliche Daten von Ereignishistorie-Daten und einen aktuellen Hashwert an die empfangende SPS übertragen, wenn der Hashwert übertragen wird. Das heißt, die übertragende SPS kann einen Hashwert eines vorherigen Ereignisses, aktuelle Ereignisdaten und den Hashwert des aktuellen Ereignisses übertragen. Hierdurch wird der dem Ereignis zugeordnete Hashwert an die empfangende SPS, welche die andere Steuerung 30 ist, übertragen.
  • Die empfangende SPS speichert die tatsächlichen Daten der Ereignishistorie-Daten zusammen mit dem Hashwert. In diesem Fall kann die empfangende SPS verifizieren, dass die tatsächlichen Daten der Ereignishistorie-Daten und der empfangene Hashwert korrekt sind, indem der Hashwert unter Verwendung der tatsächlichen Daten der Ereignishistorie-Daten in der ersten Unregelmäßigkeit-Detektionseinheit 122 oder der zweiten Unregelmäßigkeit-Detektionseinheit 222, welche eine Unregelmäßigkeit-Detektionseinheit ist, neu berechnet wird. Wenn als Ergebnis der Neuberechnung bestimmt wird, dass die tatsächlichen Daten der Ereignishistorie-Daten und der Hashwert nicht korrekt sind und eine Verfälschung dieser Daten detektiert wurde, werden die empfangenen Daten verworfen. Der Zeitpunkt, an welchem die empfangende SPS die oben beschriebene Neuberechnung durchführt, ist nicht beschränkt und kann der Zeitpunkt sein, wenn der Hashwert und die tatsächlichen Daten der Ereignishistorie-Daten empfangen werden, oder kann ein anderer Zeitpunkt sein.
  • Ferner kann die übertragende SPS, welche den Hashwert überträgt, die Tatsache, dass der Hashwert an das unsichere Netzwerk übertragen wurde, in der ersten Ereignishistorie-Speichereinheit 111 oder der zweiten Ereignishistorie-Speichereinheit 211, welche eine Ereignishistorie-Speichereinheit ist, speichern. Wenn Ereignishistorie-Daten, welche angeben, dass der Hashwert übertragen wird, erzeugt und in der Ereignishistorie-Speichereinheit gespeichert werden, werden die Ereignishistorie-Daten nach dem Lesen durch die übertragende SPS, welche den Hashwert überträgt, und die empfangende SPS, welche den Hashwert empfängt, verifiziert, wodurch detektiert werden kann, dass ein Unterschied zwischen dem in der übertragenden SPS gespeicherten Hashwert und dem Hashwert besteht, der von der übertragenden SPS tatsächlich empfangen werden sollte. Selbst wenn die empfangende SPS den empfangenen Hashwert versäumt, ist zu beachten, dass der Hashwert, der gelesen wurde, verifiziert werden kann, und die Rate des Versäumens des Hashwertes kann aus der Historie der von der übertragenden SPS übertragenen Hashwerte berechnet werden. Daher kann die Unsicherheit des Netzwerks und die Zuverlässigkeit des empfangenen und gespeicherten Hashwertes quantitativ aus diesen Informationen berechnet werden.
  • Als nächstes wird ein Fall beschrieben, in welchem ein von einer anderen SPS übertragener Hashwert auf beschränkte Weise gespeichert wird statt bedingungslos ohne Beschränkungen gespeichert zu werden. 7 ist ein Diagramm, welches eine Konfiguration eines SPS-Systems 400 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. Das SPS-System 400 ist ein SPS-System, in welchem eine große Anzahl von SPSen, welche jeweils die gleiche Funktion wie die erste SPS 1 haben, über das Netzwerk 50 verbunden sind und ein Hashwert von Ereignishistorie-Daten eines Ereignisses, welches in (genau) einer SPS aufgetreten ist, in einer Vielzahl der anderen SPSen gespeichert werden kann. Nachfolgend wird ein zweiter Hashwert-Empfangsprozess, der einen Empfang-Aktiv/Inaktiv-Bestimmungsprozess umfasst, beschrieben, welcher bestimmt, ob ein von einer anderen SPS übertragener Hashwert in dem SPS-System 400 empfangen werden kann oder nicht. Das SPS-System 400 ist so konfiguriert, dass n SPSen, inklusive der ersten SPS 1 und der zweiten SPS 2, mit der gleichen Funktion wie die erste SPS 1 miteinander kommunizieren können. Obwohl der Prozess in der ersten SPS 1 nachfolgend beschrieben wird, ist zu beachten, dass die in dem SPS-System 400 enthaltene SPS die gleiche Funktion wie die erste SPS 1 hat und daher kann der folgende Prozess in allen der SPSen durchgeführt werden, die in dem SPS-System 400 enthalten sind.
  • Als Erstes wird der Empfang-Aktiv/Inaktiv-Bestimmungsprozess beschrieben, welcher bestimmt, ob die erste SPS 1 einen von einer anderen SPS übertragenen Hashwert empfangen kann oder nicht. 8 ist ein Ablaufdiagramm, welches einen Ablauf des Empfang-Aktiv/Inaktiv-Bestimmungsprozesses in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Nachdem die erste SPS 1 aktiviert ist, wird der Empfang-Aktiv/Inaktiv-Bestimmungsprozess gestartet, wenn eine Kommunikationsinformation, die einen Hashwert enthält, von einer anderen SPS in dem SPS-System 400 an die erste Kommunikationseinheit 130 übertragen ist. Zuerst, in Schritt S210, bestimmt die erste Kommunikationseinheit 130 der ersten SPS 1, ob oder ob nicht die Kommunikationsinformation, die den Hashwert enthält und von der anderen SPS in dem SPS-System 400 übertragen wurde, eine Kommunikationsinformation ist, die von einer für den Hashwert registrierten SPS, welche eine für den Hashwert registrierte Steuerung ist, übertragen wurde. Die für den Hashwert registrierte SPS ist eine SPS, welche als eine SPS registriert ist, deren Hashwert durch die erste SPS 1 unter den anderen SPSen in dem SPS-System 400 empfangen werden darf, wenn die Kommunikationsinformation, welche den Hashwert enthält, von der anderen SPS in dem SPS-System 400 übertragen wurde. Information über die für den Hashwert registrierte SPS ist beispielsweise eine Information wie eine IP (Internet Protocol)-Adresse oder eine Port-Nummer der Quellen-SPS, und ist im Vorhinein festgelegt und in der ersten Kommunikationseinheit 130 registriert. Es ist zu beachten, dass die Information über die SPS, deren Hashwert empfangen werden darf, in einer Komponente gespeichert sein kann, die von der ersten Kommunikationseinheit 130 in der ersten SPS 1 verschieden ist.
  • Wenn die von der anderen SPS übertragene Kommunikationsinformation, welche den Hashwert enthält, keine Kommunikationsinformation ist, die von der registrierten SPS übertragen wurde, ist, das heißt bei nein in Schritt S210 schreitet die erste Kommunikationseinheit 130 zu Schritt S250 voran und bestimmt, die Kommunikationsinformation, welche den Hashwert enthält, nicht zu empfangen.
  • Im Gegensatz dazu, wenn die von der anderen SPS übertragene Kommunikationsinformation, welche den Hashwert enthält, die Kommunikationsinformation ist, die von der registrierten SPS übertragen wurde, das heißt bei ja in Schritt S210, schreitet die erste Kommunikationseinheit 130 zu Schritt S220 voran. In Schritt S220 bestimmt die erste Kommunikationseinheit 130, ob oder ob nicht eine in der Kommunikationsinformation, die den Hashwert enthält, enthaltene Authentifikationsinformation, die von der anderen SPS übertragen wurde, mit einer Authentifikationsinformation übereinstimmt, die der SPS hinzugefügt ist, die die Steuerung ist, deren Hashwert empfangen werden darf. Die Authentifikationsinformation, die der SPS hinzugefügt ist, deren Hashwert empfangen werden darf, ist im Vorhinein festgelegt und in der ersten Kommunikationseinheit 130 registriert. Es ist zu beachten, dass die Information über die SPS, deren Hashwert empfangen werden darf, in einer Komponente gespeichert werden kann, die von der ersten Kommunikationseinheit 130 in der ersten SPS 1 verschieden ist.
  • Wenn die Authentifikationsinformation, die in der von der anderen SPS übertragenen Kommunikationsinformation, die den Hashwert enthält, enthalten ist, nicht mit der Authentifikationsinformation übereinstimmt, die der SPS hinzugefügt ist, deren Hashwert empfangen werden darf, das heißt, bei nein in Schritt S220, schreitet die erste Kommunikationseinheit 130 zu Schritt S250 voran und bestimmt, die Kommunikationsinformation, die den Hashwert enthält, nicht zu empfangen.
  • Im Gegensatz dazu, wenn die Authentifikationsinformation, die in der von der anderen SPS übertragenen Kommunikationsinformation, die den Hashwert enthält, enthalten ist, mit der Authentifikationsinformation übereinstimmt, die der SPS hinzugefügt ist, deren Hashwert empfangen werden darf, das heißt bei ja in Schritt S220, schreitet die Kommunikationseinheit 130 zu Schritt S230 voran. In Schritt S230 bestimmt die erste Kommunikationseinheit 130, ob seit dem letzten Empfang der Kommunikationsinformation, die den Hashwert enthält, von der registrierten SPS eine vorbestimmte Dauer oder länger verstrichen ist oder nicht. Die vorbestimmte Dauer ist eine Dauer, die seit dem letzten Empfang der Kommunikationsinformation, die den Hashwert enthält, von der registrierten SPS verstrichen ist und ist im Vorhinein für die registrierte SPS festgelegt und in der ersten Kommunikationseinheit 130 registriert. Es ist zu beachten, dass die Information über die vorbestimmte Dauer in einer Komponente gespeichert sein kann, die von der ersten Kommunikationseinheit 130 in der ersten SPS 1 verschieden ist.
  • Wenn die vorbestimmte Dauer oder länger noch nicht verstrichen ist, das heißt bei nein in Schritt S230, schreitet die erste Kommunikationseinheit 130 zu Schritt S250 voran und bestimmt, die Kommunikationsinformation, die den Hashwert enthält, nicht zu empfangen.
  • Im Gegensatz dazu, wenn die vorbestimmte Dauer oder länger verstrichen ist, das heißt bei ja in Schritt S230, schreitet die erste Kommunikationseinheit 130 zu Schritt S240 voran und bestimmt, die Kommunikationsinformation, welche den Hashwert enthält, zu empfangen.
  • Als nächstes wird ein zweiter Hashwert-Empfangsprozess beschrieben, welcher den obigen Empfang-Aktiv/Inaktiv-Bestimmungsprozess umfasst. 9 ist ein Ablaufdiagramm, welches einen Ablauf des zweiten Hashwert-Empfangsprozesses, welcher den Empfang-Aktiv/Inaktiv-Bestimmungsprozess umfasst, in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Nachdem die erste SPS 1 aktiviert ist, wird der zweite Hashwert-Empfangsprozess gestartet, wenn eine Kommunikationsinformation, welche einen Hashwert enthält, von einer anderen SPS in dem SPS-System 400 an die erste Kommunikationseinheit 130 übertragen ist. Zuerst, in Schritt S310, führt die erste Kommunikationseinheit 130 den Empfang-Aktiv/Inaktiv-Bestimmungsprozess durch, der in 8 gezeigt ist.
  • Als nächstes, in Schritt S320, bestimmt die erste Kommunikationseinheit 130 basierend auf einem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis, ob der von der anderen SPS übertragene Hashwert empfangen werden soll oder nicht.
  • Wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der von der anderen SPS übertragene Hashwert nicht empfangen werden soll, das heißt bei nein in Schritt S320, endet der zweite Hashwert-Empfangsprozess.
  • Im Gegensatz dazu, wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der von der anderen SPS empfangene Hashwert empfangen werden soll, das heißt bei ja in Schritt S320, schreitet die erste Kommunikationseinheit 130 zu Schritt S330 voran und empfängt den von der anderen SPS übertragenen Hashwert.
  • Als nächstes, in Schritt S340, führt die erste Hashwert-Berechnungseinheit 121 den ersten Hashwert-Empfangsprozess durch, der in 4 gezeigt ist, und anschließend endet der zweite Hashwert-Empfangsprozess.
  • Der obige Empfang-Aktiv/Inaktiv-Bestimmungsprozess bestimmt unter Verwendung der registrierten SPS, der Authentifikationsinformation und der nach Empfang verstrichenen Zeit als Bestimmungsbedingungen für einen aktiven/inaktiven Empfang, ob die Kommunikationsinformation, welche den Hashwert enthält, empfangen werden soll oder nicht. Das heißt, der Empfang-Aktiv/Inaktiv-Bestimmungsprozess, der von der ersten SPS 1 durchgeführt wird, ist eine Hashwert-Filterfunktion basierend auf einer gegenseitigen Authentifikation zwischen der ersten SPS 1 und der anderen SPS, welche die Kommunikationsinformation, die den Hashwert enthält, überträgt.
  • Die erste SPS 1 führt daher den zweiten Hashwert-Empfangsprozess, welcher den Empfang-Aktiv/Inaktiv-Bestimmungsprozess umfasst, durch, um fähig zu sein, Ereignishistorie-Daten nur bei Erfüllung einer vorbestimmten Bedingung zu speichern, deren Ereignis der Empfang des Hashwertes ist. Hierdurch ist die erste SPS 1 effektiv als Gegenmaßnahme zur Reduzierung des Schadens, der durch ein Fehlverhalten verursacht ist, beispielsweise eine Denial-of-Service (DOS)-Attacke, eine Datenverfälschung, die durch betrügerisches Auftreten verursacht ist, einfache Verlangsamung und das Versäumen von Daten. Wenn Hashwerte von einer großen Anzahl von SPSen in dem SPS-System 400 übertragen/empfangen werden, nimmt der Hashwert-Empfangsprozess, der von (genau) einer SPS durchgeführt wird, zu, so dass das Versäumen eines Hashwertes während des Empfangs möglicherweise zunimmt. Die erste SPS 1 kann einen Hashwert unter Verwendung des oben beschriebenen zweiten Hashwert-Empfangsprozesses auswählen, wodurch sie in der Lage ist, versäumten Empfang eines Hashwertes zu reduzieren.
  • Obwohl die registrierte SPS, die Authentifikationsinformation und die verstrichene Zeit nach Empfang als die Bestimmungsbedingungen für einen aktiven/inaktiven Empfang in der obigen Beschreibung verwendet werden, ist zu beachten, dass die Bestimmungsbedingungen für einen aktiven/inaktiven Empfang darauf nicht beschränkt sind. Der Empfang-Aktiv/Inaktiv-Bestimmungsprozess ist daher nicht auf den oben beschriebenen Prozess beschränkt.
  • Ein Befehl, mit welchem die erste SPS 1 einen Hashwert überträgt, kann, statt unabhängig zu sein, durch einen Befehl implementiert sein, welcher mit einem anderen Befehl kombiniert ist. Insbesondere umfasst ein Verfahren, welches einen Befehl einer anderen Funktion zum Übertragen eines Hashwertes verwendet, ein Verfahren, welches einen Hashwert überträgt, während der Hashwert in einer Kommunikation enthalten ist, die periodisch durchgeführt wird, beispielsweise in einer Kommunikation, die für eine Zeit-Mitteilungsfunktion zum Bereitstellen einer Mitteilung über die aktuelle Zeit verwendet wird, oder in einer Kommunikation, die für eine Suchfunktion zum Suchen nach einer anderen SPS verwendet wird.
  • Zuerst wird ein Fall beschrieben, in welchem die Kommunikation, die für die Zeit-Mitteilungsfunktion zum Bereitstellen einer Mitteilung über die aktuelle Zeit verwendet wird, zur Übertragung eines Hashwertes verwendet wird. Das heißt, es wird ein Hashwert-Empfangsprozess beschrieben, in welchem die erste SPS 1 in dem SPS-System 400 eine Übertragung eines Hashwertes in Kombination mit der Zeit-Mitteilungsfunktion der ersten SPS 1 ausführt.
  • Vorliegend hat die erste SPS 1 die Zeit-Mitteilungsfunktion zum Mitteilen von Aktueller-Zeit-Information, welche durch eine Uhr-Funktion der ersten Steuerungseinheiten 120 bereitgestellt wird, an eine andere SPS. In Schritt S70 der 2 kann die erste SPS 1 daher einen Hashwert eines Ereignisses in der ersten SPS 1 an eine andere SPS übertragen, wobei der Hashwert in einer Zeit-Mitteilung enthalten ist, welche der anderen SPS in dem SPS-System 400 die aktuelle-Zeit-Information mitteilt. Das gleiche gilt für die SPS in dem SPS-System 400, welche von der ersten SPS 1 verschieden ist.
  • 10 ist ein Ablaufdiagramm, welches einen Ablauf eines dritten Hashwert-Empfangsprozesses zeigt, welcher die Zeit-Mitteilungsfunktion und eine Übertragung eines Hashwertes in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung kombiniert. Nachdem die erste SPS 1 aktiviert ist, wird der dritte Hashwert-Empfangsprozess gestartet, wenn eine Zeit-Mitteilung von einer anderen SPS in dem SPS-System 400 an die erste Kommunikationseinheit 130 übertragen wird. Zuerst, in Schritt S410, bestimmt die erste Kommunikationseinheit 130, ob oder ob nicht ein Hashwert in der Zeit-Mitteilung enthalten ist, welche von der anderen SPS in dem SPS-System 400 übertragen wurde.
  • Wenn die Zeit-Mitteilung einen Hashwert enthält, das heißt bei ja in Schritt S410, schreitet die erste Kommunikationseinheit 130 zu Schritt S420 voran und führt den in 8 gezeigten Empfang-Aktiv/Inaktiv-Bestimmungsprozess für den Hashwert durch.
  • Als nächstes, in Schritt S430, bestimmt die erste Kommunikationseinheit 130 basierend auf einem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis, ob der Hashwert empfangen werden soll oder nicht.
  • Wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der Hashwert empfangen werden soll, das heißt bei ja in Schritt S430, schreitet die erste Kommunikationseinheit 130 zu Schritt S440 voran und empfängt den Hashwert zusammen mit der Zeit-Mitteilung. Anschließend überträgt die erste Kommunikationseinheit 130 den Hashwert und die Zeit-Mitteilung an die erste Hashwert-Berechnungseinheit 121.
  • Als nächstes, in Schritt S450, führt die erste Hashwert-Berechnungseinheit 121 den in 4 gezeigten ersten Hashwert-Empfangsprozess durch.
  • Als nächstes, in Schritt S460, bestimmt die erste Hashwert-Berechnungseinheit 121, ob die Zeit-Mitteilung aufgenommen werden soll oder nicht. Die erste Hashwert-Berechnungseinheit 121 bestimmt basierend auf einem Bestimmungskriterium, welches im Vorhinein festgelegt ist und in der ersten Hashwert-Berechnungseinheit 121 gespeichert ist, ob die Zeit-Mitteilung aufgezeichnet werden soll oder nicht.
  • Wenn bestimmt wird, dass die Zeit-Mitteilung aufgenommen werden soll, das heißt bei ja in Schritt S460, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S470 voran und erzeugt basierend auf der empfangen Zeit-Mitteilung Ereignisdaten. Das heißt, die erste Hashwert-Berechnungseinheit 121 erzeugt Ereignisdaten, deren Ereignis der Empfang der Zeit-Mitteilung ist.
  • Als nächstes, in Schritt S480, führt die erste Hashwert-Berechnungseinheit 121 den in 2 gezeigten Ereignisaufnahmeprozess durch und der dritte Hashwert-Empfangsprozess endet.
  • Zurückkommend auf Schritt S410, wenn kein Hashwert in der Zeit-Mitteilung enthalten ist, das heißt bei nein in Schritt S410, empfängt die erste Kommunikationseinheit 130 die Zeit-Mitteilung, überträgt sie an die erste Hashwert-Berechnungseinheit 121 und schreitet zu Schritt S460 voran.
  • Zurückkommend auf Schritt S430, wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der Hashwert nicht empfangen werden soll, das heißt bei nein in Schritt S430, empfängt die erste Kommunikationseinheit 130 den Hashwert nicht, sondern empfängt nur die Zeit-Mitteilung und überträgt sie an die erste Hashwert-Berechnungseinheit 121 und schreitet zu Schritt S460 voran.
  • Zurückkommend auf Schritt S460, wenn bestimmt wird, dass die Zeit-Mitteilung nicht aufgenommen werden soll, das heißt bei nein in Schritt S460, endet der dritte Hashwert-Empfangsprozess.
  • Die erste SPS 1 führt den in 10 gezeigten dritten Hashwert-Empfangsprozess durch, um den Hashwert, der in der Zeit-Mitteilung enthalten ist und von der anderen SPS übertragen wurde, speichern zu können. Durch Bezugnahme auf die basierend auf der Zeit-Mitteilung gespeicherte Ereignishistorie kann die erste SPS 1 bestimmen, dass damit begonnen wurde, den in einer gegebenen SPS in dem SPS-System 400 auftretenden Hashwert in einer anderen SPS aufzunehmen, indem die Ereignishistorien verglichen werden, die basierend auf der Zeit-Mitteilung zusätzlich in die Hashkette gespeichert sind. Es zu beachten, dass der obige Prozess ein Beispiel des Prozesses ist, in welchem der Empfang der Zeit-Mitteilung und der Empfang des Hashwertes in einen Prozess kombiniert sind; der Prozess, in welchem der Empfang der Zeit-Mitteilung und der Empfang des Hashwertes in einen Prozess kombiniert sind, ist auf den obigen Ablauf jedoch nicht beschränkt.
  • Als nächstes wird ein Fall beschrieben, in welchem eine Kommunikation, die für die Suchfunktion zum Suchen einer anderen SPS verwendet wird, zur Übertragung eines Hashwertes verwendet wird. Wenn die für die Suchfunktion einer SPS verwendete Kommunikation zur Übertragung eines Hashwertes verwendet wird, umfasst die Operation des Empfangens eines Hashwertes in der ersten SPS 1 einen Prozess, der dem ähnlich ist, in welchem die Zeit-Mitteilungsfunktion der SPS wie oben beschrieben verwendet wird. In diesem Fall wird jedoch eine Suchanfrage in Abwesenheit von Information über eine Ziel-SPS, an welche die Suchanfrage übertragen wird, übertragen, so dass eine Broadcast-Übertragung durchgeführt werden muss. Zudem muss die empfangende SPS, welche die Suchanfrage empfängt, eine Antwort auf die Suchanfrage zurückschicken.
  • Zuerst wird ein Übertragungsprozess einer Suchanfrage beschrieben. 11 ist ein Ablaufdiagramm, welches einen Ablauf des Übertragungsprozesses einer Suchanfrage, die einen Hashwert enthält, in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. Der Übertragungsprozess einer Suchanfrage, die einen Hashwert enthält, wird zu einem vorbestimmten Zeitpunkt nach der Aktivierung der ersten SPS 1 gestartet. Zuerst, in Schritt S510, bezieht die erste Hashwert-Berechnungseinheit 121 einen Hashwert, der in der ersten Hashwerthistorie-Speichereinheit 112 gespeichert ist.
  • Als nächstes, in Schritt S520, erzeugt die erste Hashwert-Berechnungseinheit 121 Daten einer Suchanfrage, welche den Hashwert enthält.
  • Als nächstes in Schritt S530, broadcastet die erste Hashwert-Berechnungseinheit 121 die Suchanfrage, welche den Hashwert enthält, an alle SPSen in dem SPS-System 400.
  • Als nächstes wird ein Fall beschrieben, in welchem die erste SPS 1 einen Suchanfrage-Empfangsprozess zum Empfangen der Suchanfrage, die den Hashwert enthält, durchführt, welche durch den in dem Ablaufdiagramm der 11 gezeigten Prozess gebroadcastet wird. 12 ist ein Ablaufdiagramm, welches einen Ablauf des Empfangsprozesses der Suchanfrage, welche den Hashwert enthält, in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt. Nachdem die erste SPS 1 aktiviert ist, wird der Empfangsprozess der Suchanfrage, die den Hashwert enthält, gestartet, wenn die Suchanfrage von einer anderen SPS in dem SPS-System 400 an die erste Kommunikationseinheit 130 übertragen ist. Zuerst, in Schritt S610, bestimmt die erste Kommunikationseinheit 130, ob der Hashwert in der Suchanfrage enthalten ist, die von der anderen SPS in dem SPS-System 400 übertragen wurde, oder nicht.
  • Wenn die Suchanfrage den Hashwert enthält, das heißt bei ja in Schritt S610, schreitet die erste Kommunikationseinheit 130 zu Schritt S620 voran und führt den in 8 gezeigten Empfang-Aktiv/Inaktiv-Bestimmungsprozess für den Hashwert durch.
  • Als nächstes, in Schritt S630, bestimmt die erste Kommunikationseinheit 130 basierend auf einem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis, ob der Hashwert empfangen werden soll oder nicht.
  • Wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der Hashwert empfangen werden soll, das heißt bei ja in Schritt S630, schreitet die erste Kommunikationseinheit 130 zu Schritt S640 voran und empfängt den Hashwert zusammen mit der Suchanfrage. Anschließend überträgt die erste Kommunikationseinheit 130 den Hashwert und die Suchanfrage an die erste Hashwert-Berechnungseinheit 121.
  • Als nächstes, in Schritt S650, führt die erste Hashwert-Berechnungseinheit 121 den in 4 gezeigten ersten Hashwert-Empfangsprozess durch.
  • Als nächstes, in Schritt S660, führt die erste Hashwert-Berechnungseinheit 121 einen Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozess durch, um zu bestimmen, ob eine Antwort auf die Suchanfrage gegeben werden kann oder nicht. Der Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozess wird später beschrieben.
  • Als nächstes in Schritt S670, bestimmt die erste Hashwert-Berechnungseinheit 121 basierend auf einem in dem Suche Beantwortung-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis, ob die Suchanfrage beantwortet werden soll oder nicht. Die erste Hashwert-Berechnungseinheit 121 bestimmt basierend auf einem Bestimmungskriterium, welches im Vorhinein festgelegt ist und in der ersten Hashwert-Berechnungseinheit 121 gespeichert ist, ob die Suchanfrage beantwortet werden soll oder nicht.
  • Wenn basierend auf dem in dem Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass die Suchanfrage beantwortet werden soll, das heißt bei ja in Schritt S670, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S680 voran und führt einen Suchebeantwortungsprozess zum Beantworten der Suchanfrage durch, und der Suchanfrage-Empfangsprozess endet.
  • Zurückkommend auf Schritt S610, wenn der Hashwert nicht in der Suchanfrage enthalten ist, das heißt bei nein in Schritt S610, empfängt die erste Kommunikationsfreiheit 130 die Suchanfrage, überträgt sie an die erste Hashwert-Berechnungseinheit 121 und schreitet zu Schritt S660 voran.
  • Zurückkommend auf Schritt S630, wenn basierend auf dem in dem Empfang-Aktiv/Inaktiv-Bestimmungsprozess gemachten Bestimmungsergebnis bestimmt wird, dass der Hashwert nicht empfangen werden soll, das heißt bei nein in Schritt S630, empfängt die erste Kommunikationseinheit 130 den Hashwert nicht, sondern empfängt lediglich die Suchanfrage und überträgt sie an die erste Hashwert-Berechnungseinheit 121 und schreitet zu Schritt S660 voran.
  • Zurückkommend auf Schritt S670, wenn bestimmt wird, dass die Suchanfrage nicht beantwortet werden soll, das heißt bei nein in Schritt S670, endet der Suchanfrage-Empfangsprozess.
  • Als nächstes wird ein Fall beschrieben, in welchem die erste SPS 1 den Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozess durchführt. 13 ist ein Ablaufdiagramm, welches einen Ablauf des Suchebeantwortung-Aktiv/Inaktiv-Bestimmungsprozesses in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Zuerst, in Schritt S710, bestimmt die erste Hashwert-Berechnungseinheit 121 der ersten SPS 1, ob oder ob nicht die von der anderen SPS in dem SPS-System 400 übertragene Suchanfrage eine Suchanfrage ist, die von einer registrierten SPS übertragen wurde, die mit einer Antwort auf die Suchanfrage in Verbindung steht, wobei die registrierte SPS eine registrierte Steuerung ist, die mit einer Antwort auf die Suchanfrage in Verbindung steht. Die registrierte SPS, die mit einer Antwort auf die Suchanfrage in Verbindung steht, ist eine SPS, welche als eine SPS registriert ist, deren Suchanfrage beantwortet werden kann, wenn die Suchanfrage von der anderen SPS in dem SPS-System 400 übertragen ist. Information über die registrierte SPS, die mit einer Antwort auf die Suchanfrage in Verbindung steht, ist im Vorhinein festgelegt und in der ersten Kommunikationseinheit 130 registriert. Es ist zu beachten, dass die Information über die registrierte SPS in einer Komponente in der ersten SPS 1 gespeichert sein kann, die von der ersten Kommunikationseinheit 130 verschieden ist.
  • Wenn die Suchanfrage keine von der registrierten SPS übertragene Suchanfrage ist, das heißt bei nein in Schritt S710, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S750 voran und bestimmt, die Suchanfrage nicht zu beantworten.
  • Im Gegensatz dazu, wenn die Suchanfrage die von der registrierten SPS übertragene Suchanfrage ist, das heißt bei ja in Schritt S710, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S720 voran. In Schritt S720 bestimmte die erste Hashwert-Berechnungseinheit 121, ob eine in der Suchanfrage enthaltene Authentifikationsinformation mit einer der registrierten SPS hinzugefügten Authentifikationsinformation übereinstimmt oder nicht. Die der registrierten SPS hinzugefügten Authentifikationsinformation ist im Vorhinein festgelegt und in der ersten Hashwert-Berechnungseinheit 121 registriert. Es ist zu beachten, dass die der registrierten SPS hinzugefügte Authentifikationsinformation in einer Komponente gespeichert sein kann, die von der ersten Hashwert-Berechnungseinheit 121 in der ersten SPS 1 verschieden ist.
  • Wenn die Authentifikationsinformation, die in der Suchanfrage enthalten ist, nicht mit der Authentifikationsinformation übereinstimmt, die der registrierten SPS hinzugefügt ist, das heißt bei nein in Schritt S720, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S750 voran und bestimmt, die Suchanfrage nicht zu beantworten.
  • Im Gegensatz dazu, wenn die in der Suchanfrage enthaltene Authentifikationsinformation mit der Authentifikationsinformation übereinstimmt, die der registrierten SPS hinzugefügt ist, das heißt bei ja in Schritt S720, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S730 voran. In Schritt S730 bestimmt die erste Hashwert-Berechnungseinheit 121, ob seit dem letzten Empfang der Suchanfrage von der registrierten SPS, die die Suchanfrage übertragen hat, eine vorbestimmte Dauer oder länger verstrichen ist oder nicht. Die vorbestimmte Dauer ist eine verstrichene Dauer nach dem letztmaligen Empfang der Suchanfrage, die von der registrierten SPS übertragen wurde, und ist im Vorhinein für die registrierte SPS festgelegt und in der ersten Hashwert-Berechnungseinheit 121 registriert. Es ist zu beachten, dass die Information über die vorbestimmte Dauer in einer Komponente gespeichert sein kann, die von der ersten Hashwert-Berechnungseinheit 121 in der ersten SPS 1 verschieden ist.
  • Wenn die vorbestimmte Dauer oder länger noch nicht verstrichen ist, das heißt bei nein in Schritt S730, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S750 voran und bestimmt, die Suchanfrage nicht zu beantworten.
  • Im Gegensatz dazu, wenn die vorbestimmte Dauer oder länger verstrichen ist, das heißt bei ja in Schritt S730, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S740 voran und bestimmt, die Suchanfrage zu beantworten.
  • Als nächstes wird ein Fall beschrieben, in welchem die erste SPS 1 den Suchebeantwortungsprozess durchführt. 14 ist ein Ablaufdiagramm, welches einen Ablauf des Suchebeantwortungsprozesses in der ersten SPS 1 gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • Zuerst, in Schritt S810, bestimmt die erste Hashwert-Berechnungseinheit 121, ob ein Hashwert an die SPS, welche die Suchanfrage übertragen hat, übertragen werden soll oder nicht. Ob der Hashwert übertragen werden soll oder nicht, wird basierend auf einer vorbestimmten Bestimmungsbedingung bestimmt. Die Bestimmungsbedingung ist im Vorhinein festgelegt und in der ersten Hashwert-Berechnungseinheit 121 gespeichert. Es ist zu beachten, dass die Bestimmungsbedingung in einer Komponente gespeichert sein kann, die von der ersten Hashwert-Berechnungseinheit 121 in der ersten SPS 1 verschieden ist.
  • Wenn bestimmt wird, dass der Hashwert an die SPS übertragen werden soll, welche die Suchanfrage übertragen hat, das heißt bei ja in Schritt S810, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S820 voran und bezieht den Hashwert, der in der ersten Hashwerthistorie-Speichereinheit 112 gespeichert ist.
  • Als nächstes, in Schritt S830, erzeugt die erste Hashwert-Berechnungseinheit 121 Daten einer Suchantwort, welche den Hashwert umfasst, als eine Antwort auf die Suchanfrage.
  • Als nächstes, in Schritt S840, überträgt die erste Hashwert-Berechnungseinheit 121 die Suchantwort, die den Hashwert enthält, an die SPS, welche die Suchanfrage übertragen hat, und der Suchebeantwortungsprozess endet.
  • Zurückkommend auf Schritt S810, wenn bestimmt wurde, dass der Hashwert nicht an die SPS übertragen werden soll, welche die Suchanfrage übertragen hat, das heißt bei nein in Schritt S810, schreitet die erste Hashwert-Berechnungseinheit 121 zu Schritt S850 voran und erzeugt Daten einer Suchantwort, welche den Hashwert nicht enthalten, als eine Antwort auf die Suchanfrage. Anschließend wird Schritt S840 durchgeführt und der Suchebeantwortungsprozess endet.
  • Die erste SPS 1 führt den in 12 gezeigten Suchanfrage-Empfangsprozess durch, um den in der Suchanfrage enthaltenen Hashwert, der von der anderen SPS übertragen wurde, speichern zu können. Die erste SPS 1 kann ferner eine Ereignishistorie basierend auf der Suchanfrage speichern, wie in dem Fall des in 10 gezeigten dritten Hashwert-Empfangsprozesses. Durch Bezugnahme auf die gespeicherte Ereignishistorie basierend auf der Suchanfrage kann bestimmt werden, dass damit begonnen wurde, den in einer gegebenen SPS in dem SPS-System 400 auftretenden Hashwert in einer anderen SPS aufzunehmen, indem die gespeicherten Ereignishistorien verglichen werden, die basierend auf der Suchanfrage zusätzlich zu der Hashkette gespeichert sind.
  • Obwohl der Hashwert-Empfangsprozess vor der Antwort auf die Suchanfrage in 12 durchgeführt wird, ist zu beachten, dass der Hashwert-Empfangsprozess nur durchgeführt werden kann, wenn die Suchanfrage beantwortet wurde. Es ist zu beachten, dass der obige Prozess ein Beispiel des Prozesses ist, bei welchem der Empfang der Suchanfrage und der Empfang des Hashwertes in einen Prozess kombiniert sind; jedoch ist der Prozess, bei dem der Empfang der Suchanfrage und der Empfang des Hashwertes in einen Prozess kombiniert sind, nicht auf den obigen Ablauf beschränkt.
  • Die Broadcastkommunikation belastet das Netzwerk stark und kann ein Fehlverhalten verursachen. Das Kommunikationsverfahren kann daher geändert werden, wenn die SPS, mit der die Kommunikation hergestellt ist, bekannt wird, indem die Suchantwort empfangen wird. Vorliegend kann jede SPS eine Kommunikationsnachbarschaftsbeziehung herstellen, indem ein Verfahren angewendet wird, in welchem eine SPS mit einem leeren Slot auf der empfangenden Seite auf den Broadcast antwortet und eine Übertragung/Empfang-Beziehung herstellt. Anschließend führt eine SPS auf der übertragenden Seite einen Prozess des Übertragens des Hashwertes an eine benachbarte SPS in der Nachbarschaftsbeziehung durch, so dass der Hashwert übertragen/empfangen werden kann, ohne die Last auf das Netzwerk zu erhöhen. Das heißt, der Kommunikationsweg für Daten bei normaler Kommunikation und der Kommunikationsweg für den Hashwert können voneinander separat konfiguriert sein.
  • Zudem hat die obige Beschreibung die eins-zu-eins Kommunikation und den Broadcast als Verfahren zum Übertragen des Hashwertes erläutert, das Verfahren zum Übertragen des Hashwertes kann jedoch auch nur eine unidirektionale Übertragung sein. Je nach Netzwerk ist die zyklische Kommunikation kein Verfahren für einen zuverlässigen Empfang. Eine solche zyklische Kommunikation kann dazu konfiguriert sein, den aktuellsten Hashwert als die Daten der SPS auf der übertragenden Seite fortwährend zu übertragen, welche einen Zustand des fortwährenden Aktualisierens von Daten veröffentlicht. Ferner kann der Hashwert aufgrund von Adressen übertragen werden, welche im Vorhinein registriert sind, oder aufgrund von einer oder einer Vielzahl von Adressen, die als Ergebnis einer Suche detektiert wurden, wobei erwartet wird, dass der Hashwert zuverlässig an den Adressen empfangen wird.
  • Als nächstes wird ein Beispiel von Ereignishistorien beschrieben, wenn Ereignishistorien, die in den Ereignishistorie-Speichereinheiten in der ersten SPS 1, der zweiten SPS 2, der dritten SPS 3, ... und der n-ten SPS n, welche die Vielzahl von SPSen in dem SPS-System 400 sind, angehäuft sind, in (genau) einem Ort gesammelt werden.
  • 15 ist ein Diagramm zum Beschreiben eines Beispiels von Ereignishistorien, welche in den Ereignishistorie-Speichereinheiten der SPSen angehäuft und in einem Ereignishistorie-Server 500 gemäß der ersten Ausführungsform der vorliegenden Erfindung gesammelt werden. Der Ereignishistorie-Server 500 ist der oben beschriebene Historiesammelspeicher 10 und ist ein Ereignishistorie-Sammelspeicher, welcher die in den Ereignishistorie-Speichereinheiten der Vielzahl von SPSen in dem SPS-System 400 angehäuften Ereignishistorien sammelt und anhäuft. 15 zeigt die Details der Ereignisse, die in der jeweiligen SPS gespeichert sind, unterhalb der jeweiligen SPS in der Figur. Vorliegend zeigt die Figur einen Fall, in welchem sechs Ereignishistorien in jeder SPS gespeichert werden können.
  • Die Ereignishistorie-Speichereinheit der ersten SPS 1 speichert Ereignishistorie-Daten Eal, Ereignishistorie-Daten Ea2, Ereignishistorie-Daten Ea3, Ereignishistorie-Daten Ea4, Ereignishistorie-Daten Ea5 und Ereignishistorie-Daten Ea6; und diese Ereignishistorie-Daten werden kopiert und an den Ereignishistorie-Server 500 übertragen.
  • Die Ereignishistorie-Speichereinheit der zweiten SPS 2 speichert Ereignishistorie-Daten Eb1, Ereignishistorie-Daten Eb2, Ereignishistorie-Daten Eb3, Ereignishistorie-Daten Eb4, Ereignishistorie-Daten Eb5 und Ereignishistorie-Daten Eb6; und diese Ereignishistorie-Daten werden kopiert und an den Ereignishistorie-Server 500 übertragen.
  • Die Ereignishistorie-Speichereinheit der dritten SPS 3 speichert Ereignishistorie-Daten Ec1, Ereignishistorie-Daten Ec2, Ereignishistorie-Daten Ec3, Ereignishistorie-Daten Ec4 und Ereignishistorie-Daten Ec5; und diese Ereignishistorie-Daten werden kopiert und an den Ereignishistorie-Server 500 übertragen.
  • Die Ereignishistorie-Speichereinheit der n-ten SPS n speichert Ereignishistorie-Daten En1, Ereignishistorie-Daten En2, Ereignishistorie-Daten En3, Ereignishistorie-Daten En4, Ereignishistorie-Daten En5 und Ereignishistorie-Daten En6; und diese Ereignishistorie-Daten werden kopiert und an den Ereignishistorie-Server 500 übertragen.
  • In 15 gibt eine durchgezogene Linie, welche die Ereignishistorie-Daten verbindet, an, dass die Ereignishistorie-Daten durch eine Hashkette verbunden sind. Ferner gibt in 15 ein Pfeil, welcher die Ereignishistorie-Daten verbindet, an, dass der Hashwert der Ereignishistorie-Daten an eine andere SPS übertragen wird.
  • Eine Verifikation der Ereignishistorien, die in dem Ereignishistorie-Server 500 gesammelt sind, kann detektieren, dass die erste SPS 1 den Hashwert der Ereignishistorie-Daten Ea1 an die zweite SPS 2, die dritte SPS 3, ... und die n-te SPS n übertragen hat. Jede SPS, die den Hashwert der Ereignishistorie-Daten Ea1 empfangen hat, erzeugt Ereignisdaten, deren Ereignis der Empfang des Hashwertes der Ereignishistorie-Daten Ea1 ist. Für die dritte SPS 3 wird angenommen, dass der Hashwert der Ereignishistorie-Daten Ea1 nach den Ereignishistorie-Daten Ec1 empfangen wird, wie auch bei der zweiten SPS 2 und der n-ten SPS n. Bei der dritten SPS 3 geht der Hashwert der Ereignishistorie-Daten Ea1 jedoch verloren oder ist beschädigt, so dass detektiert werden kann, dass die Ereignisdaten, deren Ereignis der Empfang des Hashwertes der Ereignishistorie-Daten Ea1 ist, nicht erzeugt und gespeichert werden.
  • Ferner kann eine Verifikation der Ereignishistorien, die in dem Ereignishistorie-Server 500 gesammelt sind, detektieren, dass die erste SPS 1 den Hashwert der Ereignishistorie-Daten Ea5 an die zweite SPS 2, die dritte SPS 3, ... und die n-te SPS n übertragen hat. Es kann auch detektiert werden, dass die erste SPS 1 den Hashwert der Ereignishistorie-Daten Ea1 an die zweite SPS 2, die dritte SPS 3, ... und die n-te SPS n zusammen mit dem Hashwert der Ereignishistorie-Daten Ea5 übertragen hat. Jede SPS, die den Hashwert der Ereignishistorie-Daten Ea5 empfangen hat, erzeugt Ereignisdaten, deren Ereignis der Empfang der Hashwerte der Ereignishistorie-Daten Ea5 und der Ereignishistorie-Daten Ea1 ist.
  • Ferner kann die Verifikation der Ereignishistorie-Daten Ec5 der dritten SPS 3 detektieren, dass die dritte SPS 3 den Hashwert der Ereignishistorie-Daten Ea1 nicht empfangen hat.
  • Durch Sammeln der Ereignishistorie-Daten aus der Vielzahl von SPSen des SPS-Systems 400 in dem Ereignishistorie-Server 500 und Verifizieren der Daten ist es daher möglich, zu identifizieren, welche Ereignishistorie-Daten in dem gesamten SPS-System 400 verloren gegangen sind. Es ist auch möglich, quantitativ zu detektieren, wie viele Ereignishistorie-Daten in dem gesamten SPS-System 400 verloren gegangen sind, und die Zuverlässigkeit des gesamten SPS-Systems 400 quantitativ zu berechnen.
  • Für die Ereignishistorie-Daten in der ersten SPS 1 können die Hashwerte neu berechnet werden und in einer Reihenfolge, beginnen bei den Ereignishistorie-Daten Ea1, verifiziert werden, um bestimmen zu können, dass die Ereignishistorie-Daten, die in der ersten SPS 1 gespeichert sind, in der Hashkette korrekt gespeichert sind. Dasselbe gilt für die zweite SPS 2, die dritte SPS 3, ... und die n-te SPS n. Es kann daher bestimmt werden, dass die Ereignishistorie-Daten, die in der ersten SPS 1, der zweiten SPS 2, der dritten SPS 3, ... und der n-te SPS n gespeichert sind, die korrekten Daten sind, die in der jeweiligen SPS gespeichert sind.
  • Wie beispielhaft durch die Übertragung des Hashwertes der Ereignishistorie-Daten Ea5 und des Hashwertes der Ereignishistorie-Daten Ea1 in der ersten SPS 1 gezeigt, können in dem SPS-System 400 die Hashwerte der Vielzahl der Ereignishistorie-Daten zu dem Zeitpunkt der Übertragung des Hashwertes der Ereignishistorie-Daten an eine andere SPS übertragen werden. Das heißt, in dem SPS-System 400 kann der Hashwert der aktuellsten Ereignishistorie-Daten übertragen werden, wobei dabei der Hashwert von einer oder einer Vielzahl der zuvor übertragenen Ereignishistorie-Daten darin enthalten ist. Wie oben beschrieben, kann daher die Verifikation der Ereignishistorie-Daten Ec5 in der dritten SPS 3 detektieren, dass die dritte SPS 3 den Hashwert der Ereignishistorie-Daten Ea1 nicht empfangen hat; und der Hashwert der Ereignishistorie-Daten, die nicht empfangen wurden, kann gespeichert werden.
  • 16 ist ein Blockdiagramm, welches ein Beispiel einer Konfiguration eines Computergeräts 600 schematisch zeigt, welches eine Funktion als die SPS gemäß der oben beschriebenen ersten Ausführungsform implementiert. Die in der oben beschriebenen SPS gemäß der ersten Ausführungsform ausgeführte Verarbeitung kann implementiert werden, indem die Verarbeitung als ein Programm konfiguriert wird, welches den Prozessablauf speichert, und das Programm durch ein Computergerät ausgeführt wird, welches eine Konfiguration mit einer CPU und einem Speicher hat, wie in 16 gezeigt.
  • Wie in 16 gezeigt, hat das Computergerät 600 eine Konfiguration, in welcher ein Bus 609 ein Anzeigegerät 601, beispielsweise ein FlüssigkristallDisplay (LCD), ein Eingabegerät 602, beispielsweise eine einfache Tastatur, eine CPU 603, welche eine Operation durchführt, einen nicht-flüchtigen Speicher 604, beispielsweise einen nur lesbaren Speicher (ROM), einen flüchtigen Speicher 605, beispielsweise einen Direktzugriffsspeicher (RAM), einen Anzeigespeicher 606, welcher einen Anzeigebildschirm speichert, der auf dem Anzeigegerät 601 anzuzeigen ist, eine externer-Speicher-Schnittstelle 607, welche eine Schnittstelle zu einem entfernbaren externe Speicher, beispielsweise einem Flash-Speicher, ist, eine Kommunikationsschnittstelle 608, welche mit einem externen Gerät kommuniziert, und dergleichen verbindet. Es ist zu beachten, dass eine Konfiguration ohne das Anzeigegerät 601, das Eingabegerät 602 und den Anzeigespeicher 606 verwendet werden kann.
  • Die erste Speichereinheit 110 ist durch den nicht-flüchtigen Speicher 604 implementiert. Das Programm, welches den Prozessablauf der SPS beschreibt und in dem nicht-flüchtigen Speicher 604 gespeichert ist, wird in den flüchtigen Speicher 605 geladen und durch die CPU 603 ausgeführt, so dass die erste Steuerungseinheit 120 und die erste Kommunikationseinheit 130 implementiert werden. Das Programm kann auf einem Speichermedium gespeichert sein, welches durch das Computergerät 600 gelesen werden kann, beispielsweise eine Festplatte, eine Compact Disc (CD)-nur lesbare Speicher (ROM), eine magnetoptische (mo) Diskette, oder eine DVD (digital versatile disc), oder kann über ein Netzwerk, beispielsweise dem Internet, verbreitet werden. In diesem Fall ist das Programm in dem nicht-flüchtigen Speicher 604 eines Informationsverarbeitungsterminals gespeichert, welcher über die Kommunikationsschnittstelle 608 verbunden ist.
  • Wie vorangehen beschrieben, hat die erste SPS 1 gemäß der ersten Ausführungsform die Funktion des Übertragens des Hashwertes der Ereignishistorie-Daten an die andere Steuerung 30. Das heißt, die erste SPS 1 kann die andere Steuerung 30 dazu veranlassen, den Hashwert zu speichern, der dem Ereignis zugeordnet ist, das in der ersten SPS 1 aufgetreten ist, wodurch der Hashwert, der dem Ereignis zugeordnet ist, das in der ersten SPS 1 aufgetreten ist, mit einer Vielzahl von Geräten geteilt werden kann. Die erste SPS 1 verwendet daher ein Verifikationsgerät, um zwei Hashwerte zu vergleichen, die (genau) einem Ereignis zugeordnet sind und in der ersten SPS 1 und der anderen Steuerung 30 gespeichert sind, um hierdurch verifizieren zu können, ob der in der ersten SPS 1 gespeicherte Hashwert der korrekte Hashwert, der in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurde, ist oder nicht.
  • Das heißt, das Verifikationsgerät wird dazu verwendet, die in einer Vielzahl der anderen Steuerungen 30 gespeicherten Hashwerte mit dem in der ersten SPS 1 gespeicherten Hashwert zu vergleichen, und die in der Vielzahl von anderen Steuerungen 30 gespeicherten Hashwerte können als die korrekten Hashwerte behandelt werden, wenn die in der Vielzahl von anderen Steuerungen 30 gespeicherten Hashwerte gleich sind, aber von dem in der ersten SPS 1 gespeicherten Hashwert verschieden sind.
  • Ferner verwendet die erste SPS 1 das Verifikationsgerät, um den Hashwert der Ereignishistorie-Daten, die in der ersten SPS 1 gespeichert sind, neu zu berechnen und den neu berechneten Hashwert mit dem Hashwert zu vergleichen, der den Ereignishistorie-Daten zugeordnet ist, die in der anderen Steuerung 30 gespeichert sind, um hierdurch verifizieren zu können, ob oder ob nicht die Ereignishistorie-Daten, die in der ersten SPS 1 gespeichert sind, die korrekten Ereignishistorie-Daten sind, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden. Das heißt, die in der ersten SPS 1 gespeicherten Ereignishistorie-Daten sind die korrekten Ereignishistorie-Daten, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden, wenn der neu berechnete Hashwert und der Hashwert, welcher den Ereignishistorie-Daten zugeordnet ist, die in der anderen Steuerung 30 gespeichert sind, identisch sind.
  • Die erste SPS 1 kann den Hashwert des vorherigen Ereignisses, die aktuellen Ereignisdaten und den Hashwert des aktuellen Ereignisses jedes Mal übertragen, wenn der Hashwert an die andere Steuerung 30 übertragen wird. Die andere Steuerung 30 kann anschließend verifizieren, dass die tatsächlichen Daten der Ereignishistorie-Daten und der empfangene Hashwert korrekt sind, indem der Hashwert unter Verwendung der tatsächlichen Daten der Ereignishistorie-Daten neu berechnet wird.
  • Wenn detektiert wird, dass der in der ersten SPS 1 gespeicherte Hashwert nicht der korrekte Hashwert ist, der in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurde, kann das Verifikationsgerät den Hashwert der Ereignishistorie-Daten, die in der ersten SPS 1 gespeichert sind, unter Verwendung des in der anderen Steuerung 30 gespeicherten Hashwertes als dem korrekten Hashwert neu berechnen. Anschließend vergleicht das Verifikationsgerät den neu berechneten Hashwert mit dem korrekten Hashwert, der den Ereignishistorie-Daten zugeordnet ist, die in der anderen Steuerung 30 gespeichert sind, und kann damit verifizieren, ob oder ob nicht die in der ersten SPS 1 gespeicherten Ereignishistorie-Daten die korrekten Ereignishistorie-Daten sind, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden. Dies erlaubt eine Verifikation dahingehend, ob oder ob nicht die in der ersten SPS 1 gespeicherten Ereignishistorie-Daten die korrekten Ereignishistorie-Daten sind, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden, selbst wenn der in der ersten SPS 1 gespeicherte Hashwert verfälscht wurde. In diesem Fall, wenn der neu berechnete Hashwert von dem in der anderen Steuerung 30 gespeicherten Hashwert verschieden ist, sind die Ereignishistorie-Daten, die der ersten SPS 1 gespeichert sind, nicht die korrekten Ereignishistorie-Daten, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden, sondern wurden verfälscht.
  • Es ist zu beachten, dass das oben beschriebene Verifikationsgerät durch das Computergerät 600 mit der in 16 gezeigten Konfiguration implementiert sein kann. Das heißt, die Funktion des Verifikationsgeräts kann implementiert werden, wenn ein Programm, welches den Ablauf des Verfahrens beschreibt, beispielsweise die Neuberechnung und den Hashwert-Vergleichsprozess, wie oben beschrieben, in den flüchtigen Speicher 605 geladen und durch die CPU 603 ausgeführt wird.
  • Die erste SPS 1 gemäß der ersten Ausführungsform hat ferner die Funktion des Speicherns des von einer anderen SPS übertragenen Hashwertes in den Ereignishistorie-Daten. Das heißt, die erste SPS 1 kann den Hashwert, der einem Ereignis zugeordnet ist, welches in einer anderen SPS aufgetreten ist, speichern, wodurch der Hashwert, der dem Ereignis zugeordnet ist, welches in der anderen SPS aufgetreten ist, mit der Vielzahl von Geräten geteilt werden kann. Die erste SPS 1 kann daher die Rolle der anderen Steuerung 30 für die andere SPS einnehmen.
  • Das SPS-System, welches unter Verwendung der oben beschriebenen ersten SPS 1 konfiguriert ist, kann eine Verfälschung des Hashwertes einfach detektieren, selbst wenn der Hashwert des Ereignisses, der in einer anderen SPS gespeichert ist, verfälscht wurde. Das SPS-System, welches unter Verwendung der oben beschriebenen ersten SPS 1 konfiguriert ist, kann dann verifizieren, ob oder ob nicht die in der ersten SPS 1 gespeicherten Ereignishistorie-Daten die korrekten Ereignishistorie-Daten sind, die in dem Aufnahmeprozess der ersten SPS 1 aufgenommen wurden. Mit anderen Worten, wenn die Hashwerte der Ereignishistorie-Daten wechselseitig in dem SPS-System gespeichert werden, kann die Kette der Hashwerte der Ereignishistorie-Daten durch das gesamte SPS-System geteilt werden, die Validität der Hashwerte und Ereignishistorie-Daten kann verifiziert werden, und ein Datenschutz kann realisiert werden, welcher fähig ist, einer Verfälschung der Hashwerte entgegenzustehen. Dies eliminiert die Notwendigkeit komplizierter Verfahren, beispielsweise einer Verschlüsselung von Hashwerten, und den Verbrauch von Computerressourcen.
  • Durch Kombinieren der diversen vorangehend beschriebenen Funktionen können Ereignishistorie-Daten mit hoher Datenzuverlässigkeit in dem gesamten System gesammelt werden, welches mit einem unsicheren Netzwerk konfiguriert ist, wobei dabei fast kein Speicher und kein Rechenaufwand verbraucht wird, was Computerressourcen jeder SPS sind.
  • Die in den obigen Ausführungsformen erläuterten Konfigurationen sind lediglich Beispiele des Inhalts der vorliegenden Erfindung und können mit anderen bekannten Techniken kombiniert werden oder teilweise weggelassen werden und/oder modifiziert werden, ohne den Umfang der vorliegenden Erfindung zu verlassen.
  • Bezugszeichenliste
  • 1
    erste SPS;
    2
    zweite SPS;
    3
    dritte SPS;
    10
    Historiesammelspeicher;
    20, 40, 70
    Kommunikationsverbindung;
    30
    andere Steuerung;
    50
    Netzwerk;
    60
    zu steuerndes Gerät;
    110
    erste Speichereinheit;
    111
    erste Ereignishistorie-Speichereinheit;
    112
    erste Hashwerthistorie-Speichereinheit;
    113
    erste Programm-Speichereinheit;
    120
    erste Steuerungseinheit;
    121
    erste Hashwert-Berechnungseinheit;
    122
    erste Unregelmäßigkeit-Detektionseinheit;
    130
    erste Kommunikationseinheit;
    210
    zweite Speichereinheit;
    211
    zweite Ereignishistorie-Speichereinheit;
    212
    Hashwertehistorie-Speichereinheit;
    213
    zweite Programm-Speichereinheit;
    220
    zweite Steuerungseinheit;
    221
    zweite Hashwert-Berechnungseinheit;
    222
    zweite Unregelmäßigkeit-Detektionseinheit;
    230
    zweite Kommunikationseinheit;
    300, 400
    SPS-System;
    500
    Ereignishistorie-Server;
    600
    Computergerät;
    601
    Anzeigegerät;
    602
    Eingabegerät;
    603
    CPU;
    604
    nicht-flüchtiger Speicher;
    605
    flüchtiger Speicher;
    606
    Anzeigespeicher;
    607
    externer-Speicher-Schnittstelle;
    608
    Kommunikationsschnittstelle;
    609
    Bus; n n-te SPS.

Claims (9)

  1. Steuerung (1) zum Steuern eines Steuerungszielgeräts (60), wobei die Steuerung (1) umfasst: eine Hashwert-Berechnungseinheit (121) zum Berechnen eines ersten Hashwertes basierend auf Ereignishistorie-Daten eines Ereignisses, welches während des Betriebs der Steuerung (1) auftritt; eine Kommunikationseinheit (130) zum Übertragen des ersten Hashwertes an eine erste andere Steuerung (30; 2, ..., n), die extern zu der Steuerung (1) angeordnet ist und zum Empfangen eines zweiten Hashwertes, welcher basierend auf Ereignishistorie-Daten eines Ereignisses berechnet ist, welches in einer zweiten anderen Steuerung (30; 2, ..., n), die außerhalb der Steuerung (1) angeordnet ist, aufgetreten ist; und eine Speichereinheit (110) zum Speichern der Ereignishistorie-Daten, des ersten Hashwertes und des zweiten Hashwertes, wobei die Ereignishistorie-Daten den zuvor in der Steuerung (1) berechneten ersten Hashwert und in der Steuerung (1) erzeugte Ereignisdaten enthalten, wobei die Ereignisdaten entweder auf einem Ereignis basieren, das in der Steuerung (1) zu diesem Zeitpunkt aufgetreten ist, oder die Ereignisdaten den von der zweiten anderen Steuerung (30; 2, ..., n) übertragenen zweiten Hashwert enthalten, die Hashwert-Berechnungseinheit (121) eine Hashkette bildet, indem ein neuer erster Hashwert basierend auf den Ereignishistorie-Daten erzeugt wird, und der in der Speichereinheit (110) gespeicherte erste Hashwert zum Verifizieren in einem Verifikationsgerät verwendet wird, welches sowohl von der Steuerung (1), der ersten anderen Steuerung (30; 2, ..., n) als auch der zweiten anderen Steuerung (30; 2, ..., n) verschieden ist, wobei das Verifikationsgerät den ersten Hashwert mit einem in der ersten anderen Steuerung (30; 2, ..., n) oder der zweiten anderen Steuerung (30; 2, ..., n) aufgezeichneten Hashwert vergleicht und verifiziert, ob der in der Speichereinheit (110) gespeicherte erste Hashwert ein korrekter Hashwert ist, welcher durch die Steuerung (1) berechnet und gespeichert wurde.
  2. Steuerung (1) gemäß Anspruch 1, ferner umfassend eine Unregelmäßigkeit-Detektionseinheit (122) zum Neuberechnen des ersten Hashwertes basierend auf den Ereignishistorie-Daten und zum Detektieren einer Unregelmäßigkeit des neuberechneten Hashwertes.
  3. Steuerung (1) gemäß Anspruch 1 oder 2, wobei die Speichereinheit (110) beim Speichern der Ereignishistorie-Daten die Ereignishistorie-Daten und einen Hashwert speichert, welcher basierend auf Ereignishistorie-Daten eines Ereignisses berechnet ist, das in der Steuerung (1) vor den Ereignishistorie-Daten auftritt.
  4. Steuerungssystem (400), wobei die Steuerung (1) gemäß einem der Ansprüche 1 bis 3, die erste andere Steuerung (30; 2, ..., n) und die zweite andere Steuerung (30; 2, ..., n) dazu konfiguriert sind, miteinander kommunizieren zu können.
  5. Steuerungssystem (400) gemäß Anspruch 4, wobei die erste andere Steuerung (30; 2, ..., n) und die zweite andere Steuerung (30; 2, ..., n) ein Aktuelle-Zeit-Managementserver sind, welcher eine aktuelle Zeit managt.
  6. Steuerungssystem (400) gemäß Anspruch 4, wobei die erste andere Steuerung (30; 2, ..., n) und die zweite andere Steuerung (30; 2, ..., n) ein Ereignishistorie-Speicherserver sind, welcher die Ereignishistorie-Daten speichert.
  7. Steuerungssystem (400), wobei eine Vielzahl der Steuerungen (1, 2, ..., n) gemäß einem der Ansprüche 1 bis 3 verbunden sind, um miteinander kommunizieren zu können, und die Steuerungen (1, 2, ..., n) jeweils den durch die Hashwert-Berechnungseinheit (121) berechneten ersten Hashwert und den von der Hashwert-Berechnungseinheit (121) berechneten zweiten Hashwert von wenigstens einer anderen der Steuerungen (1, 2, ..., n) speichern.
  8. Steuerungssystem (400) gemäß einem der Ansprüche 4 bis 6, umfassend ein Verifikationsgerät, welches sowohl von der Steuerung (1), der ersten anderen Steuerung (30; 2, ..., n) als auch der zweiten anderen Steuerung (30; 2, ..., n) verschieden ist, wobei das Verifikationsgerät den ersten Hashwert mit einem in der ersten anderen Steuerung (30; 2, ..., n) oder der zweiten anderen Steuerung (30; 2, ..., n) aufgezeichneten Hashwert vergleicht und verifiziert, ob der in der Speichereinheit (110) gespeicherte erste Hashwert ein korrekter Hashwert ist, welcher durch die Steuerung (1) berechnet und gespeichert wurde.
  9. Steuerungssystem (400) gemäß Anspruch 7, umfassend: eine Vielzahl der Steuerungen (1, 2, ..., n) gemäß einem der Ansprüche 1 bis 3, welche verbunden sind, um miteinander kommunizieren zu können; und ein Verifikationsgerät, welches von jedem der Vielzahl der Steuerungen (1, 2, ..., n) verschieden ist, wobei das Verifikationsgerät den ersten Hashwert, welcher von der Hashwert-Berechnungseinheit (121) von einer der Vielzahl der Steuerungen (1, 2, ..., n) berechnet wird, mit einem Hashwert vergleicht, der in einer anderen der Vielzahl der Steuerungen (1, 2, ..., n) aufgezeichnet wird, und verifiziert, ob der in der Speichereinheit (110) der einen der Vielzahl der Steuerungen (1, 2, ..., n) gespeicherte erste Hashwert ein korrekter Hashwert ist, welcher durch die eine der Vielzahl der Steuerungen (1, 2, ..., n) berechnet und gespeichert wurde.
DE112017007877.6T 2017-09-25 2017-09-25 Steuerung und Steuerungssystem Active DE112017007877B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/034575 WO2019058560A1 (ja) 2017-09-25 2017-09-25 制御装置および制御装置システム

Publications (2)

Publication Number Publication Date
DE112017007877T5 DE112017007877T5 (de) 2020-05-07
DE112017007877B4 true DE112017007877B4 (de) 2021-05-06

Family

ID=65810156

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017007877.6T Active DE112017007877B4 (de) 2017-09-25 2017-09-25 Steuerung und Steuerungssystem

Country Status (6)

Country Link
US (1) US10997008B2 (de)
JP (1) JP6584699B2 (de)
KR (1) KR102182045B1 (de)
CN (1) CN111149322B (de)
DE (1) DE112017007877B4 (de)
WO (1) WO2019058560A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
JP2021061576A (ja) * 2019-10-08 2021-04-15 グラビティ株式会社 データ管理システム、データ管理方法、データ管理装置、及びデータ管理プログラム
JP7327100B2 (ja) 2019-11-15 2023-08-16 富士フイルムビジネスイノベーション株式会社 データ管理システム、データ管理装置及びデータ管理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008134726A (ja) * 2006-11-27 2008-06-12 Toshiba Corp トレーサビリティ情報記録装置、トレーサビリティ情報記録方法及びプログラム
JP4235193B2 (ja) * 2005-06-07 2009-03-11 日本電信電話株式会社 イベント履歴蓄積装置、イベント情報検証装置、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
US20140298034A1 (en) * 2011-10-14 2014-10-02 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242871A (ja) * 2004-02-27 2005-09-08 Denso Corp 通信システム
JP4871687B2 (ja) * 2005-10-03 2012-02-08 日立オートモティブシステムズ株式会社 車両制御システム
CN101507178A (zh) 2006-08-28 2009-08-12 三菱电机株式会社 数据处理系统、数据处理方法以及程序
US8549320B2 (en) * 2006-11-02 2013-10-01 Red Hat, Inc. Verifying loaded module during debugging
JP5099542B2 (ja) * 2007-02-28 2012-12-19 学校法人東京電機大学 カメラを利用した操作記録正当性証明システム及び方法
JP5200231B2 (ja) 2008-09-17 2013-06-05 セイコーインスツル株式会社 画像記憶装置
US8458451B2 (en) * 2009-01-20 2013-06-04 New York University Database outsourcing with access privacy
JP2011188029A (ja) 2010-03-04 2011-09-22 Fujitsu Ltd 電子署名装置、電子署名方法及びコンピュータプログラム
US8108733B2 (en) * 2010-05-12 2012-01-31 International Business Machines Corporation Monitoring distributed software health and membership in a compute cluster
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
US10762481B2 (en) * 2017-03-21 2020-09-01 The Toronto-Dominion Bank Secure offline approval of initiated data exchanges
CN107040545B (zh) * 2017-05-26 2019-05-31 中国人民解放军信息工程大学 工程文件全生命周期安全保护方法
US10567369B2 (en) * 2017-07-10 2020-02-18 Intuit Inc. Secure token passing via hash chains

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4235193B2 (ja) * 2005-06-07 2009-03-11 日本電信電話株式会社 イベント履歴蓄積装置、イベント情報検証装置、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
JP2008134726A (ja) * 2006-11-27 2008-06-12 Toshiba Corp トレーサビリティ情報記録装置、トレーサビリティ情報記録方法及びプログラム
US20140298034A1 (en) * 2011-10-14 2014-10-02 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium

Also Published As

Publication number Publication date
US10997008B2 (en) 2021-05-04
CN111149322A (zh) 2020-05-12
KR102182045B1 (ko) 2020-11-23
DE112017007877T5 (de) 2020-05-07
KR20200035464A (ko) 2020-04-03
WO2019058560A1 (ja) 2019-03-28
US20200387421A1 (en) 2020-12-10
JP6584699B2 (ja) 2019-10-02
CN111149322B (zh) 2021-06-11
JPWO2019058560A1 (ja) 2019-11-14

Similar Documents

Publication Publication Date Title
DE112017007877B4 (de) Steuerung und Steuerungssystem
EP3488556B1 (de) Sicheres konfigurieren eines gerätes
EP3207683B1 (de) Verfahren und vorrichtung zum rückwirkungsfreien erfassen von daten
DE102011108003B4 (de) Prozessleitsystem
DE102007009909B4 (de) Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
DE112016002721T5 (de) Fahrzeuggebundene weiterleitungsvorrichtung, fahrzeuggebundenes kommunikationssystem und weiterleitungsprogramm
EP3681102A1 (de) Verfahren zur validierung eines digitalen nutzerzertifikats
EP3702951A1 (de) Computerimplementiertes verfahren und blockchain-system zur erkennung eines angriffs auf ein computersystem bzw. computernetzwerk
DE69927571T2 (de) Datenprozessor und Verfahren zum Verarbeiten von Daten
EP3718263B1 (de) Verfahren und steuersystem zum steuern und/oder überwachen von geräten
DE102013226010A1 (de) Sichere aktive Netzwerke
EP3152660A1 (de) Verfahren zur verteilung von tasks zwischen computersystemen, computernetz-infrastruktur sowie computerprogramm-produkt
DE102016207144B4 (de) Auswertungssystem
DE112012000780T5 (de) Verarbeiten von Berechtigungsprüfungsdaten
DE112011105472T5 (de) Kommunikationsvorrichtung
EP3617977A1 (de) Einrichtung und verfahren zum ermitteln einer konsensversion eines transaktionsbuchs und einrichtung und verfahren zum überwachen eines verteilten datenbanksystems
WO2021104995A1 (de) Verfahren und system zur prozessnachverfolgung und/oder prozessüberprüfung
EP3596907B1 (de) System und verfahren zur sicheren fahrzeugkommunikation
EP2706420B1 (de) Verfahren zum Betreiben eines Automatisierungsgerätes
DE112019004692T5 (de) Datenverarbeitungsvorrichtung und managementvorrichtung
EP3681099A1 (de) Verfahren zum betreiben eines rechnersystems für eine automatisierungsanlage und/oder fertigungsanlage sowie rechnersystem
EP2183902B1 (de) Verfahren zum Erkennen eines Dienstverhinderungsangriffs und Kommunikationsendgerät
EP3832508B1 (de) Sperrung oder widerruf eines gerätezertifikats
DE60010004T2 (de) Verteiltes Fernverwaltungsverfahren für eine Rechnervorrichtung
WO2021104996A1 (de) Verfahren und system zur prozessnachverfolgung und/oder prozessüberprüfung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final