DE69320122T2 - Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen - Google Patents
Speicherprogrammierbare Steuerung mit Leiterdiagramm-MakroinstrucktionenInfo
- Publication number
- DE69320122T2 DE69320122T2 DE69320122T DE69320122T DE69320122T2 DE 69320122 T2 DE69320122 T2 DE 69320122T2 DE 69320122 T DE69320122 T DE 69320122T DE 69320122 T DE69320122 T DE 69320122T DE 69320122 T2 DE69320122 T2 DE 69320122T2
- Authority
- DE
- Germany
- Prior art keywords
- ladder logic
- data
- macroinstruction
- macro
- routine
- 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
Links
- 238000010586 diagram Methods 0.000 title description 11
- 230000015654 memory Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004886 process control Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13017—Macro instructions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15127—Bit and word, byte oriented instructions, boolean and arithmetic operations
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf programmierbare Steuereinheiten zum Betreiben von industriellen Maschinen und insbesondere auf Prozessoren, die ein Leiterlogik-Steuerprogramm ausführen, das den Arbeitsablauf der Maschine definiert.
- Eine programmierbare Steuereinheit ist eine Art Mehrzweck- Industriecomputer, der den Betrieb einer Fertigungsanlage, zum Beispiel einer Fertigungsstraße oder einer Werkzeugmaschine, gemäß einem gespeicherten Programm steuert. Das Programm umfaßt eine Reihe von Prozeßsteuerbefehlen, die ausgelesen und ausgeführt werden, um den Zustand ausgewählter Abfühlvorrichtungen auf der gesteuerten Anlage zu untersuchen und ausgewählte Betriebsvorrichtungen je nach dem Zustand einer oder mehrerer der untersuchten Abfühlvorrichtungen ein- oder auszuschalten.
- Der Zustand vieler Abfühl- und Betriebsvorrichtungen kann durch ein einzelnes Datenbit dargestellt werden, das durch die Steuerprogrammbefehle beeinflußt wird. Andere Vorrichtungen, zum Beispiel Positionssensoren, liefern mehrere Datenbits, die einen Zustand der gesteuerten Anlage darstellen. Für diese letztgenannten Vorrichtungen werden Befehle bereitgestellt, um Bytes oder Datenwörter zu beeinflussen, die den Zustand der Abfühl- und Betriebsvorrichtungen repräsentieren. Zusätzliche Programmbefehle führen arithmetische Operationen, Zeitsteuerungs- und Zählfunktionen sowie komplexe statistische Berichtsoperationen durch. Diese Befehle sind in der Industrie relativ stark standardisiert worden und sind direkt den Elementen eines Leiterlogikdiagramms zugeordnet, das leicht von Prozeßsteuerungsingenieuren verstanden wird. Programmierschalttafeln wie diejenigen, die in den US-Patenten Nr. 3 808 612, 3 813 649 und 4 070 702 beschrieben sind, wurden entwickelt, um den Bediener beim Entwickeln und Editieren von Leiterlogik-Steuerprogrammen zu unterstützen, die aus solchen Befehlen für programmierbare Steuereinheiten bestanden.
- Im Zuge der sich entwickelnden Notwendigkeit, immer komplexere Fertigungsprozesse zu steuern, wurden die programmierbare Steuereinheit und deren Satz an Befehlen komplizierter. Ein Prozessormodul, das die Befehle ausführte, wurde in zwei verschiedene Prozessorschaltungen unterteilt, zum Beispiel einen Prozessor für Boolsche Algebra zum Beeinflussen von einzelnen Bits aus Eingabe- und Ausgabedaten und einen Mikroprozessor zum Durchführen komplizierterer arithmetischer und logischer Operationen. Der Prozessor für Boolsche Algebra führte direkt eine Untergruppe des Satzes an Leiterlogikbefehlen durch. Der Mikroprozessor führte ein Interpreterprogramm durch, das eine Reihe von Maschinensprachenroutinen zum Durchführen der durch die übrigen Leiterlogikprogrammbefehle definierten Funktionen umfaßte. Ein Beispiel für eine solche programmierbare Steuereinheit ist in dem US-Patent Nr. 4 165 534 beschrieben.
- Diese Entwicklung der programmierbaren Steuereinheit stattete zudem das Hauptleiterlogikprogramm mit der Fähigkeit aus, eine Leiterlogiksubroutine aufzurufen. Die Subroutine wurde in dem Leiterdiagramm durch Einfügen eines Operationsblocks gekennzeichnet, der einen festgelegten Operationscode (zum Beispiel JSR) aufwies und der eine eindeutige Programmdatei spezifizierte, die die Befehle der Subroutine enthielt. Um Daten von dem Hauptleiterlogikprogramm zur Subroutine zu übergeben, mußte der Programmierer jedes Datenelement in dem Subroutinenoperationsblock angeben. Jedesmal, wenn die Subroutine vom Hauptprogramm aufgerufen wurde, wurden die Parameter nacheinander in eine in der Subroutine definierte Parameterliste kopiert. Eine ähnliche Definition und ein ähnlicher Kopierprozeß ist erforderlich, um die Ergebnisse der Subroutine zum Hauptleiterlogikprogramm zu übergeben. Dieser doppelte Kopierprozeß war relativ zeitaufwendig.
- Vorher wurde jede Subroutine in der programmierbaren Steuereinheit als separate Programmdatei gespeichert. Viele programmierbare Steuereinheiten besitzen eine Beschränkung der Anzahl an Programmdateien, die gespeichert werden können und auf die zugegriffen werden kann. Demzufolge konnte die Verwendung vieler Subroutinen die Anzahl an Programmdateien, die für an dere Routinen verfügbar waren, in beträchtlichem Maße vermindern.
- Es entwickelte sich darüber hinaus das Bedürfnis, kundenorientierte Funktionen und Leiterlogikbefehle für spezielle Industrien und bestimmte Typen industrieller Anlagen bereitzustellen. Es ist teuer und zeitaufwendig, die Prozessorhardware und -software für jedes einzelne Bedürfnis neu zu entwickeln. So ist es oft unpraktisch, spezielle Leiterlogikbefehle für jedes Segment des Marktes programmierbarer Steuereinheiten zu erzeugen. Um dieses Bedürfnis zu befriedigen, wurden programmierbare Steuereinheiten entwickelt, die eine kundenorientierte Anwendungsroutine, die in Maschinensprachenbefehlen geschrieben wurde und von dem Leiterlogik-Steuerprogramm aus aufgerufen wurde, ausführen konnten, wie es in dem US-Patent Nr. 4 302 820 beschrieben ist. Obwohl dieses Verfahren in effektiver Weise verwendet werden kann, um einer herkömmlichen programmierbaren Steuereinheit eine kundenorientierte komplexe Funktionalität zu geben, verbrauchte der Übergang zur und von der Ausführung des Maschinensprachenprogramms relativ viel Verarbeitungszeit, wenn die Steuerung von dem Leiterlogikprozessor zum Mikroprozessor übergeben werden mußte. Außerdem bereitete den Endanwendern, die an die Programmierung von Leiterdiagrammen gewöhnt waren, das Ausarbeiten der kundenorientierten Anwendungsroutinen, welche in Maschinensprachenbefehlen geschrieben werden mußten, Schwierigkeiten.
- In EP-A-0 473 086 ist eine programmierbare Steuereinheit zum Betreiben einer Maschine offenbart. Die Steuereinheit umfaßt ein Mittel zum Speichern eines Leiterlogik-Steuerprogramms, das mehrere Leiterlogikbefehle aufweist, einen Leiterlogikprozessor zum Durchführen von Leiterlogikbefehlen und einen Mikroprozessor zum Durchführen von Leiterlogikbefehlen, die der Logikprozessor nicht durchführen kann.
- Eine programmierbare Steuereinheit umfaßt mehrere Eingabe- und Ausgabemodule, die elektrisch mit einem Prozessormodul ver bunden sind, das wiederholt Befehle eines gespeicherten Steuerprogramms ausführt. Die Eingabe- und Ausgabemodule bilden die Schnittstelle zu Abfühl- und Betätigungsvorrichtungen auf der Maschine, die von der programmierbaren Steuereinheit betrieben werden. Das Prozessormodul umfaßt vorzugsweise einen Leiterlogikprozessor und einen Mikroprozessor, die beim Ausführen eines anwenderdefinierten Steuerprogramms zusammenarbeiten, das den Zustand ausgewählter Abfühlvorrichtungen untersucht und Betätigungsvorrichtungen auf der Maschine steuert. Der Leiterlogikprozessor führt bitorientierte Befehle aus, während kompliziertere Leiterlogikbefehle vom Mikroprozessor ausgeführt werden.
- Der Steuerprogramm-Befehlssatz umfaßt einen Makrobefehl, der eine Operation definiert, die durch eine in Leiterlogikbefehlen geschriebene Makroroutine durchgeführt wird. Der Makrobefehl spezifiziert einen Operationscode, eine erste Datei, die von dem Makrobefehl zu verarbeitende Daten enthält, und eine Speicherstelle für Ergebnisse, die durch die Ausführung des Makrobefehls erzeugt werden. Wenn es die durchzuführende Funktion verlangt, kann der Makrobefehl auch eine zweite Datei spezifizieren, die Steuerdaten für die Funktion enthält. Die erste Datei und die zweite Datei werden in einem Speicherabschnitt gespeichert. Ein zweiter Speicherabschnitt enthält eine Makrobefehlsroutine mit mehreren Leiterlogikbefehlen, die typischerweise von dem Leiterlogikprozessor in Reaktion auf die Ausführung des Makrobefehls durchgeführt werden. Während der Ausführung der Makrobefehlsroutine erhält der Leiterlogikprozessor die erforderlichen Daten aus der ersten Datei. Nach der Beendigung der Routine werden die Ergebnisse an der Stelle gespeichert, die in dem Makrobefehl spezifiziert wurde.
- Bei der bevorzugten Ausführungsform ist die programmierbare Steuereinheit in der Lage, eine Reihe von Makrobefehlen durchzuführen. Die Leiterlogikroutinen für die Makrobefehle werden in einer gemeinsamen Bibliotheksdatei in dem zweiten Speicherabschnitt gespeichert. Es ist ein Verzeichnis vorgesehen, das einen eindeutigen Operationscode für jeden Makrobefehl und für jeden Operationscode eine Startadresse der Makrobefehlsroutine in dem zweiten Speicherabschnitt auflistet. Das Verzeichnis vereinfacht den Zugang zu der geeigneten Routine, um die Operation durchzuführen, die von dem Makrobefehl aufgerufen wurde.
- Eine Aufgabe der vorliegenden Erfindung besteht darin, einen Mechanismus zu schaffen, durch den kundenorientierte Befehle zu einem Satz von Programmbefehlen hinzugefügt werden können, die durch eine programmierbare Steuereinheit ausgeführt werden können.
- Eine weitere Aufgabe besteht darin, die Definition eines Makrobefehls zu ermöglichen, der eine komplexe Operation definiert, die durch Aufrufen einer Routine ausgeführt wird, die in Form einer Reihe von Leiterlogikbefehlen geschrieben wurde.
- Fig. 1 ist eine bildliche Darstellung eines programmierbaren Steuereinheitsystems, das die vorliegende Erfindung verwendet;
- Fig. 2 ist ein funktionales Blockdiagramm eines Prozessormoduls, das einen Teil der Steuereinheit der Fig. 1 bildet;
- Fig. 3 ist ein Speicherabbild eines Gemeinschaftssystem- Direktzugriffsspeichers in dem Prozessormodul;
- Fig. 4 ist eine Sprosse eines Leiterlogikdiagramm-Steuerprogramms, das einen Makrobefehl gemäß der vorliegenden Erfindung enthält;
- Fig. 5 beschreibt die Inhalte einer Steuerdatei, die von dem Makrobefehl verwendet wird; und
- Fig. 6 ist ein Speicherabbild einer Makrobefehlsroutinenbibliothek innerhalb des Gemeinschaftssystem-Direktzugriffsspeichers.
- In der Fig. 1 umfaßt ein programmierbares Steuereinheitssystem, das in seiner Gesamtheit mit 10 bezeichnet ist, ein Hauptanlagengestell 12 und eine Reihe von Fern-Eingabe/Ausgabe- (I/O)-Gestellen, wie das Gestell 14, die über ein serielles I/O-Netzwerk 15 angeschlossen sind. Ein intelligentes Datenend gerät 11 ermöglicht es dem Anwender, die Steuereinheit 10 zu programmieren und ihren Betrieb zu überwachen.
- Das Hauptgestell 12 beherbergt eine Stromversorgung 16, ein Prozessormodul 20 und mehrere Eingabe-/Ausgabe-(I/O)- Schnittstellenmodule 18. Das Prozessormodul 20 führt ein anwenderdefiniertes Steuerprogramm aus, das auf Signale von Abfühlvorrichtungen auf der gesteuerten Anlage reagiert, indem Signale zu Betätigungsvorrichtungen auf der gleichen Anlage abgegeben werden. Die Abfühl- und Betätigungssignale werden zum Gestell 12 über die Eingabe-/Ausgabe-Schnittstellenmodule 18 geleitet. Die verschiedenen Module 18 und 20 innerhalb des Hauptgestells 12 sind elektrisch miteinander durch Leiter auf der Rückseite des Gestells verbunden, was es ermöglicht, daß Daten- und Steuersignale zwischen den Modulen ausgetauscht werden.
- Das Prozessormodul 20 empfängt Programmbefehle über das Datenendgerät 11, das über das Kabel 13 mit einem seriellen Anschlußverbinder auf der Frontplatte des Moduls verbunden ist. Das serielle I/O-Netzwerk 15 ist mit einem zweiten Verbinder auf der Frontplatte des Prozessormoduls 20 und mit einem Adaptermodul 19 in dem Fern-I/O-Gestell 14 verbunden, was es dem Prozessormodul 20 ermöglicht, Daten mit einer weiteren Gruppe von I/O-Modulen 18' innerhalb des Fern-I/O-Gestells auszutauschen. Als Alternative dazu kann ein lokales Netzwerk mit einem der Verbinder auf der Frontplatte des Prozessormoduls 20 verbunden werden, was die Kommunikation mit einem Hauptrechner und weiteren programmierbaren Steuereinheiten ermöglicht, die mit dem Netzwerk verbunden sind.
- Unter Bezug auf die Fig. 2 ist zu erkennen, daß das Prozessormodul 20 einen Universalprozessorabschnitt 40 für die Ausführung von anwenderorientierten Steuerprogrammen und einen Kommunikationsprozessorabschnitt 21 umfaßt, der den Austausch von Daten über das Kabel 13 und das serielle I/O-Netzwerk 15 übernimmt. Das Prozessormodul 20 besitzt außerdem einen Satz an Gemeinschaftsbussen 33-35, die die Abschnitte 21 und 40 mit anderen Datenverarbeitungs- und Speicherkomponenten verbinden.
- Der Kommunikationsprozessorabschnitt 21 ist um einen lokalen Adreßbus 23 und einen lokalen 16 Bit breiten Datenbus 24 herum gebildet. Mit diesen Bussen ist ein erster Mikroprozessor 22 verbunden, der zum Beispiel aus dem Modell 68000 bestehen kann, das von der Motorola Inc. hergestellt wird. Der erste Mikroprozessor 22 führt ein Programm aus, das in einem ersten Festwertspeicher (ROM) 26 gespeichert ist und verwendet einen ersten Direktzugriffsspeicher (RAM) 27 zur Datenspeicherung. Eine Haupttaktgeberschaltung 28 liefert ein Systemtaktsignal zu den anderen Komponenten des Prozessormoduls 20 und liefert spezielle Zeitsteuerungssignale über die Steuerleitungen 25 zu den Komponenten des Kommunikationsprozessorabschnitts 21.
- Eine Hauptaufgabe, die dem ersten Mikroprozessor 22 zugeordnet ist, ist die Steuerung der Kommunikation mit dem Programmierdatenendgerät 11 und dem seriellen I/O-Netzwerk 15. Eine Netzwerkschnittstellenschaltung 29 verbindet die lokalen Adreß- und Datenbusse 23 und 24 mit dem Datenendgerätkabel 13 und dem Fern-I/O-Kabel 15. Die Netzwerkschnittstellenschaltung 29 setzt die Daten von einem parallelen Format, das in dem Prozessormodul verwendet wird, in serielle Formate um, die verwendet werden, um Daten über das Datenendgerätkabel 13 und das serielle I/O-Netzwerk 15 auszutauschen.
- Die lokalen Busse 23-25 des Kommunikationsprozessorabschnitts 21 sind darüber hinaus mit einem Verbinder 37 verbunden. Eine entfernbare Leiterplatte, die hierin als Funktionskarte 30 bezeichnet wird, erstreckt sich durch eine Öffnung in der Frontplatte des Prozessormoduls 20 (wie sie in der Fig. 1 dargestellt ist) und besitzt einen passenden Stecker, der an dem Busverbinder 37 angreift. Die Funktionskarte 30 kann verschiedene Formen annehmen, wobei eine mögliche Form Speicher enthält, in dem Maschinensteuerprogramme archiviert sind. Eine intelligente Art der Funktionskarte umfaßt einen weiteren Mikroprozessor, der speziell darauf ausgelegt ist, spezielle Datenverarbeitungsaufgaben, zum Beispiel das Handhaben der Kommunikation über ein weiträumiges Netzwerk, das mit der Karte verbunden ist, durchzuführen.
- Der Kommunikationsprozessorabschnitt 21 ist mit anderen Prozessormodulkomponenten über einen Satz an Tristate-Adreßgat tern 31 und einen Satz an bidirektionalen Tristate-Datagattern 32 verbunden. Insbesondere verbindet der Satz an Gattern 31 den lokalen Adreßbus 23 mit dem Gemeinschaftsadreßbus des Moduls 33 und der Satz an Gates 32 verbindet den lokalen Datenbus 24 mit einem 16 Bit breiten Gemeinschaftsdatenbus 34. Ein Satz an Steuerleitungen 35 erstreckt sich zwischen Prozessormodulkomponenten und wird hierin im folgenden als Steuerbus bezeichnet.
- Diese Verbindung der Busse ermöglicht es dem ersten Mikroprozessor 22, Daten in ein Gemeinschaftssystem-RAM 36, das mit den Gemeinschaftsadreß- und Datenbussen 33 und 34 verbunden ist, zu schreiben und von diesem auszulesen. Die Organisation der Daten innerhalb des Gemeinschaftssystem-RAMs 36 ist in der Fig. 3 dargestellt. Ein Block aus Gemeinschaftssystem-RAM- Speicherstellen umfaßt einen Satz an Datentabellen 50 und 51 für das Prozessormodul 20. Die erste Datentabelle 50 speichert Eingabedaten, die den Zustand von Abfühlvorrichtungen darstellen und Ausgabedaten, die den Zustand von Betätigungsvorrichtungen an der Anlage darstellen, die von dem programmierbaren Steuereinheitssystem 10 betrieben werden. Daten von den Eingabe-I/O-Modulen 18 in den Haupt- und Fern-Gestellen 12 und 14 werden in organisierter Weise in einem ersten Abschnitt der Tabelle 50 gespeichert. Ein zweiter Tabellenabschnitt speichert Ausgabedaten, die gesendet werden, um die Betätigungsvorrichtungen zu steuern, die mit den Ausgabe-I/O-Modulen 18 in den Gestellen 12 und 14 verbunden sind. Ein weiterer Block an Speicherstellen 51 hält eine Gruppe von Datendateien, von denen jede eine Tabelle von Daten umfaßt, die zwischen einem Hauptleiterlogik-Steuerprogramm und einer Makrobefehlsroutine ausgetauscht werden, was beschrieben werden wird.
- Der nächste Abschnitt 52 des Gemeinschaftssystem-RAMs 36 enthält Informationen, die sich auf den Zustand der programmierbaren Steuereinheit 20 und ihrer Komponenten beziehen. Dieser Abschnitt 52 beinhaltet darüber hinaus eine Steuerdatei für jede der Makrobefehlsroutinen, deren Einzelheiten beschrieben werden. Falls erforderlich, können zusätzliche Datentabellen in diesem Abschnitt des Gemeinschaftssystem-RAMs 36 gespeichert werden.
- Ein Teil des Gemeinschaftssystem-RAMs 36 speichert anwenderdefinierte Programme für die Ausführung durch das Prozessormodul und ist in einzelne Programmdateien 54-56 unterteilt. Die erste Gruppe an Speicherstellen in diesem Teil des Speichers ist ein Verzeichnis 53 zur Lokalisierung jeder Programmdatei. Das Hauptleiterlogik-Steuerprogramm ist in einer Datei 54 gespeichert, und eine oder mehrere weitere Programmdateien 55 enthalten Leiterlogikroutinen für Makrobefehle, die in dem Hauptprogramm verwendet werden. Bei der bevorzugten Implementierung der vorliegenden Erfindung werden die Routinen für mehrere Makrobefehle in einer gemeinsamen Bibliotheksdatei 55 gespeichert. Weitere Programmdateien, die in dem Speicherabschnitt 56 enthalten sind, umfassen Programme für Hintergrundaufgaben, zum Beispiel diejenigen, die Berichte erzeugen und zu einem Hauptcomputer senden. Interruptroutinen sind ebenfalls in dem Abschnitt 56 gespeichert.
- Nach den von den Anwenderprogrammen verwendeten Speicherstellen folgt ein Abschnitt freier Speicherstellen 57. Ein weiterer Abschnitt des Gemeinschaftssystem-RAMs 36 ist eine I/O- Zwangsdatentabelle 58, die ähnlich derjenigen ist, die bei vorherigen programmierbaren Steuereinheiten verwendet wurde, um die Steuerdaten spezieller Abfühl- oder Betätigungsvorrichtungen in einen bestimmten logischen Zustand zu zwingen. Ein letzter Speicherabschnitt 59 bei hohen Adressen des Gemeinschaftssystem-RAMs 36 speichert System-, Prozessormodul- und Mikroprozessorkonfigurationsdaten. Die Konfigurationsdaten definieren zum Beispiel die Nummer, Stelle und die Art jedes I/O-Moduls 18 in den Gestellen 12 und 14 sowie I/O-Anschlußparameter und Protokolldaten für die externe Kommunikation. Die Organisation der Abschnitte des Gemeinschaftssystem-RAMs 36 ist nicht entscheidend und kann von der in der Fig. 3 dargestellten abweichen.
- Unter Rückbezug auf die Fig. 2 ist zu erkennen, daß eine I/O-Gestellschnittstellenschaltung 38 mit den Gemeinschaftsadreß- und Datenbussen 33 und 34 und der Rückwandplatine des Hauptgestells 12 verbunden ist. Diese Schnittstellenschaltung tastet periodisch die I/O-Module 18 in dem Hauptgestell ab, um Eingabedaten von den Sensoren zu sammeln und Ausgabedaten zu den Betätigungsvorrichtungen zu schicken. Das Abtasten erfolgt in einer ähnlichen Weise wie bei vorherigen Prozessormodulen, indem sequentiell Steuersignale zu jedem I/O-Modul 18 gesendet werden. Diese Steuersignale bringen Eingabemodule dazu, Sensordaten über die Rückwandplatine zu senden und verursachen Ausgabemodule dazu, von dem Prozessormodul 20 gesendete Daten zu speichern. Die mit den I/O-Modulen 18 in dem Hauptgestell 12 ausgetauschten Daten werden in den I/O-Datentabellen des Gemeinschaftssystem-RAMs 36 gespeichert.
- Ein Leiterlogikprozessor 39 ist darüber hinaus mit den Gemeinschaftsadreß- und Datenbussen 33 und 34 verbunden. Der überwiegende Teil der Befehle für ein Leiterlogik-Steuerprogramm wirkt auf ein einzelnes Bit oder ein Datenwort. Der Leiterlogikprozessor 39 wurde entwickelt, um diese Teilmenge an Leiterlogikbefehlen auszuführen, die diese Basissteueroperationen durchführen. Das führt nicht nur zu einer effizienten Ausführung dieser Befehle, es befreit darüber hinaus die Mikroprozessoren in dem Modul 20 davon, Hintergrund- und Kommunikationsaufgaben zugleich mit der Steuerprogrammausführung zu erledigen.
- Bestimmte Funktionen, wie der sofortige I/O-Modulzugriff, Datenblocktransfers zu den I/O-Modulen 18 und komplexe mathematische und logische Operationen können vom Leiterlogikprozessor 39 nicht durchgeführt werden. Diese komplexen Steuerprogrammfunktionen werden in dem Universalprozessor 40 durchgeführt. Dieser Teil 40 des Prozessormoduls 10 enthält einen zweiten Mikroprozessor 41, der mit einem anderen Satz an lokalen Adreß- und Datenbussen 42 bzw. 43 verbunden ist. Dieses Paar lokaler Busse 42 und 43 koppelt den zweiten Mikroprozessor 41 mit einem zweiten ROM 44 und einem zweiten Direktzugriffsspeicher 45. Der ROM 44 speichert die festgespeicherten Standardprogramme (Firmware), die von dem zweiten Mikroprozessor 41 ausgeführt werden, um die komplexen Leiterlogikoperationen durchzuführen.
- Eine Zeitgeberschaltung 47 empfängt das Systemtaktsignal und leitet daraus die notwendigen Zeitsteuerungs- und Steuersignale für den zweiten Mikroprozessor 41 und die Speicher 44 und 45 ab. Ein Paar von Tristate-Transmissionsgattern 48 und 49 isoliert die lokalen Adreß- und Datenbusse 42 und 43 des Universalprozessors 40 von den Gemeinschaftsadreß- und Datenbussen 33 und 34. Wenn diese Gatter 48 und 49 in Reaktion auf einen Befehl von dem zweiten Mikroprozessor 41 freigegeben werden, werden die lokalen Busse 42 und 43 elektrisch mit den Gemeinschaftsbussen 33 und 34 verbunden. Diese Freigabe tritt nur auf, wenn dem zweiten Mikroprozessor 41 durch eine Entscheidungsschaltung in dem Leiterlogikprozessor 39 Zugang zu den Gemeinschaftsbussen 33 und 34 gewährt worden ist.
- Der Anwender programmiert die programmierbare Steuereinheit 10 über das Datenendgerät 11, das aus einem Personalcomputer besteht, der ein Editierprogramm ausführt, um ein Leiterlogik-Steuerprogramm zu erstellen. Das Steuerprogramm zum Betreiben der gesteuerten Anlage wird auf der Tastatur des Datenendgerätes eingegeben, um ein Leiterlogikdiagramm zu erzeugen, das auf dem Bildschirm des Datenendgerätes in so ziemlich der gleichen Weise wie bei vorherigen programmierbaren Steuereinheiten angezeigt wird. Das Editierprogramm wandelt dann das Leiterdiagramm in Operationscodes (Opcodes) und Operandenadressen um, die durch das Prozessormodul 20 ausgeführt werden können. Das umgewandelte Programm wird von dem Datenendgerät 11 zum Prozessormodul 20 übertragen. Unter Bezug auf die Fig. 2 ist zu erkennen, daß der Kommunikationsprozessor 21 das Programm empfängt und es in dem Abschnitt 54 des Gemeinschaftssystem-RAMs 36 speichert.
- Das Steuerprogramm umfaßt Befehle, die auf einzelne Bits an Eingabedaten einwirken, zum Beispiel solchen, die von Grenzschaltern auf der gesteuerten Maschine empfangen wurden. Wie bereits vorher erwähnt, werden diese Befehle durch den Leiterlogikprozessor ausgeführt, der, da er speziell für diese Befehle entwickelt worden ist, diese in effizienter und schneller Weise ausführt. Wenn der Leiterlogikprozessor 39 auf einen Befehl trifft, den er nicht ausführen kann, meldet er dies dem zweiten Mikroprozessor 41 in dem Universalprozessor 40. Diese komplizierteren Befehle werden von einem Interpreterprogramm abgearbeitet, das in dem zweiten ROM 44 gespeichert ist und von dem zweiten Mikroprozessor 41 ausgeführt wird. Das Interpreterprogramm umfaßt einen Satz an Maschinensprachenroutinen zum Durchführen all der Funktionen, die durch kompliziertere Steuerprogrammbefehle gekennzeichnet sind. Nachdem der Universalprozessor 40 die Ausführung des komplizierteren Befehls beendet hat, wird der Leiterlogikprozessor 39 benachrichtigt und liest den nächsten Befehl des Steuerprogramms. Diese Aufteilung der Aufgaben der Programmausführung wird von Entwicklern programmierbarer Steuereinheiten gut verstanden und braucht daher nicht im einzelnen beschrieben zu werden.
- Das Prozessormodul kann darüber hinaus eine kundenspezifische Anwendungsroutine ausführen, die in Maschinensprachenbefehlen für den zweiten Mikroprozessor 41 geschrieben wurde. Die Routine wird in einer separaten Programmdatei im Abschnitt 56 des Gemeinschaftssystem-RAMs 36 gespeichert. Wenn ein spezieller Anwender oder eine Industrie eine einzigartige und komplexe Steueraufgabe besitzt, kann eine kundenspezifische Anwendungsroutine geschrieben werden, um diese Aufgabe zu steuern. Die Routine wird von einer Sprosse des Hauptleiterlogik-Steuerprogramms "aufgerufen", was den Leiterlogikprozessor 39 dazu bringt, die Programmausführungsverantwortlichkeit zum Universalprozessor 40 in so ziemlich der gleichen Weise zu übergeben wie bei der Übergabe, die auftritt, um komplizierte Leiterlogikbefehle zu interpretieren. Jedoch führt anstelle der Interpretation der Sprosse durch die Prozessorfirmware in dem zweiten ROM 44 der zweite Mikroprozessor 41 die kundenspezifische Anwendungsroutine aus, die in Maschinensprachenbefehlen geschrieben und in dem Gemeinschaftssystem-RAM 36 gespeichert ist. Das US-Patent Nr. 4 302 820 beschreibt den Grundprozeß, durch den sowohl das Leiterlogik-Steuerprogramm als auch eine in Maschinensprache geschriebene kundenspezifische Anwendungsroutine durch dasselbe Prozessormodul ausgeführt werden. Das US-Patent Nr. 5 042 002 bezieht sich auf die Verwendung einer kundenspezifischen Anwendungsroutine, um ein Ablaufsteuerungssystem auf einer programmierbaren Steuereinheit zu implementieren.
- Neben den vorher beschriebenen Befehlen kann das Prozessormodul 20 auch Leiterlogikmakrobefehle ausführen, die von dem Hersteller oder Endanwender der programmierbaren Steuereinheit definiert wurden. Da die Routinen zum Durchführen der durch die Makrobefehle definierten Funktionen in Leiterlogik geschrieben sind, werden die meisten, wenn nicht alle Befehle für eine bestimmte Routine durch den Leiterlogikprozessor 39 ausgeführt. Dieses erhöht die Ausführungsgeschwindigkeit und beseitigt Zusatzzeit, die vorher während der Übertragung zwischen der Leiterprogrammdatei und einer Maschinensprachenprogrammdatei verlorenging. Es wird beschrieben werden, daß die Ausführung des Makrobefehls sich von der Ausführung einer Leiterlogiksubroutine darin unterscheidet, daß die Datenwerte selbst nicht einzeln zwischen dem Hauptprogramm und der Makroroutine ausgetauscht werden. Stattdessen werden die Daten ausgetauscht, indem eine Adresse einer Datei übergeben wird, die sämtliche erforderlichen Daten von dem Hauptleiterlogikprogramm enthält. Diese Datei wird auch die Ergebnisse der Verarbeitung bei der Beendigung der Ausführung der Subroutine enthalten. Der Austausch einer Dateiadresse anstatt jedes einzelnen Datenelements erhöht darüber hinaus die Ausführungsgeschwindigkeit des Programms.
- Der Makrobefehl ist durch eine Leitersprosse in dem Hauptleiterlogik-Steuerprogramm definiert, wie es in der Fig. 4 dargestellt ist. Das Konzept des Leiterlogikmakrobefehls wird anhand eines Beispielbefehls erklärt, der den Durchschnitt aus einer Anzahl an Datenelementen berechnet. Da die Makrobefehlssprosse immer ausgeführt wird, enthält sie keine Eingabeoperation und lediglich eine Ausgabeoperation, die durch den Kasten 60 definiert wird. Das Wort "Durchschnitt" in dem Kasten ist ein Name, den der Programmierer dem speziellen Makrobefehl zugewiesen hat. Das nächste Element in dem Makrobefehlskasten 60 ist eine Zieladresse einer Datendatei in dem Gemeinschaftssystem-RAM 36, die die Ergebnisse der Verarbeitung enthalten soll. Der Eintrag, der als Datendatei bezeichnet ist, identifiziert die Adresse einer Datei im Speicher, die die Datenelemente enthält, auf die durch den Makrobefehl eingewirkt werden soll, was in diesem Fall der Durchschnittsbildung bezüglich der Daten entspricht. Der Längenparameter spezifiziert die Anzahl (zum Beispiel 20) an Datenelementen, über die der Durchschnitt gebildet werden soll.
- Der Leiterdiagrammkasten 60 kennzeichnet darüber hinaus die Adresse einer Steuerdatei, die Zustands- und Prozeßsteuerbits enthält, was beschrieben werden wird. Der letzte Parameter des Makrobefehls kennzeichnet die Position in der Datendatei des letzten zu verarbeitenden Datenelements. Diese Angabe ist für den Fall nützlich, daß die Verarbeitung durch eine Aufgabe höherer Priorität unterbrochen wird, zum Beispiel eine Unterbrechungsroutine. Wenn die Aufgabe höherer Priorität beendet ist, ermöglicht es die Positionsangabe, die Ausführung des Makrobefehls bei dem nächsten noch nicht verarbeiteten Datenelement wieder aufzunehmen. Wenn ein arithmetischer Überlauf auftritt, kennzeichnet die Positionsangabe ein Datenelement, das den Fehler verursachte, was die Programmdiagnose erleichtert. Die Längen- und Positionsparameter werden in einem Feld der Steuerdatei gespeichert, die in dem Sprossenkasten 60 angegeben ist. Die Datenstruktur dieser Datei ist in der Fig. 5 dargestellt. Andere Konfigurationen der Steuerdatei werden bei anderen Arten von Makrofunktionen verwendet werden. Zum Beispiel könnte ein Makrobefehl erzeugt werden, um eine Proportional/Integral/Differential-(PID)-Funktion durchzuführen, wobei in diesem Fall die Parameter der PID in einer Steuerdatei gespeichert werden würden.
- Wenn die Programmentwicklungssoftware in dem Datenendgerät 11 das Leiterdiagramm in Befehle für die Ausführung durch das Prozessormodul 20 übersetzt, wird ein eindeutiger Operationscode (Opcode) jedem in dem Programm verwendeten Makrobefehlsnamen zugeordnet. Der Opcode und die anderen Informationen in dem Befehlskasten 60 werden verwendet, um den Leiterlogikbefehl zu bilden. Zum Beispiel sieht die Leitersprosse, die in der Fig. 4 dargestellt ist, so aus: "Durchschnitt Opcode N7 : 0 #N10 : 0 R6 : 0". Dieser Makrobefehl spezifiziert den Opcode für das Makro mit dem Namen "Durchschnitt" und addressiert die Zieladresse, die Daten- und Steuerdateien, die von der Makrobefehlsroutine verwendet werden. Das #-Zeichen gibt an, daß die Adresse in einem Verhältnis relativ zur ersten Adresse der an gegebenen Makrodatendatei 51 steht, während die anderen Adressen absolut sind.
- Einer der Vorteile der vorliegenden programmierbaren Steuereinheit 10 besteht darin, daß die Operationscoderoutinen für mehrere Makrobefehle in einer einzigen Bibliotheksdatei gespeichert werden können, obwohl die Routinen in Form getrennter Dateien gespeichert werden könnten. Der Aufbau der Makrobefehlsroutinenbibliotheksdatei 55 ist durch ein Speicherabbild in der Fig. 6 dargestellt. Die Routinen für jeden Makrobefehl sind in benachbarte Abschnitte 62-65 der Bibliotheksdatei 55 gesetzt. Der letzte Leiterlogikbefehl jeder Makroroutine zeigt das Ende der Routine an, so daß die Ausführung nicht bis zur nächsten Routine in der Bibliothek fortgesetzt wird.
- Unter Bezug auf die Fig. 7 ist zu erkennen, daß eines der Programmverzeichnisse 53 in dem Gemeinschaftssystem-RAM 36 die Makrobefehlsroutinen in einem Verzeichnis auflistet. So gibt es einen Eintrag in diesem Verzeichnis 61 für jede der in der Bibliotheksdatei 55 gespeicherten Routinen. Der Verzeichniseintrag für eine bestimmte Makrobefehlsroutine enthält deren Operationscode und die Adresse in der Makrobefehlsbibliothek 55, an der der erste Befehl dieser Routine gespeichert ist.
- Während der Ausführung eines anwenderdefinierten Steuerprogramms wird jedesmal dann, wenn der Leiterlogikprozessor 39 einen neuen Befehl liest, eine Befehlsabbildtabelle, die in dem Gemeinschaftssystem-RAM 36 gespeichert ist, nach einem Eintrag durchsucht, der den Operationscode für den neuen Befehl enthält. Diese Befehlsabbildtabelle identifiziert die Art und Weise, in der der Operationscode ausgeführt werden soll. Für jeden Makrobefehl gibt die Befehlsabbildtabelle an, daß eine Makrohandhabungsroutine durch den Leiterlogikprozessor 39 ausgeführt werden soll. Die Makrohandhabungsroutine sichert die vorherigen Inhalte der Prozessorregister, die während der Ausführung des Hauptleiterlogikprogramms verwendet wurden. Das Makroverzeichnis 61 wird dann durch den Leiterlogikprozessor 39 abgetastet, um den Eintrag für den Operationscode des Makrobefehls zu lokalisieren. Wenn der Eintrag gefunden wurde, erhält der Leiterlogikprozessor 39 die Makroroutinenadresse, die dem Operationscode in dem Verzeichnis zugeordnet ist. Wenn zum Bei spiel der Makrobefehl den Operationscode L + 1 enthält, ist die Adresse der entsprechenden Routine in der Bibliothek X.
- Die Adresse von dem Makroverzeichnis 61 wird verwendet, um auf die Makroroutine in der Bibliotheksdatei innerhalb des Gemeinschaftssystem-RAMs 36 zuzugreifen. Wie vorher erwähnt, besteht die Makroroutine aus einem Satz an Leiterlogikbefehlen, die typischerweise vollständig durch den Leiterlogikprozessor 39 ausgeführt werden. Die Ausführung beginnt damit, daß der Leiterlogikprozessor den ersten Leiterlogikbefehl der gekennzeichneten Makroroutine bei der Adresse X erhält. Die Ausführung der Makroroutine wird in der gleichen Weise wie die Ausführung des Hauptleiterlogikprogramms fortgesetzt. Wenn die Makroroutine Daten erfordert, erhält der Leiterlogikprozessor 39 oder der zweite Mikroprozessor 41, je nach dem, welcher von beiden den Befehl, der Daten erfordert, ausführt, die Daten von dem geeigneten Eintrag in der Datendatei, die in dem Makrobefehl, der die Routine aufrief, identifiziert ist, zum Beispiel der Datendatei an der Adresse #N10 : 0 für den Durchschnitt-Makrobefehl in der Fig. 4.
- Die Kennzeichnung eindeutiger Daten-, Zieladressen- und Steuerdateien ermöglicht es, daß dieselbe Makroroutine an verschiedenen Stellen in dem Hauptleiterlogikprogramm verwendet wird, wobei verschiedene Dateien an jeder Stelle angegeben werden. Zum Beispiel kann der Durchschnitt-Makrobefehl verwendet werden, um den Durchschnitt mehrerer Gruppen an Daten zu berechnen. Jedesmal, wenn die Routine verwendet wird, wird darüber hinaus eine andere Steuerdatei spezifiziert, die es ermöglicht, daß verschiedene Mengen an Daten der Durchschnittsbildung unterzogen werden, wie es durch den Längenparameter in der zugeordneten Steuerdatei angegeben ist.
- Wenn jedes Element der angegebenen Datendatei ausgelesen und verarbeitet ist, inkrementiert der Leiterlogikprozessor 39 den Positionsparameter in der zugeordneten Steuerdatei. Die Verarbeitungszwischenwerte sowie die Stelle in der Verarbeitung werden für den Fall gespeichert, daß die Verarbeitung aus irgendeinem Grund unterbrochen werden sollte. Dies ermöglicht es, die Ausführung der Makroroutine nachfolgend an der Stelle in der Verarbeitung wieder aufzunehmen, an der sie unterbrochen wurde.
- Wenn die Verarbeitung beendet ist, speichert der Leiterlogikprozessor 39 die Ergebnisse an der Zieladresse (z. B. N7 : 0), die in dem Makrobefehl angegeben wurde. Diese Adresse kann eine einzelne Speicherstelle oder die erste einer Reihe von Speicherstellen sein, wenn das Ergebnis der Verarbeitung aus mehreren Datenelementen besteht. Der letzte Befehl in der Makroroutine gibt an, daß die Programmausführung zum Hauptleiterlogikprogramm zurückkehren soll. Wenn der Leiterlogikprozessor auf diesen Befehl trifft, werden seine Register auf die Werte zurückgesetzt, die gespeichert wurden, als die Makroroutine begann. Diese Aktion verursacht eine Wiederaufnahme des Hauptleiterlogikprogramms an der Sprosse, die derjenigen folgt, die den Makrobefehl enthält. Jeder der anderen Befehle des Hauptleiterlogikprogramms kann die Ergebnisse der Verarbeitung der Makroroutinen auslesen, indem er auf die Zieladresse zugreift. Wenn der Makrobefehl nur auf ein einzelnes Datenelement einwirkt und die Operation relativ schnell durchführt, ist eine Steuerdatei nicht erforderlich. Zum Beispiel erfordert ein Makrobefehl, der eine trigonometrische Funktion durchführt, zum Beispiel das Herausfinden des Sinus eines Winkels, keine Steuerdatei. Die Funktion wird relativ schnell durchgeführt und sollte nicht durch eine Unterbrechung gestoppt werden.
Claims (6)
1. Programmierbare Steuereinheit (10) zum Betreiben einer
Maschine mit
einem ersten Mittel (36, 54) zum Speichern eines
Leiterlogik-Steuerprogramms mit mehreren Leiterlogik-Befehlen;
einem Leiterlogik-Prozessor (39) zum Ausführen von
Leiterlogik-Befehlen; und
einem Mikroprozessor (41) zum Ausführen von Leiterlogik-
Befehlen, die der Leiterlogik-Prozessor (39) nicht ausführen
kann;
dadurch gekennzeichnet, daß
wenigstens einer der Leiterlogik-Befehle des Leiterlogik-
Steuerprogramms ein durch den Leiterlogik-Prozessor (39)
ausführbarer Makrobefehl (60) ist, wobei der Makrobefehl (60)
eine Makrobefehlsroutine (62, 63, 64, 65),
eine durch den Makrobefehl (60) zu verarbeitende Daten
enthaltende Datei, und
eine Speicherstelle für ein durch die Ausführung des
Makrobefehls (60) produziertes Ergebnis
angibt, und dadurch, daß die programmierbare Steuereinheit (10)
darüber hinaus
ein zweites Mittel (36, 51) zum Speichern der Datei und
der durch die Ausführung des Makrobefehls produzierten
Ergebnisse;
ein drittes Mittel (36, 55) zum Speichern der
Makrobefehlsroutine mit mehreren Leiterlogik-Befehlen; die von dem
Leiterlogik-Prozessor (39) als Reaktion auf die Ausführung des
Makrobefehls ausgeführt werden; und
Mittel umfaßt, die den Leiterlogik-Prozessor (39), den
Mikroprozessor (41), das erste (36, 54), das zweite (36, 51)
und das dritte Mittel (36, 55) zum Speichern für den Austausch
von Daten und Programmbefehlen verbinden;
wobei der Leiterlogik-Prozessor (39) auf einen Makrobefehl
(60) reagiert, indem die in dem dritten Mittel (36, 55)
gespeicherte Makrobefehlsroutine (62, 63, 64, 65) ausgeführt
wird, wobei die Daten der durch den Makrobefehl (60) zu
verarbeitende Daten enthaltenden Datei verwendet werden und die
Ergebnisse an der Speicherstelle für ein durch die Ausführung
des Makrobefehls (60) produziertes Ergebnis abgespeichert
werden.
2. Programmierbare Steuereinheit nach Anspruch 1, bei der das
dritte Mittel zum Speichern
Speicherstellen für eine Bibliotheksdatei (55), die
mehrere Makrobefehlsroutinen (62, 63, 64, 65) enthält, und
Speicherstellen für ein Verzeichnis (61) umfaßt, das eine
Bezeichnung der Makrobefehlsroutinen (62, 63, 64, 65) für jede
der mehreren Makrobefehlsroutinen (62, 63, 64, 65) und eine
Adresse einer Ausgangsstelle für jede der mehreren
Makrobefehlsroutinen (62, 63, 64, 65) enthält.
3. Programmierbare Steuereinheit nach Anspruch 2, bei der der
Leiterlogik-Prozessor in der Weise auf eine in einem
Makrobefehl (60) angegebene Makrobefehlsroutine (62, 63, 64, 65)
reagiert, daß er aus dem dritten Mittel zum Speichern eine
Ausgangsadresse ausliest, die der Makrobefehlsroutine (62, 63, 64,
65) zugeordnet ist.
4. Programmierbare Steuereinheit nach einem der Ansprüche 1 bis
3, bei der der Makrobefehl (60) darüber hinaus eine Datei
angibt, die Steuerdaten enthält, und bei der ein Mittel (36, 52)
zum Speichern der die Steuerdaten enthaltenden Datei vorgesehen
ist.
5. Programmierbare Steuereinheit nach Anspruch 4, bei der die
Steuerdaten enthaltende Datei eine Angabe einer Menge der Daten
enthält, die in der durch den Makrobefehl (60) zu verarbeitende
Daten enthaltenden Datei enthalten sind.
6. Programmierbare Steuereinheit nach Anspruch 5, bei der die
Steuerdaten enthaltende Datei darüber hinaus eine Angabe
darüber enthält, welche der Daten, die in der durch den
Makrobefehl zu verarbeitende Daten enthaltenden Datei enthalten
sind, durch die Makrobefehlsroutine (62, 63, 64, 65)
verarbeitet worden sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/942,254 US5295059A (en) | 1992-09-09 | 1992-09-09 | Programmable controller with ladder diagram macro instructions |
Publications (3)
Publication Number | Publication Date |
---|---|
DE69320122D1 DE69320122D1 (de) | 1998-09-10 |
DE69320122T2 true DE69320122T2 (de) | 1999-04-08 |
DE69320122T3 DE69320122T3 (de) | 2002-12-12 |
Family
ID=25477810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69320122T Expired - Lifetime DE69320122T3 (de) | 1992-09-09 | 1993-06-30 | Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5295059A (de) |
EP (1) | EP0586813B2 (de) |
JP (1) | JP3982716B2 (de) |
DE (1) | DE69320122T3 (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3046171B2 (ja) * | 1993-03-26 | 2000-05-29 | 三菱電機株式会社 | データロギング装置 |
JP3422124B2 (ja) * | 1995-03-30 | 2003-06-30 | マツダ株式会社 | プログラム作成装置 |
JP3156253B2 (ja) * | 1995-09-26 | 2001-04-16 | オムロン株式会社 | 情報処理装置および情報処理方法 |
US5812133A (en) * | 1995-11-01 | 1998-09-22 | Allen Bradley Company, Llc | Industrial controller with display of rung execution |
JPH09258808A (ja) * | 1996-03-18 | 1997-10-03 | Fanuc Ltd | モーションコントローラプログラミング方式 |
US5867382A (en) * | 1996-09-10 | 1999-02-02 | Mclaughlin; Michael G. | Generic control systems using a virtual rack module |
DE19707107A1 (de) * | 1997-02-22 | 1998-09-10 | Bosch Gmbh Robert | Einrichtung zur Programmierung eines SPS |
US6247168B1 (en) * | 1997-04-29 | 2001-06-12 | Rockwell Technologies, Llc | Embedded non-volatile programming tool |
JPH1165989A (ja) * | 1997-08-22 | 1999-03-09 | Sony Computer Entertainment:Kk | 情報処理装置 |
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 |
WO2000023883A1 (en) * | 1998-10-16 | 2000-04-27 | Computer Associates Think, Inc. | Apparatus and method for building modeling tools |
US6169929B1 (en) * | 1998-11-10 | 2001-01-02 | Rockwell Technologies, Llc | Automatic polling for user interrupts in a programmable controller using relay ladder logic |
JP4001461B2 (ja) * | 1999-01-25 | 2007-10-31 | 三菱電機株式会社 | プログラマブルコントローラの周辺装置 |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US6865644B2 (en) * | 2001-07-25 | 2005-03-08 | Rockwell Automation Technologies, Inc. | System and method for industrial controller with an I/O processor using cache memory to optimize exchange of shared data |
US20060190106A1 (en) * | 2001-07-30 | 2006-08-24 | Rockwell Automation Technologies, Inc. | Method for consistent storage of data in an industrial controller |
US7065415B2 (en) * | 2001-07-30 | 2006-06-20 | Rockwell Automation Technologies, Inc. | Method for consistent storage of data in an industrial controller |
JP3548829B2 (ja) * | 2002-01-10 | 2004-07-28 | オムロン株式会社 | ユニット及びplc並びにユーザプログラムの処理方法 |
WO2005015389A1 (en) * | 2003-07-11 | 2005-02-17 | Computer Associates Think, Inc. | Adding user-defined objects to a modeling tool |
US7457671B2 (en) | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
US8234482B2 (en) * | 2005-10-13 | 2012-07-31 | Google Inc. | Universal embedded controller for freeing CPU from operations of peripheral subsystem units with table of functions including an instruction specifying battery controller select protocol |
KR101056761B1 (ko) * | 2007-04-26 | 2011-08-16 | 가부시끼가이샤 도시바 | 프로그래머블 컨트롤러의 다이어그램의 디버그 시스템, 그 프로그래밍 장치 및 그 프로그램을 기록한 컴퓨터로 판독가능한 기록 매체 |
CN101561671B (zh) * | 2009-06-01 | 2012-01-11 | 杭州电子科技大学 | 基于构件的梯形图设计方法 |
CN103163820B (zh) * | 2011-12-19 | 2016-06-22 | 深圳市汇川控制技术有限公司 | 便于程序调试的可编程逻辑控制器及实现方法 |
US10022688B2 (en) * | 2012-05-02 | 2018-07-17 | Keeton Industries | Combination submersible and floating aerator |
DE102012207916B3 (de) * | 2012-05-11 | 2013-09-19 | Artis Gmbh | Verfahren und Vorrichtung zur automatisierten Konfiguration einer Überwachungsfunktion einer Werkzeugmaschine |
DE102013216136B3 (de) * | 2013-08-14 | 2015-03-19 | Artis Gmbh | Verfahren und Vorrichtung zur automatisierten Konfiguration einer Überwachungsfunktion eines Industrieroboters |
US11385612B2 (en) * | 2017-07-26 | 2022-07-12 | Metropolitan Industries, Inc. | System and method for digital motor identification and control |
CN110888392A (zh) * | 2019-12-19 | 2020-03-17 | 江苏三蜂机器人有限公司 | 一种基于梯形图语言的逻辑控制器 |
CN112379635B (zh) * | 2020-11-19 | 2022-03-04 | 航天新长征大道科技有限公司 | Plc梯形图解析方法、装置、电子设备及可读存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3813649A (en) * | 1972-09-01 | 1974-05-28 | Bradley Co A | Controller program editor |
US4070702A (en) * | 1976-03-26 | 1978-01-24 | Allan-Bradley Company | Contact histogram for programmable controller |
US4115853A (en) * | 1976-12-21 | 1978-09-19 | Allen-Bradley Company | Jump structure for a digital control system |
US4165534A (en) * | 1977-04-25 | 1979-08-21 | Allen-Bradley Company | Digital control system with Boolean processor |
US4172289A (en) * | 1977-10-05 | 1979-10-23 | Allen-Bradley Company | Programmable controller with programmable I/O scan rate |
US4266281A (en) † | 1979-04-02 | 1981-05-05 | Allen-Bradley Company | Microprogrammed programmable controller |
US4302820A (en) * | 1979-08-20 | 1981-11-24 | Allen-Bradley Company | Dual language programmable controller |
JPS5642805A (en) * | 1979-09-18 | 1981-04-21 | Fanuc Ltd | Sequence producing system for sequence controller controlling machine tool |
US4442504A (en) * | 1981-03-09 | 1984-04-10 | Allen-Bradley Company | Modular programmable controller |
US4488258A (en) * | 1982-09-20 | 1984-12-11 | Allen-Bradley | Programmable controller with control program comments |
US4510565A (en) † | 1982-09-20 | 1985-04-09 | Allen-Bradley Company | Programmable controller with intelligent positioning I/O modules |
DE3323824A1 (de) † | 1983-07-01 | 1985-01-03 | Siemens AG, 1000 Berlin und 8000 München | Speicherprogrammierbare steuerung |
JPS6220029A (ja) * | 1985-07-19 | 1987-01-28 | Toshiba Mach Co Ltd | プログラマブルコントロ−ラのフアンクシヨン命令プログラミング方式 |
JPS63273101A (ja) * | 1987-04-30 | 1988-11-10 | Fanuc Ltd | プログラマブル・コントロ−ラ |
US4858101A (en) * | 1987-08-26 | 1989-08-15 | Allen-Bradley Company, Inc. | Programmable controller with parallel processors |
US5042002A (en) * | 1989-03-31 | 1991-08-20 | Allen-Bradley Company, Inc. | Programmable controller with a directed sequencer |
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 |
DE59204455D1 (de) * | 1991-03-14 | 1996-01-11 | Landis & Gyr Tech Innovat | Programmierbare Steuer- und Regeleinrichtung. |
-
1992
- 1992-09-09 US US07/942,254 patent/US5295059A/en not_active Expired - Lifetime
-
1993
- 1993-06-01 JP JP13065393A patent/JP3982716B2/ja not_active Expired - Lifetime
- 1993-06-30 DE DE69320122T patent/DE69320122T3/de not_active Expired - Lifetime
- 1993-06-30 EP EP93110447A patent/EP0586813B2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0586813A3 (en) | 1996-05-08 |
DE69320122D1 (de) | 1998-09-10 |
JPH06119013A (ja) | 1994-04-28 |
DE69320122T3 (de) | 2002-12-12 |
EP0586813B1 (de) | 1998-08-05 |
EP0586813A2 (de) | 1994-03-16 |
EP0586813B2 (de) | 2002-06-12 |
US5295059A (en) | 1994-03-15 |
JP3982716B2 (ja) | 2007-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69320122T2 (de) | Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen | |
DE3854594T2 (de) | Programmierbare Steuerung mit parallelen Prozessoren. | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE4135749B4 (de) | Prozessormodul für eine programmierbare Steuerung mit einer intelligenten Funktionsmodulschnittstelle | |
DE3855219T2 (de) | Verfahren und vorrichtung zum übertragen von echtzeitdaten zwischen einem programmierbaren logiksteuergerät und einem programm in einem zentralen steuergerät | |
DE68927626T2 (de) | Hierarchisches Mehrfachbus-Computersystem | |
EP3542232B1 (de) | Steuerung für eine industrielle automatisierungsanlage und verfahren zum programmieren und betreiben einer derartigen steuerung | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE10048072A1 (de) | Linklisten-DMA-Descriptor-Architektur | |
DE3732808A1 (de) | Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm | |
EP0121037B1 (de) | Speicherprogrammierbare Steuerung | |
DE4313190B4 (de) | Vorrichtung und Verfahren zur Initialisierung einer Datenschnittstelle für eine programmierbare Steuerung | |
DE68920084T2 (de) | Identifizierungssystem für programmierbare Steuerung. | |
EP0782722B1 (de) | Verfahren und vorrichtung zur steuerung und aktivierung von miteinander mittels eines bussystems vernetzten sensoren und/oder aktuatoren | |
DE4411389C2 (de) | Programmierbare Steuereinheit und Betriebsverfahren | |
DE69230898T2 (de) | Speicherauswahl enthaltendes Verarbeitungs-System und Verfahren | |
EP0120194B1 (de) | Speicherprogrammierbare Steuerung mit Wort- und Bitprozessor | |
DE68915102T2 (de) | Programmierbare Steuerung. | |
DE10026145A1 (de) | Programmierbare Steuereinheit | |
DE69521262T2 (de) | Steuersystem | |
DE69116954T2 (de) | Prozessor für ein programmierbares Steuergerät | |
EP0130269A2 (de) | Speicherprogrammierbare Steuerung | |
EP0590175B1 (de) | Prozesssteuerungssystem | |
DE10213860A1 (de) | Programmierbare Steuerung | |
DE3410497A1 (de) | Rechneranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8363 | Opposition against the patent | ||
8328 | Change in the person/name/address of the agent |
Free format text: DERZEIT KEIN VERTRETER BESTELLT |
|
8366 | Restricted maintained after opposition proceedings | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: HML, 80799 MUENCHEN |