DE3610433A1 - Speicherprogrammierbares steuergeraet mit funktionsplaninterpreter - Google Patents
Speicherprogrammierbares steuergeraet mit funktionsplaninterpreterInfo
- Publication number
- DE3610433A1 DE3610433A1 DE19863610433 DE3610433A DE3610433A1 DE 3610433 A1 DE3610433 A1 DE 3610433A1 DE 19863610433 DE19863610433 DE 19863610433 DE 3610433 A DE3610433 A DE 3610433A DE 3610433 A1 DE3610433 A1 DE 3610433A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- ladder
- bit
- ladder program
- microprocessor
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13105—Two or more languages, ladder diagram or progression, basic program
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Description
rj 'mi
ALLEN-BRADLEY COMPANY INC., Milwaukee, Wisconsin, VStA *
Speicherprogrammierbares Steuergerät mit Punktionsplaninterpreter
Die Erfindung bezieht sich auf speicherprogrammierbare
Steuergeräte wie sie aus den US-PSn 3 810 118, 3 942 158, 4 165 534 und 4 442 504 bekannt sind.
Speicherprogrammierbare Steuergeräte sind typischerweise mit industriellen Anlagen wie Montagestraßen g
und Werkzeugmaschinen verbunden und dienen dazu, die , Anlagen in Abhängigkeit von einem gespeicherten Programm
sequentiell zu betätigen oder zu betreiben. Bei speicherprogrammierbaren Steuergeräten, wie sie aus
den oben genannten Patenten bekannt sind, ist das Steuerprogramm beispielsweise in einem Speicher gespeichert
und es enthält Anweisungen, die in sehr schneller Sequenz oder Aufeinanderfolge ausgelesen
und ausgeführt werden, um den Zustand von ausgewählten Sensor- oder Fühlervorrichtungen an der gesteuerten
Anlage zu überprüfen und ausgewählte Stell- oder Betätigungsvorrichtungen an der gesteuerten Anlage in Ab- *
hängigkeit vom Status eines oder mehrerer der über- \ prüften Fühlervorrichtungen zu erregen bzw. einzu- ^,
schalten oder zu entregen bzw. auszuschalten.
Der Prozessor in einem programmierbaren Steuergerät ist so ausgelegt, daß er äußerst schnell Anweisungen vom
programm!erbaren Steuergerättyp ausführen kann, die in
mittleren bis großen Steuergeräten nicht nur Anweisungen enthalten, welche die Manipulation von Einzelbit-Eingabe-
und -Ausgabe-Daten umfassen, sondern auch arithmetische Anweisungen, Dateihandhabungsanweisungen sowie
Anweisungen beinhalten, die Zeitgeber und Zähler, Ab- β
lauffolgeSteuerungen und andere komplexe Vorgänge be- -
treffen. Um sicherzustellen, daß das speicherprogrammierbare
Steuergerät sehr schnell auf eine Änderung im Status der Fühlervorrichtungen an der gesteuerten
Anlage ansprechen kann, ist es unbedingt erforderlich, daß das Steuergerät das Steuerprogramm wiederholt mit
einer sehr hohen Geschwindigkeit ausführt. Die Geschwindigkeit, mit der ein programmierbares Steuergerät
die Anweisungen in seinem Anweisungssatz ausführen
kann, sowie der Umfang oder die Größe des Steuerprogramms stellen die Hauptfaktoren dar, die für die Geschwindigkeit
entscheidend sind, mit der das speicherprogrammierbare Steuergerät wiederholt das Steuerprogramm
ausführen oder abfragen bzw. abtasten kann.
Vom Prozessor eines speicherprogrammierbaren Steuergeräts erwartet man, daß er gewisse wohlbekannte
Anweisungen vom speicherprogrammierbaren Steuergerättyp ausführen kann. Diese Anweisungen wurden in der Industrie
weitgehend standardisiert, und sie können direkt den Elementen eines auch mit "Ladder"-Diagramm bezeichneten
Kontaktplans zugeordnet werden, der von Steuer- und Regelungsfachleuten leicht verstanden wird.
Programmierungsvorrichtungen, wie sie aus den US-PSn 3 798 612, 3 813 649 und 4 070 702 bekannt sind, dienen
zur Unterstützung des Anwenders bei der Entwicklung und Editierung von Kontaktplan-Steuerprogrammen, die
aus den genannten Anweisungen vom programmierbaren Steuergerättyp bestehen.
Während Kontaktplansteuerprogramme für relativ kleine und mittlere Steueraufgaben leicht und einfach
zu entwickeln sowie zu editieren sind, werden derartige Programme für großangelegte Steuerungsaufgaben schwerfällig und ineffizient. Große Kontaktplansteuerprogram-
me sind schwierig zu verstehen und bei der Fehlersuche schwierig zu handhaben, und ihre Ausführung erfordert
auch eine sehr lange Zeit.
Die Erfindung zielt daher auf einen Prozessor für k
ein speicherprogrammierbares Steuergerät ab, der eine jj
Vielzahl separater Kontaktplansteuerprogramme speichern |
kann, die über ein gespeichertes Strukturplanprogramm \
miteinander in logischer Beziehung stehen. Der Prozessor j
ist derart betreibbar, daß er das gespeicherte Struktur- \
planprogramm ausführen kann, das festlegt, welches der I
gespeicherten Leiter(Ladder)- oder Kontaktplanprogram- j
me wiederholt vom Prozessor zu irgendeinem Zeitpunkt
10 ausgeführt wird.
Der Erfindung liegt die allgemeine Aufgabe zu- J gründe, große Steuerungsaufgaben einfacher, leichter !
und schneller zu handhaben und auch den Programmie- :
rungsaufwand zu vermindern. Der Erfindung liegt die ί
Erkenntnis zugrunde, daß große Steuerungsaufgaben für i gewöhnlich in separate Steuerungsschritte aufgebrochen <
werden können, die, während die gesteuerte Maschine :
oder der gesteuerte Prozeß durch ihre bzw. seine Be-
triebszustände voranschreitet, in einer sequentiellen ;
Aufeinanderfolge ausführbar sind. Jeder Steuerschritt
ist definiert durch ein getrennt ausführbares Leiter-(Ladder)- oder Kontaktplanprogramm, das leicht zu verstehen ist und das mit einer sehr hohen Abfrage- oder ^ Abtastgeschwindigkeit ausgeführt werden kann. Die
ist definiert durch ein getrennt ausführbares Leiter-(Ladder)- oder Kontaktplanprogramm, das leicht zu verstehen ist und das mit einer sehr hohen Abfrage- oder ^ Abtastgeschwindigkeit ausgeführt werden kann. Die
Sequenz, in der die separaten Steuer schritte ausgeführt ,;
werden, ist durch das Strukturplanprogramm definiert, ; bei dem es sich um einen geneüfllen Ausdruck bezüglich
der Art und Weise handelt, wie die gesteuerte Maschine [ oder der gesteuerte Prozeß betätigt oder betrieben werden muß. Der Anwender kann daher unter Verwendung von
Strukturplangestaltungen die generelle Art und Weise
definieren, in der die Maschine oder der Prozeß zu betreiben ist, und dann die Einzelbetriebsweise der Ma-
der Art und Weise handelt, wie die gesteuerte Maschine [ oder der gesteuerte Prozeß betätigt oder betrieben werden muß. Der Anwender kann daher unter Verwendung von
Strukturplangestaltungen die generelle Art und Weise
definieren, in der die Maschine oder der Prozeß zu betreiben ist, und dann die Einzelbetriebsweise der Ma-
schine oder des Prozesses in separaten, leicht zu handhabenden Leiter- oder Kontaktplanprogrammen definieren»
Die erfindungsgemäße Aufgabe umfaßt auch die
Erhöhung der Geschwindigkeit, mit der der Prozessor das Anwendersteuerprogramm ausführen kann. Zur Lösung
dieser Aufgabe trägt bei, daß das Steuerprogramm in separat ausführbare Leiter- oder Kontaktplanprogramme
aufgeteilt wird und vorzugsweise nur solche Kontaktplanprogramme ausgeführt werden, die zum gegenwärtigen
Zeitpunkt erforderlich sind. Anstatt der Ausführung eines einzigen großen Kontaktplanprogramms schafft
somit die Erfindung die Möglichkeit, mit einer viel höheren Abtastgeschwindigkeit ein oder mehrere kleine
Kontaktplanprogramme auszuführen.
Vorzugsweise zielt die Erfindung auch darauf ab,
>» 15 die Geschwindigkeit zu erhöhen, mit der der Prozessor
ein Leiter- oder Kontaktplanprogramm ausführen kann. Dies wird durch die Verwendung eines Bit-Prozessors
erreicht, der in einer solchen Weise betreibbar ist, daß er einen ausgewählten Teilsatz von bitorientierten
Anweisungen mit sehr hoher Geschwindigkeit ausführen kann, und daß ein programmierter Mikroprozessor bereitsteht,
diejenigen anderen Anweisungen im Leiter- oder Kontaktplanprogrammanweisungssatz auszuführen, die der
Bit-Prozessor nicht ausführen kann. Im Gegensatz zu herkömmlichen Prozessoren, die festverdrahtete Bit-Prozessorschaltungen
benutzen, um programmierten Mikroprozessoren zu assistieren, fährt der nach der Erfindung
vorgesehene Bit-Prozessor damit fort, Steueranweisungen so lange auszuführen, bis er auf eine An-Weisung
trifft, die er nicht ausführen kann. Erst dann veranlaßt er den Transfer der Führung oder Kontrolle
zurück zum Mikroprozessor. Da nach der Statistik 75%
bis 95% der tatsächlichen Leiter- oder Kontaktplanprogramme aus Einzelbitanweisungen bestehen, die von einem
Bit-Prozessor ausführbar sind, wird die Abfrage- oder Abtastrate in den meisten Fällen dadurch beträchtlich
* erhöht, daß der Bit-Prozessor die Führung oder Kon-
-11- ■' ■ *
trolle der Ge samt steuerung behält. Ä,
Zusammenfassend 1st in einem speicherprogrammierbaren Steuergerät nach der Erfindung ein Anwendersteuerprogramm
gespeichert, das aus einer Vielzahl herkömmlicher Kontaktplanprogramme und einem Strukturplanprogramm
besteht. Ein Mikroprozessor führt eine Strukturplaninterpretierroutine aus, um das Strukturplanprogramm
zu interpretieren und auf diese Weise eine Aktivzustandsliste zu erstellen, die diejenigen Kontaktplanprogramme
anzeigt, welche ausgeführt werden sollen. Derselbe Mikroprozessor führt auch mit der Hilfe eines
Bit-Prozessors die Kontaktplanprogramme aus, die von
der Aktivzustandsliste angezeigt werden, um eine mit dem speicherprogrammierbaren Steuergerät verbundene *
Maschine zu steuern.
Die vorstehenden und weiteren Ziele und Vorteile der Erfindung können der folgenden Beschreibung entnommen
werden. In dieser Beschreibung wird auch Bezug auf Zeichnungen genommen, an Hand von denen ein bevorzugtes
Ausführungsbeispiel der Erfindung beschrieben ist. Es zeigt:
F I G . 1 eine perspektivische Ansicht eines speicherprogrammierbaren Steuergeräts, das von der
Erfindung Gebrauch mach,
F I G . 1A ein schematisches Blockschaltbild eines Prozessor-Bausteins, der einen Teil der Steuergeräts
nach FIG. 1 bildet,
F I G . 2 ein elektrisches Schaltschema eines Steuerteils, der Teil des Prozessor-Bausteins nach
FIG. 1 bildet, I
F I G . 3 ein elektrisches Schaltschema eines Orts-Eingabe/Ausgabe-Teils des Prozessor-Bausteins
nach FIG. 1A,
F I G . 4 ein elektrisches Schaltschema eines Kommunikationsteils des Prozessor-Bausteins nach
FIG. 1A,
FIG. 5A ein elektrisches Schaltschema eines
Bit-Prozessors, der Teil des Steuerteils nach FIG. 2
bildet,
F I G . 5B ein elektrisches Schaltschema einer Logikeinheit, die Teil des Bit-Prozessors nach FIG. 5A
bildet,
F I G . 5C ein Zeitdiagramm, das zur Erläuterung der Betriebsweise der Steuerschaltung nach FIG. 5A
dient,
F I G . 6 eine Speicherabbildung eines Direktzugriffsspeichers, der Teil des Steuerteils nach
FIG. 2 bildet,
F I G . 7 bis 9 schematische Darstellungen von Datenstrukturen, die im Direktzugriffsspeicher der
Steuerteils nach FIG. 2 gespeichert sind, FIG. 10 ein Flußdiagramm eines Exekutivprogramms,
das vom Steuerteil nach FIG. 2 ausgeführt wird,
FIG. 11 ein Flußdiagramm eines Strukturplaninterpretierprogramms,
das Teil des Exekutivprogramms nach FIG. 10 bildet,
FIG. 12A bis 12C schematische Darstellungen von
Datenstrukturen, die vom Programm nach FIG. 11 verwendet werden und die in dem Direktzugriffsspeicher des Steuerteils
nach FIG. 2 gespeichert sind,
FIG. 13 ein Flußdiagramm einer Leiter- oder Kontaktplanprogramminterpretierroutine,
die Teil des Programms nach FIG. 10 bildet,
FIG. 14 eine Speicherabbildung des Direktzugriffsspeichers,
der Teil des Orts-E/A-Teils nach FIG.
bildet,
F I G . 15 eine Speicherabbildung des Direktzugriffs-Speichers,
der Teil des Kommunikationsteils nach FIG. bildet,
-13- ;
F I G . 16 ein Flußdiagramm einer 1O-ms-Unterbrecungsbedienungsroutine,
die vom Steuerteil nach FIG. 2 ausgeführt wird,
FIG, 17 ein Flußdiagramm eines Schedulerprogramms,
das vom Mikroprozessor im Kommunikationsteil nach FIG. 4 ausgeführt wird,
FIG. 18 ein Flußdiagramm einer 10-ms-Unterbrechungsbedienungsroutine,
die vom Mikroprozessor im Kommunikationsteil nach FIG. 4 ausgeführt wird, ;
FIG.19 ein Flußdiagramm einer weiteren Unterbrechungsbedienungsroutine,
die vom Mikroprozessor im Kommunikationsteil nach FIG. 4 ausgeführt wird,
F I G . 20 ein Flußdiagramm des Hauptprogramms, das vom Mikrocomputer ausgeführt wird, der Teil des
Kommunikationsteils nach FIG. 4 bildet, ^
FIG. 21 ein Flußdiagramm einer Eingabe/Ausgabe-Gestellunterbrechungsbedienungsroutine,
die vom Mikrocomputer im Kommunikationsteil nach FIG. 4 ausgeführt wird,
F I G . 22 ein Flußdiagramm einer Serienkanalunterbrechungsbedienungsroutine,
die vom Mikrocomputer im Kommunikationsteil nach FIG. 4 ausgeführt wird,
F I G . 23 eine Bilddarstellung einer beispielsweise vom speicherprogrammierbaren Steuergerät nach
FIG. 1 gesteuerten Maschine,
F I G . 24 eine Schemadarstellung eines Strukturplanprogramms der als Beispiel dargestellten Maschine ^
nach FIG. 23 und
F I G . 25 eine Schemadarstellung des gespeicherten Strukturplanprogramms, das der Darstellung nach FIG. 24
entspricht.
Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung
Nach FIG. 1 ist ein speicherprogrammierbares Steuergerät, das von der Erfindung Gebrauch macht,
in einem Gestell 1 untergebracht, das eine Reihe von Schlitzen zur Aufnahme von Bausteinen (Modulen) aufweist.
Die Bausteine sind an eine Mutterschaltungsplatte
angeschlossen, die sich längs der Rückseite des Gestells 1 erstreckt und dort eine rückseitige
Verbindungsebene vorsieht. Die Bausteine umfassen einen Energieversorgungs-Baustein 2, einen Prozessor-Baustein
3 und bis zu acht Eingabe/Ausgabe-Bausteine 4. Die E/A-Bausteine 4 können verschiedenartig
ausgebildet sein und beispielsweise Bausteine mit gleichstromführenden Eingängen oder Ausgängen,
wechselstromführenden Eingängen oder Ausgängen sowie analogen Eingängen oder Ausgängen umfassen und auch
in Steuerketten oder Regelschleifen einbezogene Positionier-Bausteine
sein. Bezüglich des genauen Aufbaus des Gestells 1 wird auf die US-PS 4 151 580 verwiesen.
Der Prozessor-Baustein 3 ist über ein Kabel 5 mit einem Programmierungsgerät 6 verbunden. Das Programmierungsgerät
6 enthält eine Tastatur 7, mit deren Hilfe der Anwender Daten zur Programmierung des Prozessor-Bausteins
3, zum Betreiben des Prozessor-Bausteins
3 oder zum Überwachen des Prozessorbetriebs eingeben kann. Ein Kathodenstrahlröhren-Bildschirm
dient zur Anzeige alphanumerischer Daten sowie von Kontaktplandarstellungen von Anwendersteuerprogrammen.
In ein Diskettenlaufwerk 9 kann eine Diskette eingesetzt werden, die zum Speichern von Programmen und
Daten dient. Bezüglich weiterer Einzelheiten eines geeigneten industriellen Anschlußgeräts kann auf die
US-PS 4 326 193 verwiesen werden.
Der Prozessor-Baustein 3 kann auch über ein Kabel *
10 mit einer Fern-Eingabe/Ausgabe-Einheit oder einem
Fern-E/A-Gestell 11 verbunden sein. Das Fern-E/A-Gestell
11 hat einen ähnlichen Aufbau wie das Gestell 1 und
enthält ein ähnliches Sortiment von E/A-Bausteinen 4, die über eine eine rückseitige Verbindungsebene bildende
Mutterschaltungsplatte mit einem E/A-Adapter-Baustein 12 verbunden sind. Der E/A-Adapter-Baustein ist
in der US-PS 4 413 319 beschrieben und seine Funktion besteht darin, zwischen den E/A-Bausteinen 4 des Gestells
11 und dem Prozessor-Baustein 3 des Gestells 1 Daten zu übermitteln. Ähnliche Fern-E/A-Gestelle 11 ^
können an ein Kabel 13 angeschlossen sein, das zum E/A-Adapter-Baustein 12 führt. *
Wie weiter unten noch im einzelnen erläutert wird,
gibt der Anwender ein Steuerprogramm in den Speicher des Prozessor-Bausteins 3 über das Programmierungsgerät
6 ein. Der Prozessor wird dann in die Betriebsart "RUN" gebracht und führt daraufhin das gespeicherte
Steuerprogramm wiederholt aus. Dabei werden in Abhängigkeit vom Zustand von Eingabegeräten, die mit den
Eingabe-Bausteinen 4 verbunden sind, Ausgabegeräte betrieben, die mit den Ausgabe-Bausteinen 4 in den Ge- *'
stellen 1 und 11 verbunden sind. Da sich der Zustand bestimmter Eingabegeräte mehrmals pro Sekunde ändern *
kann, ist es dringendst geboten, daß der Prozessor-Baustein 3 über eine hinreichend hohe Verarbeitungsleistung verfügt, damit er das gespeicherte Steuerpro-
gramm äuBerst schnell ausführen kann. Da weiterhin eine gro3e Anzahl und Vielfalt von Eingabe- und Ausgabe-Geräten
mit den Gestellen 1 und 11 verbunden werden können, so daß auch komplexe Maschinen oder Prozesse
betrieben bzw. gesteuert werden können, ist es ferner dringendst geboten, daß das Steuerprogramm mit Hilfe
einer Programmiersprache entwickelt werden kann, die -*
vom Anwender leicht verstanden wird. Auf die Erreichung
dieser beiden Konstruktionsziele ist der im Rahmen der
Erfindung vorgesehene Prozessor-Baustein 3 besonders
abgestellt.
5 HARDWARE
5 HARDWARE
An Hand von FIG. 1A sowie 2 bis 4 wird dargelegt,
daß der Prozessor-Baustein 3 in logischer Hinsicht in drei Teile aufgeteilt ist: Ein in FIG. 2 gezeigtes
Steuerteil 3A, ein in FIG. 4 gezeigtes Kommunikationsteil 3C und ein in FIG. 3 gezeigtes Orts-E/A-Teil 3B.
Das Steuerteil 3A ist in erster Linie verantwortlich für die Speicherung und Ausführung des Steuerprogramms
des Anwenders. Das Kommunikationsteil 3C ist vorwiegend verantwortlich für die Kommunikation mit dem
Programmierungsgerät 6 und den Fern-E/A-Gestellen 11.
Die Hauptfunktionen des Orts-E/A-Teilε 3B sind die
Kommunikation mit den E/A-Bausteinen 4 des Gestells 1
und die Verbindung des Kommunikationsteils 3C mit dem Steuerteil 3A. Jedes dieser Teile des Prozessor-Bausteins
3 wird im folgenden im einzelnen erläutert.
Wie aus FIG. 2 ersichtlich, ist das Steuerteil 3A um einen 16-Bit-Mikroprozessor 20 herum aufgebaut, der
einen 20-adrigen Adreßbus 21 und einen 8-adrigen Datenbus 22 ansteuert. Der Mikroprozessor 20 führt in einem
Festwertspeicher 23 gespeicherte Maschinensprachanweisungen aus, und zwar zur Durchführung der darin enthaltenen
Funktionen. Diese Maschinensprachanweisungen werden durch einen Programmzähler im Mikroprozessor 20
adressiert und aus der adressierten Zeile des Festwertspeichers (ROM) 23 ausgelesen, wenn eine Freigabesteuerleitung
24 und eine Lesesteuerleitung (RD) 25 aktiv sind. Die abgerufene Anweisung wird vom Mikroprozessor
20 decodiert und ausgeführt zwecks Vornahme der angegebenen Funktion. Die in Abhängigkeit von der Ausführung
dieser Maschinensprachanweisungen oder "Firmware"
durchgeführten Funktionen als auch die Organisation der Firmware wird unten in weiteren Einzelheiten beschrieben.
Bezüglich einer genaueren Erläuterung des Maschinensprachanweisungssatzes als auch des Aufbaus
und der Arbeitsweise des Mikroprozessors 20 wird auf eine Broschüre mit dem Titel "MC68008 16-Bit Microprocessor
With 8-Bit Data Bus", veröffentlicht 1982 von Motorola, Inc., verwiesen.
Es können auch Daten aus anderen Elementen des Prozessor-Bausteins 3f die mit den Bussen 21 und 22
verbunden sind, ausgelesen oder in diese Elemente eingeschrieben werden. Das jeweilige Element wird von
einer Decodierschaltung 26 freigegeben, die Adreßdaten vom Adreßbus 21 sowie Steuersignale von einem
Steuerbus 27 erhält, der vom Mikroprozessor 20 angesteuert wird. Die Decodierschaltung 26 erhält auch
ein Signal von einer R/W-Steuerleitung 28, die entweder vom Mikroprozessor 20 oder von einem separaten
Bit-Prozessor 30 angesteuert werden kann. Die Decodierschaltung 26 erhält noch eine Reihe anderer Eingangssignale,
die im einzelnen noch beschrieben werden. Zusätzlich zur RD-Steuerleitung 25 und zur
ROM-Freigabesteuerleitung 24 steuert die Decodierschaltung 26 eine Schreibfreigabesteuerleitung 31>
eine RAM-Freigabesteuerleitung 32 und eine Bit-Prozessor-Freigabeleitung 33 an. Die übrigen Eingänge
und Ausgänge der Decodierschaltung 26 werden weiter unten in Verbindung mit dem Orts-E/A-Teil 3B beschrieben.
Im Anhang A ist der Speicherplatz angegeben, der von den Elementen besetzt ist, die von der
Decodierschaltung 26 freigegeben werden.
Ein Direktzugriffsspeicher (RAM) 35 ist mit den Bussen 21 und 22 verbunden. Ein 8-Bit-Byte an Daten
kann aus einer adressierten Zeile des RAM 35 ausgelesen
oder in eine adressierte Zeile eingeschrieben werden,
wenn die RAM-Freigabesteuerleitung 32 aktiv ist. Der
RAM 35 speichert eine Vielzahl von Datenstrukturen, die weiter unten noch im einzelnen beschrieben werden.
Die meisten dieser Strukturen bilden allerdings Teil eines bei 37 angedeuteten Anwendersteuerprogramms oder
einer bei 38 angedeuteten Datentabelle. Das Anwendersteuerprogramm enthält ein oder mehrere Leiter(ladder)-
oder Kontaktplanprogramme, die aus Anweisungen bestehen, mit denen der Anwender speicherprogrammierbarer
Steuergeräte vertraut ist und die über das Programmierungsgerät 6 in den RAM 35 geladen werden. Das Anwendersteuerprogramm
37 enthält auch ein Strukturplanprogramm (structure chart program), das einnalig ist,
und im einzelnen weiter unten noch beschrieben wird. Der Mikroprozessor 20 führt das Strukturplanprogramm
aus und, in Abhängigkeit von dessen Typ oder Art, wird eine Leiter- oder Kontaktplan-Programmanweisung entweder
vom Mikroprozessor 20 oder vom Bit-Prozessor 30 ausgeführt, wie es noch im einzelnen weiter unten
beschrieben wird.
Bei der Ausführung einer Steuerprogrammanweisung benutzt der Mikroprozessor 20 in der Anweisung einen
Operationscode, um eine entsprechende Maschinensprachinterpreterroutine zu lokalisieren, die im ROM 23
gespeichert ist. Der Mikroprozessor 20 führt somit Leiterprogrammanweisungen dadurch aus, daß er entsprechende
Interpreterroutinen ausführt, die im ROM 23 gespeichert sind. Diese Interpretationstechnik
zur Ausführung von Leiterprogrammen ist in den US-PSn 4 165 534, 4 282 584 und 4 443 865 beschrieben.
Der Bit-Prozessor· 30 ist eine maßgeschneiderte
integrierte Schaltung, die im Tandem mit dem Mikroprozessor 20 arbeitet, um ausgewählte Anweisungen der Leiterprogrammanweisungen
direkt auszuführen. Der Mikro-
prozessor 20 beginnt mit der Ausführung des Leiterprogramrns
(d.h. der Programmabfrage oder Programmabtastung), überläßt jedoch unmittelbar danach die Leitung oder Führung
dem Bit-Prozessor 30. Dieser Führungstransfer wird dadurch erreicht, daß die Adresse der Leiterprogrammanweisung
in ein Leiterprogrammzählerregister 40 im Bit-Prozessor 30 eingeschrieben wird. Der Bit-Prozessor 30
trennt dann den Mikroprozessor 20 von den Bussen 21, 22 und 27 dadurch, daß er über eine Steuerleitung 41
10 einen Busanforderungsanschluß BR besetzt. Der
Bit-Prozessor 30 ruft die Leiterprogrammanweisung ab,
führt sie aus und ruft dann nachfolgende Leiterprogrammanweisungen ab und führt sie so lange aus, bis
eine Anweisung auftritt, die er nicht ausführen kann.
Jetzt wird die zuvor besetzte Busanforderungsleitung 41 freigesetzt, und der Mikroprozessor 20 übernimmt
wieder die Führung oder Kontrolle der Programmausführung. Der Mikroprozessor 20 liest den Inhalt
des Leiterprogrammzählerregisters 40 in seinen eigenen
Leiterprogrammzähler und geht dann dazu über, die angegebene Leiterprogrammanweisung abzurufen und auszuführen.
Obgleich der Bit-Prozessor 30 zur Ausführung von nur einigen wenigen nbit-orientiertenw Anweisungen
ausgelegt ist, bestehen 75% bis 95% typischer
Anwenderleiterprogramme aus solchen Anweisungen. Das Ergebnis davon ist, daß durch die Ausführung dieser
wenigen Anweisungsarten oder Anweisungstypen in dem dafür besonders geeigneten, mit hoher Geschwindigkeit
arbeitenden Bit-Prozessor 30 die gesamte Programmabtast- oder Progratmnabfragezei t beträchtlich reduziert wird.
Der Bit-Prozessor 30 enthält auch eine Echtzeituhr
(in FIG. 2 nicht gezeigt), die in regelmäßigen Abständen ein Unterbrechungssignal an eine Steuerleitung
45 legt. Diese ühterbrechungsanf orderung und wei-
tere Unterbrechungsanforderungen, die an Leitungen 46
und 47 auftreten, werden den Eingängen eines Priorität scodierers 48 zugeführt. Der Prioritätscodierer 48
erzeugt eine 2-Bit-Unterbrechungsanforderung für den
Mikroprozessor 20 an Leitungen 49 und zeigt über eine Leitung 50 dem Bit-Prozessor 30 eine Unterbrechungsanforderung an. Hat der Bit-Prozessor 30 gerade die
Kontrolle oder Führung bezüglich einer Unterbrechungsanforderung, verzichtet er auf diese Führung oder Kon-
trolle zugunsten des Mikroprozessors 20 in einer Weise, wie sie bereits oben beschrieben worden ist. Die vom
Bit-Prozessor 30 hervorgerufene Unterbrechung wird zum . Implementieren einer Echtzeitunterbrechungsanweisung
verwendet. Die an der Leitung 46 auftretende Unterbrechung stammt vom Kommunikationsteil 3C des Prozessor-Bausteins
3 und wird unten noch im einzelnen beschrieben. Die Unterbrechung an der Leitung 47 erscheint,
wenn gerade ein Energieverlust auftritt und der Mikroprozessor
20 als Antwort darauf gewisse Notfallaktionen durchführt, die sicherstellen sollen, daß das System
behutsam angehalten wird..
Wie insbesondere aus FIG. 3 ersichtlich, ist der Orts-E/A-Teil 3B des Prozessor-Bausteins 3 mit dem
Adreßbus 21, dem Datenbus 22 sowie den Steuerleitungen 25 und 31 im Steuerteil 3B verbunden. Der Orts-E/A-Teil
3B ist rund um einen 16-adrigen gemeinsamen Adreßbus 101 und einen 8-adrigen gemeinsamen Datenbus 102
aufgebaut. Der gemeinsame Adreßbus 101 kann vom Adreßbus 21 angesteuert werden, wenn ein Satz von Tri-State-Toren
103 freigegeben wird, und Daten können zwischen dem gemeinsamen Datenbus 102 und dem Datenbus 22 übermittelt
werden, wenn bidirektionale Tore 104 freigegeben werden. Die Richtung des Datentransfers wird durch
den Zustand der RD-Steuerleitung 25 bestimmt, die von
der Decodierschaltung 26 im Steuerteil 3A angesteuert wird.
In ähnlicher Weise verbindet eine Gruppe von Tri-State-Toren 105 den gemeinsamen Adreßbus 101 mit
einem Adreßbus 201 im Kommunikationsteil 3C, und eine Gruppe von bidirektionalen Toren 106 verbindet den
gemeinsamen Datenbus 102 mit einem Datenbus 202. Der gemeinsame Adreßbus 101 kann daher auch vom Kommunikationsteil
3C des Prozessor-Bausteins 3 angesteuert werden, und es können Daten zwischen den Datenbussen
102 und 202 in einer Richtung transferiert werden, die durch eine RE-Steuerleitung 203 bestimmt wird.
Eine Schiedsstelle oder Arbiterschaltung 110 bestimmt, welcher Teil des Prozessor-Bausteins 3 zu den
gemeinsamen Bussen 101 und 102 Zugriff haben darf. Die Schaltung 110 kann ein Anforderungssignal vom Steuerabschnitx
3A über eine REQ-Leitung 111 (Decodierschaltung
26 in FIG. 2) oder eine Anforderung vom Kommunikationsteil 3C über eine CREQ-Steuerleitung 112 erhalten.
Die Arbiterschaltung gewährt zu einer Zeit
jeweils einem der Teile die Anforderung, und zwar dadurch, daß sie entweder an einer GRANT-Leitung 113
oder an einer CGRANT-Leitung 114 ein Signal erzeugt.
Diese Signale werden beide an Eingänge der Decodierschaltung 26 im Steuerteil 3A (FIG. 2) gelegt, und sie
werden dazu verwendet, die jeweils betreffenden Tore
103, 104 und 120 oder die Tore 105, 106 und 121 freizugeben. Auf diese Weise kann entweder das Steuerteil 3A
oder das Kommunikationsteil 3C des Prozessor-Bausteins Zugriff und Kontrolle zu bzw. über das Orts-E/A-Teil 3B
30 haben.
Das Orts-E/A-Teil enthält einen Direktzugriffsspeicher
(RAM) 125, der mit dem gemeinsamen Adreßbus 101 und mit dem gemeinsamen Datenbus 102 verbunden ist. Der
gemeinsame RAM 125 speichert Daten, die zwischen den beiden anderen Teilen des Prozessor-Bausteins 3 hin und
her geleitet werden, und enthält eine Fern-E/A-Bildtabelle
126 sowie Kommunikationsdaten 127. Daten können in eine adressierte Zeile des gemeinsamen RAM 125
eingeschrieben oder aus einer adressierten Zeile ausgelesen werden, wenn der RAM 125 über eine Adreßbusader
SA11 freigegeben wird und eine Schreib-Steuerleitung 128 aktiv ist. Die Schreib-Steuerleitung (WRITE)
128 wird angesteuert vom Prozessorteil 3A oder 3C, je
nachdem, welchem Teil die Kontrolle über die gemeinsamen Busse 101 und 102 gewährt worden ist, und der gemeinsame
RAM 125 besetzt tatsächlich denselben Adreßplatz in jedem dieser Teile.
Wie aus FIG. 3 ersichtlich, enthält das Orts-E/A-Teil
3B ein 8-Bit-Ausgangslatch oder eine 8-Bit-Ausgangsverriegelung
130 und einen 16-Bit-Eingangsmultiplexer
131. Die Ausgangsverriegelung wird freigegeben von einer Adreßbusader SA13, und der Zustand der Datenbusader SDO
kann in einen der acht Ausgänge geschrieben werden, und zwar wie es vom Zustand der acht Adreßbusadern SAO bis
SA2 ausgewählt wird. Einer dieser Ausgänge steuert die Unterbrechungssteuerleitung 46 an, die mit dem Prioritätscodierer
48 (FIG. 2) verbunden ist, und ein anderer Ausgang steuert eine Unterbrechungssteuerleitung 246 an,
die eine ähnliche Unterbrechung im Kommunikationsteil 3C hervorruft. Durch Einschreiben in das Ausgangslatch
oder die Ausgangsverriegelung 130 kann jedes Teil 3A
oder 3C des Prozessor-Bausteins 3 das andere Teil, oder gar sich selbst, unterbrechen. Ein dritter Ausgang
132 der Verriegelung 130 steuert eine E/A-Rücksetzleitung an, die mit jedem E/A-Baustein 4 im Ortsgestell 1 verbunden ist. Dieser Ausgang kann betätigt
werden, um alle Stell- oder Betätigungsvorrichtungen zu sperren, die vom Ortsgestell 1 aus gesteuert
35 werden.
Der Eingangsmultiplexer wird von einer Adreßbusader
SA14 freigegeben, und der Zustand von zwei beliebigen
Eingängen der sechzehn Eingänge wird in Übereinstimmung
mit dem Auswählcode an den Adreßbusadern SAO bis SA2 auf die Datenbusadern SDO bis SD1 gelesen.
Diese Eingänge überwachen die Batteriegangreserve und eine Vielzahl verschiedener Schalter, die alternative
Funktionen angeben, welche implementiert werden können.
Wie es ferner aus FIG. 3 ersichtlich ist, sind die gemeinsamen Busse 101 und 102 über einen 1-aus-16-Decodierer
135 und eine Gruppe bidirektionaler Tore I36 mit
der rückseitigen Ebene des Gestells 1 verbunden. Ein 8-Bit-Byte an Daten kann in irgendeinen der 16 E/A-Schlitze
im Gestell 1 eingeschrieben oder aus einem dieser Schlitze ausgelesen werden, wenn die Adreßbusader
SA12 freigegeben wird. Der adressierte Schlitz wird
identifiziert durch den Auswählcode an den Adreßbusadern SA1 bis SA4. Es gibt zwei E/A-Schlitze in jedem der
acht E/A-Bausteine 4, die im Gestell 1 angeordnet sind, und es kann daher entweder das Steuerteil 3A oder das
Kommunikationsteil 3C des Prozessor-Bausteins 3 aus einem beliebigen von ihnen Daten auslesen oder in einen
beliebigen von ihnen Daten einschreiben.
Das Orts-E/A-Teil 3B des Prozessor-Bausteins 3
dient als Verbindung zwischen den beiden anderen Teilen. So liest das Steuerteil 3A beispielsweise periodisch
den Zustand der mit dem Ortsgestell 1 verbundenen Eingabevorrichtungen, bringt mit diesen Informationen
seine Eingabe/Ausgabe-Bildtabelle 38 im RAM 35 auf den neuesten Stand, bringt die mit dem Ortsgestell 1 verbundenen
Ausgabevorrichtungen auf den neuesten Stand, schreibt Ausgabedaten von seiner Datentabelle 38 in
die Eingabe/Ausgabe-Bildtabelle 126 und bringt mit den Eingängen von der Eingabe/Ausgabe-Bildtabelle 126 seine
Datentabelle 38 auf den neuesten Stand. Das Kommunikationsteil 3C bringt den Eingabeteil der E/A-Bildtabelle
126 im gemeinsamen RAM 125 mit dem Zustand oder Status der mit den Fern-E/A-Gestellen 11 verbundenen Eingabevorrichtungen
periodisch auf den neuesten Stand und liest den Ausgabeabschnitt der E/A-Bildtabelle 126 zur
Übertragung zu den mit den Fern-E/A-Gestellen 11 verbundenen Ausgabevorrichtungen aus. Programmierungsgerätnachrichten,
die vom Kommunikationsteil 3C empfangen werden, werden im Kommunikationsabschnitt 127 des gemeinsamen
RAM 125 gespeichert und irgendwelche Antwortnachrichten vom Steuerteil 3A werden daraus ausgelesen.
Wie es im einzelnen weiter unten noch beschrieben wird, unterbricht das Kommunikationsteil 3C alle 10 ms den
Betrieb des Steuerteils 3A, und als Teil seiner Unterbrechungsbedienungsroutine
liest das Steuerteil 3A irgendwelche Nachrichten aus, die für es im gemeinsamen RAM 125 zurückgelassen worden sind.
Wie es insbesondere aus FIG. 4 hervorgeht, ist das Kommunikationsteil 3C des Prozessor-Bausteins 3 um
einen 8-Bit-Mikroprozessor 205 herum aufgebaut, der den 16-adrigen Adreßbus 201 und den 8-adrigen Datenbus 202
ansteuert. Der Mikroprozessor 205 arbeitet in Beantwortung' von Maschinensprachprogrammanweisungen, die in
einem Festwertspeicher (ROM) 206 gespeichert sind, und führt auf diese Weise die meisten der Kommunikationsteilfunktionen
aus. Bei dem Mikroprozessor 205 kann es sich um ein Bauelement vom Typ "Ζ80Μ von Zilog, Inc.
handeln. Bezüglich des genauen Aufbaus und Befehlssatzes dieses Bauelements wird verwiesen auf "Microcomputer
Components Data Book" veröffentlicht 1981 von Zilog, Inc.
Erzeugt der Mikroprozessor 205 einen Adreßcode am Bus 201, in welchem die Ader AD15 aktiv ist, erfolgt
über die CREQ-Steuerleitung 112 ein Aufruf zum Zugriff
zum Orts-E/A-Teil 3B. Wie oben ausgeführt, gelangt dieser
Aufruf zur Arbiterschaltung 110 im Orts-E/A-Teil 3B
(FIG. 3) und zur Decodierschaltung 26 im Steuerteil 3A
(FIG, 2). Die Decodierschaltung 26 spricht darauf dadurch an, daß sie ein Signal an einer Wartesteuerlei^
tung (WAIT) 207 erzeugt, die den Mikroprozessor 205 in einen Warte zustand "bringt, bis die Arbiter schaltung
110 den Zugriff gewährt. Sobald der Zugriff gewährt ist, entfernt die Decodierschaltung das Signal
WAIT von der Wartesteuerleitung 207, und der Mikroprozessor
205 kann dann Speicherlese- und Speicherschreiboperationen an im gemeinsamen RAM 125 gespeicherten
Daten vornehmen. In seinem Betrieb tritt nur eine vorübergehende Pause auf, wenn der gemeinsame
RAM 125 bereits vom Steuerteil 3A unter Zugriff steht.
Eine Hauptfunktion des Kommunikationsteils 3C besteht darin, die beiden Serienkanäle 5 und 10 mit
Datenstrukturen in dem gemeinsamen RAM 125 zu verbinden. Hierbei handelt es sich um Hochgeschwindigkeitskanäle,
und um die Handhabung von Unterbrechungen, die durch sie hervorgerufen werden, zu erleichtern,
steht ein 8-Bit-Mikrocomputer 210 zur Verfügung. Bei
dem Mikrocomputer 210 kann es sich um ein Bauelement vom Typ "Z8M von Zilog, Inc. handeln, und dieser Mikrocomputer
enthält einen nicht dargestellten intern maskierten Pestwertspeicher (ROM), der Maschinensprachanweisungen
speichert, die seinen Betrieb anweisen. Der Mikrocomputer 210 teilt einen 8K mal 8-Bit-Direktzugriffs
speicher (RAM) 211 mit dem Mikroprozessor 205, und seine Hauptfunktion besteht darin, alle Unterbrechungen
von den Serienkanälen 5 und 10 zu handhaben und Daten zwischen diesen Kanälen 5 und 10 sowie dem
RAM 211 zu übermitteln. Der Mikroprozessor 205 transferiert dann diese Daten zwischen dem RAM 211 und dem
35 gemeinsamen RAM 125 im Orts-E/A-Teil 3B.
Vie ebenfalls aus FIG. 4 ersichtlich, ist eine Zähler/Zeitgeber-Schaltung (CTC) 208 mit den Bussen
201 und 202 sowie mit einem Unterbrechungsanschluß 209 am Mikroprozessor 205 verbunden. Die CTC 208 erhält
Unterbrechungsaufrufe vom Orts-E/A-Teil 3B über eine
Steuerleitung 246 sowie Unterbrechungsaufrufe vom Mikroprozessor 210 über eine Steuerleitung 212. Die CTC 208
kann an einer Steuerleitung 213 einen Unterbrechungsaufruf erzeugen, und sie ist auch als Zeitgeber ausge-
legt, der an der INT-Leitung 209 alle 10 ms einen Unterbrechungsaufruf
erzeugt. Als Antwort auf einen Unterbrechungsaufruf von der CTC 208 liest der Mikroprozessor
205 eine Vektorgröße von der CTC 208, die den Mikroprozessor 205 zu einer im ROM 206 gespeicherten geeigneten
Unterbrechungsbedienungsroutine dirigiert.
Der Mikroprozessor 205 ist mit dem RAM 211 über einen Satz aus dreizehn Bustreiberschaltungen 215 sowie
einen Satz aus acht bidirektionalen Datentoren 216 verbunden. Wird der RAM 211 vom Mikroprozessor 205 adressiert,
erfolgt über die Adreßbusader AD15 und eine MREQ-Steuerleitung 218 eine Signalisierung einer
Schiedsstelle- oder Arbiterschaltung 217. Die Arbiterschaltung
217 bringt den Mikroprozessor 205 über eine Steuerleitung 219 in einen Wartezustand, bis der Zugriff
zum RAM 211 gewährt wird. In diesem Augenblick werden die Tore 215 und 216 durch eine Steuerleitung 220 freigegeben,
und der Mikroprozessor 205 wird aus seinem Wartezustanc entlassen, so daß er entweder einen Lese-
oder Schreibzyklus mit dem RAM 211 vervollständigen kann. Die Mikroprozessorschreibfreigabesteuerleitung
(WE) 204 ist mit dem RAM 211 über ein Tri-State-Tor 221 verbunden, um entweder eine Lese- oder Schreiboperation
auszuwählen, und diese selbe Steuerleitung steuert die
35 Richtung des Datenflusses durch die Tore 216.
Der Mikrocomputer 210 steuert einen 8-Bit-Datenbus
225 an, der verbunden ist mit einem Adreßlatch oder einer Adreßverriegelung 226, einer Serienkommunikationssteuergerätschaltung
(SCC) 227 und einer Gruppe aus acht bidirektionalen Datentoren 228. Ferner steuert
der Mikrocomputer 210 acht höherwertige Adreßadern oder
Adreßleitungen an, die mit niedrigerwertigen Adern oder Leitungen vereint werden, welche von der Adreßverriegelung
226 angesteuert werden, und zwar unter Ausbildung eines Adreßbusses 230. Ein typischer Lese- oder Schreibzyklus
läuft derart ab, daß die niedrigerwertigen Adreßbits in der Adreßverriegelung 226 gespeichert werden,
wenn eine Adreßtaktleitung 231 aktiv ist, und dann die höherwertigen Bits am Adreßbus 230 erzeugt und Daten
15 über den Datenbus 225 übermittelt werden.
Der Mikrocomputer 210 kann zum RAM 211 in ähnlicher Weise Zugriff erlangen wie der Mikroprozessor 205.
Ist eine Adreßbusader MA14 aktiv, erfolgt ein Aufruf
für einen Zugriff zum RAM 211 an die Arbiterschaltung
217. Wird der Zugriff gewährt, ist die Steuerleitung 235 aktiv, und eine Gruppe von Bustreiberschaltungen 236
sowie die bidirektionalen Datentore 228 werden freigegeben, um die Busse 230 und 225 mit dem RAM 211 zu verbinden.
Ss wird ein Lese- oder Schreibzyklus ausgeführt, wie es durch den Status oder Zustand einer WT-Steuerleitung
237 bestimmt wird, die über ein Tri-State-Tor 238
mit dem RAM 211 verbunden ist.
Bei der SCC 227 kann es sich um eine handelsübliche integrierte Schaltung von Zilog, Inc. handeln. Sie dient
dem Zweck, die beiden Serienkanäle 5 und 10 zu bedienen. Sobald ein Datenbyte an einem der Kanäle 5 oder 10 auftritt,
unterbricht die SCC 227 den Mikrocomputer 210 über eine Leitung 240, und der Mikrocomputer 210 spricht
in einer solchen Weise darauf an, daß er einen Vektor aus der SCC 227 ausliest, der auf die geeignete Unterbre-
cJxings servi ceroutine deutet, die im internen ROM des
Mikrocomputers gespeichert ist. Das auftretende oder
empfangene Datenbyte kann mit anderen empfangenen Daten kombiniert werden, um eine vom Programmierungsgerät 6
stammende Nachricht zu bilden, oder es kann einen Block aus Statusinformation bilden, die von einem E/A-Gestell
11 stammt. In beiden Fällen wird die Information vom Mikrocomputer 210 in die geeignete Form gebracht und
in eine E/A-Bildtabelle 241 oder einen Nachrichtendatenabschnitt 242 des RAM 211 geschrieben. In ähnlicher
Weise kann der Mikrocomputer 210 Daten aus dem RAM auslesen und sie in eine solche Form bringen, daß sie
zur Übertragung entweder über den Serienkanal 5 oder den Serienkanal 10 geeignet sind. Die Art und Weise, wie
Information zwischen den Serienkanälen 5 und 10 sowie dem Mikroprozessor 205 übertragen wird, wird im folgenden
noch beschrieben.
Die meisten Bauelemente und Baukomponenten, die in den drei Teilen des oben beschriebenen Prozessor-Bausteins
3 verwendet werden, sind im Handel von einer Reihe von Bezugsquellen erhältlich. Eine genaue Liste
dieser Baukomponenten einschließlich ihrer Bezugsquellen findet man im Anhang B. Eine Ausnahme bildet allerdings
der Bit-Prozessor 30 im Steuerteil 3A. Diese Baukomponente ist eine speziell hergestellte integrierte Schaltung,
die in dieser Form im Handel nicht erhältlich ist. Der Bit-Prozessor 30 ist allerdings aus Elementen aufgebaut,
die funktionsmäßig mit handelsüblichen Elementen äquivalent sind.
Aus FIG. 2 und 5A geht hervor, daß der Bit-Prozessor 30 rund um eine Steuerschaltung 400 aufgebaut ist,
die über den Adreßbus 21 adressiert werden kann, wenn die Freigabeleitung 33 aktiv ist. Der 16-Bit-Mikroprozessor
20 kann die Führung oder Kontrolle an den Bit-Prozessor 30 durch Erzeugen einer "Transfer"-Adresse
übertragen, die von der Steuerschaltung 400 decodiert
wird, um ein D-Flipflop 401 über seine Löschleitung 405 zurückzusetzen. Vom Flipflop 401 wird dann eine Busanforderung
an der Steuerleitung 41 erzeugt, und der 16-Bit-Mikroprozessor 20 spricht darauf dadurch an, daß er
sich selbst von den Bussen 21 und 22 abtrennt und an einer Busbewilligungs steuerleitung 402 ein Signal erzeugt.
Ein Paar in Kaskade geschalteter Flipflops 403 und 404 verriegeln dieses Signal und erzeugen ein Freigabesignal
an einer Steuerleitung 406, die zur Steuerschaltung 400 führt. Der Mikroprozessor 20 wird auf
diese Weise vom weiteren Betrieb ausgeschlossen, und der Bit-Prozessor 30 beginnt mit seinem aktiven Betrieb.
Sobald die Steuerschaltung 400 freigegeben worden ist, erzeugt sie Zeitgabesignale für verschiedenartige
Bit-Prozessorelemente, die jetzt beschrieben werden
sollen. Diese Zeitgabesignale erzeugen drei voneinander
verschiedene Zyklen C1, C2 und C3t die zum Ausführen
der Funktionen des Bit-Prozessors erforderlich sind. Der Zyklus C1 ist ein "Lesewort" Zyklus, in welchem die
KontaktplanprograTTiffianweisung, die vom Kontaktplansteuerpro
grammzähl er 40 angezeigt wird, vom RAM 35 abgerufen wird. In Abhängigkeit vom Operationscode der abgerufenen
Anweisung kann dann entweder ein Zyklus C2 oder ein Zyklus C 3 durchgeführt werden. Der Zyklus C2 ist ein
"Lese-Modifizier-Schreibt1-Zyklus, in welchem ein Operand
aus der Datentabelle 38 des RAM 35 ausgelesen wird, ein Bit darin geändert wird und dann die geänderten
Daten wieder in die Datentabelle 38 eingeschrieben werden. Der Zyklus C3 ist ein "Lesetest"-Zyklus, in
welchem ein Operand aus der Datentabelle 38 ausgelesen wird und dann darin ein Bit von einer Logikeinheit 407
getestet oder überprüft wird. Zeitablaufdiagramme für jeden dieser Zyklen sind in FIG. 5C dargestellt.
Der Bit-Prozessor 30 behält die Führung oder Kontrolle über das Steuerteil 3A und fährt damit fort,
das Kontaktplanprogramm auszuführen, solange irgendeine der folgenden Kontaktplananweisungen vom Anwendersteuerprogramm
37 abgerufen wird.
XIC - "Prüfe-auf-geschlossen"-Anweisung. Überprüft
wird ein Bit in der Datentabelle 38 auf eine logische Eins, die einem geschlossenen
Kontakt bei entsprechender Stromeinspeisung entspricht. Der Status der Sprosse oder Querverbindung
wird auf "falsch" gesetzt, wenn das Bit nicht "eingeschaltet" ist. Andernfalls bleibt der Status
unverändert.
XIO - "Prüfe-auf-geöffnet"-Anweisung. Überprüft wird ein Bit in der Datentabelle 38 auf eine logische
Null, die einen geöffneten Kontakt bei entsprechender Stromeinspeisung darstellt. Der Status
der Sprosse oder Querverbindung wird auf "falsch" gesetzt, wenn das Bit nicht "ausgeschaltet" ist.
Andernfalls wird der Status nicht verändert.
OTE - "Errege-Ausgabe"-Anweisung. Gesetzt wird ein
Bit in der Datentabelle 38, wenn der Status der Sprosse oder Querverbindung "wahr" ist. Andernfalls
wird das Bit zurückgesetzt. Der Sprossenstatus wird wieder durch einen "wahren" Zustand initialisiert.
OTL - "Verriegele-Ausgabe"-Anweisung. Gesetzt wird
ein Bit in der Datentabelle 38, wenn der Status der Sprosse oder Querverbindung "wahr" ist. Andernfalls
bleibt das Bit unverändert. Der Sprossenstatus wird wieder durch einen "wahren" Zustand initialisiert.
OTU - "Entriegele-Ausgabe"-Anweisung. Zurückgesetzt wird ein Bit in der Datentabelle 38, wenn der Status
der Sprosse oder Querverbindung "wahr" ist. Andernfalls bleibt das Bit unverändert. Der Sprossenstatus
wird wieder durch einen "wahren" Zustand initialisiert.
BST - "Verzweigungsstarf-Anweisung. Durchgeführt
wird die erforderliche Stapelung des gegenwärtigen Status in ein internes "Stapel"-Register, um die
Verarbeitung paralleler logischer Pfade zu ermöglichen.
NXB -"Nächste-Verzweigung"-Anweisung. Identifiziert
wird der Beginn eines anderen parallelen logischen Pfads, und der gegenwärtige Sprossenstatus wird
erneut initialisiert.
BND - "Verzweigungsende"-Anweisung. Durchgeführt
wird die erforderliche Entstapelung des Status und ein auf den neuesten Stand Bringen des Hauptsprossenstatus
am Ende paralleler logischer Pfade.
ADX - "Adreßausdehnung"-Anweisung. Vorgesehen wird zusätzlicher Adressierplatz über die normalen 256
Wörter hinaus, die von den standardisierten acht Bits der Operandenadresse zur Verfügung gestellt
werden, die den obigen OP-Codes folgt. Dies wird erreicht durch Verwendung des zweiten Byte dieses
OP-Code als die Daten für das hohe Byte der Operandenadresse für die nachfolgende Anweisung.
Wie aus PIG. 5A ersichtlich, wird beim Abruf einer anderen Steuerprogrammanweisung als den obigen Anweisungen
eine Steuerleitung 408 am Ausgang der Logikeinheit 407 freigegeben. Die Folge davon ist, daß am Ende
des gegenwärtigen Zyklus C1 das D-Flipflop 401 zurückgesetzt
wird und das Busanforderungssignal von der
Steuerleitung 41 verschwindet. Die Flipflops 403 und werden ebenfalls gelöscht und die Steuerschaltung 400
wird über die Steuerleitung 406 in eine passive Betriebsart versetzt. Die Führung oder Kontrolle wird daher zurück
auf den 16-Bit-Mikroprozessor 20 übertragen, der
dann durch Freigabe oder Betätigung der Steuerleitung aus Elementen des Bit-Prozessors 30 auslesen kann oder
in Elemente dieses Prozessors einschreiben kann.
Ferner zeigt FIG. 5A, daß die Bauelemente des Bit-Prozessors 30 zusätzlich zum Kontaktplanprogrammzähler
und zur Logikeinheit 407 einen Satz aus sechzehn Adreßbustoren 410 und zwei Sätze aus acht Datenbustoren 411
und 412 enthalten, die mit dem Kontaktplanprogrammzähler 40 verbunden sind. Der 16-Bit-Mikroprozessor 20 kann zwei
aufeinanderfolgende Bytes von Daten in den Kontaktplanprogrammzähler
40 einschreiben, und diese Datenbytes nehmen eine solche Voreinstellung des Zählers 40 vor,
daß er den geeigneten Punkt im Kontaktplanprogramm adressiert. Der Zähler 40 wird in dieser Weise voreingestellt,
wenn jeweilige Steuerleitungen 413 und 414 während
Mikroprozessorschreibzyklen aktiv sind. Der Ausgang des Kontaktplanprogrammzählers 40 wird während jedes
Zyklus C1 der Steuerschaltung 400 an den Adreßbus 21 dadurch gelegt, daß über eine Steuerleitung 415 die
Adreßbustore 410 freigegeben werden. Der Steuerprogrammzähler
40 wird inkrementiert durch die Steuerschaltung 400 über eine Steuerleitung 416 in der Mitte
und am Ende des C1-Zyklus. Wenn die Führung oder Kontrolle
zurück an den 16-Bit-Mikroprozessor 20 gegeben
wird, kann dieser Prozessor die Inhalte des Kontaktplanpro grammzählers 40 dadurch auslesen, daß über jeweilige
Steuerleitungen 417 und 418 die Datenbustore 411 und 412 aufeinanderfolgend freigegeben werden. Wie
oben angedeutet, werden die beiden 8-Bit-Datenbytes, die aus dem Zähler 40 ausgelesen worden sind, vom Mikroprozessor
20 dazu verwendet, um die nächste Kontaktplanprogrammanweisung abzurufen, wenn der Mikroprozessor
20 die Kontrolle und Führung wieder übernimmt.
Während des C1-Zyklus wird die vom Zähler 40 bezeichnete
Kontaktplanprogrammanweisung aus dem RAM 35 abgerufen. Jede solche Anweisung enthält einen Operationscode,
der der Logikeinheit 407 zugeführt wird, und alle Anweisungen außer den Anweisungen BST, NXB und BND
enthalten einen begleitenden Operanden oder eine be-, gleitende Operandenadresse. Lautet der Operationscode
"ADX", ist er von einem Operanden begleitet, der aus
dem RAM 35 ausgelesen und in einem ADX-Latch oder einer ADX-Verriegelung 420 gespeichert wird, wenn eine Steuerleitung
421 von der Steuerschaltung 400 betätigt wird. Andernfalls wird eine begleitende Operandenadresse aus
dem RAM 35 ausgelesen und in einem Operandenadreßlatch oder einer Operandenadreßverriegelung 422 gespeichert,
wenn eine Steuerleitung 423 von der Steuerschaltung betätigt wird. Während des nachfolgenden C2- oder C3-Zyklus
wird die 16-Bit-Adresse, die von der ADX-Ver-
riegelung 420 und der Operandenadreßverriegelung 422
erzeugt wird, dem Adreßbus 21 über einen Satz von Toren
424 zugeführt, die über eine Steuerleitung 425 freigegeben werden. Der gewünschte Operand, der in der Datentabelle
38 des RAM 35 gespeichert ist, kann somit adressiert und bearbeitet werden, und zwar vom Bitprozessor
30.
Wie aus FIG. 5A ersichtlich, enthält der Bit-Prozessor 30 auch einen Echtzeitzähler 426, der mit dem
Datenbus 22 verbunden ist. Der Echtzeitzähler wird vom 16-Bit-Mikroprozessor 20 voreingestellt, der in ihn
dadurch eine Zahl einschreibt, daß von der Steuerschaltung 400 eine Steuerleitung 427 freigegeben wird. Der
Echtzeitzähler 426 wird dann von einem an einer Leitung 428 auftretenden Zeit- oder Taktsignal so lange
dekrementiert, bis er den Zählwert Null erreicht. An
der Leitung 45, die wie bereits erwähnt zum Prioritatscodierer
48 (FIG. 2) führt, erscheint dann ein Uhterbrechungsaufrufsignal.
Der Echtzeitzähler 426 wird mit einem Wert voreingestellt, der eine solche Unterbrechung
in regelmäßigen Abständen hervorruft.
FIG. 5A und 5B zeigen insbesondere, daß die Logikeinheit 407, die einen Teil des Bit-Prozessors
bildet, den Operationscodeanteil jeder Steuerprogramm,-anweisung bei einem Latch oder einer Verriegelung 440
empfängt. Die Verriegelung 440 wird über eine Leitung 441 während des C1-Zyklus von der Steuerschaltung 440
freigegeben. Fünf Bits des Operationscode werden decodiert, um die von der Logikeinheit 407 vorzunehmende
Operation anzuzeigen, und drei Bits werden als Bit-Zeiger-Code (bit-pointer code) verwendet, um in dem zu
bearbeitenden Operanden ein Bit aus acht Bits auszuwählen. Ein 3-auf-8-Decodierer 442 und ein 2-auf-4-Decodierer
443 werden zum Decodieren des Operationscode
verwendet, und die resultierenden Ausgänge werden über einen Steuerbus 444 an einen booleschen Prozessor
445 gelegt. Der boolesche Prozessor ist dem in der US-PS 4 165 534 beschriebenen booleschen Prozessor
ähnlich. Er empfängt als Eingangsdatum ein Einzelbit an einem Anschluß 446 während der Ausführung einer
XIC- oder XIO-Anweisung, und er erzeugt als Ausgang ein
Einzelbit an einem Anschluß 447, wenn eine OTE-, OTL- oder OTU-Anweisung ausgeführt wird. Der Zustand
des booleschen Prozessors 445 kann auf den Datenbus 22 vom 16-Bit-Mikroprozessor 20 ausgelesen werden, wenn
die Steuerschaltung 400 eine Freigabeleitung 448 aktiviert. Der Zustand kann in den booleschen Prozessor
445 wieder eingespeichert werden, wenn eine Steuerlei-
15 tung 449 aktiviert wird.
Wird von der OP-Code-Verriegelung 440 ein Operationscode
empfangen, bei dem es sich nicht um einen von denjenigen Codes handelt, die vom Bit-Prozessor 30 ausführbar
sind, wird vom 3-auf-8-Decoder 442 ein Signal an der Steuerleitung 408 erzeugt. Wenn dies geschieht,
wird, wie oben beschrieben, der 16-Bit-Mikroprozessor
wachgerufen, und der Bit-Prozessor 30 wird in den passiven Betriebszustand überführt. Typischerweise ruft dann
der 16-Bit-Mikroprozessor 20 dieselbe Anweisung vom Kontaktplanprogramm auf, liest den Zustand des booleschen
Prozessors 445 in eines seiner internen Register und führt die Kontaktplanprogrammanweisung durch Abbildung
(mapping) zu einer im ROM 23 gespeicherten, geeigneten Interpretierroutine aus. Nach Beendigung schreibt der
16-Bit-Mikroprozessor 20 den Zustand seines interen Registers zurück in den booleschen Prozessor 445 und
legt die Führung oder Kontrolle wieder in die Hände des Bit-Prozessors 30.
Wie es insbesondere in Verbindung mit FIG. 5B erläutert werden kann, wird ein C3-Zyklus ausgeführt,
nachdem die Kontaktplanprogrammanweisung während des C1-Zyklus abgerufen worden ist, und zwar für den Fall,
daß entweder eine XIC- oder eine XIO-Anweisung vom
Bit-Prozessor 30 ausgeführt wird. Der von der Operandenadresse in der Kontaktplanprogrammanweisung angegebene
Operand wird während des C3-Zyklus aus der Datentabelle 38 ausgelesen, und er wird als Antwort auf ein Signal
von der Steuerschaltung (400 FIG. 5A) an einer Leitung 451 in einem Operanden-Latch oder einer Operanden-Verriegelung
450 gespeichert. Eine 1-aus-8-Selektorschaltung
452 ist mit dem Ausgang der Operandenverriegelung 450 verbunden und wird von einem UND-Tor 453 freigegeben,
wenn entweder der XIC- oder XIO-Operationscode in
der Verriegelung 440 vorhanden ist. Der an den Ausgängen 454 der OP-Codeverriegelung 440 erzeugte Bit-Zeiger-Code
steuert die Auswahlanschlüsse des 1-aus-8-Selektors 452 an, und als Ergebnis wird der Zustand von einem
der acht Bits in dem Operanden an den Eingang 446 des booleschen Prozessors 445 gelegt.
Wird eine der Ausgangsanweisungen (OTE, OTL oder OTU) ausgeführt, führt die Steuerschaltung 400 einen
C2-Zyklus durch, nachdem die Kontaktplanprogrammanweisung während der C1-Zyklus abgerufen worden ist. Das
zu bearbeitende Ausgangsbit wird während des C2-Zyklus aus der Datentabelle 38 ausgelesen und in der Operandenverriegelung
450 gespeichert. Der Bit-Zeiger-Code,
der an den Ausgängen 454 erscheint, wird an die Eingänge eines S-Leitung-auf-e-Leitung-Decodierers 456
gelegt, und die acht Ausgänge dieses Decodierers sind verbunden mit den Eingängen von acht Tri-State-Invertertoren
457. Dieselben Ausgänge sind mit den jeweiligen Freigabeanschlüssen von acht Bustreibertoren 458 verbunden,
und der Eingang jedes dieser Tore 458 ist an den Ausgang 447 des booleschen Prozessors 445 angeschlossen.
Die Invertertore 457 steuern die jeweiligen Freigabeanschlüsse von acht zusätzlichen Bustreibertoren 459 an,
und sieben von den acht Bits in der Operandenverriegelung
450 werden zum Datenbus 22 übermittelt, wenn die invertierenden Tore 457 durch die Steuerleitung 460
von der Steuerschaltung 400 freigegeben werden. Das vom Bit-Zeiger-Code ausgewählte achte Bit wird nicht an den
Bus 22 weitergeleitet, sondern statt dessen, wird die Ader oder die Leitung in dem Datenbus 22, die diesem
Bit entspricht, über eines der Bustreibertore 458 vom
Ausgang 447 des booleschen Prozessors angesteuert.
Der in einer Ausgabeprogrammanweisung angegebene Operand wird somit aus der Datentabelle 38 ausgelesen und
zurück in die Datentabelle 38 eingeschrieben, wobei jedoch das darin befindliche ausgewählte Bit vom Ausgang
des booleschen Prozessors 445 modifiziert worden ist.
Datenstrukturen
Wie es insbesondere an Hand FIG. 2 und 6 erläutert werden kann, speichert der RAM 35 eine Anzahl von Daten-Strukturen,
die vom 16-Bit-Mikroprozessor 20 und vom Bit-Prozessor 30 verwendet werden, damit diese Prozessoren
ihre jeweiligen Funktionen ausführen können. Diese Datenstrukturen umfassen die Datentabelle 38 und das
Anwendersteuerprogramm 37 und sind in weiteren Einzel-
25 heiten in FIG. 6 dargestellt.
Die Datentabelle 38 enthält getrennte Datendateien, von denen jede einen spezifischen Datentyp enthalten
kann und jede zum Ausführen einer spezifischen Funktion beim Betrieb des speicherprogrammierbaren Steuergeräts
dienen kann. Die Datendatei Nr. 0 ist beispielsweise eine Ganzzahldatei, die als Ausgabebildtabelle 500 dient,
und die Datendatei Nr. 1 ist ebenfalls eine Ganzzahldatei, die als Eingabebildtabelle 501 dient. Bei der
Datendatei Nr. 3 handelt es sich ebenfalls um eine Ganzzahldatei, der die Funktion einer Statusdatei 502 züge-
ordnet ist. Der Inhalt der Statusdatei 502 wird im einzelnen
unten noch beschrieben, und die Eingabebildtabelle 500 sowie die Ausgabebildtabelle 501 stellen, wie
bei herkömmlichen speicherprogrammierbaren-Steuergeräten,
die Abbildungen der Zustände der E/A-Vorrichtungen dar,
die mit den E/A-Bausteinen 4 in den Steuergerät-E/AGestellen 1 und 11 verbunden sind.
Wie aus FIG. 6 und 8 ersichtlich, kann die Datentabelle 38 viele andere Datendateien umfassen, von denen
eine jede unter Verwendung von Datentabellenzeigem 503 lokalisiert werden kann, die in einem Dateiinhaltsverzeichnisabschnitt
des RAM 35 gespeichert sind. Jeder Datentabellenzeiger 503 enthält eine Einwort-"Datei-Startadressew,
welche die absolute Adresse im RAM 35 der zugeordneten Datendatei angibt. Ein zweites Wort in
jedem Datentabellenzeiger 503 gibt den Typ der Daten in der Datei, die Anzahl von Elementen in der Datei und
weiterhin an, ob oder ob nicht die Datei schreibgeschützt (P) ist. Die Datentypen oder Datenarten werden durch
die folgenden Codes angegeben:
0000 = ganze Zahlen;
000'i = Zeitgeberstrukturen für Kontaktplanprogramm-
25 Zeitgeberanweisungen;
0010 β Zählerstrukturen für Kontaktplanprogramm-
zähleranweisungen;
0011 as Steuerstrukturen; 0100 = Gleitkommazahlen;
30 0111 * ASCII-Zeichen;
1111 = BCD-Daten für Darstellungszwecke.
Wie oben erwähnt, hat die Datendatei Nr. 2 die Funktion der Statusdatei 502. Wie insbesondere aus FIG. 9 ersichtlich,
hat die Statusdatei 502 eine Länge von 32 Wörtern, und sie enthält eine Anzahl ihr zugeeigneter Strukturen:
-38-Wort Beschreibung
arithmetische Statusflaggen
Bit O = C - Übertrag Bit 1 = V - überlauf
Bit 2 = Z - Null Bit 3 = N - Vorzeichen
Störungsroutineprogrammdateinummer
(0 = keine Störungsroutine)
Störungen
Bit 0 = Software-Überwachung (software watchdog)
Bit 1 m illegaler OP-Code
Bit 2 = illegale Adresse
Bit 3 = keine Kennung
Bit 4 = Stapelfehler
10 3 Dateinummer des gerade laufenden Programms, wenn
eine Störung auftritt.
4 Sprossen- oder Querverbindungsnummer, die gerade
ausgeführt wird, wenn Störung auftritt.
5 E/A-Störungen, Status- und Abtast- oder Abfrage
sperrung
Bit 0 = Gestell 0 gestört Bit 1 = Gestell 1 gestört
Bit 2 = Gestell 2 gestört Bit 3 = Gestell 3 gestört
Bit 4 = Gestell 0 Status
Bit 5 = Gestell 1 Status
Bit 6 = Gestell 2 Status Bit 7 = Gestell 3 Status
Bit 8 = Gestell 0 Abtastung gesperrt Bit 9 = Gestell 1 Abtastung gesperrt
Bit 10 = Gestell 2 Abtastung gesperrt Bit 11 = Gestell 3 Abtastung gesperrt
6 Ist Zeituhr, Jahr (0 bis 32767)
Echtzeituhr, Monat (1 bis 12)
8 Echtzeituhr, Tag (1 bis 31, 30, 29 oder 28)
Echtzeituhr, Stunden (0 bis 23) Echtzeituhr, Minuten (0 bis 59)
11 Echtzeituhr, Sekunden (0 bis 59)
Programmbereichprüfsumme
Vorherige Abtastzeit
Größte vorherige Abtastzeit
Programmüberprüfungssetzpunkt
(0=gesperrt)
Wort Beschreibung
16 Echtzeitunterbrechungssetzpunkt in Millisekunden
(O β gesperrt)
17 EchtzeitunterbrechungsdateinuTtimer
(O= gesperrt)
18 Strukturplanstatus
5 Bit 0 = erste Abtastflagge
Bit 8 = neuer Start mit Beginn des Energiehochfanrens
19 Strukturplanrückkehrwert
Mit besonderem Verweis auf FIG. 6 und 7 wird ausgeführt, daß das Anwendersteuerprogramm 37 aus separaten
Programmdateien besteht. Die Programmdateien Nr. 1 und Nr. 2 sind spezifischen Funktionen gewidmet, jedoch ist
der Rest variabel sowohl was Typ und Art als auch Größe angeht. Die Programmdatei Nr. 0 dient zur Programmidentifikation,
und wie noch weiter unten beschrieben wird, ist die Programmdatei Nr. 1 die Aktivstrukturplandefinition
504 oder das Strukturplanprogramm. Jede Programmdatei im Anwendersteuerprogramm 37 ist identifiziert
durch einen Programmdateizeiger 499, der im Dateiinhaltsverzeichnisabschnitt
des RAM 35 gespeichert ist. Jeder Zeiger 505 gibt den Programmdateityp, die absolute
Speicherstartadresse und Länge des Programms an. Jeder Zeiger 499 liefert auch eine Anzeige darüber, wenn es
sich um eine Datei handelt, die schreibgeschützt (P) ist, und er liefert eine Prüf- oder Kontrollsumme der Programmdatei,
und zwar zum Einsatz als Diagnosewerkzeug.
Es gibt drei Typen oder Arten von Programmdateien: Kontaktplan (ladder); Strukturplan (structure chart);
und Maschinensprache (machine language). Die Kontaktplanprogrammdateien
können ausgeführt werden vom Prozessor-Baustein 3, und sie bestehen aus Anweisungen der Art oder
des Typs, wie er auch in herkömmlichen speicherprogrammierbaren Steuergeräten gefunden wird. Der Ausdruck
"Leiter" oder "Kontaktplan" ("ladder") ist vom Kontakt-
planformat abgeleitet, das benutzt wird, das Programm
auf dem Programmierungsgerät 6 darzustellen. Maschinensprachprogrammdateien
enthalten Anweisungen, die direkt vom 16-Bit-Mikroprozessor 20 ausführbar sind.
Diese Programme werden benutzt, um Dualsprachmerkmale zu implementieren, wie sie in der US-PS 4 302 820 beschrieben
sind.
Die Strukturplanprogramme (structure chart programs) stellen ein neues Konzept in speicherprogrammierbaren
Steuergeräten dar und sie werden ausgeführt von einer Strukturplaninterpretierroutine, die unten im einzelnen
noch näher diskutiert wird. Wie es aus Fig. 12A bis 12C hervorgeht, verwendet die Strukturplaninterpretierroutine
zusätzlich zur Strukturplandefinitionsprogrammdatei 504 eine Aktivzustandsliste 505, die im RAM 35 gespeichert
ist und sich aus sechzehn Beschreibungs- oder
Descriptorzeigern zusammensetzt. Diese Descriptorzeiger
sind Adressen von Descriptoren 506, die in der Strukturplandefinition
504 gespeichert sind. Die Strukturplandefinitionsprogrammdatei
504 ist nichts weiter als ein Satz solcher Descriptoren 506, die unter Verwendung des
Programmierungsgeräts 6 erzeugt worden sind. Die Descriptoren 506 umfassen die Nummer einer Kontaktplanprogrammdatei,
die ablaufen soll, wenn der Descriptor 506 aktiv ist. Wie noch im einzelnen erläutert wird, zeigt die
Aktivzustandsliste 505 auf spezifische Descriptoren von den Descriptoren 506 und gibt dabei solche Kontaktplanprogramme
an, die zu irgendeinem Zeitpunkt vom Prozessor-Baustein 3 in Betrieb genommen bzw. den Ablauf zugeführt
werden sollen.
Wie bereits angegeben, wird der gemeinsame RAM 125 im Orts-E/A-Teil 3B dazu benutzt, um Information zwischen
dem Steuerteil 3A und dem Kommunikationsteil 3C zu übermitteln. Unter besonderer Bezugnahme auf FIG. 3 und 14
wird ausgeführt, daß ein geeigneter Befehl in einen Ein-
gabenachrichtenpuffer 605 im gemeinsamen RAM 125 eingeschrieben
wird, wenn das Kommunikationsteil 3C eine Nachricht vom Programmierungsgerät 6 empfängt, die eine
Antwort vom Steuerungsteil 3A erfordert. Ein geeigneter Befehl wird dann eingeschrieben an einen Steuerunterbrechungsbefehlsplatz
606 im gemeinsamen RAM 125, und der 16-Bit-Mikroprozessor 20 wird dadurch unterbrochen,
daß in der oben beschriebenen Weise eine Einschreibung in die Ausgabeverriegelung 130 erfolgt. Als Teil seiner
Unterbrechungsbedienungsroutine liest der Mikroprozessor den Steuerunterbrechungsbefehl 606 und bestimmt, daß
ein Programmierungsgerätbefehl auf seine Ausführung im Eingabenachrichtenpuffer 605 wartet.
Nach der Ausführung des Programmierungsgerätbefehls schreibt das Steuerteil 3A eine Antwort in einen Ausgangsoder
Ausgabenachrichtenpuffer 607 und einen Befehlscode in einen Kommunikationsunterbrechungsbefehlsplatz 608.
Der Kommunikationsmikroprozessor 205 wird dann durch den Einschreibvorgang in die Ausgangsverriegelung 130 unterbrochen.
Als Teil seiner Unterbrechungsbedienungsroutine
liest der Kommunikationsmikroprozessor 205 den Kommunikationsunterbrechungsbefehl
508, stellt fest, daß ihn eine Antwort im Ausgangsnachrichtenpuffer 607 erwartet,
und liest die Antwortnachricht aus dem gemeinsamen RAM 125. Die ünterbrechungsbefehlsplätze 606 und 608 arbeiten
somit in Kombination mit den Nachrichtenpuffern 605 und 607, um einen ordentlichen Informationsfluß zwischen dem
Programmierungsgerät 6 und dem Steuerteil 3A des Prozes-
30 sor-Bausteins 3 vorzusehen.
Ein etwas ähnlicher Datenaustausch geschieht bezüglich der Fern-E/A-GeStelldaten. An Hand von FIG. 3 und
14 kann erläutert werden, daß Eingabedaten von den drei Fern-E/A-Gestellen 11 vom Kommunikationsteil 3C empfangen
und in den Eingabeabschnitt 126A der E/A-Bildtabelle 126 geschrieben werden. Als Teil seiner regulären E/A-
Abtastroutine, die noch im einzelnen veiter unten erläutert
wird, liest der 16-Bit-Mikroprozessor 20 diese
Eingabebilddaten aus dem gemeinsamen RAM 126 und schreibt sie in seine eigene Datentabelle 38. Als Teil dieser
selben E/A-Abtastroutine bringt der 16-Bit-Mikroprozessor
20 einen Ausgangs- oder Ausgabeabschnitt 126B der E/A-Bildtabelle 126 dadurch auf den neuesten Stand,
daß er Daten von seiner eigenen Datentabelle 38 transferiert. Das Kommunikationsteil 3C übermittelt diese
Ausgabedaten zu dem geeigneten E/A-Gestell 11.
Jedes Fern-E/A-Gestell 11 hat ein E/A-Gestellstatuswort
610, das im gemeinsamen RAM 125 gespeichert ist. Diese Statuswörter sehen bezüglich des Zustands ihrer
jeweiligen Fem-E/A-Gestelle die folgenden Informationen
vor:
N = neue Ausgänge betreffendes Bit wird vom 16-Bit-Mikroprozessor 20 gesetzt, wenn dieser die
Ausgabebildtabelle 126B auf den neuesten Stand bringt,und wird vom Kommunikationsmikroprozessor
205 zurückgesetzt, wenn die Ausgänge an das Fern-E/A-Gestell 11 gesendet werden.
RS = Ausgänge sind zurückzusetzen, wenn dieses Bit entweder vom Mikroprozessor 20 oder 205 gesetzt
wird.
„j. F = eine E/A-Störung wird angezeigt, wenn dieses
Bit gesetzt wird.
I = die Ausgangsabtastung zu diesen E/A-Gestell 11 ist gesperrt.
Die E/A-GestellStatuswörter 610 werden somit verwendet,
um die Übermittlung von E/A-Daten zwischen den Fern-E/A-Gestellen 11 und dem Steuerteil 3A des Prozessor-Bausteins
3 zu koordinieren.
Eine weitere im gemeinsamen RAM 125 gespeicherte Datenstruktur ist ein Systemflaggenwort 611. Dieses
Flaggenwort 611 speichert einen Satz aus drei Bits, die die Betriebsart anzeigen, in der das speicherprogrammier-
-43-bare Steuergerät betrieben werden soll,
R = Lauf-Betrieb (RUN mode), wenn gesetzt, T = Prüf-Betriebsart, wenn gesetzt,
5 P= Programm-Betriebsart, wenn gesetzt.
Diese Bits können natürlich geändert oder überprüft werden, und zwar entweder vom Steuerteil 3A oder
vom Kommunikationsteil 3C des Prozessor-Bausteins 3.
Aus FIG. 4 und 15 geht insbesondere hervor, daß
der RAM 211 im Kommunikationsteil 3C Daten speichert, die vom Mikroprozessor 205 und vom Mikrocomputer 210
gemeinsam benutzt werden. Es sind Eingabe- und Ausgabeabschnitte der Fern-E/A-Bildtabelle 241 und ein Satz aus
drei E/A-Gestellstatuswörtern 705 vorgesehen. Die Statuswörter
705 betreffen die folgende Information bezüglich jedes der drei Fern-E/A-Gestelle 11:
N = Neue Ausgänge betreffendes Bit wird gesetzt
vom Mikroprozessor 205, wenn dieser die Ausgabebildtabelle
241 auf den neuesten Stand bringt, und wird zurückgesetzt vom Mikrocomputer 210,
wenn dieser die E/A-Gestelle 11 auf den neuesten Stand bringt.
RS = Ausgänge sollen zurückgesetzt werden, wenn Bit gesetzt wird.
F = Sine E/A-Störung ist aufgetreten in diesem Gestell.
I = Ausgabeabtastung sperren, wenn Bit gesetzt ist. OD = Ausgaben zum E/A-Gestell sind gesendet worden.
^Q ID = Eingänge sind abgetastet worden.
Eingabenachrichten vom Programmierungsgerät 6 oder anderen "Stationen", die mit dem Serienkanal 5 verbunden
sind, werden in Nachrichtenpuffern 242 gespeichert. Die Nachrichtenpuffer 242 speichern auch die Antwortnachrichten
vom Prozessor-Baustein 3. Wie oben angegeben, stammen einige dieser Antwortnachrichten vom Steuerteil 3A,
oder sie stammen vom Kommunikationsteil 3C selbst. Es
gibt insgesamt fünfzehn Nachrichtenpuffer, von denen jeder bis zu 71 Datenbytes und ein einziges Steuerbyte
speichert. Das Steuerbyte wird dazu verwendet, die Verarbeitung der ihm zugeordneten Nachricht zu koordinieren,
und es enthält eine Stationsaktivflagge (SA) und eine Nachrichtenaktivflagge (MA). Die Stationsaktivflagge
(SA) wird gesetzt, wenn eine Nachricht in seinem Puffer vom Programmierungsgerät 6 oder einer anderen
Station vom Serienkanal 5 empfangen worden ist. Dieses Bit wird zurückgesetzt, nachdem eine Nachricht zurück
an das Ursprungsgerät über denselben Puffer gesendet worden ist. Die Nachrichtenaktivflagge (MA) wird gesetzt,
wenn vom Mikroprozessor 205 Nachrichtendaten in den Puffer 242 gegeben worden sind, und sie wird zurückgesetzt,
• wenn die Gesamtnachricht vom Mikrocomputer 210 über den Serienkanal 5 ausgesandt worden ist.
Weil der Mikroprozessor 205 aufgerufen werden kann, um eine Reihe von Aufgaben gleichzeitig vorzunehmen, arbetet
er in Abhängigkeit von einem Schedulerprogramm, das im ROM 206 gespeichert ist. Dieser Scheduler verwendet
einen Satz von drei Datenstrukturen, eine Steuergerätbefehlswarteschlange
706, eine Programmierungsgerätwarteschlange
707 und eine Fern-E/A-Warteschlange 708.
Diese Warteschlangen 706 bis 708 sind eine Liste vom
Mikroprozessor 205 durchzuführender Aufgaben, und ein Warteschlangenzeiger 709 zeigt an, welche dieser Aufgaben
gegenwärtig ausgeführt wird. 30
Betriebsweise
Der Betrieb oder die Operation des Steuerteils 3A des Prozessor-Bausteins 3 wird von einer Exekutivroutine
520 gesteuert, die im ROM 23 gespeichert ist. Im folgenden wird insbesondere auf FIG. 2 und 10 Bezug genommen.
Nachdem das speicherprogrammierbare Steuergerät
mit Energie versorgt ist, wird ein Satz von Anweisungen
ausgeführt, die in einem Verarbeitungs- oder Prozeßblock 521 dargestellt sind. Diese Anweisungen dienen zum
Erstellen und Initialisieren der im RAM 35 gespeicherten Datenstrukturen. Befindet sich das System in der
BLAUFII-Betriebsart (RUN), was in einem Entscheidungsblock 522 ermittelt wird, beginnt ein im Prozeßblock
523 dargestellter Vorabfrage- oder Vorabtastprozeß. Alle Programme vom Kontaktplantyp werden abgetastet,
wobei all ihre Sprossen oder Querverbindungen auf "falsch" gesetzt werden, die Ausgabebildtabelle 500 wird
sowohl in das Ortsgestell 1 als auch in den gemeinsamen RAM 125 des Orts-E/A-Teils 3B geschrieben und die
Eingabebildtabelle 501 wird dadurch aufbereitet, daß der Eingabestatus sowohl vom Ortsgestell 1 als auch vom
gemeinsamen RAM 125 ausgelesen wird. Dann werden die Unterbrechungen freigegeben, und es wird mit der Verarbeitung
fortgefahren. Wie in einem Prozeßblock 524 angedeutet, wird als nächstes eine Strukturplaninterpretierroutine
ausgeführt, die, wie es noch später beschrieben wird, eine Kontaktplanprogrammdatei zur Ausführung
auswählt. Anschließend wird eine Kontaktplanprogramminterpretierroutine
525 ausgeführt, um den Lauf der ausgewählten Kontaktplanprogrammdatei vorzunehmen. Nach
einer einzigen Abtastung durch das betriebsbereite Kontaktplanprogramm wird eine E/A-Abtastung durchgeführt,
wie es in einem Prozeßblock 526 angedeutet ist.
Im folgenden wird insbesondere auf FIG. 3 und 14 verwiesen. Die E/A-Abtastung wird an bezeichneten E/A-Gestellen
vorgenommen. Die Ausgabebildtabelle 500 wird direkt in das Orts-E/A-Gestell 1 eingeschrieben, und
die Eingabebildtabelle 501 wird dadurch auf den neuesten Stand gebracht oder aktualisiert, daß das Orts-E/A-Gestell
1 direkt ausgelesen wird. Die übrigen drei Fern-E/A-Gestelle 11 werden allerdings dadurch aktualisiert,
daß Einschreib- und Auslesevorgänge bezüglich der E/A-Bildtabelle 126 im gemeinsamen RAM 125 vorgenommen
werden. Die E/A-Gestellstatuswörter 610 werden zunächst daraufhin überprüft, um festzustellen, ob ein E/A-Gestell
gesperrt oder gestört ist. Nachdem die Ausgänge eines Fern-E/A-Gestells 11 aktualisiert worden sind,
wird sein lfNn-Bit im Statuswort 610 gesetzt. Nach Vervollständigung
der E/A-Abtastung werden die Systemflaggen 611 im gemeinsamen RAM 125 überprüft, und, wie
es aus FIG. 10 hervorgeht, kommt es bei einem Entscheidungsblock 527 zu einer Systemaufzweigung, wenn eine
Betriebsartänderung stattgefunden hat. Andernfalls kehrt das System zur Strukturplaninterpretierroutine ;
gemäß dem Prozeßblock 524 zurück, um das nächste, zum Lauf vorgesehene Kontaktplanprogramm auszuwählen.
Im folgenden soll im einzelnen dargelegt werden, in welcher Art und Weise der Strukturplaninterpreter
und der Kontaktplanprogramminterpreter zusammenarbeiten, um die erfindungsgemäße Lehre in die Praxis umzusetzen.
Im folgenden wird insbesondere auch auf FIG. 11 und 12 verwiesen. Nach Eintritt in den Strukturplaninterpreter
wird unter Hinweis auf einen Entscheidungsblock 531 ein Strukturplanrückkehrwert 530 (FIG. 9) überprüft.
Dieser Wert wird durch eine "SCR"- oder "ENDE"-Anweisung
bei der Beendigung jedes Kontaktplanprogramms gesetzt. Ist der Wert gleich B0«, bedeutet dies, daß
das Kontaktplanprogramm seine beabsichtigte Funktion noch nicht vollendet hat und nochmals abgetastet oder
laufen muß. In einem solchen Fall wird, wie es in einem Prozeßblock 532 angedeutet ist, die Aktivzustandsliste
nicht geändert, sondern es wird ein Index zur Aktivzu-Standsliste 505 zum nächsten Descriptorzeiger inkrementiert.
Wenn das Ende der Liste 505 erreicht worden ist, zweigt das System bei einem Entscheidungsblock 533 ab,
und in einem Prozeßblock 534 wird der Aktivzustandslistenindex
zur Oberseite der Liste 505 zurückgesetzt.
Wie in einem Prozeßblock 535 angedeutet, werden die Datenstrukturen nach FIG. 12A bis 12C dazu benutzt,
um das nächste auszuführende Kontaktplanprogramm zu lokalisieren. Der vom Aktivzustandslistenindex angegebene
Descriptorzeiger wird zunächst dazu benutzt, um den "gegenwärtig aktiven" Descriptor 506 in der
Strukturplandefinitionsprοgramnidatei 504 zu lokalisieren.
Wie es aus FIG. 12B hervorgeht, zeigt das erste Wort im gegenwärtig aktiven Descriptor 506 wiederum die
Dateinummer des Kontaktplanprogramms an, das jetzt laufen soll. Diese Programmdateinummer wird verwendet in Verbindung
mit dem Dateiinhaltsverzeichnis (FIG. 6), um das Kontaktplanprogramm aufzufinden und seine Startadresse
in den Kontaktplanprogrammzähler des 16-Bit-Mikroprozessors
zu laden. Bei 536 weist der Strukturplaninterpreter einen Ausgang zum Kontaktplanprogramminterpreter
525 auf, wie es oben angedeutet ist, um mit der Ausführung des ausgewählten Kontaktplanprogramms
zu beginnen.
Wie aus FIG. 11 und 12 ersichtlich, gibt das Kontaktplanprogramm,
wenn es die ihm zugeordnete Funktion vollendet hat, einen anderen Wert als Null in den Kontaktplanrückkehrwert
530 (FIG. 9) ein. Wie in einem Prozeßblock 537 angedeutet, wird dann ein "Getan"-Bit
(D) für den gegenwärtig aktiven Descriptorzeiger in die Aktivzustandsliste 505 gesetzt. Es erfolgt dann eine
Reihe von Überprüfungen bezüglich des Code in einem "t"-Fela im ersten Wort des gegenwärtig aktiven Descriptors
506, um festzustellen, ob eine Zustandsänderung auftreten soll, und, wenn dies zutrifft, wohin die Zu-Standsänderung
führen soll. Ist das 2-Bit-t-Feld gleich "00", was in einem Entscheidungsblock 538 überprüft
wird, erfolgt eine Zustandsänderung. Der erste Schritt bei der Durchführung der angegebenen Zustandsänderung
besteht darin, den gegenwärtig aktiven Descriptorzeiger von der Aktivzustandsliste 505 zu entfernen, wie
es aus einem Prozeßblock 539 hervorgeht. Neue Descriptorzeiger werden dann dem Ende der Aktivzustandsliste
505 hinzugefügt, wie es in einem Prozeßblock 540 angedeutet ist. Die Anzahl der hinzuzufügenden Descriptorzeiger
wird vom Wert eines 3-Bit-lln"-Feldes im ersten
Wort des gegenwärtig aktiven Descriptors 506 angegeben, und die Identität der hinzuzufügenden Descriptorzeiger
wird durch Zielnummern angezeigt, die im gegenwärtig aktiven Descriptorblock 506 gespeichert sind. Ist
beispielsweise η = 1, wird der Aktivzustandsliste 505
die erste Zielnummer hinzugefügt, wohingegen bei η = 5» die ersten fünf Zielnummern der Aktivzustandsliste 505
hinzugefügt werden. Durch diese Zustandsänderung können somit bis zu sieben separate Kontaktplanprοgramme
gleichzeitig aktiviert werden. Nach der Durchführung dieser Änderungen kehrt der Strukturplaninterpreter zum
Prozeßblock 532 zurück, um den nächsten Descriptor 506 zu aktivieren, wie es von der Aktivzustandsliste 505
angezeigt wird, und um sein Kontaktplanprogramm aufzufinden und auszuführen.
Steht im t-Feld des gegenwärtig aktiven Descriptors die Angabe "01", kommt es auch zu einer Zustandsänderung,
wie es in einem Entscheidungsblock 541 angedeutet ist. Wie aus einem Prozeßblock 542 ersichtlich,
wird der Descriptorzeiger für den gegenwärtigen Descriptor von der Aktivzustandsliste 505 entfernt, und
am Ende der Aktivzustandsliste 505 wird ein anderer Descriptorzeiger hinzugefügt, wie es in einem Entscheidungsblock
543 dargestellt ist. In diesem Fall wird der Ersatzdescriptorzeiger durch den Rücksprungoder
Rückkehrwert (r) und die Liste der Zielnummern im gegenwärtig aktiven Descriptor 506 bestimmt. Gibt
beispielsweise das Kontaktplanprogramm einen Wert
r = 3 zurück, wird die dritte Zielnummer im gegenwärtigen Descriptor 506 in die Aktivzustandsliste 505 geladen.
Der t-Code von "01" in einem Descriptor 506 ermöglicht es somit einem ausgewählten einer Vielzahl
von Kontaktprogrammen zu laufen, und zwar nach Vollendung
des Kontaktprogramms, welches in seinem eigenen Programmdateinummernfeld angezeigt wird. Die Auswahl
geschieht durch den Rückkehrwert, der durch das Kontaktplanprogramm selbst erzeugt wird.
Beträgt der t-Code im gegenwärtig aktiven Descriptor gleich "10", wird, wie es ein Entscheidungsblock 5^4 angibt, eine "gleichzeitige Konvergenz" einer
Vielzahl aktiver Kontaktplanprogramme angezeigt. Die Kontaktplanprogramme werden spezifiziert für eine
gleichzeitige Konvergenz durch die ersten n-1 Zielnummern, die im gegenwärtigen Descriptor 506 gespeichert
sind. Beträgt der Wert von η im gegenwärtigen Descriptor 506 beispielsweise gleich "4", tritt eine
Zustandsänderung mit t = "10" so lange nicht auf, bis
die von den ersten drei Zielnummern angegebenen Kontaktplanprogramme einen nicht Nullwert zurückgegeben
haben. Wie es aus einem Entscheidungsblock 545 hervorgeht,
kommt es nicht zu einer Zustandsänderung, wenn die Getan-Bits (D) in all den spezifizierten Aktivzustandslisteneingängen
nicht gesetzt sind. Statt dessen kehrt der Strukturplaninterpreter lediglich zum Prozeßblock
532 zurück, um mit der Verarbeitung der Kontaktplanprogramme fortzufahren, die durch die Eingänge in
der Aktivzustandsliste 505 angezeigt sind.
Sind die Getan-Bits für alle der n-1 Kontaktplanprogramme, die von den Descriptorzeigern in der Aktivzustandsliste
505 angezeigt werden, gesetzt, wird entsprechend einem Prozeßblock 546 der Descriptorzeiger
für den gegenwärtigen Descriptor von der Aktivzustandsliste
505 entfernt. Ferner werden auch die anderen n-1 Descriptorzeiger von der Aktivzustandsiiste 505 entfernt.
Die n-te. Zielnummer im gegenwärtigen Descriptor
506 wird dann der Aktivzustandsliste 505 hinzugefügt,
oder, um beim obigen Beispiel zu bleiben, die vierte Zielnummer. Dieser ZuStandsübergang geschieht
in einem Prozeßblock 547, und der Strukturplaninterpreter geht dann in der Schleife zurück, um das nächste
Kontaktplanprogramm zu verarbeiten, das von der Aktivzustandsliste
505 angezeigt wird.
In diesem Zusammenhang wird auf den Anhang D verwiesen,
wo sich eine Auflistung der Strukturplaninterpretierroutine in Assemblersprache befindet.
Für die folgende Erläuterung werden insbesondere FIG. 2, 10 und 13 herangezogen. Beim Austritt oder Ausgang
aus dem Strukturplaninterpreter 524 ist das zum Laufen gedachte Kontaktplanprogramm identifiziert worden,
und zwar dadurch, daß seine Startadresse in den Kontaktplanprogrammzähler des 16-Bit-Mikroprozessors 20 geladen
worden ist. Wie es in einem Prozeßblock 550 angedeutet wird, erfolgt nach dem Eintritt in den Kontaktplanprogramminterpreter
525 die Initialisierung des Sprossenzustandsregisters im Mikroprozessor 20. Der
Kontaktplanprogrammzähler wird ebenfalls auf die erste Kontaktplanprogrammanweisung initialisiert, und das
System tritt bei einem Prozeßblock 553 in eine Schleife ein, bei der der Kontaktplanprogrammzähler in den Kontaktplanprogrammzähler
40 des Bit-Prozessors 30 (FIG. 5A) eingeschrieben wird. Das Sprossenzustandsregister im
16-Bit-Mikroprozessor 20 wird ebenfalls in den booleschen Prozessor 445 (FIG. 5B) bei einem Prozeßblock
eingeschrieben. Der 16-Bit-Mikroprozessor 20 bringt sich dann selbst in einen inaktiven Wartezustand, und zwar
dadurch, daß der Bit-Prozessor 30 bei einem Prozeßblock 555 in den Wachzustand überführt wird.
Wie bereits vorstehend erläutert, behält der Bit-Prozessor 30 die Führung oder Kontrolle und fährt
mit der Ausführung der Kontaktplanprogrammanweisungen so lange fort, bis er entweder unterbrochen wird oder
bis er auf eine Kontaktplanprogrammanweisung trifft, die er nicht ausführen kann. Im zuletzt genannten Fall
wird der 16-Bit-Mikroprozessor 20 wachgerufen, und er
übernimmt die Bearbeitung des Kontaktplanprogramminterpreters. Insbesondere werden im Prozeßblock 556 angegebene
Anweisungen ausgeführt, um den Sprossenzustand des booleschen Prozessors 445 und den Inhalt des Kontaktplanprogrammzählers
40 im Bit-Prozessor 30 auszulesen. Das System ruft dann die angegebene Kontaktplanprogrammanweisung
im Rahmen des Prozeßblocks 551 auf.
Wie ferner aus FIG, 13 ersichtlich, wird der Operationscode
in der abgerufenen Kontaktplanprogrammanweisung auf die Startadresse des im ROM 23 (FIG. 2)
gespeicherten, geeigneten Interpretierprogramms abgebildet, und zwar bei einem Prozeßblock 557. Der
i6=Bit-KIkroprozessor 20 beginnt mit der Ausführung
der Anweisung, und, wenn es sich bei der Kontaktplanprogrammanweisung um eine "ENDE"- oder nSCR"-Anweisung
handelt, ist das Kontaktplanprogramm vollendet, und, wie es in Verbindung mit Entscheidungsblöcken 558
und 559 ersichtlich ist, wird die Führung oder Kontrolle zurück an das Exekutivprogramm (FIG. 10) gegeben.
Andernfalls wird die Kontaktplananweisung, wie in einem Prozeßblock 560 dargestellt, von der geeigneten
Interpretierroutine ausgeführt, und das System kehrt in der Schleife zurück zum Prozeßblock 553, um dort die
Führung oder Kontrolle wieder dem Bit-Prozessor 30 zu übergeben und die nächste Kontaktplanprogrammanweisung
auszuführen.
36 Ί 0433
Vor der Rückkehr zum Exekutivprogramm schreibt der Kontaktplanprogramminterpreter einen Rückkehrwert
in die Statusdatendatei 502 (FIG. 9). Dies ist angedeutet in einem Prozeßblock 561. Die "ENDEII-Kontaktplananweisung
schreibt eine "0" für den Rückkehrwert. Die MSCR"-Kontaktplananweisung enthält allerdings
einen Operanden, der in die Statusdatendatei 502 eingeschrieben wird. Auf diese Weise kann das Anwendersteuerprogramm
den Rückkehrwert durch Steuerung des Werts des Operanden der SCR-Anweisung bestimmen. Zusätzlich
gibt der SCR-Anweisungsoperand auch an, welches der vier E/A-Gestelle abgetastet werden soll.
Wie es in einem Prozeßblock 562 angedeutet ist, wird diese "Abtastliste11 einer UND-Verknüpfung mit den E/A-Gestellstatusdaten
unterzogen und in die Statusdatendatei 502 derart eingeschrieben, daß während der nachfolgenden
E/A-Abtastung (FIG. 10) nur solche E/A-Gestelle aktualisiert werden, die einer Aktualisierung
bedürfen. Auf diese Weise wird die Gesamtabtastzeit vermindert und das Verhalten des speicherprogrammierbaren
Steuergeräts im Hinblick auf Echtzeitvorgänge verbessert.
Der Kontaktplananweisungssatz, der vom Steuerteil
3A ausgeführt wird, ist Anweisungssätzen ähnlich,
die in den US-PSn 4 266 281 und 4 442 504 beschrieben sind. Wie oben erläutert, führt der Bit-Prozessor 30
einige dieser Kontaktplananweisungen direkt aus, wohingegen die übrigen Kontaktplananweisungen dadurch ausgeführt
werden, daß die im ROM 23 gespeicherten Maschinensprachinterpretierroutinen
abgebildet werden (mapping).
Im Anhang C sind für ein Beispiel einer zu steuernden
Maschine ein geeignetes Strukturplanprogramm und
geeignete Kontaktplanprogramme zusammengestellt. Diese Programme werden unter Verwendung des Programmierungs-
geräts 6 hergestellt und zum Steuerteil 3A übertragen.
Unter Bezugnahme auf FIG. 2 wird ausgeführt, daß der Betrieb des Steuerteils 3A alle 10 ms durch das
Kommunikationsteil 3C unterbrochen wird. Geschieht
dies, wird die Kontrolle über die Busse an den 16-Bit-Mikroprozessor
20 abgegeben, und es wird eine 10-ms-Unterbrechungsbedienungsroutine
ausgeführt, die in FIG. 16 dargestellt ist. Vie durch einen Prozeßblock
580 angedeutet, wird der Zustand der Register des Mikroprozessors im RAM 35 aufbewahrt, und ein Überwachungszeitgeber
wird zurückgesetzt, wie in einem Prozeßblock 581 gezeigt.
Die von den Zeitgeberanweisungen benutzte Echtzeituhr wird dann nach einem Prozeßblock 582 aktualisiert,
und der Steuerunterbrechungsbefehl 606 wird aus dem gemeinsamen RAM 125 (FIG. 14) ausgelesen, wie in einem
Prozeßblock 583 dargestellt. Handelt es sich bei dem
angezeigten Befehl um einen solchen, der unmittelbar ausgeführt werden muß, zweigt das System bei einem Entscheidur.gsblock
584 ab, und der Befehl wird gemäß einem Prozeßblock 585 ausgeführt. In jedem Falle erfolgt
eine Wiederherstellung der Mikroprozessorregister in einem Prozeßblock 586, und das System kehrt zu seiner
unterbrochenen Aufgabe zurück.
Mit besonderem Hinweis auf FIG. 3 und 4 wird ausgeführt, daß die Hauptfunktionen des Kommunikationsteils
3C des Prozessor-Bausteins 3 darin bestehen, eine E/A-Äbtastimg
der Fern-E/A-Gestelle 11 über den E/A-Kanal vorzunehmen und die Befehle zu verarbeiten, die über den
Serienkanal 5 empfangen oder ausgesendet werden. Der Mikroprozessor 205 übt diese Funktionen als Antwort auf
ein im ROM 206 gespeichertes Schedulerprogramm und einen Satz von Unterbrechungsbedienungsroutinen aus, die
3310433
-54-ebenfalls im ROM 206 gespeichert sind.
Wie insbesondere aus FIG. 17 ersichtlich, erfolgt der Eintritt in den Scheduler mit dem Kochfahren der
Versorgungsenergie, und im Prozeßblock 620 wird ein Satz von Anweisungen ausgeführt, um sovohl im geeinsamen
RAM 125 als auch im RAM 211 Datenstrukturen zu initialisieren. Weiterhin werden Unterbrechungen freigegeben,
und beim Prozeßblock 321 wird in eine Schleife eingetreten, und zwar zwecks Eingabe von Daten von jedem
aktiven Fern-E/A-Gestell 11. Bei einem Prozeßblock wird die Gestellnummer inkrementiert, und nachdem das
letzte E/A-Gestell überprüft worden ist, zweigt der Scheduler bei einem Entscheidungsblock 623 ab, und
zwar mit dem Ziel der Überpfügung des "IS"-Bit im
E/A-Gestellstatus 705 des RAM 211 (FIG. 15). Dieses Bit wird vom Mikrocomputer 210 auf Null gesetzt, wenn
er die Eingabebildtabelle 241A mit dem gegenwärtigen
oder laufenden Status der mit dem E/A-Gestell 11 verbundenen Eingabevorrichtungen aktualisiert hat, und
nach entsprechender Überprüfung im Entscheidungsblock 624 wird das gegenwärtige Eingabebild vom RAM 211 in
die entsprechenden Plätze der Eingabebildtabelle 126A
des gemeinsamen RAM 125 (FIG* 14) transferiert. Dieser Transfer wird im Prozeßblock 625 vorgenommen, und das
ID-Bit für das angezeigte E/A-Gestell 11 wird auf "1" gesetzt, bevor in der Schleife zurückgegangen wird,
um die Eingänge vom nächsten E/A-Gestell 11 zu überprüfen. Die Eingabeabtastschleife 621 aktualisiert
daher die Eingabebildtabelle 126A im gemeinsamen RAM 125 immer dann, wenn der Mikrocomputer 210 einen neuen
Satz von Eingängen von jedem Fern-E/A-Gestell 11 einliest.
Nach Abtastung der Eingänge oder Eingaben zweigt der Scheduler bei einem Entscheidungsblock 623 zu
einem Satz von Anweisungen ab, die in einem Prozeß-
block 626 enthalten sind. Diese Anweisungen aktualisieren
den E/A-Gestellstatus 610 im gemeinsamen RAM 125 (FIG. 14) mit dem gegenwärtigen oder laufenden
Zustand, der vom E/A-Gestellstatus 705 im RAM 211 angezeigt wird. Wird beispielsweise während der jüngsten
Eingabeabtastung der E/A-Gestell Nr. 2 eine E/AStörung festgestellt, wird dies durch das "F"~Bit für
die E/A-Gestell Nr. 2 angezeigt. Es wird dann bei in eine Schleife eingetreten, in deren Verlauf das
Ausgabebild vom gemeinsamen RAM 125 zum RAM 211 transferiert wird. Im einzelnen wird bei 628 die E/A-Gestell
Nummer inkrementiert, und solange das letzte Gestell
noch nicht überprüft worden ist, zweigt der Scheduler bei einem Entscheidungsblock 629 ab, um das "N"-Bit
im E/A-Gestellstatus 610 des gemeinsamen RAM 125 zu prüfen. Ist dieses Bit auf "1" gesetzt, was in einem
Entscheidungsblock 630 festgestellt wird, sind die Ausgänge für das angezeigte Gestell vom Steuerteil 3B
jüngst aktualisiert worden. Diese aktualisierten Ausgänge oder Ausgaben werden von der Ausgabebildtabelle
126B des gemeinsamen RAM 125 zu dem entsprechenden Platz in der Ausgabebildtabelle 241 des RAM 211 transferiert,
wie es durch einen Prozeßblock 631 dargestellt ist. Das "N"-Bit wird im gemeinsamen RAM 125 zurückgesetzt, und
das "OD"-Bit für das angezeigte E/A-Gestell wird auf "1" im RAM 211 (FIG. 15) gesetzt, wie in einem Prozeßblock
632 dargestellt. Der Scheduler kehrt dann in der Schleife zurück zwecks Überprüfung des nächsten E/AGestells.
Beim Austritt oder Ausgang aus der Schleife 627 bei einem Entscheidungsblock 629 werden alle vom
Steuerteil 3A aktualisierte Ausgaben an den RAM 211 weitergeleitet, und zwar zwecks Übertragung zum geeigneten
Fern-E/A-Gestell 11.
Immer noch unter Bezugnahme auf FIG. 14 wird dargelegt, daß nach der Aktualisierung der Eingaben und
Ausgaben der Scheduler die Steuerbefehlswarteschlange
im RAM 211 überprüft, um festzustellen, ob irgendwelche
Befehle vom Steuerteil 3A der Bearbeitung
bedürfen. Trifft dies zu, wie es in einem Entscheidungsblock 635 erfaßt wird, wird der angezeigte Befehl
gemäß einem Prozeßblock 636 ausgeführt, und dieser Befehl wird dann aus der Varteschlange 706
entfernt, wie es in einem Prozeßblock 637 angedeutet ist. Ein typischer Befehl kann beispielsweise darin
bestehen, eine Antwortnachricht im Ausgabenachrichtenpuffer
607 des gemeinsamen RAM 125 (FIG. 14) zu einem der fünfzehn Puffer im RAM 211 (FIG. 15) zu transferieren.
Falls keine Steuergerätbefehle als Warteschlange aufgereiht sind, wird bei einem Entscheidungsblock
die Programmierungsgerätwarteschlange 707 überprüft. Fall vom Programmierungsgerät 6 eine Nachricht empfangen
worden ist, wird der geeignete Befehl gemäß einem Prozeßblock 641 ausgeführt, und der Befehl wird dann gemaß
einem Prozeßblock 642 aus der Warteschlange 707 entfernt. Ein solcher Befehl kann beispielsweise darin
bestehen, vom Programmierungsgerät 6 empfangene und in einem der Puffer 242 (FIG. 15) gespeicherte Daten
zu interpretieren und einen Befehl zu erstellen, der über die Eingabenachrichtenpuffer 605 im gemeinsamen
RAM 125 (FIG. 14) zum Steuerteil 3A weitergeleitet wird. Ein anderer Befehl vom Programmierungsgerät 6
kann ein Aufruf zur Änderung der Betriebsart des speicherprogrammierbaren Steuergeräts sein. Ein solcher
Befehl wird dadurch ausgeführt, daß die geeignete Systemflagge 611 (d.h. R, T oder P) im gemeinsamen
RAM 125 gesetzt wird.
Es ist ersichtlich, daß der Scheduler wie eine Informationsleitung arbeitet, die zwischen dem Steuerteil
3A und den Serienkanälen 5 und 10 verläuft. Vom
Mikroprozessor 205 wird auch ein Satz von Unterbrechungsroutinen
ausgeführt, um dem Scheduler "bei der Durchführung seiner Aufgaben zu helfen.
Die erste dieser Unterbrechungsroutinen ist eine 10-ms-Unterbrechungsbedienungsroutine, die in FIG. 18
gezeigt ist. Auch unter Bezugnahme auf FIG. 4 wird ausgeführt, daß die CTC 208 einen Zeitgeber enthält,
der alle 10 ms eine Unterbrechung erzeugt und der den Mikroprozessor 205 zur Ausführung der in FIG. 18
dargestellten Routine dirigiert. Wie in einem Prozeßblock 646 angegeben, werden die Register des Mikroprozessors
im RAM 211 aufbewahrt, und es wird ein Unterbrechungsbefehl in den gemeinsamen RAM 125 eingeschrieben,
wie es aus einem Prozeßblock 646 hervorgeht. Das Steuerteil 3A wird dann dadurch unterbrochen,
daß eine Einschreibung in die Ausgangsverriegelung (FIG. 3) erfolgt, wie in einem Prozeßblock 647 angedeutet,
und ein Überwachungszeitgeber wird bei einem Prozeßblock 648 zurückgesetzt. Die Register des Mikroprozessors
werden dann wieder bei einem Prozeßblock hergestellt, und das System kehrt zu dem unterbrochenen
Programir. zurück. Der Unterbrechungsbefehl 606 FIG. 14) enthält einen Code, der dem Steuerteil 3A die Funktion
anzeigt, die es während der Bedienung der Unterbrechung ausführen soll, welche von dieser Routine alle 10 ms
initiiert wird. Diese Funktionen enthalten:
Diagnostische oder Überprüfungs-(Watchdog)
Fehler - unmittelbar
30 Überprüfung (Watchdog) zurücksetzen unmittelbar
Blocktransfer beendet
Nachricht bereit im Eingabepuffer 605
Kontakthistogrammdatenaufruf
Eine zweite Unterbrechung des Mikroprozessors 205 kann hervorgerufen werden durch das -Steuerteil 3A, wenn
dieses einschreibt in die Verriegelung 130 (FIG. 3). Tritt diese Unterbrechung auf, dirigiert die CTC 208
den Mikroprozessor 205 zu einer in FIG. 19 dargestellten Unterbrechungsbedienungsroutine. Der Mikroprozessor
führt diese Routine dadurch aus, daß er zunächst die Mikroprozessorregister bewahrt, wie in einem Prozeßblock
655 angedeutet, und dann den Unterbrechungsbefehl 606 im gemeinsamen RAM 125 liest, wie aus dem Prozeßblock
656 ersichtlich. Dieser Unterbrechungsbefehl kann irgendeine der folgenden Funktionen enthalten:
Diagnostischer Fehler - unmittelbar Blocktransferaufruf - unmittelbar
Ausgabenachrichtenpuffer fertig
Wird irgendeiner der unmittelbaren Befehle erfaßt, wie von einem Entscheidungsblock 657 festgestellt, wird
der angezeigte Befehl bei einem Prozeßblock 658 ausgeführt. Andernfalls werden die Daten im Ausgabenachrichtenpuffer
607 als Befehl zur Steuergerätwarteschlange
im RAM 211 (FIG. 15) transferiert. Dies wird mittels eines Prozeßblocks 659 erreicht, und nach Beendigung
dieses Vorgangs werden die Mikroprozessorregister wieder hergestellt und zwar bei einem Prozeßblock 660, und das
System kehrt von der Unterbrechung zurück. Das oben beschriebene Schedulerprogramm wird mit der Weiterverarbeitung
des transferierten Steuergergtbefehls fortfahren,
wenn dafür Zeit zur Verfügung steht.
Es kann noch eine weitere Unterbrechung des Mikro-Prozessors 205 durch den Mikrocomputer 210 (FIG. 4) initiiert
werden. Geschieht dies, dirigiert die CTC 208 den Mikroprozessor 205 zu einer Unterbrechungsbedienungsroutine,
die lediglich die Tatsache registriert, daß der Serienkanal 5 inaktiv ist. In Abhängigkeit von
den Umständen kann dieser Vorfall als eine Störung interpretiert werden. Versucht beispielsweise das Steuer-
teil 3A eine Antwortnachricht an das Programmierungsgerät
6 auszusenden, und dieses ist abgetrennt worden, wird eine Störung angezeigt.
Wie oben angedeutet, ist der Mikrocomputer 210 so programmiert, daß er wie ein "intelligentes" Steuergerät
mit Direktzugriffsspeicher arbeitet, das die Eingabe- und Ausgabeinformation handhabt, welche durch
die beiden Serienkanäle 5 und 10 fließt. Der Mikrocomputer 210 wird in erster Linie von Unterbrechungen
von der SCC 227 angesteuert, obgleich er auch vom Mikroprozessor 205 unterbrochen werden kann, wenn
dieser einen Störungszustand diagnostiziert, der die Beendigung von allen weiteren Übertragungen fordert.
Obgleich der Mikroprozessor 210 in erster Linie von Unterbrechungen angesteuert wird, führt er auch
ein in FIG. 20 dargestelltes Hauptprogramm aus. Beim anfänglichen Hochfahren der Versorgungsenergie wird
ein Satz von Befehlen ausgeführt, die zum initialisieren von Datenstrukturen und zum Freigeben von Unterbrechungen
dienen, wie bei einem Prozeßblock 670 angedeutet. Ss wird dann bei 671 in eine Schleife eingetreten,
in deren Verlauf Überprüfungen vorgenommen werden, um zu bestimmen, ob ein E/A-Gestell vollständig
abgetastet worden ist oder ob eine Nachricht über den Serienkanal 5 empfangen oder ausgesendet worden ist.
Wie insbesondere aus FIG. 4, 15 und 20 ersichtlich, wird bei einem Entscheidungsblock 672 eine interne Flagge
überprüft, um festzustellen, ob „ein E/A-Gestell abgetastet
worden ist. Trifft dies zu, werden Zeiger gesetzt, und zwar mit dem Ziel, das nächste E/A-Gestell
bei einem Prozeßblock 673 abzutasten, und gemäß einem Entscheidungsblock 674 wird dann überprüft, um festzustellen,
ob das letzte E/A-Gestell abgetastet worden ist. Trifft dies nicht zu, zweigt das System zu einem
Prozei3block 675 ab, um den E/A-Gestellstatus 705 aus dem
RAM 211 auszulesen und ihn zur Verwendung durch die E/A-Abtastunterbrechungsbedienungsroutine aufzubewahren.
Andernfalls wird eine "E/A-Abtastung-Getann-Flagge
beim Prozeßblock 676 gesetzt, und die Zeiger werden zurückgesetzt, zwecks Abtastung des ersten E/AGestells
11 beim Prozeßblock 677. Der E/A-Gestellstatus 705 wird aus dem RAM 211 ausgelesen, und die E/A-Abtastunterbrechungsbedienungsroutine
wird zur Abtastung des ersten E/A-Gestells 11 gesetzt, wie in einem Prozeßblock 678 gezeigt. Wie durch einen Prozeßblock 679 angedeutet,
wird dann eine Anzahl von diagnostischer Tests durchgeführt, bevor die "E/A-Abtastung-Getan"-Flagge
zurückgesetzt und in der Schleife zurückgegangen wird, um die E/A-Gestelle erneut abzutasten.
Immer noch unter Bezugnahme auf FlG. 4, 15 und
wird ausgeführt, daß nach Überprüfung des Status der E/A-Gestellabtastung eine interne Flagge bei einem
Entscheidungsblock 680 überprüft wird, um festzustellen, ob die SCC 277 die Aussendung oder den Empfang einer
Nachricht vollendet hat. Trifft dies zu, wird eine interne Empfangen/Senden-Flagge beim Entscheidungsblock
681 überprüft, und falls eine Nachricht empfangen worden ist, wird bei einem Entscheidungsblock 682 eine
Überprüfung dahingehend durchgeführt, ob ein Befehl oder eine Bestätigung empfangen worden ist. Ist ein
Befehl empfangen worden, werden die "SA"- und "MA"-Flaggen in dem geeigneten Nachrichtenpuffer 242 zusammen
mit einer internen "Bestätigungs"-Flagge gesetzt,
wie in einem Prozeßblock 683 gezeigt. Andernfalls wird eine interne "Berechtigungs"(token)-Flagge bei einem
Entscheidungsblock 684 überprüft, um festzustellen, ob dem Prozessor-Baustein 3 die Herrschaft über den Serienkanal
5 gegeben worden ist. Falls nicht, wird die Nachrichtenunterbrechungsbedienungsroutine
gesetzt, so daß eine Nachricht am Serienkanal 5 empfangen werden kann, wie es in einem Prozeßblock 685 gezeigt ist. Ist dem
Prozessor-Baustein 3 die Herrschaft gewährt worden, wird ein Satz von Anweisungen, wie im Prozeßblock 686
angedeutet, ausgeführt, um irgendwelche Nachrichten in der Steuergerätbefehlswarteschlange 706 zu lokalisieren,
die fertig zum Aussenden sind. Wird eine solche Nachricht gefunden, wird die Nachrichtenunterbrechungsbedienungsroutine
gesetzt, um diese Nachricht auszusenden.
Ist eine Nachricht ausgesendet worden, was von einem Entscheidungsblock 681 festgestellt wird, wird
bei einem Entscheidungsblock 687 die "Bestätigungs"-Flagge
überprüft, um festzustellen, ob eine Bestätigung gerade übertragen worden ist.
Tiff"C dies zu, wird die Flagge zurückgesetzt, und
das System zweigt zu einem Entscheidungsblock 684 ab, um die nächste Nachricht auszusenden oder zu empfangen.
Andernfalls ist ein Befehl an den Serienkanal 5 ausgesendet worden, und wie es in einem Prozeßblock 688 angedeutet
ist, wird eine Nachrichtenunterbrechungsbedienungsrourine
gesetzt, um auf die Bestätigung von der anderen Station an diesem Kanal zu warten (d.h. von
dem Programmierungsgerät 6).
Im folgenden wird insbesondere auf FIG. 4, 15 und
21 Bezug genommen. Immer dann, wenn ein Zeichen über den Fern-E/A-Kanal 10 empfangen oder ausgesendet worden
ist, unterbricht die SCC 227 den Mikrocomputer und dirigiert ihn zu einer E/A-Gestellunterbrechungsbedienurgsroutine.
Während der Ausführung dieser Routine werden die Register des Mikrocomputers, wie aus
einem Verarbeitungsblock 800 ersichtlich, bewahrt, und
die Routine zweigt bei einem Entscheidungsblock 801 ab, und zwar in Abhängigkeit davon, ob ein Zeichen
empfangen oder ausgesendet worden ist.
Ist ein Zeichen ausgesendet vorder , wird bei einem Entscheidungsblock 807 das "Ausgaben-Getan"-Bit (OD)
im E/A-Gestellstatuswort 705 überprüft, um festzustellen,
ob das letzte Byte der Ausgabedaten ausgesendet worden ist. Ist dies nicht der Fall, werden andere Bits
im Statuswort 705 bei einem Entscheidungsblock 808 überprüft, um festzustellen, ob das E/A-Gestell aktiv
ist. Wenn nicht, wird das OD-Bit bei einem Prozeßblock 809 gesetzt. Andernfalls wird bei einem Prozeßblock
ein Byte aus der Ausgabebildtabelle 24"B ausgelesen und
für Aussendungszwecke an die SCC 227 übermittelt, wie aus einem Prozeßblock 811 ersichtlich. Wenn das letzte
Byte für das gegenwärtige E/A-Gestell ausgesendet worden ist, wie in einem Entscheidungsblo<k 812 entschieden,
wird bei 813 das "OD" Bit im E/A-Gestellstatuswort 705 gesetzt, und die Routine kehrt zurück, nachdem bei
806 die Register des Mikrocomputers wiederhergestellt worden sind. Auf diese Weise wird die Ausgabebildtabelle
241B byteweise, d.h. ein Byte zu einer Zeit, an das gegenwärtige E/A-Gestell ausgesendet, bis alle Ausgaben
im E/A-Gestell aktualisiert worden sind.
Für die folgende Erläuterung wird immer noch auf FIG. 21 und 15 Bezug genommen« Nachdem die Ausgaben
aktualisiert worden sind, wie durch einen Entscheidungsblock 807 festgestellt, wird das »ID"-Bit im E/A-Gestellstatuswort
705 bei einem Entscheidungs": lock 815 überprüft.
Ist dieses Bit zurückgesetzt, wird dadurch angezeigt, daß die Eingaben auf dem laufenden oder gegenwärtigen
Stand sind und nicht aktualisiert zu werden brauchen. Das ID-Bit wird vom Mikroprozessor 205 gesetzt,
wenn dieser das Schedulerprogramm (FIG. 17) ausführt, um die Eingabebildtabelle 241A zum gemeinsamen RAM
(FIG. 3) zu transferieren. Besteht keine Veranlassung zur Aktualisierung der Eingaben, wird hei einem Prozeßblock
816 die »E/A-Gestell-Abgetastet "--Flagge gesetzt,
und das System kehrt von der Unterbrechung zurück, nach-
BAD ORIGINAL
dem bei einem Prozeßblock 806 die Register wieder erneut eingespeichert oder hergestellt worden sind. Andernfalls
wird eine Weck- oder Prompt-Nachricht zum gegenwärtigen oder laufenden E/A-Gestell übertragen,
wie bei einem Prozeßblock 817 angedeutet, und diese Nachricht veranlaßt das E/A-Gestell mit dem Aussenden
von Eingabedaten zu beginnen.
Ist ein Zeichen empfangen worden, was von einem Entscheidungsblock 801 festgestellt wird, wird es bei
einem Prozeßblock 802 aus der SCC 227 ausgelesen und
in den geeigneten Platz in der E/A-Bildtabelle 241A eingeschrieben, wie in einem Prozeßblock 803 gezeigt.
Sobald das letzte Byte vom gegenwärtigen E/A-Gestell empfangen worden ist, was von einem Entscheidungsblock
804 festgestellt wird, werden bei einem Entscheidungsblock 805 eine ME/A-Gestell-Abgetastet"-Flagge und das
ID-Bit im E/A-Gestellstatuswort 705 gesetzt. In beiden
Fällen werden bei einem Entscheidungsblock 806 die Register wieder hergestellt, und das System kehrt von
der Unterbrechung zurück.
Der Mikrocomputer 210 wird somit derart betrieben, daß er das Eingabebild 241A mit den Eingabestatusdaten
von den Fern-Ε/A-Gestellen 11 kontinuierlich aktualisiert.
In ähnlicher Weise wird er betrieben, um Daten von der Ausgabebildtabelle 241B an die E/A-Gestelle 11
kontinuierlich auszugeben und auf diese Weise die Stelloder Betätigungsvorrichtungen, die von dem speicherprogramtnierbaren
Steuergerät, gesteuert werden, auf einem gewünschton Stand zu halten.
Jetz-: wird insbesondere auf FIG. 4, 15 und 20 Bezug
genommen» Wird ein Datenbyte entweder über den Serienkanal 5 ausgesendet oder empfangen, unterbricht die SCC
227 den Mikrocomputer 210 und dirigiert ihn zu einer
Serienkanalunterbrechungsbedienungsroutine. Während der
Ausführung dieser Routine werden die Register des Mikrocomputers gemäß einem Prozeßblock 825 aufbewahrt,
und bei einem Entscheidungsblock 826 wird eine Entscheidung darüber getroffen, ob ein Zeichen empfangen
5 oder ausgesendet worden ist.
Ist ein Zeichen empfangen worden, erfolgt bei einem Block 827 eine Entscheidung darüber, ob das Zeichen die
Bestimmungsstationsnummer oder ein anderes Datenbyte in der Nachricht ist. Handelt es sich um die Bestimmungsstationsnummer
und entspricht diese der Stationsnummereinstellung an einem Satz von DIP-Schaltern 828, die mit
einem Eingangskanal des Mikrocomputers 210 (PIG. 4) verbunden sind, wird bei einem Prozeßblock 829 eine "Nachrieht-Empfangen"-Flagge
zurückgesetzt, und das System kehrt von der Unterbrechung zurück, nachdem die Register
des Mikrocomputers bei einem Prozeßblock 830 wieder hergestellt worden sind. Wird die nachfolgende "Ursprungs"-Stationsnummer
empfangen, zweigt die Becienungsroutine
bei einem Entscheidungsblock 827 ab, und bei einem Entscheidungsblock
831 wird eine Überprüfung dahingehend durchgeführt, ob der Nachrichtenpuffer 242 im RAM 211
für diese Station zur Verfügung steht. Dies wird erreicht durch Überprüfen des flSA"-Bit in dem geeigneten
Nachrichtenpuffersteuerbyte, und falls ein "Besetzt-Zustand
festgestellt wird, wird eine Station-Besetzt-Nachricht
zurückgesandt an die Ursprungsstation, vie bei einem Prozeßblock 832 gezeigt. Andernfalls, wenn nachfolgende
Datenbytes in der Nachricht empfangen werden, werden sie von der SCC 227 zu dem verfügbaren Nachrichtenpuffer 242
transferiert, wie in einem Prozeßblock 833 angedeutet. Falls die Nachricht nicht vollständig empfangen worden
ist, was von einem Entscheidungsblock 834 festgestellt
wird, werden die Register bei 830 wieder hergestellt, und das System kehrt zurück, um auf den Empfang des nächsten
Byte in der Nachricht zu warten.
BAD ORIGINAL
Ist die gesamte Nachricht empfangen worden, was
ein Entscheidungsblock 834 feststellt, wird bei 835
eine Bestätigungsnachricht zurück zur Ursprungsstation übermittelt. Die »Nachricht-Vollständig"-, »Nachricht-Empfangen"-
und "Bestätigung-Ausgesendet"-Flaggen
werden alle bei einem Prozeßblock 836 gesetzt, und dann wird bei einem Entscheidungsblock 837 überprüft,
ob dem speicherprogrammierbaren Steuergerät die Netzwerkherrschaftsberechtigung bewilligt worden ist.
Trifft dies zu, wird die nBerechtigungs"- oder "BeIegungs»-Flagge
("token" flag) bei 838 gesetzt. Im übrigen kehrt das System von der Unterbrechung über
den Prozeßblock 830 zurück.
Immer noch unter Bezugnahme auf FIG. 4, 15 und wird ausgeführt, daß nach dem Aussenden eines Zeichens
durch den Serienkanal 5 die Serienkanalunterbrechungsbedienungsroutine bei einem Entscheidungsblock 826 zu
einem Prozeßblock 840 abzweigt. Die in einem Prozeßblock 840 angedeuteten Anweisungen dirigieren den Mikrocomputer
210 derart, daß er das nächste Byte von dem gegenwärtig aktiven Nachrichtenpuffer 242 liest und es
in die SCC 227 einschreibt, und zwar zum Aussenden über den Serienkanal 5. Bei einem Entscheidungsblock 841
wird überprüft, ob das letzte Byte in der Nachricht ausgesendet worden ist. Trifft dies zu, wird bei einem
Prozeßblock 842 die "Nachricht-Vollständig»-Flagge gesetzt und die "Nachricht-Empfängen"- und "Bestätigung-Ausge
sendet "-Flaggen werden zurückgesetzt. Das System kehrt dann von der Unterbrechung über den Prozeßblock
830 zurück.
Es wurde ein bevorzugtes Ausführungsbeispiel der Erfindung beschrieben. Im Rahmen der erfindungsgemäßen
Lehre sind viele Abwandlungen und Modifikationen möglich. So sind beispielsweise viele alternative Maßnahmen
BAD ORIGINAL
bekannt, um die E/A-Bildtabelle mit Daten von den
E/A-Gestellen zu aktualisieren und um mit dem Programmierungsgerät zu kommunizieren.
Start-Adresse
Anhang A Steuerteil-Adreßplatz
Adresse
Größe
Element
OOOOO
10000
E8000
F2000
10000
E8000
F2000
OFFFF 17FFF EFFFF FBFFF
64K 32K 32K 40K ROM 23 Bit-Prozessor Gemeinsame Busse 101, RAM 35
Start-Adresse
Kommunikationsteil-Adreßplatz Größe Element
End-Adresse
0000
4000
8000
4000
8000
3FFF 5FFF FFFF
16K
8K
32K ROM 206 RAM 211 Gemeinsame Busse 101,
Start- | End- |
Adresse | Adresse |
8000 | FFFF |
BFOO | 3F08 |
DFOO | DF07 |
EFOO | EF3F |
FOOO | F7FF |
Orts-E/A-Teil-Adreßplatz
Größe Element
32K Anforderungsbusse 101, 102 Eingabemultiplexer 131 Ausgabeverriegelung 130
E/A-Bausteine 4
2K Gemeinsamer RAM 125
2K Gemeinsamer RAM 125
Anhang B Komponenten
Beschreibung
16-Bit-Mikroprozessor 20
Prioritätscodierer 48
Decodierschaltung 26 RAM 35
ROM 23
RAM 125
Bidirektionale Tore 104, 106, 216, 228, 136
Tore 120, 103, 121, 105, 215, 236, 410, 411, 412, 424
1-aus-i6-Decodierer 135 Eingabemultiplexer 131
Ausgabeverriegelung 130 Mikroprozessor 205 ROM 206
CTC 208
MC68008 Mikroprozessor, hergestellt von Motorola Inc.
8-Leitung-aus-3-Leitung-Prioritätscodierer
SN74LS148 hergestellt von Texas Instruments
20L10 und 20 χ 4 programmierbare Anordnungslogik, hergestellt von
Monolithic Memories Inc.
8K χ 8 Direktzugriffsspeicher, Serien-Nr. HM6264LP hergestellt
von Hitachi
32K χ 8 UV löschbarer PROM, Serien-Nr. 27256, hergestellt
von Intel
2K χ 8 Direktzugriffsspeicher,
Serien-Nr. 6116, hergestellt von Hitachi
Bidirektionale Bus-Sendeempfänger, Serien-Nr. 74LS245 hergestellt von Texas Instruments
3-Zustands-Octalpuffer und
Leitungstreiber,
Serien-Nr. 74LS244 hergestellt von Texas Instruments
Serien-Nr. 74LS244 hergestellt von Texas Instruments
Zwei 3-aus-8-Decodierer, Serien-Nr. 74LS13S, hergestellt
von Texas Instruments
Zwei 8-Bit-Multiplexer, Serien-Nr. 74LS251, hergestellt
von Texas Instruments
Adressierbares S-Bit-Latch, Serien-Nr. 74LS259, hergestellt von Texas Instruments
8-Bit-Mikroprozessor, Serien-Nr. Z84C0, hergestellt
von Zilog Inc.
16K χ 8 UV löschbarer PROM, Serien-Nr. 27128, hergestellt von Intel
Zähler/Zeitgeber-Schaltung,
Serien-Nr. Z8430, hergestellt von Zilog Inc.
BAD ORIGINAL
Adreßverriegelung
Mikrocomputer 210
SCC 227
Kontaktplanprοgrammzähl
er 40
Echtzeitzähler 426
Verriegelungen 420, 422 und 450
Tore 458 und 459 Verriegelung 440 Tore 457
3-auf-8-Decodierer 442 und 456
1-auf-8-Selektor 2-auf-4-Decodierer Octales D-Typ Transparentlatch,
SN74LS373, hergestellt von Texas Instruments
EinzelChipmikrocomputer,
Serien-Nr. Z8611, hergestellt von Zilog Inc.
Serielle Eingabe/Ausgabe-Steuerung, Serien-Nr. Z8030,
hergestellt von Ziolg
Vier 4-Bit-Synchronzähler, Serien-Nr. 74LS161
Drei BCD-Zähler, Serien-Nr. 74LS192 und zwei
Binärzähler, Serien-Nr. 74LS193
Octales D-Typ Transparentlatch, Serien-Nr. 74LS373
Tore mit 3-Zustands-Ausgängen, Serien-Nr. 74LS125
Octales D-Typ Flipflop, Serien-Nr. 74LS273
Octale Puffer und Leitungstreiber, Serien-Nr. 74LS240
Decodierer/Demultiplexer, Serien-Nr. 74LS138
Daten-Selektor/Multiplexer,
Serien-Nr. 74LS151
Decodierer/Demultiplexer, Serien-Nr. 74LS139
Anhang C Strukturplanprogramm
Das in diesem Anhang beschriebene Strukturplanprogramm ist ein Beispiel für ein Programm, das unter
Verwendung des Programmierungsgeräts 6 in das speicherprogrammierbare Steuergerät eingegeben werden kann.
Dieses Programm wird in Verbindung mit einem Prozeß beschrieben, der in FIG. 23 bildlich dargestellt ist.
Eine derartige bildliche Darstellung des von dem speicherprogrammierbaren Steuergerät gesteuerten Prozesses
ist typisch für Darstellungen, wie sie von hochauflösenden FarbdarStellungsanschlußgeräten wiedergegeben
werden, die unter der Bezeichnung "Advisor" von der Allen-Bradley Company, Inc. vertrieben werden. Bei
dem beispielhaften Prozeß wird eine Trockensubstanz verwogen, mit einer Flüssigkeit und Wasser vereint,
gemischt und als resultierendes Produkt abgegeben. Der Mischer kann auch mit Wasser ausgewaschen werden.
Eine Funktionsplandarstellung dieses Prozesses ist in FIG. 24 dargestellt. Jeder Block in diesem Plan repräsentiert
einen Zustand oder einen Schritt, und jeder Block hat einen entsprechenden Descriptor 506, der in
der Strukturplandefinition 504 im RAM 35 gespeichert ist. Die resultierende Strukturplandefinition 504 ist
in FIG. 25 dargestellt. Es sei bemerkt, daß der Descirptor Nr. 1 eine gleichzeitige Divergenz ist, die
veranlaßt, daß die beiden Descriptoren Nr. 3 und Nr. gleichzeitig aktiv werden, wenn das als Datei Nr. 34
30 gespeicherte Kontaktplanprogramm vollendet ist.
Jede Strukturplandefinition zeigt mit ihrer Programmdateinummer ein Kontaktplanprogramm an, das
ausgeführt werden soll, wenn der Descriptor auf der Aktivzustandsliste 505 (FIG. 12A) aufgelistet ist.
Das folgende sind graphische Darstellungen dieser
BAD ORIGINAL
beispielshaften Kontaktplanprogramme, wie sie auf dem
Bildschirm 8 des angeschlossenen Programmierungsgeräts
6 erscheinen. Diese Kontaktplanprogramme sind ähnlich denjenigen, die von zahlreichen handelsüblichen speicherprogrammierbaren
Steuergeräten verwendet werden, allerdings bis auf einen wesentlichen Unterschied.
Dieser Unterschied ist die "Struktur-Rückkehr"-Anweisung
("STRUCTURE RETURN" instruction), die erforderlich ist, um geeignete Parameter an die Strukturplaninterpretierroutine
zu leiten. Die Struktur-Rückkehr ist eine "Ausgabe"-Anweisung dergestalt, daß sie lediglich
ausgeführt wird, wenn der Sprossenzustand (rung condition) "wahr" ist, nachdem die vorangegangenen Anweisungen
auf ihrer Sprosse (rung) ausgeführt sind. Der Operand der Struktur-Rückkehr-Anweisung identifiziert
den Rückkehrwert, der von der Strukturplaninterpretierroutine
verwendet wird und der diejenigen E/A-Gestelle identifiziert, die von der E/A-Abtastroutine abgetastet
werden müssen, und zwar im Anschluß nach jeder Abtastung
20 durch das Kontaktplanprogramm (FIG. 10).
In den folgenden Kontaktplänen hat das Zeichen "ff " die Bedeutung von Nr.
3 S^tQ
Kontaktplanprogrammdatei Nr.
Funktion : START ■
I LS #1
I LS #2
AL #1 I
AL #2 I
-(L)- +
-(L)- +
Test, ob einer der Rohsubstanztrichter leer ist
LS #3 -] C-AL #4
-(L)-
-(L)-
TS #1 -] C-AL #3
-(L)- +
-(L)- +
I PB #3
I AL #1 +—3 C-I
AL #2
I AL #3
I AL #4
I PB #1 ♦ —] [-
AL #1 AL #2 AL #3 AL #4 -(U) (U) (U) (U)-
STRUKTURRÜCKKEHR —
Rückkehrwert * #0 Abzutast. Gestelle 0,1
I PB #2
STRUKTURRÜCKKEHR
Rückkehrwert β #1 Abzutast. Gestelle 0,1
STRUKTURRÜCKKEHR —
Rückkehrwert ■ #2 Abzutast. Gestelle 0,1
(ENDE)
/Wenn Mischer {nicht leer ist
oder Temp.- J Schalter ge- ^ schlossen ist
oder keine Rohsubstanzen vorhanden sind, starte nicht den Zyklus
Wähle Produktzyklus aus
+ Wähle Waschzyklus aus
Kontaktplanprogranimdatei Nr.
Funktion: WIEGE TROCKENSUBSTANZEN
I V #1 V(#l^|
V #1 I
+- GEQ + (U)-- +
wenn Gew. >* 5 I .. I
+- STRUKTURRÜCKKEHR —+
Rückkehrwert * #i I Abzutast.Gestelle 0,1 I
I (ENDE)—+
3ÖIÜ433
Kontaktplanprogrammdatei Nr. 65
Funktion : WASCHE MISCHER
Funktion : WASCHE MISCHER
1 TON #1 -+ Fülle Mischer
5.0 sec
T #1 Zeitgabe V #3
■ TON #2 -+ Weiche Mischer 15.0 sec I ein
I T #2 Zeitgabe V #4
+—] [ ( )—+ Führe Abwasser
I T #1 getan T #2 getan
«.-.] [Λ ] [-- STRUKTURRÜCKKEHR +
I Rückkehrwert = #1
I Abzutast. Gestelle 0,1
(ENDE)—
mit Wasser
Kontaktplanprogrammdatei Nr. 24
Funktion : GIB TROCKENSUBSTANZEN EIN ,
+ TON #3 - +
I 5.0 sec I
I I
I G #1 I
+ ( )—+ Gib Zugaben in
I I Wiegevorrich-
I T #3 Zeitgebe I tung
+--]/[ STRUKTURRÜCKKEHR +
I Rückkehrwert = #1 I
I Abzutast. Gestelle o,l I
■(ENDE) —
Kontaktplanprogrammdatei Nr. 39
; Funktion : FÜHRE FLÜSSIGKEIT ZU
; Funktion : FÜHRE FLÜSSIGKEIT ZU
+ TON #4 -+ Gib Flüssig
I 8.0 sec I keit hinzu
I I
I T #4 Zeitgebe V #3 ! +..] [ ( )—+
I I
I T #4 getan I
+__] [ STRUKTURRÜCKKEHR +
I Rückkehrwert = #1 |
I Abzutast. Gestelle 0,1 |
I I
+ (ENDE)—+
Kontaktplanprogrammdatei Nr. 7 Funktion : MISCHE PRODUKT
TON #5 -+ Mischer läuft
45.0 see
T #5 Zeitgabe TS #1 MS #1
TS #1 MS #1 AL #3 +__] [ + (υ) (L)-
+— STRUKTURRÜCKKEHR —+
Rückkehrwert* #o Abzutast. Gestelle 0,1
T #5 getan MS #1 ..] [ + (υ) +
+-- STRUKTURRÜCKKEHR
Rückkehrwert= #1 Abzutast. Gestelle 0,1
(ENDE)—
für 45 see
Kontaktplanprogrammdatei Nr. 12 Funktion : ENTLEERE MISCHER
LS #3
V #4
LS #3
STRUKTURRÜCKKEHR
Rückkehrwert « #1 Abzutast. Gestelle 0,1
(ENDE)--
Anhang D
Strukturplaninterpreter
Strukturplaninterpreter
bc\r | «turnoHfSC^flags |
bne | poweruostart |
bclr | «1oadtorun,SC-flags |
bne | co 1d—st art |
bra | What^to^o |
poweruDStart t | |
btst | •SC.stertover,SC-ST |
bne | poweruP—conti nue |
cold—start s | |
movea.l | «SC.state.Hst, aO |
moveq,1 | •15,dO |
* Wurde Energie gerade hochgefahren? τ^
» Ja, springe £?
* Ändert sich Betriebsart von Laden auf Laufen?
ϊ Ja, springe
ϊ Ja, springe γ»
; Lösche Zustandsliste t (-1 für dbf)
Joopa: cir.w CaOJt
Joopa: cir.w CaOJt
dbf dO,1oopa
move,w *SC.f i rst ,PC-state-.Hst ; Setze erste Pass-Flagge und Descriptor Nr. O
bclr «dosinofuncfSC.flags ? Ist dies ein Einzelfünktion-GPL-Aufruf?
beg powerue.continue ϊ Nein, springe
S i ng—func i
move.w SC-s1ng,SC-state-Jist t Gib Funktionsdescriptomummer auf Liste
Pοwerup—conti nue!
move.l «SC.state.list,SC-running-state >
Setze Aktivzeiger auf ersten Eingang move·1 Sc.running^stateial ; Bekomme Lauf-Zustand
clr.w SC-RET-VAL <
»Lösche Rückkehrwert
bra continue.on2
what-to-doS | SC-running—stat er al | » |
move.1 | «SC.fi rstjbit,(al) | ; |
bcir | SC-RET-VAL | 1 |
tst.w | cont i nue—on | j |
beg | (al),Ol | • 9 |
move,w | #SC—HeSC-msk tdt | 1 |
and.w | *SC—done»(el) | » |
ori.w | *l,dO | J |
move.w | UP-AODP-OP |
•
* |
bsr | #0,a0 | * |
ernpa,1 | a.ddr—error | » |
beg | (aO),dO | » |
Htove.w | *SCD—num_fo1 1ow»dO | |
and. w | #S»d 0 | |
rol .w | ||
;one o
οίο,,οπβ
be«3 not hi ng—t o—do
move,w (aO),dl and,w «SCD-path-type#dl
beg do—ei—el ι
CWDj(W *SCO—do—one»dI
i s.they.done
η seiect i on
bsr remove«, entry
bge VaI-Ok
move,w dO, SCRET-VAL
move.w SC-RET-VAL»d3
wi move.w O(eO) Crf31 » (al )
move,w O(aO)td31»(al)
.bvt* fix
ori.w #SC.first,(al)
bra continue«„on
al = Zeiger
Lösche erste Abtastflagge in Liste Ist diese Funktion vollständig?
Nein, springe
d1 = Descriptornummer (Funktionsnummer)
Bewahre Descriptionsnummer Setze Getan-Bit
dO = Descriptordateinummer aO = Adresse dieses Descriptors
überprüfe Rückkehr einer gültigen Adresse
Wenn Adresse nicht gültig, springe Bekomme erstes Wort vom Descriptor
idO ο Nummer folgender Zustände ;Ist nnn gültig d.h. nicht Null
iNein, springe
yBekomme erstes Wort vom Descriptor
:d1 = Typ vom "Pfad" (tt) JIn-Line-Aufeinanderfolge? Ja, springe
»Eine von η Selektionen?
τ Nein, springe
»Eine von η Selektionen, entferne diese Funktion
τ Gibt es genug nnns
yJa, springe
«Mache Rückkehrwert zum Auswählen der letzten Funktion id3 = scr Rückkehrwert
;Verdopple für Wortindex jLade nächste Funktion an Ende von Liste
jSetze erste Pass-Flagge »Fahre fort
CO Ca)
1 simultannous diverge» or in-line sequence» or one of n converge
tst.w
ble
adda.1
ble
adda.1
re»ove_ent ry
dO
cont i nue.on
*2#eO
; Entferne diese Funktion t Sind da irgendwelche nnns?
J Nein, springe ι aO a Erste folgende Funktionsnummer
loopdx emea.l SC.stateM1 i st+32»al
bit no.space
move.w (aO) + »(al)
subq.w *l»dO
bgt ιooüd
bra continue_on
!simultaneous converae
iS-they—donet
moveft.l *SC.state«HstraÖ
clr.l dO
subq.w #l»dO
move.l SC.running—stftte»-I
adda.1 #2»aO
oopf: addo.w fl»df
CrnD . w (11 φ Ov
bit clear.em
wove.w «I5»d5
wove.w CaO)+fd6
O r i , w
Ist genug Platz für nnns?
Nein, springe Kopiere Descriptornummern auf Listeneingänge
Setze Flaggen Sind noch irgendwelche nnn's zu bewegen?
Ja, springe Fahre fort
a4 β Adresse von Liste
d4 = Zähler nnn-1 zum Überprüfen ob getan
Bewahre Adresse dieses Eingangs aO =s Adresse von erster folgender Funktion
Noch irgendetwas zu überprüfen? Nein, springe ... wir sind am Ende der nnn's und
Die letzte Funktion sollte starten Lade Zahl mit Nummer von Eingängen in Liste Bekomme nnn-ten folgenden Zustand in d6
j Setze Getan- und GUltigkeits-Bit
(J"
\oop*:
1 oopi
dbeg
move
cmpi
bne
move.1
dbf
move
bpa
clear—em;
loop):
1oopg:
not_r
skip:
uot irove.1
cir.w dbf
wove·1 bsr
move·w
OPJ1W
move.1 move.l
cmpa.1
(.1 move«w
beg
move.w c 1 P .w cmpa.1
bie
d5»1oope
a4,-(a7) #-l,d5 1 oopf <a7)+,al
d4,loopi Ca7)*,al
centinue.on
*2#dfl
(a7)+,al
-2fal)
OU0 1oopj
Ca7)*,al
remove^ent ry
(aO),(al)
«SC.fi rst,(al)
*SC_state.J *st#al
al $ a^
-running_91 ate r a
tT
s3>SC_runni ng_st et e
(al)+»dO ski ρ dO, (β3) +
1 οορα : Suche Liste für diesen Eingang gerade getan
; Bleibe in Schleife, wenn nicht gefunden oder nicht am
: Bewahre Adresse dieses Eingangs Listenende
y Wenn gefunden
t Springe, versuche zu finden neues nnn in Liste
: Eingang nicht gefunden, lösche bewahrte Liste
7 Springe, wenn noch nicht gelöscht
7 Eingang nicht gefunden, lösche bewahrte Liste
ι Springe
movea.l SC-punning_st at er al
bra
continue«. on2 ι Korrigiere d4, -1 für dbf, -1 für ersten Eingang
i Rufe bewahrte Dinge zum Löschen
? Eingang zum Löschen ist vorhergehend
; Springe, wenn mehr zu löschen
Bekomme diesen Listeneingang
Entferne diese Funktion
Plaziere letzte Funktionsnummer auf Liste
Setze erste Anwender-Pass-Flagge
Starte auf Oberseite von Liste (al Quelladresse)
(a3 ist Bestimmungsadresse)
Ist dies das gerade laufende?
Nein, springe
Korrigiere Lauf-Zustand
Überprüfe Eingang
Wenn Null, kopiere nicht, springe
Kopiere
Lösche alte Stelle
Am Ende?
; Nein, springe zurück
; Nein, springe zurück
$ Springe
movea.l SC_running—stater al
adda.l #2,al
cont < nue—on25
cmpa.l «SC.state.J i
bgt start_at_top
tst.w | (al) |
bn# | found—next |
wovea.1 | jSC.state.Jistfal |
tst.w | fat) |
hen | not hlng—to—do |
found_nextϊ | |
move.1 | alfSC—runni ng.st ate |
btst | «Sr.fi rst.bi11 (al) |
beg | no set—1st |
bset | *ScLpl_f1 ag,SC-STATUS |
bra | c\ T-PCf-VaI |
no-.set-.l8t: | |
be Ip | «SC.pl.fl ag,SC-STATUS |
elr Pet_va1: | |
ClP.w | SC-RET-VAL |
ϊ Bekomme Adresse von laufendem Listeneingang
ι Inkrementiere auf nächsten Listeneingang
ι Inkrementiere auf nächsten Listeneingang
τ Ist Zeiger über Listenende hinaus?
» Ja, springe
τ Gibt es einen Eingang hier?
j Ja, springe
? Starte erneut auf Oberseite von Liste
ϊ Gibt es einen Eingang hier?
tNein, springe
ϊ Gibt es einen Eingang hier?
tNein, springe
τ Bewahre Adresse von nächstem laufendem Eingang
;Ist erstes Anwender-Pass-Bit gesetzt?
»Nein, springe
* Setze erstes Pass-Bit im Statusteil von d
:Springe
ϊSetze zurück erstes Pass-Bit im Statusteil
;ßetze zurück scr Rückkehrvrert
;ßetze zurück scr Rückkehrvrert
jewtputs:
j al.l = addfees in list of en« to remove
joutput:
1 al.l s address of next open spot
remv ϊ
bne subq,I rts
remove., done:
clf.w
PtS
cmre.1 *SC„Punning_»tate»al
bne rei«v
subc|«l #2 » SC-Pu^n ΐ n<j.,.s t at β
C"ipa .
bge
remove,entry
(at j Ist dies der laufende Zustand?
Nein, springe
Zeige laufenden Zustand bei vorhergehendem Eingang
Sind wir am Listenende?
Ja, springe
Bewege nächste Stelle in diese Stelle co
War die nächste Stelle gelöscht? Nein, springe cn
Korrigiere Adresse -.-*
Getan ο
Lösche es aus
Getan
Getan
Claims (11)
1. Speicherprogrammierbares Steuergerät zum Betreiben
einer Maschine zwecks Ausübung einer Vielzahl programmierter Funktionen, enthaltend:
einen Speicher zur Speicherung eines ein Kontaktplanprogramm enthaltenden Anwendersteuerprogramms und \
eine mit dem Speicher verbundene Prozessoreinrichtung, die zur Ausführung des Anwendersteuerprogramms
und damit zur Ausübung der Funktionen betreibbar ist, * dadurch gekennzeichnet, '■*,·
daß das Anwendersteuerprogramm eine Vielzahl von χ
Kontaktplanprogrammen aufweist, von denen jedes das programmierbare Steuergerät derart leitet, daß die betriebene
Maschine eine spezielle Funktion vornimmt, t-,
und zusätzlich zu der Vielzahl von Kontaktplanprogrammen ein Strukturplanprogramm im Speicher gespeichert ist,
das die Sequenz bestimmt, in der die Speicherprogramme zur Steuerung einer mit dem programmierbaren Steuergerät
verbundenen Maschine auszuführen sind, und daß die Prozessoreinrichtung enthält:
eine mit dem Speicher gekoppelte Einrichtung zum Interpretieren des Strukturplanprogramms zwecks Erstellung
einer gespeicherten Aktivzustandsliste, welche diejenigen Kontaktplanprogramme anzeigt, die auszuführen
sind, und
eine mit der gespeicherten Aktivzustandsliste und dem Speicher gekoppelte Einrichtung zum Ausführen der
angezeigten Kontaktplanprogramme zwecks Vornahme der diesen Kontaktplanprogrammen zugeordneten speziellen
Funktionen.
2. Steuergerät nach Anspruch 1, dadurch gekennzeichnet,
daß die Einrichtung zum Interpretieren des Strukturplanprogramms, nachdem die Einrichtung zur Ausführung
der angezeigten Kontaktplanprogramme ein Kontaktplanprogramm ausgeführt hat, betreibbar ist, um zu ermitteln,
ob das ausgeführte Kontaktplanprogramm von der gespeicherten Aktivzustandsliste entfernt werden soll
und ob andere Kontaktplanprogramme der gespeicherten Aktivzustandsliste hinzugefügt werden sollen.
3. Steuergerät nach Anspruch 2, dadurch gekennzeichnet,
daß das gespeicherte Strukturplanprogramm eine Vielzahl
von Strukturplandefinitionen aufweist und jede Strukturplandefinition eine Programmdateinummer enthält,
die ein der Strukturplandefinition zugeordnetes Kontaktplanprogramm identifiziert, sowie eine Zielnummer
enthält, die ein Kontaktplanprogramm identifiziert, welches auf die gespeicherte Aktivzustandsliste
gelegt werden soll, wenn das zugeordnete Kontaktplanprogramm von der gespeicherten Aktivzustandsliste
entfernt wird.
25
4. Steuergerät nach Anspruch 3»
dadurch gekennzeichnet, daß jede Strukturplandefinition eine Vielzahl von
Zielnummern enthält, die eine entsprechende Vielzahl von Kontaktplanprogrammen identifizieren, und jede
Strukturplandefinition einen Code enthält, der von der Einrichtung zum Interpretieren des Strukturplanprogramms
benutzt wird, um aus der Vielzahl der Zielnummern eine Zielnummer auszuwählen, wenn das zugeordnete
Kontaktplanprogramm von der gespeicherten Aktivzu-
35 Standsliste entfernt werden soll.
5. Verfahren in einem speicherprogrammierbaren Steuergerät
mit einem Speicher zur Speicherung eines Anwendersteuerprogramms und mit einem Prozessor zur Ausführung
des Anwendersteuerprogramms zwecks Leitung und Führung des Betriebs einer mit dem Steuergerät verbundenen Maschine
durch eine Sequenz von Zuständen, gekennzeichnet durch:
Speicherung eines Strukturplanprogramms, das die Sequenz von Zuständen definiert,
Speicherung einer Vielzahl von Kontaktplanprogrammen, von denen jedes einen Satz von Kontaktplanprogrammanweisungen
enthält, die die Funktionen angeben, welche die Maschine ausführen soll, und von denen jedes einen
Satz von Kontaktplanprogrammanweisungen enthält, die angeben, wenn die Maschine zu einem anderen ihrer Zustände
wechseln soll, und
Verarbeitung des gespeicherten Strukturplanprogramms mit den folgenden Schritten:
(a) Auswahl eines gespeicherten Kontaktplanprogramms, das dem laufenden oder gegenwärtigen Zustand
der Maschine zugeordnet ist,
(b) Verarbeitung des ausgewählten Kontaktplanprogramms zum Betreiben, Betätigen bzw. Bedienen der
Maschine,
(c) Abwählen des ausgewählten Kontaktplanprogramms, wenn während seiner Verarbeitung ein Wechsel
oder eine Änderung des Zustands angezeigt wird, und (d) Wiederholung der Schritte (a), (b) und (c).
30
6. Verfahren nach Anspruch 5,
dadui^ch gekennzeichnet,
daß die Verarbeitung des ausgewählten Kontaktplanprogramms die wiederholte Ausführung des ausgewählten
Kontaktplanprogramms umfaßt, bis ein Zustandswechsel angezeigt wird und das Kontaktplanprogramm abgewählt
wird.
^
7. Verfahren nach Anspruch 5 oder 6,
dadurch gekennzeichnet, daß die Verarbeitung des gespeicherten Strukturplans
ferner umfaßt:
Speicherung einer Aktivzustandsliste, die den laufenden oder gegenwärtigen Zustand der Maschine anzeigt
und die Indikatoren speichert, welche diejenigen gespeicherten Kontaktplanprogramme identifiziert, die
dem gegenwärtigen Zustand der Maschine zugeordnet sind, und
Änderung der Aktivzustandsliste, wenn während der Verarbeitung eines ausgewählten Kontaktplanprogramms
ein Zustandswechsel angezeigt wird,
* wobei das zu verarbeitende Kontaktplanprogramm aus
^ 15 denjenigen ausgewählt wird, die von der Aktivzustandsliste
angezeigt werden, und dieses Programm dadurch abgewählt wird, daß sein Indikator aus der Aktivzustandsliste
entfernt wird.
20
8. Verfahren nach Anspruch 7,
dadurch gekennzeichnet, daß eine Strukturplandefinition für jedes Kontaktplanprogramm
gespeichert wird und jede Strukturplandefinition eine Dateinummer speichert, die das Kontaktplanprogramm
identifiziert, welches ihr zugeordnet ist, > sowie eine Zielnummer speichert, die ein anderes Kon
taktplanprogramm angibt, das der Aktivzustandsliste hinzuzufügen ist, wenn das zugeordnete Kontaktplanprogramm
abgewählt wird.
9. Speicherprogrammierbares Steuergerät,
gekennzeichnet durch:
einen Speicher zur Speicherung einer Vielzahl von Kontaktplanprogrammanweisungen, die ein Kontaktplanprogramm
enthalten, wobei jede der Kontaktplanprogrammanweisungen einen Operationscode aufweist,
einen mit dem Speicher über einen Adreßbus und einen
Datenbus verbundenen Mikroprozessor, der zur Ausführung eines Kontaktplanprogramminterpretierprogramms betreibbar
ist, das in dem Speicher gespeichert ist und den Mikroprozessor leitet und führt, um solche Kontaktplanprogrammanweisungen
auszuführen, die Operationscodes in einem ersten Operationscodesatz haben, und um ein Transfersignal
zu erzeugen, und
einen mit dem Mikroprozessor und dem Speicher über den Adreßbus und den Datenbus verbundenen Bit-Prozessor,
der ansprechend auf die Erzeugung des Transfersignals
betreibbar ist, um ein Sperrsignal bereitzustellen, das dem Mikroprozessor zugeführt wird und die Ausführung des
Kontaktplanprogramminterpretierprogramms durch den Mikroprozessor
anhält, welcher Bit-Prozessor enthält:
eine Einrichtung zum Abrufen von Kontaktplanprogrammanweisungen von dem Speicher,
eine Einrichtung zur Ausführung der abgerufenen Kontaktplanprogrammanweisungen,
die Operationscodes in einem zweiten Operationscodesatz haben, und
eine Einrichtung, die ansprechend auf eine abgerufene Kontaktplanprogrammanweisung, die einen Operationscode
in dem ersten Operationscodesatz aufweist, die Bereitstellung des Sperrsignals beendet und es auf diese Weise
dem Mikroprozessor ermöglicht, mit der Ausführung des Kontaktplanprogramminterpretierprogramms fortzufahren.
ί
^
^
10. Steuergerät nach Anspruch 9, dadurch gekennzeichnet
daß der Bit-Prozessor und der Mikroprozessor einen Kontaktplanprogrammzähler enthalten, der mit dem
Datenbus und dem Adreßbus verbunden ist, und der Mikroprozessor ansprechend auf die Ausführung des Kontaktplanprogramminterpretierprogramms
betreibbar ist, um den Inhalt seines Kontaktplanprogrammzählers zu dem Kontaktplanprogrammzähler des Bit-Prozessors vor der
Erzeugung des Transfersignals zu übertragen, und daß der Mikroprozessor ansprechend auf die Ausführung des
Kontaktplanprogramminterpretierprogramms im Anschluß an die Beendigung der Erzeugung des Sperrsignals betreibbar
ist, um den Inhalt des Kontaktplanprogramm-Zählers des Bit-Prozessors zum Kontaktplanprogrammzähler
des Mikroprozessors zu transferieren.
11. Steuergerät nach Anspruch 9 oder 10, dadurch gekennzeichnet, daß der Datenbus eine Vielzahl von Leitungen oder Adern
aufweist und die Operationscodes in dem zweiten Operationscodesatz die Ausführung von einzelbitorientierten
Operationen leiten und führen, und daß der Bit-Prozessor *, enthält:
κ 25 eine Bitauswahleinrichtung, die mit dem Datenbus
verbunden ist und ansprechend auf einen Bitzeigercode in dem abgerufenen Kontaktplanprogrammanweisungsoperationscode
betreibbar ist, um eine der Leitungen oder Adern im Datenbus auszuwählen, und einen booleschen Prozessor, der mit der Bitauswahleinrichtung
verbunden ist und ansprechend auf den Operationscode in der abgerufenen Kontaktplanprogrammanweisung
betreibbar ist, um unter Verwendung des Logiksignals an der ausgewählten Leitung oder Ader im Datenbus eine
Logikoperation auszuführen oder an der ausgewählten Datenbusleitung oder Datenbusader ein Logikausgangssignal
zu erzeugen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/717,221 US4742443A (en) | 1985-03-28 | 1985-03-28 | Programmable controller with function chart interpreter |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3610433A1 true DE3610433A1 (de) | 1986-10-02 |
DE3610433C2 DE3610433C2 (de) | 2002-06-20 |
Family
ID=24881185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3610433A Expired - Lifetime DE3610433C2 (de) | 1985-03-28 | 1986-03-27 | Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter |
Country Status (4)
Country | Link |
---|---|
US (1) | US4742443A (de) |
CA (1) | CA1242031A (de) |
DE (1) | DE3610433C2 (de) |
GB (1) | GB2177826B (de) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0304880A2 (de) * | 1987-08-26 | 1989-03-01 | Allen-Bradley Company, Inc. | Programmierbare Steuerung mit parallelen Prozessoren |
EP0311007A2 (de) * | 1987-10-07 | 1989-04-12 | Allen-Bradley Company, Inc. | Speicherprogammierbare Steuerung mit mehreren Taskprozessoren |
EP0331060A2 (de) * | 1988-02-29 | 1989-09-06 | Allen-Bradley Company, Inc. | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode |
FR2646254A1 (fr) * | 1989-04-24 | 1990-10-26 | Yokogawa Electric Corp | Dispositif de commande programmable |
EP0496097A2 (de) * | 1990-12-26 | 1992-07-29 | Allen-Bradley Company, Inc. | Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4941081A (en) * | 1985-06-03 | 1990-07-10 | Microfast Controls Corp. | Interrupt zone in rung of ladder program in programmable controller |
US5157595A (en) * | 1985-07-19 | 1992-10-20 | El Paso Technologies, Company | Distributed logic control system and method |
US5239628A (en) * | 1985-11-13 | 1993-08-24 | Sony Corporation | System for asynchronously generating data block processing start signal upon the occurrence of processing end signal block start signal |
CA1283738C (en) * | 1985-11-13 | 1991-04-30 | Atsushi Hasebe | Data processor |
US4839803A (en) * | 1986-09-05 | 1989-06-13 | Hitachi, Ltd. | Planning support method and system |
US4972365A (en) * | 1987-05-01 | 1990-11-20 | Allen-Bradley Company, Inc. | Executing downloaded user programs in a programmable controller |
US5072356A (en) * | 1988-04-11 | 1991-12-10 | Square D Company | Ladder drum sequence controller |
US5023770A (en) * | 1988-04-11 | 1991-06-11 | Square D Company | High-speed press control system |
JPH083731B2 (ja) * | 1988-10-18 | 1996-01-17 | 株式会社日立製作所 | プログラマブルコントローラ |
US5068778A (en) * | 1988-11-28 | 1991-11-26 | Reliance Electric Industrial Company | Industrial control system device |
US5042002A (en) * | 1989-03-31 | 1991-08-20 | Allen-Bradley Company, Inc. | Programmable controller with a directed sequencer |
US5319783A (en) * | 1989-03-31 | 1994-06-07 | Allen-Bradley Company Inc. | Programmable controller with an operator messaging function |
US5005152A (en) * | 1989-04-05 | 1991-04-02 | Allen-Bradley Company | Industrial controller with decompilable user program |
EP0435215A1 (de) * | 1989-12-25 | 1991-07-03 | Mazda Motor Corporation | Methode zur Simulation eines Programmes zur Folgesteuerung |
US5581759A (en) * | 1990-04-02 | 1996-12-03 | Hitachi, Ltd. | Apparatus and method for controlling a system process |
JP2530380B2 (ja) * | 1990-04-02 | 1996-09-04 | 株式会社日立製作所 | プロセス制御方法及び制御用コントロ―ラ |
US5168441A (en) * | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5212631A (en) * | 1990-08-31 | 1993-05-18 | Allen-Bradley Company, Inc. | Programmable controller processor module having multiple program instruction execution sections |
CA2048944A1 (en) * | 1990-08-31 | 1992-03-01 | Otomar S. Schmidt | Processor for a programmable controller |
US5265005A (en) * | 1990-08-31 | 1993-11-23 | Allen-Bradley Company, Inc. | Processor for a programmable controller |
US5162986A (en) * | 1990-10-19 | 1992-11-10 | Allen-Bradley Company, Inc. | Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller |
US5265004A (en) * | 1991-10-15 | 1993-11-23 | Allen-Bradley Company, Inc. | Sequence controller with combinatorial Boolean logic |
US5392424A (en) * | 1992-06-11 | 1995-02-21 | Allen-Bradley Company, Inc. | Apparatus for detecting parity errors among asynchronous digital signals |
KR950009687B1 (ko) * | 1992-06-30 | 1995-08-26 | 삼성항공산업주식회사 | 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치 |
GB2268816B (en) * | 1992-07-14 | 1996-01-17 | Sony Broadcast & Communication | Controlling equipment |
US5473531A (en) * | 1993-12-28 | 1995-12-05 | At&T Corp. | Finite state machine with minimized memory requirements |
US5485620A (en) * | 1994-02-25 | 1996-01-16 | Automation System And Products, Inc. | Integrated control system for industrial automation applications |
US5619658A (en) * | 1995-05-15 | 1997-04-08 | Nvidia Corporation | Method and apparatus for trapping unimplemented operations in input/output devices |
US5896289A (en) * | 1996-09-05 | 1999-04-20 | Allen-Bradley Company, Llc | Output weighted partitioning method for a control program in a highly distributed control system |
US5796603A (en) * | 1996-10-17 | 1998-08-18 | Allen Bradley Company, Inc. | Partitioning program for highly distributed control system to reduce network traffic |
US5893105A (en) * | 1996-11-12 | 1999-04-06 | Micrografx, Inc. | Executable flowchart |
US6055632A (en) * | 1997-09-25 | 2000-04-25 | Allen-Bradley Company, Llc | Method and apparatus for transferring firmware to a non-volatile memory of a programmable controller system |
DE19983975B3 (de) * | 1999-08-30 | 2006-05-18 | Mitsubishi Denki K.K. | Programmierbares Steuersystem und Rücksetz-Steuerverfahren für das programmierbare Steuersystem |
US6640163B1 (en) * | 2002-09-30 | 2003-10-28 | Husco International, Inc. | Operating system for a programmable controller of a hydraulic system |
JP4766252B2 (ja) * | 2006-04-28 | 2011-09-07 | オムロン株式会社 | プログラマブルコントローラおよび通信ユニット |
JP6139386B2 (ja) | 2013-11-27 | 2017-05-31 | 株式会社東芝 | プログラマブルコントローラ |
JP6517474B2 (ja) * | 2014-05-12 | 2019-05-22 | 株式会社東芝 | プログラマブルコントローラ、及び演算処理システム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810104A (en) * | 1972-07-31 | 1974-05-07 | Allen Bradley Co | Programmable magnetics for a numerical control system |
US4162536A (en) * | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4038533A (en) * | 1976-09-29 | 1977-07-26 | Allen-Bradley Company | Industrial control processor system |
US4149235A (en) * | 1976-12-27 | 1979-04-10 | Mcdonnell Douglas Corporation | Computer numerical control system for machine tool |
CA1103364A (en) * | 1977-04-25 | 1981-06-16 | Raymond A. Grudowski | Programmable controller with integral microprocessor |
US4228495A (en) * | 1978-12-19 | 1980-10-14 | Allen-Bradley Company | Multiprocessor numerical control system |
-
1985
- 1985-03-28 US US06/717,221 patent/US4742443A/en not_active Expired - Lifetime
-
1986
- 1986-03-14 GB GB8606328A patent/GB2177826B/en not_active Expired
- 1986-03-27 CA CA000505336A patent/CA1242031A/en not_active Expired
- 1986-03-27 DE DE3610433A patent/DE3610433C2/de not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0304880A2 (de) * | 1987-08-26 | 1989-03-01 | Allen-Bradley Company, Inc. | Programmierbare Steuerung mit parallelen Prozessoren |
EP0304880A3 (de) * | 1987-08-26 | 1992-09-23 | Allen-Bradley Company, Inc. | Programmierbare Steuerung mit parallelen Prozessoren |
EP0311007A2 (de) * | 1987-10-07 | 1989-04-12 | Allen-Bradley Company, Inc. | Speicherprogammierbare Steuerung mit mehreren Taskprozessoren |
EP0311007A3 (en) * | 1987-10-07 | 1989-08-02 | Allen-Bradley Company, Inc. | Programmable controller with multiple task processors |
EP0331060A2 (de) * | 1988-02-29 | 1989-09-06 | Allen-Bradley Company, Inc. | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode |
EP0331060A3 (en) * | 1988-02-29 | 1990-09-12 | Allen-Bradley Company | Programmable controller with stored tokenized source code |
FR2646254A1 (fr) * | 1989-04-24 | 1990-10-26 | Yokogawa Electric Corp | Dispositif de commande programmable |
EP0496097A2 (de) * | 1990-12-26 | 1992-07-29 | Allen-Bradley Company, Inc. | Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme |
EP0496097A3 (en) * | 1990-12-26 | 1992-09-23 | Allen-Bradley Company, Inc. | Programmable controller processor for concurrently executing multiple user control programs |
Also Published As
Publication number | Publication date |
---|---|
CA1242031A (en) | 1988-09-13 |
GB2177826A (en) | 1987-01-28 |
DE3610433C2 (de) | 2002-06-20 |
GB2177826B (en) | 1989-08-02 |
GB8606328D0 (en) | 1986-04-23 |
US4742443A (en) | 1988-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3610433A1 (de) | Speicherprogrammierbares steuergeraet mit funktionsplaninterpreter | |
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
EP1146432B1 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
DE2306115C2 (de) | Datenprozessor mit Mikroprogrammspeicherüberlagerung | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE2209282C3 (de) | Datenverarbeitungsanlage | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE3638572C2 (de) | ||
DE69839194T2 (de) | Gerät und verfahren zum initieren hardwarevorrangsmanagement durch softwarekontrollierten registerzugriff | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2801563C2 (de) | ||
DE2054068A1 (de) | Mit Programmverschachtelung arbei tendes Datenverarbeitungssystem zur gleichzeitigen Verarbeitung mehrerer Programme | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2521289A1 (de) | Datenfeldprozessor | |
DE1274825B (de) | Speicherprogrammiertes Datenverarbeitungssystem zur Verarbeitung von Programmen anderer Datenverarbeitungssysteme | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2756762A1 (de) | Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE2019444A1 (de) | Datenverarbeitungsanlage | |
DE2713253A1 (de) | Programmlader fuer ein steuergeraet | |
DE2054835A1 (de) | Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor | |
DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE60027357T2 (de) | Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: HOLTZ MARTIN LIPPERT, 60322 FRANKFURT |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: JUNG HML, 80799 MUENCHEN |