DE10116809A1 - Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung - Google Patents
Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer SteuerprogrammentwicklungInfo
- Publication number
- DE10116809A1 DE10116809A1 DE10116809A DE10116809A DE10116809A1 DE 10116809 A1 DE10116809 A1 DE 10116809A1 DE 10116809 A DE10116809 A DE 10116809A DE 10116809 A DE10116809 A DE 10116809A DE 10116809 A1 DE10116809 A1 DE 10116809A1
- Authority
- DE
- Germany
- Prior art keywords
- control program
- execution
- control
- unit
- program
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Eine programmierbare Steuereinrichtung (10) ist mit einem Universal-Mikroprozessor (11) versehen. Dieser Universal-Mikroprozessor umfasst einen Beschleunigungsabschnitt (12). Die Vorrichtung (20) zur Unterstützung der Steuerprogrammentwicklung erzeugt einen Ausführungscode, der von dem Universal-Mikroprozessor (11) direkt ausführbar ist. Dadurch führt der Beschleunigungsabschnitt (13) eine sequentielle Verarbeitung durch.
Description
Die vorliegende Erfindung bezieht sich auf eine
programmierbare Steuereinrichtung bzw. einen programmierbaren
Kontroller, welcher eine sequentielle Verarbeitung durchführt
in Übereinstimmung mit Ausführungscodes, die erzeugt werden
durch Kompilieren eines Steuerprogramms bzw. Regelprogramms
(im folgenden immer als Steuerprogramm bezeichnet), wie eine
Anweisungsliste oder ein Leiterdiagramm (englisch: ladder
diagram) bzw. Kontaktplan, und auf eine Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung für die
Kompilierung und die Fehlerbeseitigung bzw. das Debugging des
Steuerprogramms.
In verschiedenen Bereichen der Industrie haben sich die
Produktionsgeräte und Produktionsverfahren stark verändert,
insbesondere auf dem Produktionsgebiet, unabhängig von der
Größe eines Gebiets, und die Vielfalt an elektrischen
Steuereinrichtungen für Geräte und Systeme der Produktion hat
Jahr für Jahr zugenommen. Daher ist es wichtig, wie man mit
einem mechanischen System kommuniziert, und auch wichtig den
Kostennutzen rationell zu verbessern, sowie eine leicht zu
bedienende und schnelle Benutzerschnittstelle (englisch: User
Interface) in der obigen Umgebung zu verwirklichen.
Konventionell sind programmierbare Steuereinrichtungen und
Entwicklungsumgebungen zur Steuerung der Steuereinrichtungen
entwickelt worden, welche die oben erwähnten Bedingungen
erfüllen. Eine programmierbare Steuereinrichtung wird auch
als eine programmierbare Logiksteuerung bzw. ein
programmierbarer Logikkontroller (PLC) oder Sequenzierer
(englisch: sequencer) bezeichnet. Die programmierbare
Steuereinrichtung arbeitet allgemein in Übereinstimmung mit
der Beschreibung eines speziellen Steuerprogramms für
sequentielle Verarbeitung.
Die sequentielle Verarbeitung hat einen grundlegenden
Verarbeitungsfluss, demzufolge ein Signal aus einer
Eingabevorrichtung, wie einem Sensor oder Schalter empfangen
wird und ein Steuersignal übertragen wird an eine
Ausgabevorrichtung, wie eine Anzeige oder ein
elektromagnetisches Relais, entsprechend einem Zustand des
empfangenen Signals oder einem spezifischen Befehl. Das
heißt, ein Steuerprogramm ist ein Programm, in welchem der
Fluss der obigen sequentiellen Verarbeitung beschrieben wird.
Im allgemeinen wird das Steuerprogramm entwickelt von einem
Universalrechner, wie einem PC (englisch: personal computer)
oder Programmlader (im folgenden als Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung bezeichnet), und
an eine programmierbare Steuereinrichtung über eine
Kommunikationsschnittstelle übertragen.
Unter den Sprachen zur Beschreibung eines Steuerprogramms
sind typischerweise bekannt ein Leiterdiagramm-System
(englisch: Ladder Diagram System), ein
Funktionsblockdiagramm-System, ein System mit struktiertem
Text und ein SFC-System (SFC = Sequential Function Chart,
d. h. sequentielles Funktionsdiagramm). Insbesondere ist das
Leiterdiagramm-System bzw. Kontaktplansystem ein System, bei
welchem ein Schaltungsdiagramm wie eine Leiter gezeichnet
wird, zwei vertikale Linien an beiden Enden der Leiter zeigen
symbolisch die Antriebskraft, und der Fluss der Antriebskraft
einer Relaiskontakt-Schaltung wird gezeigt auf einer Linie,
welche horizontal angeschlossen ist zwischen den zwei Linien,
und dies ist eine sehr weit verbreitete Sprache.
Das Leiterdiagramm-System bzw. Kontaktplansystem drückt
zunächst den Fluss der sequentiellen Verarbeitung in
Übereinstimmung mit der Anordnung von graphischen Symbolen
aus, welche wie oben beschrieben von einer Person intuitiv
verstanden werden können, und wandelt dann die Anordnung der
graphischen Symbole um in eine Anweisungsliste, welche durch
mnemonische Codes bzw. Codes mit Gedächtnisstütze gezeigt
werden, die durch eine programmierbare Steuereinrichtung
interpretiert werden können, von einem Wandler, wie einer
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung.
Daher kann die programmierbare Steuereinrichtung eine
Konfiguration verwenden, um die Anweisungsliste zu empfangen
und eine sequentielle Verarbeitung in Übereinstimmung mit
Anweisungen durchzuführen, die durch die Anweisungsliste
gezeigt werden. In diesem Fall führt die programmierbare
Steuereinrichtung sequentiell ein Steuerprogramm aus, durch
Interpretieren der empfangenen Anweisungsliste Linie für
Linie, d. h. Umwandeln der Liste in Codes, die direkt
ausführbar sind von einem Mikroprozessor, der in der
programmierbaren Steuereinrichtung montiert ist. Die
programmierbare Steuereinrichtung wird im folgenden als
Interpreter-artige programmierbare Steuerung bzw. als
programmierbare Steuerung von der Art eines
Befehlsinterpretierers bezeichnet.
Darüber hinaus wird eine Compiler-artige programmierbare
Steuereinrichtung in der Praxis als eine weitere Art von
programmierbarer Steuereinrichtung verwendet, welche direkt
ausführbare Codes empfängt aus einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung, für die
Ausführung durch einen Mikroprozessor, der in der
programmierbaren Steuereinrichtung montiert ist. Im Falle der
Konfiguration, welche die kompilierende programmierbare
Steuereinrichtung verwendet, ist eine Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung mit einem
Compiler ausgestattet, welcher ein Leiterdiagramm direkt oder
vorübergehend in eine Anweisungsliste umwandelt und dann die
Liste kompiliert zu Codes, die von dem Mikroprozessor direkt
ausführbar sind, und die Ausführungscodes an die
programmierbare Steuereinrichtung überträgt.
Da jedoch das obige Steuerprogramm von der Art der
programmierbaren Steuereinrichtung abhängt, ist es unmöglich
die gleiche sequentielle Verarbeitung durchzuführen zwischen
unterschiedlichen Arten von programmierbaren Steuerungen
unter Verwendung von Steuerprogrammen, welche den gleichen
Quellcode haben. Daher ist es notwendig ein neues
Steuerprogramm zu entwickeln, oder ein neues Modell oder
anderes Modell auf eine programmierbare Steuereinrichtung zu
übertragen, und daher ist es schwierig vergangene
Eigenschaften eines Steuerprogramms effektiv zu verwenden.
Daher wird ein Verfahren vorgeschlagen, welches
Ausführungscodes erhält, in denen ein Steuerprogramm nicht
mit einer herkömmlichen sequentiellen Verarbeitungssprache
beschrieben wird, wie ein Leiterdiagramm oder eine
Anweisungsliste, sondern eine fortgeschrittene bzw. höhere
Programmiersprache für einen PC wird verwendet, und die
höhere Programmiersprache wird mit einem Compiler kompiliert.
Zum Beispiel, gemäß dem Sequenzanweisungs-Programmgenerator
mit höherer Sprache und dem Universal-Sequenzierer, der
offenbart wird in der offengelegenen japanischen
Patentanmeldung HEI 7-295612, übersetzt der
Sequenzanweisungs-Programmgenerator mit höherer Sprache ein
Anweisungsprogramm mit einer Sequenzanweisungs-Sprachsequenz
in ein Anweisungsprogramm mit einer Sequenz höherer Sprache,
mit einem Übersetzungsprogramm, und kompiliert das
Sequenzanweisungsprogramm der höheren Sprache, um ein
ausführbares Sequenzanweisungsprogramm zu erzeugen. Oder, der
Universal-Sequenzierer führt das Sequenzanweisungsprogramm
der höheren Sprache aus, während das Programm sequentiell
interpretiert wird. Dadurch ist es möglich eine sequentielle
Steuerung durch das gleiche Steuerprogramm durchzuführen,
unabhängig von der Art eines Sequenzierers.
Darüber hinaus sind die folgenden zwei Verfahren bekannt, um
den Inhalt eines in einer programmierbaren Steuereinrichtung
gespeicherten Steuerprogramms zu aktualisieren. Eines ist ein
Verfahren, bei welchem eine Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung ein Steuerprogramm überträgt an
eine programmierbare Steuereinrichtung, die gegenwärtig
angehalten ist, und die programmierbare Steuereinrichtung
beginnt die Ausführungsverarbeitung nach dem vollständigen
Empfang des Steuerprogramms.
Das andere ist ein Verfahren (im folgenden als
Schreibverfahren während des Laufens bezeichnet), bei welchem
eine programmierbare Steuereinrichtung den Inhalt eines
Steuerprogramms, das gegenwärtig ausgeführt wird, in den
Inhalt eines neuen Steuerprogramms umschreibt, während der
Ausführungszustand beibehalten wird. Eine programmierbare
Steuereinrichtung arbeitet normalerweise durch wiederholte
Verschachtelung und Ausführung einer Schleife eines
Binärcode-Strings, der jeder einzeln auszuführenden Anweisung
entspricht. Dieses Verfahren wird verwirklicht, indem zuerst
ein neues Steuerprogramm in einen leeren Speicherbereich
eingelesen wird, und wenn das Einlesen des Programms
vollendet ist, Anhalten der Ausführung eines ursprünglichen
Steuerprogramms, und Starten der Ausführung des neuen
Steuerprogramms zum Start- oder Endzeitpunkt der Schleife.
Darüber hinaus wird eine sogenannte Software-programmierbare
Steuereinrichtung in der Praxis verwendet, bei welcher die
Entwicklung das Debugging eines Steuerprogramms, das
verwirklicht wird durch die obige Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung und die
sequentielle Verarbeitung einer programmierbaren
Steuereinrichtung durch ein System verwirklicht werden. Die
Konfiguration der Software-programmierbaren Steuereinrichtung
ist gleich wie jene eines Universalrechners, bei welchem die
sequentielle Verarbeitung zu externen Eingabe- und
Ausgabevorrichtungen durch Software verwirklicht wird.
Die oben beschriebene programmierbare Steuereinrichtung und
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
haben jedoch die folgenden Nachteile.
Da Mikroprozessoren, welche in Universalrechner eingebaut
werden (im folgenden auch als Universal-Mikroprozessor
bezeichnet), wie in PCs, welche mit höheren Funktionen und
hoher Geschwindigkeit arbeiten, in jüngster Zeit
kostengünstig zur Verfügung stehen, verringert sich
allmählich der Vorteil der Entwicklung eines Mikroprozessors,
der in einer herkömmlicher programmierbaren Steuereinrichtung
mit einem ASIC (anwendungsspezifischer integrierter
Schaltkreis) eingebaut wird.
Insbesondere ist ein Universal-Mikroprozessor ausgestattet
mit primären und sekundären Cache-Speichern (Prozessor-naher
Pufferspeicher), und konstruiert in Übereinstimmung mit
Beschleunigungstechniken, wie Pipeline-Verarbeitung,
Superskalierer-Verarbeitung und Verarbeitung außerhalb der
Reihenfolge (out-of-order Verarbeitung), und darüber hinaus
werden Ausführungscodes, die vom Universal-Mikroprozessor
direkt ausführbar sind, auch erzeugt durch einen Compiler zur
Umwandlung der Ausführungscodes in Ausführungscodes, die ein
optimales Codesystem bilden, indem die
Beschleunigungstechniken vollkommen ausgenutzt werden.
Da die meisten Compiler der obigen Universalrechner ein
Programm kompilieren, das beschrieben wird mit einer höheren
Programmiersprache, welche einem Benutzer leicht verständlich
ist, ist es sehr vorteilhaft einen Universal-Prozessor in
eine programmierbare Steuereinrichtung einzubauen, zusammen
mit den obigen Compilern, und den Prozessor eine sequentielle
Verarbeitung durchführen zu lassen. Im Fall eines
Universalrechners ist jedoch der Startpunkt einer
Programmentwicklung festgelegt auf die Beschreibung einer
höheren Programmiersprache. Daher tritt das Problem auf, dass
es unmöglich ist ein Steuerprogramm, wie ein Leiterdiagramm
oder eine Anweisungsliste, d. h. die vergangene Eigenschaft
der sequentiellen Verarbeitung, effizient auszunutzen.
Zweitens da ein Steuerprogramm dazu neigt länger zu werden
aufgrund der Diversifizierung von Eingabe- und
Ausgabevorrichtungen, und die sequentielle Verarbeitung
komplizierter wird, besteht darin ein Problem, dass viel Zeit
notwendig wird für die Entwicklung, Kompilierung,
Interpretierung und das Debugging des Steuerprogramms.
Drittens, da eine Compiler-artige programmierbare
Steuereinrichtung einen Ausführungscode empfängt und direkt
die sequentielle Verarbeitung beginnt, besteht darin ein
Problem, dass es schwer ist die tatsächliche
Verarbeitungszeit abzuschätzen, die jeder Anweisungseinheit
oder Verarbeitungsblock-Einheit eines ursprünglichen
Steuerprogramms entspricht.
Viertens, obwohl der "höhersprachige Sequenzanweisungs-
Programmgenerator", der in der oben erwähnten offengelegten
japanischen Patentanmeldung HEI 7-295612 offenbart wird, eine
Objektdatei erzeugt, durch Umwandlung einer Quelldatei, die
beschrieben wird mit einem Steuerprogramm aus einer
Anweisungsliste oder dergleichen, in die Quelldatei einer
höheren Programmiersprache, wie die Programmiersprache C,
wenn nur die Quelldatei der höheren Programmiersprache
korrigiert wird, besteht das Problem, dass zwei Quelldateien,
welche die gleiche sequentielle Verarbeitung zeigen, nicht
miteinander übereinstimmen, da die Quelldatei eines
ursprünglichen Steuerprogramms durch die obige Korrektur
nicht geändert wird.
Insbesondere im Fall einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung, welche in der Lage ist ein
Steuerprogramm mit einer höheren Programmiersprache zu
entwickeln, ist es möglich eine Schrittausführung für eine
Zeile der höheren Programmiersprache durchzuführen, zum
Beispiel unter Verwendung eines Debugging-Werkzeugs, aber es
ist unmöglich eine Schrittausführung für jede Zeile einer
Sprachkonfiguration wie einer Anweisungsliste durchzuführen
vor der Konvertierung in eine höhere Programmiersprache.
Darüber hinaus befindet sich im allgemeinen an der
Arbeitsstelle, an welcher eine programmierbare
Steuereinrichtung eingesetzt wird, häufig keine Vorrichtung
zur Unterstützung der Steuerprogrammentwicklung, die in der
Lage ist direkt mit einer höheren Programmiersprache zu
arbeiten. Daher, wenn bei einer sequentiellen Verarbeitung
ein Problem auftritt, oder ein Steuerprogramm geringfügig
korrigiert werden muss, wird das Debugging unter Umständen
durchgeführt unter Verwendung einer einfachen Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung, die nur in der
Lage ist eine sequentiell verarbeitende Sprache zu verwenden,
wie eine Anweisungsliste. Das bedeutet, dass in diesem Fall
das obige Problem merklich wird. Um dem obigen Problem zu
begegnen, ist es notwendig eine Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung vorzubereiten, welche in der
Lage ist direkt mit einer höheren Programmiersprache zu
arbeiten, und diese an jeder Arbeitsstelle vorzusehen, aber
damit erhöhen sich die Einrichtungskosten für das System.
Fünftens, um das oben beschriebene Schreibverfahren während
des laufenden Programms zu verwirklichen, besteht das
Problem, dass ein Speicher getrennt vorgesehen werden muss,
der genauso groß wie der Speicher, in dem das gegenwärtig
ausgeführte Steuerprogramm eingelesen ist. Da Speicher eine
gewöhnlich teuere Hardware-Komponente ist, muss der
Hersteller oder Verwender zur Verwirklichung des
Schreibverfahrens während des Programmlaufs eine hohe
Investition tätigen.
Sechstens, hat die oben beschriebene Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung mit einem
Compiler das Problem, dass es im allgemeinen unmöglich ist
ein Steuerprogramm wie eine ursprüngliche Anweisungsliste,
aus schließlich erzeugten Ausführungscodes wieder
herzustellen. Daher, wenn eine programmierbare
Steuereinrichtung oder eine Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung in voneinander getrennten Gehäusen
eingebaut sind, und sie nicht durch Leitungen verbunden sind,
dann sind das ursprüngliche Steuerprogramm und der
Ausführungscode tatsächlich an voneinander verschiedenen
Orten gespeichert.
Insbesondere im Fall einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung mit einem Compiler, wenn die
Quelldatei eines Steuerprogramms auf der Seite der
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
verschwindet, ist es unmöglich das Steuerprogramm, wie eine
Anweisungsliste, wieder herzustellen, und das Debugging wird
unmöglich. In diesem Fall muss das Steuerprogramm von Grund
auf neu geschrieben werden.
Darüber hinaus, selbst wenn die Quelldatei eines
Steuerprogramms nicht verschwindet, ist es notwendig auf eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
zuzugreifen, welche die Quelldatei des ursprünglichen
Steuerprogramms speichert, und die Datei zu holen, um den
Verarbeitungsinhalt einer programmierbaren Steuereinrichtung
zu ändern, die gegenwärtig an einer Arbeitsstelle betrieben
wird.
Siebtens, hat die oben beschriebene programmierbare
Steuereinrichtung oder Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung, unabhängig davon ob sie von der
Art eines Befehlsinterpretierers oder eines Compilers ist,
darin ein Problem, dass die Prozedur zur Interpretierung des
Verarbeitungsinhalts nicht immer effizient ist, obwohl ein
Teil für die sequentielle Interpretierung des
Verarbeitungsinhalts eines von einem Benutzer beschriebenen
Steuerprogramms vorhanden ist. Der Teil zur Durchführung
einer sequentiellen Interpretierung (im folgenden als
Anweisungsinterpretiereinheit bezeichnet), dient als ein Teil
zum Lesen jedes Datenwerts, der ein Steuerprogramm bildet,
wenn das Programm ausgeführt wird, und zum Interpretieren der
Ausführung einer Anweisung, die bezeichnet wird durch den
Datenwert, im Fall einer programmierbaren Steuereinrichtung
mit Befehlsinterpretierer, und dient als Teil zum
sequentiellen Lesen und Interpretieren eines Steuerprogramms,
und zu dessen Umwandlung in ein geeignetes Ausgabeformat im
Fall einer kompilierenden Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung.
Die Anweisungsinterpretiereinheit wird im allgemeinen
beschrieben mit einer Struktur zum Vergleichen von
Eingabedaten mit einem Muster der Interpretationsseite, und
wenn die Daten und das Muster übereinstimmen, wird eine
vorher gespeicherte Operation (Aktion) ausgeführt. Daher
erfordert der Mustervergleich der
Anweisungsinterpretiereinheit viel Zeit, wenn die Operation
durchgeführt wird im Fall des Befehlsinterpretierers und wenn
die Operation kompiliert wird im Fall des Compilers. Somit
sind beides Faktoren, welche die Produktivität hemmen.
Es ist eine erste Aufgabe der vorliegenden Erfindung eine
programmierbare Steuereinrichtung zu schaffen, in welcher ein
Universal-Mikroprozessor montiert ist, der die Vorteile hat,
dass eine schnellere sequentielle Verarbeitung verwirklicht
werden kann und der Mikroprozessor kostengünstig beschafft
werden kann, und eine Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung zur Erzeugung eines
Ausführungscodes, der direkt ausführbar ist durch einen
Universal-Mikroprozessor, aus einem Steuerprogramm wie einer
Anweisungsliste.
Es ist eine zweite Aufgabe der vorliegenden Erfindung, eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
oder eine programmierbare Steuereinrichtung zu schaffen, die
in der Lage sind ein Teil für die Durchführung des
Neukompilierens zu minimieren, durch Unterteilung eines
Steuerprogramms, wie einer Anweisungsliste, an einer
vorbestimmten Position, und zur Erzeugung einer Datei bei
jedem unterteilten Block.
Es ist eine dritte Aufgabe der vorliegenden Erfindung eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
oder eine programmierbare Steuereinrichtung zu schaffen, die
in der Lage sind die Ausführung eines Steuerprogramms
abzuschätzen, durch Vorbereitung eines Testprogramms, dessen
Verarbeitungszeit bereits bekannt ist.
Es ist eine vierte Aufgabe der vorliegenden Erfindung, eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
oder eine programmierbare Steuereinrichtung zu schaffen,
welche in der Lage sind ein Debugging der mittelbar erzeugten
Quelldatei einer höheren Programmiersprache und der
Quelldatei eines tatsächlichen Steuerprogramms durchzuführen,
während beide Quelldateien verglichen bzw. abgeglichen
werden.
Es ist eine fünfte Aufgabe der vorliegenden Erfindung eine
programmierbare Steuereinrichtung zu schaffen, zum
automatischen Ersetzen eines Ausführungscodes, der
gegenwärtig ausgeführt wird, durch einen neuen
Ausführungscode, in Übereinstimmung mit den Differenzdaten,
in welchen nur modifizierte Abschnitte eines Steuerprogramms
beschrieben werden.
Es ist eine sechste Aufgabe der vorliegenden Erfindung, eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
zu schaffen, die in der Lage ist ein Steuerprogramm und ein
Ausführungscode zu vereinigen, durch Komprimieren der
Quelldatei des Steuerprogramms und Einfügung der Quelldatei
in den Ausführungscode und in eine programmierbare Steuerung.
Es ist eine siebte Aufgabe der vorliegenden Erfindung, eine
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
zu schaffen, die in der Lage ist die Zeit zu verkürzen, die
notwendig ist für die sequentielle Anweisungsinterpretation,
wie beim Kompilieren oder der Befehlsinterpretierung, durch
preferentiellen Musterabgleich bzw. Mustervergleich von
Anweisungen, die häufig verwendet werden in einem
Steuerprogramm, mit einem Anweisungsinterpretierabschnitt und
einer programmierbaren Steuerung.
Die programmierbare Steuereinrichtung nach einem Aspekt der
vorliegenden Erfindung umfasst eine Speichereinheit, welche
den Ausführungscode speichert, und einen Universal-
Mikroprozessor, welcher mit einer Beschleunigungseinheit
versehen ist, wie einer Pipeline-Logik (Verkettungslogik)
oder einem Cache, und in dem der Ausführungscode direkt
ausgeführt wird.
Da bei der obigen Erfindung ein Universal-Mikroprozessor
verwendet wird, welcher mit einer Beschleunigungseinheit
versehen ist, und der empfangene Ausführungscode so optimiert
ist, dass der Code ausgeführt wird von der
Beschleunigungseinheit des Universal-Mikroprozessors, ist es
möglich einen sequentiellen Betrieb auszuführen durch
Hochgeschwindigkeitsverarbeitung, wie mit einem Pipeline-
Super-Skalierer (englisch: Pipeline Super-Scaler), oder
umgeordnet bzw. außerhalb der Reihenfolge (out-of-order).
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem Aspekt der vorliegenden
Erfindung umfasst einen Compiler, welcher das Steuerprogramm
kompiliert zu Ausführungscodes, die direkt ausführbar sind
von einem Universal-Mikroprozessor, welcher mit einer
Beschleunigungseinheit versehen ist, wie einer Pipeline-Logik
oder einem Cache.
Nach der obigen Erfindung wird eine Steuerprogramm, das mit
einer sequentiellen Steuersprache beschrieben wird, zu
Ausführungscodes kompiliert, die ausführbar sind von einem
Universal-Mikroprozessor, welcher mit einer
Beschleunigungseinheit versehen ist. Daher ist es möglich
einen sequentiellen Betrieb auszuführen, durch
Hochgeschwindigkeitsverarbeitung wie mit einer Pipeline-
Technik (Verkettungstechnik), Super-Skalierer-Technik oder
eine Verarbeitung außerhalb der Reihenfolge bzw. umgeordnete
Verarbeitung (englisch: out-of-order processing) durch
Übertragen der Ausführungscodes an eine programmierbare
Steuereinrichtung, die mit dem Universal-Mikroprozessor
ausgestattet ist, und darüber hinaus Erhalten von
Ausführungscodes, die verschiedenen Universal-
Mikroprozessoren entsprechen.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem weiteren Aspekt der
vorliegenden Erfindung umfasst eine Steuerprogramm-
Aufteilungseinheit, welche das Steuerprogramm in eine
Vielzahl von Blöcken unterteilt, einen Compiler, welcher alle
oder einige der Blöcke zu Ausführungscodes kompiliert, die
direkt ausführbar sind durch eine programmierbare
Steuereinrichtung, und eine Kommunikationsschnittstelle,
welche die Ausführungscodes an die programmierbare
Steuereinrichtung überträgt.
Da es nach der obigen Ausführung möglich ist, finale
Ausführungscodes zu erhalten durch Unterteilung eines
Steuerprogramms in eine Vielzahl von Blöcken, und durch
Kompilieren des Steuerprogramms für jeden unterteilten Block,
ist es möglich Ausführungscodes zu erzeugen durch
Neukompilierung nur von zu modifizierenden Abschnitten in dem
Steuerprogramm, selbst wenn das Steuerprogramm ein sehr
langes Programm ist.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung gemäß eines weiteren Aspekts der
vorliegenden Erfindung umfasst eine Steuerprogramm-
Aufteilungseinheit, welche das Steuerprogramm in eine
Vielzahl von Blöcken unterteilt, eine Steuerprogramm-
Umwandlungseinheit, welche alle oder einige der Blöcke in ein
Steuerprogramm in einer höheren Sprache umwandelt, wobei
jeder Block beschrieben wird in einer von einem Universal-
Rechner lesbaren höheren Sprache, und einen Compiler, welcher
das ganze oder einen Teil der entsprechenden höheren Sprache
zu Ausführungscodes kompiliert, die direkt ausführbar sind
durch eine programmierbare Steuereinrichtung, für jeden
betroffenen Block.
Gemäß der obigen Ausführung ist ein Steuerprogramm aufgeteilt
in eine Vielzahl von Blöcken, und jeder der unterteilten
Blöcke wird umgewandelt in eine höhere Sprache, die von einem
Universal-Rechner lesbar ist. Darüber hinaus ist es möglich
ein Programm, das beschrieben wird in einer höheren Sprache,
die von einem Universal-Rechner lesbar ist, entsprechend
jedem Block zu kompilieren, um finale Ausführungscodes zu
erhalten. Daher, selbst wenn ein langes Steuerprogramm
verwendet wird, ist es möglich Ausführungscodes zu erzeugen,
indem nur ein in dem Programm zu modifizierender Abschnitt
neu kompiliert wird, und unter Verwendung eines Compilers für
eine konventionelle höhere Sprache, welche von einem
Universal-Rechner lesbar ist.
Ferner wird bevorzugt, dass die programmierbare
Steuereinrichtung ausgerüstet ist mit einem Universal-
Mikroprozessor, der mit einer Beschleunigungseinheit versehen
ist, wie einer Pipeline-Logik und/oder einem Cache.
Dementsprechend wird es möglich einen sequentiellen Betrieb
durch diese Hochgeschwindigkeitsverarbeitung auszuführen, wie
Pipeline-Verarbeitung, Super-Skalierer-Verarbeitung, oder
eine umgeordnete Verarbeitung bzw. Verarbeitung außerhalb der
Reihenfolge (out-of-order).
Ferner wird bevorzugt, dass das Steuerprogramm ein Leiter-
Diagramm (Kontaktplan) oder eine Anweisungsliste ist, die aus
dem Leiter-Diagramm erzeugt wird, und die Steuerprogramm-
Aufteilungseinheit das Steuerprogramm unterteilt in eine
Vielzahl von Blöcken an einer vorbestimmten Sprosse in dem
Leiter-Diagramm, um für jeden betroffenen Block eine
Programmdatei zu erzeugen. Dementsprechend wird es möglich
Programmdateien für jede Serie von Schaltungsblöcken vom
Eingang bis zu Ausgang zu verwalten, und die Häufigkeit eines
Problems zu verringern, wonach die optimale Zuweisung von
Registervariablen, welche beim Kompilieren Eingabe/Ausgabe-
Vorrichtungswerte haben, aufgrund von Aufteilung behindert
wird. Insbesondere ist es möglich die
Registerausnutzungseffizienz durch einen Compiler zu
verbessern, und eine Optimierungsfunktion minimaler
Betriebszuweisung effizient zu verwenden, durch Bilden eines
Blocks aus einer Ansammlung einer Vielzahl von Sprossen.
Ferner wird bevorzugt, dass das Steuerprogramm ein Leiter-
Diagramm oder eine Anweisungsliste ist, die aus dem Leiter-
Diagramm erzeugt wird, und die Steuerprogramm-
Aufteilungseinheit das Steuerprogramm unterteilt in eine
Vielzahl von Blöcken an einer vorbestimmten Sprosse, welche
als Sprungziel für eine Sprunganweisung in dem Leiter-
Diagramm dient, um eine Programmdatei für jeden betroffenen
Block zu erzeugen. Dementsprechend wird die Optimierung eines
Compilers nicht beeinflusst, und es wird möglich eine
unterteilte Programmdatei als eine Unterroutine zu verwalten.
Ferner wird bevorzugt, dass das Steuerprogramm ein Leiter-
Diagramm oder eine Anweisungsliste ist, die erzeugt wird aus
dem Leiter-Diagramm, die Steuerprogramm-Aufteilungseinheit
alle oder einige der Sprossen extrahiert, welche Anweisungen
enthalten für eine gemeinsame Eingabe- oder
Ausgabevorrichtung aus dem Leiter-Diagramm, ein Block
gebildet wird aus allen oder einigen der extrahierten
Sprossen, und eine Programmdatei erzeugt wird für jeden
betroffenen Block. Dementsprechend, wenn es notwendig ist ein
Steuerprogramm für eine spezifische Vorrichtung zu
modifizieren, ist es möglich einen Ausführungscode zu
erhalten, in dem nur eine Programmdatei entsprechend dem zu
modifizierenden Abschnitt verändert und neu kompiliert wird.
Ferner wird bevorzugt, dass eine
Optimierungsfilterungseinheit enthalten ist, welche das
Steuerprogramm rekonstruiert zu einem Optimal-Code-System,
durch Umordnung von Codes, um nicht gerufene Variablen und
redundanten Code auszuschließen, und durch lokale Anordnung
von Anweisungen für eine gemeinsame Eingabe- oder
Ausgabevorrichtung, und ein durch die
Optimierungsfilterungseinheit optimiertes Steuerprogramm wird
anstelle des vorangehenden Steuerprogramms verwendet.
Dementsprechend wird es möglich ein Steuerprogramm zu
schaffen, welches gebildet wird durch für den Compiler
optimierte Codes.
Ferner wird bevorzugt, dass eine Relationstabelle bzw.
Verhältnistabelle enthalten ist, welche ein Testprogramm bzw.
Probenprogramm dessen Verarbeitungszeit bereits bekannt ist,
in Beziehung setzt mit einem Steuerprogramm, das dem
Ausführungscode entspricht, wobei Mittel enthalten sind zur
Grobabschätzung der Verarbeitungszeit der
Sequenzverarbeitungs-Ausführungszeit einer programmierbaren
Steuereinrichtung. Dementsprechend wird es möglich die
Verarbeitungszeit jeder Anweisung in einem Steuerprogramm zu
kennen, was bislang schwierig war.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung gemäß einem weiteren Aspekt der
vorliegenden Erfindung umfasst eine Steuerprogramm-
Umwandlungseinheit, welche das Steuerprogramm umwandelt in
ein höheres Steuerprogramm, das beschrieben wird durch eine
höhere Sprache, welche von einem Universalrechner lesbar ist,
eine Debugging-Code-Erzeugungseinheit, welche ein Debugging-
Steuerprogramm erzeugt durch Einfügung einer betroffenen
Zeilennummer in einen Abschnitt entsprechend jeder Zeile,
welche die Anweisungsliste in einem Quellcode bildet, der das
Steuerprogramm in höherer Sprache bildet, und eine Debugging-
Ausführungseinheit, welche jede Zeile der Anweisungsliste in
Beziehung setzt mit dem Ausführungsteil des Steuerprogramms
in höherer Sprache und diese anzeigt durch schrittweise
Ausführung des Debugging-Steuerprogramms.
Gemäß der obigen Ausführung wird es möglich eine
Anweisungsliste schrittweise auszuführen, und den
Ausführungsteil des Steuerprogramms in höherer Sprache, das
erhalten wird durch Umwandlung der Anweisungslistenanzeige,
in dem die Anweisungsliste in Beziehung gesetzt wird mit dem
Ausführungsteil, und der Ausführungsteil angezeigt wird.
Daher, ebenso wie im Fall einer programmierbaren
Steuereinrichtung, welche entsprechend einem Ausführungscode
betrieben werden soll, der durch Kompilieren einer
Anweisungsliste erhalten wird, wird es möglich Operationen
auf der Schrittausführungsebene einer durch einen Benutzer
beschriebenen Anweisungsliste zu bestätigen.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem weiteren Aspekt der
vorliegend Erfindung umfasst eine erste Speichereinheit,
welche den Ausführungscode speichert, eine zweite
Speichereinheit, welche die Daten speichert für die Differenz
zwischen dem Ausführungscode, der in der ersten
Speichereinheit gespeichert ist, und einem neuen
Ausführungscode, einen Mikroprozessor, in dem der
Ausführungscode direkt ausgeführt wird, und eine Patch-
Verarbeitungseinheit bzw. Korrekturverarbeitungseinheit,
welche einen gegenwärtig ausgeführten Ausführungscode zu
einem neuen Ausführungscode verändert, und kontinuierlich den
veränderten Ausführungscode zu einer vorbestimmten Zeit
ausführt.
Gemäß der obigen Ausführung, in Übereinstimmung mit den Daten
für die Differenz zwischen dem Ausführungscode, der
kontinuierlich ausgeführt wird, und dem neuen
Ausführungscode, wird ein gegenwärtig ausgeführter
Ausführungscode geändert in einen neuen Ausführungscode, zu
einer vorbestimmten Zeit, und der geändert Ausführungscode
wird kontinuierlich ausgeführt. Daher, selbst wenn es
notwendig wird Ausführungscodes zu ändern, ist es möglich nur
einen geänderten Binärcode unter den Ausführungscodes zu
korrigieren, und ihn zu einem neuen Ausführungscode zu
ändern, und eine neue sequentielle Operation fortzusetzen,
ohne Unterbrechung des Ausführungszustandes einer
programmierbaren Steuereinrichtung.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem weiteren Aspekt der
vorliegenden Erfindung umfasst eine Speichereinheit, welche
den Ausführungscode speichert, und einen Mikroprozessor, in
dem der Ausführungscode direkt auszuführen ist. Der
Ausführungscode enthält Binärdaten, die erzeugt werden durch
Komprimierung des Steuerprogramms.
Nach der obigen Ausführung werden ein Steuerprogramm, das
notwendig ist für die Entwicklung oder das Debugging, und
Ausführungscodes vereinigt und in einer programmierbaren
Steuereinrichtung gespeichert. Daher, wenn das Steuerprogramm
verloren geht, oder das Steuerprogramm direkt betrieben wird
auf einer Arbeitsplatz-gebundenen, programmierbaren
Steuereinrichtung, ist es möglich das Steuerprogramm aus den
Ausführungscodes zu holen.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem weiteren Aspekt der
vorliegenden Erfindung umfasst eine Komprimierungseinheit,
welche das Steuerprogramm komprimiert, um eine komprimierte
Datei zu erzeugen, eine Codeumwandlungseinheit, welche
komprimierte Daten erzeugt, die erhalten werden durch
Umwandlung der komprimierten Datei in das Codesystem des
Steuerprogramms, und einen Compiler zur Kombinierung des
Steuerprogramms mit den komprimierten Daten und zum
Kompilieren des Programms und der Daten zu Codes, die direkt
ausführbar sind durch eine programmierbare Steuereinrichtung.
Gemäß der obigen Ausführung werden ein Steuerprogramm, das
notwendig ist für die Entwicklung oder das Debugging, und
Ausführungscodes, die tatsächlich ausgeführt werden sollen,
vereinigt, um einen neuen Ausführungscode zu erzeugen. Daher,
wenn das Steuerprogramm verloren geht oder das Steuerprogramm
direkt betrieben wird aus einer Arbeitsplatz-gebundenen,
programmierbaren Steuereinrichtung, wird es möglich das
Steuerprogramm aus den Ausführungscodes zu holen.
Die programmierbare Steuereinrichtung nach einem weiteren
Aspekt der vorliegenden Erfindung umfasst eine
Speichereinheit, welche das Steuerprogramm speichert, eine
Anweisungszähleinheit, welche die Auftrittshäufigkeit jeder
für das Steuerprogramm verwendeten Anweisung zählt, eine
Erzeugungseinheit für Mustervergleichstabellen, welche eine
Mustervergleichtabelle erzeugt, in welcher Anweisungen
aufgelistet sind, beginnend mit einer Anweisung, die in
Übereinstimmung mit den von der Anweisungszähleinheit
gezählten Ergebnissen am häufigsten auftritt, und eine
Interpretationseinheit, welche das Steuerprogramm ausführt
während sie ein Mustervergleich des Steuerprogramms
durchführt, in der Reihenfolge der Anweisungen, die in der
Mustervergleichstabelle aufgelistet sind, und das
Steuerprogramm interpretiert zu Ausführungscodes, die von der
programmierbaren Steuereinrichtung direkt ausführbar sind.
Gemäß der obigen Ausführung werden Anweisungen in einem
Steuerprogramm einem Mustervergleich unterzogen, beginnend
mit einer Anweisung, die am häufigsten auftritt, wenn das
Steuerprogramm interpretiert wird zu Ausführungscodes. Daher
ist es möglich schnell einen Ausführungscode zu finden, der
geeignet ist für jede Anweisung des Steuerprogramms, wenn das
Steuerprogramm interpretiert wird.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einem weiteren Aspekt der
vorliegenden Erfindung umfasst eine Anweisungszähleinheit,
welche die Auftrittshäufigkeit jeder für das Steuerprogramm
verwendeten Anweisung zählt, eine Erzeugungseinheit für
Mustervergleichstabellen, welche eine Mustervergleichstabelle
erzeugt, in der Anweisungen aufgelistet sind, beginnend mit
einer Anweisung, die am häufigsten auftritt, in
Übereinstimmung mit den Resultaten, die von der
Anweisungszähleinheit gezählt wurden, und einem Compiler,
welcher das Steuerprogramm kompiliert zu Codes, die direkt
ausführbar sind von der programmierbaren Steuereinrichtung,
während das Steuerprogramm einem Mustervergleich unterzogen
wird, in der Reihenfolge der Anweisungen, die in der
Mustervergleichstabelle aufgelistet sind.
Gemäß der obigen Ausführung, da Anweisungen einem
Mustervergleich unterzogen werden, beginnend mit einer
Anweisung, welcher am häufigsten auftritt in einem
Steuerprogramm, wenn das Steuerprogramm zu Ausführungscodes
kompiliert wird, ist es möglich schnell einen Ausführungscode
zu finden, der geeignet ist für jede Anweisung des
Steuerprogramms, wenn das Steuerprogramm kompiliert wird.
Die Vorrichtung zur Unterstützung der Programmentwicklung
nach einem weiteren Aspekt der vorliegenden Erfindung umfasst
jeder der oben erwähnten Vorrichtungen zur Unterstützung der
Steuerprogrammentwicklung nach der vorliegenden Erfindung in
beliebiger Kombination.
Nach der obigen Erfindung ist es möglich Funktionen der
obigen Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung und jene der obigen
programmierbaren Steuereinrichtung mit einer Software
programmierbaren Steuereinrichtung zu verwirklichen, die es
möglich macht sowohl ein Steuerprogramm zu entwickeln als
auch eine sequentielle Verarbeitung auszuführen.
Weitere Aufgaben und Merkmale dieser Erfindung gehen aus der
folgenden Beschreibung hervor, unter Bezugnahme auf die
begleitenden Zeichnungen.
Kurze Beschreibung der Zeichnungen.
Fig. 1 ist eine Blockdiagramm, das eine schematische
Konfiguration einer programmierbaren
Steuereinrichtung der ersten Ausführung zeigt:
Fig. 2 ist eine Veranschaulichung zur Erklärung der
Erzeugung eines Ausführungscodes in einer
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der ersten Ausführung;
Fig. 3 ist eine Veranschaulichung zur Erklärung der
Erzeugung eines Ausführungscodes, gefolgt von einer
Aufteilung eines Steuerprogramms, in einer
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung;
Fig. 4 ist eine Abbildung, welche ein Leiter-Diagramm bzw.
einen Kontaktplan zeigt;
Fig. 5 ist eine Tabelle, welche die Beziehung zwischen der
Anzahl von Schritten und einer aufgeteilten Datei
in der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung
zeigt;
Fig. 6 ist ein Flussdiagramm, das die Verarbeitung nach
dem Sprossenaufteilungsverfahren in der Vorrichtung
zur Unterstützung der Steuerprogrammentwicklung der
zweiten Ausführung zeigt;
Fig. 7 ist eine Tabelle, welche die Beziehung zwischen
einem Sprungziel-Markennamen bzw. Sprungziel-
Labelname und einer aufgeteilten Datei in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung
zeigt;
Fig. 8 ist ein Flussdiagramm, das die Verarbeitung durch
das Sprungziel-Aufteilungsverfahren in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung
zeigt;
Fig. 9 ist ein Flussdiagramm, das die Verarbeitung durch
das Einheitsaufteilungsverfahren in der Vorrichtung
zur Unterstützung der Steuerprogrammentwicklung der
zweiten Ausführung zeigt;
Fig. 10 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes, wenn ein Steuerprogramm
modifiziert werden muss in der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
zweiten Ausführung;
Fig. 11 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes, gefolgt von einer
Aufteilung eines Steuerprogramms und einer
Umwandlung des Programms in eine höhere
Programmiersprache, in einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
dritten Ausführung;
Fig. 12 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes, wenn ein Steuerprogramm,
das einmal umzuwandeln ist in eine höhere
Programmiersprache, modifiziert werden muss in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung;
Fig. 13 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes, wenn ein Wandler ein
Steuerprogramm aufteilt, und das Programm in eine
höhere Programmiersprache umwandelt, in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung;
Fig. 14 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes, wenn ein Steuerprogramm
modifiziert werden muss, wenn ein Wandler das
Steuerprogramm unterteilt und das Programm
umwandelt in eine höhere Programmiersprache, in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung;
Fig. 15 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
vierten Ausführung;
Fig. 16 ist eine Tabelle, welche Probeprogramme bzw.
Testprogramme und deren Größe zeigt, und
Verarbeitungszeiten in einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
fünften Ausführung;
Fig. 17 ist eine Abbildung zur Erklärung der
Entwicklungsumgebung und der Ausführungsumgebung
eines Steuerprogramms in einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
sechsten Ausführung;
Fig. 18 ist eine Abbildung zur Erklärung des Debugging bzw.
der Fehlerbeseitigung der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
sechsten Ausführung;
Fig. 19 ist eine Abbildung zur Erklärung einer
Probenverfolgungsfunktion (englisch: Sampling
Tracing Function) in der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
sechsten Ausführung;
Fig. 20 ist eine Abbildung zur Erklärung einer
Statushaltefunktion in der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
sechsten Ausführung;
Fig. 21 ist eine Abbildung zur Erklärung eines Debugging-
Verfahrens in der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der sechsten Ausführung;
Fig. 22A und 22B sind Abbildungen zur Erklärung der Ersetzung eines
Ausführungscodes unter Verwendung eines binären
Patchs in einer programmierbaren Steuereinrichtung
der siebten Ausführung;
Fig. 23 ist eine Abbildung zur Erklärung der Erzeugung
eines Ausführungscodes in einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
achten Ausführung;
Fig. 24 ist eine Abbildung, welche eine Quelldatei zeigt,
die der Inhalt eines Steuerprogramms in der
Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der achten Ausführung
ist;
Fig. 25 ist eine Abbildung, welche einen Ausdruck in der
Sprache C zeigt, der erhalten wird durch Umwandlung
einer komprimierten Datei in der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der
achten Ausführung;
Fig. 26 ist eine Abbildung zur Erklärung des Kompilierens
in einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der neunten Ausführung;
und
Fig. 27 ist ein Flussdiagramm, das den Kompilierungsvorgang
der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der neunten Ausführung
zeigt.
Im folgenden werden unter Bezugnahme auf die begleitenden
Zeichnungen bevorzugte Ausführungen einer programmierbaren
Steuereinrichtung und einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der vorliegenden Erfindung
ausführlich beschrieben. Die vorliegende Erfindung ist jedoch
nicht auf diese Ausführungen beschränkt.
Als erstes wird eine programmierbare Steuereinrichtung und
eine Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung nach einer ersten Ausführung
beschrieben. In der programmierbaren Steuereinrichtung der
ersten Ausführung ist ein Universal-Mikroprozessor montiert,
welcher aufgebaut ist gemäß Beschleunigungstechniken. Die
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
der ersten Ausführung kompiliert ein Steuerprogramm, das
beschrieben wird in einer sequentiellen Verarbeitungssprache,
wie eine Anweisungsliste, und erzeugt Ausführungscodes, die
direkt ausführbar sind durch den Universal-Mikroprozessor.
Fig. 1 ist ein Blockdiagramm, das eine schematische
Konfiguration der programmierbaren Steuereinrichtung der
ersten Ausführung zeigt. Die programmierbare
Steuereinrichtung 10 umfasst einen Universal-Mikroprozessor
11 zur Ausführung einer sequentiellen Verarbeitung in
Übereinstimmung mit Ausführungscodes, einen Speicher 14 zur
Speicherung von Ausführungscodes und dergleichen, eine
Kommunikationsschnittstelle 16 zum Empfangen einer Binärdatei
und dergleichen, die als Ausführungscodes dient, aus einer
Vorrichtung 20 zur Unterstützung der
Steuerprogrammentwicklung, und zur Übertragung eines
Programms und dergleichen in dem Speicher 14 an eine externe
Einheit je nach Notwendigkeit, abhängig von der Angabe des
Universal-Mikroprozessors 11, und einen Eingabe/Ausgabe-
Steuerabschnitt 15 zur Eingabe eines Signals aus einer
externen Eingabevorrichtung 21, und zur Ausgabe einer
Steuersignals an eine externe Ausgabevorrichtung.
Insbesondere, wie in Fig. 1 gezeigt, ist der Universal-
Mikroprozessor 11 ausgestattet mit einem CPU-Kern 12 zur
Durchführung der grundlegenden Arithmetik-Verarbeitung nach
gespeicherten Programmen oder dergleichen, und einem
Abschnitt 13, der Beschleunigungs-Techniken implementiert.
Der Abschnitt 13, der Beschleunigungs-Techniken
implementiert, enthält einen Anweisungs- bzw. Befehls-Cache,
einen Daten-Cache, einen Sekundär-Cache, eine Pipeline-Logik
und eine Skaliererlogik (englisch: Scaler Logic). Das
bedeutet, dass der Universal-Mikroprozessor 11 in der Lage
ist nicht nur eine Pipeline-Verarbeitung und Super-Skalierer-
Verarbeitung durchzuführen, sondern auch eine
Beschleunigungsverarbeitung, wie eine Verarbeitung außerhalb
der Reihenfolge bzw. umgeordnete Verarbeitung,
Verzweigungsabschätzung bzw. Branching-Abschätzung und eine
spekulative Ausführung. Im Fall des in Fig. 1 gezeigten
Universal-Mikroprozessors 11, ist der Abschnitt 13 zur
Verwirklichung von Beschleunigungstechniken von dem CPU-Kern
12 getrennt. Es gibt jedoch auch eine Konfiguration, bei
welcher sich eine Vielzahl von Funktionalblöcken des
Abschnitts 13 zur Verwirklichung von Beschleunigungstechniken
im CPU-Kern 12 befinden.
Darüber hinaus wird der Speicher 14 verwendet für die
Arithmetik-Verarbeitung durch den Universal-Mikroprozessor
11, und besteht aus einem Arbeitsspeicher zum Laden von
momentanen Ausführungsteilen oder der Gesamtheit der
Ausführungscodes, einem ROM, in welchem ein BIOS (englisch:
Basic Input Output System, d. h. Datei-Ein/-Ausgabesystem)
aufgezeichnet ist, und einem nichtflüchtigen Speicher, wie
einem Flash-Speicher zur Speicherung jedes Ausführungscodes.
Obwohl es nicht abgebildet ist, kann die programmierbare
Steuereinrichtung 10 mit einer Sekundärspeichereinheit
ausgerüstet sein, wie einem Magnetplatten-Laufwerk oder einer
Speicherkarte zur Speicherung von Ausführungscodes,
Programmen oder Daten.
Das bedeutet, dass die Konfiguration einer konventionellen
programmierbaren Steuereinrichtung angewendet werden kann auf
die in Fig. 1 gezeigte programmierbare Steuereinrichtung 10,
außer dass ein Mikroprozessor, der aus einem konventionellen
ASIC besteht, ersetzt wird durch einen Universal-
Mikroprozessor, der mit Beschleunigungsmitteln versehen ist.
Somit, damit die programmierbare Steuereinrichtung 10 eine
sequentielle Verarbeitung ausführt, sind Ausführungscodes
notwendig, die von dem Universal-Mikroprozessor direkt
ausführbar sind, welche von der Vorrichtung 20 zur
Unterstützung der Steuerprogrammentwicklung erzeugt werden.
Die Vorrichtung 20 zur Unterstützung der
Steuerprogrammentwicklung kann verwirklicht werden durch die
gleiche Konfiguration wie ein Universal-Rechner-System, wie
ein PC, solange die Vorrichtung 20 zur Unterstützung der
Steuerprogrammentwicklung ausgestattet ist mit einer
Schnittstelle, die mit der programmierbaren Steuereinrichtung
10 kommunizieren kann.
Insbesondere ist die Vorrichtung 20 zur Unterstützung der
Steuerprogrammentwicklung ausgerüstet mit einem Compiler zum
Lesen der Datei eines Steuerprogramms, das beschrieben wird
durch ein Leiter-Diagramm (Kontaktplan) oder eine
Anweisungsliste, und zum Kompilieren des Codesystems der
Lesedatei zu Ausführungscodes, die von dem Universal-
Mikroprozessor 11 direkt ausführbar sind. Fig. 2 ist eine
Abbildung zur Beschreibung der Erzeugung eines
Ausführungscodes durch die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der ersten Ausführung.
Wie in Fig. 2 gezeigt, erzeugt die Vorrichtung 20 zur
Unterstützung der Steuerprogrammentwicklung einen
Ausführungscode 9 durch Eingabe eines Steuerprogramms 1, das
beschrieben wird durch eine sequentielle
Verarbeitungssprache, wie ein Leiter-Diagramm (Kontaktplan)
oder eine Beschreibungsliste, welches Steuerprogramm bereits
entwickelt wurde oder neu entwickelt wurde, in einen Compiler
100. Obwohl der Compiler 100 durch ein Softwareprogramm oder
durch Hardware-Logik verwirklicht sein kann, ist es notwendig
einen Ausführungscode zu erzeugen, um die Funktionen des
Universal-Mikroprozessors 11 maximal herauszustellen, durch
Verwendung einer Technik zur Optimierung des obigen
Universal-Mikroprozessors.
Wie oben beschrieben ist es möglich die programmierbare
Steuereinrichtung der ersten Ausführung zu verwirklichen,
indem man den Universal-Mikroprozessor 11 verwendet, welcher
vergleichsweise kostengünstig und gut verfügbar ist, ohne
Entwicklung oder Entwurf eines ausschließlichen
Mikroprozessors, wie eines ASIC, und es ist gleichzeitig
möglich die sequentielle Verarbeitung mit höherer
Geschwindigkeit durchzuführen, in Übereinstimmung mit der
Beschleunigungstechnik des Universal-Mikroprozessors 11.
Darüber hinaus ermöglicht die Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der ersten Ausführung die
Gewinnung eines Ausführungscodes 9, der direkt ausführbar ist
durch den obigen Universal-Mikroprozessor 11, durch
Kompilieren eines Steuerprogramms, das beschrieben wird in
einer sequentiellen Verarbeitungssprache. Daher ist es
möglich eine programmierbare Steuereinrichtung, in welcher
der Universal-Mikroprozessor 11 montiert ist, dazu zu
bringen, eine sequentielle Verarbeitung durchzuführen, durch
Übertragung des Ausführungscodes 9 an die Steuereinrichtung
und effektiv die Ressourcen vergangener Steuerprogramme zu
nutzen. Darüber hinaus ist es möglich den Ausführungscode 9
zu gewinnen durch Ersetzen eines Compilers 100, der verwendet
werden soll zwischen verschiedenen programmierbaren
Steuereinrichtungen, in welchen verschiedene Arten von
Universal-Mikroprozessoren 11 montiert sind. Daher ist es
nicht notwendig ein Steuerprogramm für jeden Hersteller oder
jedes Modell einer programmierbaren Steuereinrichtung zu
entwickeln und man kann auf gleiche Weise bzw. uniform
Steuerprogramme verwalten, welche eine sequentielle
Verarbeitung gleichen Inhalts beschreiben, und die
Entwicklungszeit und Debugging-Zeit verringern.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung wird unten
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung ermöglicht
die Unterteilung eines Steuerprogramms, das mit einer
sequentiellen Verarbeitungssprache, wie einer
Anweisungsliste, beschrieben wird, in eine Vielzahl von
Programmdateien an einer vorbestimmten Position, und
korrigiert und kompiliert nur jede der aufgeteilten
Programmdateien.
Fig. 3 ist eine Abbildung zur Beschreibung der Erzeugung
eines Ausführungscodes, gefolgt von der Aufteilung eines
Steuerprogramms durch die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung. Wie in Fig.
3 gezeigt, unterteilt die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung ein Steuerprogramm 1, das mit einer
sequentiellen Verarbeitungssprache beschrieben wird, wie
einem Leiter-Diagramm (Kontaktplan) oder einer
Anweisungsliste, welches Programm bereits entwickelt oder neu
entwickelt ist, und mit dem herkömmlich als eine
Programmdatei umgegangen wird, in eine Vielzahl von
Teilprogrammen 3-1 bis 3-N, in Übereinstimmung mit einem zu
beschreibenden Aufteilungsalgorithmus.
Nun wird der Aufteilungsalgorithmus beschrieben. Ein
Steuerprogramm wird aufgeteilt, um die Zeit zu verkürzen,
welche für die Neukompilierung notwendig ist, wenn ein
Steuerprogramm modifiziert werden soll. Die Aufteilung sollte
jedoch nicht so durchgeführt werden, dass sie stark die
Optimierung behindert, welche von dem Compiler 100
durchgeführt werden soll. Wenn ein Steuerprogramm unterteilt
wird, ist es unmöglich einen vollkommen optimalen
Ausführungscode zu erhalten im Vergleich zur Kompilierung
eines gar nicht unterteilten Steuerprogramms. Daher ist es
notwendig, einen Code auszugeben, der einem vollständig
optimalen Ausführungscode nahe kommt, d. h. einen Code zur
Minimierung der Verschlechterung eines Optimierungsniveaus,
wenn ein Steuerprogramm unterteilt wird.
Daher werden für den Aufteilungsalgorithmus die folgenden
drei Verfahren betrachtet. Das heißt, (1) ein Verfahren zur
Durchführung einer Aufteilung an einer Lücke zwischen
Sprossen (im folgenden als Sprossenaufteilungsverfahren
bezeichnet), (2) ein Verfahren zur Durchführung einer
Aufteilung an einer Unterroutine, welche als Sprungziel dient
(im folgenden als Sprungziel-Aufteilungsverfahren
bezeichnet), und (3) ein Verfahren zur Durchführung einer
Aufteilung der Zusammenstellung von Eingabevorrichtungen oder
Ausgabevorrichtungen, die bei jeder Einheit zusammen
verwendet werden (im folgenden als
Einheitenaufteilungsverfahren bezeichnet).
Da diese drei Arten von Aufteilungsalgorithmen auf dem
Ausdruck eines Leiter-Diagramms bzw. Kontaktplans beruhen,
wird zunächst unten ein Leiter-Diagramm beschrieben. Fig. 4
ist eine Abbildung, die ein Leiter-Diagramm bzw. Kontaktplan
zeigt. In Fig. 4 entsprechen Anweisungen CM1 bis CM6 den
Befehlen, die für sequentielle Operationen verwendet werden.
Insbesondere, in Fig. 4, bezeichnen die Anweisung CM1, CM2
und CM5 Eingaben, CM3 und CM6 bezeichnen Ausgaben, und CM4
bezeichnet eine arithmetische Verarbeitung. Darüber hinaus
wird im Fall eines Leiter-Diagramms eine Ansammlung von
Anweisungen von der Eingabe zur Ausgabe als ein
Schaltungsblock ausgedrückt, der als eine Sprosse bezeichnet
wird.
Fig. 4 zeigt zwei Sprossen R1 und R2. Darüber hinaus ist die
Anzahl von Schritten, welche die Verarbeitungszeit einer
Anweisung durch eine spezifische Einheit zeigen, für jede
Sprosse angegeben. Im Fall der Sprosse R1 in Fig. 4 ist die
Zahl der Schritte am Anfang der nächsten Sprosse R2 auf fünf
eingestellt, da ein Schritt notwendig ist für einen
Lesevorgang von Daten an eine Adresse, die in ein Eingangs-
Fort zugewiesen ist, ein Schritt ist notwendig zum Schreiben
von Daten in eine Adresse, die einem Ausgangs-Port zugewiesen
ist, und zwei Schritte sind notwendig für eine MOV-Anweisung
zur Bewegung von Daten zwischen Adressen.
Das bedeutet, dass im Fall der Sprosse R1 Speicher X1 und X2
verwendet werden als Eingabevorrichtungen, und ein Speicher
Y1 wird verwendet als Ausgabevorrichtung. Darüber hinaus wird
im Fall der Sprosse R2 ein Speicher X1 verwendet als eine
Eingabevorrichtung, und ein Speicher Y10 wird verwendet als
Ausgabevorrichtung.
Das Sprossenaufteilungsverfahren ist ein Verfahren zur
Unterteilung eines Steuerprogramms, das durch ein Leiter-
Diagramm bzw. Kontaktplan ausgedrückt wird, an einer Lücke
zwischen Sprossen. Durch Unterteilung des Steuerprogramms an
einer Lücke zwischen Sprossen ist es möglich, die Anordnung
von Vorrichtungen an ein Register effektiv zu verwenden, und
die Verschlechterung des Optimierungseffekts aufgrund der
Unterteilung bzw. Aufteilung zu steuern.
Es ist möglich eine sequentielle Verarbeitung als eine
Ansammlung von Sprossen zu betrachten, und die
Sprossenverarbeitung besteht darin, eine sequentielle
Operation durchzuführen, die der Information einer
Eingabevorrichtung gegeben wird, und den Wert einer
Ausgabevorrichtung zu erhalten. Daher, um die sequentielle
Arbeit zu beschleunigen, ist es notwendig die Verarbeitung in
jeder Sprosse zu beschleunigen. Darüber hinaus, wenn man eine
Sprosse an ihrer Mitte unterteilt, ist es unmöglich
Operationsergebnisse bis zur Mitte von Sprossen, die in einem
Register eingestellt sind, effektiv zu verwenden. Daher wird
bevorzugt, ein Steuerprogramm an einer Lücke zwischen
Sprossen aufzuteilen.
Daher wird eine Hochgeschwindigkeitsoperation verwirklicht,
indem unter Verwendung des Compilers 100 soviel Eingabe- und
Ausgabevorrichtungen wie möglich in einem Register angeordnet
werden. Das bedeutet, es ist notwendig ein Register effektiv
auszunutzen, durch Verwendung der Optimierungsfunktion eines
Compilers.
Wenn jedoch ein Steuerprogramm an jeder Lücke zwischen
Sprossen minutiös aufgeteilt wird, wird der Optimierungsgrad
verringert, da die Optimierungsfunktion zur Ausgabe eines
ungeordneten Codes (out-of-ordered code) nicht verwendet wird
von dem Compiler 100, aufgrund des Optimalanweisungs-
Scheduling (Optimalanweisungs-Planung), welche eine der
Beschleunigungstechniken ist, um Ausführungscodes des
Universal-Mikroprozessors, der für die erste Ausführung
beschrieben wird, zu erzeugen.
Somit wird bevorzugt, dass die unterteilten Steuerprogramme,
d. h. die Teilprogramme 3-1 bis 3-N jeweils eine Größe
gewissen Grads haben. Daher wird eine Aufteilungsposition
nach einer spezifizierten Anzahl von Schritten angegeben. Zum
Beispiel wird ein Steuerprogramm unterteilt an einer Lücke
zwischen Sprossen bei jedem vielfachen von 100 Schritten.
Wenn die Position eines Schritts eines vielfachen von 100
Schritten keine Lücke zwischen Sprossen ist, wird ein
Steuerprogramm unterteilt an einer Lücke zwischen Sprossen,
welche unmittelbar jener Position folgen.
Die Teilprogramme 3-1 bis 3-N, welche auf diese Weise erzeugt
werden, werden jeweils verwaltet als individuelle
Programmdateien, so dass diese Teilprogramme unabhängig
kompiliert werden können. Fig. 5 ist eine Tabelle, welche das
Verhältnis zwischen der Zahl von Schritten und den
aufgeteilten Dateien zeigt. Wie in Fig. 5 gezeigt ist jedes
Teilprogramm ausgestattet mit einem Teildateinamen, und
darüber hinaus ist die Anzahl von Schritten, welche einer
Sprosse des ursprünglichen Steuerprogramms 1 entspricht,
jeder Datei zugewiesen.
Wenn das Steuerprogramm korrigiert werden muss, wird das
Steuerprogramm 1 vor der Aufteilung zum Beispiel in einem
Leiter-Diagramm korrigiert. Die obige Tabelle wird effektiv
verwendet, um die Zahl von Schritten an einem tatsächlich
korrigierten Teil des Steuerprogramms 1 zu extrahieren, und
den Dateinamen eines Teilprogramms zu spezifizieren, das den
korrigierten Teil enthält.
Nun wird ein spezifischer Verarbeitungsfluss des
Sprossenaufteilungsverfahrens im folgenden beschrieben. Fig.
6 ist ein Flussdiagramm, welches die Verarbeitung des
Sprossenaufteilungsverfahrens zeigt. In Fig. 6 liest ein
Unterteilungsmittel, wie ein Computerprogramm zur Ausführung
des Sprossenaufteilungsverfahrens, eine Zeile einer
Anweisungsliste (im folgenden als IL bezeichnet, von
englisch: Instruction List), welche als Steuerprogramm 1
dient, insbesondere einer IL-Datei, welche durch Umwandlung
eines Leiter-Diagramms bzw. Kontaktplans erhalten wird
(Schritt S101). Wenn die eingelesen Zeile das Ende der IL-
Datei anzeigt, ist die Verarbeitung abgeschlossen (Antwort
"Ja" in Schritt S102).
Wenn die jedoch die eingelesene Zeile nicht das Ende der
IL-Datei anzeigt (Antwort "Nein" in Schritt S102), sondern die
Zeile einer bestimmten Anzahl von Schritten oder mehr
entspricht und an einer Lücke zwischen Sprossen liegt
(Antwort "Ja" in Schritt S103), wird eine neue Datei erzeugt
und auf die gegenwärtige Datei eingestellt (Schritt S104). Ob
eine Zeile an einer Lücke zwischen Sprossen liegt oder nicht,
wird in Übereinstimmung mit der Art einer Anweisung bestimmt.
Das bedeutet, eine Position, an welcher eine einzugebene
Anweisung unmittelbar nach einer auszugebenden Anweisung
auftritt, dient als Lücke zwischen Sprossen. Darüber hinaus
wird eine neu zu erzeugende Datei mit einem eindeutigen Namen
versehen.
Dann wird die eingelesene Zeile in eine bereits eingestellte
momentane Datei geschrieben (Schritt S105), um die
Verarbeitung in und nach Schritt S101 erneut zu wiederholen.
Das bedeutet, dass wenn die eingelesene Zeile nicht an einer
Lücke zwischen Sprossen liegt (Antwort "Nein" in Schritt
S103), oder wenn die eine Zeile nicht eine bestimmte Zahl von
Schritten erreicht, wird die eine Zeile darauf in die
gegenwärtige Datei geschrieben. Dadurch wird eine Datei an
einer Lücke zwischen Sprossen nach jedem Bereich einer
vorbestimmten Anzahl von Schritten erzeugt. Diese Datei ist
die unterteilte Datei, welche entsprechend dem obigen
Aufteilungsprogramm erzeugt wird.
Das Sprungziel-Aufteilungsverfahren ist ein Verfahren zur
Aufteilung eines Steuerprogramms an einer Lücke zwischen
Sprossen, ausgedrückt durch das obige Leiter-Diagramm, und
auch an einer Unterroutine, welche als Sprungziel einer
Sprunganweisung dient. Dadurch ist es möglich die Optimierung
zu berücksichtigen, welche die Sprunganweisung beeinflusst.
Fig. 7 ist eine Tabelle, welche das Verhältnis zwischen einem
Sprungziel-Markennamen (Label Name) und einer unterteilten
Datei zeigt. Wie in Fig. 7 gezeigt, ist jedes Teilprogramm
versehen mit einem Teildateinamen, und ein Markennamen bzw.
Label-Namen, der das Sprungziel einer Sprunganweisung zeigt,
ist jeder Datei zugewiesen.
Die in Fig. 7 gezeigte Tabelle wird ähnlich der in Fig. 5
gezeigten Tabelle effektiv dafür verwendet, den Markennamen
einer Unterroutine zu extrahieren, die einen tatsächlich
korrigierten Teil im Steuerprogramm 1 enthält, und den
Dateinamen eines Teilprogramms, das der Unterroutine
entspricht zu spezifizieren.
Nun wird eine spezifischer Verarbeitungsfluss des Sprungziel-
Aufteilungsverfahrens im folgenden beschrieben. Fig. 8 ist
ein Flussdiagramm, das die Verarbeitung des Sprungziel-
Aufteilungsverfahrens zeigt. In Fig. 8 liest zunächst das
Aufteilungsmittel eines Computerprogramms oder dergleichen
zur Ausführung des Sprungziel-Aufteilungsverfahrens eine
Zeile einer IL, welche als Steuerprogramm 1 dient,
insbesondere eine IL-Datei, die durch Umwandlung eines
Leiter-Diagramms erhalten wird (Schritt S201). Wenn die eine
gelesene Zeile das Ende der IL-Datei anzeigt, ist die
Verarbeitung abgeschlossen (Antwort "Ja" in Schritt S202).
Wenn jedoch die eingelesene Zeile nicht das Ende der IL
anzeigt (Antwort "Nein" in Schritt S202), sondern eine Lücke
anzeigt zwischen Sprossen und eine Sprungzielmarke (Antwort
"Ja" in Schritt S203), wird eine neue Datei erzeugt und auf
eine momentane Datei eingestellt (Schritt S204). Ein
Verfahren zur Bestimmung, ob die Zeile eine Lücke zwischen
Sprossen anzeigt, und ein Verfahren, um über einen Dateinamen
zu entscheiden, sind gleich wie im Fall des obigen Sprossen-
Aufteilungsverfahrens.
Dann wird die eine gelesene Zeile in eine bereits
eingestellte gegenwärtige Datei geschrieben (Schritt S205),
und die Verarbeitung wiederholt sich erneut, beginnend mit
Schritt S201. Das bedeutet, wenn die eingelesene Zeile keine
Lücke zwischen Sprossen oder den Anfang einer Sprungziel-
Unterroutine anzeigt, wird die eine Linie in der Folge in die
momentane Datei geschrieben. Dadurch wird eine Datei erzeugt,
während der Markenname bzw. Label-Name eines Sprungsziels
angehängt wird. Diese Datei ist eine unterteilte Datei, die
entsprechend erzeugt wird für jedes oben beschriebene
Teilprogramm.
Das Einheitenaufteilungsverfahren wird unten beschrieben. Im
Falle von sequentieller Verarbeitung sind eine verwendete
Eingabevorrichtung und Ausgabevorrichtung im allgemeinen
verschieden für eine Vielzahl von Einheiten, welche eine
Fabrikationslinie bilden. Die Änderung von Steuerprogrammen,
die an einer Herstellungsstätte durchgeführt wird, hat die
Charakteristik, dass die Änderung stark abhängt von einer
Einheit, wie eine Änderung von Eingabevorrichtungen, die mit
der Einheit verbunden sind. Daher werden im Fall des
Einheitenaufteilungsverfahrens Sprossen entsprechend jeder
Einheit zusammengestellt und als eine Datei ausgegeben.
Nun wird ein spezifischer Verarbeitungsfluss des
Einheitenaufteilungsverfahrens beschrieben. Fig. 9 ist ein
Flussdiagramm, das die Verarbeitung des
Einheitenaufteilungsverfahrens zeigt. In Fig. 9 werden
zunächst Sprossen, welche eine Lücke zwischen Sprossen
anzeigen, und die sequentielle Verarbeitung in der gleichen
Einheit zunächst extrahiert und klassifiziert. Dann wird eine
Vielzahl von Sprossen, welche für jede Einheit klassifiziert
wurden, zusammengestellt um eine Datei entsprechend jeder
Einheit zu erzeugen (Schritt S301).
Die Anzahl von Eingabevorrichtungen und Ausgabevorrichtungen,
die für diese Dateien verwendet werden, wird berechnet
(Schritt S302). Wenn die berechnete Zahl von Vorrichtungen
eine bestimmte Zahl von Vorrichtungen oder weniger ist,
werden die in Schritt S301 erzeugten Dateien angenommen als
ein Resultat der Aufteilung des Steuerprogramms 1 in eine
Vielzahl von Teilprogrammen 3-1 bis 3-N (Antwort "Ja" in
Schritt S303). Wenn jedoch die berechnete Zahl von
Vorrichtungen größer als die designierte Zahl von
Vorrichtungen ist, wird die Klassifikation von Einheiten in
Schritt S301 wiederholt durch Verschmälerung des Bereichs der
Zahl von Sprossen, die als Kriterium der Aufteilung dienen
(Antwort "Nein" in Schritt S303).
Da einige Vorrichtungen zur Handhabung von
Sensorinformationen für eine Vielzahl von Einheiten verwendet
werden können, ist es schwer die Vorrichtungen durch Sprossen
vollständig zu klassifizieren, so dass die Einheiten nicht
dupliziert werden. Indem jedoch, wie durch die Verarbeitung
des obigen Flussdiagramms gezeigt, die Zahl von verwendeten
Vorrichtungen zwischen aufgeteilten Dateien nach der
Aufteilung gesteuert wird, ist es möglich die Verringerung
des Optimierungseffekts, der beschrieben wurde für das
Sprossenaufteilungsverfahren, zu steuern. Darüber hinaus wird
es dem Benutzer erlaubt Sprossen für jede oben beschriebene
Einheit zu klassifizieren.
Daher kann die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung jeden der
drei oben beschriebenen Arten von Aufteilungsalgorithmen
verwenden. Die Datei einer Vielzahl von
Aufteilungsprogrammen, die mit dem obigen Algorithmus erzeugt
wird, wird effektiv verwendet, wenn das Steuerprogramm 1
korrigiert werden muss.
Fig. 10 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes, wenn das Steuerprogramm 1 korrigiert werden
muss. Wie in Fig. 10 gezeigt, zum Beispiel wenn ein Abschnitt
2 modifiziert wird aufgrund der Korrektur des Steuerprogramms
1, wird nur eine Datei, die dem Teilprogramm 3-1 entspricht,
das den modifizierten Abschnitt 2 enthält, von dem Compiler
100 neu kompiliert, um eine Objektdatei nur des Abschnitts zu
erhalten. Die Objektdatei wird ersetzt durch eine
Objektdatei, die dem zuvor korrigierten Teilprogramm 3-1
entspricht.
Die neu erzeugte Objektdatei wird verbunden bzw. gelinked mit
einer anderen bereits erzeugten Objektdatei, d. h. einer
Objektdatei, die einem nicht modifizierten Teilprogramm
entspricht, durch einen Verbinder bzw. Linker, und dadurch
wird ein neuer Ausführungscode 9 erzeugt.
Wie oben beschrieben ist es gemäß der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der zweiten
Ausführung möglich, einen Ausführungscode zu erhalten, durch
Aufteilung des Steuerprogramms 1, das mit einer sequentiellen
Verarbeitungssprache beschrieben wird, wie einer
Anweisungsliste, in eine Vielzahl von Programmen, an einer
Position, die das Kompilieren nicht beeinflusst, und dann
Kompilieren jedes Teilprogramms. Daher, selbst wenn das
Steuerprogramm 1 korrigiert werden muss, wird nur ein
Teilprogramm, das dem aufgrund der Korrektur geänderten
Abschnitt entspricht, neu kompiliert. Daher ist es möglich
die Kompilierungszeit zu verkürzen, wenn eine Korrektur
auftritt. Insbesondere an einem Arbeitsplatz, wo eine
programmierbare Steuereinrichtung eingerichtet ist, sind zu
korrigierende Teile des Steuerprogramms 1 konzentriert auf
einen spezifischen Abschnitt. Daher, wenn eine Vorrichtung
zur Unterstützung der Steuerprogrammentwicklung, wie ein
tragbares Programmladegerät, zur Arbeitsstelle gebracht wird,
um eine Wartung durchzuführen, ist es möglich die
Wartungszeit zu verkürzen.
Der oben beschriebene Compiler 100 kann einen Compiler
verwenden, um einen Ausführungscode eines Universal-
Mikroprozessors zu erzeugen, der aufgebaut wird durch die
Beschleunigungstechnik, die bei der ersten Ausführung
beschrieben wurde.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung wird nun
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung erhält einen
Ausführungscode durch Umwandeln einer Vielzahl von
Teilprogrammen, die erzeugt werden durch die zweite
Ausführung, in Dateien, die jeweils beschrieben werden mit
einer höheren Programmiersprache, durch einen Wandler, und
Kompilieren einer Datei der höheren Programmiersprache.
Fig. 11 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes, gefolgt von der Aufteilung eines
Steuerprogramms und der Umwandlung in eine höhere
Programmiersprache. Wie in Fig. 11 gezeigt, sind die
Verarbeitungsschritte bis zur Aufteilung des Steuerprogramms
1 in eine Vielzahl von Teilprogrammen 3-1 bis 3-N gleich, wie
im Fall der zweiten Ausführung.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der dritten Ausführung
unterscheidet sich von der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der zweiten Ausführung darin, dass
die Teilprogramme 3-1 bis 3-N einem Wandler 101 eingegeben
werden, und in Dateien einer Vielzahl von höheren
Programmiersprachen durch den Wandler 101 umgewandelt werden.
Fig. 11 zeigt insbesondere den Fall der Verwendung der
Sprache C als höhere Programmiersprache, wobei die
Teilprogramme 3-1 bis 3-N umgewandelt werden in Dateien 4-1
bis 4-N, die jeweils mit der Sprache C beschrieben werden.
Die Dateien 4-1 bis 4-N, die mit der Sprache C beschrieben
werden, welche von dem Wandler 101 erzeugt werden, werden
jeweils als unabhängige Programmdateien gehandhabt, und einem
Compiler 102 der Sprache C eingegeben. Der Compiler 102 der
Sprache C kompiliert jeweils diese mit der Sprache C
beschriebenen Programmdateien, um Objektdateien zu erzeugen,
und dadurch wird der Ausführungscode 9 erhalten. Der
Ausführungscode 9 wird tatsächlich erzeugt durch Verbinden
bzw. Linken einer Vielzahl von Objektdateien, welche durch
den Compiler 102 der Sprache C erzeugt werden, durch einen
nicht abgebildeten Linker bzw. Verbinder.
Fig. 12 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes, wenn das Steuerprogramm 1 korrigiert werden
muss. Wie in Fig. 12 gezeigt, wenn ein Teil korrigiert werden
muss, der einem modifizierten Abschnitt 2 des Steuerprogramms
1 entspricht, ist es möglich die Programmdatei 4-1 zu
modifizieren, die mit der Sprache C beschrieben wird, die dem
Teilprogramm 3-1 entspricht, das den modifizierten Abschnitt
2 enthält, durch direkten Betrieb der Programmdatei 4-1. Wenn
ein Korrekturbereich groß ist, ist es auch erlaubt ein
Teilprogrammgewinn zu erzeugen, durch direkte Modifizierung
des Steuerprogramms 1.
Wenn die Korrektur abgeschlossen ist, wird nur die mit der
Sprache C beschriebene Programmdatei 4-1 von dem Compiler 102
der Sprache C neu kompiliert, um eine Objektdatei zu
erhalten, die dem Teilprogramm 3-1 entspricht. Die
Objektdatei wird ersetzt durch eine Objektdatei, welche dem
zuvor korrigierten Teilprogramm 3-1 entspricht.
Darüber hinaus wird die obige neu erzeugte Objektdatei
gelinkt bzw. verbunden mit einer Objektdatei, die der anderen
bereits erzeugten Objektdatei entspricht, d. h. einer
Objektdatei, welcher einem Teilprogramm entspricht, das nicht
modifiziert wurde, durch einen Linker bzw. Verbinder, wodurch
ein neuer Ausführungscode 9 erzeugt wird.
Im Fall der in den Fig. 11 und 12 gezeigten Beispiele wird
angenommen, dass das Steuerprogramm 1 bereits aufgeteilt ist
in eine Vielzahl von Teilprogrammen 3-1 bis 3-N an der
Eingangsstufe des Wandlers 101. Es ist jedoch auch erlaubt
das Steuerprogramm 1 aufzuteilen, wenn es umgewandelt wird in
eine höhere Programmiersprache, wie die Sprache C, ohne
Erzeugung der Teilprogramme 3-1 bis 3-N.
Fig. 13 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes, wenn ein Wandler das Steuerprogramm 1
aufteilt und das Programm 1 in eine höhere Programmiersprache
umwandelt. Wie in Fig. 13 gezeigt, wird kein Teilprogramm
erzeugt, aber ein Wandler 103 teilt das Steuerprogramm 1 in
eine Vielzahl von Programmdateien 4-1 bis 4-N auf, welche
jeweils mit der Sprache C beschrieben werden. Diese
Programmdateien 4-1 bis 4-N haben den gleichen Inhalt wie die
in Fig. 11 gezeigten. Das bedeutet, dass als interne
Verarbeitung des Wandlers 103, der Wandler 103 einmal ein
Steuerprogramm in eine Vielzahl von Teilprogrammen aufteilt,
in Übereinstimmung mit dem Codesystem einer Anweisungsliste,
und jedes Teilprogramm in eine höhere Programmiersprache
umwandelt.
Fig. 14 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes, wenn das Steuerprogramm 1 korrigiert werden
muss in einem Fall, in welchem ein Wandler das Steuerprogramm
1 umwandelt, und das Programm 1 in eine höhere
Programmiersprache umwandelt. Wie in Fig. 14 gezeigt, wenn
ein Teil, der einem modifizierten Abschnitt 2 des
Steuerprogramms 1 entspricht, korrigiert werden muss, ist es
möglich die Programmdatei 4-1 zu modifizieren, welche mit der
Sprache C beschrieben wird und einem Teilprogramm entspricht,
das den modifizierten Abschnitt 2 enthält, durch direkte
Bearbeitung der Datei 4-1. Wenn der Korrekturbereich groß
ist, ist es auch erlaubt eine neu aufgeteilte Programmdatei
zu erzeugen, welche mit der Sprache C beschrieben wird, durch
direkte Modifizierung des Steuerprogramms 1.
Wenn die Korrektur vollendet ist, wird nur die in der Sprache
C geschriebene Programmdatei 4-1 von dem Compiler 102 der
Sprache C neu kompiliert, um eine Objektdatei zu erhalten.
Die Erzeugung eines neuen Ausführungscodes 9 wird für die
Fig. 12 beschrieben.
Wie oben beschrieben erhält die Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der dritten Vorrichtung einen
Ausführungscode durch Unterteilung des Steuerprogramms,
welches mit einer sequentiellen Verarbeitungssprache
beschrieben wird, wie einer Anweisungsliste, in eine Vielzahl
von Programmen, an einer Position, welche die Kombinierung
nicht beeinflusst, und darüber hinaus Umwandeln der
Teilprogramme in eine höhere Programmiersprache, wie die
Sprache C. Daher ist es möglich Vorteile zu erzielen, die
durch die zweite Ausführung erhalten werden. Darüber hinaus,
wenn eine Korrektur notwendig ist, ist es möglich einen
bezweckten Ausführungscode zu erhalten, durch Modifizieren
einer Programmdatei, die mit einer höheren Programmiersprache
beschrieben wird, und somit die erforderliche Zeit zur
Entwicklung oder zum Debugging eines Steuerprogramms weiter
zu verkürzen.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der vierten Ausführung wird unten
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der vierten Ausführung erhält einen
kompakten und optimalen Ausführungscode aus einem Compiler,
in dem Codes einmal neu gebildet werden mit einem
Optimierungsfilter, vor Eingabe eines Steuerprogramms, wie
einer Anweisungsliste, in den Compiler oder Wandler, welche
im Zusammenhang mit den Ausführungen 1-3 beschrieben
wurden.
Fig. 15 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der vierten Ausführung. Wie in Fig.
15 gezeigt, wird eine Optimierungsverarbeitung angewendet auf
ein Steuerprogramm 1, durch ein Optimierungsfilter 104, vor
der Eingabe des Programms 1 in einen Compiler 105. Das
Optimierungsfilter 104 führt eine Optimierung durch, ohne
Modifizierung des Inhalts der sequentiellen Verarbeitung des
ursprünglichen Steuerprogramms 1, und gibt ein optimiertes
Steuerprogramm 5 aus, durch Ausschließen von nicht gerufenen
Variablen und redundanten Codes, durch Re-Kombination von
Logik und Ersetzung von Sequenzen für die lokale Anordnung
von Anweisungen für gemeinsame Eingabe- und
Ausgabevorrichtungen. Insbesondere für die Optimierung, in
den Vorrichtungen, auf welche zugegriffen werden soll und
Anweisungen, welche in der Nähe im Steuerprogramm 1 verwendet
werden sollen, gesammelt werden, ist es möglich eine lokale
Anpassung für ein Programm bereitzustellen, und die
Ausführungseffizienz eines danach kompilierten
Ausführungscodes zu verbessern.
Da die in den ersten bis dritten Ausführungen gezeigte
Ausführungscode-Erzeugung angewendet werden kann auf den
Verarbeitungsfluss bis der Ausführungscode 9 aus dem
optimierten Steuerprogramm 5 erzeugt ist, wird die
Beschreibung dieser Verarbeitung weggelassen.
Wie oben beschrieben, bildet die Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der vierten
Ausführung das Code-System des Steuerprogramms 1, das mit
einer sequentiellen Verarbeitungssprache, wie eine
Anweisungsliste beschrieben wird, neu, vor Eingabe des
Programms 1 in den Compiler 105, und es ist möglich einen
kompakteren und optimaleren Ausführungscode 9 unter
Verwendung des nachgeschalteten Compilers 105 zu erzeugen.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der fünften Ausführung wird nun
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der fünften Ausführung bereitet ein
Probenprogramm bzw. Testprogramm vor, dessen Ausführungszeit
bereits bekannt ist, und schätzt die tatsächliche
Ausführungszeit einer Anweisung oder dergleichen bei der
Entwicklung eines Steuerprogramms ab, vor dem Kompilieren.
Fig. 16 ist eine Beziehungstabelle bzw. Relationstabelle,
welche Anweisungen in der Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der fünften Ausführung zeigt, d. h.
Proben- bzw. Testprogramme, ihre Größen, und ihre
Verarbeitungszeiten. Wie in Fig. 16 gezeigt, werden
verschiedene Anweisungen verwendet, und Proben von
Steuerprogrammen unterschiedlicher Größe und deren
Ausführungszeiten werden vorbereitet. Im allgemeinen ist es
schwer die Verarbeitungszeit eines Ausführungscodes
abzuschätzen, der durch Kompilierung erzeugt wird. Daher wird
ein Programm aus vorbereiteten Probenprogrammen ausgewählt,
welches eine Verarbeitungszeit hat, die der obigen
Verarbeitungszeit am nächsten ist, und als Kriterium für die
Verarbeitungszeit eines erzeugten Steuerprogramms verwendet.
Die Abschätzung der Verarbeitungszeit unter Verwendung der in
Fig. 16 gezeigten Relationstabelle kann auch automatisch
durchgeführt werden mit einem Computerprogramm, durch die
Tatsache, dass eine der in Fig. 16 gezeigten Anweisungen
einen Abschnitt bestimmt, der mit einer vorbestimmten Rate
als ein der Anweisung angenäherter Abschnitt enthalten ist.
Wie oben beschrieben, nach der Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der fünften Ausführung ist es
möglich eine tatsächliche Ausführungszeit abzuschätzen, bei
der Entwicklung oder den Debugging des Steuerprogramms 1, wie
einer Anweisungsliste oder dergleichen. Daher ist es einfach
die Verarbeitungszeit der gesamten sequentiellen Verarbeitung
zu verbessern und einen "Fahrplan" bzw. zeitlichen Ablaufplan
zu erhalten.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der sechsten Ausführung wird unten
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der sechsten Ausführung ermöglicht
es einen Debugging-Abschnitt einer höheren Programmiersprache
zu kennen, der einem Abschnitt eines ursprünglichen
Steuerprogramms entspricht, während ein Debugging der Sprache
stattfindet in einem Verarbeitungssystem, um einmal ein
Steuerprogramm, das in einer sequentiellen
Verarbeitungssprache beschrieben wird, wie eine
Anweisungsliste, in eine höhere Programmiersprache
umzuwandeln, wie die Sprache C, wie im Zusammenhang mit der
obigen dritten Ausführung beschrieben.
In diesem Fall wird zunächst eine Steuerprogramm-
Entwicklungsumgebung zur Gewinnung eines Ausführungscodes
beschrieben. Fig. 17 ist eine Abbildung zur Erklärung einer
Entwicklungsumgebung und einer Ausführungsumgebung eines
Steuerprogramms. Wie in Fig. 17 gezeigt, besteht eine
Entwicklungsumgebung 30 aus einem Editor 106, einem Wandler
101, einem Debugger 110, einem Compiler 108 und einem Linker
bzw. Verbinder 107. Der Editor 106 dient als Werkzeug zur
Erzeugung des Steuerprogramms 1 eines Leiter-Diagramms bzw.
Kontaktplans, einer Anweisungsliste, oder die Quellliste
einer höheren Programmiersprache, die gewonnen wird durch
Umwandlung des Leiter-Diagramms und der Anweisungsliste.
Da der Wandler 101, Compiler 108 und Linker 107 die gleichen
Werkzeuge sind wie jene, die in Zusammenhang mit den ersten
bis fünften Ausführungen beschrieben wurden, werden sie nicht
erneut beschrieben. Der Debugger 110 ist ein Werkzeug für das
Debugging bzw. die Fehlerbeseitigung eines erzeugten
Steuerprogramms. Eine Ausführungsumgebung 40 ist ein
Abschnitt zum tatsächlichen Ausführen des Ausführungscodes 9,
der in der Entwicklungsumgebung 30 erzeugt wurde, dem es
erlaubt ist eine programmierbare Steuereinrichtung mit
Compiler oder einen Emulator zu verwenden, der erhalten wird
durch Simulation der programmierbaren Steuereinrichtung auf
einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung.
Da die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der sechsten Ausführung
insbesondere Funktionen und Vorteile für ein Debugging hat,
wird der Debugger 110 im folgenden ausführlich beschrieben.
Fig. 18 ist eine Abbildung zur Erklärung der Debugging-
Operation. Der Debugger 110 hat eine Überwachungsfunktion für
jede gegenwärtig ausgeführte, in dem Steuerprogramm 1
beschriebene Vorrichtung, eine Schrittausführungsfunktion um
ein Steuerprogramm schrittweise auszuführen, eine
Probenverfolgungsfunktion (Sampling Tracing Function), eine
Statushaltefunktion, eine Unterbrechungsfunktion, um zu
unterbrechen, wenn eine Variable (d. h. eine Vorrichtung)
einen vorbestimmten Wert zeigt, und eine Unterbrechungspunkt-
Einstellfunktion zur Einstellung eines Unterbrechungspunkts
in einem Steuerprogramm.
Der Speicher 41, der in Fig. 18 gezeigt ist, ist äquivalent
zum Speicher 14 der programmierbaren Steuereinrichtung,
welche in Zusammenhang mit der ersten Ausführung beschrieben
wurde 41737 00070 552 001000280000000200012000285914162600040 0002010116809 00004 41618. Im allgemeinen, im Fall einer Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung, wird die
Ausführungsumgebung 40 häufig verwirklicht durch den obigen
Emulator. In diesem Fall dient der Speicher 41 als ein
Speicher, der in einer Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung montiert ist.
Die Überwachungsfunktion ist eine Funktion, welche dazu dient
auf den Wert einer Vorrichtung Bezug zu nehmen, während das
Steuerprogramm 1 ausgeführt wird, und den Wert anzuzeigen mit
graphischen Mitteln, wie als numerischen Wert oder als
Schaubild. Darüber hinaus macht es die Überwachungsfunktion
möglich, den Wert einer in Ausführung befindlichen
Vorrichtung neu zu schreiben.
Ferner ist die Probenverfolgungsfunktion eine Funktion zur
Aufzeichnung des Werts einer bestimmten Vorrichtung für jeden
Durchlauf bzw. Scan. Fig. 19 ist eine Abbildung zur Erklärung
der Probenverfolgungsfunktion. Wie in Fig. 19 gezeigt,
ermöglicht die Probenverfolgungsfunktion die Erzeugung des
Zeitdiagramms einer bestimmten Vorrichtung (in Fig. 19 sind
die Ausgabevorrichtungen Y0 und Y1 gezeigt). Bei der
Probenverfolgung ist es möglich ein Gebiet sicherzustellen
zum Aufzeichnen des Werts einer Vorrichtung in dem Debugger
110, und einen Speicher zu verwenden, der gegenwärtig in
einer Ausführungsumgebung nicht verwendet wird. Darüber
hinaus ist es erlaubt einen Probenverfolgungsspeicher in
einer Ausführungsumgebung zu sichern.
Die Statushaltefunktion ist eine Funktion zur Aufzeichnung
von Werten aller Vorrichtungen in einem bestimmten Moment
während der Ausführung. Fig. 20 ist eine Abbildung zur
Erklärung der Statushaltefunktion. Der Zeitpunkt (d. h. der
Auslöser) für eine Vorrichtungswert-Aufzeichnungsfunktion, um
den Wert aufzuzeichnen, ist die Zeit, bei welcher eine
bestimmte Vorrichtung einen bestimmten Wert erreicht, oder es
ist einem Benutzer möglich, den Zeitpunkt aus dem Debugger
110 einzugeben. Wenn ein Auslöser arbeitet, wird der Inhalt
eines Speichers in einen Statushaltespeicher 42 kopiert. Der
Speicherinhalt, der im Statushaltespeicher 42 gespeichert
wird, kann durch den Debugger 110 überwacht bzw. beobachtet
werden.
Das Debugging-Verfahren, welches ein Merkmal dieser
Ausführung ist, wird unten beschrieben. Fig. 21 ist eine
Abbildung zur Beschreibung des Debugging-Verfahrens. Im
folgenden wird ein System betrachtet, welches den
Ausführungscode 9 erzeugt, in dem eine Eingabequelldatei,
welche mit einer Anweisungsliste beschreiben wird, d. h. das
Steuerprogramm 1 in eine Umwandlungsdatei 4 einer höheren
Sprache umgewandelt wird, die mit einer höheren
Programmiersprache beschrieben wird, wie der Sprache C, durch
den Wandler 101, und Kompilieren der Umwandlungsdatei 4 der
höheren Sprache durch den Compiler 108.
Zunächst fügt der Wandler 101 die Information für die
Zeilennummer jeder Anweisungsliste, welche das Steuerprogramm
1 bildet, in einen entsprechenden Abschnitt in die
Umwandlungsdatei 4 der höheren Sprache ein, wenn das
Steuerprogramm 1 in die Umwandlungsdatei 4 der höheren
Sprache umgewandelt wird. Wie dargestellt, kann diese
Verarbeitung verwirklicht werden durch eine Compiler-
Anweisung "#line", zur Erkennung von Zeilennummern der
Quelldatei eines allgemeinen Verarbeitungssystems der Sprache
C.
Die Compiler-Anweisung "#line" ist eine spezielle Anweisung
für einen Compiler, dass jede Zeile der Quelldatei in der
Sprache C jeder Zeile einer anderen Quelldatei entspricht.
Allgemeine Compiler der Sprache C, wie der Gnu C-Compiler der
Free Software Foundation und der Visual C/C++ Compiler von
Microsoft Corporation unterstützen auch die obige Funktion,
und ihre Syntax ist abgebildet als #line Zeilennummer
"Quelldateiname".
Somit, durch Einbettung einer Compiler-Anweisung, die jeder
Zeile einer ursprünglichen Anweisungslistenquelle entspricht,
und Kompilieren der Anweisung durch den Compiler 108, wie den
obigen Gnu C-Compiler oder Visual C-Compiler, ist es möglich
eine ausführbare Objektdatei zu erhalten, in welcher die
Zeilennummerinformation einer Eingabequelldatei eingebettet
ist, d. h. der Ausführungscode 9.
Durch schrittweise Ausführung des Ausführungscodes 9 auf
einem Gnu Debugger (gdb) im Falle von Gnu C, oder einem
Debugger, der angehängt ist an die integrierte
Entwicklungsumgebung VisualStudio von Microsoft Corporation
im Fall von Visual C, wird das ursprüngliche Steuerprogramm 1
auf jedem Debugger gelesen, und es ist möglich das
Steuerprogramm 1 schrittweise für jede Zeile in dem Programm
1 auszuführen.
Wie oben beschrieben, nach der Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der sechsten Ausführung, wird
die Beschreibung eines Teils, der jeder Anweisung des
ursprünglichen Steuerprogramms 1 entspricht, eingefügt in die
Umwandlungsdatei 4 der höheren Sprache, welche erhalten wird
durch Umwandlung des Steuerprogramms 1, das mit einer
sequentiellen Verarbeitungssprache beschrieben, wie einer
Anweisungsliste. Daher ist die Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der sechsten Ausführung
insbesondere wirksam, wenn ein Entwickler eines
Steuerprogramms eine höhere Programmiersprache vollkommen
beherrscht, wie die Sprache C, obwohl er/sie keine Erfahrung
hat in der Beschreibung einer Anweisungsliste oder umgekehrt,
und es ist möglich die Entwicklungszeit und die Debugging-
Zeit des Steuerprogramms zu verkürzen.
Darüber hinaus, wenn eine Programmdatei, welche mit einer
höheren Programmiersprache, wie der Sprache C beschrieben
wird, korrigiert wird, ist es möglich ein ursprüngliches
Steuerprogramm, wie eine Anweisungsliste, gleichzeitig zu
modifizieren. Daher ist es möglich die Konsistenz bzw.
Übereinstimmung zwischen der Programmdatei und dem
Steuerprogramm zu verbessern.
Im folgenden wird die programmierbare Steuereinrichtung der
siebten Ausführung beschrieben. Die programmierbare
Steuereinrichtung der siebten Ausführung empfängt und
speichert ein binäres Patch bzw. eine binäre Korrekturdatei,
welche erzeugt wird in Übereinstimmung mit den Differenzdaten
zwischen Steuerprogrammen vorher und nachher, modifiziert zur
Ausführung des binären Patch, und ersetzt dadurch einen
Ausführungscode, der gegenwärtig ausgeführt wird, durch einen
neuen Ausführungscode zu einer vorbestimmten Zeit der
gegenwärtig ausgeführten sequentiellen Verarbeitung, und
setzt die sequentielle Verarbeitung gemäß dem neuen
Ausführungscode fort.
Fig. 22A und 22B sind Abbildungen zur Erklärung der
Ausführungscode-Ersetzung unter Verwendung eines binären
Patch in der programmierbaren Steuereinrichtung der siebten
Ausführung. Als erstes wird die Verarbeitung für die
programmierbare Steuereinrichtung zum Empfangen und Ausführen
eines neuen Ausführungscodes beschrieben.
Wie in Fig. 22A gezeigt, wird zunächst ein Ausführungscode 8
erzeugt durch die Vorrichtung 20 zur Unterstützung der
Steuerprogrammentwicklung. Da die Erzeugung eines
Ausführungscodes durch die Vorrichtung 20 zur Unterstützung
der Steuerprogrammentwicklung gleich ist wie im Fall einer
konventionellen Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung, oder den Vorrichtungen zur
Unterstützung der Steuerprogrammentwicklung der ersten bis
sechsten Ausführungen, wird diese nicht weiter beschrieben.
Die programmierbare Steuereinrichtung 10 empfängt den
Ausführungscode 8 über eine nicht abgebildete
Kommunikationsschnittstelle, und liest den Code in einen
Speicher 14 ein, wie einen Arbeitsspeicher, durch einen
Programmlader 120. Daher kann die programmierbare
Steuereinrichtung 10 die sequentielle Verarbeitung gemäß dem
Ausführungscode 8 beginnen.
Es wird angenommen, dass ein Steuerprogramm 1, das als
ursprüngliche Quelldatei des Ausführungscodes 8 dient,
modifiziert wird, und als Ergebnis wird eine Steuerprogramm
1' erzeugt. Insbesondere wird angenommen, dass diese
Modifikation eine lokale Modifikation des noch nicht
modifizierten Steuerprogramms 1 ist, es wird aber kein
vollständig neuer Inhalt ab dem Anfang geschrieben. In diesem
Fall wird ein Ausführungscode 8' erzeugt, der dem
Steuerprogramm 1' entspricht, ähnlich wie Fall der obigen
Ausführungscode-Erzeugung. Dann liest die Vorrichtung 20 zur
Unterstützung der Steuerprogrammentwicklung den gehaltenen,
nicht modifizierten Ausführungscode 8, und erzeugt die
Differenzdaten zwischen dem Ausführungscode 8 und dem
modifizierten Ausführungscode 8' mit einem Differenzdaten-
Erzeugungswerkzeug 130.
Die Ausführungscodes 8 und 8' sind nicht Textdaten, welche
durch ASCII-Codes abgebildet werden, sondern sind
Objektdateien, welche durch Binärcodes dargestellt werden.
Daher ist die Differenz zwischen diesen Ausführungscodes als
Binärdaten lokal, wie die Differenz zwischen den
ursprünglichen Steuerprogrammen 1 und 1'. Zum Beispiel, wenn
der Compiler 100 nur jede Zeile des nicht modifizierten
Steuerprogramms 1 umwandelt in eine entsprechende
Blockposition in einer Objektdatei, hat die Differenz nur
dann einen Wert, wenn ein Block neu hinzugefügt wird zur
n-ten Blockposition, oder die n-te Blockposition neu ersetzt
wird durch den obigen Block.
Darüber hinaus ist die Differenz nur eine Differenz zwischen
Testsegmenten, Datensegmenten oder bss-Segmenten (nicht
initialisierte Segmente) in jedem Ausführungscode. Das
Differenzdaten-Erzeugungswerkzeug 130 extrahiert die obige
Differenz und gibt sie aus als Datei, und die
Ausgabedifferenzdaten werden als ein binäres Patch 7
bezeichnet.
Ein Patch bezeichnet eine Technik zur Reproduktion von
ursprünglichen Daten aus einer Differenz zwischen Dateien und
ihren Differenzdaten, welche auf dem Computergebiet allgemein
verwendet wird, welche im allgemeinen eine neue Textdatei
erzeugt in Übereinstimmung mit einer Differenz zwischen den
sogenannten Textdateien des ASCII-Codes. Das binäre Patch
führt die obigen Operationen für Binärdaten durch.
Das binäre Patch wird jedoch angewendet auf eine Datei, die
eingestellt ist in dem sogenannten sekundären Speicher, wie
einer Festplatte eines Computers, es wurde jedoch nicht
beabsichtigt, es auf ein gegenwärtig ausgeführtes Programm in
einem Speicher anzuwenden. Die programmierbare
Steuereinrichtung der siebten Ausführung wendet das binäre
Patch 7 jedoch auf einen in Ausführung befindlichen
Ausführungscode an.
Daher empfängt die programmierbare Steuereinrichtung 10 nicht
den neu erzeugten Ausführungscode 8, sondern das binäre Patch
7, welches kleiner ist als der Code 8, über eine nicht
dargestellte Kommunikationsschnittstelle, und speichert den
Code 8 in einem nichtflüchtigen Speicher, wie einem Flash-
Speicher.
In diesem Fall arbeitet der Programmlader 120 in der
programmierbaren Steuereinrichtung 10 auch als ein Patch-
Anwender zum Anwenden eines Patch, liest Information aus den
Binär-Patch-Daten 7 zu einer geeigneten Zeit bei dem
wiederholten Schleifendurchlauf des ins Ausführung
befindlichen Ausführungscodes 8, und ersetzt Codes des in
Ausführung befindlichen Ausführungscodes 8. Das heißt, wie
oben beschrieben, der Programmlader 120 führt die Einfügung
eines Blocks in eine bestimmte Blockposition durch, das
Neuschreiben eines Blocks, oder die Einfügung und das
Neuschreiben für jedes Segment. Darüber hinaus, wenn das
Neuschreiben eines Codes abgeschlossen ist, führt die
programmierbare Steuereinrichtung 10 sofort den neuen
Ausführungscode aus, um die sequentielle Verarbeitung
fortzusetzen.
Wie oben beschrieben ersetzt die programmierbare
Steuereinrichtung der siebten Ausführung automatisch einen in
Ausführung befindlichen Ausführungscode in Übereinstimmung
mit Differenzdaten, in welchen nur ein zu modifizierender
Abschnitt eines Steuerprogramms beschrieben wird, und setzt
die sequentielle Verarbeitung gemäß einem ersetzten, neuen
Ausführungscode fort. Daher reicht es aus das binäre Patch 7
kleiner zu halten als einen geänderten Ausführungscode, ohne
dass der gesamte geänderte Ausführungscode in der
programmierbaren Steuereinrichtung 10 gehalten werden muss,
wie im konventionellen Fall.
Das Konzept, das einer Modifikation eines Steuerprogramms
durch die obigen Differenzdaten entspricht, kann auch
angewendet werden auf ein Leiter-Diagramm bzw. Kontaktplan
oder eine Anweisungsliste in einer programmierbaren
Steuereinrichtung mit Interpreter.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der achten Ausführung wird nun
beschrieben. Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der achten Ausführung fügt eine
komprimierte Datei eines noch nicht kompilierten
Steuerprogramms in einen Ausführungscode ein, der erhalten
wird durch seine Kompilierung, um den Ausführungscode und das
Steuerprogramm zu vereinigen.
Fig. 23 ist eine Abbildung zur Erklärung der Erzeugung eines
Ausführungscodes durch die Vorrichtung für die Unterstützung
der Steuerprogrammentwicklung der achten Ausführung. Zunächst
wandelt die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung ein Steuerprogramm 1, wie eine
Anweisungsliste, in eine höhere Programmiersprache, wie die
Sprache C, mit einem Wandler 101a, und gibt eine
Programmdatei 4a, welche in der Sprache C geschrieben wird
und durch die obige Umwandlung erhalten wird, in einen
Compiler 102 der Sprache C ein. Dann kompiliert der Compiler
102 der Sprache C die mit der Sprache C beschriebene
Programmdatei 4a und gibt eine Objektdatei 8a aus.
Darüber hinaus komprimiert die Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung das Steuerprogramm 1 mit einem
Dateikompressionswerkzeug 140, um eine komprimierte Datei 99
zu erzeugen. Es ist möglich gzip, bzip2 oder 1ha als
Komprimierungswerkzeug 140 zu verwenden. Die komprimierte
Datei 99, welche durch das obige Werkzeug komprimiert wurde,
führt nicht zu einem Textformat des ASCII-Codes, sondern zu
Binärdaten.
Die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung wandelt die komprimierte Datei 99
in eine Programmdatei 4b um, welche mit der Sprache C
beschrieben wird, durch einen Wandler 101b. Die komprimierte
Datei 99 wird mit dem Wandler 101b in einen Ausdruck in der
Sprache C umgewandelt, um den Quellcode des komprimierten
Steuerprogramms in einem Teil des schließlich zu erzeugenden
Ausführungscodes nicht als nur einfach angehängte Datei
einzuschließen.
Fig. 24 ist eine Abbildung, welche eine Quelldatei zeigt, die
der Inhalt des Steuerprogramms 1 ist. Darüber hinaus ist die
Fig. 25 eine Abbildung, welche einen Ausdruck in der Sprach C
zeigt, der erhalten wird durch Umwandlung der komprimierten
Datei 99. Das Steuerprogramm 1, das ausgedrückt wird durch
eine in Fig. 24 gezeigte Anweisungsliste, wird durch das
Dateikomprimierungswerkzeug 140 in die komprimierte Datei 99
als Binärdaten umgewandelt, wie oben beschrieben.
Wenn die komprimierte Datei 99 angeordnet ist wie "01 h, 02 h,
03 h, . . .", beginnend mit den führenden Daten, wird sie
umgewandelt in {0 × 01, 0 × 02, 0 × 3, . . .}, was die Anordnung für
je ein Ein-Bite-Daten durch den Wandler 101b ist. Die in Fig.
25 gezeigten angeordneten Daten sind ein Umwandlungsergebnis
gegenüber der in Fig. 24 gezeigten Quelldatei.
Somit wird eine komprimierte Datei in ein Format umgewandelt,
das von dem Compiler 102 der Sprache C interpretiert werden
kann, um die durch die Sprache C ausgedrückte Programmdatei
4b zu erzeugen. Dann kompiliert der Compiler 102 der Sprache
C die durch die Sprache C ausgedrückte Programmdatei 4b, um
eine Objektdatei 8b auszugeben.
Zwei Objektdateien 8a und 8b, welche durch den Compiler 102
der Sprache C erzeugt werden, werden miteinander verbunden
bzw. gelinkt durch eine Linker 150, und es wird schließlich
ein direkt ausführbarer Ausführungscode 90 von einer
programmierbaren Steuereinrichtung erhalten. Das bedeutet,
dass der Ausführungscode 90 aus einem Teil besteht, um
tatsächlich zur sequentiellen Verarbeitung beizutragen, und
der Information für den Quellcode des Steuerprogramms 1.
Der so erhaltene Ausführungscode 90 wird im allgemeinen in
einem nichtflüchtigen Speicher oder dergleichen einer
programmierbaren Steuereinrichtung gespeichert. Wie jedoch in
Fig. 25 gezeigt, da sie enthalten ist in einem
Ausführungscode, durch die Annahme, dass die komprimierten
Daten, welche erhalten werden durch Komprimierung des
Steuerprogramms 1, eine Anordnung mit einem Namen von
_InputSource und der Dateiname der Daten sample.il, gz
lautet, ist es möglich die komprimierte Datei 99 gemäß dem
Namen zu extrahieren. Darüber hinaus, nachdem die
komprimierte Datei 99 extrahiert wurde, ist es möglich das
ursprüngliche Steuerprogramm 1 wieder herzustellen, durch
Verwendung eines Entwicklungswerkzeugs, das einem
Kompressionsformat entspricht, wie gunzip oder bunzip, welche
allgemein bereitgestellt werden für das
Dateikomprimierungswerkzeug 140.
Wie oben beschrieben erzeugt die Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der achten
Ausführung einen Ausführungscode, in welchem ein Teil zum
Beitragen zur tatsächlichen sequentiellen Verarbeitung und
die Quellcode-Information des Steuerprogramms 1, wie eine
Anweisungsliste, in einen Körper vereinigt sind. Daher ist es
möglich ein Steuerprogramm und einen Ausführungscode zu
vereinigen, und sie in einer programmierbaren
Steuereinrichtung zu speichern. Somit, wenn ein
Steuerprogramm verloren geht, das notwendig ist für die
Entwicklung oder das Debugging oder für den direkten Betrieb
eines Steuerprogramms aus einer programmierbaren
Steuereinrichtung an einer Arbeitsstelle, ist es möglich das
Steuerprogramm aus einem Ausführungscode herauszuholen und
die Konsistenz bzw. Übereinstimmung zwischen dem
Ausführungscode und dem Steuerprogramm zu verwirklichen.
Die programmierbare Steuereinrichtung und die Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der neunten
Ausführung werden unten beschrieben. Die Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung der ersten
Ausführung führt einen Mustervergleich von Anweisungen eines
Steuerprogramms durch, beginnend mit einer Anweisung, die am
häufigsten auftritt, wenn das Steuerprogramm in
Ausführungscodes interpretiert wird, während die Vorrichtung
zur Unterstützung der Steuerprogrammentwicklung der neunten
Ausführung einen Mustervergleich durchführt von Anweisungen
eines Steuerprogramms, beginnend mit einer Anweisung, die am
häufigsten auftritt, wenn das Steuerprogramm zu
Ausführungscodes kompiliert wird.
Fig. 26 ist eine Abbildung zur Erklärung der Kompilierung,
die durch die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung der neunten Ausführung durchgeführt
wird. Fig. 26 zeigt insbesondere ein System zur Umwandlung
einer Eingabequelldatei 1, welche als Steuerprogramm dient,
wie eine Anweisungsliste, die von einem Benutzer beschrieben
wird, und zur Erzeugung einer Ausgabedatei 70, welche als
Ausführungscode dient, der direkt ausführbar ist durch eine
programmierbare Steuereinrichtung.
Im allgemeinen verwendet eine Anweisungsliste häufig im
Grunde eine LD-Anweisung und eine OUT-Anweisung, in welchen
viele Vorbestimmungen vorhanden sind bei den
Auftrittshäufigkeiten von Anweisungen, da ein Benutzer häufig
eine bestimmte Anweisung verwendet, wenn er eine Verarbeitung
mit gleichem Inhalt durchführt. Darüber hinaus, da viele
Programme umgeleitet werden aufgrund von Zuverlässigkeiten,
die auf ihren vergangenen Resultaten beruhen, sind
Vorgegebenheiten von verwendeten Anweisungen auch aufgrund
des oben erwähnten vorhanden.
Daher hat ein Programmumwandlungswerkzeug 160, das einem
Compiler entspricht, einen Abschnitt 170 zur Mustererfassung
und Musterumordnung. Der Abschnitt 170 zur Mustererfassung
und Musterumordnung hat einen Musterauftritts-Zählabschnitt
171, und einen Abschnitt 172 zum Mustervergleichen und
Musterumordnen. Der Musterauftritts-Zählabschnitt 171 zählt
die Auftrittshäufigkeit von Anweisungen, wenn sie mit jedem
Programmumwandlungswerkzeug 160 umgewandelt werden, und
speichert die Häufigkeiten in einer Datei 60 zur Speicherung
der Musterauftrittshäufigkeit.
Der Abschnitt 172 zum Mustervergleichen und Musterumordnen
ordnet erste bis vierte Mustervergleiche 181a bis 181d eines
Mustervergleichsabschnitts 180 um, in eine Vorwärtssequenz
des Mustervergleichs, beginnend mit einer Anweisung, die die
größte Auftrittshäufigkeit hat, aus der Datei 60 zur
Speicherung der Musterauftrittshäufigkeit. Erste bis vierte
Abschnitte 182a bis 182d zur Durchführung von Aktionen,
entsprechend den Mustervergleichen, sind natürlich
miteinander verwoben. Dadurch, da ein Mustervergleich früher
durchgeführt wird für eine Anweisung, die eine höhere
Auftrittshäufigkeit hat, wird die Zeit bis zur Vollendung der
Verarbeitung verkürzt. Es ist auch erlaubt, dass die
Umordnungszeit des Abschnitts 172 für den Mustervergleich und
die Musterumordnung die Zeit ist, wenn man den Abschnitt 180
für den Mustervergleich verlässt und zu einem
Zeilenerfassungsabschnitt 161 zurückkehrt, oder das
Programmumwandlungswerkzeug 160 gestartet wird.
Der Kompilierungsvorgang der Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung wird nun beschrieben. Fig. 27
ist eine Flussdiagramm, das den Kompilierungsvorgang der
Vorrichtung zur Unterstützung der Steuerprogrammentwicklung
der neunten Ausführung zeigt.
Als erstes gibt die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung eine Eingabequelldatei 50 in das
Programmumwandlungswerkzeug 160 ein. In diesem Fall wird
angenommen, dass die Eingabequelldatei 50 beschrieben wird
durch die folgende Anweisungsliste.
LD X0
AND X10
OUT Y0.
LD X0
AND X10
OUT Y0.
Als erstes liest die Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung eine Datei 60 zur Speicherung der
Musterauftrittshäufigkeit, welche später beschrieben wird
(Schritt S401), und erkennt Anweisungen, beginnend mit einer
Anweisung, die am häufigsten auftritt, mit dem Abschnitt 172
zum Mustervergleich und zur Musterumordnung (Schritt S402).
Dadurch ordnet der Abschnitt 172 zum Mustervergleich und zur
Musterumordnung die ersten bis vierten
Mustervergleichsabschnitte 181a bis 181d in dem
Mustervergleichsabschnitt 180 um, und die ersten bis vierten
Aktionsausführungsabschnitte 182a bis 182d, welche den
Abschnitten 181a bis 181d entsprechen (Schritt S403).
Dann erfasst der Zeilenerfassungsabschnitt 161 des
Programmumwandlungswerkzeugs 160 eine Zeile der
Eingabequelldatei 50 (Schritt S404) und liefert die eine
erfasste Zeile an einen semantischen Interpretierabschnitt
162, wenn die Zeile nicht vorhanden ist an der Endposition
der Eingabequelldatei 50 (Antwort "Nein" in Schritt S405).
Im Falle der obigen Anweisungsliste wird als erstes "LD X0"
an den semantischen Interpretationsabschnitt 162 geliefert.
Der semantische Interpretationsabschnitt 162 interpretiert,
dass "LD X0" eine LD-Anweisung ist, und lässt den
Mustervergleichsabschnitt 180 den Ausführungsteil der
LD-Anweisung holen, um den Anweisungsteil der ID-Anweisung zu
holen (Schritt S408).
Der Mustervergleichsabschnitt 180 führt einen Mustervergleich
in der Sequenz des ersten Mustervergleichs 181a, zweiten
Mustervergleichs 181b, dritten Mustervergleichs 181c und
vierten Mustervergleichs 181d durch, um verschiedene Muster
zu finden, die intern angeordnet sind, d. h. was die Aktion
der Anweisung "LD" im Falle des obigen Beispiels ist (Schritt
S409), und wenn der vierte Mustervergleich 181d einen Inhalt
hat, der nicht auf die LD-Anweisung bezieht, wird der vierte
Aktionsausführungsabschnitt 182d ausgeführt, was die
Operation der LD-Anweisung ist (Schritt S410). Der vierte
Aktionsausführungsabschnitt 182d gibt eine
Ausführungscodebeschreibung aus, entsprechend der
LD-Anweisung, an die Ausgabedatei 70, und die
Auftrittshäufigkeit der Anweisung wird gezählt durch den
Musterauftritts-Zählabschnitt 171 (Schritt S411).
Wenn die obige Verarbeitung abgeschlossen ist, kehrt der
vierte Aktionsausführungsabschnitt 182d zurück zum Schritt
S404, um die gleiche Verarbeitung für "AND X10" zu
wiederholen, welches die nächste Zeile des obigen Beispiels
ist. Wenn jedoch die eine erfasste Zeile an der Endposition
der Eingabequelldatei 50 liegt (Antwort "Ja" in Schritt
S405), vollendet der Abschnitt 182d das Schreiben in die
Ausgabedatei 70 (Schritt S406) und speichert ein Resultat,
das von dem Musterhäufigkeits-Zählabschnitt 171 gezählt
wurde, in der Datei 60 zur Speicherung der
Musterauftrittshäufigkeit als Aktualisierungsdaten (Schritt
S407).
Wie oben beschrieben führt die Vorrichtung zur Unterstützung
der Steuerprogrammentwicklung der neunten Ausführung einen
Mustervergleich durch von Anweisungen eines Steuerprogramms,
beginnend mit einer Anweisung, die die höchste
Auftrittshäufigkeit hat, wenn das Steuerprogramm kompiliert
wird zu Ausführungscodes. Daher ist es möglich schnell einen
Ausführungscode zu finden, der geeignet ist für jede
Anweisung des Steuerprogramms, wenn das Steuerprogramm
kompiliert wird, und die Kompilierungsdauer des
Steuerprogramms zu verringern.
Operationen des obigen Programmumwandlungswerkzeugs 160
können auch angewendet werden auf einen Wandler zur
Umwandlung eines Steuerprogramms, wie eine Anweisungsliste,
in eine Programmdatei, welche beschrieben wird durch eine
höhere Programmiersprache, wie die Sprache C. Das bedeutet,
dass in der obigen Ausführung ein in die Ausgabedatei 70 zu
schreibender Inhalt kein Ausführungscode ist, sondern ein
Anweisungsausdruck einer höheren Programmiersprache.
Darüber hinaus können Operationen des obigen
Umwandlungswerkzeugs 160 angewendet werden auf eine
programmierbare Steuerung mit Interpreter. In diesem Fall
kann die Eingabequelldatei 50 eine Anweisungsliste oder
Zwischencodes verwenden, welche durch die Umwandlung der
Anweisungsliste erhalten werden, und Aktionen die auszuführen
sind durch die ersten bis vierten
Aktionsausführungsabschnitte 182a bis 182d führen zu
tatsächlichen Verarbeitungen der programmierbaren Logik.
Funktionen, die verwirklicht werden durch die Vorrichtungen
zur Unterstützung der Steuerprogrammentwicklung der ersten
bis sechsten und achten und neunten Ausführungen, und
Funktionen, die verwirklicht werden durch die
programmierbaren Steuereinrichtungen der ersten, siebten und
neunten Ausführungen, können auch eingebaut werden in eine
sogenannte Software-programmierbare Steuereinrichtung zur
Verwirklichung der Entwicklung eines Steuerprogramms und auch
der sequentiellen Verarbeitung.
Wie oben beschrieben beinhaltet die vorliegende Erfindung
gemäß einer Ausführung einen Universal-Mikroprozessor, der
mit einer Beschleunigungseinheit versehen ist, und ein
empfangener Ausführungscode ist so optimiert, dass er
ausgeführt wird durch bzw. mit Hilfe der
Beschleunigungseinheit des Universal-Mikroprozessors. Daher
kann der Vorteil erzielt werden, dass die sequentielle
Verarbeitung schneller ausgeführt werden kann im Vergleich
mit dem Fall einer herkömmlichen programmierbaren
Steuereinrichtung, bei welcher ein Mikroprozessor mit einem
ASIC ausgerüstet ist.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
wird ein Steuerprogramm, das beschrieben wird durch eine
sequentielle Steuerungssprache, kompiliert zu einem
Ausführungscode, der ausführbar ist durch einen Universal-
Mikroprozessor, der mit einer Beschleunigungseinheit versehen
ist. Daher kann der Vorteil erzielt werden, dass es möglich
ist eine sequentielle Verarbeitung durchzuführen mit einer
programmierbaren Steuereinrichtung, in die ein Universal-
Mikroprozessor montiert ist, der verwendet wird für ein PC,
und Ausführungscodes zu erhalten, die den verschiedenen
Universal-Mikroprozessoren entsprechen, durch Änderung eines
Compilers, und dadurch verschiedenen programmierbaren
Steuereinrichtungen entsprechen, ohne dass ein Steuerprogramm
modifiziert werden muss, um effektiv vergangene Ressourcen
von Steuerprogrammen zu verwenden, die Verwaltung von
Steuerprogrammen zu vereinheitlichen und die Entwicklungszeit
für Steuerprogramme effizienter zu machen.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
ist es möglich, finale Ausführungscodes zu erhalten durch
Aufteilung eines Steuerprogramms in eine Vielzahl von
Blöcken, und Kompilieren jedes aufgeteilten Blocks. Daher
kann der Vorteil erzielt werden, dass selbst wenn ein langes
Steuerprogramm modifiziert werden muss, es möglich ist einen
Ausführungscode zu erzeugen, in dem nur ein Teil des zu
modifizierenden Steuerprogramms neu kompiliert wird, ohne
Neukompilieren des gesamten Steuerprogramms, wie im
herkömmlichen Fall, womit die erforderliche Zeit für das
Debugging oder die Wartung eines Steuerprogramms verkürzt
wird.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
ist es möglich finale Ausführungscodes zu erhalten durch
Aufteilung eines Steuerprogramms in eine Vielzahl von
Blöcken, Umwandeln jedes aufgeteilten Blocks in eine höhere
Sprache, die von einem Universalrechner lesbar ist, und
Kompilieren eines Programms der höheren Sprache, welche von
einem Universalrechner lesbar ist, entsprechend jedem Block.
Daher kann der Vorteil erzielt werden, dass selbst wenn ein
langes Steuerprogramm modifiziert werden muss, es möglich ist
Ausführungscodes zu erzeugen durch Neukompilierung nur eines
Teils des zu modifizierenden Programms, ohne Neukompilierung
des gesamten Steuerprogramms, wie im herkömmlichen Fall, aber
dennoch einen konventionellen Compiler zu verwenden, für eine
höhere Sprache, die von einem Universalrechner lesbar ist,
und die Zeit zu verkürzen, die erforderlich ist für das
Debugging oder die Wartung eines Steuerprogramms.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
wird ein Ausführungscode erzeugt für eine programmierbare
Steuereinrichtung, welche einen Universal-Mikroprozessor
verwendet, der für einen PC verwendet wird. Daher kann der
Vorteil erzielt werden, dass es möglich ist eine sequentielle
Verarbeitung durchzuführen bei hoher Geschwindigkeit, mit
solchen Hochgeschwindigkeits-Verarbeitungstechniken wie einer
Pipeline-Technik, einer Super-Skalierer-Technik oder einer
ungeordneten Ausführung bzw. Ausführung außerhalb der
Reihenfolge, verglichen mit dem Fall einer herkömmlichen
programmierbaren Steuereinrichtung, bei welcher ein
Mikroprozessor als ein ASIC vorgesehen ist.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
unterteilt eine Steuerprogramm-Aufteilungseinheit ein
Steuerprogramm in eine Vielzahl von Blöcken an einer Lücke
zwischen vorbestimmten Sprossen in einem Leiter-Diagramm bzw.
einem Kontaktplan, und erzeugt eine Programmdatei für jeden
betroffenen Block. Daher kann der Vorteil erzielt werden,
dass es möglich ist Programmdateien für jede Serie von
Schaltungsblöcken von der Eingabe bis zur Ausgabe zu
verwalten, und die Häufigkeit einer Situation zu verringern,
dass eine Optimierung von Registern von Eingabe/Ausgabe-
Vorrichtungen bei der Kompilierung unterbrochen wird aufgrund
der Aufteilung. Insbesondere kann der Vorteil erzielt werden,
dass es möglich ist die Optimierungsfunktion eines
Kompilierers effektiv zu verwenden, zur Ausgabe eines
ungeordneten Codes (out-out-order code) durch Bildung eines
Blocks der Sammlung aus einer Vielzahl von Sprossen für einen
Mikroprozessor, der mit einer Beschleunigungseinheit versehen
ist.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
unterteilt eine Steuerprogramm-Aufteilungseinheit ein
Steuerprogramm in eine Vielzahl von Blöcken an einer Lücke
zwischen vorbestimmten Sprossen und einer Position, die als
Sprungziel für eine Sprunganweisung dient, und erzeugt eine
Programmdatei für jeden betroffenen Block. Daher kann der
Vorteil erzielt werden, dass die Optimierung eines Compilers
nicht beeinflusst wird, und es möglich ist aufgeteilte
Programmdateien als Unterroutinen zu verwalten, und das
Debugging und die Verwaltung eines Steuerprogramms zu
vereinfachen.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
erzeugt eine Steuerprogramm-Aufteilungseinheit eine
Programmdatei für jeden betroffenen Block durch Extrahierung
aller oder einiger Sprossen, die Anweisungen enthalten für
eine gemeinsame Eingabe- oder Ausgabevorrichtung in einem
Leiter-Diagramm bzw. Kontaktplan, Vereinigen aller oder
einiger der extrahierten Sprossen zu einem Block, und
Unterteilung der Sprossen in eine Vielzahl von Blöcken. Daher
kann der Vorteil erzielt werden, dass wenn ein Steuerprogramm
modifiziert werden muss für eine spezifische Vorrichtung, es
möglich ist einen Ausführungscode zu erhalten durch
Modifizieren und Neukompilieren nur einer Programmdatei, die
dem zu modifizierenden Teil entspricht, und damit die Zeit zu
verkürzen, die erforderlich ist für das Debugging oder die
Wartung des Steuerprogramms.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
wird eine Steuerprogramm einmal neu konstruiert zu einem
optimalen Codesystem, wenn das Programm kompiliert wird,
durch Ausschließung von nicht gerufenen Variablen und
Ausschließung und Umordnung von redundanten Codes. Daher kann
der Vorteil erzielt werden, dass es möglich ist ein
Steuerprogramm zu erzielen, das aus optimierten Codes für den
Compiler besteht, und die für das Kompilieren des Programms
notwendige Zeit zu verkürzen und die Geschwindigkeit für die
Ausführung des Programms zu verbessern.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
ist es möglich die Ausführungszeit der sequentiellen
Verarbeitung abzuschätzen, gemäß einer Relationstabelle bzw.
Beziehungstabelle, die ein Probenprogramm bzw. Testprogramm,
dessen Verarbeitungszeit bereits bekannt ist, mit einem
Steuerprogramm in Beziehung setzt, das einem Ausführungscode
entspricht. Daher kann der Vorteil erzielt werden, dass es
möglich ist die tatsächliche Verarbeitungszeit eines
Ausführungscodes, der erzeugt wird durch Optimierung eines
Compilers, genau in Beziehung zu setzen mit jeder Anweisung
in einem Steuerprogramm, das der Verarbeitungszeit
entspricht, obwohl die Herstellung dieser Beziehung bislang
sehr schwer war.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
ist es möglich eine schrittweise Ausführung durchzuführen, in
den eine Anweisungsliste in Beziehung gesetzt wird mit dem
Ausführungsteil eines Steuerprogramms, das beschrieben wird
mit einer höheren Programmiersprache, das erhalten wird durch
Umwandlung der Anweisungsliste, und Anzeigen des
Ausführungsteils. Daher kann der Vorteil erzielt werden, dass
es möglich ist Operationen einer zu betätigenden
programmierbaren Steuerung zu bestätigen, in Übereinstimmung
mit Ausführungscodes, die erhalten werden durch Kompilieren
einer Anweisungsliste auf der schrittweisen Ausführungsebene
einer Anweisungsliste, die beschrieben wird von einem
Benutzer, und die Entwicklung und das Debugging eines
Steuerprogramms zu vereinfachen.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
wird ein gegenwärtig ausgeführter Ausführungscode zu einer
vorbestimmten Zeit in einen neuen Ausführungscode
umgewandelt, in Übereinstimmung mit den Differenzdaten
zwischen dem gegenwärtig ausgeführten Ausführungscode und dem
neuen Ausführungscode, und der veränderte Ausführungscode
wird kontinuierlich ausgeführt. Daher, selbst wenn
Ausführungscodes geändert werden müssen, kann der Vorteil
erzielt werden, dass es möglich ist eine programmierbare
Steuereinrichtung Ausführungscodes ändern zu lassen und einen
Ausführungszustand beizubehalten, durch Herunterladen nicht
eines neuen Ausführungscodes, sondern der Differenzdaten,
welche kleiner sind als der Ausführungscode, und damit können
Speicheressourcen der programmierbaren Steuereinrichtung
eingespart werden.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
werden ein für die Entwicklung oder das Debugging notwendige
Steuerprogramm und Ausführungscodes vereinigt und in einer
programmierbaren Steuereinrichtung gespeichert. Daher kann
der Vorteil erzielt werden, dass es möglich ist das
Steuerprogramm aus Ausführungscodes herauszuholen, und eine
Konsistenz bzw. Übereinstimmung zwischen den Ausführungscodes
und dem Steuerprogramm zu verwirklichen, wenn das
Steuerprogramm verloren geht oder das Programm direkt
betätigt wird aus einer programmierbaren Steuereinrichtung.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung
werden ein für die Entwicklung oder das Debugging notwendige
Steuerprogramm und tatsächlich auszuführende Ausführungscodes
vereinigt und als Ausführungscodes neu erzeugt. Daher kann
der Vorteil erzielt werden, dass es möglich ist das
Steuerprogramm aus den Ausführungscodes herauszuholen, und
eine Konsistenz bzw. Übereinstimmung zwischen den
Ausführungscodes und dem Steuerprogramm herzustellen, wenn
das Steuerprogramm verloren geht oder das Programm betätigt
wird aus einer programmierbaren Steuerung an einer
Arbeitsstelle.
Gemäß einer weiteren Ausführung der vorliegenden Erfindung,
beim Interpretieren eines Steuerprogramms zu
Ausführungscodes, werden Anweisungen des Steuerprogramms
einem Mustervergleich unterzogen, beginnend mit einer
Anweisung, die am häufigsten auftritt. Daher kann der Vorteil
erzielt werden, dass es möglich ist schnell einen
Ausführungscode zu finden, der geeignet ist für jede
Anweisung des Steuerprogramms, wenn das Programm
interpretiert wird, und damit die Steuerprogramm-
Ausführungszeit zu verringern.
Nach einer weiteren Ausführung der vorliegenden Erfindung,
wenn ein Steuerprogramm zu Ausführungscodes kompiliert wird,
werden Anweisungen einem Mustervergleich unterzogen,
beginnend mit einer Anweisung, die am häufigsten auftritt.
Daher kann der Vorteil erzielt werden, dass es möglich ist
schnell einen Ausführungscode zu finden, der geeignet ist für
jede Anweisung des Steuerprogramms, um die Kompilierungsdauer
des Steuerprogramms zu verringern.
Nach einer weiteren Ausführung der vorliegenden Erfindung
kann der Vorteil erzielt werden, dass es möglich ist
Funktionen der obigen Vorrichtung zur Unterstützung der
Steuerprogrammentwicklung und der Vorrichtung zur
Unterstützung der Steuerprogrammentwicklung auf einer
sogenannten Software-programmierbaren Steuereinrichtung zu
verwirklichen, wodurch es möglich wird ein Steuerprogramm zu
entwickeln und auch die sequentielle Verarbeitung
durchzuführen.
Obwohl die Erfindung beschrieben wurde unter Bezugnahme auf
spezifische Ausführungen, um damit eine vollständige und
klare Offenbarung bereitzustellen, sind die angehängten
Ansprüche nicht durch die Beschreibung beschränkt, sondern
umfassen alle Modifikationen und Alternativkonstruktionen,
die einem Fachmann in den Sinn kommen, und welche den hier
dargelegten grundsätzlichen Lehren entsprechen.
Claims (17)
1. Programmierbare Steuereinrichtung (10), welche
ausgebildet ist eine sequentielle Verarbeitung in
Übereinstimmung mit Ausführungscodes durchzuführen, die
erzeugt werden durch Kompilieren eines Steuerprogramms,
wobei die programmierbare Steuereinrichtung (10)
umfasst:
eine Speichereinheit (14), welche die Ausführungscodes speichert; und
einen Universal-Mikroprozessor (11), der mit einer Beschleunigungseinheit (13) versehen ist, wie einer Pipeline-Logik und/oder einem Cache, in welcher die Ausführungscodes direkt ausgeführt werden.
eine Speichereinheit (14), welche die Ausführungscodes speichert; und
einen Universal-Mikroprozessor (11), der mit einer Beschleunigungseinheit (13) versehen ist, wie einer Pipeline-Logik und/oder einem Cache, in welcher die Ausführungscodes direkt ausgeführt werden.
2. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ausgebildet ist ein
Steuerprogramm zu entwickeln, das beschrieben wird mit
einer sequentiellen Steuerungssprache, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung umfasst:
einen Compiler (100, 105), welcher das Steuerprogramm zu Codes kompiliert, die direkt ausführbar sind durch einen Universal-Mikroprozessor (11), welcher mit einer Beschleunigungseinheit (13) versehen ist, wie einer Pipeline-Logik und/oder einem Cache.
einen Compiler (100, 105), welcher das Steuerprogramm zu Codes kompiliert, die direkt ausführbar sind durch einen Universal-Mikroprozessor (11), welcher mit einer Beschleunigungseinheit (13) versehen ist, wie einer Pipeline-Logik und/oder einem Cache.
3. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ausgebildet ist ein
Steuerprogramm zu entwickeln, das beschrieben wird mit
einer sequentiellen Steuerungssprache, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung umfasst:
eine Steuerprogramm-Aufteilungseinheit, welche das Steuerprogramm in eine Vielzahl von Blöcken unterteilt; und
einen Compiler (100, 105), welcher alle oder einige der Blöcke zu Ausführungscodes kompiliert, die direkt ausführbar sind durch eine programmierbare Steuereinrichtung (10).
eine Steuerprogramm-Aufteilungseinheit, welche das Steuerprogramm in eine Vielzahl von Blöcken unterteilt; und
einen Compiler (100, 105), welcher alle oder einige der Blöcke zu Ausführungscodes kompiliert, die direkt ausführbar sind durch eine programmierbare Steuereinrichtung (10).
4. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ausgebildet ist ein
Steuerprogramm zu entwickeln, das beschrieben wird mit
einer sequentiellen Steuerungssprache, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung umfasst:
eine Steuerprogramm-Aufteilungseinheit, welche das Steuerprogramm in eine Vielzahl von Blöcken unterteilt;
eine Steuerprogramm-Umwandlungseinheit (101), welche alle oder einige der Blöcke umwandelt in Steuerprogramme einer höheren Sprache, die beschrieben werden mit einer höheren Sprache, die von einem Universalrechner lesbar ist, für jeden betroffenen Block; und
einen Compiler (102), welcher alle oder einige der höheren Programmiersprachen, welche von einem Universalrechner lesbar sind, entsprechend jedem Block kompiliert, in Codes, die von einer programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
eine Steuerprogramm-Aufteilungseinheit, welche das Steuerprogramm in eine Vielzahl von Blöcken unterteilt;
eine Steuerprogramm-Umwandlungseinheit (101), welche alle oder einige der Blöcke umwandelt in Steuerprogramme einer höheren Sprache, die beschrieben werden mit einer höheren Sprache, die von einem Universalrechner lesbar ist, für jeden betroffenen Block; und
einen Compiler (102), welcher alle oder einige der höheren Programmiersprachen, welche von einem Universalrechner lesbar sind, entsprechend jedem Block kompiliert, in Codes, die von einer programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
5. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach Anspruch 3 oder 4, wobei
die programmierbare Steuereinrichtung (10) versehen ist
mit einem Universal-Mikroprozessor (11), der mit einer
Beschleunigungseinheit (13) versehen ist, wie einer
Pipeline-Logik und/oder einem Cache.
6. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach Anspruch 3, 4 oder 5,
wobei das Steuerprogramm ein Leiter-Diagramm oder eine
Anweisungsliste ist, die aus einem Leiter-Diagramm
erzeugt wurde, und die Steuerprogramm-Aufteilungseinheit
das Steuerprogramm unterteilt in eine Vielzahl von
Blöcken an einer vorbestimmten Sprosse in dem Leiter-
Diagramm, um eine Programmdatei für jeden betroffenen
Block zu erzeugen.
7. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach Anspruch 3, 4 oder 5,
wobei das Steuerprogramm ein Leiter-Diagramm oder eine
Anweisungsliste ist, die aus einem Leiter-Diagramm
erzeugt wurde, und die Steuerprogramm-Aufteilungseinheit
das Steuerprogramm in eine Vielzahl von Blöcken
unterteilt an einer vorbestimmten Sprosse, die als
Sprungziel für eine Sprunganweisung in dem Leiter-
Diagramm dient, um eine Programmdatei für jeden
betroffenen Block zu erzeugen.
8. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach Anspruch 3, 4 oder 5,
wobei das Steuerprogramm ein Leiter-Diagramm oder eine
Anweisungsliste ist, die aus einem Leiter-Diagramm
erzeugt wird, und die Steuerprogramm-Aufteilungseinheit
alle oder einige Sprossen extrahiert, die Anweisungen an
eine gemeinsame Eingabe- oder Ausgabevorrichtung aus dem
Leiter-Diagramm extrahiert, einen Block von allen oder
einigen der extrahierten Sprossen bildet, und eine
Programmdatei für jeden betroffenen Block erzeugt.
9. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach einem der Ansprüche 2 bis
8, ferner umfassend:
eine Optimierungsfilterungseinheit (104), welche das Steuerprogramm rekonstruiert zu einem optimalen Codesystem, durch Ausschließung von nicht gerufenen Variablen und redundanten Codes, und Umordnung von Codes zur lokalen Anordnung von Anweisungen für eine gemeinsame Eingabe- oder Ausgabevorrichtung, wobei ein Steuerprogramm, das durch die Optimierungsfilterungseinheit (104) optimiert wurde, anstelle des bisherigen Steuerprogramms verwendet wird.
eine Optimierungsfilterungseinheit (104), welche das Steuerprogramm rekonstruiert zu einem optimalen Codesystem, durch Ausschließung von nicht gerufenen Variablen und redundanten Codes, und Umordnung von Codes zur lokalen Anordnung von Anweisungen für eine gemeinsame Eingabe- oder Ausgabevorrichtung, wobei ein Steuerprogramm, das durch die Optimierungsfilterungseinheit (104) optimiert wurde, anstelle des bisherigen Steuerprogramms verwendet wird.
10. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung nach einem der Ansprüche 2 bis
9, ferner umfassend:
eine Einheit zur Grobschätzung der Verarbeitungszeit, welche eine Beziehungstabelle hat, die ein Probenprogramm, deren Verarbeitungszeit bereits bekannt ist, in Beziehung setzt mit dem Steuerprogramm, das den Ausführungscodes entspricht, um die Ausführungszeit der sequentiellen Verarbeitung einer programmierbaren Steuereinrichtung (10) in Übereinstimmung mit der Beziehungstabelle abzuschätzen.
eine Einheit zur Grobschätzung der Verarbeitungszeit, welche eine Beziehungstabelle hat, die ein Probenprogramm, deren Verarbeitungszeit bereits bekannt ist, in Beziehung setzt mit dem Steuerprogramm, das den Ausführungscodes entspricht, um die Ausführungszeit der sequentiellen Verarbeitung einer programmierbaren Steuereinrichtung (10) in Übereinstimmung mit der Beziehungstabelle abzuschätzen.
11. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ein Steuerprogramm
entwickelt, das beschrieben wird mit einer sequentiellen
Steuerungssprache, wie einem Leiter-Diagramm oder einer
Anweisungsliste, wobei die Vorrichtung (20) zur
Unterstützung der Steuerprogrammentwicklung umfasst:
eine Steuerprogramm-Umwandlungseinheit (101, 103), welche das Steuerprogramm in ein Steuerprogramm einer höheren Programmiersprache umwandelt, das beschrieben wird durch eine höhere Programmiersprache, die von einem Universalrechner lesbar ist;
eine Debugging-Code-Erzeugungseinheit (110), welche ein Debugging-Steuerprogramm erzeugt durch Einfügen einer betroffenen Zeilennummer in einen Teil, der jeder Zeile entspricht, die die Anweisungsliste bildet, in Quellcodes, die das Steuerprogramm der höheren Programmiersprache bilden; und
eine Debugging-Ausführungseinheit(40), welche jede Zeile der Anweisungsliste und den Ausführungsteil des Steuerprogramms der höheren Programmiersprache anzeigt, indem erstere mit letzterem in Beziehung gesetzt wird.
eine Steuerprogramm-Umwandlungseinheit (101, 103), welche das Steuerprogramm in ein Steuerprogramm einer höheren Programmiersprache umwandelt, das beschrieben wird durch eine höhere Programmiersprache, die von einem Universalrechner lesbar ist;
eine Debugging-Code-Erzeugungseinheit (110), welche ein Debugging-Steuerprogramm erzeugt durch Einfügen einer betroffenen Zeilennummer in einen Teil, der jeder Zeile entspricht, die die Anweisungsliste bildet, in Quellcodes, die das Steuerprogramm der höheren Programmiersprache bilden; und
eine Debugging-Ausführungseinheit(40), welche jede Zeile der Anweisungsliste und den Ausführungsteil des Steuerprogramms der höheren Programmiersprache anzeigt, indem erstere mit letzterem in Beziehung gesetzt wird.
12. Programmierbare Steuereinrichtung (10), welche
ausgebildet ist eine sequentielle Verarbeitung in
Übereinstimmung mit Ausführungscodes durchzuführen, die
erzeugt werden durch Kompilieren eines Steuerprogramms,
umfassend:
eine erste Speichereinheit, welche die Ausführungscodes speichert;
eine zweite Speichereinheit, welche die Daten für die Differenz zwischen einem in der ersten Speichereinheit gespeicherten Ausführungscodes und einem neuen Ausführungscode speichert;
einen Mikroprozessor, in dem die Ausführungscodes direkt ausgeführt werden; und
eine Patch-Verarbeitungseinheit, welche einen gegenwärtig ausgeführten Ausführungscode zu einer vorbestimmten Zeit in einen neuen Ausführungscode umwandelt, entsprechend den Differenzdaten, und welche den veränderten Ausführungscode kontinuierlich ausführt.
eine erste Speichereinheit, welche die Ausführungscodes speichert;
eine zweite Speichereinheit, welche die Daten für die Differenz zwischen einem in der ersten Speichereinheit gespeicherten Ausführungscodes und einem neuen Ausführungscode speichert;
einen Mikroprozessor, in dem die Ausführungscodes direkt ausgeführt werden; und
eine Patch-Verarbeitungseinheit, welche einen gegenwärtig ausgeführten Ausführungscode zu einer vorbestimmten Zeit in einen neuen Ausführungscode umwandelt, entsprechend den Differenzdaten, und welche den veränderten Ausführungscode kontinuierlich ausführt.
13. Programmierbare Steuereinrichtung (10), welche
ausgebildet ist eine sequentielle Verarbeitung
durchzuführen gemäß Ausführungscodes, die erzeugt werden
durch Kompilieren eines Steuerprogramms, wobei die
programmierbare Steuereinrichtung (10) umfasst:
eine Speichereinheit, welche die Ausführungscodes speichert; und
einen Mikroprozessor, in dem die Ausführungscodes direkt ausgeführt werden,
wobei die Ausführungscodes Binärdaten enthalten, die erzeugt werden durch Komprimieren des Steuerprogramms.
eine Speichereinheit, welche die Ausführungscodes speichert; und
einen Mikroprozessor, in dem die Ausführungscodes direkt ausgeführt werden,
wobei die Ausführungscodes Binärdaten enthalten, die erzeugt werden durch Komprimieren des Steuerprogramms.
14. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ausgebildet ist ein
Steuerprogramm zu entwickeln, das beschrieben wird mit
einem sequentiellen Steuerprogramm, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung umfasst:
eine Komprimiereinheit (140), welche das Steuerprogramm komprimiert, um eine komprimierte Datei zu erzeugen;
eine Code-Umwandlungseinheit (101b), welche komprimierte Daten erzeugt, die erhalten werden durch Umwandlung der komprimierten Datei in das Codesystem des Steuerprogramms; und
eine Kompiliereinheit (102), welche das Steuerprogramm mit den komprimierten Daten kombiniert, und das kombinierte Ergebnis zu Codes kompiliert, die von einer programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
eine Komprimiereinheit (140), welche das Steuerprogramm komprimiert, um eine komprimierte Datei zu erzeugen;
eine Code-Umwandlungseinheit (101b), welche komprimierte Daten erzeugt, die erhalten werden durch Umwandlung der komprimierten Datei in das Codesystem des Steuerprogramms; und
eine Kompiliereinheit (102), welche das Steuerprogramm mit den komprimierten Daten kombiniert, und das kombinierte Ergebnis zu Codes kompiliert, die von einer programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
15. Programmierbare Steuereinrichtung (10), welche
ausgebildet ist eine sequentielle Verarbeitung
durchzuführen in Übereinstimmung mit einem
Steuerprogramm, das beschrieben wird mit einer
sequentiellen Steuerungssprache, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
programmierbare Steuereinrichtung (10) umfasst:
eine Speichereinheit, welche das Steuerprogramm speichert;
eine Anweisungs-Zähleinheit (171), welche die Auftrittshäufigkeit jeder für das Steuerprogramm verwendeten Anweisung zählt;
eine Mustervergleichstabelle-Erzeugungseinheit (172), welche eine Mustervergleichstabelle erzeugt, in welcher Anweisungen aufgelistet sind, beginnend mit der höchsten Auftrittshäufigkeit, entsprechend der Ergebnisse, die von der Anweisungszähleinheit (171) gezählt wurden; und
eine Interpretiereinheit (161 + 162 + 180), welche das Steuerprogramm ausführt während des Mustervergleichs der in der Mustervergleichstabelle gelisteten Anweisungen, um das Steuerprogramm in Ausführungscodes zu interpretieren, die von der programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
eine Speichereinheit, welche das Steuerprogramm speichert;
eine Anweisungs-Zähleinheit (171), welche die Auftrittshäufigkeit jeder für das Steuerprogramm verwendeten Anweisung zählt;
eine Mustervergleichstabelle-Erzeugungseinheit (172), welche eine Mustervergleichstabelle erzeugt, in welcher Anweisungen aufgelistet sind, beginnend mit der höchsten Auftrittshäufigkeit, entsprechend der Ergebnisse, die von der Anweisungszähleinheit (171) gezählt wurden; und
eine Interpretiereinheit (161 + 162 + 180), welche das Steuerprogramm ausführt während des Mustervergleichs der in der Mustervergleichstabelle gelisteten Anweisungen, um das Steuerprogramm in Ausführungscodes zu interpretieren, die von der programmierbaren Steuereinrichtung (10) direkt ausführbar sind.
16. Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung, welche ausgebildet ist ein
Steuerprogramm zu entwickeln, das beschrieben wird mit
einer sequentiellen Steuerungssprache, wie einem Leiter-
Diagramm oder einer Anweisungsliste, wobei die
Vorrichtung (20) zur Unterstützung der
Steuerprogrammentwicklung umfasst:
eine Anweisungszähleinheit (171), welche die Auftrittshäufigkeit jeder für das Steuerprogramm verwendeten Anweisung zählt;
eine Mustervergleichstabelle-Erzeugungseinheit (172), welche eine Mustervergleichstabelle erzeugt, in welcher Anweisungen gelistet sind, beginnend mit der höchsten Auftrittshäufigkeit, in Übereinstimmung mit Ergebnissen, die von der Anweisungszähleinheit (171) gezählt wurden; und
einen Compiler (102), welcher das Steuerprogramm kompiliert zu Codes, die direkt ausführbar sind durch die programmierbare Steuereinrichtung (10), während die in der Mustervergleichstabelle gelisteten Anweisungen in der Reihenfolge einem Mustervergleich unterzogen werden.
eine Anweisungszähleinheit (171), welche die Auftrittshäufigkeit jeder für das Steuerprogramm verwendeten Anweisung zählt;
eine Mustervergleichstabelle-Erzeugungseinheit (172), welche eine Mustervergleichstabelle erzeugt, in welcher Anweisungen gelistet sind, beginnend mit der höchsten Auftrittshäufigkeit, in Übereinstimmung mit Ergebnissen, die von der Anweisungszähleinheit (171) gezählt wurden; und
einen Compiler (102), welcher das Steuerprogramm kompiliert zu Codes, die direkt ausführbar sind durch die programmierbare Steuereinrichtung (10), während die in der Mustervergleichstabelle gelisteten Anweisungen in der Reihenfolge einem Mustervergleich unterzogen werden.
17. Programmierbare Steuereinrichtung (10) nach einem der
Ansprüche 1, 12, 13 oder 15, umfassend die Vorrichtung
(20) zur Unterstützung der Steuerprogrammentwicklung
nach einem Ansprüche 2 bis 11, 14 oder 16.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000289373A JP2002099312A (ja) | 2000-09-22 | 2000-09-22 | プログラマブルコントローラおよび制御プログラム開発支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10116809A1 true DE10116809A1 (de) | 2002-05-16 |
Family
ID=18772792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10116809A Withdrawn DE10116809A1 (de) | 2000-09-22 | 2001-04-04 | Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung |
Country Status (3)
Country | Link |
---|---|
US (1) | US7203931B2 (de) |
JP (1) | JP2002099312A (de) |
DE (1) | DE10116809A1 (de) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1621946A1 (de) * | 2004-07-30 | 2006-02-01 | Siemens Aktiengesellschaft | Ablage von Projektierungsdaten in einem Automatisierungssystem |
EP1621945A1 (de) * | 2004-07-30 | 2006-02-01 | Siemens Aktiengesellschaft | Konsistenzsicherung in einem Automatisierungssystem |
DE102011117758A1 (de) * | 2011-11-05 | 2013-05-08 | Robert Bosch Gmbh | Verfahren zur automatischen Erzeugung von Anwenderprogmmcode für eine speicherprogrammierbare Steuerung zur Steuerung einer Maschine |
DE112012006107B4 (de) * | 2012-03-26 | 2015-12-03 | Mitsubishi Electric Corp. | Sequenzprogramm-Fehlerbehebungs-Hilfsvorrichtung |
US10990073B2 (en) | 2016-08-30 | 2021-04-27 | Mitsubishi Electric Corporation | Program editing device, program editing method, and computer readable medium |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10060206A1 (de) * | 2000-12-04 | 2002-06-13 | Siemens Ag | Programmiergerät |
US7257620B2 (en) * | 2001-09-24 | 2007-08-14 | Siemens Energy & Automation, Inc. | Method for providing engineering tool services |
JP3472775B2 (ja) * | 2001-10-31 | 2003-12-02 | 株式会社アプリックス | 中間コード実行システム、中間コード実行方法および中間コード実行プログラム |
EP1331643B1 (de) * | 2002-01-29 | 2009-12-16 | Agere Systems Inc. | Programmierungstechnik für differentiellen Flash-Speicher |
US7383443B2 (en) * | 2002-06-27 | 2008-06-03 | Microsoft Corporation | System and method for obfuscating code using instruction replacement scheme |
US7805716B2 (en) * | 2002-12-10 | 2010-09-28 | Siemens Aktiengesellschaft | Method for executing a first software program, developed for a stored-program controller, on a computer |
CN100456182C (zh) * | 2004-04-15 | 2009-01-28 | 三菱电机株式会社 | 可编程逻辑控制器的外围装置及其程序生成方法 |
JP3910196B2 (ja) * | 2004-10-21 | 2007-04-25 | ファナック株式会社 | シーケンスプログラムの編集装置 |
WO2006082878A1 (ja) | 2005-02-03 | 2006-08-10 | Mitsubishi Denki Kabushiki Kaisha | プログラムコード生成支援装置及び方法、プログラム実行装置及び方法並びにプログラムコード圧縮処理装置及び方法並びにそれらのプログラム |
US8448158B2 (en) * | 2005-02-03 | 2013-05-21 | Mitsubishi Electric Corporation | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
US20060200807A1 (en) * | 2005-03-03 | 2006-09-07 | International Business Machines Corporation | Breakpoint timers |
US20060206442A1 (en) * | 2005-03-08 | 2006-09-14 | Rockwell Automation Technologies, Inc. | Systems and methods for managing control systems through java extensions |
JP4038220B2 (ja) * | 2005-09-27 | 2008-01-23 | ソフトバンクモバイル株式会社 | プログラム開発支援装置 |
US7424328B2 (en) * | 2006-01-03 | 2008-09-09 | De Silvio Louis F | Apparatus and method for wireless process control |
US7565654B2 (en) * | 2006-01-10 | 2009-07-21 | National Instruments Corporation | Programmatic control of tasks in a programmable logic controller |
US7568198B2 (en) * | 2006-01-10 | 2009-07-28 | National Instruments Corporation | Control of tasks in a programmable logic controller |
EP1865421B1 (de) * | 2006-06-09 | 2019-02-20 | Siemens Aktiengesellschaft | System zur Erstellung dynamischer Webseiten |
DE112006003926B4 (de) | 2006-06-13 | 2016-12-01 | Mitsubishi Electric Corp. | Peripheriegerät für einen programmierbaren Logik-Controller |
US8418128B2 (en) * | 2006-06-29 | 2013-04-09 | Honeywell International Inc. | Graphical language compiler system |
DE102007003580A1 (de) * | 2007-01-24 | 2008-07-31 | Giesecke & Devrient Gmbh | Installieren eines Patch in einem Smartcard-Modul |
JP5141095B2 (ja) * | 2007-05-23 | 2013-02-13 | 東芝三菱電機産業システム株式会社 | プラントコントローラシステム |
US8689194B1 (en) * | 2007-08-20 | 2014-04-01 | The Mathworks, Inc. | Optimization identification |
US20090083719A1 (en) * | 2007-09-20 | 2009-03-26 | Delta Electronics, Inc. | Method of compiling machine code program for programmable logic controller |
JP2009086898A (ja) * | 2007-09-28 | 2009-04-23 | Delta Electronics Inc | プログラム可能な論理制御装置用マシーンコード・プログラムのコンパイル法 |
US8341607B2 (en) * | 2008-03-13 | 2012-12-25 | International Business Machines Corporation | Condensing pattern matcher generation for intermediate language patterns |
JP5262765B2 (ja) * | 2009-01-29 | 2013-08-14 | 株式会社明電舎 | Plcのプログラム変換ツール |
US9135948B2 (en) | 2009-07-03 | 2015-09-15 | Microsoft Technology Licensing, Llc | Optical medium with added descriptor to reduce counterfeiting |
CA2675692C (en) * | 2009-08-28 | 2012-03-13 | Ibm Canada Limited - Ibm Canada Limitee | Compiler-assisted program source code filter |
JP2012053676A (ja) * | 2010-09-01 | 2012-03-15 | Tokyo Denki Gijutsu Kogyo Kk | プログラム変換処理装置、方法及びプログラム、並びに記録媒体 |
US9195810B2 (en) * | 2010-12-28 | 2015-11-24 | Microsoft Technology Licensing, Llc | Identifying factorable code |
WO2012104959A1 (ja) * | 2011-01-31 | 2012-08-09 | 三菱電機株式会社 | モーションsfcプログラム部品作成装置 |
KR101243437B1 (ko) * | 2011-02-21 | 2013-03-13 | 성균관대학교산학협력단 | Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템 |
US8892951B2 (en) * | 2011-09-28 | 2014-11-18 | International Business Machines Corporation | Fault localization for data-centric programs |
US20150153725A1 (en) * | 2011-11-11 | 2015-06-04 | Ecs Solutions Inc. | System and method for batch control processing |
US9311434B1 (en) * | 2012-03-26 | 2016-04-12 | The Mathworks, Inc. | Ladder logic modeling and simulation |
DE102012010102A1 (de) * | 2012-05-22 | 2013-11-28 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Datenverarbeitung |
US20140059518A1 (en) * | 2012-08-24 | 2014-02-27 | Velocio Networks, Inc. | Method for Object Oriented Programming of Programmable Logic Controllers in Graphical Programming Languages |
US10133557B1 (en) * | 2013-01-11 | 2018-11-20 | Mentor Graphics Corporation | Modifying code to reduce redundant or unnecessary power usage |
US10386827B2 (en) | 2013-03-04 | 2019-08-20 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics platform |
JP5619328B1 (ja) * | 2013-11-20 | 2014-11-05 | 三菱電機株式会社 | シーケンスプログラム作成支援装置 |
US10282187B2 (en) | 2014-07-03 | 2019-05-07 | Oracle International Corporation | Efficient application patching in heterogeneous computing environments |
US9886263B2 (en) * | 2015-03-24 | 2018-02-06 | Oracle International Corporation | Techniques for efficient application configuration patching |
JP6550268B2 (ja) * | 2015-05-27 | 2019-07-24 | 株式会社キーエンス | プログラム作成支援装置、プログラムおよび判別方法 |
KR102478005B1 (ko) * | 2016-04-28 | 2022-12-14 | 엘에스일렉트릭(주) | Plc 사용자 프로그램 분석 방법 |
JP6356726B2 (ja) | 2016-05-19 | 2018-07-11 | ファナック株式会社 | ラダープログラム解析装置 |
JP6827340B2 (ja) * | 2017-02-17 | 2021-02-10 | 三菱重工エンジニアリング株式会社 | ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム |
US10922074B2 (en) * | 2017-09-28 | 2021-02-16 | Oracle International Corporation | Deferred state mutation |
JP7024679B2 (ja) * | 2018-10-05 | 2022-02-24 | オムロン株式会社 | 開発支援プログラム、開発支援装置、および開発支援方法 |
JP6950665B2 (ja) | 2018-11-02 | 2021-10-13 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
JP6954256B2 (ja) | 2018-11-02 | 2021-10-27 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
JP6795568B2 (ja) * | 2018-11-07 | 2020-12-02 | ファナック株式会社 | トレース装置及びプログラマブルコントローラ |
EP3770703B1 (de) * | 2019-07-22 | 2022-12-28 | Siemens Aktiengesellschaft | Verfahren zur konfigurierung einer industriellen automatisierungskomponente, industrielle automatisierungskomponente, computerprogramm und computerlesbares medium |
JP6854982B1 (ja) * | 2020-03-26 | 2021-04-07 | 三菱電機株式会社 | プログラミング支援プログラム、プログラミング支援装置およびプログラミング支援方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59212907A (ja) | 1983-05-18 | 1984-12-01 | Matsushita Electric Ind Co Ltd | プログラマブルコントロ−ラ |
US4716541A (en) * | 1984-08-02 | 1987-12-29 | Quatse Jesse T | Boolean processor for a progammable controller |
US4722071A (en) * | 1985-04-19 | 1988-01-26 | Pertron Controls, Corporation | Compiler for evaluating Boolean expressions |
JPH0511827A (ja) * | 1990-04-23 | 1993-01-22 | Canon Inc | 工業用自動装置の実行時間出力方式 |
US5285376A (en) * | 1991-10-24 | 1994-02-08 | Allen-Bradley Company, Inc. | Fuzzy logic ladder diagram program for a machine or process controller |
WO1993020497A1 (en) * | 1992-04-01 | 1993-10-14 | Pennsylvania Power & Light Company | Control system and method for the parallel operation of voltage regulators |
DK0664897T3 (da) * | 1992-10-19 | 1999-08-09 | Siemens Energy & Automat | Programmerbar højhastigheds logikcontroller |
US5453933A (en) | 1993-09-08 | 1995-09-26 | Hurco Companies, Inc. | CNC control system |
US5504902A (en) * | 1993-12-01 | 1996-04-02 | Patriot Sensors And Controls Corporation | Multi-language generation of control program for an industrial controller |
JPH07295612A (ja) | 1994-04-21 | 1995-11-10 | Japan Steel Works Ltd:The | 高級言語シーケンス命令プログラム生成装置および汎用シーケンサ |
US5508909A (en) * | 1994-04-26 | 1996-04-16 | Patriot Sensors And Controls | Method and systems for use with an industrial controller |
JPH08137521A (ja) | 1994-11-15 | 1996-05-31 | Toshiba Corp | プログラム管理方法 |
JP3476104B2 (ja) | 1995-03-14 | 2003-12-10 | オムロン株式会社 | デジタル制御装置 |
PL327615A1 (en) | 1996-01-17 | 1998-12-21 | Siemens Ag | Automation apparatus |
JPH11504457A (ja) * | 1996-02-16 | 1999-04-20 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | マルチメディア アプリケーション タイトルを実行するプラットフオーム サブシステムおよびそれを記憶する方法 |
US5857093A (en) * | 1996-09-20 | 1999-01-05 | Allen-Bradley Company, Llc | Cross-compiled simulation timing backannotation |
US5884080A (en) * | 1996-11-26 | 1999-03-16 | International Business Machines Corporation | System and method for instruction burst performance profiling for single-processor and multi-processor systems |
JP3405106B2 (ja) | 1997-01-28 | 2003-05-12 | 松下電工株式会社 | プログラマブルコントローラ |
JPH11306026A (ja) * | 1998-04-22 | 1999-11-05 | Toshiba Corp | コード最適化装置、コード最適化方法、及び、コード最適化プログラムを記録したコンピュータ読み取り可能な記録媒体 |
-
2000
- 2000-09-22 JP JP2000289373A patent/JP2002099312A/ja active Pending
-
2001
- 2001-02-07 US US09/777,954 patent/US7203931B2/en not_active Expired - Fee Related
- 2001-04-04 DE DE10116809A patent/DE10116809A1/de not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1621946A1 (de) * | 2004-07-30 | 2006-02-01 | Siemens Aktiengesellschaft | Ablage von Projektierungsdaten in einem Automatisierungssystem |
EP1621945A1 (de) * | 2004-07-30 | 2006-02-01 | Siemens Aktiengesellschaft | Konsistenzsicherung in einem Automatisierungssystem |
US7730483B2 (en) | 2004-07-30 | 2010-06-01 | Siemens Aktiengesellschaft | Storage of project-planning data in an automation system |
DE102011117758A1 (de) * | 2011-11-05 | 2013-05-08 | Robert Bosch Gmbh | Verfahren zur automatischen Erzeugung von Anwenderprogmmcode für eine speicherprogrammierbare Steuerung zur Steuerung einer Maschine |
DE112012006107B4 (de) * | 2012-03-26 | 2015-12-03 | Mitsubishi Electric Corp. | Sequenzprogramm-Fehlerbehebungs-Hilfsvorrichtung |
US9477578B2 (en) | 2012-03-26 | 2016-10-25 | Mitsubishi Electric Corporation | Sequence-program-debugging supporting apparatus |
US10990073B2 (en) | 2016-08-30 | 2021-04-27 | Mitsubishi Electric Corporation | Program editing device, program editing method, and computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
US20020059567A1 (en) | 2002-05-16 |
US7203931B2 (en) | 2007-04-10 |
JP2002099312A (ja) | 2002-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10116809A1 (de) | Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung | |
DE68923888T3 (de) | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode. | |
EP1904903B1 (de) | Verfahren zum bedienen und beobachten eines steuergeräts, hiermit korrespondierendes bedien-/beobachtungsgerät, steuergerät sowie maschine mit einem solchen steuergerät und verwendungen des verfahrens sowie datenspeichermedien | |
DE69324388T2 (de) | Speicherprogrammierbare Steuerung | |
DE112012006107B4 (de) | Sequenzprogramm-Fehlerbehebungs-Hilfsvorrichtung | |
DE69326004T2 (de) | Testapparat mit grosser Kapazität | |
DE112010005023T5 (de) | Programmerstellungsunterstützungsvorrichtung | |
DE10335989A1 (de) | Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung | |
DE19929821A1 (de) | Prozessor-basierendes Steuersystem mit intuitiven Programmierfähigkeiten | |
DE19524402C2 (de) | Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge | |
EP3629151A1 (de) | Verfahren zum ändern von modellen für die erzeugung von quellcode | |
DE102017215044B4 (de) | Verfahren zum Wechseln auf eine Firmware-Version auf einem elektrischen Steuergerät für ein Antriebssystem, elektrisches Steuergerät und Antriebssystem | |
EP0990964A1 (de) | Verfahren zum Betrieb eines Automatisierungssystems | |
DE69428951T2 (de) | Sprachverarbeitungssystem und -verfahren | |
DE10211426A1 (de) | Verfahren zur Durchführung eines Updates von Software-Programmen oder Software-Programmteilen | |
WO2004027608A2 (de) | System zur bereitstellung eines standard-frameworks für automatisierungsgeräte | |
EP3629107A1 (de) | Verfahren und einrichtung zur wiederherstellung einer entwicklungsumgebung für eine industrielle anwendung | |
EP1351109A1 (de) | Integriertes Entwurfs-, Programmier- und Dokumentationssystem für Automatisierungsgeräte | |
DE19828611C2 (de) | Datenverarbeitungsvorrichtung und zugehöriges Verfahren | |
EP1621945B1 (de) | Konsistenzsicherung in einem Automatisierungssystem | |
EP2085879A1 (de) | Verfahren zum Betrieb eines Programmiergerätes, Computerprogramm zur Implementierung des Verfahrens und nach dem Verfahren arbeitendes Programmiergerät oder Programmiergeräte mit einem solchen Computerprogramm | |
DE19637883A1 (de) | Verfahren zum Erstellen und Betreiben großer Programmsysteme auf einer Datenverarbeitungsanlage | |
DE10254530A1 (de) | Verfahren und System zur wissensbasierten Transformation von textuellen Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen | |
EP1079306B1 (de) | Verfahren zum Testen eines Programmsystems sowie zugehörige Datenverarbeitungsanlage und zugehöriges Programm | |
EP0695991B1 (de) | Programmierverfahren für einen Remanentspeicher einer speicherprogrammierbaren Steuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8139 | Disposal/non-payment of the annual fee |