PatentDe  


Dokumentenidentifikation DE10109848B4 29.06.2006
Titel Programmierbarer Logik Controller und Programmerzeugungsvorrichtung zum Erzeugen eines Sequenzprogramms für einen programmierbaren Logik Controller
Anmelder Mitsubishi Denki K.K., Tokyo, JP
Erfinder Tanaka, Teruaki, Tokio/Tokyo, JP;
Minamide, Hideaki, Tokio/Tokyo, JP;
Nankaku, Shigeki, Tokio/Tokyo, JP;
Tsujido, Yoshinori, Tokio/Tokyo, JP
Vertreter HOFFMANN & EITLE, 81925 München
DE-Anmeldedatum 01.03.2001
DE-Aktenzeichen 10109848
Offenlegungstag 16.05.2002
Veröffentlichungstag der Patenterteilung 29.06.2006
Veröffentlichungstag im Patentblatt 29.06.2006
IPC-Hauptklasse G06F 9/312(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]
GEBIET DER ERFINDUNG

Die vorliegende Erfindung betrifft einen programmierbaren Logik Controller und eine Programmerzeugungsvorrichtung zum Erzeugen eines Sequenzprogramms für eine programmierbaren Logik Controller, die eine Speicheradresse so restrukturieren kann, dass zu verarbeitende Bitdaten an einer bestimmten Adresse in einem Speicher konzentriert werden, bei einer Durchführung einer Betriebsverarbeitung in einem Prozessor, und Steuerung einer externen Vorrichtung mittels einzelner Bits.

HINTERGRUND DER ERFINDUNG

Wenn auf einen realen Speicher oder eine reale I/O Einheit zugegriffen wird, übermittelt ein Universalprozessor ein Adresssignal, Steuersignale einschließlich einer Leseanweisung und einer Schreibeanweisung, und Daten im Fall einer Schreibeanweisung, zu einem peripheren LSI, allgemein Companion Chip (Begleit-Chip) genannt. Der Universalprozessor bezieht sich auf einen als Universalprodukt hergestellten Prozessor ohne Anpassung für eine bestimmte Anwendung, der auf dem kommerziellen Markt erhältlich ist, unter Prozessoren, die durch Halbleiterhersteller als Mikroprozessoren allgemein hergestellt werden. Beispiele für Universalprozessoren sind ein durch Intel hergestellter Pentium-Prozessor, ein durch NEC hergestellter VR5000-Prozessor, und ein durch Hitachi hergestellter SH3-Prozessor. In der folgenden Beschreibung wird eine Vorrichtung, die mit solch einem Universalprozessor und dem Companion-Chip ausgerüstet ist, als Programmausführvorrichtung bezeichnet.

9 zeigt ein Blockdiagramm einer Konfiguration einer konventionellen Programmausführvorrichtung und einer konventionellen Programmentwicklungs-Unterstützungsvorrichtung. Diese Figur zeigt insbesondere einen Fall, in dem eine Programmausführvorrichtung als ein programmierbarer Steuerer 10 und eine Programmentwicklungs-Unterstützungsvorrichtung als eine Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 verwendet wird. Der programmierbare Steuerer wird auch als programmierbarer Logiksteuerer (PLC) oder Sequenzer bezeichnet und arbeitet im allgemeinen in Übereinstimmung mit einer Beschreibung eines speziellen Steuerprogramms für eine Sequenzverarbeitung.

Wie in 9 gezeigt ist, weist der programmierbare Steuerer 10 einen Universalprozessor 11, einen Companion-Chip 12 und einen Speicher 13 auf. Der Universalprozessor 11, der Companion-Chip 12 und der Speicher 13 sind miteinander durch einen Systembus 15 verbunden. Dieser Systembus 15 umfasst einen Adressbus, einen Datenbus und einen Steuerbus.

Die Sequenzverarbeitung durch den programmierbaren Steuerer 10 wird im wesentlichen wie folgt durchgeführt. Ein Signal wird von einer Eingabevorrichtung empfangen, wie beispielsweise unterschiedlichen Typen von Sensoren oder verschiedenen Schaltern, und ein Steuersignal wird zu einer Ausgabevorrichtung übermittelt, wie beispielsweise einer Anzeige oder einem elektromagnetischen Relais, basierend auf einem Zustand des Eingangssignals oder in einer speziellen Ordnung bzw. Reihenfolge. Das Steuerprogramm ist ein Programm, das einen Ablauf der Sequenzverarbeitung für die Eingabevorrichtung oder Ausgabevorrichtung (d.h. einer in 9 gezeigten externen Vorrichtung 30) beschreibt.

Allgemein wird dieses Steuerprogramm unter Verwendung eines Universalcomputers entwickelt. Ein Universalcomputer ist ein Personal Computer oder Programmlader (d.h. eine in 9 gezeigte Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20). Das entwickelte Steuerprogramm wird durch eine Kommunikationsschnittstelle zu dem programmierbaren Steuerer übermittelt. Insbesondere ist der in 9 gezeigte programmierbare Steuerer vom Kompiliertyp, der einen durch die Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 erzeugten Ausführcode 9 empfängt und ausführt.

10 zeigt ein Diagramm zum Erklären eines Vorgangs zum Erzeugen des Ausführcodes 9 durch die Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20. In der Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 wandelt eine Wandlervorrichtung 101 ein Steuerprogramm 1, beschrieben in einer Sprache für Sequenzverarbeitung, wie ein Stufen-(Leiter-)diagramm oder eine Instruktionsliste, in ein Universalsprachenprogramm 5 um. Das Universalsprachenprogramm 5 ist ein in einer vielen Programmierern bekannten Programmiersprache geschriebenes Programm, das einfach entwickelt und korrigiert werden kann. Beispiele solch einer Programmiersprache sind die C-Sprache und die C++-Sprache. Die Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 kompiliert dann dieses Universalsprachenprogramm 5 mit einem Universalsprachenkompilierer 102, um dadurch den Ausführcode 9 zu erzeugen.

Mit anderen Worten kann mit der Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 der Ausführcode 9 von dem Steuerprogramm 1 wie beispielsweise der Instruktionsliste erhalten werden, der direkt in dem Universalprozessor 11 des programmierbaren Steuerers vom Kompiliertyp 10 ausgeführt werden kann.

Der in 9 gezeigte Companion-Chip 12 arbeitet nicht nur als ein Relais für den Universalprozessor 11, um einen Zugriff auf den Speicher 13 durchzuführen, sondern stellt in vielen Fällen auch eine Schnittstelle mit einer Periphereinheit wie der nach außen verbundenen externen Vorrichtung 30 dar. Es ist auch möglich, den Ausführcode 9 in dem Speicher 13 durch den Companion Chip 12 herabzuladen.

Weiter ist ein Speicherzuweisungs(mapped)-I/O-System als eins der Verfahren für den Universalprozessor 11 bekannt, um einen Zugriff auf die Periphereinheit wie die externe Vorrichtung 30, zum Ausführen einer Steuerung durchzuführen. Das Speicherzuweisungs-I/O-System weist ein Steuerregister der Periphereinheit einem Teil eines realen Speicheradressraumes des Speichers 13 zu (im folgenden als physikalischer Adressraum zu bezeichnen, um diesen realen Speicheradressraum von der Gesamtheit des Speichers 13 zu unterscheiden). In Übereinstimmung mit dem Speicherzuweisungs-I/O-System führt der Universalprozessor 11 einen Zugriff auf das Steuerregister der Periphereinheit durch, indem er eine Lade/Speicherinstruktion verwendet, auf ähnliche Weise wie beim Durchführen eines Zugriffs auf einen Arbeitsspeicher, um eine Betriebsverarbeitung durchzuführen.

Als ein weiteres Verfahren zum Steuern einer Periphereinheit ist ein I/O-Adresssystem bekannt, das ein Steuerregister der Periphereinheit einem I/O-Adressraum exklusiv für die Periphereinheit zuweist, separat von dem physikalischen Adressraum. In Übereinstimmung mit diesem I/O-Adresssystem führt der Universalprozessor 11 einen Zugriff auf das Steuerregister der Periphereinheit durch, indem er eine exklusive I/O-Adresszugriffsanweisung verwendet, wie beispielsweise eine IN-Anweisung oder eine OUT-Anweisung. Der in 9 gezeigte Universalprozessor 11 verwendet das I/O-Adresssystem, und hat einen physikalischen Adressraum 40 und einen I/O-Adressraum 50 innerhalb des Speichers 13.

Unter Bezugnahme auf 9, um einen Zugriff auf einen physikalischen Adressraum 40 in einem I/O-Adressraum 50 durchzuführen, übermittelt der Universalprozessor 11 entweder einen Eingabebefehl oder einen Ausgabebefehl und eine Adresse, um eine Adresse von angeforderten Daten zu bezeichnen, zu dem Companion-Chip 12.

Bei einem Empfang der Adresse extrahiert der Companion-Chip 12 die der angeforderten Adresse zugeordneten Daten aus dem physikalischen Adressraum oder dem I/O-Adressraum unter Verwendung einer voreingestellten Adressumwandlungsfunktion, und übermittelt diese Daten zu dem Universalprozessor 11. In dem Universalprozessor 11 ist eine Minimaleinheit von Eingabe/Ausgabedaten ein Byte (d.h. acht Bit). Der Universalprozessor 11 kann Daten von einem Byte, zwei Bytes, vier Bytes oder acht Bytes zu einem Zeitpunkt lesen.

11 zeigt ein Diagramm zum Erläutern einer Datenanordnung in einem physikalischen Adressraum. Darüber hinaus zeigt 12 ein Diagramm zum Erläutern einer Datenanordnung in einem I/O-Adressraum. In dem Steuerprogramm 1 des programmierbaren Steuerers 10 bezeichnet eine Vorrichtung mit einem X oder Y im Header (Kopfabschnitt) eines Variablen-Namens, eine Vorrichtung in dem I/O-Adressraum. Eine Vorrichtung mit einem M im Header eines Variablen-Namens bezeichnet eine Vorrichtung in dem physikalischen Adressraum. In 11 bezeichnet physikalischer Speicher einen Speicher dessen finaler Zugriff der Speicher 13, zum Beispiel ein DRAM, ist. In 12 bedeutet physikalische I/O Vorrichtung ein I/O, dessen finaler Zugriff ein Steuerregister ist, das in einer Periphereinheit wie der externen Vorrichtung 30 bereitgestellt ist.

Wie in 11 und 12 gezeigt, weisen der physikalische Adressraum 40 und der I/O-Adressraum 50 in einer Byte- (acht Bits) Einheit identifizierte Adressen auf. Der Universalprozessor 11 greift auf die Peripherieeinheit in einer Byteeinheit zu, und führt auch eine Betriebsverarbeitung in einer Byteeinheit durch.

Die durch den Universalprozessor 11 durchgeführte Verarbeitung ist grob in drei Typen unterteilt. Es gibt eine "Verarbeitung zum Lesen von Daten von außen in das Register auf dem Universalprozessor 11", "eine Betriebsverarbeitung zum Verarbeiten von Daten in dem Register", und "eine Verarbeitung zum Schreiben von Daten von dem Register nach außen". Der Universalprozessor 11 erzielt unterschiedliche Programmverarbeitungsarten durch Wiederholen dieser drei Verarbeitungstypen.

Der Universalprozessor 11 verarbeitet Daten in seinem Register in einem Takt, basierend auf einem Eingangstakt. Es benötigt jedoch einige Takte, damit der Universalprozessor 11 einen Datenzugriff von und nach außen durchführen kann, d.h. für das "Verarbeiten eines Lesens von Daten von außen" und das "Verarbeiten eines Schreibens von Daten nach außen". Daraus ergab sich das Problem, dass der größte Teil der Verarbeitungszeit für einen Zugriff auf Daten von und nach außen verbraucht wird, wenn ein Programm Inhalte mit vielfachem externen Datenzugriff aufweist. Dieses hat eine Geschwindigkeitsverminderung bei der Ausführung der Verarbeitung zur Folge.

Weiter gibt es im programmierbaren Steuerer 10 in 9 viele Arten von Verarbeitungen, die in einer Bit-Einheit durchgeführt werden. Wenn nur ein einziges spezifisches Bitdatum gelesen werden soll, muss der in dieser Vorrichtung installierte Universalprozessor 11 Bitdaten von mindestens acht Bits lesen, da der Adressenzugriff in dem programmierbaren Steuerer, wie oben beschrieben, in einer Byteeinheit erfolgt. In diesem Fall sind die verbleibenden sieben Bits nutzlos. Insbesondere dann, wenn es erwünscht ist, auf n Bitdaten zugegriffen werden soll, die jeweils unterschiedlichen Adressen zugeordnet sind, werden nutzlose Daten von 7 × n Bits gelesen.

Die obigen Probleme werden nun im Detail anhand von Beispielen beschrieben. 13 zeigt ein Diagramm eines Beispiels eines Stufendiagramms als ein Modus des Steuerprogramms 1. Das Stufendiagramm ist eine graphische Programmiersprache, die in dem programmierbaren Steuerer verwendet wird, und weist einen Programmiermodus auf, um hauptsächlich eine logische Verarbeitung von Bitinformationsdaten durchzuführen; ein Kontakt genannt (auch eine Bitvorrichtung genannt). Allgemein weist das Stufendiagramm einen Modus auf, in dem ein logischer Betriebsvorgang, wie eine UND-Verarbeitung und eine ODER-Verarbeitung, wiederholt zu einer notwendigen Bitvorrichtung durchgeführt wird, und der einen bestimmten Betriebsvorgang durchführt, wenn ein Ergebnis der logischen Verarbeitung true (wahr) ist.

Das in 13 gezeigte Stufendiagramm zeigt eine Realisierung einer Serie einer Sequenzverarbeitung, indem ein Zugriff auf Eingabevorrichtungen X0, X8 und Xf, Speichervorrichtungen M0 und M10, und Ausgabevorrichtungen Y0 bis Y8 durchgeführt wird.

In der Praxis wird das Stufendiagramm in eine Textprogrammiersprache umgewandelt, eine Instruktionsliste (IL) genannt, die eine Verarbeitung repräsentiert, die äquivalent zu der des ursprünglichen Stufendiagramms ist. Das Umwandlungswerkzeug (Umwandlungs-Tool) 101, in 10 gezeigt, und ein Programmsteuerer vom Interpretertyp handhaben diese Instruktionsliste direkt.

14 zeigt eine Instruktionsliste, die das in 13 gezeigte Stufendiagramm äquivalent darstellt. In 14 sind Zahlen (1) bis (9) Zeilenzahlen, die bereitgestellt sind, um die Erläuterung zu unterstützen. Diese Zahlen existieren nicht in der tatsächlichen Instruktionsliste. Die Inhalte der Verarbeitung für jede Zeilenzahl werden weiter unten beschrieben.

  • (1) Lese einen Wert des Bits X0 in das Register des Universalprozessors 11.
  • (2) Führe eine UND-Verarbeitung der geladenen Daten und eines Wertes des Bits X8 durch.
  • (3) Lese einen Wert des Bits Xf in das Register des Universalprozessors 11.
  • (4) Führe eine UND Verarbeitung der geladenen Daten und eines Wertes des Bits M8 durch.
  • (5) Führe eine ODER-Verarbeitung des Verarbeitungsergebnisses von Schritt (2) und des Verarbeitungsergebnisses von Schritt (4) durch.
  • (6) Führe eine ODER-Verarbeitung des Verarbeitungsergebnisses von Schritt (5) und dem Bit M0 durch.
  • (7) Schreibe das Verarbeitungsergebnis von Schritt (6) in das Bit Y0.
  • (8) Schreibe das Verarbeitungsergebnis von Schritt (6) in das Bit Y8.
  • (9) Schreibe das Verarbeitungsergebnis von Schritt (6) in das Bit M10.

Die Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 aus 1 muss dann die in 14 beschriebene Instruktionsliste durch das Umwandlungswerkzeug 101 in ein Universalsprachenprogramm umwandeln. Es wird angenommen, dass ein durch das Umwandlungswerkzeug 101 erzeugtes Universalsprachenprogramm in der C-Sprache beschrieben ist, und dass der Universalprozessor 11 beispielsweise ein Achtbitprozessor ist.

15 zeigt ein Ergebnis einer Umwandlung der in 14 gezeigten Instruktionsliste in der C-Sprache. In 15 sind Zahlen "001:" bis "024:" Zeilenzahlen, die zur Erläuterung dienen. Sie existieren nicht im tatsächlichen C-Sprachenquellprogramm. Die Verarbeitungsinhalte für jede Zeile werden weiter unten beschrieben. Um die Entsprechungen zwischen diesen Verarbeitungsinhalten und der in 14 gezeigten Instruktionsliste klarzustellen, werden die Zeilennummern in der in 14 gezeigten Instruktionsliste IL-Zeilennummern genannt, und die Zeilennummern in der in 15 gezeigten in der C Sprache geschriebenen Quellprogramm werden C-Zeilennummern genannt.

Unter Bezugnahme auf 15, C Zeilennummer "001:", besagt, dass die in dieser Quelle verwendeten Variablen r1 bis r8 Achtbitdaten ohne Vorzeichen vom Typ Character sind.

Wie oben beschrieben, wird die Eingabe/Ausgabe der in dem Speicher gespeicherten Daten in einer Byteeinheit durchgeführt. Daher ist es, um die Verarbeitung entsprechend der IL-Zeilenzahl (1) in der C Sprache zu realisieren, notwendig, 1-Byte-Daten zu verarbeiten, die das Bitdatum X0 enthalten, d.h. 1-Byte-Daten, die an einer Adresse "a000", die in dem I/O Adressraum gespeichert sind.

Daher werden in der C-Zeilennummer "002:" die an der Adresse "a000" gespeicherten 8-Bit-Daten in die Variable r1 substituiert (bzw. gelesen).

Die Verarbeitung der IL Zeilennummer (2) erfordert die Bitdaten X8. Daher werden in der C Zeilennummer "003:" die Daten an der Adresse "a001", die das Bitdatum X8 enthalten, in die Variable r2 gelesen.

In der C Zeilennummer "004:" wird der Wert der Variable r2 in die Variable r3 gelesen, um die Variable r3, wie später beschrieben, als eine Variable zu verwenden, die das Bitdatum X8 handhabt. Mit anderen Worten umfasst in diesem Zustand die Variable r3 das Bitdatum Xf.

In der C-Zeilennummer "005:" wird eine UND-Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r2 in einer Bit-Einheit durchgeführt, um die UND-Verarbeitung der IL-Zeilennummer (2) zu realisieren. Ein Ergebnis der UND-Verarbeitung wird in die Variable r1 substituiert. In diesem Fall ist das Bitdatum X0 im niedrigsten Bit (im folgenden als Bit nullter Ordnung bezeichnet), der an der Adresse "a000" gespeicherten Daten positioniert. Auf ähnliche Weise ist das Bitdatum X8 an dem Bit nullter Ordnung, der an der Adresse "a001" gespeicherten Daten, positioniert. Daher stellt das Ergebnis der UND-Verarbeitung der Bits nullter Ordnung der Variable r1 und der Variable r2 ein Ergebnis der UND Verarbeitung der Bitdaten X0 und X8 dar.

Die Leseverarbeitung der Bitdaten Xf ist in der IL Zeilennummer (3) zu erzielen. Für diesen Zweck wird als nächstes in der C-Zeilennummer "006:" der Wert der Variable r3 um sieben Bits nach rechts verschoben. Das Schiebeergebnis wird in die Variable r3 substituiert. Das Bitdatum Xf ist am höchsten Bit (im folgenden als siebtes Bit bezeichnet) der Adresse "a001" positioniert. Daher ist das Bitdatum Xf in der Variable r2 enthalten, die bereits in der C-Zeilennummer "003" substituiert wurde, d.h. in die Variable r3. Wenn die Bitdaten der Variable r3 um sieben Bits nach rechts verschoben werden, ist es somit möglich, 1-Byte-Daten zu erhalten, in denen das Bitdatum Xf an dem Bit nullter Ordnung positioniert ist. Als eine Folge kann die Variable r3 nach der Bitverschiebung als die Variable zum Verarbeiten des Bitdatums Xf verwendet werden.

Als nächstes erfordert die Verarbeitung der IL-Zeilennummer (4) das Bitdatum M8. Daher werden in der C-Zeilennummer "007:" die Daten der Adresse "0001" in dem physikalischen Adressraum, der das Bitdatum M8 enthält, in die Variable r4 gelesen.

In der C-Zeilennummer "008:" wird eine UND Verarbeitung des Wertes der Variable r4 und des Wertes der Variable r3 in einer Bit-Einheit durchgeführt, um die UND Verarbeitung der IL-Zeilennummer (4) zu realisieren. Ein Ergebnis der UND-Verarbeitung wird in die Variable r4 substituiert. Somit wird die UND-Verarbeitung des Wertes des Bitdatums Xf und des Wertes des Bitdatums M8 durch die UND-Verarbeitung des Wertes der Variable r4 und des Wertes des Bits nullter Ordnung der Variable r3 realisiert.

Auf dieser Stufe drückt das Bit nullter Ordnung der Variable r1 das UND-Ergebnis der IL-Zeilennummer (2) aus und das Bit nullter Ordnung der Variable r4 drückt das UND-Ergebnis der IL-Zeilennummer (4) aus. Daher wird in der C-Zeilennummer "009:" eine ODER-Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r4 in einer Bit-Einheit durchgeführt, um die ODER-Verarbeitung der IL-Zeilennummer (5) zu realisieren. Ein Ergebnis der ODER-Verarbeitung wird in die Variable r1 substituiert.

Als nächstes erfordert die Verarbeitung der IL-Zeilennummer (6) das Bitdatum M0. Daher werden in der C-Zeilennummer "010:" die Daten der Adresse "0000" in dem physikalischen Adressraum, der das Bitdatum M0 enthält, in die Variable r5 substituiert.

Auf dieser Stufe drückt das Bit nullter Ordnung der Variable r1 das UND-Ergebnis der IL-Zeilennummer (2) und des ODER-Ergebnisses der IL-Zeilennummer (4) aus. Daher wird in der C-Zeilennummer "011:" eine ODER-Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r5 in einer Bit-Einheit durchgeführt, um die ODER-Verarbeitung der IL-Zeilennummer (6) zu realisieren. Ein Ergebnis der ODER Verarbeitung wird in die Variable r1 substituiert.

Als nächstes wird in der C-Zeilennummer "012:" eine UND-Verarbeitung des Wertes der Variable r1 und eines hexadezimalen Wertes "0001" in einer Bit-Einheit durchgeführt, um den Zustand nur des Bits nullten Ordnung der Variable r1 zu halten, und um die Bitdaten des ersten bis siebten Bits der Variable r1 zu löschen. Ein Ergebnis der UND-Verarbeitung wird in die Variable r1 substituiert.

In der Verarbeitung der IL Zeilennummer (7) werden Daten in das Bitdatum Y0 geschrieben. Daher werden in der C-Zeilennummer "013:" die Daten an der Adresse "a002" in dem I/O-Adressraum, der das Bitdatum Y0 enthält, in die Variable r6 substituiert.

Als nächstes wird in der C-Zeilennummer "014:" eine UND-Verarbeitung des Wertes der Variable r6 und eines hexadezimalen Wertes "FFFE" in einer Bit-Einheit durchgeführt, um den Zustand nur des ersten bis siebten Bits der Variable r6 zu halten, und um das Bit nullter Ordnung der Variable r6 zu löschen. Ein Ergebnis der UND-Verarbeitung wird in die Variable r6 substituiert.

Auf dieser Stufe, wie in der C-Zeilennummer "015:" gezeigt, wird eine ODER-Verarbeitung des Wertes der Variable r6 und des Wertes der Variable r1 in einer Bit-Einheit durchgeführt. Ein Ergebnis der ODER-Verarbeitung wird in die Variable r6 substituiert. Als ein Ergebnis wird die Variable zu Bytedaten, in denen nur das Bit nullter Ordnung durch das ODER-Ergebnis des Bits nullter Ordnung der IL Zeilennummer (6) substituiert wurde.

Bei der Verarbeitung der IL-Zeilennummer (8) werden Daten in das Bitdatum Y8 geschrieben. Daher werden in der C-Zeilennummer "016:" die Daten an der Adresse "a003" in dem I/O-Adressraum, der das Bitdatum Y8 enthält, in die Variable r7 substituiert.

Als nächstes wird in der C-Zeilennummer "017:" eine UND-Verarbeitung des Wertes der Variable r7 und des hexadezimalen Wertes "FFFE" in einer Bit-Einheit durchgeführt, um nur den Zustand des ersten bis siebten Bits der Variable r7 zu halten, und um das Bit nullter Ordnung der Variable r7 zu löschen. Ein Ergbinis der Und-Verarbeitung wird in die Variable r7 substituiert.

Auf dieser Stufe, wie in der C-Zeilennummer "018:" gezeigt, wird eine ODER-Verarbeitung des Wertes der Variable r7 und des Wertes der Variable r1 in einer Bit-Einheit durchgeführt. Ein Ergebnis der ODER-Verarbeitung wird in die Variable r7 substituiert. Als ein Ergebnis davon wird die Variable r7 zu Bytedaten, in denen nur das Bit nullter Ordnung durch das ODER-Ergebnis des Bits nullter Ordnung der IL-Zeilennummer (6) substituiert wurde.

Bei der Verarbeitung der IL-Zeilennummer (9) werden Daten in das Bitdatum M10 geschrieben. Daher werden in der C-Zeilennummer "019:" die Daten der Adresse "0002" in dem physikalischen Adressraum, der das Bitdatum M10 enthält, in die Variable r8 substituiert.

Als nächstes wird in der C-Zeilennummer "020:" eine UND-Verarbeitung des Wertes der Variable r8 und des hexadezimalen Wertes "FFFE" in einer Bit-Einheit durchgeführt, um den Zustand von nur dem ersten bis siebten Bit der Variable r8 zu halten, und um das Bit nullter Ordnung der Variable r8 zu löschen. Ein Ergebnis der UND Verarbeitung wird in die Variable r8 substituiert.

Auf dieser Stufe, wie in der C Zeilennummer "021:" gezeigt, wird eine ODER-Verarbeitung des Wertes der Variable r8 und des Wertes der Variable r1 in einer Bit-Einheit durchgeführt. Ein Ergebnis der ODER-Verarbeitung wird in die Variable r8 substituiert. Als ein Ergebnis wird die Variable r8 zu Bytedaten, in denen nur das Bit nullter Ordnung durch das ODER Ergebnis des Bits nullter Ordnung der IL-Zeilennummer (6) substituiert wurde.

In der C Zeilennummer "022:" wird der Wert der Variable r6; erhalten durch die obige Verarbeitung, tatsächlich an die Adresse "a002" geschrieben, um die Verarbeitung der IL-Zeilennummer (7) zu realisieren. Ähnlich wird in der C-Zeilennummer "023:" der Wert der Variable r7, erhalten durch die obige Verarbeitung, tatsächlich an die Adresse "a003" geschrieben, um die Verarbeitung der IL-Zeilennummer (8) zu realisieren. In der C-Zeilennummer "024:" wird der Wert der Variable r8, erhalten durch die obige Verarbeitung, tatsächlich an die Adresse "0002" geschrieben, um die Verarbeitung der IL-Zeilennummer (9) zu realisieren.

Wie oben beschrieben, ist es notwendig, die Verarbeitung in dem durch die C-Sprache ausgedrückten Quell-Kode in einer Byteeinheit durchzuführen. Daher ist es, um das Bitdatum entsprechend jeder Vorrichtung zu verarbeiten, notwendig, die Datenleseverarbeitung siebenmal in den C-Zeilennummern "002:", "003:", "007:", "010:", "013:", "016:" und "019:" durchzuführen, und die Datenschreibeverarbeitungen dreimal in den C Zeilennummern "022:", "023:" und "024:" durchzuführen. Wenn es n Takte größer als 1 zum Durchführen eines Zugriffs auf jede Vorrichtung erfordert, dann ergibt sich eine Datenübertragungswartezeit von insgesamt ungefähr 10 × n Takten zusätzlich zu der Zeit, die für die tatsächliche Durchführung einer logischen Verarbeitung notwendig ist.

Für 68020-Prozessoren, welche von der Firma Motorola ab 1995 angeboten wurden, sind sogenannte Bit-Field-Instruktionen bekannt. Dabei ist ein Bit-Field eine Gruppe von Bits, welche überall innerhalb des 68020-Adress-Bereichs fallen kann. Da ein Bit-Field eine beliebige Datenstruktur ist, sind konventionelle arithmetische Operationen auf einem Bit-Field bedeutungslos. Die definierten Bit-Field-Instruktionen ermöglichen das einfache Operieren auf Datenstrukturen, welche nicht Byte-orientiert sind. Die beschriebenen Bit-Field-Instruktionen wurden im wesentlichen entworfen, um Bit-Ketten zwischen Registern und beliebigen Positionen im Speicher zu kopieren und um Bit-Fields zu testen.

Es gibt dabei aber keinen Hinweis darauf, wie die Anzahl von Adressen minimiert werden kann, auf die für eine Verarbeitung von Bitdaten zugegriffen werden muss.

ZUSAMMENFASSUNG DER ERFINDUNG

Es ist eine Aufgabe der vorliegenden Erfindung, einen programmierbaren Logic Controller und eine Programmerzeugungsvorrichtung zur Erzeugung eines Sequenzprogramms für einen programmierbaren Logic Controller anzugeben, die es ermöglichen, die Zugriffszeit auf eine Vielzahl von Bitpositionen in einem physikalischen Speicheradressraum oder einem I/O Adressraum, über welche die Bitpositionen verteilt sind, zu verkürzen, und die Anzahl von Adressen zu minimieren, auf die für eine Verarbeitung von Bitdaten zugegriffen werden muss.

Diese Aufgabe wird erfindungsgemäß gelöst wie in den Ansprüchen 1 und 4 angegeben. Vorteilhafte Ausführungsbeispiele ergeben sich aus den Unteransprüchen.

Dazu offenbart die Erfindung, dass die zu verarbeitenden Bitdaten an einer bestimmten Adresse in einem Speicher konzentriert sind, zu einem Zeitpunkt einer Durchführung einer Betriebsverarbeitung innerhalb eines Prozessors und einer Steuerung einer externen Vorrichtung in einer Bit-Einheit.

Gemäss einem Gesichtspunkt der vorliegenden Erfindung wird eine Adressumwandlungseinheit bereitgestellt, die eine Eingabe/Ausgabe von Daten vermittelt, indem diese auf eine Bitposition in einem physikalischen Speicher für einen I/O Speicher tatsächlich zugreift, wenn ein Prozessor einen Zugriff auf eine vorgegebene Adresse in Übereinstimmung mit einem Computerprogramm durchführt. Darüber hinaus umfasst die Adressumwandlungseinheit einen restrukturierbaren Adressumwandlungsabschnitt, der eine Adresse restrukturiert, um eine neue Adresse zu erzeugen, um Bitdaten zu bestimmen, deren Bitposition dem physikalischen Speicher oder dem I/O Speicher entspricht. Wenn es notwendig ist, einen Zugriff auf Bitdaten zu tätigen, die auf einer Vielzahl von unterschiedlichen Adressen verteilt sind, in den durch einen Prozessor auszuführenden Inhalten eines Programms, ist es daher möglich, eine oder wenige Adressen zu erzeugen, auf die diese Bitdaten konzentriert zugewiesen sind.

Um zu bewirken, dass eine Programmausführvorrichtung eine optimale Ausführung eines durch die Programmerzeugungsvorrichtung entwickelten Programms ausführt, ist es möglich, die Programmausführvorrichtung zu instruieren, eine Strukturierung einer Adresse anzufordern.

Andere Aufgaben und Merkmale dieser Erfindung ergeben sich aus der folgenden Beschreibung mit Bezug auf die begleitenden Zeichnungen.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

1 zeigt ein Blockdiagramm einer schematischen Konfiguration einer Programmausführvorrichtung und einer Programmentwicklungs-Unterstützungsvorrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

2 zeigt ein Blockdiagramm einer schematischen Konfiguration eines Companion Chips der Programmausführvorrichtung gemäß dem Ausführungsbeispiel der Erfindung;

3 zeigt ein erläuterndes Diagramm einer Verarbeitung zum Erzeugen eines Ausführcodes und von Konfigurationsdaten in der Programmentwicklungsunterstützungseinheit gemäß dem Ausführungsbeispiel der Erfindung;

4 zeigt ein Diagramm eines Ergebnisses einer Umwandlung einer Instruktionsliste in einen Ausdruck in der C Sprache in der Programmentwicklungs-Unterstützungsvorrichtung gemäß dem Ausführungsbeispiel der Erfindung;

5 zeigt ein Diagramm eines Beispiels einer Zuweisung eines physikalischen Adressraums, restrukturiert durch einen variablen Adressumwandlungsabschnitt, in der Programmausführvorrichtung gemäß dem Ausführungsbeispiel der Erfindung;

6 zeigt ein Diagramm eines Beispiels einer Zuordnung eines durch eine variable Adressumwandlungseinheit restrukturierten I/O Adressraumes in der Programmausführvorrichtung gemäss dem Ausführungsbeispiel der Erfindung;

7 zeigt ein Diagramm eines Beispiels einer Zuordnung eines physikalischen Adressraumes und eines I/O Adressraumes in einer Mischstruktur durch den variablen Adressumwandlungsabschnitt in der Programmausführvorrichtung gemäss dem Ausführungsbeispiel der Erfindung;

8 zeigt ein Flussdiagramm eines Adresszugriffsvorgangs in der Programmausführvorrichtung gemäss dem Ausführungsbeispiel der Erfindung;

9 zeigt ein Blockdiagramm einer schematischen Konfiguration einer bekannten Programmausführvorrichtung und einer bekannten Programmentwicklungs-Unterstützungsvorrichtung;

10 zeigt ein erläuterndes Diagramm eines Vorgangs zum Erzeugen eines Ausführcodes durch eine bekannte Programmentwicklungs-Unterstützungsvorrichtung;

11 erläutert in einem Diagramm eine Datenanordnung (Array) in einem physikalischen Adressraum;

12 erläutert in einem Diagramm eine Datenanordnung in einem I/O Adressraum;

13 zeigt ein Diagramm eines Beispiels eines Stufendiagramms;

14 zeigt eine Instruktionsliste, die äquivalent ein Stufendiagramm in der bekannten Programmentwicklungs-Unterstützungsvorrichtung ausdrückt; und

15 zeigt ein Diagramm eines Ergebnisses eine Umwandlung einer Instruktionsliste in einen Ausdruck in der C Sprache in der bekannten Programmentwicklungs-Unterstützungsvorrichtung.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE

Ein bevorzugtes Ausführungsbeispiel der Programmausführvorrichtung und der Programmentwicklungs-Unterstützungsvorrichtung gemäss der vorliegenden Erfindung wird detailliert mit Bezug auf die begleitenden Zeichnungen beschrieben. Es versteht sich, dass die Implementierung dieses Ausführungsbeispiels nicht die vorliegende Erfindung beschränkt.

1 zeigt ein Blockdiagramm einer schematischen Konfiguration einer Programmausführvorrichtung und einer Programmentwicklungs-Unterstützungsvorrichtung gemäss dem Ausführungsbeispiel der vorliegenden Erfindung. 1 zeigt insbesondere einen Fall, in dem eine Programmausführvorrichtung als ein programmierbarer Steuerer 90 verwendet wird, und in dem eine Programmentwicklungs-Unterstützungsvorrichtung als eine Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 verwendet wird. Abschnitte mit gleicher oder ähnlicher Struktur oder Funktion wie die Abschnitte aus 9 sind in 1 mit den gleichen Bezeichnungen versehen, und Ausführungen dazu werden weggelassen, um eine Wiederholung von Erläuterungen zu vermeiden.

Die Programmausführvorrichtung wie beispielsweise der programmierbare Steuerer 90 dieser Erfindung weist die Besonderheit auf, dass er mit einem restrukturierbaren Adressumwandlungsabschnitt ausgerüstet ist. Dieser restrukturierbare Adressumwandlungsabschnitt weist die Besonderheit auf, dass er in einem Companion Chip 70 Bitdaten von einer existierenden Adresse extrahieren kann, und die Bitdaten einer neuen Adresse basierend auf Konfigurationsdaten 8 zuweisen kann.

Die Programmentwicklungs-Unterstützungsvorrichtung wie beispielsweise die Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 dieser Erfindung weist eine Besonderheit darin auf, dass sie aus einem Steuerprogramm wie einer Instruktionsliste einen in einem Universalprozessor 11, angeordnet in der Programmausführvorrichtung wie dem programmierbaren Steuerer, direkt ausführbaren Ausführcode 9 erzeugt. Zur gleichen Zeit extrahiert die Programmentwicklungs-Unterstützungsvorrichtung an jeweils unterschiedlichen Adressen angeordnete Bitdaten, aus den Bitdaten, auf die durch das Steuerprogramm zugegriffen wird. Weiter erzeugt die Programmentwicklungs-Unterstützungsvorrichtung Konfigurationsdaten, die eine Adresse beschreiben, an der die extrahierten Bitdaten konzentriert zugeordnet sind, und Information bezüglich der Bitdaten.

Unter Bezug auf 1 weist ein Speicher 13 einen physikalischen Adressraum 40 und einen I/O Adressraum 50 auf, klar voneinander getrennt, wie in bekannter Technik. Darüber hinaus weist der Speicher 13 einen physikalischen I/O Adressmischraum 60 auf, mit einem Teil der Bitdaten, die in dem physikalischen Adressraum 40 positioniert sind, und einem Teil der Bitdaten, die in dem I/O Adressraum 50, der gleichen Adresse zugeordnet.

2 zeigt ein Blockdiagramm einer schematischen Konfiguration eines Companion Chips der Programmausführvorrichtung bezüglich der vorliegenden Erfindung. Wie in 2 gezeigt, weist der Companion Chip einen restrukturierbaren Adressumwandlungsabschnitt 80 auf. Der restrukturierbare Adressumwandlungsabschnitt 80 besteht aus einem Festadressumwandlungsabschnitt 82 und einem Variabel-Adressumwandlungsabschnitt 84.

Der Festadressumwandlungsabschnitt 82 ist eine Vorrichtung, um es zu ermöglichen, auf einen festen Adressabschnitt in dem physikalischen Adressraum 40 bzw. dem I/O Adressraum 50 zuzugreifen, auf eine Eingabe/Ausgabeanforderung von dem Universalprozessor 11. Der feste Adressabschnitt ist ein Abschnitt, der einen bekannten Adressarray (Anordnung) zeigt, wie in 11 und 12 gezeigt.

Ein Variabel-Adressumwandlungsabschnitt 84 ist eine Vorrichtung zum Erzeugen eines Variabel-Adressabschnitts, dem Bitdaten zugeordnet wurden, indem die Bitdaten basierend auf den Konfigurationsdaten 8 restrukturiert wurden, und um es zu ermöglichen, auf diese variable Adresse auf eine Eingabe/Ausgabeanforderung von dem Universalprozessor 11 zuzugreifen.

Der restrukturierbare Adressumwandlungsabschnitt 80, ausgestattet mit dem Festadressenumwandlungsabschnitt 82 und dem Variabel-Adressumwandlungsabschnitt 84, kann in einem Modus realisiert sein, der auf einem logischen Niveau wie beispielsweise CPLD und FPGA programmiert sein kann. Dies kann auch ein exklusiver Mikrosteuerer sein, der auf eine Adressumwandlung spezialisiert ist.

3 zeigt ein beispielhaftes Diagramm zum Erläutern einer Verarbeitung zum Erzeugen des Ausführcodes 9 und der Konfigurationsdaten 8 in der Programmentwicklungs-Unterstützungsvorrichtung 20. Abschnitte mit der gleichen oder ähnlichen Struktur oder Funktion wie die in 10 gezeigten Abschnitte, sind in 3 mit den gleichen Bezeichnungen versehen, und, um eine Wiederholung einer Erläuterung zu vermeiden, wird auf die Erläuterung dazu verzischtet. Wenn der Ausführcode 9 letztendlich erhalten wird, ist es möglich, ein ELF Format zu verwenden, das als eine Ausgabe von einem Universalsprachencompiler 102 verwendet wird.

Unter Bezugnahme auf 3 wandelt ein Umwandlungswerkzeug 103 ein Steuerprogramm 1, beschrieben in einer Sprache für eine Sequenzverarbeitung wie beispielsweise ein Stufendiagramm oder eine Instruktionsliste, in ein Universalsprachenprogramm 5 um, wie die C Sprache oder die C++ Sprache. Darüber hinaus erzeugt das Umwandlungswerkzeug 103 die Konfigurationsdaten 8 basierend auf Beschreibungsinhalten des Steuerprogramms.

Die durch das Umwandlungswerkzeug 103 durchgeführte Verarbeitung wird nunmehr detailliert beschrieben. Als erstes wird durch das Umwandlungswerkzeug 103 ein in dem gegebenen Steuerprogramm 1 beschriebener externer Zugriff sequentiell analysiert, in der Reihenfolge der Programmverarbeitung, wodurch zu verwendende Zugriffsdaten in einer Ordnung (bzw. Reihenfolge) angeordnet werden. Nachfolgend richtet das Umwandlungswerkzeug 103 die Zugriffsdaten in einer geeigneten Bytebreite an, und alloziiert die Zugriffsdaten geordnet auf freie Adressen, um eine Überlagerung der Daten mit einer anderen externen Ressource zu vermeiden. Das Universalsprachenprogramm 5 und die Konfigurationsdaten 8 werden sequentiell basierend auf dieser Adresszuordnung ausgegeben.

Die durch das Umwandlungswerkzeug 103 erzeugten Konfigurationsdaten 8 werden unterhalb beschrieben. Die Konfigurationsdaten 8 beschreiben Inhalte, die eine bestimmte Adresse vorschreiben, die zu einem beliebigen des physikalischen Adressraums 40, des I/O Adressraums 50 und des physikalischen I/O Adressmischraums 60 gehört, dem Bitdaten durch Restrukturierung zuzuordnen sind. Die Konfigurationsdaten 8 beschreiben weiter eine Entsprechung zwischen jedem Bit einer bestimmten Adresse und Bitdaten an einer Adresse, die zu dem physikalischen Adressraum 40 oder dem I/O Adressraum 50 gehört.

Mit anderen Worten ist die Entsprechung so vorgeschrieben, dass unter den Adressen, die zu dem physikalischen Adressraum 40 oder zu dem I/O Adressraum 50 gehören, welche Bitordnung welcher Adresse dem Bit nullter Ordnung der speziellen Adresse zuzuordnen ist. Die Entsprechung ist so vorgeschrieben, dass unter den Adressen, die zu dem physikalischen Adressraum 40 oder dem I/O Adressraum 50 gehören, welche Bitordnung welcher Adresse dem ersten Bit einer speziellen Adresse zuzuordnen ist.

Ein Beispiel des Universalsprachenprogramms 5, das durch das Umwandlungswerkzeug 103 erzeugt ist, wird als nächstes beschrieben. Um einen Vergleich mit dem bekannten Beispiel durchzuführen, wird ein Fall beschrieben, in dem das Umwandlungswerkzeug 103 das Universalsprachenprogramm 5 erzeugt, indem es die in 14 gezeigte Instruktionsliste umwandelt.

Als erstes analysiert das Umwandlungswerkzeug 103 sequentiell die in 14 ausgedrückte Instruktionsliste. Somit wird bekannt, dass eine zu lesende Bitvorrichtung (X0, X8, Xf, M8, M0) ist, und dass eine auszugebende Bitvorrichtung (Y0, Y8, M10) ist. Die Adressen, denen die Bitdaten zuzuordnen sind, sind beispielsweise als "c000" und "x001" vorgeschrieben. Die spezifizierten Bitdaten (X0, X8, Xf, M8, M0) werden der Adresse "x000" sequentiell vom niedrigsten Bit zugeordnet. Die spezifizierten Bitdaten (Y0, Y8, M10) werden sequentiell von dem niedrigsten Bit der Adresse "c001" zugeordnet.

Die Bits, die nicht den Adressen "c000h" und "c001h" zugeordnet sind, weisen für eine Eingabe/Ausgabe ungültige Bitwerte auf. Ungültig bedeutet in diesem Zusammenhang, dass ein ausgelesener Wert undefiniert ist, und dass ein Wert, der geschrieben wurde, keinen Unterschied macht.

Es ist möglich, einen optionalen festen Wert (0 oder 1) für das ungültige Bit durch die Konfigurationsdaten 8 zu setzen. Es wird angenommen, dass in diesem Fall 0 eingestellt ist. Das Umwandlungswerkzeug 103 weist die Adressen auf diese Weise zu, und wandelt das Steuerprogramm 1 in das Universalsprachenprogramm 5 basierend auf dieser Zuordnungsinformation um.

4 zeigt ein Diagramm eines Ergebnisses einer Umwandlung einer Instruktionsliste in einen Ausdruck in der C Sprache in der Programmentwicklungs-Unterstützungsvorrichtung gemäss dem Ausführungsbeispiel der Erfindung. Gezeigt sind die basierend auf der Annahme vorbereiteten Inhalte, dass ein Zugriff auf die neu zugeordneten Adressen "c000" und "c001", wie in dem obigen Beispiel gezeigt, durchgeführt wird. In 4 sind "001:" bis "020:" Zeilennummern, die für eine Unterstützung der Erläuterung vorbereitet sind, und diese Nummern existieren nicht in der tatsächlichen C Spracheninstruktionsliste.

Die Inhalte der Verarbeitung entsprechend jeder Zeilennummer werden unterhalb beschrieben. Um die Entsprechung zwischen diesen Verarbeitungsinhalten und der in 14 gezeigten Instruktionsliste klar zu machen, werden die in 14 gezeigten Zeilennummern der Instruktionsliste IL Zeilennummern genannt, und die Zeilennummern der in 4 gezeigten in der C Sprache geschriebenen Quellliste werden C Zeilennummern genannt.

Unter Bezugnahme auf 4, zuerst in der C Zeilennummer "001:", deklariert das Statement, dass Variablen r1 bis r3, die in dieser Quelle verwendet werden, Achtbitdaten vom Typ Character ohne Vorzeichen sind. In der C Zeilennummer "002:" werden die an der Adresse "c0000" gespeicherten Achtbitdaten in die Variable r1 substituiert. Auf dieser Stufe enthält die Variable r1 die Bitdaten X0, X8, Xf, M8 und M0. Insbesondere ist auf dieser Stufe das Bitdatum X0, das in der Verarbeitung der IL Zeilennummer 1 ausgelesen wurde, in dem Bit nullter Ordnung der Variable r1 positioniert.

Die Verarbeitung der IL Zeilennummer (2) erfordert das Bitdatum X8. Daher wird in der C Zeilennummer "003:" der Wert der Variable r1 in die Variable r2 substituiert. In der C Zeilennummer "004:" wird der Wert der Variable r2 um ein Bit rechtsverschoben, und das verschobene Ergebnis wird wiederum in die Variable r2 substituiert. Mit anderen Worten, ist zu diesem Zeitpunkt das Bitdatum X8 in dem Bit nullter Ordnung der Variable r2 positioniert.

In der C Zeilennummer "005:" wird eine UND Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r2 in einer Bit-Einheit durchgeführt, um die UND Verarbeitung der IL Zeilennummer (2) zu realisieren. Ein Ergebnis der UND Verarbeitung wird in die Variable r1 substituiert. Daher drückt das Bit nullter Ordnung der Variable r1 das Ergebnis der UND Verarbeitung des Wertes der Variable r1 und des Bits nullter Ordnung der Variable r2 aus, d.h. das Ergebnis der UND Verarbeitung der Bitdaten X0 und X8.

Als nächstes wird, um die Verarbeitung zu realisieren, entsprechend um ein Bit in der Zeilennummer "006:" rechtsverschoben, und das verschobene Ergebnis wird wieder in die Variable r2 substituiert. Mit anderen Worten, ist auf dieser Stufe das Bitdatum Xf in dem Bit nullter Ordnung der Variable r2 positioniert.

Weiter wird in der C Zeilennummer "007:" der Wert der Variable r2 in die Variable r3 substituiert. In der C Zeilennummer "008:" wird der Wert der Variable r3 um ein Bit nach rechts verschoben, und das verschobene Ergebnis wird wieder in die Variable r3 substituiert. Mit anderen Worten, ist auf dieser Stufe das Bitdatum M8 an dem Bit nullter Ordnung der Variable r3 positioniert.

In der C Zeilennummer "009:" wird eine UND Verarbeitung des Wertes der Variable r3 und des Wertes der Variable r2 in einer Bit-Einheit durchgeführt, um die UND Verarbeitung der IL Zeilennummer (4) zu realisieren. Ein Ergebnis der UND Verarbeitung wird in die Variable r3 substituiert. Daher drückt das Bit nullter Ordnung der Variable r3 das Ergebnis der UND Verarbeitung des Wertes der Variable r3 und des Bits nullter Ordnung der Variable r2 aus, d.h. das Ergebnis der UND Verarbeitung der Bitdaten M8 und Xf.

Auf dieser Stufe drückt das Bit nullter Ordnung der Variable r1 die UND Verarbeitung der IL Zeilennummer (2) aus und das Bit nullter Ordnung der Variable r3 drückt das UND Ergebnis der IL Zeilennummer (4) aus. Daher wird in der C Zeilennummer "010:" eine ODER Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r3 in einer Bit-Einheit durchgeführt, um die ODER Verarbeitung der IL Zeilennummer (5) zu realisieren. Ein Ergebnis der ODER Verarbeitung wird in die Variable r1 substituiert.

Als nächstes erfordert die Verarbeitung der IL Zeilennummer (6) das Bitdatum M0. Daher wird in der C Zeilennummer "011:" der Wert der Variable r2 um ein Bit nach rechts verschoben, und das verschobene Ergebnis wird wieder in die Variable r2 substituiert. Mit anderen Worten, ist auf dieser Stufe das Bitdatum M0 an dem Bit nullter Ordnung der Variable r2 positioniert.

Auf dieser Stufe drückt das Bit nullter Ordnung der Variable r1 das UND Ergebnis der IL Zeilennummer (2) und des ODER Ergebnisses der IL Zeilennummer (4) aus. Daher wird in der C Zeilennummer "012:" eine ODER Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r2 in einer Bit-Einheit durchgeführt, um die ODER Verarbeitung der IL Zeilennummer (6) zu realisieren. Ein Ergebnis der ODER Verarbeitung wird in die Variable r1 substituiert. Daher drückt das Bit nullter Ordnung der Variable r1 das Ergebnis der ODER Verarbeitung des Wertes der Variable r1 und des Bits nullter Ordnung der Variable r2 aus. Mit anderen Worten drückt das Bit nullter Ordnung der Variable r1 das Ergebnis der ODER Verarbeitung des Verarbeitungsergebnisses der IL Zeilennummer (5) und des Bitdatums M0 aus.

Als nächstes wird in der C Zeilennummer "013:" eine UND Verarbeitung des Wertes der Variable r1 und eines hexadezimalen Wertes "0001" in einer Bit-Einheit durchgeführt, um den Zustand nur des Bits nullter Ordnung der Variable r1 zu erhalten, und um die Bitdaten des ersten bis siebten Bits der Variable r1 zu löschen. Ein Ergebnis der UND Verarbeitung wird in die Variable r1 substituiert.

Weiter wird in der C Zeilennummer "014:" der Wert der Variable r1 in die Variable r2 substituiert. In der C Zeilennummer "015:" wird der Wert der Variable r1 in die Variable r3 substituiert. Weiter wird in der C Zeilennummer "016:" der Wert der Variable r2 um ein Bit nach links verschoben, und das verschobene Ergebnis wird wieder in die Variable r2 substituiert. Mit anderen Worten, sind auf dieser Stufe die Bitdaten des Verarbeitungsergebnisses der IL Zeilennummer (6) in dem ersten Bit der Variable r2 positioniert.

Als nächstes wird in der C Zeilennummer "017:" der Wert der Variable r3 um zwei Bits nach links verschoben, und das Schiebeergebnis wird wieder in die Variable r3 substituiert. Mit anderen Worten, ist auf dieser Stufe das Bitdatum des Verarbeitungsergebnisses der IL Zeilennummer (6) in dem zweiten Bit der Variable r3 positioniert.

In der C Zeilennummer "018:" wird eine ODER Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r2 in einer Bit-Einheit durchgeführt. Ein Ergebnis der ODER Verarbeitung wird in die Variable r1 substituiert. Als ein Ergebnis zeigen das Bit nullter Ordnung und das Bit erster Ordnung der Variable r1 jeweilig die Bitdaten, die das Verarbeitungsergebnis der IL Zeilennummer (6) sind.

In der C Zeilennummer "019:" wird eine ODER Verarbeitung des Wertes der Variable r1 und des Wertes der Variable r3 in einer Bit-Einheit durchgeführt. Ein Ergebnis der ODER Verarbeitung wird in die Variable r1 substituiert. Als ein Ergebnis zeigen alle Bits vom Bit nullter Ordnung bis zum zweiten Bit der Variable r1 die Bitdaten, die das Verarbeitungsergebnis der IL Zeilennummer (6) sind.

Auf dieser Stufe wurden die Daten der Bitvorrichtung Y0, Y8 und M10 in dieser Reihenfolge dem Bit nullter Ordnung bis zum zweiten Bit der Adresse "c001" zugeordnet. Daher wird in der C Zeilennummer "020:" der Wert der Variable r1 in die Adresse "c001" geschrieben, um die Verarbeitung der IL Zeilennummern (7) bis (9) zu realisieren.

Wie oben beschrieben findet in der in 4 gezeigten in der C Sprache ausgedrückten Quellliste der Datenlesevorgang nur einmal in der C Zeilennummer "002:" statt, und der Datenschreibvorgang findet nur einmal in der C Zeilennummer "020:" statt. Mit anderen Worten, wenn n Takte größer als 1 für ein Durchführen eines Zugriffs auf jede Vorrichtung benötigt werden, ist die notwendige Anzahl von Takten 2 × n Takte. Somit wird die Ausführzeit kürzer als 8 × n (= 10 × n – 2 × n), was in dem in 15 gezeigten Programm erforderlich ist.

Darüber hinaus ist auch die Logikverarbeitung an vielen Stellen vereinfacht. Daher, während 24 Schritte einschließlich der Deklaration von Variablen in dem in 15 gezeigten Programm notwendig sind, ist die erforderliche Anzahl von Schritten auf 20 Schritte in dem Programm in 4 vermindert. Als eine Folge kann die Ausführzeit wesentlich reduziert werden, einschließlich des Unterschieds in der Anzahl von Takten, die für eine Dateneingabe/ausgabe benötigt werden.

Somit kompiliert in der Steuerprogrammentwicklungs-Unterstützungsvorrichtung 20 der Universalsprachenkompilierer 102 die in der C Sprache ausgedrückte Quellliste, die auf diese Weise erzeugt wurde, und gibt zuletzt den Ausführcode 9 aus.

Zwischenzeitlich lädt in dem programmierbaren Steuerer 90 der Universalprozessor 11 den Ausführcode 9 herab, und liest die Konfigurationsdaten 8 in den Variabel-Adressumwandlungsabschnitt 84 ein.

Wenn die in den Konfigurationsdaten 8 beschriebene Restrukturierungsinstruktion für eine in dem physikalischen Adressraum 40 positionierte Adresse vorliegt, extrahiert der Variabel-Adressumwandlungsabschnitt 84 die in den Konfigurationsdaten 8 zugeordneten Bitdaten aus den in dem physikalischen Adressraum positionierten Bitdaten. Dann ordnet der Variabel-Adressumwandlungsabschnitt 84 die extrahierten Bitdaten einer speziellen Adresse in dem physikalischen Adressraum 40 zu.

5 zeigt ein Diagramm eines Beispiels eine Zuordnung von den Bitdaten, die durch den Variabel-Adressumwandlungsabschnitt 84 in dem physikalischen Adressraum 40 restrukturiert wurden. In 5 sind die Adressen "0100h" und "0101h" die Adressen, die durch ein Restrukturieren neu zugeordnet wurden. Beispielsweise ist "M14" des ersten Bits an der Adresse "0100h" ein Bitdatum, das im vierten Bit einer in 11 gezeigten Adresse "0002h" positioniert wurde. Auf ähnliche Weise ist "M7" des siebten Bits an der Adresse "0100h" ein Bit, das an dem siebten Bit der Adresse "0000h" positioniert wurde.

Wenn die in den Konfigurationsdaten 8 beschriebene Restrukturierungsinstruktion für eine in dem I/O Adressraum 50 positionierte Adresse vorliegt, extrahiert der Variabel-Adressumwandlungsabschnitt 84 die in den Konfigurationsdaten 8 zugewiesenen Bitdaten aus den in dem I/O Adressraum 50 positionierten Bitdaten. Dann ordnet der Variabel-Adressumwandlungsabschnitt 84 die extrahierten Bitdaten einer speziellen Adresse in dem I/O Adressraum 50 zu.

6 zeigt ein Diagramm eines Beispiels einer Zuordnung der durch den Variabel-Adressumwandlungsabschnitt 84 in dem I/O Adressraum 50 restrukturierten Bitdaten. In 6 sind Adressen "b000h" und "b001h", "b101h" und "b011h" Adressen, die durch ein Restrukturieren neu zugewiesen wurden.

Wenn die in den Konfigurationsdaten 8 beschriebene Restrukturierungsinstruktion für eine in dem physikalischen I/O Adressmischraum 60 positionierte Adresse vorliegt, extrahiert der Variabel-Adressumwandlungsabschnitt 84 die in den Konfigurationsdaten 8 zugewiesenen Bitdaten von den in dem physikalischen I/O Adressmischraum 60 positionierten Bitdaten. Dann weist der Variabel-Adressumwandlungsabschnitt 84 die extrahierten Bitdaten einer speziellen Adresse in dem physikalischen I/O Adressmischraum 60 zu.

7 zeigt ein Diagramm eines Beispiels einer Zuordnung der durch den Variabel-Adressumwandlungsabschnitt 84 in dem physikalischen I/O Adressmischraum 60 restrukturierten Bitdaten. In 7 sind Adressen "c000h" und "c001h" die Adressen, die durch eine Restrukturierung neu zugewiesen wurden. Insbesondere umfassen in dem physikalischen I/O Adressmischraum 60 einer Adresse zugeordnete Bitdaten die Bitdaten zum Durchführen eines Zugriffs auf den physikalischen Speicher und das physikalische I/O.

Wie oben beschrieben ist das allen oder einem Teil der in dem Steuerprogramm 1 zu steuernden Bitvorrichtungen an einer oder wenigen Adressen konzentriert. Basierend auf dieser Anordnung ist es, wenn nur die Bytedaten dieser Adresse gelesen werden, nicht notwendig, Bytedaten einer anderen Adresse für jede Bitdaten zu lesen. Somit wird es möglich, um die Anzahl von auf die externen Daten gemachten Zugriffen wesentlich zu vermindern.

Als ein Verfahren zum Setzen der Konfigurationsdaten 8 für den Variabel-Adressumwandlungsabschnitt 84, wenn der Variabel-Adressumwandlungsabschnitt 84 CPLD oder FPGA umfasst, werden beispielsweise JTAG Konfigurationsmittel verwendet. Wenn der Variabel-Adressumwandlungsabschnitt 84 einen Mikrosteuerer umfasst, wird ein Exklusivprogramm verwendet oder exklusive Daten herabgeladen.

In einem Fall, in dem der Variabel-Adressabschnitt erzeugt wurde, wenn eine Eingabe/Ausgabeanforderung von dem Universalprozessor 11 für eine restrukturierte Adresse, wie in 5 gezeigt, vorliegt, führt der Companion Chip 70 beispielsweise durch den Variabel-Adressumwandlungsabschnitt 84 einen Zugriff auf die Adresse durch.

Der Adresszugriffsbetrieb, der durch den Companion Chip 70 durchgeführt wird, wird als nächstes erläutert. 8 zeigt einen Flowchart des Adresszugriffsbetriebs. Unter Bezugnahme auf 8 führt, wenn eine Eingabe/Ausgabeanforderung von dem Universalprozessor 11 eine Leseinstruktion oder eine Schreibeinstruktion (Ja im Schritt S101) ist, der Companion Chip 70 zuerst eine Entscheidung durch, ob die Eingabe/Ausgabeanforderung für eine feste Adresse oder nicht vorliegt (Schritt S102). Die feste Adresse bezeichnet eine Adresse, die zu einem Festadressabschnitt des physikalischen Adressraums 40 oder des I/O Adressraums 50 gehört, und dies ist eine Adresse, die ähnlich bekannter Technik, wie in 11 und 12 gezeigt, angeordnet ist.

Wenn die Eingabe/Ausgabeanforderung im Schritt S101 von dem Universalprozessor 11 nicht eine Leseinstruktion oder Schreibeinstruktion ist, übermittelt der Companion Chip ein Fehlersignal zum Universalprozessor 11 oder führt eine andere Interruptverarbeitung (Schritt S104) aus. Wenn die Eingabe/Ausgabeanforderung im Schritt S102 eine feste Adresse betrifft, führt der Festadressumwandlungsabschnitt 82 einen Zugriff auf den Festadressabschnitt des physikalischen Adressraums 40 oder dem I/O Adressraum 50 (Schritt S103) durch.

Wenn der Zugriff auf den Festadressabschnitt normal durchgeführt wurde (Ja im Schritt S105), führt der Festadressumwandlungsabschnitt 82 eine normale Antwort zum Universalprozessor 11 (Schritt S112) durch. Die normale Antwort bezieht sich in diesem Fall auf eine Verarbeitung zum Zurückliefern von Lesedaten auf eine Leseinstruktion, und Zurückliefern eines Signals einer Vervollständigung eines Schreibens auf eine Schreibeinstruktion.

Auf der anderen Seite, wenn ein Zugriff auf den Festadressabschnitt nicht normal durchgeführt wurde (Nein im Schritt S105) liefert der Festadressumwandlungsabschnitt 82 einen Busfehler zum Universalprozessor 11 (Schritt S111). Der Festadressumwandlungsabschnitt 82 führt jede Verarbeitung der obigen Schritte S101 bis S105, S111 und S112 durch.

Wenn die Eingabe/Ausgabeanforderung im Schritt S102 nicht für die feste Adresse vorliegt, wird eine Entscheidung darüber gefällt, ob die Eingabe/Ausgabeanforderung für eine variable Adresse oder nicht vorliegt (Schritt S106). Die variable Adresse bezeichnet eine Adresse, die zu einem Variabel-Adressabschnitt des physikalischen Adressraums 40 oder des I/O Adressraums 50 gehört, oder eine Adresse, die zu einem physikalischen I/O Adressmischraum 60 gehört. Dies ist eine restrukturierte Adresse, wie in 4 bis 6 gezeigt.

Wenn im Schritt S106 die Eingabe/Ausgabeanforderung für die variable Adresse vorliegt, führt der variable Adressumwandlungsabschnitt 84 einen Zugriff auf den Variabel-Adressabschnitt des physikalischen Adressraums 40 oder den I/O Adressraum 50, oder den physikalischen I/O Adressmischraum 60 (Schritt S107) durch.

Wenn der Zugriff auf den Variabel-Adressabschnitt oder den physikalischen I/O Adressmischraum normal durchgeführt wurde (Ja im Schritt S108), führt der Variabel-Adressumwandlungsabschnitt 84 eine normale Antwort an den Festadressumwandlungsabschnitt 82 (Schritt S109) aus. Die normale Verarbeitung ist oben erläutert.

Wenn die Eingabe/Ausgabeanforderung im Schritt S106 nicht für die variable Adresse vorliegt, oder wenn der Zugriff auf die variable Adresse nicht normal durchgeführt wurde (Ja im Schritt S105), liefert der Variabel-Adressumwandlungsabschnitt 84 einen Busfehler an den Festadressumwandlungsabschnitt 82 (Schritt S110). Der Variabel-Adressumwandlungsabschnitt 84 führt jede der Verarbeitungen in Schritten S106 bis S110 durch.

Nach der Verarbeitung im Schritt S109 führt der Festadressumwandlungsabschnitt 82 die Verarbeitung im Schritt S112 durch. Nach der Verarbeitung im Schritt S110 führt der Festadressumwandlungsabschnitt 82 die Verarbeitung vom Schritt S111 durch.

Wie oben erläutert weist die Programmentwicklungs-Unterstützungsvorrichtung gemäss der vorliegenden Erfindung die Bitdaten entsprechend zu allen oder zu einem Teil der in dem Steuerprogramm 1 zu steuernden Bitvorrichtungen konzentriert auf eine oder wenige spezielle Adressen zu. Die Programmausführvorrichtung wandelt dann das Steuerprogramm 1 in das Universalsprachenprogramm 5 zum Durchführen eines Zugriffs auf eine spezielle Adresse um, und gibt den Ausführcode des Universalsprachenprogramms 5 aus. Weiter gibt die Programmentwicklungs-Unterstützungsvorrichtung gemäss der vorliegenden Erfindung die Konfigurationsdaten 8 aus, die die Information an der speziellen Adresse beschreiben.

Zwischenzeitlich ist gemäss der Programmausführvorrichtung gemäß der vorliegenden Erfindung der Companion Chip 70 mit dem restrukturierbaren Adressumwandlungsabschnitt 80 ausgestattet. Der restrukturierbare Adressumwandlungsabschnitt 80 setzt die spezielle Adresse basierend auf den Konfigurationsdaten 8 für den Variabel-Adressabschnitt, und führt den Zugriff auf den Variabel-Adressabschnitt gemäss der Eingabe/Ausgabeanforderung vom Universalprozessor 11, erzeugt gemäss dem Ausführungscode 9, durch.

Daher liest in Übereinstimmung mit einem System, aufgebaut aus der Programmausführvorrichtung und der Programmentwicklungs-Unterstützungsvorrichtung gemäss der vorliegenden Erfindung, das System nur die Bytedaten an einer speziellen Adresse, positioniert in dem Variabel-Adressabschnitt. Somit muss das System nicht die Bytedaten an einer für jede Bitdaten anderen Adresse lesen, wie im bekannten System. Als ein Ergebnis wird es möglich, die Anzahl von auf externe Daten durchzuführenden Zugriffen wesentlich zu vermindern. Dieses ermöglicht es dem System, das Programm mit höherer Geschwindigkeit auszuführen.

Der restrukturierbare Adressumwandlungsabschnitt 80 kann die Umwandlungsverarbeitung für all die Adressen durchführen, die in der Eingabe/Ausgabeanforderung von dem Universalprozessor 11 enthalten sind. Alternativ kann der restrukturierbare Adressumwandlungsabschnitt 80 in dem allgemeinen Adressumwandlungsabschnitt als ein zusätzlicher Abschnitt enthalten sein. In diesem Fall führt der allgemeine Adressumwandlungsabschnitt die Umwandlung für einen allgemeinen Adresszugriff durch, und der restrukturierbare Adressumwandlungsabschnitt 80 führt die Umwandlung nur für die Eingabe/Ausgabe zu einer speziellen Adresse durch.

Weiter kann die Programmausführvorrichtung die Konfigurationsdaten 8 zusammen mit dem Herabladen des Ausführcodes 9 lesen, wie oben beschrieben. Alternativ kann die Programmausführvorrichtung wie folgt angeordnet sein. Wenn eine Zugriffsverarbeitung auf eine restrukturierte Adresse aufgetreten ist, oder wenn eine Anforderung zum Durchführen eines Zugriffs auf eine nicht durch den Companion Chip 70 erkannte Adresse während der Durchführung des Ausführcodes 9 auftrat, speichert die Programmausführvorrichtung den Ausführzustand, durchsucht dynamisch die Konfigurationsdaten 8 und liest diese Konfigurationsdaten 8. In diesem Fall liefert nach einem Lesen der Konfigurationsdaten 8 die Programmausführvorrichtung den gespeicherten Ausführzustand zurück und führt mit der Durchführung des Programms basierend auf dem Ausführcode 9 fort.

Im oben beschriebenen Ausführungsbeispiel wird die Programmausführvorrichtung als die Umgebung verwendet, die in der Lage ist, das Programm auszuführen, und die Programmentwicklungs-Unterstützungsvorrichtung wird als die Umgebung verwendet, die das Programm entwickeln kann. Somit wird nur zwischen den zwei Vorrichtungen unterschieden. Alternativ ist auch eine Anordnung wie folgt möglich. In einem System mit beiden obigen Umgebungen, d.h. in einem Universalcomputersystem, ist es möglich, sowohl die Entwicklung des Steuerprogramms 1, die Erzeugung des Universalprogramms 5 und des Ausführcodes 9, die Erzeugung der Konfigurationsdaten 8, die Restrukturierung der Adresse basierend auf den Konfigurationsdaten 8 sowie die Ausführung des Ausführcodes 9 durchzuführen.

Wie oben erwähnt ist gemäss der vorliegenden Erfindung der restrukturierbare Adressumwandlungsabschnitt bereitgestellt. Daher ist es möglich, wenn es notwendig ist, einen Zugriff auf Bitdaten durchzuführen, die auf eine Vielzahl von unterschiedlichen Adressen in den Inhalten eines durch einen Prozessor auszuführenden Programms verteilt sind, lediglich einige wenige Adressen zu erzeugen, auf die diese Bitdaten konzentriert zugeordnet sind. Als eine Folge ergibt sich die Möglichkeit, das Programm auf höherer Geschwindigkeit auszuführen.

Weiter ist es möglich, eine Bitposition als eine optionale Bit-Einheit einer speziellen Adresse zuzuordnen. Daher ist es möglich, eine optimale Adresse für einen externen Zugriff in einer optionalen Bit-Einheit auf dem durch den Prozessor auszuführenden Programm anzuordnen. Als ein Ergebnis ergibt sich die Möglichkeit, das Programm mit höherer Geschwindigkeit auszuführen.

Weiter ist eine optionale Bitposition optionalen Positionen in einer Vielzahl von speziellen Adressen zugeordnet. Daher wird es beim Eingeben/Ausgeben der gleichen Bitdaten möglich, einen optimalen externen Zugriff durchzuführen, zusammen mit der Verarbeitung vor oder nach der Verarbeitung des Programms, das diese Bitdaten verwendet. Als ein Ergebnis ergibt sich die Möglichkeit, das Programm mit höherer Geschwindigkeit auszuführen.

Weiter ist eine Bitposition in dem physikalischen Speicher und eine Bitposition in dem physikalischen I/O einer speziellen Adresse in einem Mischzustand zugeordnet. Daher kann die Anzahl von Adressen vermindert werden, auf die für eine Verarbeitung zuzugreifen ist, die einen Zugriff auf sowohl den physikalischen Adressraum als auch den I/O Adressraumraum erfordert. Als ein Ergebnis ergibt sich die Möglichkeit, dass das Programm mit höherer Geschwindigkeit durchgeführt werden kann.

Weiter kann eine Verarbeitung durch ein allgemeines Programmentwicklungsausführverfahren realisiert werden, wenn keine durch den restrukturierbaren Adressumwandlungsabschnitt zu restrukturierenden Daten vorliegen. Wenn ein Zugriff auf einen Datenarray basierend auf einem Verarbeitungsergebnis in dem Verarbeitungsprogramm vorgenommen wurde, ist es weiter einfach möglich, dieses unter Verwendung einer Universaladressumwandlung durchzuführen. Als ein Ergebnis ergibt sich die Möglichkeit, das Programm mit höherer Geschwindigkeit durchzuführen.

Weiter ergibt sich der Effekt, dass, um zu bewirken, dass die Programmausführvorrichtung eine Programmentwicklung durch die Programmentwicklungs-Unterstützungsvorrichtung optimal ausführt, es möglich ist, die Programmausführvorrichtung anzuweisen, eine Adresse durch die Konfigurationsdaten zu restrukturieren.

Weiter ergibt sich die Möglichkeit, ein neues optimales Programm zu erzeugen, dass die Programmausführvorrichtung mit hoher Geschwindigkeit gemäss den Inhalten der Konfigurationsdaten ausführen kann.

Weiter wird es möglich, ein neues Programm als Universalsprachenprogramm zu erhalten. Daher kann ein Nutzer ein auf dem Markt erhältliches Entwicklungswerkzeug (Entwicklungstool) für den Prozessor verwenden, ohne Notwendigkeit der Vorbereitung einer speziellen Entwicklungsumgebung. Als ein Ergebnis ergibt sich die Möglichkeit, unnötige Ausgaben auf der Nutzerseite zu vermindern.

Obwohl die Erfindung für vollständige und klare Offenbarung mit Bezug auf ein bestimmtes Ausführungsbeispiel beschrieben wurde, sind die angefügten Ansprüche nicht als solchermaßen beschränkt zu sehen, sondern sollen alle Abwandlungen und alternative Ausführungen umfassen, die dem Fachmann offensichtlich sind, und in der ausgeführten grundsätzlichen Lehre enthalten sind.


Anspruch[de]
  1. Programmierbarer Logik Controller (PLC) zur Abarbeitung eines Steuerprogramms für eine Sequenzverarbeitung, wobei auf Bit-Daten zugegriffen wird, die durch eine Vielzahl von Adressen im physikalischen Speicher oder einem I/O-Speicherbereich spezifiziert sind, wobei der programmierbare Logik-Controller umfasst:

    einen Prozessor (11) und eine Adressumwandlungseinheit (70, 80), die derart ausgebildet ist, dass,

    wenn der Prozessor (11) auf eine vorgegebene Adresse zugreift, die Adressumwandlungseinheit (70, 80) auf die Vielzahl von Bitdaten an einer Vielzahl von verschiedenen Adressen im physikalischen Speicher oder einem I/O-Speicherbereich zugreift und diese Bitdaten dem Prozessor (11) unter der vorgegebenen Adresse zur Verfügung stellt.
  2. Programmierbarer Logic Controller nach Anspruch 1, dadurch gekennzeichnet, dass die Vielzahl von Adressen im physikalischen Speicher und dem I/O-Speicherbereich gemischt angeordnet sind.
  3. Programmierbarer Logic Controller nach Anspruch 1, dadurch gekennzeichnet, dass die Adressumwandlungseinheit (70) einen Zugriff auf eine normale, von der speziellen Adresse verschiedene Adresse bewirkt, wenn der Prozessor (11) auf die normale Adresse zugreift.
  4. Programmerzeugungsvorrichtung zum Erzeugen eines neuen Sequenzprogramms für einen programmierbaren Logik Controller nach Anspruch 1 aus einem ursprünglichen Sequenzprogramm, die ausgebildet ist, Konfigurationsdaten für die Adressumwandlungseinheit aus den in dem ursprünglichen Sequenzprogramm beschriebenen Zugriffen auf eine Vielzahl von Bitdaten zu erzeugen, die durch eine Vielzahl von Adressen im physikalischen Speicher oder einem I/O-Speicherbereich spezifiziert sind,

    wobei die Konfigurationsdaten die Adressumwandlungseinheit konfigurieren, bei einem Zugriff auf die vorgegebene Adresse durch den Prozessor, auf die Vielzahl von Bitdaten unter der Vielzahl von Adressen zuzugreifen, und

    das neue Sequenzprogramm einen Zugriff auf die vorgegebene Adresse aufweist, der die ursprünglichen Zugriffe auf die Vielzahl von Bitdaten an Adressen im physikalischen Speicher oder einem I/O-Speicherbereich ersetzt.
  5. Programmerzeugungsvorrichtung (20) nach Anspruch 4 dadurch gekennzeichnet, dass das neue Programm in einer Universalcomputersprache wie beispielsweise der C Sprache geschrieben ist.
Es folgen 12 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com