-
Hintergrund
der Erfindung
-
Diese Erfindung bezieht sich auf
eine Einheit für
eine programmierbare Steuerung (SPS) und auf ein Verfahren zur automatischen
Wiederherstellung eines Speichers.
-
Programmierbare Steuerungen werden
als Steuereinrichtung in der Fabrikautomatisierung (FA) verwendet.
Programmierbare Steuerungen sind mit einer Anzahl von Einheiten
oder als geeignete Kombination verschiedener Arten von Einheiten,
wie eine Spannungsquelleneinheit, die als Zuführungsquelle für elektrische
Spannung dient, eine CPU-Einheit zur Steuerung der SPS insgesamt,
eine Eingabeeinheit zur Eingabe von Signalen aus Schaltern und Sensoren,
die geeignet auf den Produktions- und Ausstattungsvorrichtungen
für die
FA positioniert sind, eine Ausgabeeinheit zur Ausgabe von Steuersignalen
auf Stellglieder oder dergleichen, und eine Kommunikationseinheit
zur Verbindung mit einem Kommunikationsnetzwerk, ausgebildet.
-
Die SPS (oder ihre CPU-Einheit) führt wiederholt
die Operationen des Empfangens von über die Eingabeeinheit in den
E/A-Speicher der
CPU-Einheit eingegebenen Signalen („IN-Aktualisierung"), des Durchführens logischer Berechnungen
auf der Grundlage eines vorab registrierten Anwenderprogramms („Berechnung"), des Sendens der
Ergebnisse solcher Berechnungen an die Ausgabeeinheit durch Einschreiben
derselben in den E/A-Speicher („OUT-Auffrischung") und, nachfolgend,
der sogenannten Peripherieprozesse aus. Die SPS steuert ein zu steuerndes
Objekt durch Wiederholen solcher Operationen.
-
Anwenderprogramme und Einstelldaten („Anwenderdaten") werden auf einem
RAM gespeichert und es werden Daten sequentiell aus ihm ausgelesen
und in ihn eingeschrieben, wenn der Berechnungsprozess fortgeführt wird.
-
In einer Fabrik, wo die SPS installiert
ist, sind viele Arten von Vorrichtungen, wie Servomotoren, Wechselrichter
und Hochspannungsquellenvorrichtungen mit der SPS verbunden oder
in der Nähe
der SPS angeordnet. Für
in einem Speicher der SPS gespeicherte Daten besteht also die Gefahr
einer Zerstörung
infolge von Strahlungsrauschen, momentanem Spannungsausfall oder
magnetischen und elektrischen Feldern. Eine Zerstörung von
Daten auf dem Speicher in der SPS kann auch infolge kosmischer Strahlung
stattfinden. Eine Datenzerstörung
des ersteren Typs findet normalerweise in Einheiten von mehreren
Bits statt, während
diejenige die letzteren Art oft in Einheiten von einzelnen Bits
stattfindet.
-
Es versteht sich, dass eine SPS nicht
normal funktionieren kann, wenn ihre Steuerung auf zerstörten Anwenderdaten
beruht. Eine SPS ist also so eingerichtet, dass sie während ihres
Arbeitens dauernd prüft,
ob nicht eine Zerstörung
von Daten stattgefunden hat. Beispielsweise ist eine SPS so eingerichtet, dass
sie einen Summenwert der Daten auf ihrem RAM berechnet und den berechneten
Summenwert mit einem vorab gespeicherten Summenwert vergleicht,
um damit das Vorhandensein oder Nichtvorhandensein eines anomalen
Zustands zu prüfen.
-
Genauer erläutert, werden jedes Mal, wenn Anwenderdaten
neu heruntergeladen oder modifiziert werden, die Werte der Anwenderdaten
von ihrem Anfang bis zum Ende addiert, und der so gewonnene Wert
als der Summenwert in einem anderen Bereich gespeichert. Während einer
tatsächlichen Operation
wird der Summenwert der Anwenderdaten auf dem RAM abschnittsweise
berechnet, und jedes Mal, wenn der Endsummenwert erhalten wird,
wird dieser Wert mit dem vorher gespeicherten Wert verglichen. Wenn
sie nicht übereinstimmen,
wird geschlossen, dass die Daten auf dem RAM, aus welchem Grund
auch immer, zerstört
worden sind (oder eine Speicheranomalie aufgetreten ist), und das
System wird angehalten, um ein Durchgehen und eine falsche Ausgabe
zu Verhindern.
-
Das Anwenderprogramm ist mit Befehlsobjektcodes
gebildet, die von einem speziellen IC (ASIC) , der in der Lage ist,
Anwenderprogramme mit hoher Geschwindigkeit auszuführen, sowie
von einer Mehrzweck-MPU verstanden werden können.
-
Es ist normalerweise ein ASIC, der
den Befehlobjektcode interpretiert und bestimmt, ob der Befehl vom
ASIC selbst oder der MPU auszuführen
ist. Wenn der ASIC einen Code feststellt, der weder vom ASIC selbst
noch von der MPU ausgeführt
werden kann, wird dieser anomale Zustand der MPU mitgeteilt. Wenn
diese Mitteilung empfangen wird, schließt die MPU, dass der den Objektcode
speichernde RAM zerstört
ist, und kann damit weitermachen, die SPS anzuhalten.
-
Wenn das System so angehalten wird,
wird eine Arbeit zur Wiederherstellung des Speichers durchgeführt. Zur
Durchführung
dieser Wiederherstellungsarbeit muss jedoch ein Werkzeug, wie etwa ein
PC, zur Übertragung
und Ausgabe von Anwenderprogrammen mit der SPS verbunden werden.
Da jedoch die SPS üblicherweise
an einem tiefen Ende eines Steuerkastens angeordnet ist, ist es
nicht einfach, eine solche Verbindung herzustellen.
-
Ferner besteht, wenn die Summenwerte
verglichen werden, die Möglichkeit,
dass die Summenwerte zufällig übereinstimmen,
obwohl die Daten zerstört
worden sind, und auch wenn es infolge der Zerstörung von Daten zu einer Modifizierung
des Objektcodes kommt, kann es sein, dass die Situation als normal
interpretiert werden, wenn die Codes und der ASIC nach der Modifikation
immer noch mit der MPU durchgeführt
werden können.
Anders ausgedrückt, ist
es ein schwieriges Stück
Arbeit, eine Zerstörung von
Daten zuverlässig
festzustellen.
-
Im Hinblick auf dieses Problem hat
beispielsweise die japanische Patentveröffentlichung Tokkai 11-143784
(in den Absätzen
0022, 0023 und 0034 sowie 1 bis 9) eine Anzeigevorrichtung
für eine programmierbare
Steuerung offenbart. Gemäß der Offenbarung
darin werden Sicherungsdaten mit den gleichen Inhalten wie die im
Speicher der SPS gespeicherten Anwenderdaten in der Anzeigevorrichtung
gespeichert. Wenn die Spannung eingeschaltet wird und ein spezifiziertes
Zeitintervall danach wird das Vorhandensein oder Nichtvorhandensein
einer Zerstörung
von im Speicher der SPS gespeicherten Daten nachgeprüft und,
wenn festgestellt wird, dass eine Zerstörung vorhanden ist, eine Wiederherstellungsarbeit
auf dem Speicher der SPS auf der Grundlage der in der Anzeigevorrichtung
gespeicherten Sicherungsdaten durchgeführt. Sie hat auch die Funktion
der Protokollierung von Daten bei Nichtübereinstimmung und der Anzeige
ihrer Inhalte. Die Untersuchung des Vorhandenseins oder Nichtvorhandenseins
der Zerstörung
wird durch sequentielles Abrufen der im Speicher der Anzeigevorrichtung
gespeicherten Sicherungsdaten für
die SPS Sicherung und der im Speicher der SPS gespeicherten SPS-Daten,
Vergleichen derselben unter Verwendung eines Arbeitsspeichers innerhalb
der Anzeigevorrichtung und Schließen, dass eine Zerstörung von
Daten vorliegt, wenn eine Nichtübereinstimmung
zwischen den SPS-Sicherungsdaten und den SPS-Daten besteht, durchgeführt. Der
zerstörte
Datenabschnitt wird auf die SPS heruntergeladen, um eine Wiederherstellungsarbeit
durchzuführen.
-
Bei diesem Verfahren besteht jedoch
ein Problem, weil sich die Anzeigevorrichtung an einem verhältnismäßig fernen
Ort weg von der SPS befindet und über ein Netzwerk angeschlossen
ist. Dementsprechend wird der Speicher der SPS über das Netzwerk ausgelesen,
weshalb der Auslesevorgang nicht ausreichend häufig durchgeführt werden
kann. Die vorgenannte japanische Patentveröffentlichung Tokkai 11-143784
lehrt also, dass dieser nur peri odisch zu spezifizierten Zeitintervallen
nach dem Einschalten der Spannung durchgeführt werden soll, ohne klar
anzugeben, was diese spezifizierten Zeitintervalle sein könnten. Aus
der Beschreibung insgesamt könnte
man sich vorstellen, dass es ziemlich lange Zeitintervalle sind.
Wenn dies so ist, sind sie möglicherweise
länger
als die Intervalle, in denen bekannte Prüfmethoden im Wege von Summenwerten durchgeführt werden
können,
und es ist schwierig eine Zerstörung
von Daten augenblicklich festzustellen.
-
Bei einem Verfahren der Feststellung
eines Auftretens einer Anomalie durch eine Anzeigevorrichtung und
Herunterladens von korrekten Daten auf die SPS auf deren Basis ist
jedoch eine Verzögerung in
der Mitteilung der Anomalie an die SPS im Spiel und es ist üblicherweise
erforderlich, die SPS für
die Wiederherstellungsarbeit durch Herunterladen von Daten von der
Anzeigevorrichtung vorübergehend anzuhalten.
Dies macht es schwierig, eine Echtzeitwiederherstellung des Speichers
durchzuführen.
-
Selbst bei einem Prüfverfahren
mittels Summenwerten kann ferner das Anwenderprogramm als ganzes
nicht für
jeden Zyklus einer zyklisch arbeitenden SPS geprüft werden. Berechnungen werden
also sequentiell in Teilen durchgeführt, und ein Summenwert wird
durch Aufsummieren der Ergebnisse solcher Teilberechnungen gewonnen.
Anders ausgedrückt,
besteht eine verhältnismäßig große Zeitverzögerung von
dem Zeitpunkt, zu dem eine Zerstörung
stattfindet, bis sie tatsächlich
festgestellt wird.
-
Zusammenfassung
der Erfindung
-
Es ist daher Aufgabe dieser Erfindung,
eine SPS-Einheit zu schaffen, die in der Lage ist, schnell und genau
die Zerstörung
von Speicherdaten festzustellen und automatisch bei fortgesetztem
Arbeiten der SPS den Speicher wiederherzustellen, wenn eine Zerstörung festgestellt
wird, sowie ein solches Verfahren zur automatischen Wiederherstellung
eines Speichers zu schaffen.
-
Eine diese Erfindung verkörpernde
Einheit ist für
eine programmierbare Steuerung, die eine zyklische Operation, darin
eingeschlossen gemeinsame, Berechnungs-, E/A-Aktualisierung- und
periphere Dienstprozesse, ausführt,
und lässt
sich kennzeichnen dadurch, dass sie einen ein Anwenderprogramm speichernden
Anwenderprogrammspeicher, der zur Durchführung der Rechenprozesse auszulesen
ist, einen Sicherungsspeicher, der Daten mit den gleichen Inhalten
wie das im Anwenderprogrammspeicher gespeicherte Anwenderprogramm
speichert, einen Anomaliedetektor zur Feststellung einer Speicheranomalie
in dem im Anwenderprogrammspeicher gespeicherten Anwenderprogramm,
während
die zyklische Operation ausgeführt
wird, und eine Wiederherstellungsvorrichtung zur Wiederherstellung,
wenn der Anomaliedetektor eine Anomalie festgestellt hat, eines
Datenabschnitts, wo die Anomalie durch den Anomaliedetektor festgestellt
worden ist, mit einem entsprechenden Datenabschnitt im Speicher,
aufweist. Die zyklische Operation wird fortgesetzt, nachdem der
Datenabschnitt wiederhergestellt worden ist. Der vorgenannte Anwenderprogrammspeicher
kann auch als Anwenderspeicher bezeichnet werden.
-
Was oben als Anomaliedetektor bezeichnet worden
ist, kann verschiedene Formen annehmen. Beispielsweise kann er so
eingerichtet sein, dass der die Inhalte des Sicherungsspeichers
und des Anwenderprogrammspeichers zu spezifizierten Zeiten vergleicht
und beurteilt, dass der Speicher anomal ist, wenn eine Nichtübereinstimmung
als Ergebnis des Vergleichs festgestellt wird. Die spezifizierte
Zeit kann einmal pro Zyklus oder einmal pro mehreren Zyklen sein.
Die zu vergleichenden Inhalte können
das Anwenderprogramm und den Parameterbereich enthalten.
-
Das als Vergleichsinhalt dienende
Anwenderprogramm kann beispielsweise eines sein, das vom Anwender
in einer Steuerpro grammsprache, wie einer graphischen Programmiersprache
unter Verwendung eines Werkzeugs, wie etwa eines PC, erzeugt, und
in einen Code (Objektcode) umgewandelt worden ist, der von der SPS
durchgeführt
werden kann. Beispiele von im Parameterbereich zu speichernden Daten
beinhalten Daten, die sich auf die Systemeinstellung durch die SPS
beziehen, Daten zur Einstellung der Netzwerkkommunikation sowie Daten,
die im Ausführungsmodus
des Anwenderprogramms nicht geändert
werden.
-
Ein Vergleich braucht nicht über alle
Daten des Vergleichsobjekts (wie etwa das Anwenderprogramm und den
Parameterbereich) hinweg innerhalb eines Zyklusses durchgeführt werden.
Der Vergleich kann in Teilen erfolgen, so dass mehrere Zyklen ausgeführt werden,
bevor alle Vergleichsobjekte auf Anomalie geprüft sind.
-
Als weiteres Beispiel kann der Berechnungsprozess
in dem zyklischen Vorgang ausgeführt
werden, wenn der ASIC sequentiell die Objektcodes ausliest, die
das im Anwenderprogrammspeicher gespeicherte Anwenderprogramm umfassen,
und der vorgenannte Anomaliedetektor eine Speicheranomalie feststellt,
falls der mit dem ASIC ausgelesene Objektcode mit dem vorab spezifizierten
Objektcode nicht übereinstimmt.
-
In diesem Beispiel ist es vorzuziehen,
wenn der Anomaliedetektor mit der Funktion der Identifizierung des
Abschnitts, wo die Speicheranomalie erzeugt worden ist, wenn der
mit dem ASIC ausgelesene Objektcode und der vorab gespeicherte Objektcode
nicht übereingestimmt
haben und eine Speicheranomalie festgestellt worden ist, versehen
ist, indem er die Inhalte des Sicherungsspeichers und des Anwenderprogrammspeichers
auf der Grundlage der Daten der Adresse, wo der Objektcode, in welchem der
ASIC die Anomalie festgestellt hat, vergleicht und damit den Ort
der Nichtübereinstimmung
feststellt.
-
In einem weiteren Beispiel kann der
Anomaliedetektor vorzugsweise so eingerichtet sein, dass er die
Gesamtheit des Anwenderprogramms im Anwenderprogrammspeicher innerhalb
eines Zyklusses prüft
und die Daten in einem spezifizierten Bereich des die E/A-Daten
speichernden E/A-Speichers zwischenspeichert, wenn keine Anomalie
vorhanden ist, und das Anwenderprogramm repariert und den E/A-Speicher
beruhend auf den zwischengespeicherten E/A-Daten wiederherstellt, wenn eine Anomalie
festgestellt worden ist.
-
Auch wenn die Einrichtung so getroffen
ist, dass die Gesamtheit des Anwenderprogramms im Anwenderprogrammspeicher
innerhalb eines Zyklusses geprüft
wird, kann, wie oben erläutert,
die Speicherwiederherstellung des Anwenderprogramms ausgeführt werden,
ohne die E/A-Daten zu speichern und wiederherzustellen. Die Speicherprüfung kann
in diesem Fall auf verschiedene Arten, wie etwa durch Überprüfung des
Summenwerts oder durch einen Vergleich zwischen dem Anwenderspeicher
und dem Sicherungsspeicher, durchgeführt werden.
-
Die Erfindung bezieht sich auch auf
ein Verfahren zur automatischen Wiederherstellung eines Speichers
einer Einheit für
eine programmierbare Steuerung, die eine zyklische Operation, darin
eingeschlossen gemeinsame, Berechnungs-, E/A-Aktualisierungs- und periphere Dienstprozesse,
durchführt. Das
Verfahren setzt dabei voraus, dass die Einheit mit einem Anwenderprogrammspeicher,
der ein zur Durchführung
des Berechnungsprozesses auszulesendes Anwenderprogramm speichert,
und einem Sicherungsspeicher, der Daten mit dem gleichen Inhalt
wie das im Anwenderprogrammspeicher gespeicherte Anwenderprogramm
speichert, versehen ist. Gemäß dem Verfahren
wird ein Anomaliefeststellungsprozess durchgeführt, um damit eine Speicheranomalie
in dem im Anwenderprogramm des Speichers gespeicherten Anwenderprogramm
festzustellen, während
die zyklische Operation ausgeführt wird,
und, wenn eine Anomalie durch Durchführen des Anomaliefeststellungsprozesses
festgestellt wird, ein inkorrekten Daten bei der festgestellten Speicheranomalie
entsprechender Datenabschnitt aus dem Sicherungsspeicher ausgelesen
und dieser Datenabschnitt in den Anwenderprogrammspeicher geschrieben,
um damit die inkorrekten Daten zu korrigieren und den Speicher wiederherzustellen.
Die zyklische Operation wird fortgesetzt, nachdem die inkorrekten
Daten so korrigiert sind.
-
In Obigem kann der Anomaliefeststellungsvorgang
vorzugsweise durch Vergleichen der Inhalte des Sicherungsspeichers
und des Anwenderprogramms des Anwenderprogrammspeichers zu spezifizierten
Zeiten und Feststellen einer Anomalie, wenn sich durch den Vergleich
eine Nichtübereinstimmung ergibt,
durchgeführt
werden.
-
Auch in Obigem wird der Berechnungsvorgang
durch einen ASIC durchgeführt,
der sequentiell im Anwenderprogramm gespeicherte Objektcodes des
Anwenderprogramms ausliest, und der Anomaliedetektor dient dazu,
eine Anomalie festzustellen, wenn die mit dem ASIC ausgelesenen
Objektcodes mit vorab spezifizierten Objektcodes nicht übereinstimmen.
Wenn durch Durchführen
des Anomaliefeststellungsprozesses eine Anomalie festgestellt wird,
kann der ASIC den Ort, wo die Anomalie aufgetreten ist, durch Vergleichen
der Inhalte des Sicherungsspeichers und des Anwenderprogrammspeichers
beruhend auf Adressendaten, die sagen, wo die Objektcodes gespeichert
sind, identifizieren. Der Anwenderprogrammspeicher kann durch Abrufen der
Daten an der identifizierten Position aus dem Sicherungsspeicher
wiederhergestellt werden.
-
Ferner kann in Obigem der Anomaliefeststellungsprozess
die Schritte des Prüfens
der Gesamtheit des Anwenderprogramms im Anwenderprogrammspeicher
innerhalb eines Zyklusses, der Zwischenspeicherung der Daten in
einem spezifizierten Bereich des E/A-Speichers, der die E/A-Daten speichert,
wenn keine Anomalie vorliegt, und des Reparierens des Anwenderprogramms
und Wiederher stellen des E/A-Speichers, beruhend auf den zwischengespeicherten
E/A-Daten, wenn eine Anomalie festgestellt worden ist, umfassen.
-
Da Geschwindigkeit ein wichtiger
Faktor bei der SPS-Steuerung
(d.h., dem vorgenannten Berechnungsprozess) ist, wird von einem
Speicher Gebrauch gemacht, der beim Durchführen des Berechnungsprozesses
zu schnellen Operationen in der Lage ist. Die Berechnungsgeschwindigkeit
lässt sich verbessern,
indem ein solcher Speicher als der Anwenderprogrammspeicher verwendet
wird. Solche Speicher haben jedoch einen hohen Bereitschaftsstrom
und würden
eine große
Anzahl von Batteriezellen erfordern, wenn gewünscht würde, Daten einer Größe, die
so groß wie
diejenige eines Anwendersprogramms ist, über eine längere Zeit zu speichern. Es
ist daher unter dem Gesichtspunkt von Aufbau und Preis praktisch
unzweckmäßig, diese
für eine SPS-Einheit
zu verwenden. Da ein solcher Speicher Daten nicht halten kann, wenn
die Spannung abgeschaltet wird, ist es also gängige Praxis, das Anwenderprogramm
getrennt in einem nicht flüchtigen
Sicherungsspeicher zu speichern und es aus dem Sicherungsspeicher
in den Anwenderspeicher zu transferieren, wenn die Spannung zu Durchführung der
zyklischen Prozesse eingeschaltet wird. Anders ausgedrückt, wird
der gleiche Inhalt der Anwenderprogrammdaten sowohl im Anwenderprogrammspeicher
als auch im Sicherungsspeicher gespeichert, wenn die Spannung eingeschaltet
wird.
-
Gemäß dieser Erfindung ist es daher
die Einheit für
die SPS, die auf einen anomalen Zustand des Speichers prüft, und,
wenn Daten des Anwenderprogrammspeichers beschädigt sind, und eine Speicheranomalie
verursachen, werden entsprechende Daten aus dem Sicherungsspeicher
dazu verwendet, die beschädigten
Daten durch einen umgeschriebenen Teil als Speicherwiederherstellungsarbeit
zu ersetzen. Die Anwenderprogrammdaten auf dem Anwenderprogrammspeicher
erlangen also eine Korrektur und die SPS kann ihre Ope rationen fortsetzen.
Da die Übertragung
des Anwenderprogramms aus dem Sicherungsspeicher in den Anwenderprogrammspeicher
ein interner Vorgang ist, lässt
sich die Wiederherstellung des Anwenderprogrammspeichers augenblicklich
bewerkstelligen, während
die zyklischen Operationen ausgeführt werden, und die zyklischen Operationen
können
fortgesetzt werden, nachdem die Daten korrigiert sind. Anders ausgedrückt, kann der
Anwenderprogrammspeicher ohne Anhalten der SPS automatisch wiederhergestellt
werden.
-
Drei Verfahren wurden für die Feststellung einer
Speicheranomalie erwähnt
(welche (1) durch Vergleichen des Anwenderprogramms zwischen dem
Anwenderprogrammspeicher und dem Sicherungsspeicher und Prüfen, ob
sie übereinstimmen oder
nicht, (2) durch Bestimmen, ob Objektcodes für den ASIC
verständlich
sind, und (3) durch Prüfen
des Summenwerts für
eine Beurteilung gegeben sind), es kann aber auch eines dieser Verfahren
allein oder irgendeine Kombination einer Anzahl dieser Verfahren enthalten
sein. Wenn ein weiteres Verfahren darüber hinaus vorhanden ist, kann
ein solches neues Verfahren ebenfalls enthalten sein.
-
Unter Bezug auf das Obige ist bevorzugt,
sowohl (1) als auch (2) einzubauen. Es ist zwar
nicht wünschenswert,
zuzulassen, dass die Zeit für
einen Zyklus von Operationen zu lange wird, es können aber Vorgänge, die
nur wenigen Bits entsprechen (zu bestimmen gemäß der Kapazität der SPS),
in einem Zyklus nach dem Verfahren des Vergleichens von Daten gemäß (1)
durchgeführt
werden. Wenn Daten an einer bestimmten Adresse nach diesem Vergleich von
Daten als normal bestimmt werden und danach ein Datenfehler an dieser
Adresse auftritt, bleibt ein Zustand, der für die SPS nicht wünschenswert
ist, also bestehen, bis der nächste
Vergleich durchgeführt
wird. Wenn das Verfahren von (2) zusätzlich eingebaut wird und wenn
der Datenfehler dort vorliegt, wo Objektcodes des Anwenderprogramms
gespeichert sind, wird jedoch der Fehler festgestellt, wenn der
ASIC das Anwender programm ausführt
(oder wenn die Objektcodes ausgelesen werden). Dies bedeutet, dass
der anomale Zustand früher
festgestellt werden kann, womit die Zuverlässigkeit der SPS verbessert
ist.
-
Es ist jedoch zu erkennen, dass,
obwohl es mehrere Zyklen nach dem Verfahren (1) braucht,
um alle Daten zu prüfen,
weil die Prüfung
in Einheiten von nur einigen Bytes stattfindet, der Zustand, wenn der
den anomalen Zustand enthaltende Abschnitt geprüft wird, innerhalb dieses Zyklusses
festgestellt werden kann.
-
Es ist auch zu erkennen, dass die
Erfindung auch Verfahren enthält,
mit denen das gesamte Anwenderprogramm des Anwenderprogrammspeichers innerhalb
eines Zyklusses geprüft
wird. In diesem Fall kann jedes der Verfahren (1) und (2)
verwendet werden, und das Verfahren von (3) wird eines
von wirksamen Verfahren.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockschaltbild einer die Erfindung verkörpernden Einheit.
-
2 ist
eine Zeichnung zur Erläuterung
des Prinzips ihrer Operationen.
-
3 bis 9 sind Flussdiagramme für verschiedene
Operationen der MPU.
-
Ausführliche
Beschreibung der Erfindung
-
1 zeigt
einen Aufbau einer CPU-Einheit 10 für eine SPS, welche diese Erfindung
verkörpert. Ein
Systemprogramm (Firmware) ist in einem Systemspeicher (SROM) 11 gespeichert,
der eine Flash-Speichervorrichtung aufweist, und für ein Abrufen
in die MPU 12 eingerichtet, welche zur Durchführung verschiedener
Prozesse gemäß dem Programm
unter Verwendung eines Arbeitsspeichers (WRAM) 13 dient,
wenn es erforderlich wird.
-
Während
der Operation wird ein Anwenderprogramm, welches eines von Anwenderdaten
ist, in einem als Anwenderprogrammspeicher dienenden Anwenderspeicher 14 gespeichert.
Der Anwenderspeicher 14 ist mit einem SRAM (welcher ein
Hochgeschwindigkeits-RAM ist) ausgebildet und kann seinen Inhalt
nicht halten, wenn die Spannung ausgeschaltet wird. Aus diesem Grund
wird ein weiteres Anwenderprogramm mit dem gleichen Inhalt in einem
Sicherungsspeicher 15 gespeichert, der mit einer Flash-Speichervorrichtung
ausgebildet ist, die in der Lage ist, ihren Inhalt auch dann zu
halten, wenn die Spannung abgeschaltet wird. Wenn die Spannung eingeschaltet
wird, wird das in dem Sicherungsspeicher 15 gespeicherte
Anwenderprogramm auf den Anwenderspeicher 14 übertragen.
-
E/A-Daten und Parameter sind in einem E/A-Speicher 16 gespeichert.
Der E/A-Speicher ist auch mit einem SRAM ausgebildet, aber gemäß diesem
Beispiel mit Batteriezellen versehen, weshalb er seinen Speicherinhalt
auch dann hält,
wenn die Spannung abgeschaltet wird.
-
Im Anwenderspeicher 14 gespeicherte
Befehlsobjektcodes des Anwenderprogramms werden sequentiell durch
einen ASIC 17 aufgerufen. Der ASIC 17 analysiert
die abgerufenen Befehlsobjektcodes und führt die Befehle aus. Wenn diese
Befehle ausgeführt
werden, wird, wann immer erforderlich, auf den E/A-Speicher 16 zugegriffen,
um E/A-Daten zu lesen und zu schreiben und Parameter zu gewinnen.
Diese E/A-Daten können
auf verschiedene Einheiten sowie andere E/A-Vorrichtungen über einen E/A-Bus 18 übertragen
und/oder von diesen empfangen werden.
-
Der ASIC 17 ist so eingerichtet,
dass er eine Anomalie feststellt (d.h., beurteilt, dass ein anomaler Zustand
vorliegt) wenn ein Befehlsobjektcode analysiert wird, aber als ein
inkorrekter Code befunden wird, der für ihn unverständlich ist,
und die MPU 12 dahingehend informiert. Der Aufbau und die
Funktion, die oben beschrieben wurden, sind im wesentlichen die
gleichen wie beim Stand der Technik, weshalb keine ausführliche
Erläuterung
gegeben wird. Eine SPS wird ausgebildet, indem Einheiten verschiedener
Art, wie etwa eine Spannungsquelleneinheit und ein E/A-Einheit zusätzlich zu
der oben beschriebenen CPU-Einheit 10 über einen Bus verbunden werden.
-
Wie in 2 gezeigt,
dient die MPU 12 dazu, die im Anwenderspeicher 14 gespeicherten
Daten des Anwenderprogramms mit denjenigen des im Sicherungsspeicher 15 gespeicherten
Anwenderprogramms zu vergleichen („VERGLEICH") um zu bestimmen, ob ihre Inhalte übereinstimmen,
oder nicht. Wenn sie übereinstimmen,
wird beurteilt, dass die Daten im Anwenderspeicher 14 nicht
zerstört
sind, und die Ausführung
des Anwenderprogramms des Anwenderspeichers 14 wird direkt
fortgesetzt. Wenn eine Nichtübereinstimmung,
wie etwa Adresse 3 im Beispiel der 2, festgestellt wird, wird beurteilt, dass
zerstörte
Daten im Anwenderspeicher 14 vorhanden sind, und das entsprechende
Datenelement (an Adresse 3), das in dem Sicherungsspeicher 15 gespeichert
ist, wird im Anwenderspeicher 14 überschrieben („WIEDERHERSTELLUNG"), so dass der Anwenderspeicher 14 korrekte
Daten enthält.
Die SPS ist nun in der Lage, ihre Operationen fortzusetzen. Der
vorstehende Vergleichsvorgang zwischen den beiden Speichern kann
auf viele verschiedene Arten ausgeführt werden, wie etwa durch
Auslesen der zu vergleichenden Daten, Speichern derselben in einem
Arbeitsspeicher (WRAM) 13 und Vergleichen derselben dort.
-
Der ASIC 17 ist auch dazu
eingerichtet, die MPU 12 über einen anomalen Zustand
zu informieren, wenn ein unverständlicher
Code (ausführbar
weder durch den ASIC 17 noch durch die MPU 12)
während
der Ausführung
eines Befehls angetroffen wird. Wenn die MPU 12 den Empfang
einer solchen Information, beruhend auf der Feststellung eines unverständlichen
Codes, bestätigt,
wird der Anwenderspeicher 14 korrigiert und der korrigierte
Code erneut in den ASIC 17 geschrieben. Als Reaktion liest
der ASIC 17 den korrekten Code aus und führt ihn
aus. Auf diese Weise kann der Speicher, ohne die SPS anzuhalten,
automatisch wiederhergestellt werden.
-
In dem in 2 gezeigten Beispiel ist der Objektbefehlscode
an Adresse 3 unverständlich.
In diesem Beispiel liest der ASIC 17 die Befehlsobjektcodes
sequentiell in der Reihenfolge ihrer Adressen aus, analysiert die
Inhalte ihrer Befehle und führt
diese aus. Anders ausgedrückt,
wird der auf dem an Adresse 1 gespeicherten Befehlsobjektcode
beruhende Befehl zuerst ausgeführt
und dann der an Adresse 2 gespeicherte Befehlsobjektcode
als nächster.
Wenn der Befehlsobjektcode an Adresse 2 danach ausgelesen
wird, um ihn auszuführen,
wird er jedoch als unverständlich
befunden, weshalb die Anomalie der MPU 12 mitgeteilt wird,
ohne diesen Befehl auszuführen.
-
Wenn diese Mitteilung empfangen wird,
korrigiert die MPU 12 den Inhalt von Adresse 3 des
Anwenderspeichers 14 mit demjenigen der entsprechenden
Adresse 3 des Sicherungsspeichers 15 und bewirkt,
dass der ASIC 17 den Befehlsobjektcode in Adresse 3 erneut
ausliest. Als Reaktion führt
der ASIC 17 den korrigierten Befehl aus Adresse 3 aus. Danach
wird der Befehlsobjektcode an Adresse 4 wie üblich ausgelesen
und sein Befehl ausgeführt.
Auf diese Weise kann jedes Mal, wenn eine Anomalie während der
Abarbeitung des Anwenderprogramms festgestellt wird, der Inhalt
des Anwenderprogramms ohne Anhalten der SPS automatisch wiederhergestellt
und die Ausführung
mit einem korrekten Inhalt wieder aufgenommen werden.
-
Als nächstes werden Einzelheiten
von den oben beschriebenen Vorgängen
zur Feststellung einer Anomalie und automatischen Korrektur des
Speichers erläutert.
Zunächst
ist daran zu erinnern, dass die SPS dazu eingerichtet ist, einen
gemeinsamen Prozess, einen Berechnungsprozess (d.h. die Ausführung des
Anwenderprogramms), einen E/A-Aktualisierungsprozess und die peripheren
Dienstprozesse wiederholt in einer zyklischen Weise auszuführen. Der
vorgenannte Prozess zur Überprüfung einer
anomalen Situation wird also in einer zyklischen Weise durchgeführt. Es
gibt ein Verfahren zur Prüfung
der Gesamtheit des Anwenderprogramms aus dem Anwenderspeicher 14 in
einem Zyklus und ein weiteres Verfahren, dies in Teilen über mehrere
Zyklen hinweg zu tun.
-
Wenn die Prüfung in Teilen über mehrere
Zyklen hinweg erfolgt, wird das Anwenderprogramm im Anwenderspeicher 14 in
mehrere (N) Blöcke
unterteilt, wobei jeder Block in einem Zyklus geprüft wird, so
dass das Prüfen
des gesamten Anwenderprogramms in N Zyklen abgeschlossen sein wird.
Wenn ein anomaler Zustand in einem der Blöcke festgestellt wird, wird
nur der Block, der in diesem Zyklus gerade geprüft wird, automatisch wiederhergestellt. Die
von der MPU in diesem Fall durchgeführten Operationen werden durch
das Flussdiagramm der 3 wiedergegeben.
-
Unter Bezug auf 3 wird eine Speicherprüfung für einen
Einblockabschnitt des Anwenderprogramms des in mehrere Teile unterteilten
Anwenderprogramms 14 durch Vergleichen des Anwenderspeichers 14 und
des Sicherungsspeichers 15 durchgeführt (Schritt ST1). Wenn eine
Nichtübereinstimmung
nicht vorhanden ist (NEIN in Schritt ST2), wird die Situation als
normal betrachtet. Wenn eine Nichtübereinstimmung festgestellt
wird (JA in Schritt ST2), wird geschlossen, dass der Speicher zerstört ist,
und der nicht übereinstimmende
Abschnitt innerhalb des gerade verarbeiteten Blocks wird automatisch
wiederhergestellt (Schritt ST3). Da es vernünftig ist, aus der Stabilität von Speichern
darauf zu schließen, dass
die Übereinstimmung
wegen zerstörter
Daten auf Seiten des Anwenderspeichers 14 bewirkt wurde, wird
das entsprechende Datenelement aus dem Sicherungs speicher 15 ausgelesen
und in den Anwenderspeicher 14 geschrieben.
-
Das soll jedoch die Erfindung nicht
einschränken.
Es ist bevorzugt, zu Anfang eine Summenwertprüfung auf dem Anwenderprogramm
in dem Sicherungsspeicher 15 auszuführen, um sicherzustellen, dass
die Inhalte des Sicherungsspeichers 15 korrekt sind, bevor
das Datenelement aus ihm in den Anwenderspeicher 14 geschrieben
wird. Dies deshalb, weil die Möglichkeit
eines Datenfehlers in der den Sicherungsspeicher umfassenden nicht flüchtigen
Vorrichtung für
den Sicherungsspeicher nicht exakt null ist.
-
Nachdem der anomale Abschnitt so
korrigiert worden ist, oder wenn keine Nichtübereinstimmung vorlag, wird
die normale zyklische Operation wieder aufgenommen (ST 4), wobei
der ASIC 17 sequentiell die Befehlobjektcodes des Anwenderprogramms
für den
Anwenderspeicher 14 ausliest, die Befehlscodes analysiert
und die Befehle ausführt. Darauf
folgt die Ausführung
des E/A-Aktualisierungsprozesses
(Schritt ST 5).
-
Zusammenfassend wird das Programm
im Falle einer anomalen Situation nur ausgeführt, nachdem es automatisch
auf der Grundlage der im Sicherungsspeicher 15 innerhalb
der CPU-Einheit 10 gespeicherten Sicherungsdaten wiederhergestellt
worden ist. Es ist also eine kontinuierliche Operation ohne die
SPS anzuhalten, wie es herkömmlicherweise
erforderlich war, möglich.
-
Es ist unter Bezug auf 3 zu beachten, dass das
Vorhandensein und Nichtvorhandensein eines anomalen Zustands während des
ganzen Prozesses des Schrittes ST 4 kontinuierlich überwacht werden
kann, während
das Anwenderprogramm gerade ausgeführt wird, so dass die automatische
Wiederherstellung jedes Mal bewirkt werden kann, wenn eine anomale
Situation festgestellt wird. Wie oben erläutert, wird jedes Mal, wenn
der ASIC 17 eine Befehlscode, der ihm unverständlich ist,
ausliest, geschlossen, dass ein anomaler Zustand aufgetreten ist,
und diese Tatsache wird mitgeteilt. Auf dieser Grundlage vergleicht
die MPU 12 den Anwenderspeicher 14 mit dem Sicherungsspeicher 15,
wobei nach Identifizierung einer anomalen Position die Daten an der
entsprechenden Position korrigiert werden. Codes die für den ASIC 17 unverständlich sind,
werden nicht ausgeführt,
und der ASIC 17 führt
die Ausführung
nur nach erfolgter Korrektur durch, womit der Speicher mit beschädigten Daten
ohne Anhalten der SPS automatisch wiederhergestellt wird. Wenn der ASIC 17 einen
anomalen Zustand berichtet, lernt die MPU 12 daraus die
Adresse des anomalen Zustands kennen und braucht folglich nur die
Nachbarschaft dieser Adresse auf Daten der spezifizierten Größe zu prüfen. Die
Position der Anomalie lässt
sich also schnell feststellen. Einzelheiten dieses Prozesses werden
untenstehend beschrieben.
-
In diesem Beispiel wird, wie oben
erläutert, das
Prüfen
der Gesamtheit des Anwenderprogramms nur einmal innerhalb einer
Anzahl von Zyklen abgeschlossen, weil nur ein Teil der Anwenderprogrammdaten
in jedem Zyklus geprüft
wird. Da es nicht der Summenwert ist, der geprüft wird, wie das herkömmlicherweise
geschieht, lässt
sich die Position der Anomalie jedoch schnell feststellen, weil
der diese Position enthaltende Block schnell zu einer Prüfung gelangt.
Ferner erfolgt die Speicherwiederherstellung nur an der anomalen
Position, und da dies alles automatisch geschieht, kann der Wiederherstellungsvorgang
sehr viel rascher abgeschlossen werden, als es früher möglich war.
-
Noch genauer erläutert, benötigt es, wenn das Anwenderprogramm
des Anwenderspeichers in N Blöcke
unterteilt ist, N Zyklen, um das Prüfen des gesamten Anwenderprogramms
abzuschließen, aber
es kann, wenn ein anomaler Zustand im n-ten Block (n < N) aufgetreten
ist, dies nach dem herkömmlichen
Verfahren erst nach N Zyklen durch Prüfen des Summenwerts festgestellt
werden, und immer noch kann die Position des Auftretens der An omalie
nicht identifiziert werden. Es musste also nach der bekannten Technologie
das gesamte Anwenderprogramm aktualisiert werden, und dies musste durch
Anhalten der SPS erfolgen.
-
Im Gegensatz dazu werden gemäß der Erfindung
die Prüfvorgänge in Einheiten
von Blöcken,
wie in 4 gezeigt, durchgeführt, so
dass normale Vorgänge,
bis zum (n – 1)-ten
Zyklus fortgesetzt werden, da keine Anomalie im Speicher vorliegt.
Falls die Nichtübereinstimmung
im n-ten Zyklus festgestellt wird, wird der Speicher im n-ten Block
automatisch korrigiert und das Anwenderprogramm direkt ausgeführt, ohne
die SPS anzuhalten. Zusammenfassend kann der anomale Zustand im
n-ten Zyklus (früher
als im N-ten Zyklus) festgestellt und automatisch auf den Ursprungszustand
hin korrigiert werden, ohne die SPS anzuhalten, was damit das Arbeiten
der SPS erlaubt.
-
3 zeigt
zwar ein Beispiel, in dem Schritte ST1–ST5 wiederholt werden, dies
soll die Erfindung jedoch nicht einschränken. Das Prüfen des
Speichers braucht nicht in jedem Zyklus durchgeführt zu werden, sondern kann
in einer spezifizierten Anzahl von Zyklen erfolgen. Ferner kann
die herkömmliche Prüfroutine
durch Prüfen
des Summenwerts unter Anhalten der SPS im Falle einer anomalen Situation enthalten
sein. Bei einem solchen Beispiel kann die Einrichtung so getroffen
sein, dass eine solche herkömmliche
Routine und das oben erläuterte
Prüfverfahren
gemäß der Erfindung
durch Vergleichen der Daten im Anwenderspeicher 14 und
im Sicherungsspeicher 15 ausgewählt durchgeführt werden.
-
Als nächstes werden die Speicherprüfroutine und
die zugeordnete Routine für
die automatische Wiederherstellung in größeren Einzelheiten erläutert. 5 zeigt Schritt ST2 der 3, in dem als erstes der
Anwenderspeicher (RAM) 14 und der Sicherungsspeicher (BROM) 15 verglichen
werden (Schritt ST11). In diesem Schritt zu vergleichende Daten
sind nur ein Abschnitt der Anwen derdaten, beispielsweise von 4 Bytes.
Wenn festgestellt wird, dass sie übereinstimmen (JA in Schritt
ST12) wird die Routine direkt beendet. Wenn festgestellt wird, dass
sie nicht übereinstimmen
(NEIN in Schritt ST12), werden Daten aus dem Sicherungsspeicher 15 an
dem entsprechenden Teil, wo die Nichtübereinstimmung gefunden wurde, über die
Daten an dem entsprechenden Teil des Anwenderspeichers 14 geschrieben
(Schritt ST13). Anders ausgedrückt,
erfolgt der Vergleich zwischen entsprechenden Teilen der Daten,
weshalb ein Vorhandensein oder Nichtvorhandensein eines anomalen
Zustands betreffend die verglichenen Abschnitte festgestellt werden
kann.
-
Das ist die Art, auf die die Wiederherstellungsarbeit
durchgeführt
werden kann. Gemäß dem dargestellten
Beispiel der Erfindung werden jedoch Daten aus dem Anwenderspeicher 14 erneut
ausgelesen (Schritt ST14), um sie mit dem Inhalt des Sicherungsspeichers
(BROM 15) zu vergleichen (Schritt ST15), um so die Wiederherstellungsarbeit zuverlässiger zu
machen. Wenn die Operationen in Schritt ST13 richtig durchgeführt worden
sind, wird das Ergebnis dieses Vergleichs positiv sein (JA in Schritt
ST15) und die Routine beendet. Im Falle eines Einschreibefehlers
oder dergleichen, was damit zu einer fehlerhaften Wiederherstellung
führt (NEIN
in Schritt ST15), wird jedoch Schritt ST13 wiederholt (Schritt St16)
und es werden Daten aus dem Anwenderspeicher 14 erneut
ausgelesen (Schritt ST17) und mit dem Inhalt des Sicherungsspeichers
(BROM) 15 verglichen (Schritt ST18). Wenn das Ergebnis
dieses zweiten Vergleichs negativ ist (NEIN in Schritt ST18), besteht
eine hohe Wahrscheinlichkeit eines Hardware-Fehlers im Speicher und die Routine
wird beendet und die SPS angehalten.
-
Wenn die im Anwenderspeicher (RAM) 14 und
im Sicherungsspeicher (BROM) 15 gespeicherten Daten beispielsweise
so sind, wie im Kasten der 5 gezeigt,
wird die Nichtübereinstimmung
in den vierten Datenelementen im Schritt ST13 oder ST16 korrigiert.
Wenn der Schritt der Prüfung
des Summenwerts des Sicherungsspeichers enthalten sein soll, wird
bevorzugt, dass er durchgeführt
wird, bevor Schritt ST11 ausgeführt
wird.
-
6 zeigt
Schritt ST4 der 3 ,
in dem die MPU 12 auf eine Mitteilung des ASIC 17 betreffend
einen von ihm empfangenen Code, der ihm unverständlich ist, wartet (Schritt
ST21). Mit Erhalt dieser Mitteilung und mit dem Sichbewusstwerden
des Auftretens einer Anomalie gewinnt die MPU 12 die Adresse,
die der ASIC 17 besitzt, und vergleicht den Anwenderspeicher
(RAM) 14 mit dem Sicherungsspeicher (BROM) 15 betreffend
Daten, die sich in einer spezifizierten Länge in beiden Richtungen von der
mitgeteilten Adresse weg erstrecken. Wenn die Position von nicht
in Übereinstimmung
befindlichen Daten festgestellt wird, wird diese als Anomalieposition
identifiziert und die Feststellungsroutine abgeschlossen (Schritte
ST22–ST24).
In obigem kann die spezifizierte Länge auf die Maximallänge des
Befehlscodes eingestellt werden, da das Kennzeichen am Beginn eines
jeden Befehlsobjektcodes geändert werden
kann.
-
Danach wird der Wiederherstellungsvorgang durch
Auslesen der Daten an der anomalen Position aus dem Sicherungsspeicher 15 und Überschreiben des
Anwenderspeichers 14 mit diesen durchgeführt (Schritt
ST25). Dieser Wiederherstellungsvorgang wird auch vorzugsweise mehr
als einmal, wie oben unter Bezug auf 5 erläutert, durchgeführt, um
sicherzustellen, dass korrekte Daten richtig eingeschrieben worden
sind.
-
Nachdem der Schritt der automatischen
Wiederherstellung so abgeschlossen ist, wird die Startadresse des
Befehls, die die anomalen Daten enthält, für den ASIC 17 eingestellt
(Schritt ST26) . Dies versetzt den ASIC 17 in die Lage,
den Befehl auszuführen,
der wegen der Feststellung einer Anomalie nicht ausge führt werden
konnte und dies geschieht unter dem korrigierten Befehl mit korrekt
wiederhergestellten Daten.
-
7 zeigt
die Vorgänge
zur Ausführung
eines Befehls. Wenn der empfangene Befehl eine korrekte Art (bzw.
ein „ASIC-Befehl", ausführbar durch den
ASIC 17) ist (JA in ST31), wird der Befehl ausgeführt. Wenn
er kein korrekter Befehl ist (nicht ausführbar durch die MPU) (NEIN
in Schritt ST31), wird der ASIC 17 angehalten und ein Kennzeichen (MFN-STP-Kennzeichen)
eingeschaltet (Schritt ST32).
-
Als nächstes wird bestimmt, ob der
Befehl von einer korrekten Art ist oder nicht (Schritt ST33). In
dem Fall eines Befehls einer korrekten Art (JA in Schritt ST33)
wird seine Befehlsnummer in dem MFN-Register gesetzt (Schritt ST35).
Im Falle eines Befehls einer inkorrekten Art (NEIN in Schritt ST33) wird
eine „Inkorrektbefehl-Zahl" im MFN-Register
gesetzt (Schritt ST36).
-
In der Zwischenzeit überwacht
die MPU 12 weiterhin, ob das MFN-STP-Kennzeichen eingeschaltet
worden ist oder nicht (Schritt ST37). Wenn das Kennzeichen eingeschaltet
worden ist (JA in Schritt ST37), versteht sie, dass der ASIC 17 angehalten
hat, und der Befehl wird durch die MPU 12 ausgeführt (Schritt
ST38). Anders ausgedrückt,
wird, wenn die Bestimmung im Schritt ST33 „korrekter Befehl" war, der Befehl
an einer spezifizierten Position ausgeführt, d.h., die im MFN-Register
eingestellte Befehlsnummer wird ausgeführt. Im Falle eines inkorrekten
Befehls (etwa wenn eine inkorrekte Befehlsnummer im MFN-Register
eingestellt ist) wird die automatische Wiederherstellung des Speichers durch
Ausführen
der Routine gemäß dem Flussdiagramm
der 5 durchgeführt. Der
ASIC 17 wird danach neu gestartet (Schritt ST39), und die
Routine kehrt nach Schritt ST31 zurück und führt das Anwenderprogramm aus.
-
Die Erfindung wurde zwar oben mit
einem Beispiel beschrieben, in dem das Anwenderprogramm des Anwenderspeichers 14 und das
Anwenderprogramm des Sicherungsspeichers 15 in Teilen und über eine
Anzahl hinweg verglichen worden ist, dies soll jedoch nicht die
Erfindung einschränken.
In dem Fall, wo die Gesamtheit des Anwenderprogramms des Anwenderspeichers 14 in
einem Zyklus geprüft
wird, erfolgt die Prüfung
in Schritt STl der 3 über die
Gesamtheit des Anwenderprogramms des Anwenderspeichers 14 hinweg.
Als ein weiteres Beispiel kann die Einrichtung so getroffen werden,
dass der Summenwert des gesamten Anwenderprogramms in einem Zyklus
geprüft
wird. 8 zeigt ein Beispiel
eines solchen Prozesses.
-
In der in 8 gezeigten Routine wird das Anwenderprogramm
zuerst ausgeführt
(Schritt ST41). Während
dieses Berechnungsvorgangs kann, wie oben erläutert, die Codeprüfung durchgeführt werden.
Als nächstes
wird der Summenwert des gesamten Anwenderprogramms des Anwenderspeichers 14 ausgeführt (Schritt
ST42). Wenn eine Anomalie festgestellt wird (NEIN in Schritt ST43),
werden die aktuellen E/A-Daten auf dem E/A-Speicher 16 ausgelesen
und im Sicherungsspeicher gespeichert (gesetzt beispielsweise auf
dem WRAM 13) (Schritt ST44), wonach der E/A-Aktualisierungsvorgang
ausgeführt
wird (Schritt ST47).
-
Wenn eine anomale Situation festgestellt wird
(JA in Schritt ST43), wird eine automatische Speicherwiederherstellung
des gesamten Anwenderprogramms auf dem Anwenderspeicher 14 ausgeführt (Schritt
ST14). Genauer erläutert,
kann dies erfolgen, indem die MPU 12 oder der ASIC 17 die
Anwenderprogramme des Anwenderspeichers 14 und des Sicherungsspeichers 15 vergleicht,
und, wenn eine Nichtübereinstimmungsposition
festgestellt wird, die Daten an der Nichtübereinstimmungsposition auf
dem Anwenderspeicher 14 durch die entsprechenden Daten
auf dem Sicherungsspeicher 15 ersetzt. Als weiteres Beispiel
kann dies erfolgen, indem das im Sicherungsspeicher 15 gespeicherte
Anwenderprogramm ausgelesen und in den Anwenderprogrammspeicher 14 geschrieben
wird, um da mit das gesamte Anwenderprogramm umzuschreiben. Da die
anomale Position nach dem Verfahren mit Prüfung des Summenwerts nicht
identifiziert werden kann, wird nach diesem Verfahren das gesamte
Anwenderprogramm wiederhergestellt.
-
Als nächstes wird eine Wiederherstellung der
E/A-Daten durchgeführt
(Schritt ST46), indem die vorher im Sicherungsspeicher 15 gespeicherten E/A-Daten
ausgelesen und in den E/A-Speicher 16 geschrieben
werden. Danach wird der E/A-Aktualisierungsprozess
ausgeführt
(Schritt ST47).
-
Neben den E/A-Daten können die
anderen Daten auf dem E/A-Speicher
(wie etwa die Daten, die nicht Gegenstand des E/A-Aktualisierungsprozesses sind,
wie etwa Parameter) zwischengespeichert und wiederhergestellt werden.
-
9 zeigt
ein Beispiel einer tatsächlichen Routine
zur Prüfung
des gesamten Anwenderprogramms in einem Zyklus. Nachdem das Anwenderprogramm
ausgeführt
ist, wird das gesamte Anwenderprogramm des Anwenderspeichers 14 geprüft, und,
wenn keine Anomalie vorliegt, der E/A-Aktualisierungsvorgang ausgeführt, nachdem
die E/A gespeichert sind. Wenn eine anomale Situation festgestellt
wird, werden eine Wiederherstellung des Anwenderprogrammspeichers 14 und
eine Wiederherstellung des E/A-Speichers
auf der Grundlage der E/A-Daten ausgeführt.
-
In Obigem war es das Anwenderprogramm, das
geprüft
wurde, wie etwa, wenn das Anwenderprogramm des Anwenderspeichers 14 und
dasjenige des Sicherungsspeichers 15 verglichen wurden,
es ist aber bevorzugt, eingestellte Werte, wie etwa die im E/A-Speicher 16 gespeicherten
Parameter auf dem Sicherungsspeicher 15 zu speichern und,
wenn eine Speicherprüfung
erfolgt, auch den E/A-Speicher 16 zu
prüfen,
um das Vorhandensein oder Nichtvorhandensein zerstörter Daten
(Anomalie im Speicher) festzustellen und eine automatische Wiederherstellung
des Speichers durchzuführen,
wenn ein anomaler Zustand festgestellt wird.
-
Der Vergleich zwischen dem Anwenderprogramm
des Anwenderspeichers 14 und dem Anwenderprogramm des Sicherungsspeichers 15 wird,
wie oben erwähnt,
durch Vergleichen der Daten in diesen Programmen, wo sie gespeichert
sind, durchgeführt. Wenn
das Anwenderprogramm im Anwenderspeicher 14 und im Sicherungsspeicher 15 gespeichert ist,
können
die berechneten Größen der
Bereiche zu ihrer Speicherung auch gespeichert werden, und so, dass
die Daten zu diesen Bereichsgrößen verglichen werden
können.
In diesem Fall kann der Sicherungsspeicher 15 ein Speicher
sein, der bereits in der Einheit enthalten ist, oder ein lösbarer Speicher,
wie etwa eine Speicherkarte.
-
Wie oben erläutert, kann eine Zerstörung von Daten
im Speicher schnell und genau festgestellt werden und, wenn sie
festgestellt wird, der Speicher gemäß dieser Erfindung automatisch
wiederhergestellt werden, während
das Arbeiten der SPS fortgesetzt wird.
-
Als weiteres Beispiel können zwei
(erstes und zweites) Benutzerprogramme, die dem gleichen Objektcode
entsprechen, in unterschiedlichen Bereichen innerhalb des Anwenderspeichers 14 gespeichert
werden. In einem solchen Fall liest, wenn die SPS mit der Ausführung des
Programms beginnt, der ASIC 17 die zwei Programme in Einheiten
von Befehlen aus und vergleicht sie. Im Falle einer Übereinstimmung
wird der Befehl ausgeführt.
Im Falle einer Nichtübereinstimmung
berichtet der ASIC 17 der MPU 12 über die
Anomalie. Mit Erhalt dieses Berichts stellt die MPU 12 das
Anwenderprogramm wieder her, indem sie die inkorrekten Daten in
den beiden Anwenderprogrammen unter Verwendung der Daten an der
Adresse des Sicherungsspeichers 15, die der Adresse entspricht,
an der die Nichtübereinstimmung aufgefunden
wurde, umschreibt. Nach Wiederherstellung des Anwenderprogramms
gestattet die MPU 12 dem ASIC 17 seinen Vergleichsvorgang
wieder aufzunehmen. Dieser Vorgang des ASIC 17 und der MPU 12 wird
vom Anfang bis zum Ende des Anwenderprogramms fortgesetzt. Ein solcher
Vorgang ermöglicht
es, ein Programm über
den Objektcode ohne inkorrekte Daten auszuführen.
-
Hinsichtlich des oben beschriebenen
Beispiels brauchen die beiden (erstes und zweites) Anwenderprogramme
nicht beide auf dem Anwenderspeicher 14 gespeichert zu
werden. Sie können
auf getrennten Speichern, auf die der ASIC 17 zugreifen kann,
gespeichert sein.
-
Als weiteres Beispiel kann die SPS-Einheit so
eingerichtet sein, dass sie unterschiedliche Operationsmoden, abhängig davon,
ob die vorgenannte Funktion der automatischen Wiederherstellung
einer Anzahl von Speichern. Normalerweise ist eine Einheit für eine SPS
mit einem Speicher zur Einstellung ihrer Operationen versehen. Gemäß diesem
Beispiel ist ein neuer Bereich am Speicher zur Spezifizierung von
Operationsmoden zur Durchführung
und Nichtdurchführung
der automatischen Wiederherstellung vorgesehen. Wenn der Modus zur
Durchführung
der automatischen Speicherwiederherstellung, kann der Anwender spezifizieren,
welche der Anzahl der automatischen Speicherwiederherstellungsfunktionen durchzuführen ist.
Der Anwender der SPS-Einheit kann ein geeignetes Werkzeug verwenden,
bevor er die Einheit betätigt,
um spezifizierte Daten in diesem Speicherbereich zu setzen, um anzugeben,
ob die automatische Speicherwiederherstellungsfunktion zu verwenden
ist oder nicht, und, wenn sie zu verwenden ist, welche der automatische
Wiederherstellungsfunktionen zu verwenden ist.
-
Die SPS-Einheit prüft den Bereich
vor der Ausführung
des Anwenderprogramms, um den vom Anwender spezifizierten Operationsmodus
zur automatischen Speicherwiederherstellung zu ermitteln. Wenn ermittelt
worden ist, dass der Anwender den Modus, der die Funktion zur automatischen
Speicherwiederherstellung nicht verwendet, spezifiziert hat, und
eine anomale Situation während
seines Arbeitens angetroffen wird, wird das Auftreten der anoma len
Situation berichtet, und ihr die Arbeiten angehalten, ohne ihre
automatische Speicherwiederherstellungsfunktion auszuführen. Wenn
ermittelt wird, dass der Anwender den Modus zur Verwendung der Funktion
für eine
automatische Speicherwiederherstellung spezifiziert hat, und eine
anomale Situation während
ihres Arbeitens angetroffen wird, übernimmt sie es, die spezifizierten
automatischen Speicherwiederherstellungsoperationen durchzuführen. Einzelheiten,
wie die automatische Speicherwiederherstellung ausgeführt wird,
werden weggelassen, da die oben beschriebenen Verfahren angewendet
werden können.
-
Betreffend das Obige braucht die
Spezifikation des Modus zur Ausführung
der automatischen Speicherwiederherstellung nicht durch Setzen bestimmter
Daten in einem spezifizierten Speicherbereich innerhalb dieser SPS-Einheit
vorgesehen sein. Alternativ kann dies erfolgen, indem ein speziell
vorgesehener Befehl zur Spezifizierung des Modus für die automatische
Speicherwiederherstellung am Beginn des Anwenderprogramms angeordnet
wird, so dass der Befehl ausgeführt
werden kann, den Operationsmodus auszuwählen. Bei einer so eingerichteten
SPS-Einheit kann bewirkt werden, dass sie die Operationen der automatische
Speicherwiederherstellung nur ausführt, wenn das System eine Verlängerung
der Zeit für
einen Zyklus, der mit dieser Operation für die automatische Speicherwiederherstellung
einhergeht, gestattet, aber nicht im Falle eines Systems, das eine
solche Zeitverlängerung
nicht gestattet. Anders ausgedrückt,
ist eine so eingerichtete SPS-Einheit sowohl für Systeme, die eine solche Zeitverlängerung
für einen
Zyklus, die mit der Ausführung
der automatischen Speicherwiederherstellung einhergeht, zulassen,
als auch für
Systeme, die eine solche Zeitverlängerung nicht zulassen, verwendbar.