DE69124499T2 - Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme - Google Patents
Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende MehrfachbenutzersteuerungsprogrammeInfo
- Publication number
- DE69124499T2 DE69124499T2 DE1991624499 DE69124499T DE69124499T2 DE 69124499 T2 DE69124499 T2 DE 69124499T2 DE 1991624499 DE1991624499 DE 1991624499 DE 69124499 T DE69124499 T DE 69124499T DE 69124499 T2 DE69124499 T2 DE 69124499T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- execution
- control
- control program
- programmable controller
- 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
- 230000007704 transition Effects 0.000 claims description 14
- 238000005259 measurement Methods 0.000 claims 2
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 230000006870 function Effects 0.000 description 69
- 238000010586 diagram Methods 0.000 description 24
- 230000015654 memory Effects 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 101710121996 Hexon protein p72 Proteins 0.000 description 1
- 101710125418 Major capsid protein Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000009897 systematic effect 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Description
- Die vorliegende Erfindung betrifft programmierbare Steuerungen zum Betreiben bzw. Ansteuern einer industriellen Einrichtung und betrifft speziell Prozessoren für derartige programmierbare Steuerungen, welche durch einen Benutzer wählbare oder definierte Steuerprogramme ausführen.
- Programmierbare Steuerungen sind eine gängige Art Industrierechner zum Betreiben einer weiten Vielfalt von Herstellungseinrichtungen wie beispielsweise Montagebändern, Fertigungsstraßen und Werkzeugmaschinen, entsprechend einem gespeicherten Steuerprogramm. Das Programm umfaßt eine Serie von Prozeßsteueranweisungen, die ausgelesen werden und ausgeführt werden, um den Zustand ausgewählter Abfühleinrichtungen an der gesteuerten Einrichtung zu untersuchen, und um ausgewählte Arbeitseinrichtungen abhängig vom Zustand einer oder mehrerer der untersuchten Abfühleinrichtungen zu erregen oder abzuerregen bzw. zu aktivieren oder deaktivieren.
- Der Zustand vieler Abfühl- und Arbeitseinrichtungen kann durch ein einzelnes Datenbit repräsentiert werden, das durch die Steuerprogrammanweisungen manipuliert wird. Andere Einrichtungen wie Positionssensoren liefern Mehrfachdatenbits, die einen Zustand der gesteuerten Einrichtung repräsentieren. Bei diesen letztgenannten Einrichtungen werden Anweisungen vorgesehen, um Datenbytes und -wörter zu manipulieren, die den Zustand der Abfühl- und Arbeitseinrichtungen repräsentieren. Zusätzliche Programmanweisungen führen arithmetische Operationen, Zeitsteuerungs- und Zählfunktionen sowie komplexe statistische Berichterstattungsoperationen aus. Derartige Anweisungen sind in der Industrie einigermaßen standardisiert worden und sind direkt mit den Elementen eines Kontaktplans, dem sogenannten Ladder Logic Diagram zugeordnet, welches von Prozeßsteueringenieuren leicht verstanden wird. Es sind Programmtabellen oder Programmlisten wie diejenige, die in den US Patenten 3,808,612, 3,813,649 und 4,070,702 beschrieben wurden, entwickelt worden, um dem Benutzer bei der Entwicklung und Editierung von solchen logischen Kontaktplänen zu helfen, die derartige programmierbare Steuerungsanweisungen oder -befehle umfassen.
- Ein komplexer Herstellungsprozeß ist häufig in eine Serie kleinerer Tasks oder Aufgaben unterteilt, die jeweils durch ein separates logisches Kontaktplansteuerprogramm definiert sind. Der gesamte Prozeß wird durch ein Funktionsdiagramm definiert, das die Reihenfolge spezifiziert, in der diese Tasks abzuarbeiten sind, und damit auch die Ausführungssequenz der entsprechenden logischen Kontaktsteuerprogramme. Die Verwendung eines Funktionsdiagramms in einer programmierbaren Steuerung ist im US Patent 4,742,443 mit dem Titel "Programmable Controller with Function Chart Interpreter" erläutert, deren Beschreibung hier als Bezugsdokument mit eingeschlossen ist.
- Da programmierbare Steuerungen auf komplexere Herstellungssysteme angewandt wurden, sind Mehrfachsteuerungen dazu eingesetzt worden, die Arbeitsweise unterschiedlicher Teile des Systems zu lenken, wobei jeder Teil ein separates Steuerprogramm ausführt. In solchen Anwendungen war es erforderlich, daß eine programmierbare Steuerung Daten hinsichtlich des Herstellungsprozesses mit den anderen programmierbaren Steuerungen austauschte. Obgleich Techniken zur Kommunizierung von Daten zwischen programmierbaren Steuerungen entwickelt worden sind, kann die Koordinierung verschiedener dieser Einrichtungen recht komplex und kompliziert werden. Darüber hinaus ist die Duplizierung der Hardware für jeden Abschnitt des Herstellungssystems kostenaufwendig, speziell, da programmierbare Steuerungen geschwindigkeitsmäßig verbessert wurden und imstande sind, andere Tasks zu handhaben, während sie das Steuerprogramm für einen gegebenen Abschnitt ausführen.
- Obgleich schnellere Steuerungen Hintergrundtasks wie einen Produktionsreport zeitlich verschachtelt mit der Ausführung der vom Benutzer wählbaren Maschinensteuerprogramme auszuführen ermöglichen, war nur ein Maschinensteuerprogramm zu einem Zeitpunkt aktiv und wurde ausgeführt. Es gab daher keine Mechanismen, die ermöglichten, daß mehrere Maschinensteuerprogramme für unterschiedliche Teile der Einrichtung in zuverlässiger Weise gleichzeitig auf derselben programmierbaren Steuerung ausführbar waren.
- Programmierbare Steuerungen umfassen einen Prozessorabschnitt zur Ausführung von Befehlen gespeicherter Steuerprogramme. Abfühl- und Arbeitseinrichtungen der gesteuerten Ausrüstung sind im allgemeinen mit einer Mehrzahl von Eingangs- und Ausgangsmodulen verbunden, die elektrisch mit dem Prozessorabschnitt gekoppelt sind. Der Prozessormodul führt eine Folge von vom Benutzer wählbaren oder benutzerdefinierten Steuerprogrammen aus, die den Zustand ausgewählter Abfühleinrichtungen untersuchen, und setzt den Zustand der Betätigungseinrichtungen gemäß dem untersuchten Zustand auf der Grundlage von logischen Operationen fest, die durch die Steuerprogramme definiert sind.
- Der Prozessorabschnitt einer programmierbaren Steuerung entsprechend der vorliegenden Erfindung gemäß Definition nach Anspruch 1 umfaßt einen Speicher zum Speichern einer Liste von Steuerprogrammidentifizierungen in der Folge, in der die Programme auszuführen sind. Die Steuerprogramme werden zur Ausführung nach einem Reigenmodell auf der Grundlage der Reihenfolge der Programmidentifizierungen in der Liste sequentiell ausgewählt. Der Prozessorabschnitt führt das ausgewählte Steuerprogramm aus, bis ein vordefinierterpunkt im Programm erreicht ist. Im bevorzugten Ausführungsbeispiel wird, wenn ein Sequenzfunktionsdiagramm-Programm ausgewählt ist, ein Abschnitt des Programms ausgeführt, und es wird eine Übergangsbedingung für diesen Abschnitt ausgewertet. Danach wird die Ausführung des sequentiellen Funktionsdiagramms ausgesetzt bzw. zeitweise abgestellt, und es wird ein anderes Steuerpro gramm ausgewählt.
- Folgend auf die Aussetzung einer Steuerprogrammausführung wird der Zustand der Abfühleinrichtungen ausgelesen, und es werden Steuerdaten zu den Betätigungseinrichtungen übertragen. Wenn das letzte in der Liste identifizierte Steuerprogramm ausgeführt worden ist, beginnt der Auswahlprozeß wieder am oberen Ende der Liste.
- Die vorliegende Erfindung dient dazu, eine programmierbare Steuerung vorzusehen, die imstande ist, verschiedene unabhängige Steuerprogramme gleichzeitig auf einem einzelnen Prozessor auszuführen.
- Ein weiterer Gegenstand der vorliegenden Erfindung besteht darin, daß sie ermöglicht, daß ein Steuerprogramm nach Art eines sequentiellen Funktionsdiagramms und unabhängige Steuerprogramme nach Art von Kontaktplanprogrammen gleichzeitig ausgeführt werden.
- Ein weiterer Gegenstand besteht darin, daß ein Steuerprogramm die Ausführung anderer Steuerprogramme, die in der Liste identifiziert sind, aktivieren und deaktivieren kann. Dies kann dadurch erzielt werden, daß das Steuerprogramm ein Flag oder Kennzeichen setzt oder zurücksetzt, welches anzeigt, ob ein gegebenes, durch die Liste aus Steuerprogrammidentifizierungen identifiziertes Steuerprogramm vom Prozessorabschnitt ausgeführt werden sollte. Dieser Gegenstand kann auch dadurch erzielt werden, daß das Steuerprogramm die Liste von Steuerprogrammidentifizierungen, beispielsweise durch Hinzufügen, Löschen oder Ersetzen der Identifizierungen in der Liste ändert.
- Ein noch weiterer Gegenstand besteht darin, einen Mechanismus vorzusehen, der es dem Benutzer ermöglicht, die Steuerungsprogramme, die gleichzeitig auszuführen sind, und die Hufigkeit, mit der ein Abschnitt jedes Programms gleichzeitig auszuführen ist, zu identifizieren.
- Figur 1 ist eine perspektivische Darstellung eines die vorliegende Erfindung anwendenden programmierbaren Steuersystems;
- Figur 2 ist ein funktionelles Blockschaltbild eines Prozessormoduls, der Teil der Steuerung der Figur 1 ist;
- Figur 3 ist eine Speichertabelle eines Teils des gemeinsam genutzten Systemspeichers im Prozessormodul;
- Figur 4 zeigt Datentabellen, die in der Statusdatei im gemeinsam genutzten Systemspeicher enthalten sind, um die vorliegende Erfindung auszuführen;
- Figuren 5A und 5B bilden ein Flußdiagramm des Teils vom Prozessorbetriebssystem, das es ermöglicht, mehrere Steuerprogramme in zeitlich verschachtelter Weise gleichzeitig laufen zu lassen; und
- Figur 6 ist ein exemplarisches sequentielles Funktionsdiagramm-Steuerprogramm.
- Gemäß Figur 1 umfaßt ein generell mit 10 bezeichnetes programmierbares Steuerungssystem ein primäres Einschubgestell der Einrichtung 12 und eine Serie von hierzu fernen Eingabe/ Ausgabe-(I/O)-Gestellen, wie das Gestell 14, die durch ein serielles I/O Netzwerk 15 miteinander verbunden sind.
- Das primäre Gestell 12 enthält eine Spannungsversorgung 16, einen Prozessormodul 20 und mehrere Eingangs/Ausgangs- Interfacemodule 18. Die verschiedenen Module 18 und 20 innerhalb des primären Gestells 12 sind elektrisch durch Leiter auf einer Rückebene des Gestells miteinander verschaltet, welche den Austausch von Daten- und Steuersignalen unter den Modulen ermöglichen. Der Prozessormodul 20 führt benutzerdefinierte bzw. vom Benutzer wählbare Hauptsteuerprogramme aus, die auf Signale von Abfühleinrichtungen an der gesteuerten Ausrüstung ansprechen, indem sie Signale zu Betätigungseinrichtungen oder Arbeitseinrichtungen derselben Ausrüstung ausgeben. Die Abfühl- und Betätigungseinrichtungssignale werden zwischen dem Gestell 12 und der gesteuerten Ausrüstung über die Eingabe/ Ausgabe-Interfacemodule 18 hin- und herübertragen.
- Der Prozessormodul 20 empfängt Programmierbefehle über ein Terminal 11, das über ein Kabel 13 mit einem seriellen Port- Anschluß an der Frontplatte des Moduls verbunden ist. Das I/O Netzwerk 15 ist mit einem weiteren Anschluß an der Frontplatte des Prozessormoduls 20 und mit einem Adaptermodul 19 im hierzu fernen I/O Gestell 14 verbunden, wodurch es dem Prozessormodul 20 möglich ist, Daten mit einer anderen Gruppe von I/O Modulen 18' innerhalb des hierzu fernen I/O Gestells auszutauschen. Es können weitere Ports am Prozessormodul vorgesehen werden, um Verbindungen zu zusätzlichen I/O Netzwerken oder mit einem lokalen Netzwerk zu verbinden, um so Daten mit einem Host-Rechner auszutauschen.
- Gemäß Figur 2 umfaßt der Prozessormodul 20 einen Universalprozessor 60 für die Benutzersteuerprogrammausführung und einen Kommunikationsprozessor zur Handhabung des Datenaustauschs über das Kabel 13 und das I/O Netzwerk 15. Jedoch kann der Kommunikationsprozessor 21 auch so ausgelegt sein, daß er entweder mit einem lokalen Netzwerk oder einem I/O Netzwerk interfacemaßig gekoppelt ist. Wie weiter unten detailliert erläutert werden wird, beinhaltet jeder dieser Abschnitte 21 und 60 des Prozessormoduls seinen eigenen Mikroprozessor und Speicher, die durch einen isolierbaren Adressensatz, Datensatz und Steuerbusse gekoppelt sind. Der Prozessormodul 20 umfaßt auch einen Satz gemeinsam genutzter Busse 33 bis 35, die Abschnitte 21 und 60 mit anderen Datenverarbeitungs- und -speicherungskomponenten verbinden.
- Ein Kommunikationsprozessor 21 ist um einen lokalen Adressenbus 23 und einen lokalen Datenbus 24 herum ausgebildet. Mit diesen Bussen ist ein erster Mikroprozessor 22 verbunden, der ein Programm ausführt, das in einem Nur-Lese-Speicher (ROM) 26 gespeichert ist, und der einen Speicher mit wahlfreiem Zugriff (RAM) 27 als Notizblockspeicher zur zeitweisen Datenspeicherung verwendet. Eine Mastertaktschaltung 30 liefert ein Systemtaktsignal für andere Komponenten innerhalb des Prozessormoduls 20 sowie auch spezifische Zeitsteuersignale über Steuerleitungen 25 an die Komponenten des Kommunikationsprozessors 21.
- Die dem ersten Mikroprozessor 22 zugewiesene primäre Funktion besteht in der Steuerung der Kommunikation mit dem Programmieranschluß 11 und dem I/O Netzwerk 15. Ein universeller asynchroner Empfänger/Sender (UART) 28 bindet die lokalen Adressen- und Datenbusse 23 und 24 über das Kabel 13 an den Anschluß an. Die UART-Einheit 28 ist irgendeine beliebige Einrichtung verschiedener im Handel verfügbarer Einrichtungen, die das parallele Datenformat innerhalb des Prozessormoduls auf ein serielles Kommunikationsformat zur Kommunizierung mit dem Anschluß oder Terminal 11 umsetzen. Obgleich der Modulport vom UART 28 als mit dem Programmieranschluß 11 verbunden dargestellt ist, kann dieser Port auch mit zahlreichen anderen Arten serieller Einrichtungen für den Austausch von Daten mit dem Prozessormodul 20 verbunden werden. Die lokalen Adressenund Datenbusse 23 und 24 sind mit dem Netzwerkinterface 29 so gekoppelt, daß der erste Mikroprozessor 22 Daten über das Netzwerk 15 mit den hierzu fernen I/O Gestellen 14 übertragen und empfangen kann. Das erste Netzwerkinterface setzt die parallelen Daten innerhalb des Prozessormoduls 20 in ein seriell formatiertes Nachrichtenpaket um, das mit dem Protokoll kompatibel ist, welches zur Kommunizierung mit den fernen I/O Gestellen 14 verwendet wird.
- Der Kommunikationsprozessor 21 ist mit anderen Prozessormodulabschnitten über einen Satz von Tri-State-Adreßgattern 31 verbunden sowie über einen Satz bidirektionaler Tri-State- Datengatter 32. Speziell liefert der Satz Gatter 31 eine Ankopplung des lokalen Adressenbusses 23 an den von den Modulen gemeinsam genutzten Adressenbus 33 und der Satz Datengatter 32 koppelt den lokalen Datenbus 24 an einen gemeinsam genutzten Datenbus 34. Ein Satz Steuerleitungen 35 erstreckt sich zwischen den Prozessorrnodulkomponenten und wird im folgenden als Steuerbus bezeichnet.
- Diese Busverbindung ermöglicht dem ersten Mikroprozessor 22, Daten in einen gemeinsam genutzten System-RAM 36 einzuschreiben und aus diesem auszulesen, der mit den gemeinsam genutzten Adressen- und Datenbussen 33 und 34 gekoppelt ist. Die Datenorganisation innerhalb des gemeinsam genutzten System- RAMs 36 ist in Figur 3 gezeigt. Eine erste Gruppe von Speicherstellen 40 enthält die Adresse einer Speicherstelle im Block 50, der den Programmdateizeiger enthält, und enthält die Zahl (n) von Programmdateien. Ein Block von Speicherstellen im gemeinsam genutzten System-RAM umfaßt einen konventionellen Satz von Datentabellendateien 41-44 für den Prozessormodul 20. Die erste dieser Datentabellen 41 speichert Eingangsdaten, die den Zustand von Abfühleinrichtungen repräsentieren, die mit der gesteuerten Einrichtung gekoppelt sind. Daten von Eingangs-I/O Modulen 18 in den primären und fernen Gestellen 12 und 14 werden in dieser Tabelle 41 auf organisierte Art und Weise gespeichert. Eine zweite Datentabellendatei 42 speichert Ausgangsdaten, die den Zustand der Betätigungseinrichtungen der Ausrüstung repräsentieren, welche durch das programmierbare Steuerungssystem 10 betrieben werden. Unter Verwendung einer ähnlichen Organisation speichert die Ausgangstabelle 42 die Daten, die zur Steuerung der Betätigungseinrichtungen verwendet werden, welche mit den Ausgangs-I/O Modulen 18 in den Gestellen 12 und 14 verbunden sind. Eine weitere Datendatei 43 enthält Information hinsichtlich des Zustandes der programmierbaren Steuerung 20 und deren Komponenten. Wie bereits erläutert, umfaßt diese Datei 43 auch eine Tabelle von Steuerprogrammen, die zur Ausführung durch den Prozessormodul ausgewiesen sind. Falls erforderlich, können zusätzliche Datendateien im gemeinsam genutzten System-RAM 36 gespeichert werden.
- Ein weiterer Abschnitt des gemeinsam genutzten System-RAMs speichert die benutzerwählbaren Hauptsteuerprogrammdateien 45-48 zur Lenkung der Operation der gesteuerten Ausrüstung. Abhängig von den spezifischen vom Benutzer vorgesehenen Programmen können die Programmdateien eine Anzahl unterschiedlicher Arten von Steuerprogrammen speichern. Beispielsweise können eine Anzahl unabhängig ausführbarer logischer Kontaktsteuerprogramme in diesem Abschnitt des gemeinsam genutzten System-RAMs 36 gespeichert werden. Gleichermaßen können diese Programmdateien 45-48 sequentielle Funktionsdiagramme speichern und ein Steuerprogramm für jeden Schritt des Funktionsdiagramms separieren. Hinter dem Programmdateibereich im RAM 36 ist ein Dateiverzeichnis vorgesehen, das einen Abschnitt 49 enthält mit Zeigern auf jede Programmdatei 41-44 und einen Abschnitt 50 mit Zeigern auf die Programmdateien 45-48. Auf das Datenverzeichnis folgt ein Bereich nicht benutzter Speicherstellen 45.
- Der gemeinsam genutzte System-RAM 36 enthält auch eine I/O Zwangsdatentabelle 46 ähnlich derjenigen, die in früheren programmierbaren Steuerungen verwendet wurden, um die Steuerdaten von speziellen Abfühl- oder Betatigungseinrichtungen auf einen gegebenen logischen Zustand zu zwingen. Ein abschließender Speicherabschnitt 47 bei den hohen Adressen des gemeinsam genutzten System-RAMs 36 wird dazu verwendet, System-, Prozessormodul- und Mikroprozessor-Niveaukonfigurationsdaten zu beinhalten. Beispielsweise definieren die Konfigurationsdaten die I/O Portparameter und die Protokollkommunikation. Die Organisation der Abschnitte des gemeinsam genutzten System-RAMs 36 ist nicht kritisch und kann von der in der Figur 3 dargelegten variieren.
- Gemäß Figur 2 ist eine I/O Gestellinterfaceschaltung 38 mit dem gemeinsam genutzten Adressen- und Datenbus 33 sowie 34 und der Rückebene des primären Gestells 12 verbunden. Diese Interfaceschaltung tastet periodisch die I/O Module 18 im primären Gestell ab, um Eingangsdaten von den Sensoren zu erfassen und zu sammeln und Ausgangsdaten zu den Betätigungseinrichtungen der gesteuerten Ausrüstung zu senden. Die Abtastung wird auf eine ähnliche Weise bewerkstelligt, wie diejenige, die bei früheren Prozessormodulen durch sequentielles Aussenden von Steuersignalen an jeden I/O Modul eingesetzt wurde. Diese Steuersignale veranlassen Eingangsmodule dazu, Sensordaten über die Rückebene zu übertragen, und veranlassen Ausgangsmodule dazu, von dem Prozessormodul übertragene Daten zu speichern. Die mit den I/O Modulen 18 im primären Gestell 12 ausgetauschten Daten werden in I/O Datentabellen 41 und 42 des gemeinsam genutzten System-RAMs 36 gespeichert.
- Ein Kontaktlogikprozessor so ist mit den gemeinsam genutzten Adressen- und Datenbussen 33 und 34 verbunden. Der weitaus größte Teil der Kontakt-Steuerprogrammbefehle wirkt auf ein einzelnes Bit oder ein Datenwort (das sind 16 Bits). Der Kontaktlogikprozessor so ist dazu ausgelegt worden, den Teilsatz von Kontakt- bzw. Kontaktplanbefehlen auszuführen, die diese Basisdaten-Verarbeitungsoperationen ausführen. Hierdurch wird nicht nur eine effiziente Abarbeitung dieser Befehle vorgesehen, sondern es werden auch die Mikroprozessoren im Modul 20 davon befreit, andere Funktionen gleichzeitig mit der Steuerprogrammabarbeitung auszuführen.
- Einige komplexe Operationen können nicht vom Kontaktlogikprozessor 50 ausgeführt werden und werden vom Universalprozessor 60 ausgeführt. Zusatzlich zur Ausführung komplexer Kontaktlogikoperationen interpretiert der Universalprozessor auch ein sequentielles Funktionsdiagramm, wenn ein solches vom Benutzer programmiert worden ist. Dieser letztere Abschnitt des Prozessormoduls 10 enthält einen zweiten Mikroprozessor 61, der mit seinem eigenen isolierten Satz von Adressen- bzw. Datenbussen 62 bzw. 63 verbunden ist. Dieses Buspaar 62 und 63 verbindet den zweiten Mikroprozessor 61 mit einem zweiten ROM 64 und einem zweiten RAM 65 nur Notizblockspeicherung innerhalb des Universalprozessors 60. Der zweite ROM 64 speichert die Firmware, die durch den zweiten Mikroprozessor 61 ausgeführt wird, um komplexe Kontaktlogikoperationen, die sogenannten Ladder Logic Operations, auszuführen.
- Eine Zeitsteuerschaltung 67 empfängt das Systemtaktsignal und leitet hieraus die erforderlichen Zeitgabe- und Steuerungssignale für den zweiten Mikroprozessor 61 und die damit verbundenen Speicher 64 und 65 ab. Ein Paar Tri-State-Übertragungsgatter 68 und 69 trennen jeweils die Adressen- und Datenbusse 62 bzw. 63 des Universalprozessors 60 von den gemeinsam genutzten Adressen- und Datenbussen 33 und 34. Wenn diese Gatter 68 und 69 ansprechend auf einen Befehl des zweiten Mikroprozessors 61 freigeschaltet werden, werden die Busse 62 und 63 des internen Bussatzes elektrisch mit den gemeinsam genutzten Bussen 33 und 34 verbunden. Diese Freischaltung oder Freigabe tritt nur dann auf, wenn der zweite Mikroprozessor 61 einen Zugriff auf den gemeinsam genutzten Systemspeicher fordert und ihm die Benutzung der gemeinsam genutzten Busse 33 und 34 von einer Arbitrations-Schaltung im Kontaktlogikprozessor 50 gewährt worden ist.
- Die Hardware für die programmierbare Steuerung 10 ist ähnlich wie diejenige in früheren Einrichtungen. Jedoch ermöglicht deren Betriebssystem, daß multiple Hauptsteuerprogramme gleichzeitig aktiv sind und gleichzeitig zur Steuerung der Ausrüstung abgearbeitet werden. Nach der hier vorliegenden Terminologie ist ein Hauptsteuerprogramm ein Programm, das dazu gedacht ist, unabhängig von den benutzerwählbaren Programmen ausgeführt zu werden, und das die Operation der durch die programmierbare Steuerung 10 gesteuerten Ausrüstung beherrscht. Ein solches Hauptsteuerprogramm liest den Zustand von Abfühleinrichtungen der Ausrüstung und setzt den Zustand von Betätigungseinrichtungen. Ein Hauptsteuerprogramm (MCP) kann ein sequentielles Funktionsdiagramm mit einem Kontaktlogikprogramm oder Kontaktplanprogramm für jeden Diagrammschritt sein. In solchen Fällen werden diese Kontaktlogikprogramme entsprechend der Folge von Schritten ausgeführt, die durch das Funktionsdiagramm definiert sind, und nicht unabhängig. Ein Hauptsteuerprogramm kann auch ein individuelles Kontaktlogik- Steuerprogramm sein, das unabhängig ausgeführt wird, d.h. nicht mit einem sequentiellen Funktionsdiagramm verknüpft ist. Ein in einer anderen Sprache geschriebenes Steuerprogramm kann auch als ein Hauptsteuerprogramm klassifiziert sein.
- Die Gruppe von Hauptsteuerprogrammen, die dazu ausgelegt sind, gleichzeitig auf dem Prozessormodul 20 abgearbeitet zu werden, können die Funktionen separater Teile von Herstellungsausrüstungen steuern, in denen jedes Teil in bezüglich der Operation der anderen Teile der herstellenden Ausrüstung keine Beziehung aufweisender Art und Weise funktioniert. Alternativ können die Hauptsteuerprogramme dazu verwendet werden, unterschiedliche Abschnitte eines größeren Herstellungssystems zu beherrschen, in dem die Operation jedes Abschnitts auch die Operation anderer Abschnitte beeinflußt.
- Jedes Hauptsteuerprogramm, gleich ob es sich um ein Kontaktlogiksteuerprogramm, ein sequentielles Funktionsdiagramm oder eine andere Art von Programm handelt, wird am Anschluß 11 unter Verwendung konventioneller autorisierender Software eingeschrieben. Eine solche Software ermöglicht, daß der Kontaktplan oder das Funktionsdiagramm graphisch auf dem Bildschirm des Terminals oder Anschlusses erzeugt werden kann. Aus der durch den Benutzer erzeugten graphischen Darstellung erzeugt die autorisierende Software Programmdateien, die eine Folge von Anweisungen oder Befehlen enthalten, die durch den Prozessormodul 20 auszuführen sind. Die Dateien für die Hauptsteuerprogramme werden vom Anschluß 11 in den gemeinsam genutzten System-RAM 36 heruntergeladen, wo sie im Benutzersteuerprogrammbereich gespeichert werden.
- Der Anschluß 11 wird auch dazu verwendet, bis zu 16 Hauptsteuerprogrammen für eine gleichzeitige Ausführung durch den Prozessormodul 20 festzulegen, obgleich eine größere oder kleinere Anzahl vom breiter aufzufassenden Konzept der vorliegenden Erfindung gleichermaßen abgedeckt ist. Eine weitere Softwareroutine innerhalb des Anschlusses liest das Programmdateiverzeichnis vom Abschnitt 50 des gemeinsam genutzten System-RAMs 36 (in Fig. 3 dargestellt) und stellt die Dateinamen auf einem Anschlußbildschirm dar. Der Benutzer nutzt dann die Tastatur des Anschlusses zur Auswahl der Hauptsteuerprogramme für die Ausführung. Indem er dies tut, fordert das Terminal den Benutzer auf, 16 Hauptsteuerprogramme, bezeichnet mit A-P, auszuwählen. Nachdem der Benutzer jede Auswahl getroffen hat, wird die entsprechende Dateizahl oder Dateinummer für dieses Programm in einer Tabelle der Statusdatei 43 gespeichert, welche wiederum im gemeinsam genutzten System-RAM 36 des Prozessormoduls 20 gespeichert ist. Ein auf dem Prozessormodul 20 ablaufendes Programm ist imstande, auf die MCP Ausführungstabelle zuzugreifen und die Programmdateieinträge durch Hinzufügen, Löschen und Ersetzen des Hauptsteuerprogramms weitestgehend auf dieselbe Weise zu ändern, daß das Programm wiederum imstande ist, andere Tabellen im gemeinsam genutzten System- RAM 36 zu ändern.
- Dieser Teil der Statusdatei wird als die "MCP Ausführungstabelle" bezeichnet und ist in Figur 4 dargestellt. Jede der 16 Hauptsteuerprogrammeinträge A-P in dieser Tabelle ist drei Wörter lang. Das erste Wort 71 jedes Eintrags enthält die Programmdateinummer, die das Hauptsteuerprogramm identifiziert. Die nächsten beiden Wörter 72 und 73 sind zu Anfang leer und werden durch eine MCP Scheduler-Routine oder Steuerprogrammroutine gefüllt, welche die Ausführung der Hauptsteuerprogramme steuert. Wie detailliert erläutert werden wird, enthält das zweite Wort (LETZTE ABTASTZEIT) jedes Hauptsteuerprogrammeintrags eine Meßgröße der Dauer der letzten Ausführungsperiode für dieses Programm und das dritte Wort (MAXIMALE ABTASTZEIT) enthält die Meßgröße der längsten Ausführungsdauer des Programms. Da für den Benutzer die Möglichkeit besteht, jedes der Hauptsteuerprogramme A-P innerhalb der MCP Ausführungstabelle zu designieren, kann ein vorgegebenes Programm mehr als einmal in die Tabelle eingegeben werden, um so während jeder Runde oder Schleife durch die Tabelle mehrfach ausgeführt zu werden. Darüber hinaus können unterschiedliche Arten von Hauptsteuerprogrammen in derselben MCP Ausführungstabelle aufgelistet sein. Beispielsweise können einige der Programme unabhängige Kontaktlogik-Steuerprogramme sein, während andere sequentielle Funktionsdiagrammprogramme sein können. Ferner können auch in anderen Sprachen geschriebene Programme zur gleichzeitigen Ausführung aufgelistet werden.
- Wenn gewünscht wird, daß weniger als sechzehn Hauptsteuerprogramme gleichzeitig ausgeführt werden, wird das erste Wort 71 der verbleibenden Einträge in der MCP Ausführungstabelle der Figur 4 einen Eintrag haben, der anzeigt, daß keine Programmdatei ausgewählt bzw. designiert ist. Beispielsweise kann eine Programmdateinummer von null dazu verwendet werden, Eintragspositionen zu füllen, die kein auszuführendes Mastersteuerprogramm identifizieren. Selbst wenn ein spezieller Eintrag in der Ausführungstabelle eine auszuführende Programmdatei identifiziert, kann die Ausführung durch Setzen eines Flagbits im ersten Wort 70 der MCP Ausführungstabelle außer Kraft gesetzt werden. Jedes der 16 Bits in diesem ersten Wort 70 ist ein MCP Inhibit-Flag oder Blockierflag entsprechend einem von 16 möglichen Hauptsteuerprogrammeinträgen A-P in der Ausführungstabelle. Ein Flagbit von "Eins" zeigt an, daß das entsprechende Hauptsteuerprogramm nicht auszuführen ist, wohingegen ein Bit von "Null" die Ausführung dieses Programms freigibt. Die MCP Inhibit-Flags können durch Befehle in den Hauptsteuerprogrammen genauso gesetzt und zurückgesetzt werden, wie solche Programme Bits in anderen Datendateien im gemeinsam genutzten System-RAM 36 setzen und zurücksetzen können. Während der Konfigurierung der MCP Ausführungstabelle kann der Benutzer manuell die MCP Inhibit-Flags für spezielle Einträge in dieser Ausführungstabelle setzen oder zurücksetzen
- Sobald der Benutzer sämtliche Hauptsteuerprogramme eingeschrieben und gespeichert hat und die MCP Ausführungstabelle konfiguriert hat, kann der Prozessormodul 20 in den Ablaufmodus versetzt werden, in dem er beginnt, die MCP Scheduler-Routine auszuführen, die im Flußdiagramm der Figuren 5A und 5B gezeigt ist. Die MCP Scheduler-Routine wird durch den zweiten Mikroprozessor 61 ausgeführt, der einen Zeiger innerhalb des zweiten RAMs 65 speichert, welcher anzeigt, welches der Hauptsteuerprogramme A-P in der MCP Ausführungstabelle gegenwärtig abläuft. Sämtliche der aktiven in der MCP Ausführungstabelle aufgelisteten Hauptsteuerprogramme können gleichzeitig ausgeführt werden bzw. ablaufen, so daß sie sämtlich gleichzeitig die gesteuerte Ausrüstung betreiben bzw. ansteuern. Obgleich die Mehrzahl aktiver Hauptsteuerprogramme, die in dieser Tabelle bezeichnet sind, als gleichzeitig ablaufend beschrieben sind, ist zu beachten, daß zu jedem beliebigen vorgegebenen Zeitpunkt ein Befehl für die tatsächliche Ausführung von nur einem der Hauptsteuerprogramme durch den Prozessormodul 20 vorliegt. Jedoch werden sämtliche der aktiven Programme, die in der MCP Ausführungstabelle festgelegt und bezeichnet sind, gleichzeitig in einer eindeutigen speziellen Weise zeitlich verschachtelt ausgeführt und abgearbeitet, wie mit Bezug auf die Operation der MCP Scheduler-Routine beschrieben wird.
- Zu Anfang liest im Schritt 80 der MCP Scheduler-Routine der zweite Mikroprozessor 61 das Inhibit-Flagbit aus dem Wort 70 innerhalb der MCP Ausführungstabelle für das Hauptsteuerprogramm, das durch den Zeiger designiert ist, der im zweiten RAM 65 gespeichert ist. Das Flag wird daraufhin geprüft, um zu ermitteln, ob das ausgewählte Hauptsteuerprogramm im Schritt 82 freigegeben ist. Falls das Flagbit gesetzt ist, um anzuzeigen, daß das ausgewählte Hauptsteuerprogramm nicht auszuführen ist, wird im Schritt 87 die LETZTE ABTASTZEIT im zweiten Wort 72 dessen MCP Ausführungstabelleneintrag auf null gesetzt. Dann springt MCP Scheduler-Routine auf Schritt 104 (Figur 5B), um auf das nächste Programm in der MCP Ausführungstabelle vorzurücken. Unter der Voraussetzung jedoch, daß das im Schritt 82 geprüfte Flag anzeigt, daß das ausgewählte Hauptsteuerprogramm freigegeben ist, fährt die Ausführung der MCP Scheduler- Routine mit Schritt 84 fort, bei dem die Programmdateinummer für das ausgewälhlte Hauptsteuerprogramm durch den zweiten Mikroprozessor 81 aus dem Eintrag in der MCP Ausführungstabelle gelesen wird. Diese Dateinummer wird dann im Schritt 86 geprüft, um zu ermitteln, ob sie null ist, womit angezeigt ist, daß kein Programm an diesem Tabelleneintrag designiert ist. Falls die Dateinummer null ist wird für dieses Programm die LETZTE ABTASTZEIT auf null in der Ausführungstabelle im Schritt 87 gesetzt, bevor die Programmausführung auf Schritt 104 springt, um auf den nächsten Programmeintrag in der MCP Aus führungstabele vorzurücken.
- Unter der Annahme, daß im Schritt 86 eine gültige Dateinummer gefunden wurde, rückt die MCP Scheduler-Routine auf Schritt 88 vor, in welchem der zweite Mikroprozessor 61 einen Programmausführungszeitgeber innerhalb seiner Zeitgeberschaltung 67 zurücksetzt, um ein Mittel zum Messen der Dauer der Ausführung des ausgewählten Hauptsteuerprogramms vorzusehen. Der zweite Mikroprozessor 61 verwendet dann die Dateinummer des ausgewählten Hauptsteuerprogramms, um das Dateiverzeichnis im Abschnitt 50 des gemeinsam genutzten System-RAMs 36 (gemäß Darstellung in Figur 3) zu lesen. Neben weiterer Information in diesem Verzeichnis findet sich eine Anzeige der Art von Programm, welches auszuführen ist. Beispielsweise kann dieses Programm entweder ein Kontaktlogikprogramm oder ein sequentielles Funktionsdiagramm sein. Unter Heranziehen dieser Dateiartbezeichnung verzweigt die Programmabarbeitung dann beim Schritt 92 auf einen zweier paralleler Programmzweige, abhängig von der ermittelten Programmart. Wie zuvor dargelegt, kann der Prozessormodul 20 so eingerichtet werden, daß er andere Arten von Hauptsteuerprogrammen ausführt, wobei in diesem Fall zusätzliche Parallelzweige zwischen den Schritten 92 und 98 in der MCP Scheduler-Routine vorgesehen werden.
- Falls das Hauptsteuerprogramm, das für die Ausführung ausgewählt ist, ein Kontaktlogikprogramm ist, verzweigt die Programmausführung zum Schritt 94, in welchem der zweite Mikroprozessor 61 eine konventionelle Kontaktlogikprogramm-Interpretiererroutine aufruft. Die Dateinummer des ausgewählten Hauptsteuerprogramms wird in die Interpretiererroutine geleitet, welche auf das im gemeinsam genutzten System-RAM 36 gespeicherte Programm zugreift und mit der Ausführung ihrer Befehle am oberen Ende des Kontaktplans bzw. der "Leiter" beginnt. Wie zuvor dargelegt, werden die meisten der Kontaktlogik-Befehle vom Kontaktlogikprozessor 50 ausgeführt. Jedoch werden relativ komplexe Kontaktlogikbefehle typischerweise vom zweiten Mikroprozessor 61 ausgeführt. Wie bei programmierbaren Standardcontrollern wird jede Sprosse des Kontaktlogikprogramms oder Kontaktplanprogramms in der bezeichneten Sequenz abgearbeitet, bis das untere Ende des Kontaktplans erreicht ist. Nach Vervollständigung einer Abtastung über das Kontaktlogikprogramm hinweg, wird die im Schritt 94 aufgerufene Interpretiererroutine die weitere Abarbeitung des Hauptsteuerprogramms aussetzen und geht zurück auf die MCP Scheduler-Routine, die dann mit Schritt 98 fortschreitet. Dies steht im Gegensatz zu konventioneller Ausführung von Kontaktlogikprogrammen, die dann vom unteren Ende zum oberen Ende des Kontaktplans zurückkehren, um eine weitere Ablaufabtastung durch das Steuerprogramm vorzunehmen.
- Alternativ verzweigt, falls im Schritt 92 das ausgewählte Hauptsteuerprogramm ein seguentielles Funktionsdiagramm ist, die Abarbeitung der MCP Scheduler-Routine auf Schritt 96, in welchem eine Interpretiererroutine für ein sequentielles Funktionsdiagramm vom zweiten Mikroprozessor 61 aufgerufen wird. Diese Art von Interpretiererroutine entspricht der im US Patent 4,742,443 erläuterten Routine. Konventionelle Interpretierer für sequentielle Funktionsdiagramme rücken unmittelbar von einem Diagrammabschnitt zum nächsten in der spezifizierten Sequenz vor, wenn eine Übergangsbedingung, die zwei Abschnitte miteinander verknüpft, erfüllt ist. Jedoch bewirkt das Aufrufen des Interpretierers für das sequentielle Funktionsdiagramm im Schritt 96 nur die Ausführung eines einzelnen Abschnitts des Diagramms. Ist eine Ablaufabtastung durch den aktiven Abschnitt des Funktionsdiagramms erfolgt und ist die Übergangsbedingung ausgewertet, geht die Interpretiererroutine zurück auf die MCP Scheduler-Routine. Daher wird jedesmal, wenn ein sequentielles Funktionsdiagramm zur Ausführung ausgewählt ist, nur ein Abschnitt des Diagramms ausgeführt und abgearbeitet, wodurch es möglich wird, daß Abschnitte der anderen Hauptsteuerprogramme zwischen jedem Abschnitt des sequentiellen Funktionsdiagramms abgearbeitet werden.
- Figur 6 zeigt in graphischer Weise ein exemplarisches sequentielles Funktionsdiagramm, welches eine Folge von Schritten umfaßt, die durch umrandete Felder angezeigt sind, auf die ein Übergang folgt, wobei ein solcher in üblicher Weise durch horizontale Linien angezeigt ist, welche die vertikalen Linien durchsetzen, die die Schritte miteinander verbinden. Es sind einige unterschiedliche Abschnitte eines üblichen Funktionsdiagramms gezeigt. Beispielsweise folgt ein Einzelfunktionsschritt 122 auf Funktionsschritt 120 in einem "Sequenzabschnitt" des Funktionsdiagramms. Folgend auf Schritt 122 verzweigt das Programm auf drei Funktionsschritte 124, 125 und 126, die sämtlich gleichzeitig ausgeführt werden, wobei sie "einen simultanen Abschnitt" des Funktionsdiagramms bilden. Nach Abschluß des simultanen Abschnitts läuft das Programm wieder zur Ausführung eines Einzelfunktionsschritts 128 zusammen. Innerhalb jeder Funktionsschrittumrandung und bei jedem Übergang findet sich eine Bezeichnung einer Programmdatei, die ein Steuerprogramm enthält, welches die Funktion für jeden Schritt des Funktionsdiagramms.ausführt. Jedes derartige Steuerprogramm kann ein Kontaktlogikprogramm sein, kann jedoch auch in irgendeiner anderen Programmiersprache geschrieben sein.
- Wenn die MCP Scheduler-Routine das sequentielle Funktionsdiagramm der Figur 6 für die Ausführung auswählt, verarbeitet die im Schritt 96 aufgerufene Interpretiererroutine zu einem Zeitpunkt einen Abschnitt des Diagramms. Beispielsweise wird der Interpretierer anfänglich Funktionsschritt 120 interpretieren, indem er das Steuerprogramm aufruft, das in der Programmdateinummer 4 für die Ausführung gespeichert ist. Wie im oben erwähnten Patent dargelegt, wird, falls diese Datei ein konventionelles Kontaktlogikprogramm ist, der sequentielle Funktionsdiagramminterpretierer wiederum den Kontaktlogikprogramminterpretierer aufrufen, so daß dieser das Programm in der bezeichneten Datei abarbeitet. Bei Beendigung einer Ablaufabtastung durch das Kontaktlogikprogramm wird die Interpretiererroutine für das sequentielle Funktionsdiagramm auf den Übergang 121 vorrücken, der durch das in der Datei 9 gespeicherte Programm definiert ist.
- Dieses Übergangsprogramm wird dann abgearbeitet, um zu ermitteln, ob das Funktionsdiagramm bei Schritt 120 bleiben sollte oder auf den nächsten Abschnitt des Diagramms vorrücken sollte, entsprechend Schritt 122. Wird ermittelt, daß auf den nächsten Abschnitt vorzurücken ist, wird die Bezeichnung des aktiven Funktionsabschnitts in der Statusdatei für das sequentielle Funktionsdiagramm auf den nun richtigen Abschnitt geändert. Falls beispielsweise die Ausführung oder Abarbeitung des Programms bei Schritt 120 verbleiben soll, bleibt auch die Bezeichnung des aktiven Schrittes unverändert, wohingegen, falls das sequentielle Funktionsdiagramm auf Funktionsschritt 122 vorrücken soll, ein Bezeichnung dieses Funktionsschritts in den Aktivschritt-Statusblock gesetzt werden wird. In früheren Systemen, die sequentielle Funktionsdiagramme interpretierten, wurde, sobald der Übergang ermittelt worden war, die Interpretation des sequentiellen Funktionsdiagramms durch Abarbeiten des bezeichneten aktiven Schritts fortgesetzt. Jedoch wird im vorliegenden System, das gleichzeitig mehrere Mastersteuerprogramme abarbeitet, sobald ein Übergangsprogramm ausgeführt worden ist, die Interpretiererroutine für das sequentielle Funktionsdiagramm auf die MCP Scheduler-Routine zurückgehen, die dann auf Schritt 98 vorrückt.
- Falls ein simultaner Abschnitt des sequentiellen Funktionsdiagramms im Schritt 96 der MCP Scheduler-Routine interpretiert wird, wird eine Ablaufabtastung jedes der simultanen Schritte ausgeführt. Beispielsweise wird unter Bezugnahme auf den Simultanabschnitt des exemplarischen sequentiellen Funktionsdiagramms der Figur 6, das aus den Funktionsschritten 124, 125 und 126 besteht, das designierte Steuerprogramm jeweils für jeden dieser Funktionsschritte, die sämtlich in den Dateien 6, 7 und 8 des Benutzersteuerprogrammabschnitts des gemeinsam genutzten System-RAMs 36 gespeichert sind, abgearbeitet. Wenn eine Ausführungsabtastung oder Abarbeitung durch jedes dieser Programme abgeschlossen worden ist, wird das Programm in Datei 11 für den Übergang 127 abgearbeitet, um zu ermitteln, ob die Interpretation für das sequentielle Funktionsdiagramm vom Simultanabschnitt auf den nächsten Funktionsschritt 128 vorrücken sollte. Diese Ermittlung beeinflußt den Inhalt der Aktivschrittbezeichnung in der Statusdatei für die ses sequentielle Funktionsdiagramm. Ist einmal diese Ermittlung erfolgt, so endet die Interpretation des sequentiellen Funktionsdiagramms zeitweise dadurch, daß der Interpretierer zurück auf die MCP Scheduler-Routine geht, die auf Schritt 98 vorrückt.
- Daher wird im Fall des sequentiellen Funktionsdiagramms nur ein Abschnitt des Diagramms durch jedes Aufrufen der Interpretiererroutine des sequentiellen Funktionsdiagramms bei Schritt 96 abgearbeitet, statt das gesamte Funktionsdiagramm abzuarbeiten. Falls das gesamte Funktionsdiagramm bei jedem Aufrufen des Interpretierers im Schritt 96 abgearbeitet würde, würde für diese Art Hauptsteuerprogramm eine außerordentlich lange Zeitspanne benötigt, und zwar zum Nachteil für die Ausführung anderer Hauptsteuerprogramme, die als auszuführend vorgegeben sind. Daher wird jeder Abarbeitungszyklus für ein sequentielles Funktionsdiagramm auf einen relativ kleinen Abschnitt des Diagramms beschränkt, so daß die Abarbeitung anderer Hauptsteuerprogramme nicht nachteilig beeinflußt wird.
- Im Schritt 98 der MCP Scheduler-Routine der Figur 5A liest der zweite Mikroprozessor 61 den Wert des Programmausführungszeitgebers innerhalb der Schaltung 67 und speichert diesen Wert als die LETZTE ABTASTZEIT im zweiten Wort 72 des Eintrags in der MCP Ausführungstabelle (Figur 4) für das ausgewählte Hauptsteuerprogramm. Dann wird die LETZTE ABTASTZEIT mit der im dritten Wort 73 des MCP Ausführungstabelleneintrags gespeicherten MAXIMALEN ABTASTZEIT verglichen. Falls die gerade abgeschlossene Ausführung des ausgewählten Hauptsteuerprogramms die frühere MAXIMALE ABTASTZEIT überschritten hat, ersetzt die jüngste Abtastzeit die MAXIMALE ABTASTZEIT in einem geeigneten Eintrag der MCP Ausführungstabelle bei Schritt 102, bevor auf Schritt 104 vorgerückt wird.
- Im Schritt 104 der Figur 5B wird der Programmzeiger auf den nächsten Eintrag in der MCP Ausführungstabelle inkrementiert und der neue Zeigerwert wird im Schritt 106 geprüft, um zu ermitteln, ob er über das Ende der Tabelle hinausgeht. Falls der Zeiger sich noch in der MCP Ausführungstabelle befindet, springt die Abarbeitung der MCP Scheduler-Routine auf Schritt 114.
- Falls jedoch der Programmzeiger über das Ende der MCP Ausführungstabelle hinausgeht, rückt die Programmabarbeitung auf Schritt 108 vor. Bei diesem Punkt summiert der zweite Mikroprozessor 61 die LETZTE ABTASTZEIT für jedes der aktiven MCPs und speichert die Gesamtheit im Wort 74 der MCP Ausführungstabelle innerhalb der Statusdatei 43 des gemeinsam genutzten System-Rams 36. Gleichermaßen berechnet der zweite Mikroprozessor 61 im Schritt 110 die Summe der MAXIMALEN ABTASTZEIT für jeden Eintrag in der MCP Ausführungstabelle und speichert diese Gesamtheit im Wort 75 der Tabelle. Auf diese Summen kann der Benutzer über das Terminal 11 als Anzeigegrößen der Operation der Mastersteuerprogramm-Scheduler-Routine und der Steuerprogrammabarbeitung zugreifen. Der MCP Programmzeiger wird im Schritt 112 auf das Hauptsteuerprogramm A in der Ausführungstabelle zurückgesetzt.
- Die Abarbeitung der MCP Scheduler-Routine rückt nun auf Schritt 114 vor, bei dem die Eingaben und Ausgaben des programmierbaren Controllers aktualisiert werden, bevor das nächste Hauptsteuerprogramm abläuft. Diese Aktualisierung beinhaltet die Heranziehung von Daten von jedem Eingangs-I/O-Modul 18 und 18' und die Speicherung der Daten in der Datendateinummer 1 im Abschnitt 41 des gemeinsam genutzten System-RAMs 36 (vergleiche Figur 3). Der Aktualisierungsprozeß überträgt auch Daten vom Abschnitt 42 des gemeinsam genutzten System-RAMs zu jedem Ausgangs I/O Modul 18 und 18'. Nach der Aktualisierung der I/O Werte werden jedwede organisatorischen oder Verwaltungstasks im Schritt 116 durchgeführt, bevor auf Schritt 80 zurückgegangen wird, um ein weiteres Hauptsteuerprogramm in der Liste der MCP Ausführungstabelle abzuarbeiten. Somit durchläuft die MCP Scheduler-Routine zyklisch die Ausführungstabelle, wobei sie periodisch in Reigensystemart jedes der Hauptsteuerprogramme auswählt, das in der Tabelle vom Benutzer identifiziert worden ist.
- Durch die Einbeziehung der MCP Ausführungstabelle und der Scheduler-Routine im programmierbaren Controller, können mehrere unabhängige Hauptsteuerprogramme aktiv sein, die gleichzeitig die jeweilige Ausrüstung steuern. Zuvor konnte nur mehr als ein Programm von einem einzelnen Prozessormodul gleichzeitig abgearbeitet werden, falls die Programme Teil eines sequentiellen Funktionsdiagramms waren. Jedoch war die Abarbeitung jedes derartigen Programms nicht unabhängig, da es an die Interpretation des Funktionsdiagramms angebunden war. Beim vorliegenden System können multiple Benutzersteuerprogramme tatsächlich unabhängig voneinander abgearbeitet werden. So kann tatsächlich ein separates Kontaktlogikprogramm gleichzeitig mit einem sequentiellen Funktionsdiagramm ablaufen. Die Scheduler-Routine für das Hauptsteuerprogramm sorgt für einen systematischen Prozeß, der ermöglicht, daß mehrere Programme unabhängig und gleichzeitig auf demselben Prozessormodul ablaufen, ohne daß zugelassen wird, daß ein solches Programm den Prozessor monopolisiert.
Claims (18)
1. Programmierbare Steuerung (10) zum Betreiben einer
maschinellen Einrichtung abhängig von der gleichzeitigen
Ausführung einer Mehrzahl Steuerprogramme, aufweisend:
eine erste Einrichtung (RAM 36, Programmdateien 45-48)
zum Speichern mehrerer vom Benutzer wählbarer
Steuerprogramme;
einen Prozessor (60) zum Ausführen der in der ersten
Speichereinrichtung gespeicherten Steuerprogramme;
eine zweite Einrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) zum Speichern einer Liste von
Identifizierungen der gespeicherten Steuerprogramme, die in der Folge
aufgelistet sind, in der die Steuerprogramme durch den
Prozessor auszuführen sind; und
eine Prozessorsteuereinrichtung zur sequentiellen Auswahl
eines Steuerprogramms aus der Liste für die Ausführung durch
den Prozessor (60),
dadurch gekennzeichnet, daß
die Mehrzahl vom Benutzer wählbarer Steuerprogramme
unabhängig ausführbare Hauptsteuerprogramme (MPC) zur Lenkung der
Operation einer gesteuerten Einrichtung sind;
eine dritte Einrichtung (RAM 36, Wort 70 in der MCP
Ausführungstabelle) zur Speicherung einer Anzeige darüber
vorgesehen ist, ob jedes in der zweiten Speichereinrichtung (RAM
36, Statusdatei 43: MCP Ausführungstabelle) identifizierte
Steuerprogramm für eine Ausführung aktiv ist, wobei die
Anzeige durch ein vom Prozessor ausgeführtes Steuerprogramm
abänderbar ist; und daß
die Prozessorsteuereinrichtung sequentiell ein aktives
Steuerprogramm aus der Ausführungsliste auswählt und die
Ausführung aussetzt, wenn ein vorbestimmter Punkt in einem
ausgewählten Steuerprogramm erreicht ist, wobei zu diesem
Zeitpunkt ein anderes aktives Steuerprogramm in einer zyklischen
Weise aus der Liste ausgewählt wird.
2. Programmierbare Steuerung nach Anspruch 1, in welcher ein
einzelnes Steuerprogramm mehrere Identifizierungen auf der in
der zweiten Speichereinrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) gespeicherten Liste haben kann.
3. Programmierbare Steuerung nach Anspruch 1, in welcher die
zweite Speichereinrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) eine feste Anzahl von Stellen aufweist,
innerhalb derer Identifizierungen speicherbar sind.
4. Programmierbare Steuerung nach Anspruch 1, in welcher die
zweite Speichereinrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) eine feste Anzahl von Stellen aufweist, die
entweder eine Identifizierung eines Steuerprogramms oder eine
Anzeige darüber halten, daß ein Steuerprogramm an dieser
Stelle der Liste nicht identifiziert ist.
5. Programmierbare Steuerung nach einem der vorhergehenden
Ansprüche in welcher: die Steuerprogramme ein sequentielles
Funktionsdiagrammprogramm aufweisen, welches eine Mehrzahl
von Abschnitten umfaßt, wobei aneinandergrenzende Abschnitte
durch einen Übergang verknüpft sind, der eine Bedingung
kennzeichnet, die vorhanden sein muß, damit die Ausführung des
sequentiellen Funktionsdiagrammprogramms von einem Abschnitt
zu einem anderen Abschnitt fortschreitet, und in welcher die
Steuerprogramme auch unabhängig ausführbare
Kontaktplanprogramme umfassen; wobei (1), wenn das ausgewählte
Steuerprogramm ein sequentielles Funktionsdiagrammprogramm ist, die
Prozessorsteuereinrichtung die Ausführung eines Abschnitts
veranlaßt, ermittelt, ob eine mit diesem einen Abschnitt
verknüpfte Übergangsbedingung vorliegt, dann die Ausführung des
sequentiellen Funktionsdiagrammprogramms aussetzt und der
Steuereinrichtung signalisiert, ein weiteres Steuerprogramm
auszuwählen, und (2), wenn das ausgewählte Programm ein
Kontaktplanprogramm ist, die Prozessorsteuereinrichtung die
Ausführung des Programms bis zum Erreichen eines definierten
Punktes im Kontaktplanprogramm veranlaßt, wobei zu diesem
Zeitpunkt die weitere Ausführung des Kontaktplanprogramms
ausgesetzt wird und der Steuereinrichtung signalisiert wird,
ein anderes Steuerprogramm auszuwählen.
6. Programmierbare Steuerung nach Anspruch 1 oder 5, in
welcher die zweite Steuereinrichtung (RAM 36, Statusdatei 43:
MCP Ausführungstabelle) durch ein in der Ausführung
befindliches benutzerwählbares Programm zugreifbar ist, um auf der
Liste Identifizierungen hinzuzufügen und zu streichen.
7. Programmierbare Steuerung nach Anspruch 5, ferner
aufweisend eine Einrichtung (RAM 36, MCP Ausführungstabelle) zur
Anzeige darüber, ob jedes Steuerprogramm in der geordneten
Liste aktiv oder inaktiv ist; und in welcher die
Steuereinrichtung nur Steuerprogramme selektiert, die als aktiv
angezeigt sind.
8. Programmierbare Steuerung nach Anspruch 7, in welcher die
Einrichtung (RAM 36, MCP Ausführungstabelle) zur Anzeige eine
Anzeige darüber, ob ein Steuerprogramm aktiv oder inaktiv
ist, abhängig von der Ausführung eines Steuerprogramms durch
die Ausführungseinrichtung ändern kann.
9. Programmierbare Steuerung nach Anspruch 5, in welcher der
definierte Punkt im Kontaktplanprogramm bei Abschluß einer
Ausführungsabtastung durch das Programm vorliegt.
10. Programmierbare Steuerung nach einem der vorhergehenden
Ansprüche, in welcher die vom Benutzer wählbaren
Steuerprogramme ein sequentielles Funktionsdiagrammprogramm umfassen,
das mehrere Abschnitte aufweist, wobei aneinandergrenzende
Abschnitte durch einen Übergang verknüpft sind, der eine
Bedingung kennzeichnet, die vorliegen muß, damit die Ausführung
des sequentiellen Funktionsdiagrammprogramms von einem
Abschnitt zu einem anderen Abschnitt fortschreitet; wobei die
Prozessorsteuereinrichtung eine Ausführung des
benutzerwählbaren Steuerprogramms veranlaßt, das durch die
Steuereinrichtung ausgewählt ist, wobei, wenn das ausgewählte Programm ein
sequentielles Funktionsdiagrammprogramm ist, die Steuerein
richtung die Ausführung eines Abschnitts veranlaßt,
ermittelt, ob eine Übergangsbedingung, die mit diesem einen
Abschnitt verknüpft ist, vorhanden ist, und dann die Ausführung
des sequentiellen Funktionsdiagrammprogramms aussetzt und der
Steuereinrichtung signalisiert, ein anderes Programm zur
Ausführung auszuwählen.
11. Programmierbare Steuerung nach Anspruch 1, 5 oder 10,
ferner aufweisend eine Eingangs/Ausgangs-Interfaceeinrichtung
(38) zum Auslesen des Zustandes von Abfühleinrichtungen, die
mit der programmierbaren Steuerung (20) verbunden sind und
zur Übertragung von Steuersignalen an mit der
programmierbaren Steuereinrichtung verbundene Steuereinrichtungen, wobei
das Auslesen und Übertragen, nachdem die Ausführung eines
Steuerprogramms ausgesetzt ist, erfolgen.
12. Programmierbare Steuerung nach Anspruch 1, 5 oder 10,
ferner aufweisend eine Einrichtung (67) zum Erzeugen einer
Meßgröße über die Länge eines Zeitintervalls, währenddessen
ein Steuerprogramm ausgeführt wird, jedesmal, wenn das
Steuerprogramm aus der Liste ausgewählt ist.
13. Programmierbare Steuerung nach Anspruch 12, in welcher
die zweite Speichereinrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) auch die Meßgröße des Zeitintervalls für
jedes Steuerprogramm speichert.
14. Programmierbare Steuerung nach Anspruch 12, ferner
aufweisend eine Einrichtung, die ermittelt, ob eine gegebene
Meßgröße den größten Betrag für sämtliche Meßgrößen für ein
spezielles Steuerprogramm aufweist; und eine Einrichtung zur
Speicherung für jedes Steuerprogramm auf der Liste einer
Meßgröße, die den größten Betrag aufweist.
15. Programmierbare Steuerung nach Anspruch 12, ferner
aufweisend eine dritte Einrichtung zum Speichern der Meßgröße
des Zeitintervalls für jedes Steuerprogramm.
16. Programmierbare Steuerung nach Anspruch 15, ferner
aufweisend eine Einrichtung, die ermittelt, ob eine gegebene
Meßgröße den größten Betrag sämtlicher solcher Meßgrößen für
ein spezifisches Steuerprogramm aufweist; und falls dies
zutrifft, die gegebene Meßgröße in der dritten
Speichereinrichtung speichert, um sie als ein größtes Betragsintervall für
dieses Steuerprogramm zu speichern.
17. Programmierbare Steuerung nach Anspruch 10, in welcher
ein gegebenes Steuerprogramm mehrfach in der in der zweiten
Speichereinrichtung gespeicherten Liste auftreten kann.
18. Programmierbare Steuerung nach Anspruch 10, in welcher
die zweite Speichereinrichtung (RAM 36, Statusdatei 43: MCP
Ausführungstabelle) eine Anzeigegröße vorsieht, wenn eine
Stelle zur Speicherung einer Identifizierung keine
Identifizierung enthält; und in welcher die Steuereinrichtung auf die
Anzeigegröße anspricht, indem sie eine andere Stelle in der
zweiten Speichereinrichtung auswählt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63425490A | 1990-12-26 | 1990-12-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69124499D1 DE69124499D1 (de) | 1997-03-13 |
DE69124499T2 true DE69124499T2 (de) | 1997-08-21 |
Family
ID=24543028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1991624499 Expired - Lifetime DE69124499T2 (de) | 1990-12-26 | 1991-12-21 | Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0496097B1 (de) |
JP (1) | JPH04303209A (de) |
BR (1) | BR9105617A (de) |
CA (1) | CA2056829A1 (de) |
DE (1) | DE69124499T2 (de) |
MX (1) | MX9102710A (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295059A (en) * | 1992-09-09 | 1994-03-15 | Allen-Bradley Company, Inc. | Programmable controller with ladder diagram macro instructions |
EP0590175B1 (de) * | 1992-09-28 | 1996-07-24 | Siemens Aktiengesellschaft | Prozesssteuerungssystem |
JP2762893B2 (ja) * | 1993-04-02 | 1998-06-04 | 三菱電機株式会社 | プログラマブルコントローラ及びそのプログラマブルコントローラを用いたsfcプログラム実行方法 |
ES2118170T3 (es) * | 1993-10-11 | 1998-09-16 | Siemens Ag | Modulo de procesamiento para un sistema de automatizacion modular. |
JP3432728B2 (ja) * | 1997-12-12 | 2003-08-04 | 株式会社日立産機システム | プログラマブルコントローラ |
JP5659840B2 (ja) * | 2011-02-10 | 2015-01-28 | 東芝三菱電機産業システム株式会社 | 機械設備の制御装置 |
EP3376319B1 (de) * | 2017-03-14 | 2021-01-06 | CODESYS Holding GmbH | Verfahren und system für eine automatische konfiguration eines industriereglers |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH559936A5 (de) * | 1973-02-27 | 1975-03-14 | Sprecher & Schuh Ag | |
US4742443A (en) * | 1985-03-28 | 1988-05-03 | Allen-Bradley Company | Programmable controller with function chart interpreter |
-
1991
- 1991-12-02 CA CA 2056829 patent/CA2056829A1/en not_active Abandoned
- 1991-12-19 MX MX9102710A patent/MX9102710A/es unknown
- 1991-12-21 EP EP19910122049 patent/EP0496097B1/de not_active Expired - Lifetime
- 1991-12-21 DE DE1991624499 patent/DE69124499T2/de not_active Expired - Lifetime
- 1991-12-25 JP JP34359191A patent/JPH04303209A/ja active Pending
- 1991-12-26 BR BR919105617A patent/BR9105617A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
BR9105617A (pt) | 1992-09-01 |
MX9102710A (es) | 1992-06-01 |
EP0496097A2 (de) | 1992-07-29 |
JPH04303209A (ja) | 1992-10-27 |
CA2056829A1 (en) | 1992-06-27 |
EP0496097B1 (de) | 1997-01-29 |
EP0496097A3 (en) | 1992-09-23 |
DE69124499D1 (de) | 1997-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3855219T2 (de) | Verfahren und vorrichtung zum übertragen von echtzeitdaten zwischen einem programmierbaren logiksteuergerät und einem programm in einem zentralen steuergerät | |
DE3854594T2 (de) | Programmierbare Steuerung mit parallelen Prozessoren. | |
DE68923888T3 (de) | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode. | |
DE69320122T2 (de) | Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen | |
DE2455803C2 (de) | Mehrprozessor-Datenverarbeitungsanlage | |
DE69222821T2 (de) | Genereller Datenaustausch | |
DE69931473T2 (de) | Eingang/ausgang scanner für ein steuersystem mit gleichrangiger ermittlung | |
DE2936913C2 (de) | Anordnung zur Steuerung von Eingabe und Ausgabe bei einer programmierbaren Logiksteuerung | |
DE69129645T2 (de) | Verfahren und Anordnung zur Unterstützung der Anzeige und Entfernung von Fenstern | |
DE10048072A1 (de) | Linklisten-DMA-Descriptor-Architektur | |
DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
DE69026150T2 (de) | System zur Verarbeitung von in Dateien organisierten Daten mit Steuerungsmodul | |
DE69124499T2 (de) | Programmierbarer Steuerungsprozessor für gleichzeitig auszuführende Mehrfachbenutzersteuerungsprogramme | |
DE4411389C2 (de) | Programmierbare Steuereinheit und Betriebsverfahren | |
DE2935101C2 (de) | ||
DE3750920T2 (de) | Anzeigeendgerät in einem digitalen Datensystem. | |
DE3938950C2 (de) | ||
DE68915102T2 (de) | Programmierbare Steuerung. | |
EP0862763B1 (de) | Simulatoreinheit zum simulieren einer peripherieeinheit einer modular aufgebauten speicherprogrammierbaren steuerung | |
DE69521262T2 (de) | Steuersystem | |
DE2539929A1 (de) | Rechnersystem mit busstruktur | |
DE10218816A1 (de) | Programmierbares Steuerungssystem | |
EP1449040B1 (de) | Verfahren zum zugriff auf daten eines automatisierungsgerätes und automatisierungsgerät | |
DE2161213B2 (de) | Verfahren und Steuereinheit zum Übertragen von Datenwortblöcken | |
DE69129962T2 (de) | Nachrichten verarbeitende Vorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: JUNG HML, 80799 MUENCHEN |