DE69320122T2 - Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen - Google Patents

Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen

Info

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
Application number
DE69320122T
Other languages
English (en)
Other versions
DE69320122D1 (de
DE69320122T3 (de
Inventor
Jeffrey W. Mentor-On-The Lake Ohio 44060 Brooks
John J. Jr. Mentor Ohio 44060 Kolat
Michael D. Mentor Ohio 44060 Yoke
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25477810&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69320122(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of DE69320122D1 publication Critical patent/DE69320122D1/de
Application granted granted Critical
Publication of DE69320122T2 publication Critical patent/DE69320122T2/de
Publication of DE69320122T3 publication Critical patent/DE69320122T3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13017Macro instructions
    • 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/15Plc structure of the system
    • G05B2219/15127Bit 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.
  • Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Genaue Beschreibung der Erfindung
  • 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.
  • A. Prozessormodul
  • 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.
  • B. Das Steuerprogramm
  • 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.
  • C. Makrobefehle
  • 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.
DE69320122T 1992-09-09 1993-06-30 Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen Expired - Lifetime DE69320122T3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.

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