DE2713253A1 - Programmlader fuer ein steuergeraet - Google Patents

Programmlader fuer ein steuergeraet

Info

Publication number
DE2713253A1
DE2713253A1 DE19772713253 DE2713253A DE2713253A1 DE 2713253 A1 DE2713253 A1 DE 2713253A1 DE 19772713253 DE19772713253 DE 19772713253 DE 2713253 A DE2713253 A DE 2713253A DE 2713253 A1 DE2713253 A1 DE 2713253A1
Authority
DE
Germany
Prior art keywords
input
status
memory
bit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19772713253
Other languages
English (en)
Other versions
DE2713253C2 (de
Inventor
Vladis Grants
Odo J Struger
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 DE2713253A1 publication Critical patent/DE2713253A1/de
Application granted granted Critical
Publication of DE2713253C2 publication Critical patent/DE2713253C2/de
Granted 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/058Safety, monitoring
    • 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/14Plc safety
    • G05B2219/14057Compare response time, time interval with reference response time, interval
    • 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/14Plc safety
    • G05B2219/14074Signature analysis, recorded states, zones are compared to actual

Description

Patentanwalt Dr.-Ing. Wilhelm Reichel Kpl-Ing. Wolfgang Reicliel
6 Frankfurt a. M. 1 Paikfliraße 13
8698
ALLEN-BRADLEY COMPANY, Milwaukee, Wisconsin, VStA
Programmlader für ein Steuergerät
709840/0940
Die Erfindung bezieht sich auf programmierbare Steuergeräte und befaßt sich insbesondere mit einer Einrichtung zum Laden und Redigieren von Programmen für Steuergeräte, wie sie beispielsweise aus den US-Patentschriften 3 810 118 und 3 942 158 bekannt sind.
Die aus diesen Patentschriften bekannten Steuergeräte führen komplexe Steueraufgaben in Abhängigkeit von einem gespeicherten Programm aus. Das gespeicherte Programm enthält eine Gruppe von Befehlen, die das Steuergerät veranlassen, den Zustand von verschiedenartigen Fühlgliedern oder Eingabegeräten zu überprüfen, beispielsweise von Schaltern oder fotoelektrischen Zellen, diese Zustände mit Zuständen vergleichen, die in einem gespeicherten Programm spezifiziert sind, und folglich ausgewählte Ausgabegeräte, beispielsweise Motoren, Hubmagnete und Lampen, in Betrieb oder außer Betrieb nehmen. Obwohl geeignete Programme entwickelt und direkt in das Steuergerät geladen werden können, ist es in der Praxis erforderlich, solche Anfangsprogramme zunächst an der Arbeitsstelle zu verwenden, um unvorhersehbare Probleme zu beseitigen, deren Auftreten unvermeidbar ist. Um das Laden und Redigieren solcher Programme zu erleichtern, wurden Programm!ader entwickelt, wie sie beispielsweise aus den US-Patentschriften 3 798 und 3 813 649 bekannt sind. Diese Programmlader sind getrennte Instrumente, die vorübergehend an das programmierbare Steuergerät angeschlossen werden, um die Eingabe und Manipulation der Steuerprogrammbefehle zu gestatten. Wenn das programmierbare Steuergerät erfolgreich programmiert worden ist und die gesteuerte Maöchine richtig arbeitet, wird der Programmlader abgeschaltet und kann für das Programm einer anderen Anlage verwendet werden.
Einige der zahlreichen Fühl- und Betätigungsglieder der zu steuernden Maschine können an entfernten Orten oder an verhältnismäßig unzugänglichen Stellen angeordnet sein.
709840/0940
Während der Anfangsprogrammierung der Anlage oder bei einer späteren Fehlersuche in der Anlage ist es oft erwünscht, die Betriebsweise von ausgewählten Fühlgliedern oder Betätigungsgliedern zu überwachen, so daß man feststellen kann, ob diese Glieder oder Baukomponenten richtig arbeiten oder nicht.
Die Erfindung befaßt sich mit einem verbesserten Steuergerätprogrammlader, der nicht nur eine sichtbare Anzeige des gegenwärtigen Zustande eines mit dem programmierbaren Steuergerät verbundenen Gerätes liefert, sondern der auch die zwischen Zustandsänderungen abgelaufene Zeit sichtbar anzeigt. Nach der Erfindung sind daher vorgesehen: Mittel zum periodischen Überprüfen des Zustande eines Eingabe/Ausgabe-Gerätes in einer von dem programmierbaren Steuergerät gesteuerten Anlage, Mittel zum Speichern des Zustands des überprüften Eingabe/Ausgabe-Gerätes, Zeitgabemittel zum Aufzeichnen der abgelaufenen Zeit bei entsprechender Freigabe und mit den Speichermitteln verbundene Mittel zur Freigabe der Zeitgabemittel, wenn sich der gespeicherte Zustand des adressierten Eingabe/Ausgabe-Gerätes ändert.
Die Erfindung ermöglicht es, eine grafische Historie des Betriebs oder der Operation eines ausgewählten Eingabe/ Ausgabe-Gerätes der zu steuernden Anlage bereitzustellen. Der Steuergerätprogrammlader enthält Schaltungsanordnungen, die das Steuergerät heranziehen, den Zustand des ausgewählten Eingabe/Ausgabe-Gerätes zu überwachen. Sobald das überwachte Gerät seinen logischen Zustand ändert, wird diese Zustandsänderung zusammen mit der abgelaufenen Zeit aufgezeichnet. Die Aufzeichnung kann auf dem Bildschirm einer Katodenstrahlröhre erfolgen. Es können auch ein Digitaldrucker oder andere Aufzeichnungsgeräte verwendet werden, die eine schnelle und genaue überprüfung des Betrieb sverlauf es des überwachten Gerätes gestatten.
709840/0940
Die Erfindung gestattet auch die Bereitstellung eines Kontakthistogramms durch einen Steuergerätprogrammlader, der von einem Mikroprozessor Gebrauch macht.
Weiterhin sieht die Erfindung Mittel vor, die die grafisch dargestellte Historie eines ausgewählten Eingabe/ Ausgabe-Gerätes auf einem Anzeigegerät mit einer Katodenstrahlröhre darstellen.
Die Erfindung sorgt somit für ein Kontakthistogramm für programmierbare Steuergeräte. Eine Steuergerätprogrammiereinrichtung ist mit dem programmierbaren Steuergerät verbunden und dient zum Laden und Redigieren des Steuerprogramms. Wenn die Kontakthistogrammbetriebsart benutzt wird, wird der logische Zustand eines ausgewählten Eingabe/ Ausgabe-Gerätes überwacht, das mit dem Steuergerät verbunden ist. Bei jedem Zustandswechsel wird der gegenwärtige Zustand zusammen mit der zwischen Zustandsänderungen abgelaufenen Zeit aufgezeichnet. Die Erfindung kann in Verbindung mit einem fest verdrahteten Steuergerätprogrammlader verwirklicht werden. Die Erfindung kann auch einen Steuergerätprogrammlader verwenden, der von einem programmierten Mikroprozessor Gebrauch macht. Im ersten Fall werden die Zustandsänderungen auf einem Papierstreifen aufgezeichnet und im zweiten Fall auf einem Bildschirm einer Katodenstrahlröhre angezeigt.
Die Erfindung wird im folgenden an Hand einer Zeichnung erläutert. Es zeigt:
709840/0940
Fig. 1 ein Schemaschaltbild eines ersten bevorzugten Ausführungsbeispiels der Erfindung mit einem Steuergerätprogrammlader und einem zugeordneten programmierbaren Steuergerät,
Fig. 2 ein Blockschaltbild eines zweiten bevorzugten Ausführungsbeispiels der Erfindung mit einem Steuergerätprogrammlader und einem zugeordneten programmierbaren Steuergerät,
Fig. 3 ein Schemaschaltbild des Programmladerprozessors des in der Fig. 2 gezeigten Ausführungsbeispiels,
Fig. 4 ein Schemaschaltbild der Sequenzsteuerschaltung, die einen Teil des Steuergerätprogrammladers nach der Fig. 3 bildet,
Fig. 5 ein Taktdiagramm des in der Fig. 3 dargestellten Steuergerätprogrammladers,
Fig. 6a und 6B Flußdiagramme der in dem in Fig. 2 dargestellten Festwertspeicher gespeicherten Steuerroutine des Steuergerätprogrammladers,
Fig. 7A und 7B Flußdiagramme der Histogrammroutine, die von der Steuerroutine nach den Fig. 6A und 6B aufgerufen wird, und
Fig. 8 ein Beispiel einer Anzeige auf dem Bildschirm der in der Fig. 2 gezeigten Katodenstrahlröhren-Anzeigeeinheit.
709840/0940
Es gibt eine Reihe von handelsüblichen programmierbaren Steuergeräten, die in einer solchen Weise arbeiten, daß sie den Zustand von verschiedenartigen Eingabegeräten überprüfen, diese Zustände mit Zuständen vergleichen, die in den Befehlen eines gespeicherten Programms spezifiziert sind, und ausgewählte Ausgabegeräte entsprechend in Betrieb oder außer Betrieb nehmen. Diese Steuergeräte können sich voneinander bezüglich der Anzahl der von ihnen ansteuerbaren Eingabe- und Ausgabegeräte und bezüglich der Anzahl der Operationen unterscheiden, deren Ausführung sie leiten oder führen können. Trotz dieser zahlreichen Unterschiede enthalten alle Steuergeräte ein gespeichertes Programm, das eine Reihe von Befehlen aufweist, die sequentiell aus einem Speicher (Arbeitsspeicher) wiederholt ausgelesen werden. Jeder Befehl enthält einen Operationscode, der die von dem Steuergerät auszuführende Funktion bestimmt, und einen E/A-Adreßcode, der das besondere Eingabe- oder Ausgabegerät bestimmt.
In der Fig. 1 ist ein aus Ferritkernen aufgebauter Lese/Schreib-Speicher 1 dargestellt, der die Befehle speichert, die das Steuerprogramm enthalten. Der Speicher 1 ist in der Lage, bis zu 1024 8-Bit-Befehle zu speichern, die über einen Speicherdaten-Ausgabekanal 2 durch einen Steuergerätprozessor 3 sequentiell ausgelesen werden. Jeder Befehl wird einzeln durch ein 10-Bit-Adreßcode adressiert, der über einen Speicheradreßkanal k zugeführt wird. Ein adressierter Befehl wird aus dem Lese/Schreib-Speicher 1 dadurch ausgelesen, daß eine im logischen Sinne niedrige Spannung an eine Lese/Schreib-Leitung 5 und eine im logischen Sinne hohe Spannung an eine Speicherzyklusleitung 6 gelegt wird. Wie es in der US-PS 3 810 118 im einzelnen erläutert ist, decodiert der Steuergerätprozessor 3 die aus dem Speicher 1 gelesenen Befehle und gibt aufgrund eines in Jedem Befehl
709840/0940
enthaltenen E/A-Adreßcode eine Ausgabeschaltung bei einem Ausgabeschnittstellengestell 7 oder eine Eingabeschaltung bei einem Eingabeschnittstellengestell 8 frei. Das Ausgabeschnittstellengestell 7 ist mit den Betätigungs- oder Stellgliedern einer gesteuerten Naschine 9 verbunden. Wenn an einem Logikausgabekanal 10 eine im logischen Sinne hohe Spannung auftritt, wird ein adressiertes Betätigungs- oder Stellglied in Betrieb gesetzt. Das Eingabeschnittstellengestell 8 ist mit Fühlgliedern bei der gesteuerten Maschine 9 verbunden. Bei Adressierung durch einen aus dem Lese/ Schreib-Speicher 1 gelesenen Befehl erscheint der Zustand bzw. der logische Zustand des Fühlers oder Fühlglieds an einem Logikeingabekanal 11. Aufgrund des Zustande der Fühlglieder der gesteuerten Maschine 9 und in Übereinstimmung mit einem in dem Lese/Schreib-Speicher 1 gespeicherten Steuerprogramm werden die Betätigungs- oder Stellglieder bei der gesteuerten Maschine 9 selektiv in und außer Betrieb genommen.
In einer ähnlichen Weise wie in der US-PS 3 813 649 erläutert, macht der Programmlader des ersten bevorzugten Ausführungsbeispiels der Erfindung von dem Steuergerät-Lese/Schreib-Speicher 1 Gebrauch, um das Steuerprogramm zu entwickeln. Es ist eine Programmbefehl- und Speicheradreßeingabeschaltung 12 vorgesehen, die mit dem Speicheradreßkanal 4, der Lese/Schreib-Leitung 5» der Speicherzyklusleitung 6 und einem Speicherdaten-Eingabekanal 13 verbunden ist. Die Programmbefehle werden manuell ausgewählt und mit Hilfe der Eingabeschaltung 12 in eine adressierte Zeile des Speichers 1 gegeben. Die Eingabeschaltung 12 enthält eine Gruppe von vier Drucktasten (nicht dargestellt) und eine zugehörige Codierschaltung sowie eine Gruppe von drei E/A-Adreßhebelrädern (nicht dargestellt) und eine zugehörige Codierschaltung. Die Hebelräder sind handelsübliche elektromechanische Bauteile, mit denen man Jeweils eine 3-Bit-Binärzahl erzeugen kann. Mit Hilfe dieser Hebelräder
709840/0940
wird der E/A-Adreßteil Jedes Programmbefehls eingegeben. Ein 2-Bit-Operationscode wird unter Verwendung der Drucktasten erzeugt und in den Speicher 1 mit seinem zugehörigen 6-Bit-E/A-Adreßcode eingegeben.
Der 6-Bit-Adreßcode, der von den Hebelrädern erzeugt wird, und der 2-Bit-Operationscode, der von den Drucktasten erzeugt wird, werden auch an ein Kabel 14 gelegt, das zu einer ersten Gruppe von Eingängen 15 einer 8-Bit-Vergleicherschaltung 16 führt. Die Vergleicherschaltung 16 enthält zwei in Kaskade geschaltete, handelsübliche 4-Bit-Betragsvergleicher, die derart geschaltet sind, daß sie einen den ersten Eingängen 15 der Vergleicherschaltung 16 zugeführten 8-Bit-Befehl mit einem zweiten Eingängen 17 der Vergleicherschaltung 16 zugeführten 8-Bit-Programmbefehl vergleichen. Die Eingänge 17 sind an den Speicherdaten-Ausgabekanal 2 angeschlossen. Somit kann ein aus dem Lese/Schreib-Speicher 1 gelesener Programmbefehl mit einem Befehl verglichen werden, der manuell bei der Eingabeschaltung 12 eingegeben wird. Falls Identität besteht, tritt an einem Ausgang 18 der Vergleicherschaltung 16 eine im logischen Sinne hohe Spannung auf. Für die Zwecke der Kontakthistogrammbetriebsart wird allerdings ein Vergleich nur bezüglich der E/A-Adresscodes vorgenommen. Obwohl in der Steuergerätprogrammeinrichtung zahlreiche weitere Schaltungsanordnungen enthalten sind, wird im folgenden nur diejenige Schaltungsanordnung erläutert, die der Kontakthistogrammbetriebsart zugeordnet ist, da die weiteren Schaltungsanordnungen bereits in der US-PS 3 813 549 im einzelnen beschrieben sind.
Wie man der Fig. 1 entnehmen kann, ist der eine Eingangsanschluß eines als Eingangsschaltung dienenden UND-Glieds 19 mit dem Vergleicherausgang 18 verbunden, und ein zweiter Eingangsanschluß des UND-Glieds 19 ist
709840/09A0
über ein Umkehrglied 54 an einen Betriebsartauswahlschalter 51 angeschlossen. Der Ausgangsanschluß des Umkehrglieds 54 dient zur Freigabe der Kontakthistogrammbetriebsart und weist eine im logischen Sinne niedrige Spannung auf, falls der Schalter 51 nicht geschlossen ist. Der Ausgangsanschluß des UND-Glieds 19 führt zum Eingang eines ersten monostabilen Multivibrators 20 und zum einen Eingang eines zweiten UND-Glieds 21. Ein Ö-Ausgang 22 des monostabilen Multivibrators 20 ist mit dem einen Eingang eines zweiten monostabilen Multivibrators 23 verbunden, und ein Q-Ausgang 24 des zweiten monostabilen Multivibrators 23 führt zum zweiten Eingang des zweiten UND-Glieds 21. Der Ausgang des zweiten UND-Glieds 21 ist an den Taktanschluß 25 eines handelsüblichen Flipflop 26 vom J-K-Typ angeschlossen. Der Logikeingabekanal 11 des programmierbaren Steuergeräts führt direkt zum K-Eingang 27 des Flipflop 26 und ist über ein Umkehrglied 29 an den J-Eingang 28 des Flipflop 26 angeschlossen. Ein Q-Ausgang 30 des Flipflop 26 ist mit dem Eingang eines dritten monostabilen Multivibrators 31 verbunden. Weiterhin führt der J-Ausgang 30 über ein NAND-Glied 52 zu einer Anzeigelampe 32. Ein δ-Ausgang 33 des Flipflop 26 ist an den Eingang eines vierten monostabilen Multivibrators 34 und über ein NAND-Glied 53 an eine zweite Anzeigelampe 32' angeschlossen. Die Anzeigelampen 32 und 32* werden über eine Leitung 54' freigegeben, die vom Ausgang des Umkehrglieds 54 zu Eingängen der NAND-Glieder 52 und 53 führt.
Die Q-Ausgär.ge 35 und 36 der monostabilen Multivibratoren 31 und 34 sind an die Eingänge eines ODER-Glieds 37 angeschlossen, dessen Ausgang mit dem Taktanschluß 38 einer Verriegelungsschaltung 39 verbunden ist. Die Verriegelungsschaltung 39 enthält 24 Flipflops vom D-Typ, deren Taktanschlüsse gemeinsam mit dem Anschluß 38 verbunden sind , deren D-Eingänge an entsprechende Leitungen eines Kabels 40 angeschlossen sind und deren Q-Ausgänge
7098A0/09A0
an entsprechende Leitungen in einem Kabel 41 angeschlossen sind. Die 24 Leitungen im Kabel 40 verbinden die Ausgänge eines 24-Bit-BCD-Zählers 73, der sechs 4-Bit-Zähler enthält, die derart geschaltet sind, daß sie eine sechsziffrige binärcodierte Dezimalzahl erzeugen. Der Zahler weist einen Eingangsanschluß 42 auf, der an den Ausgang eines 10G-Hz-Taktimpulsgenerators 43 angeschlossen ist. Ein Rücksetzanschluß 44 des Zählers 73 ist mit dem Ausgang des ODER-Glieds 37 über einen fünften monostabilen Multivibrator 45 verbunden. Der Zähler 73 wird vom Taktimpulsgenerator 43 inkrementiert, der zusammen mit dem Zähler einen Taktgeber bildet, der in 10-ms-Schritten weitergeschaltet wird.
Die 24 Leitungen des Kabels 41 führen zu einer 24-Bit-Decodierer/Treiber-Schaltung 46, die eine sechsziffrige binärcodierte Dezimalzahl, die in der Verriegelungsschaltung 39 gespeichert ist, in eine sechsziffrige Dezimalzahl umsetzt, die zur Ansteuerung eines Digitaldruckers 47 über ein Kabel 48 geeignet ist. Der Digitaldrucker 47 ist ein handelsüblicher Drucker. Es kann sich beispielsweise um das Modell DP-650 handeln, das unter dem Warennamen "Anadex" von der Anadex Instruments, Inc., Van Nuys, Kalifornien vertrieben wird. Der Drucker 47 druckt eine sechsziffrige Dezimalzahl auf einem Papierstreifen 49 aus, wenn einer Druckbefehlsleitung 50 eine im logischen Sinne hohe Spannung zugeführt wird. Die Druckbefehlsleitung 50 ist an den Q-Ausgang des fünften monostabilen Multivibrators 45 angeschlossen. Der Druckbefehlsleitung 50 wird eine im logischen Sinne hohe Spannung zugeführt, wenn ein ausgewähltes E/A-Gerät seinen Zustand ändert. Im Ergebnis wird daher die Zeit zwischen Zustandsänderungen auf dem Papierstreifen 49 aufgezeichnet.
709840/0940
Wenn die Steuergerätprogrammiereinrichtung in der Kontakthistogrammbetriebsart arbeitet, ist es dem Steuergerätprozessor 3 gestattet, in normaler Weise zu funktionieren, um die Steuerprogrammbefehle aus dem Lese/Schreib-Speicher 1 sequentiell und kontinuierlich auszulesen. Das besondere Fühlglied oder Betätigungsglied wird dadurch ausgewählt, daß seine E/A-Adresse über die Hebelräder in die Eingabeschaltung 12 eingegeben wird. Die ausgewählte E/AAdresse wird somit über das Kabel 14 der ersten Gruppe von Eingängen der Vergleicherschaltung 16 zugeführt. Das Umkehrglied 54 ist mit der Vergleicherschaltung 16 verbunden, um den Vergleich der Operationscodes in jedem Befehl zu sperren, so daß jedesmal, wenn ein Programmbefehl mit derselben E/A-Adresse aus dem Lese/Schreib-Speicher 1 gelesen wird, am Ausgang 18 der Vergleicherschaltung 17 eine im logischen Sinne hohe Spannung auftritt. Aufgrund desselben Programmbefehls gibt der Steuergerätprozessor 3 die Eingabe- oder Ausgabeschaltung frei, die dem ausgewählten E/A-Gerät der gesteuerten Maschine 9 zugeordnet ist, und der Zustand bzw. der logische Zustand dieses Geräts erscheint gleichzeitig an dem Logikeingabekanal 11. Der Schalter 51 wird geschlossen, wenn die Kontakthistogrammbetriebsart ausgewählt wird, und die im logischen Sinne hohe Spannung am Ausgang 18 der Vergleicherschaltung 16 gelangt über das UND-Glied 19 zum einen Eingang des zweiten UND-Glieds 21 und zum Eingang des ersten monostabilen Multivibrators 20. Ein zeitverzögerter, im logischen Sinne hoher Spannungsimpuls wird am Q-Ausgang 24 des zweiten monostabilen Multivibrators 23 erzeugt und über das zweite UND-Glied 21 dem Taktanschluß 25 des Flipflop 26 vom J-K-Typ zugeführt. Dadurch wird der logische Zustand des Logikeingabekanals 11 in das Flipflop 26 getaktet, um an seinem Q-Ausgang 30 eine im logischen Sinne hohe Spannung zu erzeugen, wenn das ausgewählte E/A-Gerät eingeschaltet oder in Betrieb; genommen ist, und um eine im logischen Sinne hohe Spannung an seinem Q-Ausgang 33 zu erzeugen, wenn das
709840/0940
ausgewählte E/A-Gerät abgeschaltet oder außer Betrieb ist. Eine der Anzeigelampen 32 oder 32' leuchtet auf, um den gegenwärtigen Zustand des ausgewählten E/A-Gerätes anzuzeigen. Die im Speicher 1 gespeicherten Programmbefehle werden wiederholt ausgelesen und vom Steuergerätprozessor 3 wenigstens einmal alle 10 ms ausgeführt. Immer wenn ein Programmbefehl mit einem ausgewählten E/A-Adreßcode ausgelesen wird, wird der Zustand des entsprechenden E/AGerätes im J-K-Flipflop 26 gespeichert.
Wenn sich der Zustand des ausgewählten E/A-Gerätes ändert, kommt es auch zu einer Änderung des Zustands des J-K-Flipflop 26, was mit einer Änderung des Zustands der Anzeigelampen 32 und 32' verbunden ist. Zusätzlich tritt ein im logischen Sinne hoher Spannungsübergang entweder am Q-Ausgang 30 oder am δ-Ausgang 33 auf, so daß einer der mono stabilen Multivibratoren 31 oder 34 einen im logischen Sinne hohen Spannungsimpuls erzeugt. Dieser Impuls gelangt über das ODER-Glied 37 zum Taktanschluß der Verriegelungsschaltung 39 und wird über den monostabilen Multivibrator 45 herangezogen, um den Zähler 73 zurückzusetzen und um über die Leitung 50 ein Druckbefehlssignal an den Digitaldrucker 47 zu liefern. Die im Speicher 73 gespeicherte abgelaufene Zeit wird somit von der Verriegelungsschaltung festgehalten und gespeichert. Sie wird über die Decodierer/ Treiber-Schaltung 46 dem Digitaldrucker 47 zugeführt. Die abgelaufene Zeit wird auf dem Papierstreifen 49 ausgedruckt, und der Zähler wird auf Null zurückgesetzt, um mit der Zeitzählung für das nächste Intervall zu beginnen. Der Zyklus wiederholt sich jedesmal, wenn das ausgewählte E/A-Gerät seinen Zustand ändert. Auf dem Papierstreifen 49 werden somit die Zeitintervalle registriertf die zwischen den Zustandsänderungen auftreten.
Das zweite bevorzugte Ausführungsbeispiel der Erfindung ist in einen Steuergerätprogrammlader für ein
709840/0940
programmierbares Steuergerät einbezogen, wie es beispielsweise in der US-PS 3 942 158 beschrieben ist. Wie es aus der Fig. 2 hervorgeht, enthält das programmierbare Steuergerät einen Lese/Schreib-Speicher 55 mit direktem Zugriff, der eine 18-Bit-Wortlänge hat und der 2048 bis 8192 einzeln adressierbare Leitungen aufweist, was von der Größe des Steuerprogramms abhängt, das in dem Speicher zu speichern ist. Zwei Bits jedes im Speicher 55 gespeicherten Wortes werden zur Paritätsüberprüfung benutzt. Somit sind 16 Datenbits in Jeder Zeile des Speichers 55 gespeichert. Eine Ausgabebildtabelle 56 ist in den ersten 64 Zeilen des Speichers 55 gespeichert. Jede Zeile ist einzeln adressierbar, und zwar mit den Oktaladressen 000 bis 077. Eine Eingabebildtabelle 57 ist in den nächsten 64 Zeilen des Speichers 55 gespeichert. Jede Zeile ist einzeln adressierbar, und zwar mit den Oktaladressen 100 bis 177. Voreingestellte und akkumulierte Werte von Zählern und Taktgebern sind in den nächsten 128 Zeilen des Speichers 55 gespeichert. Die Werte sind mit den Oktaladressen 200 bis 377 adressierbar. Die restlichen Zeilen des Speichers 55 enthalten ein Steuerprogramm 58, das Programmbefehle aufweist, die einzeln mit Oktaladressen von 400 oder höher adressierbar sind.
Durch Anlegen von geeigneten Oktaladressen an einen Speicheradreßkanal 59 und durch Anlegen einer im logischen Sinne niedrigen Spannung an eine Lese/Schreib-Leitung 60 werden aus dem Speicher 55 ausgewählte Daten ausgelesen. Der Zyklus des Speichers 55 wird durchlaufen, indem ein im logischen Sinne hoher Impuls an eine Speicherzyklusleitung 61 gelegt wird. Das adressierte Wort wird an einen Speicherdatenkanal 62 abgegeben. Ein Wort wird in eine ausgewählte Zeile des Speichers 55 geladen oder eingeschrieben, indem die Oktaladresse dieser Zeile an den Speicheradreßkanal 59 gelegt wird, eine im logischen Sinne hohe Spannung der Lese/Schreib-Leitung 60 zugeführt wird und die Speicher-
7098A0/0940
zyklusleitung 61 mit einem im logischen Sinne hohen Spannungsimpuls beaufschlagt wird. Das 16-Bit-Datenwort, das während der 1-ms-Zykluszeit des Speichers 55 am Speicherdatenkanal 62 erscheint, wird in die ausgewählte Zeile des Speichers 55 geschrieben.
Das Steuerprogramm 58 wird von einem Steuergerätprozessor 63 ausgeführt, der mit den Speicherkanälen 59 und 62 sowie mit den Steuerleitungen 60 und 61 verbunden ist. Aufgrund von 1-MHz-Taktimpulsen eines Mehrphasentaktgebers 64 liest der Steuergerätprozessor 63 kontinuierlich und sequentiell die Befehle des Steuerprogramms 58 aus dem Speicher 55 aus. Aufgrund eines Operationscode in jedem Programmbefehl nimmt der Prozessor 63 die Operation vor, die zum Ausführen der Steuergerätfunktionen notwendig ist. Solche Operationen enthalten beispielsweise die Überprüfung eines Statusbit in der Eingabebildtabelle 57 oder das Setzen eines Statusbit in der Ausgabebildtabelle 56 auf einen gewünschten Zustand.
Jedes Zustande- oder Statusbit in der Ausgabebildtabelle 56 entspricht einem Betätigungs- oder Stellglied der gesteuerten Maschine, beispielsweise einem Motorstarter oder einem Hubmagneten, und jedes Zustande- oder Statusbit in der Eingabebildtabelle 57 entspricht einem Fühlglied der gesteuerten Maschine, beispielsweise einem Grenzwertschalter oder einer fotoelektrischen Zelle. Diese Entsprechung wird dadurch erreicht, daß alle Fühl- und Stellglieder der gesteuerten Maschine mit getrennt adressierbaren Eingabe- und Ausgabeschaltungen des programmierbaren Steuergeräts verbunden sind. Jedes Statusbit der Eingabebildtabelle 57 wird periodisch auf den neuesten Stand gebracht, indem der Zustand des entsprechenden Fühlglieds der gesteuerten Maschine in den Speicher 55 eingegeben wird. Dies wird mit Hilfe einer E/A-Abtasterschaltung 65 erreicht, die auch den Status oder Zustand der Ausgabegeräte der ge-
709840/0940
steuerten Maschine periodisch auf den neuesten Zustand "bringt, in dem der laufende oder gerade vorliegende Wert jedes Statusbit in der Ausgabebildtabelle 56 den Ausgabeschaltungen des programmierbaren Steuergeräts zugeführt wird. Die E/A-Abtastschaltung 65 ist mit dem Prozessor 63 über eine Unterbrechungsleitung 66 und eine Bewilligungsleitung 67 verbunden» Die E/A-Abtastschaltung 65 steht direkt mit dem Speicherdatenkanal 62, dem Speieheradreßkanal 59 und der Lese/Schreib-Leitung 60 in Verbindung. Die Abtastschaltung 65 verbindet periodisch den Speicherdatenkanal 62 mit einem E/A-Datenkanal 68, der an ein Schnittstellengestell angeschlossen ist, das einen Gestelladapter 69 enthält. Der Gestelladapter 69 ist mit acht getrennt adressierbaren E/A-Schlitzen 70 verbunden, von denen jeder sechzehn adressierbare Eingabe- oder Ausgabeschaltungen enthält, die zu den Betätigungs- und FUhlgliedern der gesteuerten Maschine 71 führen. Ein E/A-Adreßkanal 72 verbindet den Gestelladapter 69 mit der Abtastschaltung 65, und jeder Gestelladapter 69 enthält eine Decodierschaltung, die auf drei Bits in dem 6-Bit-Adreßcode an einem Kanal 72 anspricht, um das Schnittstellengestell freizugeben, wenn seine Gestellnummer festgestellt wird. Jeder Gestelladapter 69 enthält auch eine Decodierschaltung, die betätigbar ist, um einen der Schlitze 0 bis 7 aufgrund der drei übrigen Bits im E/A-Adreßkanal 72 freizugeben.
Die E/A-Abtasterschaltung 65 "stiehlt" dem Prozessor 63 periodisch einen Speicherzyklus, um ein 16-Bit-Wort in der Ausgabebildtabelle 56 des Speichers 55 zu lesen und dieses Wort über den E/A-Datenkanal 68 einem ausgewählten Gestell und Schlitz zuzuführen, der durch eine Adresse im E/A-Adreßkanal 72 identifiziert wird. Die Abtasterschaltung 65 liest auch periodisch den Status von sechzehn Eingabeschaltungen in einem adressierten Schlitz und führt das 16-Bit-Datenwort einer adressierten Zeile in der Eingabebildtabelle 57 des Speichers 55 zu. Durch
7098A0/09A0
periodisches Stehlen eines Speicherzyklus vom Prozessor bringt somit die E/A-Abtasterschaltung 65 die Eingabebildtabelle 67 mit dem laufenden Status der Abfühlglieder der gesteuerten Maschine 71 auf den neuesten Stand und bringt auch den Zustand der Betätigungsglieder der gesteuerten Maschine 71 periodisch auf den neuesten Stand, in dem der laufende Status der Ausgabebildtabelle 56 dem geeigneten Gestelladapter 69 zugeführt wird.
Der Steuergerätprogrammlader steht mit dem Steuergerätprozessor 63 und dem Lese/Schreib-Speicher 55 auf der Grundlage eines ähnlichen ZyklusstehlVorganges in Beziehung. Wie man der Fig. 2 entnehmen kann, enthält der Steuergerätprogrammlader einen Programmladerprozessor 75, der mit dem Speicheradreßkanal 59, dem Speicherdatenkanal 62, der Unterbrechungsleitung 66 und der Bewilligungsleitung 67 verbunden ist. Wie es noch im einzelnen erläutert wird, arbeitet der Programmladerprozessor 75 in Abhängigkeit von Programmen, die in einem Festwertspeicher 76 gespeichert sind, um ein Steuerprogramm in den Steuergerät-Lese/ Schreib-Speicher 55 zu laden und an ihm eine Anzahl von Redigierfunktionen auszuführen. Die Steuerprogrammbefehle werden über ein Tastenfeld 77 eingegeben, das Teil einer Sichtanzeigeeinheit 78 bildet, die über ein Kabel 79 mit dem Programmladerprozessor 75 verbunden ist. Die Sichtanzeigeeinheit 78 ist ein handelsübliches Gerät, bei dem es sich beispielsweise um eine unter dem Warennamen "Mini-Tee Data-Screen" vertriebene Vorrichtung von TEC, Inc. handeln kann. Außer dem Tastenfeld 77 enthält die Sichtanzeigeeinheit einen Katodenstrahlröhrenschirm 80 und einen Kommunikationsmodul 81, der mit dem Kabel 79 eine kompatible Schnittstelle vom Typ EIA RS-232C bildet. Die Steuergerätprogrammbefehle werden über das Tastenfeld 77 eingegeben und dem Programmladerprozessor 75 zugeführt, der sie in das Format umsetzt, wie es in der oben angegebenen Patentschrift erläutert ist. Nachdem die Umsetzung
709840/0940
ausgeführt ist, unterbricht der Programmladerprozessor 75 den Steuergerätprozessor 63 für einen 1-ms-Speicherzyklus, um jeden Programmbefehl in das Steuerprogramm 58 zu laden, um Daten in die Ausgabebildtabelle 56 zu laden oder um Daten in die Eingabebildtabelle 57 des Lese/Schreib-Speichers 55 zu laden. Der Programmladerprozessor 75 kann auch den Steuergerätprozessor 63 unterbrechen, um einen Steuerprogrammbefehl oder ein 16-Bit-Datenwort aus der Bildtabelle 56 oder 57 zu lesen und in eine für den Bildschirm geeignete Form umzusetzen.
Wie es aus den Fig. 2 und 3 hervorgeht, enthält der Programmladerprozessor 75 einen 8-Bit-Mikroprozessor 85, wie er beispielsweise von der Intel Corporation unter der Modellnummer 8008 vertrieben wird. Der Mikroprozessor 85 wird von einem 500-kHz-Zweiphasentaktgeber 86 angesteuert und ist über einen 8-Bit-Datenkanal 87 mit einer Reihe von Eingabe- und Ausgabewegen verbunden. Die Eingabewege sind an den Datenkanal 87 über einen 8-Wege-Datenselektor/Multiplexer 88 angeschlossen, der aus sechzehn parallelverbundenen handelsüblichen 4-Leitung/i-Leitung-Datenselektoren gebildet ist. Der Datenkanal 87 ist über eine Gruppe von acht Puffern 89 mit den Ausgabewegen verbunden.
Der Mikroporzessor 85 steuert die Benutzung des Datenkanals 87 und bestimmt, ob dieser Eingabe- oder Ausgabedaten führt. Prozessorstatussignale SQ, S1 und S2 informieren zusammen mit einem Taktsignal SYNC die tragende Schaltung über den Zustand des Mikroprozessors. Eine Tabelle mit binären Zustandssignalen und dem zugehörigen Zustandsnamen lautet wie folgt:
. 709840/0940
Mikroprozessor
3O S1 S2 Zustand
0 1 0 P1
0 1 1 Unterbreche
0 0 1 P2
0 0 0 Warte
1 0 0 P3
1 1 0 Gestoppt
1 1 1 PA
1 0 1 P5
Diese Zustandssignale und das SYNC-Signal werden einer
Sequenzsteuerschaltung 90 zugeführt, die die jetzt zu beschreibende tragende Schaltung betätigt. Bezüglich einer
Einzelbeschreibung des Mikroprozessors 85 einschließlich
seiner Fähigkeiten, seiner Arbeitsweise und seiner Wechselbeziehung mit der tragenden Schaltung wird auf die Druckschrift "8008 8 Bit Parallel Central Processor Unit Users Manual", veröffentlicht von der Intel Corporation, November 1973, verwiesen.
Wie es insbesondere aus den Fig. 2 und 3 hervorgeht, sind die Puffer 89 über ein 8-Bit-Speicherdatenausgangskabel 92 mit einem Direktzugriffsspeicher 91 verbunden. Der Direktzugriffsspeicher 91 ergänzt die Speicherregister im Mikroprozessor 85 und enthält acht 64-Bit-Speicherchips,
die so angeordnet sind, daß sie 64 einzeln adressierbare
8-Bit-Wörter speichern können. Ein adressiertes Speicherwort wird aus dem Direktzugriffsspeicher 91 gelesen, wenn einer Lese/Schreib-Leitung 93 eine im logischen Sinne hohe Spannung zugeführt wird, und ein Wort wird in eine adressierte Zeile eingeschrieben, wenn an die Leitung 93 eine
im logischen Sinne niedrige Spannung gelegt wird. Die aus dem Direktzugriffsspeicher 91 gelesenen Daten werden über ein Speicherdateneingangskabel 94 weitergeleitet, das mit
709840/0940
einem der 8-Bit-Eingabewege des Multiplexers 88 verbunden ist.
Das Speicherdateneingangskabel 9^ steht auch mit dem Festwertspeicher 76 in Verbindung, um die daraus gelesenen 8-Bit-Datenwörter weiterzuleiten. Der Festwertspeicher 76 enthält achtunddreißig durch ultraviolettes Licht löschbare, programmierbare Festwertspeicherchips, wie sie beispielsweise unter der Seriennummer 1702 von der Intel Corporation im Handel sind. Der Festwertspeicher 76 stellt für 9728 8-Bit-Wörter Speicherraum zur Verfügung. Der Speicher 76 speichert: das Steuerprograinm für den Steuergerätprogrammlader, die Kennung "Contact Histogram" (gespeichert in siebzehn Zeilen mit einem ASCII-Zeichen pro Speicherzeile) und eine Tabelle der Bildschirmläuferpositionen.
Die Speicherzeilen in dem Direktzugriffsspeicher und im Festwertspeicher 76 sind über ein Speicheradreßkabel 95 getrennt adressierbar. Die acht niedrigstwertigen Ziffernleitungen im Speicheradreßkabel 95 sind mit den Ausgängen einer 8-Bit-Datenverriegelung 96 verbunden. Die sechs höchstwertigen Ziffernleitungen sind mit den sechs Ausgängen einer zweiten 8-Bit-Datenverriegelung 97 verbunden. Die Datenverriegelungen 96 und 97 enthalten jeweils acht Flipflops vom D-Typ, deren Taktanschlüsse gemeinsam an entsprechende Taktleitungen 98 bzw. 99 angeschlossen sind und deren D-Eingänge mit entsprechenden Ausgängen der Puffer 89 über ein Kabel 100 verbunden sind. Die Taktleitungen 98 und 99 führen zur Sequenzsteuerschaltung 90, und wenn eine im logischen Sinne hohe Spannung an irgendeiner der beiden Leitungen anliegt, wird ein 8-Bit-Wort am Kabel 100 in der betreffenden Datenverriegelung 96 oder 97 gespeichert.
Die Ausgangsanschlüsse an den Datenverriegelungen
96 und 97 führen auch über ein Kabel 101 zu der Sequenz-
709840/0940
steuerschaltung 90. Ein an das Kabel 101 angelegter Code gibt die Funktion an, die von der den Mikroprozessor unterstützenden oder tragenden Schaltung ausgeführt werden soll. Dieser Code bestimmt beispielsweise, wie die Lese/ Schreib-Leitung von der Sequenzsteuerschaltung 90 zu
steuern ist und bestimmt, welcher Eingabeweg auszuwählen ist, und zwar durch Betätigen des Datenselektors 88 über drei Leitungen 102.
An die acht Ausgangsanschlüsse der Datenverriegelung 96 ist ein achtadriger Datenausgangskanal 105 angeschlossen, über den Daten vom Mikroprozessor 85 zum
Steuergerätspeicheradreßkanal 59, Steuergerätspeicherdatenkanal 62 oder zur Sichtanzeigeeinheit 78 übertragen werden. Der Datenausgangskanal 105 ist mit acht Eingangsanschlüssen einer ersten 8-Bit-Steuergerätadreßverriegelung 106 und mit acht Eingangsanschlüssen einer zweiten
8-Bit-Steuergerätadreßverriegelung 107 verbunden. Die
Verriegelungen 106 und 107 enthalten jeweils acht Flipflops vom D-Typ, deren Taktanschlüsse gemeinsam über
entsprechende Leitungen 108 und 109 an die Sequenzsteuerschaltung 90 angeschlossen sind. Der Q-Ausgang jedes Flipflop in den Adreßverriegelungen 106 und 107 ist mit entsprechenden Eingangsanschlüssen von fünfzehn Speicheradreßtoren und einem Lese/Schreib-Tor 110 verbunden. Bei den Toren 110 handelt es sich um NAND-Glieder, von denen jeweils ein Eingang mit einer Verriegelung 107 oder 106
verbunden ist und von denen jeweils ein zweiter Eingang
über eine Freigabeleitung 111 gemeinsam an die Sequenzsteuerschaltung 90 angeschlossen ist. Der Ausgang von
jedem der ersten fünfzehn Glieder der NAND-Glieder 110
ist an eine Leitung im Steuergerätspeicheradreßkanal 59
angeschlossen. Der Ausgang des sechzehnten NAND-Glieds
110 steht mit der Steuergerät-Lese/Schreib-Leitung 60
in Verbindung.
709840/0940
Der Datenausgangskanal 105 ist weiterhin an acht Eingangsanschlüsse einer ersten Steuergerätdatenverriegelung 112 angeschlossen und auch an acht Eingangsanschlüsse einer zweiten Steuergerätdatenverriegelung 113. Jede der Datenverriegelungen 112 und 113 enthält acht Flipflops vom D-Typ, deren Taktanschlüsse gemeinsam über Taktleitungen 114 und 115 mit der Sequenzsteuerschaltung 90 in Verbindung stehen und deren Q-Ausgänge an entsprechende Eingänge von sechzehn Datenausgangstoren 116 angeschlossen sind. Bei den Datenausgangstoren 116 handelt es sich um NAND-Glieder, deren zweiter Eingang gemeinsam über eine Freigabeleitung 117 zur Sequenzsteuerschaltung 90 führt. Ihre Ausgangsanschlüsse sind mit entsprechenden Leitungen im Steuergerätspeicherdatenkanal 62 verbunden.
Der Datenausgangskanal 105 steht mit acht parallelen Dateneingangsanschlüssen eines asynchronen Universal-Empfanger/Senders 118 in Verbindung. Der Universal-Empfanger /Sender 118 ist eine handelsübliche Einheit, beispielsweise vom Typ AY-5-1013, hergestellt von der Microelektronics Division, The General Instrument Corporation. Der Universal-Empfänger/Sender empfängt und speichert die acht Bits am Datenausgangskanal 105, wenn eine im logischen Sinne hohe Spannung an eine Sendeabtastleitung 119 gelegt ist. Die Abtastleitung 119 ist mit der Sequenzsteuerschaltung 90 verbunden. Wenn an der Abtastleitung 119 eine im logischen Sinne hohe Spannung liegt, werden die am Kanal 105 auftretenden acht Datenbits seriell über einen Ausgangsanschluß an einen Leitungstreiber 121 übertragen. Der Leitungstreiber verstärkt die digitalen Ausgangsdaten in eine zur Übertragung durch das Kabel 79 zur Sichtanzeigeeinheit 78 geeignete Form.
Der Universal-Empfänger/Sender 118 erhält auch 8-Bit-Bytes von Seriendaten von der Sichtanzeigeeinheit über eine Eingangsschaltung 122, die mit einem Seriendaten-
. 709840/09 40
eingangsanschluß 123 verbunden ist. Die Eingangsschaltung sorgt für eine optische Trennung und setzt die am Kabel empfangenen digitalen Signale in Logikpegel um. Wenn eine im logischen Sinne hohe Spannung an einer Empfangsleitung 124 auftritt, gibt der Universal-Empfänger/Sender 118 die seriell empfangenen Daten in Form des 8-Bit-Byte über ein Kabel 125 an den Datenselektor 88 ab.
Der Datenselektor/Multiplexer 88 erhält auch über zwei 8-Bit-Eingangswege Daten vom Steuergerätspeicherdatenkanal 62. Ein Paar von 8-Bit-Eingangsdatenverriegelungen 126 und 128, von denen jede acht Flipflops vom D-Typ enthält, sind mit den sechzehn Leitungen des Steuergerätspeicherdatenkanals 62 verbunden. Die Taktanschlüsse jedes Flipflop führen gemeinsam über eine Taktleitung 128 zur Sequenzsteuerschaltung 90. Wenn eine im logischen Sinne hohe Spannung an dieser Leitung liegt, wird ein 16.Bit-Datenwort in den Verriegelungen 126 und 127 gespeichert, und dieses Wort erscheint an den sechzehn Q-Ausgängen. Die acht Q-Ausgänge der Eingangsdatenverriegelung 126 sind über einen achtadrigen Kanal 129 mit einem Eingangsweg des Multiplexers 88 verbunden. Die acht Q-Ausgänge der Eingangsdatenverriegelung 127 sind über einen Kanal 130 mit einem zweiten Eingangsweg verbunden.
Die Signale SQ, S1, S2 und SYNC, die vom Mikroprozessor 85 erzeugt werden, betätigen zusammen mit Signalen 01 und 02, die vom Taktgeber 86 erzeugt werden, die Sequenzsteuerschaltung 90, um die unterstützende Schaltung zu steuern. Im folgenden wird insbesondere auf das in der Fig. 4 dargestellte Schaltbild der Sequenzsteuerschaltung 90 verwiesen. Die Signale SQ, S1 und S2 werden den Wechselstromeingängen eines 4-Bit-BCD-Decodierers 133 zugeführt. Bei dem BCD-Dec odi er er 133 handelt es sich um eine handelsübliche integrierte Schaltung, deren D-Eingang mit Signalmasse verbunden ist und die eine Gruppe von zehn Ausgangs-
709840/0'9-4 0
anschlüssen 134 aufweist. Während der Zeitperiode P3 wird eine im logischen Sinne niedrige Spannung am vierten der Ausgangsanschlüsse 134 erzeugt. Während der Zeitperiode P1 tritt am sechsten der Ausgangsanschlüsse 134 und während der Zeitperiode P2 am siebten der Eingangsanschlüsse 134 eine im logischen Sinne niedrige Spannung auf. Die Ausgangsanschlüsse 134 sind an Umkehrglieder 130 angeschlossen, um aus der im logischen Sinne niedrigen Spannung im logischen Sinne hohe Taktsignale zu erzeugen. Das Taktsignal P3 wird dem einen Eingang eines ersten UND-Glieds 135, dem einen Eingang eines zweiten UND-Glieds 136 und dem einen Eingang eines dritten UND-Glieds 132 zugeführt. Ein zweiter Eingang des UND-Glieds
135 erhält über das Kabel 101 die zehnte Ziffer der Datenverriegelung 97. Ein zweiter Eingang des UND-Glieds
136 erhält über das Kabel 101 die elfte Ziffer und ein zweiter Eingang des UND-Glieds 132 empfängt die zwölfte Ziffer. Die Ausgänge der UND-Glieder 135, 136 und 132 steuern den Datenselektor/Multiplexer 88 über die Leitungen 102, die eine binärcodierte 3-Bit-Zahl abgeben, die einen von acht Eingangswegen während der Zeitperiode P3 auswählt.
Von den Ausgangsanschlüssen 134 ist derjenige für das Taktsignal P2 mit dem einen Eingang eines NAND-Glieds
137 verbunden. Ein zweiter Eingang des NAND-Glieds 137 erhält das Taktsignal 01 vom Taktgeber 86. Ein dritter Eingang des NAND-Glieds 137 erhält das Signal SYNC vom Mikroprozessor 85. Der Ausgangsanschluß des NAND-Glieds führt über die Leitung 98 zur Datenverriegelung 96. Das an einem der Ausgangsanschlüsse 134 auftretende Taktsignal P1 ist mit einem Eingang eines UND-Glieds 138 verbunden. Ein zweiter Eingang des UND-Glieds 138 empfängt das Taktsignal 02 und ein dritter Eingang das SyW-Taktsignal. Das Ausgangssignal des UND-Glieds 138 steuert die Datenverriegelung 97 über die Leitung 99.
709840/09A1O
Die Steuergerätdatenverriegelungen 112 und 113, die Adreßverriegelungen 106 und 107 und der asynchrone Universal-Empfanger/Sender 118 werden von einem 4-Leitung/6-Leitung-Decodierer 139 angesteuert. Der Decodierer 139 ist eine handelsübliche integrierte Schaltung mit einer Reihe von Eingängen A bis D, die über das Kabel 101 die zehnte, elfte, zwölfte und dreizehnte Ziffer erhalten. Der Decodierer enthält eine Gruppe von sechzehn Ausgangsanschlüssen. Die ersten sechs Ausgangsanschlüsse sind mit Leitungen 114, 115, 108, 109, 119 und 124 verbunden und dienen zur Steuerung der oben aufgeführten Schaltungselemente. Aufgrund eines seinen Eingangsanschlüssen A bis D zugeführten 4-Bit-Operationscode erzeugt der Decodierer 139 eine im logischen Sinne niedrige Spannung an einem seiner sechzehn Ausgangsanschlüsse, wenn einem Taktanschluß 140 eine im logischen Sinne niedrige Spannung zugeführt wird. Der Taktanschluß 140 wird von einem NAND-Glied 141 angesteuert, dessen erster Eingang das Taktsignal P3, dessen zweiter Eingang das Taktsignal 02 und dessen dritter Eingang das Taktsignal SYNC erhält.
Die Lese/Schreib-Leitung 93, die den Direktzugriffsspeicher 91 ansteuert, wird von einem Flipflop 142 vom J-K-Typ gespeist. Der J-Eingang des Flipflop 142 ist an Masse angeschlossen. Sein Taktanschluß C wird von einem UND-Glied 143 angesteuert. Ein Eingang des UND-Glieds empfängt das Taktsignal 02. An einen zweiten Eingang des UND-Glieds 143 wird das STnT! Taktsignal gelegt. Ein Voreinstell-Eingangsanschluß 144 des J-K-Flipflop 142 ist mit dem Ausgang eines NAND-Glieds 145 verbunden. Ein Eingang des NAND-Glieds 145 empfängt das Taktsignal P3, ein zweiter Eingang das Taktsignal 02 und ein dritter Eingang das Taktsignal SYNC. Aufgrund des logischen Zustands dieser Signale wird das Flipflop 142 während der Zeitperiode P3 gesetzt oder zurückgesetzt, um entweder ein Wort aus dem Direktzugriffsspeicher 91 auszulesen oder ein Wort in diesen Speicher einzuschreiben.
709840/0940
Ein direkter Zugriff zum Speicher 55 des programmierbaren Steuergeräts wird eingeleitet, nachdem eine Speicheradresse in die Adreßverriegelungen 106 und 107 geladen worden ist. Ein Flipflop 146 vom R-S-Typ ist mit seinem Setzeingang an den Ausgang eines UND-Glieds 147 angeschlossen. Der eine Eingang des UND-Glieds 147 erhält über das Kabel 101 die siebte Ziffer, und der zweite Eingang ist an die Steuerleitung 109 angeschlossen, die zur zweiten Adreßverriegelung 107 führt. Das Flipflop 146 wird gesetzt, wenn eine Unterbrechung angefordert wird. Eine im logischen Sinne hohe Spannung wird an seinem Q-Ausgang 148 erzeugt, der mit der Steuergerätunterbrechungsleitung 66 verbunden ist. Der Q-Ausgang 148 ist darüberhinaus an den einen Eingang eines UND-Glieds 149 angeschlossen, das den D-Eingang eines Flipflop 150 vom D-Typ ansteuert. Ein zweiter Eingang des UND-Glieds 149 ist mit der Steuergerätbewilligungsleitung 67 verbunden. Wenn eine Unterbrechung bewilligt wird, wird das Flipflop 150 gesetzt, um eine im logischen Sinne hohe Spannung an seinem Q-Ausgang 151 zu erzeugen. Das Flipflop 150 wird von Taktsignalen Τ4 und C1 getaktet, die vom programmierbaren Steuergerät stammen und über ein UND-Glied 152 seinem C-Eingang zugeführt werden. Die während der 1-ms-Unterbrechung am Q-Ausgang 15I erzeugte im logischen Sinne hohe Spannung wird über Puffer 153, 154 und 155 zugeordneten Leitungen 117» 111 und 128 zugeführt, die die Datenausgangstore 116, die Speicheradreßtore 110 und die Eingabedatenverriegelungen 126 und 127 ansteuern. Diese im logischen Sinne hohe Spannung wird darüberhinaus über ein UND-Glied I56 dem Rücksetzanschluß des R-S-Flipflop 146 zugeführt. Das UND-Glied 156 wird durch ein Taktsignal T3 freigegeben, das vom programmierbaren Steuergerät stammt. Bezüglich weiterer Einzelheiten hinsichtlich der Bewilligung und Beendigung der 1-ms-Unterbrechung wird auf die obige Patentschrift verwiesen.
709840/0940
Die Funktion, die die den Mikroprozessor unterstützende Schaltungsanordnung ausführen soll, wird somit von 3efehlen bestimmt, die aus dem Mikroprozessor 85 ausgelesen und in den Datenverriegelungen 96 und 97 gespeichert werden. Bei diesen Befehlen, die sich auf die Kontakthistogrammbetriebsart beziehen, handelt es sich um folgende:
Mnemotechn. Bezeichnung INP MEM INP RECEV
INP PLCLI INP PLCLH INP SUART
Eingabebefehle
Bitmuster Bemerkung
01000001 Lies Daten von den Speichern 76 und
01000011 Gib Daten vom Universal-Empfanger/ Sender 118 ein.
01000101 Gib Daten von Verriegelung 126 ein. 01000111 Gib Daten von Verriegelung 127 ein.
01001111 Empfangene Daten beim Univeraal-Empfänger /Sender 118 vorhanden.
Ausgabebefehle
Mnemotechn. Bezeichnung
OUT PLCLO OUT PLCHO OUT PLCLA OUT PLCHA OUT TRATiS
OUT CLRDA
Bitmuster
01010001 01010011 01010101 01010110 01011001
01011011
Bemerkung
Lade Daten in Verriegelung 112. Lade Daten in Verriegelung 113. Lade Adresse in Verriegelung 106. Lade Adresse in Verriegelung 107.
Übertrage Daten vom Universal-Empf anger/Sender 118.
Bestätige vom Universal-Empfanger/ Sender 118 empfangene Daten.
Wie bereits erwähnt, sind diese Befehle und die anderen Befehle, die die Steuergerätprogrammiereinrichtungsroutinen umfassen, im Festwertspeicher 76 gespeichert. Der Mikroprozessor 85 liest diese Befehle aus dem Speicher 76 in geeigneter Folge aus und führt sie durch. Diese Routinen sollen an Hand von Flußdiagrammen erläutert werden, die in den Fig. 6A, 6B, 7A und 7B dargestellt sind.
709840/0 9 40
Wie es aus den Fig. 6A und 6B hervorgeht, wird die Exekutiv- oder Steuerroutine des Steuergerätprogrammladers an der Stelle 165 eingegeben. Anfangs wird im Entscheidungsblock 166 festgestellt, ob vom Tastenfeld 77 (INP SUART) eine Unterbrechung angefordert worden ist. Falls eine Unterbrechung nicht angefordert worden ist, zweigt die Routine zu dem in der Fig. 6B dargestellten Punkt 167 ab. Andernfalls durchschreitet die Routine eine Reihe von Befehlen, die die Natur der vom Tastenfeld 77 empfangenen Daten bestimmen, und verarbeitet diese Daten in entsprechender Weise. So nimmt ein Entscheidungsblock 168 die Bestimmung vor, ob es sich bei den eingegebenen Daten um numerische Daten handelt, die die E/A-Adresse eines auvor angezeigten Fühlglieds oder Betätigungsglieds identifizieren. Wenn dies der Fall ist, wird eine durch den Block 169 dargestellte numerische Laderoutine ausgeführt, um die empfangenen ASCII-Zeichen (ASCII = amerikanischer Standardcode für Informationsaustausch) in eine binäre Gestellnummer und eine binäre Schlitznummer umzuformen, die vorübergehend im Direktzugriffsspeicher 91 gespeichert sind.
Falls die Tastenfeldunterbrechung kein numerisches Zeichen ist, wird als nächstes überprüft, ob ein Histogrammhinweis gesetzt worden ist. Dies ist durch einen Entscheidungsblock 170 dargestellt. Falls ein Histogrammhinweis gesetzt worden ist, zweigt die Routine zu einem Punkt 171 ab. Andernfalls wird eine Bestimmung vorgenommen, ob die Unterbrechung ein Befehl ist, um eine Redigierfunktion auszuführen, beispielsweise das Laden eines Programmbefehls in den Steuergerätspeicher, das Erzeugen einer Lücke in dem gespeicherten Steuergerätprogramm, das Löschen eines Programmbefehls, die Suche nach einem Programmbefehl usw. Diese Bestimmung ist durch einen Entscheidungsblock 172 angedeutet. Falls eine Redigierfunktion ausgeführt werden soll, wird die geeignete Subroutine aufgerufen und ausgeführt, wie es durch einen Verarbeitungsblock 173 dargestellt ist.
709840/0940
Falls die Tastenfeldunterbrechung kein Redigierbefehl ist, wird in einem Entscheidungsblock 174· überprüft, ob die Kontakthistogrammbetriebsart ausgewählt worden ist. Falls dies so ist, wird ein Kontakthistogrammhinweis gesetzt, wie es durch einen Verarbeitungsblock 175 angedeutet ist. Die Sichtanzeige 80 wird gelöscht und das Wort "Kontakthistogramm" wird angezeigt, wie es durch einen Verarbeitungsblock 176 dargestellt ist. Der Kontakthistogrammhinweis wird in der Zeile zehn des Direktzugriffsspeichers 190 gespeichert, und die ASCII-Zeichen für das Wort "Kontakthistogramm11 sind im Festwertspeicher 76 gespeichert.
Wenn der Kontakthistogrammhinweis gesetzt worden ist, wodurch angezeigt wird, daß diese Betriebsart ausgewählt worden ist, zweigt die Routine beim Entscheidungsblock beim Auftreten der nächsten Tastenfeldunterbrechung zum Punkt 171 ab. Es wird überprüft, ob ein gültiger Kontakthistogrammoperationscode vom Benutzer eingegeben worden ist. Diese Überprüfung ist durch einen Entscheidungsblock 177 dargestellt. Falls ein gültiger Operationscode eingegeben worden ist, wird ein entsprechendes Symbol in Form einer Gruppe von ASCII-Zeichen in den Zeilen 13 bis 17 des Direktzugriffsspeichers 91 gespeichert, wie es durch einen Verarbeitungsblock 178 dargestellt ist. Wie es durch einen Verarbeitungsblock 179 angedeutet ist, wird auch ein numerischer Ladehinweis gesetzt, was bedeutet, daß die nächste gültige Tastenfeldeingabe die E/A-Adresse des zu überwachenden Gerätes ist. Diese E/A-Adresse wird in den Zeilen 7 und 8 des Direktzugriffsspeichers 91 durch Befehle gespeichert, wie es durch den bereits erwähnten Verarbeitungsblock 169 dargestellt ist.
Falls, wie es durch den Entscheidungsblock 177 bestimmt wird, ein Operationscode eingegeben worden ist, der nicht der Kontakthistogrammbetriebsart zugeordnet ist, und falls der Histogrammhinweis gesetzt ist, was durch
709840/0940
einen Entscheidungsblock 180 festgestellt wird, zweigt die Exekutivroutine zurück zum Tastenfeldunterbrechungsentscheidungsblock 166, um auf die Eingabe eines gültigen Operationscode zu warten. Falls sich der Steuergerätprogrammlader in einer anderen Betriebsart befindet, was der Entscheidungsblock 180 bestimmt, wird die Tastenfeldeingabe als ein Operationscode identifiziert, der dem Kontakthistogramm nicht zugeordnet ist. Diese Entscheidung wird von einem Entscheidungsblock 181 vorgenommen. Der Nichthistogrammoperationscode wird im Direktzugriffsspeicher 91 gespeichert, und zwar durch Befehle, die durch den Verarbeitungsblock 182 dargestellt sind.
Das in der Fig. 6A gezeigte Flußdiagramm und die obige Beschreibung erläutern die Art und Weise, in der Information über das Tastenfeld 77 eingegeben wird, um die Feststellung zu treffen, ob die Kontakthistogrammbetriebsart ausgewählt worden ist, und, wenn dies der Fall ist, die Identität des E/A-Gerätes festzustellen, das zu überwachen ist. Wie es aus der Fig. 6B hervorgeht, bestimmt die Exekutivroutine zwischen Tastenfeldunterbrechungen, ob oder ob nicht die Bedingungen zur Eingabe der Kontakthistogrammroutine geeignet sind. Wenn eine Tastenfeldunterbrechung nicht vorgenommen wird, wenn die Exekutivroutine den Befehl ausführt, zweigt die Routine, wie es in dem Entscheidungsblock 166 dargestellt ist, zur Bestimmung über, ob oder ob nicht der Kontakthistogrammhinweis gesetzt worden ist. Dies ist durch einen Entscheidungsblock 182 in der Fig. 6B dargestellt. Wenn der Kontakthi stogrammhinweis gesetzt worden ist und der Operationscode eingegeben worden ist, der den Typ des zu überwachenden Geräts identifiziert, wird das Gerätesymbol in der oberen linken Ecke der Sichtanzeige 80 dargestellt, wie es an der Stelle 164 in der Fig. 8 gezeigt ist. Dies geschieht durch eine Reihe von Befehlen, die durch einen Verarbeitungsblock 183 wiedergegeben sind. Dabei werden die zuvor
709840/0940
gespeicherten ASCII-Zeichen von den Zeilen 13 bis 17 des Direktzugriffsspeichers 91 zur Sichtanzeige 80 übertragen.
Nachdem das Elementsymbol dargestellt worden ist, bleibt die Exekutivroutine entsprechend der Untersuchung in einem Entscheidungsblock 184 in einer Schleife, bis die fünf E/A-Adreßzeichen für das ausgewählte Element vom Benutzer eingegeben und im Direktzugriffsspeicher 91 gespeichert sind. Das Laden der fünf E/A-Adreßzeichen in den Direktzugriffsspeicher 91 wird durch einen numerischen Index aufgezeichnet, der in der Zeile 9 des Direktzugriffsspeichers 91 gespeichert ist. Bei Jeder Tastenfeldunterbrechung und Speicherung eines numerischen Zeichens im Direktzugriffsspeicher 91 wird der numerische Index inkrementiert. Die durch den Entscheidungsblock 184 dargestellten Befehle überprüfen den numerischen Index. Wenn der numerische Index gleich fünf ist, wird die Histogrammroutine in einer noch zu beschreibenden Weise aufgerufen und ausgeführt.
Wie es aus der Fig. 8 hervorgeht, wird die E/AAdresse über dem Symbol des zu überwachenden Gerätes dargestellt. Das erste numerische Zeichen gibt an, ob das ausgewählte E/A-Gerät ein Fühlglied, ein Betätigungsglied, ein interner Zeitgeber oder ein interner Zähler ist. Das zweite numerische Zeichen gibt die Schnittstellengestellnummer des ausgewählten E/A-Gerätes an. Das dritte numerische Zeichen stellt die Schlitznummer dar, mit der das E/A-Gerät verbunden ist. Die letzten beiden numerischen Zeichen geben an, an welche der sechzehn E/A-Schaltungen in dem Schlitz das ausgewählte E/A-Gerät angeschlossen ist. Fünf Nullen werden über dem Elementsymbol dargestellt. Wenn jedes numerische Zeichen ausgewählt und im Direktzugriffsspeicher 91 gespeichert ist, wird es anstelle einer der Nullen dargestellt.
709840/0940
Obwohl die Erfindung in erster Linie die Kontakthistogrammbetriebsart des Steuergerätprogrammladers betrifft und daher diese Seite der Exekutivroutine im einzelnen dargestellt worden ist, kann die Exekutivroutine auch eine Reihe von anderen Funktionen ausführen. Zu diesen Funktionen zählt die Sichtanzeige eines Steuerprogramms auf dem Bildschirm 80, und zwar in einem Leiterdiagrammformat. Falls sich der Steuergerätprogrammlader nicht in der Kontakthistogrammbetriebsart befindet, wie es vom Entscheidungsblock 182 in der Fig. 6B bestimmt wird, kommt es zu einer Bestimmung der ausgewählten Betriebsart und die geeignete Sichtanzeigeroutine wird aufgerufen. Dies ist durch einen Verarbeitungsblock 185 dargestellt, der zur Exekutivroutine zurückgeführt ist, wenn die nächste Tastenfeldunterbrechung auftritt.
In den Fig. 7A, 7B und 8 ist dargestellt, wie die Exekutivroutine die Histogrammroutine aufruft, wenn das zu überwachende E/A-Gerät vollständig identifiziert ist und eine entsprechende Darstellung auf dem Bildschirm 80 vorgenommen worden ist. Während dieser Exekution oder Ausführung wird die folgende Information im Direktzugriffsspeicher 91 gespeichert.
1-3 Sechs binärcodierte Dezimalziffern (xxxx.xx), die die zwischen Zustandsänderungen vergangene Zeit akkumulieren.
k Hinweis A, ein 1-Bit-Wort, das anzeigt, ob das
E/A-Gerät eine Zustandsänderung vorgenommen hat.
5 Index B, eine 2-Bit-Zahl, die die Anzahl (1-4) der Elemente anzeigt, die gegenwärtig in einer Zeile der Sichtanzeige dargestellt werden.
6 Index C, eine 5-Bit-Zahl, die die Gesamtanzahl (1-32) der Elemente anzeigt, die auf dem Bildschirm dargestellt werden.
7 & 8 16-Bit-E/A-Adresse des ausgewählten E/A-Gerätes.
709840/0940
10 & 12
11 - 17
13 & 19
18 20
Numerischer 3-Bit-Index, der das Ausmaß zählt (1-5)ι mit dem die E/A-Adresse eingegeben worden
ist.
1-Bit-Kontakthistogrammbetriebsartauswahlhinweis. Zwischenspeicher.
Fünf ASCII-Zeichen, die die Art oder den Charakter des ausgewählten E/A-Gerätes identifizieren.
16-Bit-Bildschirmläuferpositionsanzeiger.
1-Bit-Wort, das den gegenwärtigen Zustand des ausgewählten E/A-Gerätes anzeigt.
Die Kontakthistogrammroutine wird an der Stelle 186 eingegeben. Die erste Funktion besteht darin, den Bildschirmläufer bzw. die Anzeigeposition auf dem Bildschirm richtig einzustellen. Dies geschieht durch Programmbefehle, die durch einen Verarbeitungsblock 187 dargestellt sind. Diese Befehle setzen den 16-Bit-Bildschirmläuferpositionsanzeiger, der im Direktzugriffsspeicher 91 gespeichert wird, auf einen vorgewählten Wert. Wie es durch einen Entscheidungsblock 188 dargestellt ist, wird anschließend bestimmt, ob der Kontakthlstogrammbefehl vom Benutzer gelöscht worden ist. Wenn dies der Fall ist, wird der Histogrammhinweis auf Null gesetzt, wie es durch einen Verarbeitungsblock 189 gezeigt ist. Die Routine wird dann zurück zur Exekutivroutine geführt. Wenn die oben genannte Bedingung nicht besteht, wird die anfängliche Bildschirmläuferposition, die durch den 16-Bit-Anzeiger identifiziert wird, aus einer Tabelle im Festwertspeicher 76 gelesen und zum Bildschirraanzeigeanschluß 78 übertragen, wie es durch einen Verarbeitungsblock 190 dargestellt ist. Wie es aus der Fig. 8 hervorgeht, befindet sich die anfängliche Läuferposition nahe bei der oberen linken Ecke des Bildschirms an der Stelle 191.
Aus der Fig. 8 geht hervor, daß die Sichtanzeigeeinheit 78 ein Maximum von acht Informationszeilen mit einem Maximum von vier Zustandsänderungen pro Zeile wiedergibt.
.709840/0940
Der Index B speichert die Anzahl der dargestellten Zustandsänderungen (1 bis 4) in einer Zeile und wird anfangs durch Befehle auf Null gesetzt, wie es in einem Verarbeitungsblock 192 dargestellt ist. Eine Gruppe von Befehlen, die durch einen Verarbeitungsblock 193 dargestellt sind, übermitteln dann die ASCII-Zeichen (im Beispiel der Fig. 8: - £ 3 - )» die in den Zeilen 13 bis des Direktzugriffsspeichers 91 gespeichert sind, zur Sichtanzeigeeinheit 78. Gleichzeitig wird der in der Zeile 20 des Direktzugriffsspeichers 91 gespeicherte Zustand des ausgewählten E/A-Gerätes zur Sichtanzeigeeinheit 78 übertragen, um die Intensität der dargestellten Zeichen zu steuern. Wenn beispielsweise ein ausgewähltes Fühlgerät abgeschaltet oder außer Betrieb ist, wird das dargestellte Zeichen mit normaler Intensität wiedergegeben. Falls aber das ausgewählte Fühlgerät eingeschaltet oder in Betrieb ist, wird das dargestellte Zeichen bezüglich der Intensität verstärkt wiedergegeben. Bei dem in der Fig. 8 dargestellten Beispiel ist das betreffende Fühlgerät abgeschaltet, und das Zeichen wird mit normaler Intensität angezeigt.
Der in den Zeilen 1 bis 3 des Direktzugriffsspeichers 91 gespeicherte interne Zeitgeber wird als nächstes auf Null gesetzt, wie es durch einen Verarbeitungsblock 194 angezeigt ist. Unmittelbar danach erfolgt, wie es durch einen Verarbeitungsblock 195 wiedergegeben ist, eine Weiterschaltung um zwei 10-ms-Zeitschritte. Ein Verarbeitungsblock 196 stellt dar, daß die dem B-Index zugeordnete Zeile 5 des Direktzugriffsspeichers 91 um einen Zählschritt inkrementiert wird, um aufzuzeichnen, daß das ausgewählte E/A-Element und sein Zustand einmal dargestellt worden sind. Die dem Hinweiszeichen A zugeordnete Zeile des Direktzugriffsspeichers 91 wird auf Null gesetzt, wie es durch einen Verarbeitungsblock 197 dargestellt ist.
709840/0940
Aus der Fig. 7B geht hervor, daß als nächstes eine Gruppe von Befehlen ausgeführt wird, die durch einen Entscheidungsblock 198 dargestellt sind, um zu bestimmen, ob oder ob nicht das ausgewählte E/A-Gerät seinen logischen Zustand geändert hat. Diese Befehle und die Art und Weise, in der die Schaltungsanordnung aufgrund dieser Befehle arbeitet, wird jetzt im einzelnen erläutert. Falls sich der Zustand nicht geändert hat, tritt die Routine in eine Zeitschleife mit einer Dauer von 10 ms ein. Diese Routine beginnt mit Befehlen, wie sie in den Blöcken 199 und 200 dargestellt sind. Dabei wird bestimmt, ob eine Unterbrechung durch das Tastenfeld 77 eingeleitet worden ist oder ob ein Befehl gegeben worden ist, um die Histogrammbetriebsart zu löschen. Wenn beides nicht der Fall war, wird die in den Zeilen 1 bis 3 des Direktzugriffsspeichers 91 akkumulierte abgelaufene Zeit um einen 10-ms-Schritt inkrementiert, wie es durch einen Verarbeitungsblock 201 dargestellt ist, und die Routine wird über einen Entscheidungsblock 202 zum Entscheidungsblock 198 zurückgeschleift. Der Entscheidungsblock 202 überprüft, ob der interne Taktgeber seinen Maximalwert von 9999,99 s erreicht hat.
Die Histogrammroutine bleibt in der 10-ms-Zeitschleife, bis irgendeiner von vier Umständen auftritt. Falls die Histogrammroutine gelöscht wird, was ein Entscheidungsblock 200 feststellt, wird der Histogrammhinweis auf Null gesetzt, wie es durch einen Verarbeitungsblock dargestellt ist, und die Routine wird zur Exekutivroutine zurückgeführt. Falls entweder eine Tastenfeldunterbrechung auftritt oder der interne Zeit- oder Taktgeber seinen Maximalwert erreicht, was die Entscheidungsblöcke 199 und überprüfen, zweigt die Routine aus der Zeitschleife zu einem Punkt 204 ab. Wenn bei der Ausführung der Befehle, die im Entscheidungsblock 198 dargestellt sind, eine Zustandsänderung festgestellt wird, gelangt die Routine ebenfalls zum Punkt 204, und zwar über eine Gruppe von
709840/0940
Befehlen, die durch einen Verarbeitungsblock 205 dargestellt sind, wobei der Hinweis A auf 1 gesetzt wird.
Nach der Abzweigung zum Punkt 204 analysieren und inkrementieren nachfolgende Befehle in der Histogrammroutine die B- und C-Indices und stellen die abgelaufene Zeit sichtbar dar. So wird der C-Index von Befehlen überprüft, die durch einen Entscheidungsblock 206 dargestellt sind, um festzustellen, ob der Bildschirm voll ist. Wenn der Index C gleich 32 ist, ist der Bildschirm voll, und die Routine kehrt zur Zeitschleife zurück, um die Zeit zu akkumulieren. Andernfalls wird der B-Index überprüft, und zwar durch Befehle, die durch einen Entscheidungsblock dargestellt sind, um zu bestimmen, ob eine Zeile auf dem Bildschirm voll ist. Wenn dies nicht der Fall ist, zweigt die Routine zu einem Punkt 208 ab. Wenn eine Zeile voll ist, wird eine Läuferposition aus dem Festwertspeicher 76 ausgelesen, und zwar durch den in den Zeilen 18 und 19 des Direktzugriffsspeichers 91 gespeicherten Anzeiger, um die nächste Zeile zu starten. Der B-Index wird dann auf Null zurückgesetzt, wie es durch einen Verarbeitungsblock 219 angezeigt ist, und die Routine führt dann Befehle aus, die durch einen Verarbeitungsblock 211 wiedergegeben sind, um die in den Zeilen 1 bis 3 des Direktzugriffsspeichers in Form einer 6-Dezimalziffer gespeicherte abgelaufene Zeit anzuzeigen. Der C-Index wird dann um einen Zählschritt inkrementiert, wie es durch einen Verarbeitungsblock 212 dargestellt ist, und die Routine kehrt zu einem in der Fig. 7A gezeigten Punkt 213 zurück, um das Elementsymbol darzustellen und seinen Zustand anzuzeigen, wie es oben beschrieben ist. Das Kontakthistogramm fährt mit der überwachung des ausgewählten E/A-Gerätes fort und stellt seinen Zustand sowie die Zeit zwischen Zustandsänderungen dar, bis der Bildschirm voll ist.
709840/0940
Die Kontakthistogrammroutine überprüft somit periodisch den Zustand des ausgewählten E/A-Gerätes und akkumuliert gleichzeitig die abgelaufene Zeit. Wenn eine Zustandsänderung auftritt, wird die abgelaufene Zeit auf dem Bildschirm zusammen mit einer Anzeige des gegenwärtigen Zustands des E/A-Gerätes dargestellt. Während bei dem ersten Ausführungsbeispiel der Erfindung der Zustand des ausgewählten E/A-Gerätes immer dann überprüft wird, wenn ein an dieses Gerät gerichteter Steuergerätprogrammbefehl ausgeführt wird, unterbricht bei dem zweiten Ausführungsbeispiel der Erfindung der Steuergerätprogrammlader periodisch die Operation des Steuergerätprozessors und überprüft den Zustand des richtigen Bit in der Eingabe- oder Ausgabebildtabelle des Steuergerätspeichers. Die Befehle, die diese Funktion ausführen, sind kollektiv durch den Entscheidungsblock 198 in der Fig. 7B dargestellt. Die Programmauflistung wird jetzt unter Bezugnahme auf die Fig. 2 und 3 sowie die Befehlssetz- und Mikroprozessorregisterbezeichnungen im einzelnen erläutert, die in dem oben angegebenen "Users Manual" für den Mikroprozessor enthalten sind.
Etikett Operation Operand Bemerkungen
CHANG LLI STATA Lade Direktzugriffsspeicheradresse der Leitung 20 in das Mikroprozessor-L-Register
LEM Speichere den Inhalt der Zeile
in dem Mikroprozessor-E-Register
LLI ELMAI Lade Direktzugriffsspeicheradresse
der Zeile 7 in das Mikroprozessor-L-Register
LCM Speichere den Inhalt der Zeile
im Mikroprozessor-C-Register
INL Inkrementierte das Mikroprozessor-
L-Register, um die Direktzugriffsspeicheradresse der Zeile 8 zu erhalten
LDM Speichere den Inhalt der Zeile
im Mikroprozessor-D-Register
709840/0940
LAD
OUT
LAI OUT
LAC
NDI
LBA 1OB
LAC CHAD1
NDI
JFZ
CHAD1
INP
JMP INP
CHAD2 RRC
Lade den Mikroprozessorakkumulator mit der E/A-Bildtabelle-Wortadresse im Register D
PLCLA Gib den Akkumulatorinhalt an die Adreßverriegelung 106 ab
300B Lade den Akkumulator mit Null
PLCHA Gib den Akkumulatorinhalt an die zweite Adreßverriegelung 107 ab. Diese Aktion führt zu einer Unterbrechung des Prozessors des programmierbaren Steuergeräts, während der die adressierte Zeile der Eingabe- oder Ausgabebildtabelle ausgelesen und in den Eingabedatenverriegelungen 126 und 127 gespeichert wird
Lade den Bit-Anzeiger oder die Bithinweisadresse, die im C-Register gespeichert ist, in den Akkumulator
7B Maskiere die oberen fünf Bits, so daß nur die unteren drei Bits des 4-Bit-Anzeigers verbleiben
Speichere den Akkumulatorinhalt im B-Register
Lade die Bit-Anzeiger-Information im C-Register wieder in den Akkumulator
Maskiere alle Bits mit Ausnahme des höchstwertigen Bit des Bit-Anzeigers
Falls der Akkumulator nicht Null ist, springe zur CHAD1-Adresse.Dieses Ergebnis zeigt an, daß das gewünschte Zustandsbit im oberen 8-Bit-Byte in der Eingabedatenverriegelung 127 gespeichert ist
PLCLI Gib das untere 8-Bit-Byte des Zustandswortes ein, das in der Eingabedatenverriegelung 126 gespeichert ist
CHAD2 Gehe zum Endabschnitt der Subroutine
PLCHI Gib das obere 8-Bit-Byte des Zu-
standsworts ein, das in der Eingabedatenverriegelung 127 gespeichert ist
Verschiebe den Akkumulatorinhalt um ein Bit nach rechts, wobei das Bit A in das Übertrag-Flipflop gelangt.
709840/0940
CHAD4
CHAD3
DCB JFS
JTC
LBI
JMP LBI
LAE NDI
CPB JTZ
LLI
LMB
JMP Dekrementiere das B-Register um einen Zählschritt
CHAD2 Wenn das B-Register Null ist, gehe zum nächsten Befehl; andernfalls gehe zurück zu CHAD2 und fahre mit der Verschiebung fort
CHAD4 Wenn das überprüfte Bit im Akkumulator 1 ist, springe nach CHAD4
Wenn das Bit im Akkumulator Null ist, setze B-Register auf Null
CHAD3 Springe nach CHAD3
Wenn das Übertrag-Bit im Akkumulator 1 ist, setze B-Register auf 1
Lade Inhalt des Ε-Registers in den Akkumulator
17B Maskiere die oberen vier Bits im Akkumulator, so daß das "vorangegangene" Zustandsbit übrig bleibt
Vergleiche das "vorangegangene" Zustandsbit im Akkumulator mit dem "gegenwärtigen" Zustandsbit im B-Register
Wenn die verglichenen Zustandsbits einander gleich sind, springe zum Verarbeitungsblock 199 in der Fig. 7B. Andernfalls führe den nächsten Befehl aus
STATA Lade die Direktzugriffsspeicheradresse der Zeile 20 in das L-Register
Lade das "gegenwärtige" oder "laufende" Zustandsbit im B-Register in die Leitung 20 des Direktzugriffsspeichers 91
Fahre mit Befehlen fort, wie sie durch den Verarbeitungsblock 205 in der Fig. 7B angegeben sind.
Zwei bevorzugte Ausführungsbeispiele der Erfindung wurden in Verbindung mit zwei Arten von handelsüblichen programmierbaren Steuergeräten beschrieben. Die Erfindung kann auch andersartig verwirklicht werden, beispielsweise in Verbindung mit unterschiedlichen Arten von programmierbaren Steuergeräten.
Li/Gu
709840/0940

Claims (9)

  1. Patentansprüche
    Programmlader für ein Steuergerät, das mit einer Vielzahl von Eingabe/Ausgabe-Geräten verbunden ist, gekennzeichnet durch ein Kontakthistogramm sowie durch:
    Mittel (12) zum Speichern der Eingabe/Ausgabe-Adresse eines ausgewählten, zu überwachenden Gerätes, mit den Speichermitteln verbundene Mittel (16) zum Vergleichen der gespeicherten Eingabe/Ausgabe-Adresse mit der in jedem von dem Steuergerät auszuführenden Programmbefehl enthaltenen Eingabe/Ausgabe-Adresse, wobei die Vergleichsmittel bei Adressenidentität ein ausgewähltes logisches Signal erzeugen,
    mit dem Steuergerät und mit den Vergleichsmitteln verbundene Mittel (26) zum Speichern des Zustands des ausgewählten Gerätes, wenn das ausgewählte logische Signal von den Vergleichsmitteln erzeugt wird,
    Zeitgabemittel (43, 47, 73) zum Akkumulieren der abgelaufenen Zeit und zum Aufzeichnen der Zeit bei entsprechender Freigabe, und
    mit den Zustandsspeichermitteln verbundene Mittel (31, 34, 37, 45) zur Freigabe der Zeitgabemittel, wenn sich der gespeicherte Zustand des ausgewählten Gerätes ändert.
  2. 2. Programmlader nach Anspruch 1,
    dadurch gekennzeichnet, da3 das Steuergerät einen Logikeingabekanal (11) aufweist, der mit den an das Steuergerät angeschlossenen Geräten verbunden ist und der den Zustand von einem dieser Geräte anzeigt, wenn das Steuergerät einen Programmbefehl mit einer dem betreffenden Gerät zugeordneten Eingabe/Ausgabe-Adresse ausführt, und daß die Zustandsspeichermittel ein Flipflop (26) aufweisen, dessen Eingang (27, 28) an den Logikeingabekanal (11) angeschlossen ist.
    709840/0940
    ORIGINAL INSPECTED
  3. 3. Programmlader nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß sich die Zeitgabemittel auszeichnen durch einen Zähler (73), der die abgelaufene Zeit akkumuliert und speichert, durch Aufzeichnungsmittel (47), die mit den Freigabemitteln (31, 34, 37, 45) und mit dem Zähler (37) verbunden sind, um bei ihrer Freigabe eine sichtbare Anzeige der abgelaufenen Zeit darzubieten, und Rücksetzmittel (45), die mit den Freigabemitteln und dem Zähler verbunden sind, um nach jeder sichtbaren Anzeige der abgelaufenen Zeit den Zähler zurückzustellen.
  4. 4. Programmlader für ein Steuergerät, das mit einer Vielzahl von Eingabe/Ausgabe-Geräten verbunden ist, gekennzeichnet durch ein Kontakthistogramm sowie durch:
    mit dem Steuergerät verbundene Mittel zum periodischen Überprüfen des Zustands eines ausgewählten, zu überwachenden Gerätes,
    Mittel zum Speichern des Zustands des überwachten Gerätes,
    Mittel zum Akkumulieren der abgelaufenen Zeit und zum Aufzeichnen dieser Zeit bei entsprechender Freigabe und
    mit den Zustandsspeichermitteln verbundene Mittel zur Freigabe der Aufzeichnungsmittel, wenn sich der gespeicherte Zustand des ausgewählten Gerätes ändert (Fig. 2, 3 und 4).
  5. 5. Programmlader nach Anspruch 4,
    gekennzeichnet durch Mittel zum Zurücksetzen der Zeitgabemittel auf Null nach jeder Aufzeichnung der abgelaufenen Zeit.
    709840/0940
  6. 6. Programmlader nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß der Zustand jedes mit dem Steuergerät verbundenen Gerätes in Form eines Zustandsbit in einem Steuergerätspeicher gespeichert ist, daß der Programmlader Mittel zum Speichern der Steuergerätspeicheradresse des Zustandsbit für das zu überwachende Gerät aufweist und daß sich die Überprüfungsmittel auszeichnen durch Mittel zum Übermitteln der gespeicherten Steuergerätspeicheradresse an den Steuergerätspeieher und durch Mittel zum Lesen des Zustandsbit dieses Gerätes aus dem Steuergerätspeieher.
  7. 7. Programmlader nach Anspruch 6,
    dadurch gekennzeichnet, daß sich die Freigabemittel auszeichnen durch Mittel zum Vergleichen des in den Zustandsspeichermitteln gespeicherten Gerätezustands mit dem aus dem Steuergerätspeicher ausgelesenen Zustandsbit dieses Gerätes.
  8. 8. Programmlader nach Anspruch 6,
    dadurch gekennzeichnet, daß der Zustand einer Vielzahl von Geräten jeweils bei einer der S-teuergerätspeicheradressen gespeichert ist und daß sich die Überprüfungsmittel auszeichnen durch Mittel zum Speichern einer Bithinweismarke und durch auf die gespeicherte Bithinweismarke ansprechende Mittel, um unter einer Vielzahl von aus dem Steuergerätspeicher ausgelesener Zustandsbits das Zustandsbit des zu überwachenden Gerätes auszuwählen.
    709840/0940
  9. 9. Programmlader nach einem der Ansprüche 4 bis 8, dadurch gekennzei chnet, daß die Mittel zum Aufzeichnen der abgelaufenen Zeit einen Katodenstrahlenrö'hrenbildschirm aufweisen, auf dem die abgelaufene Zeit dargestellt wird, und daß Mittel vorhanden sind, die den Zustand des ausgewählten Gerätes zur Bildschirmanzeigeeinheit übermitteln und bei entsprechender Freigabe die Bildanzeige vornehmen.
    709840/0940
DE19772713253 1976-03-26 1977-03-25 Programmlader fuer ein steuergeraet Granted DE2713253A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/671,020 US4070702A (en) 1976-03-26 1976-03-26 Contact histogram for programmable controller

Publications (2)

Publication Number Publication Date
DE2713253A1 true DE2713253A1 (de) 1977-10-06
DE2713253C2 DE2713253C2 (de) 1989-01-12

Family

ID=24692822

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772713253 Granted DE2713253A1 (de) 1976-03-26 1977-03-25 Programmlader fuer ein steuergeraet

Country Status (4)

Country Link
US (1) US4070702A (de)
CA (1) CA1070844A (de)
DE (1) DE2713253A1 (de)
GB (1) GB1532142A (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7703078A (nl) * 1977-03-22 1978-09-26 Philips Nv Inrichting voor het genereren en corrigeren van een gebruikersprogramma.
US4165534A (en) * 1977-04-25 1979-08-21 Allen-Bradley Company Digital control system with Boolean processor
US4219881A (en) * 1977-12-30 1980-08-26 Honeywell Inc. Digital input control circuit
US4328539A (en) * 1978-07-28 1982-05-04 Amf Incorporated Sequence controller with microprocessor
DE2950979C2 (de) * 1978-12-19 1995-11-16 Allen Bradley Co Numerisches Steuerungssystem
IL59957A (en) * 1979-05-14 1983-09-30 Metropolitan Life Insurance Co Method and apparatus for measuring computer time
US4369493A (en) * 1979-05-14 1983-01-18 Metropolitan Life Insurance Company Response time monitor
US4649510A (en) * 1982-04-30 1987-03-10 Schmidt Walter E Methods and apparatus for the protection and control of computer programs
JPS58205214A (ja) * 1982-05-26 1983-11-30 Omron Tateisi Electronics Co プログラマブル・コントロ−ラのモニタ表示方式
JPS60136810A (ja) * 1983-12-26 1985-07-20 Fuji Electric Co Ltd プログラマブルコントロ−ラ
US4716541A (en) * 1984-08-02 1987-12-29 Quatse Jesse T Boolean processor for a progammable controller
US4870614A (en) * 1984-08-02 1989-09-26 Quatse Jesse T Programmable controller ("PC") with co-processing architecture
US4930101A (en) * 1986-05-09 1990-05-29 Dataproducts Corporation Microprocessor-controlled meter package for a printer
US4775929A (en) * 1986-10-14 1988-10-04 Honeywell Bull Inc. Time partitioned bus arrangement
US4829596A (en) * 1987-02-09 1989-05-09 Allen-Bradley Company, Inc. Programmable controller with fiber optic input/output module
FR2641878A1 (fr) * 1988-12-28 1990-07-20 Nicolai Jean Pierre Systeme de controle et de commande par visualisation de synoptiques sur un terminal graphique intelligent d'un procede automatise
US5265005A (en) * 1990-08-31 1993-11-23 Allen-Bradley Company, Inc. Processor for a programmable controller
US5225974A (en) * 1990-10-30 1993-07-06 Allen-Bradley Company, Inc. Programmable controller processor with an intelligent functional module interface
US5313386A (en) * 1992-06-11 1994-05-17 Allen-Bradley Company, Inc. Programmable controller with backup capability
US5392424A (en) * 1992-06-11 1995-02-21 Allen-Bradley Company, Inc. Apparatus for detecting parity errors among asynchronous digital signals
US5295059A (en) * 1992-09-09 1994-03-15 Allen-Bradley Company, Inc. Programmable controller with ladder diagram macro instructions
US5321603A (en) * 1992-12-15 1994-06-14 Allen-Bradley Company, Inc. Programming apparatus for an industrial controller using two-dimensional graphic behavior profiles
US5428526A (en) * 1993-02-03 1995-06-27 Flood; Mark A. Programmable controller with time periodic communication
FR2707406B1 (fr) * 1993-07-06 1995-09-01 Framatome Sa Procédé d'essai d'un ensemble de conduite d'un processus industriel et dispositif pour mettre en Óoeuvre ce procédé.
US6954922B2 (en) * 1998-04-29 2005-10-11 Sun Microsystems, Inc. Method apparatus and article of manufacture for time profiling multi-threaded programs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3118722A (en) * 1960-12-30 1964-01-21 Bell Telephone Labor Inc Indication recording system
US3813649A (en) * 1972-09-01 1974-05-28 Bradley Co A Controller program editor
US3818458A (en) * 1972-11-08 1974-06-18 Comress Method and apparatus for monitoring a general purpose digital computer
US3829841A (en) * 1972-01-24 1974-08-13 Computer Performance Instrumen Computer monitoring device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3522597A (en) * 1965-11-19 1970-08-04 Ibm Execution plotter
US3701113A (en) * 1971-08-13 1972-10-24 Digital Equipment Corp Analyzer for sequencer controller
US3771144A (en) * 1972-07-24 1973-11-06 Ibm Clock for computer performance measurements
US3921146A (en) * 1973-01-05 1975-11-18 Gen Electric Programmable data processor and controller system
US3868648A (en) * 1973-07-05 1975-02-25 Ind Dynamics Inc Programmable process and production control systems
US3969703A (en) * 1973-10-19 1976-07-13 Ball Corporation Programmable automatic controller
US3939453A (en) * 1974-04-29 1976-02-17 Bryant Grinder Corporation Diagnostic display for machine sequence controller
US3984662A (en) * 1974-09-30 1976-10-05 Infomat Corporation Rate recording system
US3971920A (en) * 1975-05-05 1976-07-27 The Bendix Corporation Digital time-off-event encoding system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3118722A (en) * 1960-12-30 1964-01-21 Bell Telephone Labor Inc Indication recording system
US3829841A (en) * 1972-01-24 1974-08-13 Computer Performance Instrumen Computer monitoring device
US3813649A (en) * 1972-09-01 1974-05-28 Bradley Co A Controller program editor
US3818458A (en) * 1972-11-08 1974-06-18 Comress Method and apparatus for monitoring a general purpose digital computer

Also Published As

Publication number Publication date
DE2713253C2 (de) 1989-01-12
GB1532142A (en) 1978-11-15
CA1070844A (en) 1980-01-29
US4070702A (en) 1978-01-24

Similar Documents

Publication Publication Date Title
DE2713253A1 (de) Programmlader fuer ein steuergeraet
DE1928202C3 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2735207C3 (de) Maschinensteuersystem
DE2648229C2 (de)
DE1549532C2 (de) Unterbrechungs-Direktorschalrwerk für eine Datenverarbeitungsanlage mit mehreren Rechenanlagen und mehreren perpheren Geräten
DE1424732C3 (de) Einrichtung zum gegenseitigen Austausch von Angabenwörtern zwischen einem unmittelbar zugänglichen Hauptspeicher eineT Ziffernrechenmaschine und einem an diese angeschlossenen Sekundärspeicher vergleichsweise längerer Zugriffszeit
DE2060635A1 (de) Rechner-Steuergeraet sowie Verfahren und Steuerpult zum Programmieren desselben
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2846117A1 (de) Informationsverarbeitungsvorrichtung
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE2714805A1 (de) Datenverarbeitungssystem
DE1549522B1 (de) Datenverarbeitungsanlage mit simultanverarbeitung mehrerer programme mittels mehrerer rechner
DE2424820B2 (de) Einrichtung zur Durchsuchung eines Datenspeichers
DE3013070C2 (de) Schaltungsanordnung zur Bearbeitung von aus mehreren peripheren Geräten herangeführten Anforderungssignalen innerhalb einer datenverarbeitenden Einrichtung
DE2726537A1 (de) Programmierbares steuergeraet mit einem speicher
DE1812137C3 (de) Elektronische Datenverarbeitungsanlage
DE1191145B (de) Elektronische Zifferrechenmaschine
DE1160222B (de) Schaltungsanordnung zur Adressenmodifikation bei einer programmgesteuerten digitalen Rechenmaschine
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE1549399A1 (de) Verfahren und System zur grafischen Aufzeichnung von Kurvenzuegen
DE2759120A1 (de) Prozessor fuer datenverarbeitungssysteme
DE2403669A1 (de) Spezialcomputer
DE2932394A1 (de) Intelligente, programmierbare prozessteueranordnung
DE2500320C2 (de)

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 11/34

D2 Grant after examination
8364 No opposition during term of opposition