DE10116809A1 - Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung - Google Patents

Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung

Info

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
Application number
DE10116809A
Other languages
English (en)
Inventor
Hideaki Minamide
Teruaki Tanaka
Yoshiko Shiomoto
Shigeru Nankaku
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE10116809A1 publication Critical patent/DE10116809A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

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.
(1) Sprossenaufteilungsverfahren
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.
(2) Sprungziel-Aufteilungsverfahren
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.
(3) Einheitenaufteilungsverfahren
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
DE10116809A 2000-09-22 2001-04-04 Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung Withdrawn DE10116809A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1621945A1 (de) * 2004-07-30 2006-02-01 Siemens Aktiengesellschaft Konsistenzsicherung in einem Automatisierungssystem
EP1621946A1 (de) * 2004-07-30 2006-02-01 Siemens Aktiengesellschaft Ablage von Projektierungsdaten 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 (52)

* Cited by examiner, † Cited by third party
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 株式会社アプリックス 中間コード実行システム、中間コード実行方法および中間コード実行プログラム
EP2148334B1 (de) * 2002-01-29 2011-11-09 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
WO2005101147A1 (ja) * 2004-04-15 2005-10-27 Mitsubishi Denki Kabushiki Kaisha プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法
JP3910196B2 (ja) * 2004-10-21 2007-04-25 ファナック株式会社 シーケンスプログラムの編集装置
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
EP1881401B1 (de) 2005-02-03 2018-08-08 Mitsubishi Denki Kabushiki Kaisha Unterstützungseinrichtung und verfahren für die programmcodeerzeugung, programmausführungseinrichtung und -verfahren, programmcodekomprimierungseinrichtung und verfahren, programm dafür
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
US7568198B2 (en) * 2006-01-10 2009-07-28 National Instruments Corporation Control of tasks in a programmable logic controller
US7565654B2 (en) * 2006-01-10 2009-07-21 National Instruments Corporation Programmatic control of tasks in a programmable logic controller
EP1865421B1 (de) * 2006-06-09 2019-02-20 Siemens Aktiengesellschaft System zur Erstellung dynamischer Webseiten
CN101467111B (zh) 2006-06-13 2011-02-16 三菱电机株式会社 可编程逻辑控制器的外围装置
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
US9342064B2 (en) * 2011-01-31 2016-05-17 Mitsubishi Electric Corporation Motion SFC program component creation device
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
EP2776961A4 (de) * 2011-11-11 2015-08-12 Ecs Solutions Inc System und verfahren für chargenkontrollverarbeitung
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

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
JPH08505483A (ja) * 1992-10-19 1996-06-11 シーメンス インダストリアル オートメイション インコーポレイテッド 高速プログラマブルロジックコントローラ
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 コード最適化装置、コード最適化方法、及び、コード最適化プログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1621945A1 (de) * 2004-07-30 2006-02-01 Siemens Aktiengesellschaft Konsistenzsicherung in einem Automatisierungssystem
EP1621946A1 (de) * 2004-07-30 2006-02-01 Siemens Aktiengesellschaft Ablage von Projektierungsdaten 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
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
DE112012006107B4 (de) Sequenzprogramm-Fehlerbehebungs-Hilfsvorrichtung
DE112010005023T5 (de) Programmerstellungsunterstützungsvorrichtung
DE10335989B4 (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
EP3542232A1 (de) Steuerung für eine industrielle automatisierungsanlage und verfahren zum programmieren und betreiben einer derartigen steuerung
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
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
DE102020130717A1 (de) Softwareprodukt zum Betreiben einer externen Systemgruppe in unterschiedlichen Konfigurationen
DE10017708B4 (de) Verfahren zum Steuern von Mechanismen und technischen Systemen, Einrichtung und Steuerungssoftware
EP2930624A1 (de) Verfahren und vorrichtung zum erzeugen und abarbeiten von testfällen
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
EP3273344A1 (de) Verfahren und programmiereinrichtung zur optimierung von quellcode für ein computerprogramm
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

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee