-
Hintergrund der Erfindung
-
Diese
Erfindung betrifft eine programmierbare Steuerung, und insbesondere
eine programmierbare Steuerung, die dazu geeignet ist, gleichzeitig
ein peripheres Dienstverfahren (Ereignisverfahren) für eine periphere
Komponente wie z. B. einen Hostcomputer und eine Kommunikationseinheit
durchzuführen,
während
sie ein Anwenderprogramm oder ein Eingabe-/Ausgabe-Auffrischverfahren
durchführt,
so dass die Zykluszeit der CPU-Einheit der programmierbaren Steuerung
verringert werden kann und ihre Antwort verbessert wird. Die Erfindung
betrifft auch ein Verfahren zur Steuerung einer derartigen programmierbaren
Steuerung.
-
Im
Allgemeinen ist eine programmierbare Steuerung wie ein Aufbau aus
einer E/A-Einheit, die mit Sensoren, Schaltern und Stellgliedern
verbunden ist, einer CPU-Einheit zur Durchführung eines vorgewählten Anwenderprogramms
und einer Kommunikationseinheit zur Kommunikation mit einem Host-System über ein
Netzwerk strukturiert. Im Fall einer programmierbaren Steuerung
mittlerer oder geringer Größe ist die
CPU-Einheit mit einer Mikroprozessoreinheit (MPU) versehen, über die
Eingabesignale, etwa von einem Sensor, von der E/A-Einheit empfangen
werden, um in logischen Formeln im Anwenderprogramm verwendet zu
werden. Das Ergebnis einer derartigen Operation wird als ein Ausgabesignal
an die E/A-Einheit übertragen
und ein Stellglied oder ähnliches
dadurch angetrieben, um ein Produktionsgerät zu steuern. Die E/A-Daten
werden im E/A-Speicher der CPU-Einheit
gespeichert.
-
3 zeigt
eine Darstellung einer derartigen Verarbeitung durch die CPU-Einheit
einer programmierbaren Steuerung dieser Art. Wenn die Spannungsquelle
eingeschaltet wird, durchläuft
die programmierbare Steuerung eine Spannungseinschalt-(Initialisierungs-)Routine
(Schritt 301), darin eingeschlossen die Initialisierung
von Speichervorrichtungen und die Erkennung jeder montierten Einheit.
Als Nächstes
werden gemeinsame Verfahren durchgeführt, wobei eine Batterieanomalie überprüft wird,
um den Zustand der Stromversorgung festzustellen (Schritt 302).
Als Nächstes
werden Arbeitsabläufe
durchgeführt,
wie z. B. die Ausführung
eines Anwenderprogramms (Schritt 303). Für den ersten Zyklus
des Programms können
die Eingabesignale, die gespeichert wurden, als der Strom zuvor
abgeschaltet wurde, in Schritt 301 aufgerufen werden, so dass
das Verfahren als eine Fortsetzung von der Zeit der vorhergehenden
Abschaltung an gestartet werden kann. Alternativ können Operationen
gemäß den Initialisierungsdaten
von Schritt 301 durchgeführt werden. Als Nächstes wird
ein E/A-Auffrischverfahren
durchgeführt
(Schritt 304), wobei Eingabedaten von einer externen Steuervorrichtung
wie z. B. einem Schalter in den E/A-Speicher geschrieben werden können und
E/A-Daten, die auf der Grundlage des Ergebnisses einer Operation
aktualisiert wurden, an das Objekt der Steuerung ausgegeben werden
können.
Als Nächstes
wird ein peripheres Dienstverfahren (Ereignisverfahren) durchgeführt (Schritt 305), wie
z. B. der Austausch von Daten mit einem Werkzeug, das über ein
Netzwerk oder die Kommunikationseinheit angeschlossen ist. Danach
werden die Schritte 302–305 als zyklischer
Prozess wiederholt. Die Zeit, die von Schritt 302 bis Schritt 305 erforderlich
ist, wird im Allgemeinen als die Zykluszeit der CPU-Einheit bezeichnet.
-
Programmierbare
Steuerungen dieser Art werden auch als ein System programmierbarer
Steuerungen verwendet, das, wie in 1 gezeigt,
mit einem Host-System 401 strukturiert ist, das einen Personal-Computer,
eine Vielzahl von unterprogrammierbaren Computern (Unter-SPS) 403, 404, 405,
... und einen stammprogrammierbaren Computer (Stamm-SPS) 402 dazwischen
aufweisen kann, so dass viele Arten der Steuerung durchgeführt werden können. In
einem derartigen System sammelt die Stamm-SPS Daten von den Unter-SPS
und überträgt die gesammelten
Daten an das Host-System 401, so dass das Host-System 401 das
System als Ganzes überwachen
kann.
-
Wenn
eine programmierbare Steuerung der Art, die eine MPU aufweist, als
die Stamm-SPS verwendet wird, wenn ein System, wie in 4 gezeigt, zusammengesetzt
ist, führt
sie Vorgänge
aus, wie in 3 gezeigt, d. h. Schritte 302–305 pro
Zyklus. Da sie das periphere Dienstverfahren erst starten kann, wenn
die Schritte 302–304 abgeschlossen
sind, selbst wenn das Host-System oder die CPU-Einheit über die
Kommunikationseinheit ein peripheres Dienstverfahren (Ereignisverfahren)
mit hoher Priorität
durchführen
möchte,
muss das System auf die Zykluszeit für das periphere Dienstverfahren
warten. Mit anderen Worten kann keine schnelle Ereignisantwort erzielt
werden.
-
Um
die Zykluszeit zu verringern wird bekanntlich ein anwendungsspezifischer
integrierter Schaltkreis (ASIC) als dedizierte Hardwareschaltung an
der CPU-Einheit der programmierbaren Steuerung montiert, zusätzlich zu
einer MPU (ein Äquivalent
eines Mehrzweckprozessors). Eine anwendungsspezifische Steuervorrichtung
bedeutet eine Hardwareschaltung mit der Funktion der Ausführung eines
Teils von Programmen in einem Anwenderprogramm. Da die Durchführung durch
eine Hardwareschaltung erfolgt, arbeitet sie viel schneller als
ein Mehrzweckprozessor, der auf Software arbeitet. Wenn jedoch ein
komplizierter Anwendungsbefehl durchgeführt wird, wird es erforderlich,
eine dedizierte Hardwareschaltung für den Zweck zu entwickeln und
zu entwerfen, und es ist schwierig, sie auf einem ASIC zu realisieren.
Dementsprechend ist es nun allgemeine Praxis, einen ASIC herzustellen,
indem Hardwareschaltungen zur Ausführung einiger begrenzter Befehle
entwickelt und entworfen werden, die als Bit-Operationen und Basisbefehle
bezeichnet werden, d. h. einen ASIC zur Ausführung von Befehlen zu entwerfen,
die für
die Handhabung durch Hardware geeignet sind.
-
Andererseits
kann ein Mehrzweckprozessor wie z. B. eine MPU, die Softwareoperationen
durchführt,
nicht nur komplizierte Operationen erfordernde Befehle, die als
Anwendungs befehle bezeichnet werden, sondern auch Bit-Operationen
und grundlegende Befehle, die einfache Operationen darstellen, handhaben.
Die Geschwindigkeit seiner Softwareoperation ist jedoch nicht so
groß wie
die Geschwindigkeit einer Hardwareschaltung.
-
Die
Zeit, die erforderlich ist, um ein Anwenderprogramm durchzuführen, kann
mit einer programmierbareren Steuerung verringert werden, an der
Vorrichtungen beider Arten montiert sind. Dies ist deshalb der Fall,
da diejenigen im Anwenderprogramm, die durch eine anwendungsspezifische
Steuervorrichtung gehandhabt werden können, durch eine anwendungsspezifische
Steuervorrichtung und nicht durch einen Mehrzweckprozessor gehandhabt werden.
In der Praxis wird jeder Befehl in einem Anwenderprogramm untersucht,
und es wird entschieden, ob er durch eine anwendungsspezifische
Steuervorrichtung verarbeitet werden kann oder nicht. Wenn entschieden
wird, dass dies möglich
ist, wird er durch eine anwendungsspezifische Steuervorrichtung
verarbeitet. Wenn entschieden wird, dass dies nicht möglich ist,
wird er durch einen Mehrzweckprozessor verarbeitet. Obwohl die Zykluszeit
auf diese Weise verringert werden kann, erfolgt die Durchführung des
Anwenderprogramms, des E/A-Auffrischverfahrens und des Ereignisverfahrens
sequentiell in einer Reihe von zyklischen Operationen. Somit kann das
Ereignisverfahren nicht initiiert werden, außer die Durchführung des
Anwenderprogramms und des E/A-Auffrischverfahrens
ist abgeschlossen. Selbst wenn gewünscht wird, ein peripheres
Dienstverfahren mit hoher Priorität durchzuführen, kann dies nicht erfolgen,
und eine schnelle Ereignisantwort steht nicht zur Verfügung.
-
Zusammenfassung der Erfindung
-
Es
ist daher eine Aufgabe dieser Erfindung, die Antwortzeit einer programmierbaren
Steuerung, an der sowohl ein Mehrzweckprozessor als auch eine anwendungsspezifische
Steuervorrichtung montiert ist, zu verbessern, indem ermöglicht wird,
dass ein Ereignisverfahren gleichzeitig durch geführt wird, während gerade ein Anwenderprogramm
durchgeführt
werden kann.
-
Angesichts
der oben beschriebenen Aufgabe umfasst eine diese Erfindung verkörpernde
programmierbare Steuerung einen Mehrzweckprozessor und eine anwendungsspezifische
Steuervorrichtung, die so ausgelegt sind, dass der Mehrzweckprozessor
eingerichtet ist, die anwendungsspezifische Steuervorrichtung aufzufordern,
ein Anwenderprogramm auszuführen,
und die anwendungsspezifische Steuervorrichtung zu aktivieren und
einen peripheren Dienstprozess durchzuführen, während die anwendungsspezifische
Steuervorrichtung das erforderliche Anwenderprogramm ausführt, indem
sie das Anwenderprogramm liest und den Inhalt seiner Befehle sequentiell
aufruft und für
jeden Befehl festlegt, ob er von der anwendungsspezifischen Steuervorrichtung
durchgeführt
werden kann, wobei die anwendungspezifische Steuervorrichtung den
Mehrzweckprozessor auffordert, den Befehl auszuführen, wenn er von der anwendungsspezifischen
Steuervorrichtung als nicht durchführbar erkannt worden ist. Vorzugsweise
führt der
Mehrzweckprozessor, wenn er fordert, dass die anwendungsspezifische
Steuervorrichtung ein DMA-Übertragungsverfahren
in einem Eingabe-/Ausgabe-Auffrischverfahren ausführt, und
die anwendungsspezifische Steuervorrichtung aktiviert, den peripheren
Dienstprozess durch, während
die anwendungsspezifische Steuervorrichtung das geforderte DMA-Übertragungsverfahren
ausführt.
-
Diese
Erfindung betrifft auch Verfahren zur Steuerung einer programmierbaren
Steuerung, an der sowohl ein Mehrzweckprozessor als auch eine anwendungsspezifische
Steuervorrichtung montiert ist, wobei der Mehrzweckprozessor und
die anwendungsspezifische Steuervorrichtung so gestaltet sind, dass
der Mehrzweckprozessor eingerichtet ist, die anwendungsspezifische
Steuervorrichtung aufzufordern, ein Anwenderprogramm auszuführen, und die
anwendungsspezifische Steuervorrichtung zu aktivieren und einen
peripheren Dienstprozess auszuführen,
während
die anwendungsspezifische Steuervorrichtung das erforderliche Anwenderprogramm durchführt, indem
sie das Anwenderprogramm liest und den Inhalt seiner Befehle sequentiell
aufruft und für
jeden Befehl festlegt, ob er von der anwendungsspezifischen Steuervorrichtung
durchgeführt
werden kann, wobei die anwendungspezifische Steuervorrichtung den
Mehrzweckprozessor auffordert, den Befehl auszuführen, wenn er von der anwendungsspezifischen
Steuervorrichtung als nicht durchführbar erkannt worden ist. Vorzugsweise
führt der
Mehrzweckprozessor, wenn er fordert, dass die anwendungsspezifische
Steuervorrichtung ein DMA-Übertragungsverfahren
in einem Eingabe-/Ausgabe-Auffrischverfahren
ausführt,
und die anwendungsspezifische Steuervorrichtung aktiviert, den peripheren Dienstprozess
durch, während
die anwendungsspezifische Steuervorrichtung das erforderliche DMA-Übertragungsverfahren
ausführt.
-
In
Obigem kann der Mehrzweckprozessor eine MPU sein, die an der programmierbaren
Steuerung montiert ist, und die anwendungsspezifische Steuervorrichtung
kann ein dedizierter ASIC sein, der auf der programmierbaren Steuerung
montiert ist, um ein Anwenderprogramm durchzuführen.
-
Das "Ereignisverfahren" umfasst periphere Dienstverfahren
für periphere
Komponenten und Verfahren für
periphere Komponenten, wie z. B. ein Host-System und eine Kommunikationseinheit.
Das "Anwenderprogramm" kann Befehle enthalten,
die einen langen Zeitraum für
ihre Ausführung
erfordern. Wenn ein derartiger Befehl der anwendungsspezifischen
Steuervorrichtung übergeben
ist, gewinnt der Mehrzweckprozessor freie Zeit und kann ausreichend
Zeit für
die Durchführung
der Ereignisverarbeitung sicherstellen.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein Blockdiagramm der CPU-Einheit für eine programmierbare Steuerung.
-
2 ist
ein Zeitdiagramm zur Wiedergabe der internen Verarbeitung der die
in 1 gezeigten MPU, wenn der parallele Ausführungsmodus
der Operationen gewählt
wurde.
-
3 ist
ein Flussdiagramm der grundlegenden zyklischen Verfahren für die CPU-Einheit
einer programmierbaren Steuerung nach dem Stand der Technik.
-
4 ist
ein Blockdiagramm einer programmierbaren Steuerung nach dem Stand
der Technik.
-
Ausführliche
Beschreibung der Erfindung
-
Die
Erfindung wird nun anhand eines Beispiels beschrieben. 1 zeigt
die CPU-Einheit einer diese Erfindung verkörpernden programmierbaren Steuerung,
die eine Mikroprozessoreinheit (MPU als Mehrzweckprozessor) 101,
einen Nur-Lese-Speicher (ROM) 102, einen Direktzugriffspeicher
(RAM) 104, einen Anwenderspeicher 105, einen anwendungsspezifischen
integrierten Schaltkreis (ASIC als eine anwendungsspezifische Steuervorrichtung) 106,
einen E/A-Speicher 107 und
einen E/A-Bus 107 umfasst.
-
Die
MPU 101 ist eine Mikroprozessoreinheit zur Steuerung der
gesamten Operationen der CPU-Einheit und ist mit dem ROM 102,
dem RAM 104 und dem ASIC 106 durch einen internen
Bus verbunden ist, und ist dazu eingerichtet, ähnlich einer herkömmlichen
MPU, ein Anwenderprogramm, das E/A-Auffrischverfahren und ein Ereignisverfahren
zyklisch durchzuführen.
-
Der
ROM 102 ist ein Speicher zum Speichernder System-Firmware dieser CPU-Einheit.
Er speichert auch die Programme, die mit den Operationen des E/A–Auffrisch-
und Ereignisverfahrens in Beziehung stehen, ebenso wie die Anwenderprogrammbefehle,
die von der MPU 101 durchgeführt werden. Die Bezugszahl 103 gibt
einen Sicherungs-Anwenderspeicher an. Der RAM 104 wird
als ein Systemwerk von der CPU-Einheit verwendet und kann dazu verwendet
werden, Daten zu speichern, die vorübergehend verwendet werden
können,
wenn die obenerwähnte
System-Firmware arbeitet, wie z. B. Zwischendaten in einer Operation.
Der Anwenderspeicher 105 dient dazu, um das Anwenderprogramm
zu speichern, das der Anwender erzeugt, indem er ein Tool und eine
SPS-Sprache verwendet, wie z. B. die Leitersprache. Der ASIC 106 ist
mit der MPU 101, dem ROM 102 und dem RAM 103 über einen
internen Bus und direkt mit dem Anwenderspeicher 105 und
den E/A-Speicher 107 verbunden.
Er wird auch mit dem E/A-Bus 108 verbunden und ist dazu
eingerichtet, Buskommunikationen mit der E/A-Einheit und der Kommunikationseinheit
durchzuführen.
Er ist eine dedizierte Steuervorrichtung, die Befehle aus dem Anwenderprogramm
liest, das im Anwenderspeicher 105 gespeichert ist, und
Vorgänge
wie z. B. die Beurteilung, ob der Befehl, der gelesen wurde, vom
ASIC durchgeführt
werden kann oder nicht, Befehle durchführt, die vom ASIC durchgeführt werden
können,
die DMA-Übertragung
im E/A-Auffrischverfahren,
das Busschnittstellenverfahren für
den E/A-Bus 108 und das Regulierungsverfahren für den E/A-Speicher durchführt. Korrelierte Operationen
zwischen dem ASIC 106 und der MPU 101 werden unten
beschrieben. Der E/A-Speicher 107 hat
die Funktion, die E/A-Daten zu speichern, die für die Steuerung dieser programmierbaren
Steuerung erforderlich sind, d. h. die Eingabedaten, die verwendet
werden, wenn das Anwenderprogramm, das im Anwenderspeicher 105 gespeichert
ist, durchgeführt
wird, und die Ausgabedaten, die die Ergebnisse der Operationen darstellen.
Die Daten, die im E/A-Speicher 107 gespeichert sind, werden
erforderlich, wenn der ASIC 106 den Speicherzugriff mehr
als einmal mit der E/A-Einheit und der Kommunikationseinheit (nicht
gezeigt) reguliert, die über
die MPU 101, den ASIC 106 und den E/A-Bus 108 angeschlossen
ist.
-
Gemäß dem vorliegenden
Ausführungsbeispiel
ist ein Systemeinstellungsbereich innerhalb des E/A-Speichers 107 vorhanden,
um einen Operationsmodus dieser programmierbaren Steuerung zu spezifizieren.
Die Operationsmoden, die in diesem Bereich des E/A-Speichers gespeichert
sind, umfassen folgendes:
- (1) den normalen
Modus, und
- (2) den Parallelausführungsmodus.
-
Der
normale Modus ist derselbe wie der herkömmliche Modus, darin die Durchführung des
Anwenderprogramms (die unten beschrieben wird). Die Paralleldurchführung des
E/A-Auffrischverfahrens und
des Ereignisverfahrens erfolgt in diesem Modus nicht. Es ist der
Parallelausführungsmodus,
der die vorliegende Erfindung charakterisiert.
-
In
diesem Modus führt
zunächst
die MPU 101 das Ereignisverfahren durch, das gewöhnlich als eines
einer Reihe von zyklischen Verfahren durchgeführt wurde, während der
ASIC 106 das Anwenderprogramm durchführt. Mit anderen Worten wird
das Ereignisverfahren nicht innerhalb der Reihe von zyklischen Verfahren
und nach Abschluss des E/A-Auffrischverfahrens
durchgeführt,
sondern das Ereignisverfahren wird von der MPU 101 gleichzeitig,
während
der ASIC das Anwenderprogramm durchführt, durchgeführt. Somit
wird das Ereignisverfahren aus der Reihe von zyklischen Verfahren
herausgenommen, und das Anwenderprogramm und des Ereignisverfahren
werden gleichzeitig parallel durchgeführt. Zweitens erfolgt die herkömmliche
Durchführung
eines Ereig nisverfahrens durch die MPU 101, während der
ASIC 106 die DMA-Übertragung
innerhalb des E/A-Auffrischverfahrens durchführt. Mit anderen Worten wird
das Ereignisverfahren nicht nach dem Abschluss des E/A-Auffrischverfahrens
durchgeführt, das
Teil einer Reihe von zyklischen Verfahren ist, sondern es wird von
der MPU 101 durchgeführt,
während
der ASIC mit dem DMA-Übertragungsverfahren beschäftigt ist.
Somit werden die Durchführung
des Anwenderprogramms und die parallele Durchführung des E/A-Auffrischverfahrens
und des Ereignisverfahrens sequentiell wiederholt. Im Folgenden
wird eine programmierbare Steuerung, die beide dieser Merkmale aufweist,
erklärt.
-
Wenn
die programmierbare Steuerung gestartet wird, liest die MPU 101 den
Inhalt ein, der durch den Operationsmodus spezifiziert wird, der
im Systemeinstellungsbereich des E/A-Speichers 107 gespeichert
ist, und wählt
die interne Verarbeitung gemäß dem empfangenen
Oparationsmodus aus. 2 zeigt die interne Verarbeitung
durch die in 1 gezeigte MPU 101,
wenn der parallele Ausführungsmodus
ausgewählt
wurde.
-
Nachdem
ein gemeinsames Verfahren 201 ausgeführt wurde, und während des
Startverfahrens zur Ausführung
eines Befehls im Anwenderprogramm fordert die MPU 101 die
Durchführung
eines Befehls im Anwenderprogramm an, der den ASIC-Befehl 203 aktiviert.
Nach Empfang dieser Aufforderung liest der ASIC 106 das
Anwenderprogramm, das im Anwenderspeicher 105 gespeichert ist,
und ruft den Inhalt seiner Befehle sequentiell auf und legt für jeden
Befehl fest, ob er vom ASIC 106 durchgeführt werden
kann. Da der ASIC 106 so entwickelt und entworfen ist,
dass er in der Lage ist, viele Befehle durchzuführen, werden viele der Befehle
als durchführbar
erachtet und sequentiell vom ASIC 106 durchgeführt, wie
bei 203 in 2 gezeigt. Die Anforderung durch
die MPU 101 kann z. B. dadurch erfolgen, dass eine derartige
Anforderung in ein Register zur Aktivierung des ASIC 106 geschrieben
wird. Nachdem eine Anforderung an den ASIC 106 gestellt wurde,
wird die MPU 101 frei, andere Verfahren durchzuführen, solange
der ASIC 106 das Anwenderprogramm durchführt, und
verwendet diese Freiheit dazu, ein Ereignisverfahren 204 durchzuführen, wie
z. B. ein peripheres Ereignisverfahren.
-
Um
das Ereignisverfahren 204 ausführlicher zu erklären, überprüft die MPU 101 weiterhin
während
dieses Zeitraumes, ob eine Anforderung für ein Ereignisverfahren von
der Kommunikationseinheit (nicht gezeigt), die über den E/A-Bus 108 angeschlossen
ist, vorliegt oder nicht. Sie wartet weiterhin so lange, wie keine
derartige Anforderung vorliegt. Wenn eine Anforderung vorliegt, übernimmt
die MPU 101 ihre Durchführung.
Beispiele von Ereignisverfahren umfassen das Lesen eines Abschnittes
des Inhalts des E/A-Speichers 107,
um ihn an die Kommunikationseinheit oder ein Werkzeug zu übertragen, den
Empfang von E/A-Daten, von der Kommunikationseinheit durch die CPU-Einheit,
um sie in den E/A-Speicher zu schreiben, und das erneute Schreiben
von Daten in den E/A-Speicher von einem Werkzeug. Während eines
Zeitraums der Ereignisverarbeitung kann eine Vielzahl von Anforderungen
für die Ereignisverarbeitung
empfangen werden.
-
Der
Zugriff auf den E/A-Speicher während der
Zeit des Ereignisverfahrens wird vom ASIC 106 reguliert.
Dieses Regulierungsverfahren und die Durchführung des ASIC-Befehls 203 werden
in Reihe durchgeführt.
Mit anderen Worten führt,
nachdem festgelegt wurde, ob ein Befehl vom ASIC durchführbar ist,
und nach seiner Durchführung,
wenn er damit durchführbar
ist, der ASIC 106 das Regulierungsverfahren aus, falls
erforderlich. Nachdem das Regulierungsverfahren durchgeführt wurde,
liest der ASIC 106 den nächsten Befehl. Dieser Ausführungsmodus in
Reihe soll jedoch nicht den Umfang der Erfindung zu beschränken. Die
Einrichtung kann auch so getroffen werden, dass das Regulierungsverfahren
und die Durchführung
des ASIC-Befehls parallel erfolgen. In jedem Fall erfolgen die Durchführung eines
Ereignisverfahrens 204 durch die MPU 101 und diejenige des
Anwenderpro gramms (oder des ASIC-Befehls 203) durch den
ASIC 106 gleichzeitig.
-
Wenn
der ASIC 106 auf einen Befehl trifft, der sich als vom
ASIC nicht durchführbar
erweist, während
er damit fortfährt,
Befehle aus dem Anwenderprogramm zu lesen, wird die Durchführung des ASIC-Befehls 203 beendet,
und der ASIC 106 gibt ein dahingehendes Signal an das Register
aus und fordert die MPU 101 dazu auf, ihn auszuführen. Ausführlicher
erklärt,
erfolgt dies durch die Ausgabe eines Unterbrechungssignals vom ASIC 106 an
die MPU 101, und die MPU 101 stoppt beim Empfang der
Unterbrechung entweder die Durchführung des Ereignisverfahrens 204 oder
fährt damit
bis zu einem geeigneten Punkt fort und beginnt dann die Durchführung des
Befehls des Anwenderprogramms, der von der MPU 101 durchgeführt werden
muss. Dies wird durch Bezugszahl 205 in 2 gezeigt.
-
Wenn
die Verarbeitung eines Befehls (angegeben durch Bezugszahl 205 als "MPU-Befehl") abgeschlossen ist,
macht die MPU 101 eine weitere Anforderung bei dem ASIC 106.
Beim Empfang dieser Anforderung liest der ASIC 106 den
nächsten
Befehl aus dem Anwenderspeicher 105 und bestimmt, ob dieser
Befehl vom ASIC durchführbar
ist oder nicht. Wenn es sich um einen durchführbaren Befehl handelt, wird
er vom ASIC 106 als der ASIC-Befehl 206 durchgeführt. Der
ASIC-Befehl 206 wird fortgesetzt, bis der ASIC 106 auf
einen Befehl trifft, welcher als vom ASIC nicht durchführbar bestimmt
wird und von der MPU 101 durchgeführt werden sollte. Bis dahin nutzt
die MPU 101 dieses Zeitintervall mit der Durchführung eines
Ereignisverfahrens 207, wie z. B. eines peripheren Dienstverfahrens.
Zu diesem Zeitpunkt werden auch der ASIC-Befehl 206 und
das Ereignisverfahren 207 von der MPU 101 gleichzeitig
parallel durchgeführt.
Derartige parallele Durchführungen werden
wiederholt, bis alle Befehle des Anwenderprogramms ausgeführt sind.
-
Wenn
die Durchführung
des Anwenderprogramms abgeschlossen ist, führt die MPU ihr Endverfahren 208 aus
und beginnt die Durchführung
des E/A-Auffrischverfahrens 209.
-
Dabei
handelt es sich um ein Verfahren zur Aktualisierung des E/A-Speichers 107 durch
den Empfang von Daten von einer mit dem E/A-Bus verbundenen E/A-Einheit
(nicht gezeigt), um sie in den Eingabedatenbereich des E/A-Speichers 107 zu schreiben,
und die Übertragung
des Ergebnisses der Durchführung
des Anwenderprogramms, das im E/A-Speicher 107 aufgezeichnet
ist, an die E/A-Einheit als Ausgabedaten. Kurz gesagt, findet ein
Austausch von Daten zwischen dem E/A-Speicher 107 und einem
gemeinsamen Speicher auf der E/A-Einheit statt. Ein derartiger Austausch
kann auch mit einer Hochleistungseinheit, wie z. B. einer Analogbetriebseinheit
erfolgen.
-
Wenn
zu viele Daten vorhanden sind, um in diesem E/A-Auffrischverfahren 209 ausgetauscht
zu werden, aktiviert die MPU 101 die DMA-Übertragung 211,
die eine der Funktionen des ASIC 106 darstellt. Ausführlicher
erklärt,
ist die DMA-Übertragung 211 ein
Verfahren, das angewandt werden kann, wenn Daten im E/A-Speicher,
die aufgefrischt werden sollen, sich in gegenseitig angrenzenden
Bereichen befinden, um derartige Daten zusammen auf aneinander angrenzende
Bereiche in einem gemeinsamen Bereich einer externen Einheit über den
E/A-Bus zu übertragen.
Die DMA-Übertragung
wird auch dann verwendet, wenn Daten auf gegenseitig angrenzenden
Bereichen auf dem gemeinsamen Speicher einer externen Einheit auf
gegenseitig angrenzende Bereiche des E/A-Speichers 107 übertragen
werden. Dies wird insbesondere dann verwendet, wenn analoge Daten
mit einer Hochleistungseinheit ausgetauscht werden.
-
Wenn
ein E/A-Auffrischvorgang durchgeführt werden soll, legt die MPU 101 fest,
ob die Daten, die aufgefrischt werden sollen, für die DMA-Übertragung geeignet sind oder
nicht. Wenn die Daten einzeln aktualisiert werden sollen, ist die
DMA-Übertragung nicht
geeignet, und das E/A-Auffrischverfahren
wird von der MPU 101 selbst durchgeführt, wie durch Bezugszahl 209 angegeben.
Wenn es sich z. B. um eine zusammenfassende Datenauffrischung mit
einer analogen Verarbeitungseinheit handelt, wird der ASIC dazu aufgefordert,
das Verfahren durchzuführen,
wie durch Bezugszahl 211 angegeben, während die MPU 101 selbst
mit der Ausführung
eines Ereignisverfahrens 212, wie z. B. eines peripheren
Dienstverfahrens, beschäftigt
ist. Alternativ kann die DMA-Übertragung
extern spezifiziert sein, so dass die MPU 101 diese Spezifizierungen
erhält,
um eine Festlegung durchzuführen.
-
Somit
finden, während
die DMA-Übertragung
stattfindet, die Durchführung
der DMA-Übertragung 211 durch
den ASIC 106 und das Ereignisverfahren 212 durch
die MPU 101 parallel statt. Wenn die DMA-Übertragung 211 durch
den ASIC 106 abgeschlossen ist, wird eine Unterbrechung
vom ASIC 106 an die MPU 101 ausgegeben, und die
MPU 101 antwortet, indem sie die Durchführung der Ereignisverfahren
abbricht, oder beendet ein Ereignisverfahren, und schaltet dann
auf das E/A-Auffrischverfahren 213.
-
Wenn
Daten, die für
die DMA-Übertragung geeignet
sind, während
der Durchführung
des E/A-Auffrischverfahrens gefunden werden, überträgt die MPU 101 eine
Anforderung an den ASIC 106, und die Durchführung der
DMA-Übertragung
als ein ASIC-Befehl und die Durchführung eines Ereignisverfahrens
durch die MPU 101 werden gleichzeitig durchgeführt. Danach
werden das E/A-Auffrischverfahren und die parallele Durchführung der DMA-Übertragung
und des Ereignisverfahrens wiederholt, solange dies erforderlich
ist.
-
Wenn
das E/A-Auffrischverfahren vollständig beendet ist, werden die
peripheren Dienstverfahren (Ereignisverfahren), die gewöhnlich auf
herkömmliche
Weise durchgeführt
wurden, nicht durchgeführt, sondern
die Steuerung kehrt zur gemeinsamen Verarbeitung zurück. Mit
anderen Worten ist die Folge von zyklischen Verfahren durch diese
programmierbare Steuerung unterschiedlich, in Abhängigkeit
vom Operationsmodus. Ausführlicher
erklärt,
werden das gemeinsame Verfahren, die Ausführung des Anwenderprogramms,
die E/A-Auffrischung
und die Ereignisverarbeitung als eine Folge von zyklischen Verfahren
durchgeführt,
wenn die Steuerung im normalen Modus betrieben wird. Im parallelen
Durchfüh rungsmodus
werden andererseits das gemeinsame Verfahren, die Durchführung des
Anwenderprogramms und die E/A-Auffrischung
sequentiell wie eine Folge von zyklischen Verfahren wiederholt,
und die MPU 101 führt
ein Ereignisverfahren parallel aus, während der ASIC 106 einen
Befehl ausführt
oder das DMA-Übertragungsverfahren
durchführt.
-
Obwohl
oben erklärt
wurde, dass die Steuerung in diesem Betriebsmodus nicht zur Ausführung des
peripheren Dienstverfahrens zurückkehrt,
sondern zum gemeinsamen Verfahren, nachdem das E/A-Auffrischverfahren
abgeschlossen ist, kann die Situation z. B. anders sein, wenn eine
Speicherkarte mit der CPU-Einheit der programmierbaren Steuerung
verwendet wird. Eine derartige Speicherkarte verwendet einen kompakten
Flash-Speicher, der dazu verwendet werden kann, die Historie der
Durchführungen
durch die CPU-Einheit und Daten, die zu der Historie von Anomalien
in Beziehung stehen, zu speichern. Wenn versucht wird, derartige
Historiendaten durch ein externes Instrument abzurufen, ist gewöhnlich beträchtlich
mehr Zeit als für
den gemeinsamen Datenaustausch mit der Kommunikationseinheit erforderlich.
Wenn ein derartiges Verfahren als ein Ereignisverfahren (wie bei 204, 207 und 212 in 2 gezeigt)
durch das parallele Ausführungsformat,
wie oben erklärt,
durchgeführt
wird, kann es in der Mitte abgebrochen werden, so dass das Instrument
die gewünschten
Daten nicht sammeln kann oder das Verfahren nicht angemessen weitergehen kann,
da die Verarbeitungszeit zu lang wird. Angesichts einer derartigen
Möglichkeit
wird es vorgezogen, im Fall eines zeitaufwendigen Ereignisverfahrens
eine derartige Ereignisverarbeitung ausnahmsweise nach der Verarbeitung
der E/A-Auffrischung durchzuführen.
Gemäß einem
aktuellen Ausführungsbeispiels
führt die
MPU 101 ein derartig zeitaufwendiges Ereignisverfahren
während
des normalen Zeitraumes für
die Ereignisverarbeitung (wie z. B. 204, 207 und 212)
nicht durch, wenn sie die Anforderung für ihre Durchführung erhält, aber
sie erinnert sich daran, dass eine derartige Anforderung für eine zeitaufwendige
Anforderung gemacht wurde und führt
sie erst aus, nachdem das A/E-Auffrischverfahren am Ende des Zyklus
abgeschlossen ist.
-
Obwohl
zwei Betriebsmoden ((1) der normale Modus und (2) der parallele
Ausführungsmodus) oben
erwähnt
wurden, können
zusätzliche
Moden im Umfang dieser Erfindung eingeschlossen sein, wie z. B.:
- (3) ein dritter Modus, wobei nicht nur eine
Reihe von zyklischen Verfahren durchgeführt wird, wie im normalen Modus,
sondern auch die ASIC-Verfahren, wie bei 203 und 206 gezeigt,
die Ereignisverarbeitung, wie bei 204 und 207 gezeigt,
und die Durchführung
der DMA-Übertragung,
wie bei 211 gezeigt, und das Ereignisverfahren, wie bei 212 gezeigt,
ausgeführt
werden; und
- (4) ein vierter Modus, der dem zweiten und dem dritten Modus ähnelt, wobei
eine Ereignisverarbeitung, wie bei 212 gezeigt, durchgeführt wird, während das
DMA-Übertragungsverfahren,
wie in 211 gezeigt, stattfindet.
-
Wenn
diese Moden enthalten sind, kann die programmierbare Steuerung die
Zykluszeit ihrer CPU-Einheit verringern, da die MPU 101 Ereignisverfahren
durchführt,
während
der ASIC 106 in Betrieb ist, so dass sie ihre verfügbare Zeit
wirksam verwendet. Als Ergebnis dient die vorliegende Erfindung
dazu, die Antwortcharakteristik der programmierbaren Steuerung zu
verbessern. Es muss auch nicht erst erwähnt werden, dass die herkömmliche
Betriebsart weiterhin zur Verfügung
steht, wenn der normale Operationsmodus ausgewählt wird.