DE3610433C2 - Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter - Google Patents

Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter

Info

Publication number
DE3610433C2
DE3610433C2 DE3610433A DE3610433A DE3610433C2 DE 3610433 C2 DE3610433 C2 DE 3610433C2 DE 3610433 A DE3610433 A DE 3610433A DE 3610433 A DE3610433 A DE 3610433A DE 3610433 C2 DE3610433 C2 DE 3610433C2
Authority
DE
Germany
Prior art keywords
program
ladder
bit
control
stored
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.)
Expired - Lifetime
Application number
DE3610433A
Other languages
English (en)
Other versions
DE3610433A1 (de
Inventor
David R Rohn
Terry L Dauterman
Ronald E Schultz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of DE3610433A1 publication Critical patent/DE3610433A1/de
Application granted granted Critical
Publication of DE3610433C2 publication Critical patent/DE3610433C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13105Two or more languages, ladder diagram or progression, basic program

Description

Die Erfindung bezieht sich auf speicherprogram­ mierbare 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 typi­ scherweise mit industriellen Anlagen wie Montagestraßen und Werkzeugmaschinen verbunden und dienen dazu, die Anlagen in Abhängigkeit von einem gespeicherten Pro­ gramm 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 ge­ speichert 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 programmierbaren Steuergerättyp ausführen kann, die in mittleren bis großen Steuergeräten nicht nur Anweisungen enthalten, welche die Manipulation von Einzelbit-Ein­ gabe- und -Ausgabe-Daten umfassen, sondern auch arith­ metische Anweisungen, Dateihandhabungsanweisungen sowie Anweisungen beinhalten, die Zeitgeber und Zähler, Ab­ lauffolgesteuerungen und andere komplexe Vorgänge betreffen. Um sicherzustellen, daß das speicherprogram­ mierbare 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 Ge­ schwindigkeit, mit der ein programmierbares Steuerge­ rät die Anweisungen in seinem Anweisungssatz ausführen kann, sowie der Umfang oder die Größe des Steuerpro­ gramms stellen die Hauptfaktoren dar, die für die Ge­ schwindigkeit entscheidend sind, mit der das speicher­ programmierbare Steuergerät wiederholt das Steuerpro­ gramm 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 Indu­ strie weitgehend standardisiert, und sie können direkt den Elementen eines auch mit "Ladder"-Diagramm be­ zeichneten 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 schwer­ fä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.
Aus der Druckschrift etz Band 105 (184) Heft 11, Seite 534 bis 538, ist es bekannt, bei speicherprogrammierbaren Steuerun­ gen eine "strukturierte" Programmierung anzuwenden. Bei dieser bekannten strukturierten Programmierung wird das Programm modul­ weise aufgebaut. Das Gesamtprogramm besteht aus einem überge­ ordneten Hauptprogramm mit vom Anwender erstellten Programm­ bausteinen und Funktionsbausteinen. Diese bekannte strukturier­ te Programmierung ist derart getroffen, daß man beispielsweise beim Erreichen einer bestimmten Stelle im Hauptprogramm zum Anfang eines Programmbausteines springt und am Ende des Pro­ grammbausteines bei der gleichen Stelle in das Hauptprogramm zurückspringt. Dies hat den Vorteil, daß die einzelnen Pro­ grammmodule in sich abgeschlossen, separat prüfbar sind und bei der Abarbeitung des Hauptprogramms mehrmals und von ver­ schiedenen Stellen aus zur Anwendung gebracht werden können.
Aus der DE 28 17 536 A1 ist es prinzipiell bekannt, Anwenderprogramme von speicherprogrammierbaren Steuerungen interpretativ abzuarbeiten.
Die Erfindung geht im Oberbegriff des Patentanspruchs 1 aus von einem Stand der Technik, der dargestellt ist in: Fachberichte Messen - Steuern - Regeln Nr. 10, Fortschritte durch digitale Meß- und Automatisierungstechnik/INTERKAMA-Kongress 1983, Springer-Verlag Berlin und Heidelberg 1983, Seiten 459-458. Dort ist ein Steuerungsverfahren für eine speicherprogrammierbare Steuerung beschrieben, bei der eine Sequenz von Zuständen vorliegt, die in einer Ablaufsteuerung festgelegt sind und die zeitliche Aufeinanderfolge der Zustände bzw. Schritte beschreiben, die durch Bedingungen verknüpft sind. Ferner sind Kontaktplanprogramme, welche die Funktionen der Maschine vorgeben, erläutert, sowie die alternative Darstellung im Funktionsplan dargelegt.
Aufgabe der Erfindung ist es, große Steuerungsaufgaben einfacher, leichter und schneller zu handhaben und insbeson­ dere die Geschwindigkeit zu erhöhen, mit der der Prozessor das gesamte Anwendersteuerprogramm ausführen kann.
Diese Aufgabe wird durch ein Verfahren zum Steuern einer Maschine mit einer mit der Maschine verbundenen speicherprogrammierbaren Steuerung gemäß dem Patentanspruch 1 gelöst. Die vorgeschlagene Lösung beruht im wesent­ lichen darauf, daß unter Heranziehung des gespeicherten Struk­ turplanprogramms eine Aktivzustandsliste erstellt wird, die festlegt, welches oder welche der Vielzahl separater Kontakt­ plansteuerprogramme zu irgendeinem Zeitpunkt bzw. gerade aus­ zuführen sind, um eine gerade aktuelle Steuerungsaufgabe an der Maschine durchzuführen. Der Erfindung liegt die Erkenntnis zugrunde, daß große Steuerungsaufgaben für 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 ver­ stehen ist und das mit einer sehr hohen Abfrage- oder Abtastgeschwindigkeit ausgeführt werden kann. Die Sequenz, in der die separaten Steuerschritte ausgeführt werden, ist durch das Strukturplanprogramm definiert, bei dem es sich um einen generellen Ausdruck bezüglich der Art und Weise handelt, wie die gesteuerte Maschine oder der gesteuerte Prozeß betätigt oder betrieben wer­ den muß. Der Anwender kann daher unter Verwendung von Strukturplangestaltungen die generelle Art und Weise definieren, in der die Maschine oder der Prozeß zu be­ treiben ist, und dann die Einzelbetriebsweise der Ma­ schine oder des Prozesses in separaten, leicht zu hand­ habenden Leiter- oder Kontaktplanprogrammen definieren.
Ein besondere Vorteil der Erfindung ist auch die Erhöhung der Geschwindigkeit, mit der das gesamte Anwen­ dersteuerprogramm ausgeführt werden kann. Zu diesem Zweck ist das Steuerprogramm in separat ausführbare Leiter- oder Kontaktplanprogramme aufgeteilt, und es werden, wie bereits erwähnt, nur solche Kontaktplanprogramme aus­ geführt, die zum gegenwärtigen Zeitpunkt erforderlich sind. Anstatt der Ausführung eines einzigen großen Kontakt­ planprogramms schafft somit die Erfindung die Möglichkeit, mit einer viel höheren Abtastgeschwindigkeit ein oder mehrere kleine Kontaktplanprogramme auszuführen.
In vorteilhafter Weise kann das erfindungsgemäße Verfahren mit einer aus der DE 28 17 536 A1 bekannten speicherprogrammierbaren Steuerung durchgeführt werden, die darauf abzielt, die Geschwindigkeit zu erhöhen, mit der der Prozessor ein Leiter- oder Kontaktplanprogramm aus­ führen kann. Dies wird durch die Verwendung eines Bit­ prozessors bzw. booleschen 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 bereit­ steht, 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 Mikro­ prozessoren zu assistieren, fährt der nach der Erfin­ dung vorgesehene Bit-Prozessor damit fort, Steuer­ anweisungen 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 Kontaktplanpro­ gramme 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 Kontrolle der Gesamtsteuerung behält.
Vorzugsweise führt bei dem erfindungsgemäßen Verfahren ein Mikroprozessor eine Struktur­ planinterpretierroutine aus, um das Strukturplanpro­ gramm zu interpretieren und auf diese Weise eine Aktiv­ zustandsliste zu erstellen, die diejenigen Kontaktplan­ programme anzeigt, welche ausgeführt werden sollen. Der­ selbe 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 ent­ nommen werden. In dieser Beschreibung wird auch Bezug auf Zeichnungen genommen, an Hand von denen ein bevor­ zugtes Ausführungsbeispiel der Erfindung beschrieben ist. Es zeigt:
Fig. 1 eine perspektivische Ansicht eines speicherprogrammierbaren Steuergeräts, das von der Erfindung Gebrauch macht,
Fig. 1A ein schematisches Blockschaltbild eines Prozessor-Bausteins, der einen Teil der Steuergeräts nach Fig. 1 bildet,
Fig. 2 ein elektrisches Schaltschema eines Steuerteils, der Teil des Prozessor-Bausteins nach Fig. 1 bildet,
Fig. 3 ein elektrisches Schaltschema eines Orts-Eingabe/Ausgabe-Teils des Prozessor-Bausteins nach Fig. 1A,
Fig. 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,
Fig. 5B ein elektrisches Schaltschema einer Logikeinheit, die Teil des Bit-Prozessors nach Fig. 5A bildet,
Fig. 5C ein Zeitdiagramm, das zur Erläuterung der Betriebsweise der Steuerschaltung nach Fig. 5A dient,
Fig. 6 eine Speicherabbildung eines Direkt­ zugriffsspeichers, der Teil des Steuerteils nach Fig. 2 bildet,
Fig. 7 bis 9 schematische Darstellungen von Datenstrukturen, die im Direktzugriffsspeicher der Steuerteils nach Fig. 2 gespeichert sind,
Fig. 10 ein Flußdiagramm eines Exekutivpro­ gramms, das vom Steuerteil nach Fig. 2 ausgeführt wird,
Fig. 11 ein Flußdiagramm eines Strukturplan­ interpretierprogramms, 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 Steuer­ teils nach Fig. 2 gespeichert sind,
Fig. 13 ein Flußdiagramm einer Leiter- oder Kon­ taktplanprogramminterpretierroutine, die Teil des Pro­ gramms nach Fig. 10 bildet,
Fig. 14 eine Speicherabbildung des Direktzu­ griffsspeichers, der Teil des Orts-E/A-Teils nach Fig. 3 bildet,
Fig. 15 eine Speicherabbildung des Direktzugriffs­ speichers, der Teil des Kommunikationsteils nach Fig. 4 bildet,
Fig. 16 ein Flußdiagramm einer 10-ms-Unterbre­ chungsbedienungsroutine, die vom Steuerteil nach Fig. 2 ausgeführt wird,
Fig. 17 ein Flußdiagramm eines Schedulerpro­ gramms, das vom Mikroprozessor im Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 18 ein Flußdiagramm einer 10-ms-Unterbre­ chungsbedienungsroutine, die vom Mikroprozessor im Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 19 ein Flußdiagramm einer weiteren Unter­ brechungsbedienungsroutine, die vom Mikroprozessor im Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 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 Mikro­ computer im Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 22 ein Flußdiagramm einer Serienkanalunter­ brechungsbedienungsroutine, die vom Mikrocomputer im Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 23 eine Bilddarstellung einer beispiels­ weise vom speicherprogrammierbaren Steuergerät nach Fig. 1 gesteuerten Maschine,
Fig. 24 eine Schemadarstellung eines Struktur­ planprogramms der als Beispiel dargestellten Maschine nach Fig. 23 und
Fig. 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) auf­ weist. Die Bausteine sind an eine Mutterschaltungs­ platte 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-Baustei­ ne 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 Posi­ tionier-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 Pro­ grammierungsgerät 6 enthält eine Tastatur 7, mit deren Hilfe der Anwender Daten zur Programmierung des Pro­ zessor-Bausteins 3, zum Betreiben des Prozessor-Bau­ steins 3 oder zum Überwachen des Prozessorbetriebs eingeben kann. Ein Kathodenstrahlröhren-Bildschirm 8 dient zur Anzeige alphanumerischer Daten sowie von Kontaktplandarstellungen von Anwendersteuerprogrammen. In ein Diskettenlaufwerk 9 kann eine Diskette einge­ setzt 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 bilden­ de Mutterschaltungsplatte mit einem E/A-Adapter-Bau­ stein 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 Ge­ stells 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 Programmierungsge­ rä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än­ gigkeit vom Zustand von Eingabegeräten, die mit den Eingabe-Bausteinen 4 verbunden sind, Ausgabegeräte be­ trieben, 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 Verarbeitungs­ leistung verfügt, damit er das gespeicherte Steuerpro­ gramm äußerst schnell ausführen kann. Da weiterhin eine große 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.
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 Kommunikations­ teil 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 vorwie­ gend verantwortlich für die Kommunikation mit dem Programmierungsgerät 6 und den Fern-E/A-Gestellen 11. Die Hauptfunktionen des Orts-E/A-Teils 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-Bau­ steins 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 Daten­ bus 22 ansteuert. Der Mikroprozessor 20 führt in einem Festwertspeicher 23 gespeicherte Maschinensprachanwei­ sungen aus, und zwar zur Durchführung der darin ent­ haltenen Funktionen. Diese Maschinensprachanweisungen werden durch einen Programmzähler im Mikroprozessor 20 adressiert und aus der adressierten Zeile des Festwert­ speichers (ROM) 23 ausgelesen, wenn eine Freigabesteuer­ leitung 24 und eine Lesesteuerleitung (RD) 25 aktiv sind. Die abgerufene Anweisung wird vom Mikroprozes­ sor 20 decodiert und ausgeführt zwecks Vornahme der angegebenen Funktion. Die in Abhängigkeit von der Aus­ führung dieser Maschinensprachanweisungen oder "Firmware" durchgeführten Funktionen als auch die Organisation der Firmware wird unten in weiteren Einzelheiten be­ schrieben. 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 Micro­ processor With 8-Bit Data Bus", veröffentlicht 1982 von Motorola, Inc., verwiesen.
Es können auch Daten aus anderen Elementen des Prozessor-Bausteins 3, 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ßda­ ten vom Adreßbus 21 sowie Steuersignale von einem Steuerbus 27 erhält, der vom Mikroprozessor 20 ange­ steuert wird. Die Decodierschaltung 26 erhält auch ein Signal von einer R/W-Steuerleitung 28, die ent­ weder vom Mikroprozessor 20 oder von einem separaten Bit-Prozessor 30 angesteuert werden kann. Die Deco­ dierschaltung 26 erhält noch eine Reihe anderer Ein­ gangssignale, die im einzelnen noch beschrieben wer­ den. Zusätzlich zur RD-Steuerleitung 25 und zur ROM-Freigabesteuerleitung 24 steuert die Decodier­ schaltung 26 eine Schreibfreigabesteuerleitung 31, eine RAM-Freigabesteuerleitung 32 und eine Bit-Pro­ zessor-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 be­ schrieben. Im Anhang A ist der Speicherplatz angege­ ben, 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 Anwender­ steuerprogramm enthält ein oder mehrere Leiter(ladder)- oder Kontaktplanprogramme, die aus Anweisungen beste­ hen, mit denen der Anwender speicherprogrammierbarer Steuergeräte vertraut ist und die über das Programmie­ rungsgerät 6 in den RAM 35 geladen werden. Das Anwen­ dersteuerprogramm 37 enthält auch ein Strukturplan­ programm (structure chart program), das einmalig 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 ent­ weder 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 Maschinensprach­ interpreterroutine zu lokalisieren, die im ROM 23 gespeichert ist. Der Mikroprozessor 20 führt somit Leiterprogrammanweisungen dadurch aus, daß er ent­ sprechende 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 Mikropro­ zessor 20 arbeitet, um ausgewählte Anweisungen der Lei­ terprogrammanweisungen direkt auszuführen. Der Mikroprozessor 20 beginnt mit der Ausführung des Leiterpro­ gramms (d. h. der Programmabfrage oder Programmabtastung), überläßt jedoch unmittelbar danach die Leitung oder Füh­ rung dem Bit-Prozessor 30. Dieser Führungstransfer wird dadurch erreicht, daß die Adresse der Leiterprogramman­ weisung 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 einen Busanforderungsanschluß BR besetzt. Der Bit-Prozessor 30 ruft die Leiterprogrammanweisung ab, führt sie aus und ruft dann nachfolgende Leiterpro­ grammanweisungen ab und führt sie so lange aus, bis eine Anweisung auftritt, die er nicht ausführen kann. Jetzt wird die zuvor besetzte Busanforderungslei­ tung 41 freigesetzt, und der Mikroprozessor 20 über­ nimmt wieder die Führung oder Kontrolle der Programm­ ausführung. Der Mikroprozessor 20 liest den Inhalt des Leiterprogrammzählerregisters 40 in seinen eigenen Leiterprogrammzähler und geht dann dazu über, die an­ gegebene Leiterprogrammanweisung abzurufen und auszu­ führen. Obgleich der Bit-Prozessor 30 zur Ausführung von nur einigen wenigen "bit-orientierten" Anweisun­ gen 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 Programmabfragezeit beträchtlich reduziert wird.
Der Bit-Prozessor 30 enthält auch eine Echtzeit­ uhr (in Fig. 2 nicht gezeigt), die in regelmäßigen Abständen ein Unterbrechungssignal an eine Steuerlei­ tung 45 legt. Diese Unterbrechungsanforderung und weitere Unterbrechungsanforderungen, die an Leitungen 46 und 47 auftreten, werden den Eingängen eines Priori­ tätscodierers 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 Unterbrechungs­ anforderung an. Hat der Bit-Prozessor 30 gerade die Kontrolle oder Führung bezüglich einer Unterbrechungs­ anforderung, 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 Unterbre­ chung stammt vom Kommunikationsteil 3C des Prozessor- Bausteins 3 und wird unten noch im einzelnen beschrie­ ben. Die Unterbrechung an der Leitung 47 erscheint, wenn gerade ein Energieverlust auftritt und der Mikro­ prozessor 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 über­ mittelt werden, wenn bidirektionale Tore 104 freigege­ ben 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 Kommuni­ kationsteil 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 be­ stimmt, welcher Teil des Prozessor-Bausteins 3 zu den gemeinsamen Bussen 101 und 102 Zugriff haben darf. Die Schaltung 110 kann ein Anforderungssignal vom Steuer­ abschnitt 3A über eine REQ-Leitung 111 (Decodierschal­ tung 26 in Fig. 2) oder eine Anforderung vom Kommuni­ kationsteil 3C über eine CREQ-Steuerleitung 112 er­ halten. Die Arbiterschaltung gewährt zu einer Zeit jeweils einem der Teile die Anforderung, und zwar da­ durch, 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 Decodier­ schaltung 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 frei­ zugeben. 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 haben.
Das Orts-E/A-Teil enthält einen Direktzugriffsspei­ cher (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-Bild­ tabelle 126 sowie Kommunikationsdaten 127. Daten kön­ nen in eine adressierte Zeile des gemeinsamen RAM 125 eingeschrieben oder aus einer adressierten Zeile aus­ gelesen werden, wenn der RAM 125 über eine Adreßbus­ ader SA11 freigegeben wird und eine Schreib-Steuer­ leitung 128 aktiv ist. Die Schreib-Steuerleitung (WRITE) 128 wird angesteuert vom Prozessorteil 3A oder 3C, je nachdem, welchem Teil die Kontrolle über die gemeinsa­ men Busse 101 und 102 gewährt worden ist, und der ge­ meinsame 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-Ausgangs­ verriegelung 130 und einen 16-Bit-Eingangsmultiplexer 131. Die Ausgangsverriegelung wird freigegeben von einer Adreßbusader SA13, und der Zustand der Datenbusader SD0 kann in einen der acht Ausgänge geschrieben werden, und zwar wie es vom Zustand der acht Adreßbusadern SA0 bis SA2 ausgewählt wird. Einer dieser Ausgänge steuert die Unterbrechungssteuerleitung 46 an, die mit dem Priori­ tä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 Aus­ gang 132 der Verriegelung 130 steuert eine E/A-Rück­ setzleitung an, die mit jedem E/A-Baustein 4 im Orts­ gestell 1 verbunden ist. Dieser Ausgang kann betätigt werden, um alle Stell- oder Betätigungsvorrichtungen zu sperren, die vom Ortsgestell 1 aus gesteuert werden.
Der Eingangsmultiplexer wird von einer Adreßbus­ ader SA14 freigegeben, und der Zustand von zwei belie­ bigen Eingängen der sechzehn Eingänge wird in Überein­ stimmung mit dem Auswählcode an den Adreßbusadern SA0 bis SA2 auf die Datenbusadern SD0 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-Deco­ dierer 135 und eine Gruppe bidirektionaler Tore 136 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ßbus­ ader 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 Ein­ gabevorrichtungen, bringt mit diesen Informationen seine Eingabe/Ausgabe-Bildtabelle 38 im RAM 35 auf den neuesten Stand, bringt die mit dem Ortsgestell 1 ver­ bundenen 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 Kommunika­ tionsteil 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 Eingabe­ vorrichtungen 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 ver­ bundenen Ausgabevorrichtungen aus. Programmierungsgerät­ nachrichten, die vom Kommunikationsteil 3C empfangen werden, werden im Kommunikationsabschnitt 127 des ge­ meinsamen RAM 125 gespeichert und irgendwelche Antwort­ nachrichten 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 Unter­ brechungsbedienungsroutine 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 Beantwor­ tung von Maschinensprachprogrammanweisungen, die in einem Festwertspeicher (ROM) 206 gespeichert sind, und führt auf diese Weise die meisten der Kommunikations­ teilfunktionen aus. Bei dem Mikroprozessor 205 kann es sich um ein Bauelement vom Typ "Z80" 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 da­ durch an, daß sie ein Signal an einer Wartesteuerlei­ tung (WAIT) 207 erzeugt, die den Mikroprozessor 205 in einen Wartezustand bringt, bis die Arbiterschal­ tung 110 den Zugriff gewährt. Sobald der Zugriff ge­ währt ist, entfernt die Decodierschaltung das Signal WAIT von der Wartesteuerleitung 207, und der Mikro­ prozessor 205 kann dann Speicherlese- und Speicher­ schreiboperationen an im gemeinsamen RAM 125 gespei­ cherten 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 verbin­ den. Hierbei handelt es sich um Hochgeschwindigkeits­ kanä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 "Z8" von Zilog, Inc. handeln, und dieser Mikro­ computer enthält einen nicht dargestellten intern mas­ kierten Festwertspeicher (ROM), der Maschinensprach­ anweisungen speichert, die seinen Betrieb anweisen. Der Mikrocomputer 210 teilt einen 8K mal 8-Bit-Direkt­ zugriffsspeicher (RAM) 211 mit dem Mikroprozessor 205, und seine Hauptfunktion besteht darin, alle Unterbre­ chungen 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 trans­ feriert dann diese Daten zwischen dem RAM 211 und dem gemeinsamen RAM 125 im Orts-E/A-Teil 3B.
Wie 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 Mikro­ prozessor 210 über eine Steuerleitung 212. Die CTC 208 kann an einer Steuerleitung 213 einen Unterbrechungs­ aufruf erzeugen, und sie ist such als Zeitgeber ausge­ legt, der an der INT-Leitung 209 alle 10 ms einen Un­ terbrechungsaufruf erzeugt. Als Antwort auf einen Unter­ brechungsaufruf von der CTC 208 liest der Mikroprozessor 205 eine Vektorgröße von der CTC 208, die den Mikro­ prozessor 205 zu einer im ROM 206 gespeicherten geeig­ neten 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 ver­ bunden. Wird der RAM 211 vom Mikroprozessor 205 adres­ siert, erfolgt über die Adreßbusader AD15 und eine MREQ-Steuerleitung 218 eine Signalisierung einer Schiedsstelle- oder Arbiterschaltung 217. Die Arbiter­ schaltung 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 frei­ gegeben, und der Mikroprozessor 205 wird aus seinem Wartezustand 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 Richtung des Datenflusses durch die Tore 216.
Der Mikrocomputer 210 steuert einen 8-Bit-Daten­ bus 225 an, der verbunden ist mit einem Adreßlatch oder einer Adreßverriegelung 226, einer Serienkommuni­ kationssteuergerä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ßverriege­ lung 226 angesteuert werden, und zwar unter Ausbildung eines Adreßbusses 230. Ein typischer Lese- oder Schreib­ zyklus 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 über den Datenbus 225 übermittelt werden.
Der Mikrocomputer 210 kann zum RAM 211 in ähnli­ cher 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 freige­ geben, um die Busse 230 und 225 mit dem RAM 211 zu ver­ binden. Es wird ein Lese- oder Schreibzyklus ausgeführt, wie es durch den Status oder Zustand einer WT-Steuerlei­ tung 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 auf­ tritt, 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 Unterbrechungsserviceroutine 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 Nachrichtendaten­ abschnitt 242 des RAM 211 geschrieben. In ähnlicher Weise kann der Mikrocomputer 210 Daten aus dem RAM 211 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 folgen­ den 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 Baukompo­ nente ist eine speziell hergestellte integrierte Schal­ tung, die in dieser Form im Handel nicht erhältlich ist. Der Bit-Prozessor 30 ist allerdings aus Elementen aufge­ baut, die funktionsmäßig mit handelsüblichen Elementen äquivalent sind.
Aus Fig. 2 und 5A geht hervor, daß der Bit-Prozes­ sor 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-Mikropro­ zessor 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 Busanfor­ derung 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 Busbewilligungssteuerleitung 402 ein Signal er­ zeugt. Ein Paar in Kaskade geschalteter Flipflops 403 und 404 verriegeln dieses Signal und erzeugen ein Frei­ gabesignal an einer Steuerleitung 406, die zur Steuer­ schaltung 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 C3, die zum Ausführen der Funktionen des Bit-Prozessors erforderlich sind. Der Zyklus C1 ist ein "Lesewort" Zyklus, in welchem die Kontaktplanprogrammanweisung, die vom Kontaktplansteuer­ programmzähler 40 angezeigt wird, vom RAM 35 abgerufen wird. In Abhängigkeit vom Operationscode der abgerufe­ nen Anweisung kann dann entweder ein Zyklus C2 oder ein Zyklus C3 durchgeführt werden. Der Zyklus C2 ist ein "Lese-Modifizier-Schreib"-Zyklus, in welchem ein Ope­ rand 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 Anwendersteuer­ programm 37 abgerufen wird.
XIC - "Prüfe-auf-geschlossen"-Anweisung. Über­ prüft wird ein Bit in der Datentabelle 38 auf eine logische Eins, die einem geschlossenen Kontakt bei entsprechender Stromeinspeisung ent­ spricht. 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 logi­ sche Null, die einen geöffneten Kontakt bei ent­ sprechender 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. Andern­ falls bleibt das Bit unverändert. Der Sprossenstatus wird wieder durch einen "wahren" Zustand initiali­ siert.
BST - "Verzweigungsstart"-Anweisung. Durchgeführt wird die erforderliche Stapelung des gegenwärtigen Status in ein internes "Stapel"-Register, um die Verarbeitung paralleler logischer Pfade zu ermögli­ chen.
NXB - "Nächste-Verzweigung"-Anweisung. Identifiziert wird der Beginn eines anderen parallelen logischen Pfads, und der gegenwärtige Sprossenstatus wird erneut initialisiert.
BND - "Verzweigungsenden"-Anweisung. Durchgeführt wird die erforderliche Entstapelung des Status und ein auf den neuesten Stand Bringen des Haupt­ sprossenstatus 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 Operan­ denadresse für die nachfolgende Anweisung.
Wie aus Fig. 5A ersichtlich, wird beim Abruf einer anderen Steuerprogrammanweisung als den obigen Anwei­ sungen eine Steuerleitung 408 am Ausgang der Logikein­ heit 407 freigegeben. Die Folge davon ist, daß am Ende des gegenwärtigen Zyklus C1 das D-Flipflop 401 zurück­ gesetzt wird und das Busanforderungssignal von der Steuerleitung 41 verschwindet. Die Flipflops 403 und 404 werden ebenfalls gelöscht und die Steuerschaltung 400 wird über die Steuerleitung 406 in eine passive Betriebs­ art versetzt. Die Führung oder Kontrolle wird daher zu­ rück auf den 16-Bit-Mikroprozessor 20 übertragen, der dann durch Freigabe oder Betätigung der Steuerleitung 33 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 40 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 Kontaktplan­ programmzähler 40 einschreiben, und diese Datenbytes nehmen eine solche Voreinstellung des Zählers 40 vor, daß er den geeigneten Punkt im Kontaktplanprogramm adres­ siert. 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 Steuerpro­ grammzähler 40 wird inkrementiert durch die Steuer­ schaltung 400 über eine Steuerleitung 416 in der Mitte und am Ende des C1-Zyklus. Wenn die Führung oder Kon­ trolle zurück an den 16-Bit-Mikroprozessor 20 gegeben wird, kann dieser Prozessor die Inhalte des Kontakt­ planprogrammzählers 40 dadurch auslesen, daß über je­ weilige 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 Mi­ kroprozessor 20 dazu verwendet, um die nächste Kontakt­ planprogrammanweisung abzurufen, wenn der Mikroprozessor 20 die Kontrolle und Führung wieder übernimmt.
Während des C1-Zyklus wird die vom Zähler 40 be­ zeichnete Kontaktplanprogrammanweisung aus dem RAM 35 abgerufen. Jede solche Anweisung enthält einen Opera­ tionscode, 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 Steuer­ leitung 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 400 betätigt wird. Während des nachfolgenden C2- oder C3- Zyklus wird die 16-Bit-Adresse, die von der ADX-Verriegelung 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 freigege­ ben werden. Der gewünschte Operand, der in der Daten­ tabelle 38 des RAM 35 gespeichert ist, kann somit adressiert und bearbeitet werden, und zwar vom Bit­ prozessor 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 Steuerschal­ tung 400 eine Steuerleitung 427 freigegeben wird. Der Echtzeitzähler 426 wird dann von einem an einer Lei­ tung 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 Prioritäts­ codierer 48 (Fig. 2) führt, erscheint dann ein Unter­ brechungsaufrufsignal. Der Echtzeitzähler 426 wird mit einem Wert voreingestellt, der eine solche Unterbre­ chung in regelmäßigen Abständen hervorruft.
Fig. 5A und 5B zeigen insbesondere, daß die Logikeinheit 407, die einen Teil des Bit-Prozessors 30 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 de­ codiert, 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 auszu­ wä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 akti­ viert. Der Zustand kann in den booleschen Prozessor 445 wieder eingespeichert werden, wenn eine Steuerlei­ tung 449 aktiviert wird.
Wird von der OP-Code-Verriegelung 440 ein Opera­ tionscode empfangen, bei dem es sich nicht um einen von denjenigen Codes handelt, die vom Bit-Prozessor 30 aus­ fü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 20 wachgerufen, und der Bit-Prozessor 30 wird in den passi­ ven Betriebszustand überführt. Typischerweise ruft dann der 16-Bit-Mikroprozessor 20 dieselbe Anweisung vom Kon­ taktplanprogramm 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 Re­ gisters 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 er­ lä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 Operanden­ adresse in der Kontaktplanprogrammanweisung angegebene Operand wird während des C3-Zyklus aus der Datentabel­ le 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-Ver­ riegelung 450 gespeichert. Eine 1-aus-8-Selektorschal­ tung 452 ist mit dem Ausgang der Operandenverriegelung 450 verbunden und wird von einem UND-Tor 453 freigege­ ben, wenn entweder der XIC- oder XIO-Operationscode in der Verriegelung 440 vorhanden ist. Der an den Ausgän­ gen 454 der OP-Codeverriegelung 440 erzeugte Bit-Zeiger- Code steuert die Auswahlanschlüsse des 1-aus-8-Selek­ tors 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 Kontaktplanprogrammanwei­ sung 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 Operan­ denverriegelung 450 gespeichert. Der Bit-Zeiger-Code, der an den Ausgängen 454 erscheint, wird an die Ein­ gänge eines 3-Leitung-auf-8-Leitung-Decodierers 456 gelegt, und die acht Ausgänge dieses Decodierers sind verbunden mit den Eingängen von acht Tri-State-Inverter­ toren 457. Dieselben Ausgänge sind mit den jeweiligen Freigabeanschlüssen von acht Bustreibertoren 458 verbun­ den, und der Eingang jedes dieser Tore 458 ist an den Ausgang 447 des booleschen Prozessors 445 angeschlossen. Die Invertertore 457 steuern die jeweiligen Freigabean­ schlüsse von acht zusätzlichen Bustreibertoren 459 an, und sieben von den acht Bits in der Operandenverriege­ lung 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 Ope­ rand wird somit aus der Datentabelle 38 ausgelesen und zurück in die Datentabelle 38 eingeschrieben, wobei je­ doch 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 Prozesso­ ren ihre jeweiligen Funktionen ausführen können. Diese Datenstrukturen umfassen die Datentabelle 38 und das Anwendersteuerprogramm 37 und sind in weiteren Einzel­ 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 Ganzzahl­ datei, die als Eingabebildtabelle 501 dient. Bei der Datendatei Nr. 3 handelt es sich ebenfalls um eine Ganz­ zahldatei, der die Funktion einer Statusdatei 502 zugeordnet ist. Der Inhalt der Statusdatei 502 wird im ein­ zelnen unten noch beschrieben, und die Eingabebildta­ belle 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/A- Gestellen 1 und 11 verbunden sind.
Wie aus Fig. 6 und 8 ersichtlich, kann die Daten­ tabelle 38 viele andere Datendateien umfassen, von denen eine jede unter Verwendung von Datentabellenzeigern 503 lokalisiert werden kann, die in einem Dateiinhaltsver­ zeichnisabschnitt des RAM 35 gespeichert sind. Jeder Datentabellenzeiger 503 enthält eine Einwort-"Datei­ startadresse", 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;
0001 = Zeitgeberstrukturen für Kontaktplanprogramm­ zeitgeberanweisungen;
0010 = Zählerstrukturen für Kontaktplanprogramm­ zähleranweisungen;
0011 = Steuerstrukturen;
0100 = Gleitkommazahlen;
0111 = ASCII-Zeichen;
1111 = BCD-Daten für Darstellungszwecke.
Wie oben erwähnt, hat die Datendatei Nr. 2 die Funk­ tion der Statusdatei 502. Wie insbesondere aus Fig. 9 er­ sichtlich, hat die Statusdatei 502 eine Länge von 32 Wör­ tern, und sie enthält eine Anzahl ihr zugeeigneter Struk­ turen:
Wort
Beschreibung
0 arithmetische Statusflaggen
Bit 0 = C - Übertrag
Bit 1 = V - Überlauf
Bit 2 = Z - Null
Bit 3 = N - Vorzeichen
1 Störungsroutineprogrammdateinummer (0 = keine Störungsroutine)
2 Störungen
Bit 0 = Software-Überwachung (software watchdog)
Bit 1 = illegaler OP-Code
Bit 2 = illegale Adresse
Bit 3 = keine Kennung
Bit 4 = Stapelfehler
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 Abfragesperrung
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)
7 Echtzeituhr, Monat (1 bis 12)
8 Echtzeituhr, Tag (1 bis 31, 30, 29 oder 28)
9 Echtzeituhr, Stunden (0 bis 23)
10 Echtzeituhr, Minuten (0 bis 59)
11 Echtzeituhr, Sekunden (0 bis 59)
12 Programmbereichprüfsumme
13 Vorherige Abtastzeit
14 Größte vorherige Abtastzeit
15 Programmüberprüfungssetzpunkt (0 = gesperrt)
16 Echtzeitunterbrechungssetzpunkt in Millisekunden (0 = gesperrt)
17 Echtzeitunterbrechungsdateinummer (0 = gesperrt)
18 Strukturplanstatus
Bit 0 = erste Abtastflagge
Bit 8 = neuer Start mit Beginn des Energiehochfahrens
19 Strukturplanrückkehrwert
Mit besonderem Verweis auf Fig. 6 und 7 wird aus­ gefü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 Programmiden­ tifikation, und wie noch weiter unten beschrieben wird, ist die Programmdatei Nr. 1 die Aktivstrukturplandefi­ nition 504 oder das Strukturplanprogramm. Jede Pro­ grammdatei im Anwendersteuerprogramm 37 ist identifi­ ziert durch einen Programmdateizeiger 499, der im Datei­ inhaltsverzeichnisabschnitt 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 Pro­ grammdatei, und zwar zum Einsatz als Diagnosewerkzeug.
Es gibt drei Typen oder Arten von Programmdateien:
Kontaktplan (ladder); Strukturplan (structure chart); und Maschinensprache (machine language). Die Kontaktplan­ programmdateien 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 speicherprogram­ mierbaren Steuergeräten gefunden wird. Der Ausdruck "Leiter" oder "Kontaktplan" ("ladder") ist vom Kontaktplanformat abgeleitet, das benutzt wird, das Programm auf dem Programmierungsgerät 6 darzustellen. Maschi­ nensprachprogrammdateien 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 be­ schrieben 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 Strukturplaninterpretierrouti­ ne zusätzlich zur Strukturplandefinitionsprogrammdatei 504 eine Aktivzustandsliste 505, die im RAM 35 gespei­ chert ist und sich aus sechzehn Beschreibungs- oder Descriptorzeigern zusammensetzt. Diese Descriptorzeiger sind Adressen von Descriptoren 506, die in der Struktur­ plandefinition 504 gespeichert sind. Die Strukturplan­ definitionsprogrammdatei 504 ist nichts weiter als ein Satz solcher Descriptoren 506, die unter Verwendung des Programmierungsgeräts 6 erzeugt worden sind. Die Descrip­ toren 506 umfassen die Nummer einer Kontaktplanprogramm­ datei, 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 Kontaktplan­ programme an, die zu irgendeinem Zeitpunkt vom Prozessor- Baustein 3 in Betrieb genommen bzw. dem Ablauf zuge­ fü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 über­ mitteln. Unter besonderer Bezugnahme auf Fig. 3 und. 14 wird ausgeführt, daß ein geeigneter Befehl in einen Eingabenachrichtenpuffer 605 im gemeinsamen RAM 125 ein­ geschrieben 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 Steuerunter­ brechungsbefehlsplatz 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 Ausgangs- oder Ausgabenachrichtenpuffer 607 und einen Befehlscode in einen Kommunikationsunterbrechungsbefehlsplatz 608. Der Kommunikationsmikroprozessor 205 wird dann durch den Einschreibvorgang in die Ausgangsverriegelung 130 unter­ brochen. Als Teil seiner Unterbrechungsbedienungsroutine liest der Kommunikationsmikroprozessor 205 den Kommuni­ kationsunterbrechungsbefehl 508, stellt fest, daß ihn eine Antwort im Ausgangsnachrichtenpuffer 607 erwartet, und liest die Antwortnachricht aus dem gemeinsamen RAM 125. Die Unterbrechungsbefehlsplä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­ sor-Bausteins 3 vorzusehen.
Ein etwas ähnlicher Datenaustausch geschieht be­ zü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 empfan­ gen und in den Eingabeabschnitt 126A der E/A-Bildtabelle 126 geschrieben werden. Als Teil seiner regulären E/A- Abtastroutine, die noch im einzelnen weiter unten er­ lä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-Mikropro­ zessor 20 einen Ausgangs- oder Ausgabeabschnitt 126B der E/A-Bildtabelle 126 dadurch auf den neuesten Stand, daß er Daten von seiner eigenen Datentabelle 38 trans­ feriert. Das Kommunikationsteil 3C übermittelt diese Ausgabedaten zu dem geeigneten E/A-Gestell 11.
Jedes Fern-E/A-Gestell 11 hat ein E/A-Gestellstatus­ wort 610, das im gemeinsamen RAM 125 gespeichert ist. Diese Statuswörter sehen bezüglich des Zustands ihrer jeweiligen Fern-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 Kommunikationsmikroprozes­ sor 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.
F = eine E/A-Störung wird angezeigt, wenn dieses Bit gesetzt wird.
I = die Ausgangsabtastung zu diesem E/A-Gestell 11 ist gesperrt.
Die E/A-Gestellstatuswörter 610 werden somit ver­ wendet, um die Übermittlung von E/A-Daten zwischen den Fern-E/A-Gestellen 11 und dem Steuerteil 3A des Pro­ zessor-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 speicherprogrammierbare Steuergerät betrieben werden soll.
R = Lauf-Betrieb (RUN mode), wenn gesetzt,
T = Prüf-Betriebsart, wenn gesetzt,
P = Programm-Betriebsart, wenn gesetzt.
Diese Bits können natürlich geändert oder über­ prü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 Ausgabe­ abschnitte der Fern-E/A-Bildtabelle 241 und ein Satz aus drei E/A-Gestellstatuswörtern 705 vorgesehen. Die Status­ wö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 Ausgabe­ bildtabelle 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 = Eine 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.
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 Antwortnachrich­ ten 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 Ver­ arbeitung der ihm zugeordneten Nachricht zu koordinie­ ren, und es enthält eine Stationsaktivflagge (SA) und eine Nachrichtenaktivflagge (MA). Die Stationsaktiv­ flagge (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 Puf­ fer 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, ar­ beitet er in Abhängigkeit von einem Schedulerprogramm, das im ROM 206 gespeichert ist. Dieser Scheduler ver­ wendet einen Satz von drei Datenstrukturen, eine Steuer­ gerätbefehlswarteschlange 706, eine Programmierungsgerät­ warteschlange 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 Auf­ gaben gegenwärtig ausgeführt wird.
Betriebsweise
Der Betrieb oder die Operation des Steuerteils 3A des Prozessor-Bausteins 3 wird von einer Exekutivrouti­ ne 520 gesteuert, die im ROM 23 gespeichert ist. Im folgenden wird insbesondere auf Fig. 2 und 10 Bezug ge­ nommen. Nachdem das speicherprogrammierbare Steuergerät mit Energie versorgt ist, wird ein Satz von Anweisun­ gen ausgeführt, die in einem Verarbeitungs- oder Prozeß­ block 521 dargestellt sind. Diese Anweisungen dienen zum Erstellen und Initialisieren der im RAM 35 gespeicher­ ten Datenstrukturen. Befindet sich das System in der "LAUF"-Betriebsart (RUN), was in einem Entscheidungs­ block 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 Verar­ beitung fortgefahren. Wie in einem Prozeßblock 524 an­ gedeutet, wird als nächstes eine Strukturplaninterpre­ tierroutine ausgeführt, die, wie es noch später beschrie­ ben wird, eine Kontaktplanprogrammdatei zur Ausführung auswählt. Anschließend wird eine Kontaktplanprogramm­ interpretierroutine 525 ausgeführt, um den Lauf der ausgewählten Kontaktplanprogrammdatei vorzunehmen. Nach einer einzigen Abtastung durch das betriebsbereite Kon­ taktplanprogramm 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-Ge­ stell 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-Ge­ stell gesperrt oder gestört ist. Nachdem die Ausgänge eines Fern-E/A-Gestells 11 aktualisiert worden sind, wird sein "N"-Bit im Statuswort 610 gesetzt. Nach Ver­ vollständigung der E/A-Abtastung werden die System­ flaggen 611 im gemeinsamen RAM 125 überprüft, und, wie es aus Fig. 10 hervorgeht, kommt es bei einem Entschei­ dungsblock 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 umzu­ setzen. Hierzu wird insbesondere auch auf den Anhang C verwiesen, in dem ein Beispiel eines Strukturplanprogramms aufgezeigt ist, das im erfindungsgemäßen Verfahren verarbeitet wird.
Im folgenden wird insbesondere auch auf Fig. 11 und 12 verwiesen. Nach Eintritt in den Strukturplaninter­ preter wird unter Hinweis auf einen Entscheidungsblock 531 ein Strukturplanrückkehrwert 530 (Fig. 9) über­ prüft. Dieser Wert wird durch eine "SCR"- oder "ENDE"- Anweisung bei der Beendigung jedes Kontaktplanprogramms gesetzt. Ist der Wert gleich "0", 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 inkremen­ tiert. 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 Aktivzustands­ listenindex zur Oberseite der Liste 505 zurückgesetzt.
Wie in einem Prozeßblock 535 angedeutet, werden die Datenstrukturen nach Fig. 12A bis 12C dazu be­ nutzt, um das nächste auszuführende Kontaktplanprogramm zu lokalisieren. Der vom Aktivzustandslistenindex an­ gegebene Descriptorzeiger wird zunächst dazu benutzt, um den "gegenwärtig aktiven" Descriptor 506 in der Strukturplandefinitionsprogrammdatei 504 zu lokalisie­ ren. 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 Ver­ bindung mit dem Dateiinhaltsverzeichnis (Fig. 6), um das Kontaktplanprogramm aufzufinden und seine Start­ adresse in den Kontaktplanprogrammzähler des 16-Bit- Mikroprozessors zu laden. Bei 536 weist der Struktur­ planinterpreter einen Ausgang zum Kontaktplanprogramm­ interpreter 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 Kon­ taktplanprogramm, wenn es die ihm zugeordnete Funktion vollendet hat, einen anderen Wert als lull in den Kon­ taktplanrü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"-Feld im ersten Wort des gegenwärtig aktiven Des­ criptors 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 Descriptorzei­ ger von der Aktivzustandsliste 505 zu entfernen, wie es aus einem Prozeßblock 539 hervorgeht. Neue Descrip­ torzeiger werden dann dem Ende der Aktivzustandsliste 505 hinzugefügt, wie es in einem Prozeßblock 540 ange­ deutet ist. Die Anzahl der hinzuzufügenden Descriptor­ zeiger wird vom Wert eines 3-Bit-"n"-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 n = 1, wird der Aktivzustandsliste 505 die erste Zielnummer hinzugefügt, wohingegen bei n = 5, die ersten fünf Zielnummern der Aktivzustandsliste 505 hinzugefügt werden. Durch diese Zustandsänderung können somit bis zu sieben separate Kontaktplanprogramme 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 aufzu­ finden und auszuführen.
Steht im t-Feld des gegenwärtig aktiven Descrip­ tors die Angabe "01", kommt es auch zu einer Zustands­ änderung, wie es in einem Entscheidungsblock 541 ange­ deutet ist. Wie aus einem Prozeßblock 542 ersichtlich, wird der Descriptorzeiger für den gegenwärtigen Des­ criptor von der Aktivzustandsliste 505 entfernt, und am ade der Aktivzustandsliste 505 wird ein anderer Descriptorzeiger hinzugefügt, wie es in einem Ent­ scheidungsblock 543 dargestellt ist. In diesem Fall wird der Ersatzdescriptorzeiger durch den Rücksprung- oder 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ärti­ gen Descriptor 506 in die Aktivzustandsliste 505 ge­ laden. 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 Voll­ endung des Kontaktprogramms, welches in seinem eigenen Programmdateinummernfeld angezeigt wird. Die Auswahl geschieht durch den Rückkehrwert, der durch das Kon­ taktplanprogramm selbst erzeugt wird.
Beträgt der t-Code im gegenwärtig aktiven Des­ criptor gleich "10", wird, wie es ein Entscheidungs­ block 544 angibt, eine "gleichzeitige Konvergenz" einer Vielzahl aktiver Kontaktplanprogramme angezeigt. Die Kontaktplanprogramme werden spezifiziert für eine gleichzeitige Konvergenz durch die ersten n - 1 Ziel­ nummern, die im gegenwärtigen Descriptor 506 gespei­ chert sind. Beträgt der Wert von n 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 Kon­ taktplanprogramme einen nicht Nullwert zurückgegeben haben. Wie es aus einem Entscheidungsblock 545 hervor­ geht, kommt es nicht zu einer Zustandsänderung, wenn die Getan-Bits (D) in all den spezifizierten Aktiv­ zustandslisteneingängen nicht gesetzt sind. Statt dessen kehrt der Strukturplaninterpreter lediglich zum Prozeß­ block 532 zurück, um mit der Verarbeitung der Kontakt­ planprogramme fortzufahren, die durch die Eingänge in der Aktivzustandsliste 505 angezeigt sind.
Sind die Getan-Bits für alle der n - 1 Kontaktplan­ programme, die von den Descriptorzeigern in der Aktiv­ zustandsliste 505 angezeigt werden, gesetzt, wird ent­ sprechend einem Prozeßblock 546 der Descriptorzeiger für den gegenwärtigen Descriptor von der Aktivzustands­ liste 505 entfernt. Ferner werden auch die anderen n - 1 Descriptorzeiger von der Aktivzustandsliste 505 ent­ fernt. Die n-te Zielnummer im gegenwärtigen Descrip­ tor 506 wird dann der Aktivzustandsliste 505 hinzuge­ fügt, oder, um beim obigen Beispiel zu bleiben, die vierte Zielnummer. Dieser Zustandsübergang geschieht in einem Prozeßblock 547, und der Strukturplaninterpre­ ter geht dann in der Schleife zurück, um das nächste Kontaktplanprogramm zu verarbeiten, das von der Aktiv­ zustandsliste 505 angezeigt wird.
In diesem Zusammenhang wird auf den Anhang D ver­ wiesen, wo sich eine Auflistung der Strukturplaninter­ pretierroutine in Assemblersprache befindet.
Für die folgende Erläuterung werden insbesondere Fig. 2, 10 und 13 herangezogen. Beim Austritt oder Aus­ gang aus dem Strukturplaninterpreter 524 ist das zum Laufen gedachte Kontaktplanprogramm identifiziert worden, und zwar dadurch, daß seine Startadresse in den Kontakt­ planprogrammzähler des 16-Bit-Mikroprozessors 20 ge­ laden worden ist. Wie es in einem Prozeßblock 550 an­ gedeutet wird, erfolgt nach dem Eintritt in den Kontakt­ planprogramminterpreter 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 Kon­ taktplanprogrammzähler 40 des Bit-Prozessors 30 (Fig. 5A) eingeschrieben wird. Das Sprossenzustandsregister im 16-Bit-Mikroprozessor 20 wird ebenfalls in den boole­ schen Prozessor 445 (Fig. 5B) bei einem Prozeßblock 554 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 Kontaktplanprogramminter­ preters. Insbesondere werden im Prozeßblock 556 ange­ gebene Anweisungen ausgeführt, um den Sprossenzustand des booleschen Prozessors 445 und den Inhalt des Kon­ taktplanprogrammzählers 40 im Bit-Prozessor 30 auszu­ lesen. Das System ruft dann die angegebene Kontaktplan­ programmanweisung im Rahmen des Prozeßblocks 551 auf.
Wie ferner aus Fig. 13 ersichtlich, wird der Ope­ rationscode in der abgerufenen Kontaktplanprogramm­ anweisung auf die Startadresse des im ROM 23 (Fig. 2) gespeicherten, geeigneten Interpretierprogramms ab­ gebildet, und zwar bei einem Prozeßblock 557. Der 16-Bit-Mikroprozessor 20 beginnt mit der Ausführung der Anweisung, und, wenn es sich bei der Kontaktplan­ programmanweisung um eine "ENDE"- oder "SCR"-Anwei­ sung handelt, ist das Kontaktplanprogramm vollendet, und, wie es in Verbindung mit Entscheidungsblöcken 558 und 559 ersichtlich ist, wird die Führung oder Kon­ trolle zurück an das Exekutivprogramm (Fig. 10) gege­ ben. 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 37766 00070 552 001000280000000200012000285913765500040 0002003610433 00004 37647 die Führung oder Kontrolle wieder dem Bit-Prozessor 30 zu übergeben und die nächste Kontaktplanprogrammanweisung auszuführen.
Vor der Rückkehr zum Exekutivprogramm schreibt der Kontaktplanprogramminterpreter einen Rückkehrwert in die Statusdatendatei 502 (Fig. 9). Dies ist ange­ deutet in einem Prozeßblock 561. Die "ENDE"-Kontakt­ plananweisung schreibt eine "0" für den Rückkehrwert. Die "SCR"-Kontaktplananweisung enthält allerdings einen Operanden, der in die Statusdatendatei 502 ein­ geschrieben wird. Auf diese Weise kann das Anwender­ steuerprogramm den Rückkehrwert durch Steuerung des Werts des Operanden der SCR-Anweisung bestimmen. Zu­ sätzlich gibt der SCR-Anweisungsoperand auch an, wel­ ches der vier E/A-Gestelle abgetastet werden soll. Wie es in einem Prozeßblock 562 angedeutet ist, wird diese "Abtastliste" einer UND-Verknüpfung mit den E/A- Gestellstatusdaten unterzogen und in die Statusdaten­ datei 502 derart eingeschrieben, daß während der nach­ folgenden E/A-Abtastung (Fig. 10) nur solche E/A-Ge­ stelle aktualisiert werden, die einer Aktualisierung bedürfen. Auf diese Weise wird die Gesamtabtastzeit vermindert und das Verhalten des speicherprogrammier­ baren Steuergeräts im Hinblick auf Echtzeitvorgänge verbessert.
Der Kontaktplananweisungssatz, der vom Steuer­ teil 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, wohin­ gegen die übrigen Kontaktplananweisungen dadurch ausge­ führt werden, daß die im ROM 23 gespeicherten Maschinen­ sprachinterpretierroutinen abgebildet werden (mapping).
Im Anhang C sind für ein Beispiel einer zu steuern­ den Maschine ein geeignetes Strukturplanprogramm und geeignete Kontaktplanprogramme zusammengestellt. Diese Programme werden unter Verwendung des Programmierungsgerä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. Wie durch einen Prozeßblock 580 angedeutet, wird der Zustand der Register des Mi­ kroprozessors im RAM 35 aufbewahrt, und ein Überwa­ chungszeitgeber wird zurückgesetzt, wie in einem Prozeßblock 581 gezeigt.
Die von den Zeitgeberanweisungen benutzte Echtzeit­ uhr 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 Ent­ scheidungsblock 584 ab, und der Befehl wird gemäß einem Prozeßblock 585 ausgeführt. In jedem Falle er­ folgt 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 ausge­ führt, daß die Hauptfunktionen des Kommunikationsteils 3C des Prozessor-Bausteins 3 darin bestehen, eine E/A- Abtastung der Fern-E/A-Gestelle 11 über den E/A-Kanal 10 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 ebenfalls im ROM 206 gespeichert sind.
Wie insbesondere aus Fig. 17 ersichtlich, erfolgt der Eintritt in den Scheduler mit dem Hochfahren der Versorgungsenergie, und im Prozeßblock 620 wird ein Satz von Anweisungen ausgeführt, um sowohl im geein­ samen RAM 125 als auch im RAM 211 Datenstrukturen zu initialisieren. Weiterhin werden Unterbrechungen frei­ gegeben, 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 622 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 Überprüfung 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 ver­ bundenen 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 über­ prü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 ein­ liest.
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 aktuali­ sieren 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üng­ sten Eingabeabtastung der E/A-Gestell Nr. 2 eine E/A- Störung festgestellt, wird dies durch das "F"-Bit für die E/A-Gestell Nr. 2 angezeigt. Es wird dann bei 627 in eine Schleife eingetreten, in deren Verlauf das Ausgabebild vom gemeinsamen RAM 125 zum RAM 211 trans­ feriert 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 Aus­ gänge für das angezeigte Gestell vom Steuerteil 3B jüngst aktualisiert worden. Diese aktualisierten Aus­ gä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/A- Gestells. 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 geeig­ neten Fern-E/A-Gestell 11.
Immer noch unter Bezugnahme auf Fig. 14 wird dar­ gelegt, daß nach der Aktualisierung der Eingaben und Ausgaben der Scheduler die Steuerbefehlswarteschlange 706 im RAM 211 überprüft, um festzustellen, ob irgend­ welche Befehle vom Steuerteil 3A der Bearbeitung bedürfen. Trifft dies zu, wie es in einem Entschei­ dungsblock 635 erfaßt wird, wird der angezeigte Be­ fehl gemäß einem Prozeßblock 636 ausgeführt, und dieser Befehl wird dann aus der Warteschlange 706 entfernt, wie es in einem Prozeßblock 637 angedeutet ist. Ein typischer Befehl kann beispielsweise darin bestehen, eine Antwortnachricht im Ausgabenachrichten­ puffer 607 des gemeinsamen RAM 125 (Fig. 14) zu einem der fünfzehn Puffer im RAM 211 (Fig. 15) zu transfe­ rieren.
Falls keine Steuergerätbefehle als Warteschlange aufgereiht sind, wird bei einem Entscheidungsblock 640 die Programmierungsgerätwarteschlange 707 überprüft. Fall vom Programmierungsgerät 6 eine Nachricht empfangen worden ist, wird der geeignete Befehl gemäß einem Pro­ zeßblock 641 ausgeführt, und der Befehl wird dann ge­ mäß 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 Sy­ stemflagge 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 Steuer­ teil 3A und den Serienkanälen 5 und 10 verläuft. Vom Mikroprozessor 205 wird auch ein Satz von Unterbre­ chungsroutinen 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 Mikropro­ zessors im RAM 211 aufbewahrt, und es wird ein Unter­ brechungsbefehl in den gemeinsamen RAM 125 einge­ schrieben, wie es aus einem Prozeßblock 646 hervor­ geht. Das Steuerteil 3A wird dann dadurch unterbrochen, daß eine Einschreibung in die Ausgangsverriegelung (Fig. 3) erfolgt, wie in einem Prozeßblock 647 ange­ deutet, und ein Überwachungszeitgeber wird bei einem Prozeßblock 648 zurückgesetzt. Die Register des Mikro­ prozessors werden dann wieder bei einem Prozeßblock 649 hergestellt, und das System kehrt zu dem unterbrochenen Programm 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
Ü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 205 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 ausge­ führt. Andernfalls werden die Daten im Ausgabenachrich­ tenpuffer 607 als Befehl zur Steuergerätwarteschlange 706 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 Weiterver­ arbeitung des transferierten Steuergerätbefehls fort­ fahren, wenn dafür Zeit zur Verfügung steht.
Es kann noch eine weitere Unterbrechung des Mikro­ prozessors 205 durch den Mikrocomputer 210 (Fig. 4) ini­ tiiert werden. Geschieht dies, dirigiert die CTC 208 den Mikroprozessor 205 zu einer Unterbrechungsbedie­ nungsroutine, 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 in­ terpretiert werden. Versucht beispielsweise das Steuerteil 3A eine Antwortnachricht an das Programmierungs­ gerä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" Steuer­ gerät mit Direktzugriffsspeicher arbeitet, das die Eingabe- und Ausgabeinformation handhabt, welche durch die beiden Serienkanäle 5 und 10 fließt. Der Mikro­ computer 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 initialisie­ ren von Datenstrukturen und zum Freigeben von Unter­ brechungen dienen, wie bei einem Prozeßblock 670 an­ gedeutet. Es wird dann bei 671 in eine Schleife einge­ treten, in deren Verlauf Überprüfungen vorgenommen wer­ den, 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 abge­ tastet worden ist. Trifft dies zu, werden Zeiger ge­ setzt, und zwar mit dem Ziel, das nächste E/A-Gestell 11 bei einem Prozeßblock 673 abzutasten, und gemäß einem Entscheidungsblock 674 wird dann überprüft, um fest­ zustellen, ob das letzte E/A-Gestell abgetastet worden ist. Trifft dies nicht zu, zweigt das System zu einem Prozeßblock 675 ab, um den E/A-Gestellstatus 705 aus dem RAM 211 auszulesen und ihn zur Verwendung durch die E/A-Abtastunterbrechungsbedienungsroutine aufzubewah­ ren. Andernfalls wird eine "E/A-Abtastung-Getan"- Flagge beim Prozeßblock 676 gesetzt, und die Zeiger werden zurückgesetzt, zwecks Abtastung des ersten E/A- Gestells 11 beim Prozeßblock 677. Der E/A-Gestellstatus 705 wird aus dem RAM 211 ausgelesen, und die E/A-Abtast­ unterbrechungsbedienungsroutine wird zur Abtastung des ersten E/A-Gestells 11 gesetzt, wie in einem Prozeß­ block 678 gezeigt. Wie durch einen Prozeßblock 679 an­ gedeutet, 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 Fig. 4, 15 und 20 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 Entscheidungs­ block 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 zu­ sammen 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 Serien­ kanal 5 gegeben worden ist. Falls nicht, wird die Nach­ richtenunterbrechungsbedienungsroutine 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 lokalisie­ ren, die fertig zum Aussenden sind. Wird eine solche Nachricht gefunden, wird die Nachrichtenunterbrechungs­ bedienungsroutine gesetzt, um diese Nachricht auszu­ senden.
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äti­ gung gerade übertragen worden ist.
Trifft 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 ausge­ sendet worden, und wie es in einem Prozeßblock 688 an­ gedeutet ist, wird eine Nachrichtenunterbrechungsbedie­ nungsroutine 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 wor­ den ist, unterbricht die SCC 227 den Mikrocomputer 210 und dirigiert ihn zu einer E/A-Gestellunterbrechungs­ bedienungsroutine. Während der Ausführung dieser Rou­ tine 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 worden, wird bei einem Entscheidungsblock 807 das "Ausgaben-Getan"-Bit (OD) im E/A-Gestellstatuswort 705 überprüft, um festzustel­ len, 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 810 ein Byte aus der Ausgabebildtabelle 241B 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 wor­ den ist, wie in einem Entscheidungsblock 812 entschie­ den, 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 Ausgabebildtabel­ le 241B byteweise, d. h. ein Byte zu einer Zeit, an das gegenwärtige E/A-Gestell ausgesendet, bis alle Ausga­ ben 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 Entscheidungs­ block 807 festgestellt, wird das "ID"-Bit im E/A-Gestell­ statuswort 705 bei einem Entscheidungsblock 815 über­ prüft. Ist dieses Bit zurückgesetzt, wird dadurch an­ gezeigt, daß die Eingaben auf dem laufenden oder gegen­ wä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 124 (Fig. 3) zu transferieren. Besteht keine Veranlassung zur Aktualisierung der Eingaben, wird bei einem Prozeß­ block 816 die "E/A-Gestell-Abgetastet"-Flagge gesetzt, und das System kehrt von der Unterbrechung zurück, nachdem bei einem Prozeßblock 806 die Register wieder er­ neut eingespeichert oder hergestellt worden sind. An­ dernfalls 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 Entscheidungs­ block 805 eine "E/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-E/A-Gestellen 11 kontinuierlich aktuali­ siert. 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 Stell- oder Betätigungsvorrichtungen, die von dem speicherpro­ grammierbaren Steuergerät gesteuert werden, auf einem gewünschten Stand zu halten.
Jetzt wird insbesondere auf Fig. 4, 15 und 20 Bezug genommen. Wird ein Datenbyte entweder über den Serien­ kanal 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 Ent­ scheidung darüber getroffen, ob ein Zeichen empfangen 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 Bestimmungs­ stationsnummer und entspricht diese der Stationsnummer­ einstellung an einem Satz von DIP-Schaltern 828, die mit einem Eingangskanal des Mikrocomputers 210 (Fig. 4) ver­ bunden sind, wird bei einem Prozeßblock 829 eine "Nach­ richt-Empfangen"-Flagge zurückgesetzt, und das System kehrt von der Unterbrechung zurück, nachdem die Register des Mikrocomputers bei einem Prozeßblock 830 wieder her­ gestellt worden sind. Wird die nachfolgende "Ursprungs"- Stationsnummer empfangen, zweigt die Bedienungsroutine bei einem Entscheidungsblock 827 ab, und bei einem Ent­ scheidungsblock 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 er­ reicht durch Überprüfen des "SA"-Bit in dem geeigneten Nachrichtenpuffersteuerbyte, und falls ein Besetzt-Zustand festgestellt wird, wird eine Station-Besetzt-Nachricht zurückgesandt an die Ursprungsstation, wie 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.
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 "Berechtigungs"- oder "Bele­ gungs"-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 20 wird ausgeführt, daß nach dem Aussenden eines Zeichens durch den Serienkanal 5 die Serienkanalunterbrechungs­ bedienungsroutine bei einem Entscheidungsblock 826 zu einem Prozeßblock 840 abzweigt. Die in einem Prozeß­ block 840 angedeuteten Anweisungen dirigieren den Mikro­ computer 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 aus­ gesendet worden ist. Trifft dies zu, wird bei einem Prozeßblock 842 die "Nachricht-Vollständig"-Flagge ge­ setzt und die "Nachricht-Empfangen"- und "Bestätigung- Ausgesendet"-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ög­ lich. So sind beispielsweise viele alternative Maßnahmen bekannt, um die E/A-Bildtabelle mit Daten von den E/A-Gestellen zu aktualisieren und um mit dem Pro­ grammierungsgerät zu kommunizieren.
Anhang A
Steuerteil-Adreßplatz
Kommunikationsteil-Adreßplatz
Orts-E/A-Teil-Adreßplatz
Anhang B Komponenten
Bezugszeichen
Beschreibung
16-Bit-Mikroprozessor 20 MC68008 Mikroprozessor, hergestellt von Motorola Inc.
Prioritätscodierer 48 8-Leitung-aus-3-Leitung-Prioritätscodierer SN74LS148 hergestellt von Texas Instruments
Decodierschaltung 26 20L10 und 20 × 4 programmierbare Anordnungslogik, hergestellt von Monolithic Memories Inc.
RAM 35 8K × 8 Direktzugriffsspeicher, Serien-Nr. HM6264LP hergestellt von Hitachi
ROM 23 32K × 8 UV löschbarer PROM, Serien-Nr. 27256, hergestellt von Intel
RAM 125 2K × 8 Direktzugriffsspeicher, Serien-Nr. 6116, hergestellt von Hitachi
Bidirektionale Tore 104, 106, 216, 228, 136 Bidirektionale Bus-Sendeempfänger, Serien-Nr. 74LS245 hergestellt von Texas Instruments
Tore 120, 103, 121, 105, 215, 236, 410, 411, 412, 424 3-Zustands-Octalpuffer und Leitungstreiber, Serien-Nr. 74LS244 hergestellt von Texas Instruments
1-aus-16-Decodierer 135 Zwei 3-aus-8-Decodierer, Serien-Nr. 74LS138, hergestellt von Texas Instruments
Eingabemultiplexer 131 Zwei 8-Bit-Multiplexer, Serien-Nr. 74LS251, hergestellt von Texas Instruments
Ausgabeverriegelung 130 Adressierbares 8-Bit-Latch, Serien-Nr. 74LS259, hergestellt von Texas Instruments
Mikroprozessor 205 8-Bit-Mikroprozessor, Serien-Nr. Z8400, hergestellt von Zilog Inc.
ROM 206 16K × 8 UV löschbarer PROM, Serien-Nr. 27128, hergestellt von Intel
CTC 208 Zähler/Zeitgeber-Schaltung, Serien-Nr. Z8430, hergestellt von Zilog Inc.
Adreßverriegelung 226 Octales D-Typ Transparentlatch, SN74LS373, hergestellt von Texas Instruments
Mikrocomputer 210 Einzelchipmikrocomputer, Serien-Nr. Z8611, hergestellt von Zilog Inc.
SCC 227 Serielle Eingabe/Ausgabe-Steuerung, Serien-Nr. Z8030, hergestellt von Ziolg
Kontaktplanprogrammzähler 40 Vier 4-Bit-Synchronzähler, Serien-Nr. 74LS161
Echtzeitzähler 426 Drei BCD-Zähler, Serien-Nr. 74LS192 und zwei Binärzähler, Serien-Nr. 74LS193
Verriegelungen 420, 422 und 450 Octales D-Typ Transparentlatch, Serien-Nr. 74LS373
Tore 458 und 459 Tore mit 3-Zustands-Ausgängen, Serien-Nr. 74LS125
Verriegelung 440 Octales D-Typ Flipflop, Serien-Nr. 74LS273
Tore 457 Octale Puffer und Leitungstreiber, Serien-Nr. 74LS240
3-auf-8-Decodierer 442 und 456 Decodierer/Demultiplexer, Serien-Nr. 74LS138
1-auf-8-Selektor 452 Daten-Selektor/Multiplexer, Serien-Nr. 74LS151
2-auf-4-Decodierer 443 Decodierer/Demultiplexer, Serien-Nr. 74LS139
Anhang C Strukturplanprogramm
Das in diesem Anhang beschriebene Strukturplan­ programm ist ein Beispiel für ein Programm, das unter Verwendung des Programmierungsgeräts 6 in das speicher­ programmierbare 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 Pro­ zesses ist typisch für Darstellungen, wie sie von hochauflösenden Farbdarstellungsanschlußgeräten wieder­ gegeben 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 re­ prä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 Des­ cirptor Nr. 1 eine gleichzeitige Divergenz ist, die veranlaßt, daß die beiden Descriptoren Nr. 3 und Nr. 4 gleichzeitig aktiv werden, wenn das als Datei Nr. 34 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 beispielshaften Kontaktplanprogramme, wie sie auf dem Bildschirm 8 des angeschlossenen Programmierungsgeräts 6 erscheinen. Diese Kontaktplanprogramme sind ähnlich denjenigen, die von zahlreichen handelsüblichen spei­ cherprogrammierbaren Steuergeräten verwendet werden, allerdings bis auf einen wesentlichen Unterschied. Dieser Unterschied ist die "Struktur-Rückkehr"-Anwei­ sung ("STRUCTURE RETURN" instruction), die erforderlich ist, um geeignete Parameter an die Strukturplaninter­ pretierroutine zu leiten. Die Struktur-Rückkehr ist eine "Ausgabe"-Anweisung dergestalt, daß sie lediglich ausgeführt wird, wenn der Sprossenzustand (rung condi­ tion) "wahr" ist, nachdem die vorangegangenen Anwei­ sungen auf ihrer Sprosse (rung) ausgeführt sind. Der Operand der Struktur-Rückkehr-Anweisung identifiziert den Rückkehrwert, der von der Strukturplaninterpretier­ routine 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 durch das Kontaktplanprogramm (Fig. 10).
In den folgenden Kontaktplänen hat das Zeichen "#" die Bedeutung von Nr.
Kontaktplanprogrammdatei Nr. 32
Kontaktplanprogrammdatei Nr. 34
Kontaktplanprogrammdatei Nr. 65
Kontaktplanprogrammdatei Nr. 24
Kontaktplanprogrammdatei Nr. 39
Kontaktplanprogrammdatei Nr. 7
Kontaktplanprogrammdatei Nr. 12

Claims (5)

1. Verfahren zum Steuern einer Maschine mit einer mit der Maschine verbundenen spei­ cherprogrammierbaren Steuerung, die einen Speicher (35) zur Speicherung einer Vielzahl Kontaktplanprogramme, von denen jedes einen Satz Kontaktplanprogrammanweisungen ent­ hält, die die Funktionen angeben, welche die Maschine bei der Ausführung der Anweisungen ausüben soll, und einen Prozessor (20, 30) zur Ausführung der Anweisungen zwecks Führung des Betriebs der Maschine durch eine Sequenz von Zuständen aufweist, welches Verfahren enthält:
Speicherung eines die Sequenz von Zuständen definierenden Strukturplanprogramms (504) in dem Speicher (35), und
Verarbeitung des gespeicherten Strukturplanprogramms (504),
dadurch gekennzeichnet,
daß in dem Speicher (35) eine Aktivzustandliste (505) gespeichert wird, die dem derzeitigen Zustand der Maschine zugeordnete Kontaktplanprogramme, welche gerade auszuführen sind, anzeigt, und daß jedes der Kontaktplanprogramme eine Kontaktplanprogrammanweisung (559, 561) enthält, die bei ihrer Ausführung durch den Prozessor (20, 30) eine gegebenenfalls vorzunehmende Änderung des derzeitigen Zustands der Maschine zu einem anderen ihrer Zustände anzeigt, und daß die Verarbeitung des gespeicherten Strukturplanprogramms (504) die folgenden Schritte enthält:
  • a) Auswahl eines in der Aktivzustandsliste (505) angezeigten Kontaktplanpro­ gramms,
  • b) Verarbeitung des ausgewählten Kontaktplanprogramms zur Steuerung der Maschine durch Auslesen der Kontaktplanprogrammanweisungen aus dem Speicher (35) und Ausführen der ausgelesenen Anweisungen in dem Prozessor (20, 30),
  • c) Änderung der Aktivzustandsliste (505) durch Löschung der Anzeige auf das verarbeitete Kontaktplanprogramm, wenn eine Zustandsänderung der Maschine von der Kontaktplanprogrammanweisung bei ihrer Verarbeitung angezeigt wird, und durch das Hinzu­ fügen einer Anzeige auf wenigstens eines der Kontaktplanprogramme, das dem sich aus dem Strukturplanprogramm ergebenden Zustand zugeordnet ist, der dem momentanen Zustand folgt,
  • d) Wiederholung der Schritte (a), (b) und (c).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Verarbeitung des aus­ gewählten Kontaktplanprogramms die wiederholte Ausführung der Kontaktplanpro­ grammanweisungen in dem ausgewählten Kontaktplanprogramm umfaßt, bis bei der Ausfüh­ rung der genannten Kontaktplanprogrammanweisung eine Zustandsänderung angezeigt und das Kontaktplanprogramm abgewählt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß in der Aktivzu­ standsliste (505) Indikatoren gespeichert werden, welche diejenigen der Vielzahl der gespei­ cherten Kontaktplanprogramme identifizieren, die dem derzeitigen Zustand der Maschine zugeordnet sind, daß das zu verarbeitende Kontaktplanprogramm aus denjenigen Kontakt­ planprogrammen ausgewählt wird, die in der gespeicherten Aktivzustandsliste (505) ange­ zeigt werden, und daß die Abwahl eines Kontaktplanprogramms durch Entfernen seines Indi­ kators aus der Aktivzustandsliste (505) vorgenommen wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß für jedes Kontaktplanpro­ gramm eine Strukturplandefinition (506) in dem Speicher (35) gespeichert wird und jede Strukturplandefinition (506) eine Dateinummer enthält, die das der Strukturplandefinition zugeordnete Kontaktplanprogramm identifiziert, und eine Zielnummer enthält, die ein anderes gespeichertes Kontaktplanprogramm angibt, das bei der Abwahl des zugeordneten Kontakt­ planprogramms der Aktivzustandsliste (505) hinzugefügt wird.
5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Änderung der Aktivzustandsliste (505) die folgenden Schritte umfaßt: Interpretieren des Strukturplanprogramms (504) im Anschluß an die Ausführung eines ausgewählten Kontakt­ planprogramms zum Überprüfen, ob das gerade ausgeführte Kontaktplanprogramm aus der gespeicherten Aktivzustandsliste (505) entfernt werden soll und ob andere Kontaktplanpro­ gramme der gespeicherten Aktivzustandsliste hinzugefügt werden sollen, und Austreten aus dem Strukturplaninterpreter und Eintreten in den Kontaktplaninterpreter im Anschluß an die Durchführung etwaiger Änderungen in der gespeicherten Aktivzustandsliste (505).
DE3610433A 1985-03-28 1986-03-27 Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter Expired - Lifetime DE3610433C2 (de)

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 DE3610433A1 (de) 1986-10-02
DE3610433C2 true 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)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
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
US4858101A (en) * 1987-08-26 1989-08-15 Allen-Bradley Company, Inc. Programmable controller with parallel processors
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
US5023770A (en) * 1988-04-11 1991-06-11 Square D Company High-speed press control system
US5072356A (en) * 1988-04-11 1991-12-10 Square D Company Ladder drum sequence controller
JPH083731B2 (ja) * 1988-10-18 1996-01-17 株式会社日立製作所 プログラマブルコントローラ
US5068778A (en) * 1988-11-28 1991-11-26 Reliance Electric Industrial Company Industrial control system device
US5319783A (en) * 1989-03-31 1994-06-07 Allen-Bradley Company Inc. Programmable controller with an operator messaging function
US5042002A (en) * 1989-03-31 1991-08-20 Allen-Bradley Company, Inc. Programmable controller with a directed sequencer
US5005152A (en) * 1989-04-05 1991-04-02 Allen-Bradley Company Industrial controller with decompilable user program
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
US5173869A (en) * 1989-12-25 1992-12-22 Mazda Motor Corporation Method of simulating a sequential control for analyzing a production line in a production system
JP2530380B2 (ja) * 1990-04-02 1996-09-04 株式会社日立製作所 プロセス制御方法及び制御用コントロ―ラ
US5581759A (en) * 1990-04-02 1996-12-03 Hitachi, Ltd. Apparatus and method for controlling a system process
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
US5265005A (en) * 1990-08-31 1993-11-23 Allen-Bradley Company, Inc. Processor for a programmable controller
CA2048944A1 (en) * 1990-08-31 1992-03-01 Otomar S. Schmidt 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
CA2056829A1 (en) * 1990-12-26 1992-06-27 Michael D. Yoke Programmable controller processor for concurrently executing multiple user programs
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
US6714996B1 (en) * 1999-08-30 2004-03-30 Mitsubishi Denki Kabushiki Kaisha Programmable controller system and method for resetting programmable controller system
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 株式会社東芝 プログラマブルコントローラ、及び演算処理システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2817536A1 (de) * 1977-04-25 1978-10-26 Allen Bradley Co Programmierbares steuergeraet

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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
US4228495A (en) * 1978-12-19 1980-10-14 Allen-Bradley Company Multiprocessor numerical control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2817536A1 (de) * 1977-04-25 1978-10-26 Allen Bradley Co Programmierbares steuergeraet

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fachberichte Messen-Steuern-Regeln Nr.l0, Fort- schritte durch digitale Meß- und Automatisierungs-technik/INTERKAMA-Kongress 1983. Springer-Verlag Berlin und Heidelberg 1983, S.459-458 *
Kielhorn, Otto: "Speicherprogrammierbare Steuer- ungen-Stand der Technik" in: etz Bd.105 (1984) H.11, S.534-538 *

Also Published As

Publication number Publication date
US4742443A (en) 1988-05-03
GB2177826A (en) 1987-01-28
CA1242031A (en) 1988-09-13
GB8606328D0 (en) 1986-04-23
DE3610433A1 (de) 1986-10-02
GB2177826B (en) 1989-08-02

Similar Documents

Publication Publication Date Title
DE3610433C2 (de) Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter
DE4222043C1 (de)
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2714805C2 (de)
DE2718051C3 (de) Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben
DE1524209B2 (de) Programmgesteuerte datenverarbeitungsanlage
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
EP1184758A2 (de) Verfahren zum Debuggen von Programmen für industrielle Steuerungen, insbesondere Bewegungssteuerungen, im Kontext der Flow Chart Programmierung
DE2713253A1 (de) Programmlader fuer ein steuergeraet
DE2015971A1 (de) Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden
DE2801563A1 (de) Dialogprozessor
DE2747146A1 (de) Datenverarbeitungsanlage
DE2237672A1 (de) Fehlerpruef- und fehlerdiagnoseeinrichtung in einer elektronischen datenverarbeitungsanlage und verfahren zu deren betrieb
DE4226536A1 (de) Programmierbare steuerung mit einer benutzernachrichtenfunktion
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
EP0130269B1 (de) Speicherprogrammierbare Steuerung
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
DE1762205C3 (de) Schaltungsanordnung für ein elektronisch gesteuertes Selbstwählamt
DE2817536A1 (de) Programmierbares steuergeraet
EP0010135A1 (de) Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen
DE102008023873A1 (de) Verfahren zum Betrieb eines Antriebssystems
DE3149678C2 (de) Anordnung zur Zwischenspeicherung von zwischen zwei Funktionseinheiten in beiden Richtungen zu übertragenden Informationen in einem Pufferspeicher
DE2359037A1 (de) Mikroprogrammrechnereinrichtung
EP1479023B1 (de) Verfahren zum projektieren und/oder konfigurieren eines projektes
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage

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