DE112019007840T5 - Programmable controller - Google Patents
Programmable controller Download PDFInfo
- Publication number
- DE112019007840T5 DE112019007840T5 DE112019007840.2T DE112019007840T DE112019007840T5 DE 112019007840 T5 DE112019007840 T5 DE 112019007840T5 DE 112019007840 T DE112019007840 T DE 112019007840T DE 112019007840 T5 DE112019007840 T5 DE 112019007840T5
- Authority
- DE
- Germany
- Prior art keywords
- input
- output
- unit
- programmable controller
- control
- 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.)
- Pending
Links
- 238000013507 mapping Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 59
- 238000001514 detection method Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 21
- 230000001186 cumulative effect Effects 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004886 process control Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004043 responsiveness Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
Eine programmierbare Steuerung (1) umfasst eine Speichereinheit (20) und eine Steuerungsemulationseinheit (13). Die Speichereinheit (20) speichert Firmware und ein Steuerprogramm, die von einer emulierten programmierbaren Steuerung ausgeführt werden sollen, sowie Hardwareinformationen, die für die Emulation der Hardware der emulierten programmierbaren Steuerung erforderlich sind. Die Steuerungsemulationseinheit (13) emuliert einen Hardwarebetrieb in der emulierten programmierbaren Steuerung auf Basis der Hardwareinformationen. Die Steuerungsemulationseinheit (13) führt die Firmware (211a) und das Steuerprogramm (221a) auf der emulierten Hardware aus. Die Firmware und Hardwareinformationen, die in der Speichereinheit (20) gespeichert sind, können in Übereinstimmung mit der emulierten programmierbaren Steuerung modifiziert werden.A programmable controller (1) comprises a memory unit (20) and a controller emulation unit (13). The storage unit (20) stores firmware and a control program to be executed by an emulated programmable controller and hardware information required for emulating the hardware of the emulated programmable controller. The controller emulation unit (13) emulates a hardware operation in the emulated programmable controller based on the hardware information. The control emulation unit (13) runs the firmware (211a) and the control program (221a) on the emulated hardware. The firmware and hardware information stored in the memory unit (20) can be modified in accordance with the emulated programmable controller.
Description
GebietArea
Die vorliegende Erfindung betrifft eine programmierbare Steuerung, bei der eine Virtualisierungstechnik eingesetzt wird.The present invention relates to a programmable controller using a virtualization technique.
Hintergrundbackground
Programmierbare Steuerungen, bei denen es sich in der Regel um Steuerungen zur Steuerung von Geräten in Produktionsstätten handelt, führen Gerätesteuerungsprogramme aus, die von Nutzern wie beispielsweise Geräteherstellern erstellt wurden. Eine programmierbare Steuerung wird häufig aufgrund einer Fehlfunktion ersetzt oder mit einem neuen Produkt aktualisiert. Die Programmspezifikationen unterscheiden sich von Produkt zu Produkt. Aus diesem Grund kann ein neues Produkt, das eine programmierbare Steuerung ersetzt, nicht das zu steuernde Produkt verwenden, das vor dem Austausch verwendet wurde. Es ist demnach erforderlich, das Steuerprogramm für die Verwendung bei dem neuen Produkt zu modifizieren.Programmable controllers, which are typically controllers used to control devices in manufacturing plants, execute device control programs created by users such as device manufacturers. A programmable controller is often replaced due to a malfunction or upgraded with a new product. Program specifications vary from product to product. For this reason, a new product that replaces a programmable controller cannot use the product to be controlled that was used before the replacement. It is therefore necessary to modify the control program for use with the new product.
Das Patentdokument 1 offenbart eine Prozesssteuerungsvorrichtung, bei der eine Virtualisierungstechnik zur Verwendung in einem Steuerungssystem für die Prozesssteuerung eingesetzt wird. Die Virtualisierung ist eine Technik zur Ausführung von Software, die für ein bestehendes System bestimmt ist, auf neuer Hardware. Die in Patentdokument 1 beschriebene Prozesssteuerungsvorrichtung umfasst auf Hardware eine Virtualisierungseinheit, die anstelle der Hardware betrieben wird. Bei der in Patentdokument 1 beschriebenen Prozesssteuerungsvorrichtung wird ein Betriebssystem in der Virtualisierungseinheit neu installiert, wobei währenddessen ein verwendetes Betriebssystem funktionsfähig gehalten wird. Zudem wird auf dem neu installierten Betriebssystem das gleiche Steuerprogramm als Steuerprogramm installiert und verwendet. Der Betrieb des Steuerprogramms auf dem verwendeten Betriebssystem wird mit dem Betrieb des Steuerprogramms auf dem neu installierten Betriebssystem verglichen, wobei ermittelt wird, ob das Steuerprogramm auf dem neu installierten Betriebssystem normal arbeitet. Wenn das Steuerprogramm auf dem neu installierten Betriebssystem normal arbeitet, wird das neu installierte Betriebssystem verwendet, wenn jedoch das Steuerprogramm auf dem neu installierten Betriebssystem nicht normal arbeitet, wird das neu installierte Betriebssystem gestoppt.
Liste der Zitatelist of citations
Patentliteraturpatent literature
Patentdokument 1:
Kurzbeschreibungshort description
Technische ProblemstellungTechnical problem
Beim Austausch einer programmierbaren Steuerung durch eine andere programmierbare Steuerung ist es wünschenswert, dass ein Steuerprogramm, das in der vorhergehenden oder vor dem Austausch vorhandenen programmierbaren Steuerung ausgeführt wurde, von der anderen oder nach dem Austausch vorhandenen programmierbaren Steuerung ohne jegliche Änderung des Steuerprogramms ausgeführt wird. Bei programmierbaren Steuerungen gibt es gewöhnlich viele verschiedene Arten von Hardware-Architekturen und viele verschiedene Arten von Firmware, d. h für verschiedene Produkte installierte Systemsoftware. Dies bedeutet, dass sich in vielen Fällen die vor dem Austausch verwendete programmierbare Steuerung und die nach dem Austausch verwendete programmierbare Steuerung in Bezug auf die Hardware-Architektur und die Firmware voneinander unterscheiden. Im Falle der Anwendung der in Patentdokument 1 beschriebenen Prozesssteuerungsvorrichtung auf die nach dem Austausch verwendete programmierbare Steuerung muss die Virtualisierungseinheit zum Emulieren von Hardware für jede vor dem Austausch verwendete programmierbare Steuerung modifiziert werden. Insbesondere wenn sich die Befehlssatzarchitektur der emulierten programmierbaren Steuerung von der Befehlssatzarchitektur der Hardware in der Steuerung, die die Virtualisierungseinheit steuert, unterscheidet, ist eine Emulation auf Befehlssatzebene unvermeidlich und es müssen verschiedene Arten von Virtualisierungseinheiten angegeben werden. Eine mögliche Methode zur Lösung dieses Problems besteht darin, mehrere Arten von Virtualisierungseinheiten umfassende, programmierbare Steuerungen bereitzustellen, die verschiedene Hardwarevorrichtungen emulieren. Leider besteht bei einer solchen Methode das Problem, dass eine enorme Anzahl von Produkttypen erforderlich ist.When replacing a programmable controller with another programmable controller, it is desirable that a control program executed in the previous or pre-replacement programmable controller is executed by the other or post-replacement programmable controller without any change of the control program. In programmable controllers, there are usually many different types of hardware architectures and many different types of firmware, i. h System software installed for various products. This means that in many cases the PLC used before the replacement and the PLC used after the replacement differ from each other in terms of hardware architecture and firmware. In the case of applying the process control device described in
Die vorliegende Erfindung entstand in Anbetracht der vorherigen Ausführungen, wobei eine Aufgabe der vorliegenden Erfindung darin besteht, eine programmierbare Steuerung anzugeben, die ein Steuerprogramm einer früheren programmierbaren Steuerung verwenden kann, ohne das Steuerprogramm zu modifizieren und von der Hardware und der Firmware der früheren programmierbaren Steuerung abhängig zu sein, wenn die frühere programmierbare Steuerung ersetzt wird.The present invention was made in view of the foregoing, and an object of the present invention is to provide a programmable controller which can use a control program of a previous programmable controller without modifying the control program and from the hardware and firmware of the previous programmable controller to be dependent if the previous programmable controller is replaced.
Lösung der Problemstellungsolution to the problem
Um das Problem zu lösen und die oben beschriebene Aufgabe zu erfüllen, umfasst eine programmierbare Steuerung gemäß der vorliegenden Erfindung eine Speichereinheit und eine Steuerungsemulationseinheit. Die Speichereinheit speichert Firmware und ein Steuerprogramm, die von einer emulierten programmierbaren Steuerung ausgeführt werden sollen, sowie Hardwareinformationen, die für die Emulation der Hardware der emulierten programmierbaren Steuerung erforderlich sind. Die Steuerungsemulationseinheit emuliert auf Basis der Hardwareinformationen den Betrieb der Hardware in der emulierten programmierbaren Steuerung. Die Steuerungsemulationseinheit führt die Firmware und das Steuerprogramm auf der emulierten Hardware aus. Die Firmware und die Hardwareinformationen, die in der Speichereinheit gespeichert sind, können in Übereinstimmung mit der emulierten programmierbaren Steuerung modifiziert werden.In order to solve the problem and achieve the object described above, a programmable controller according to the present invention includes a memory unit and a controller emulation unit. The storage unit stores firmware and a control program to be executed by an emulated programmable controller and hardware information required for emulating the hardware of the emulated programmable controller. The controller emulation unit emulates the operation of the hardware in the emulated programmable controller based on the hardware information. The controller emulation unit runs the firmware and control program on the emulated hardware. The firmware and hardware information stored in the memory unit can be modified in accordance with the programmable controller being emulated.
Vorteilhafte Wirkungen der ErfindungAdvantageous Effects of the Invention
Eine programmierbare Steuerung gemäß der vorliegenden Erfindung ermöglicht es, ein Steuerprogramm einer vorhergehenden programmierbaren Steuerung zu verwenden, ohne beim Ersatz der vorhergehenden programmierbaren Steuerung das Steuerprogramm zu modifizieren und von der Hardware und der Firmware der vorhergehenden programmierbaren Steuerung abhängig zu sein.A programmable controller according to the present invention allows a control program of a previous programmable controller to be used without modifying the control program and depending on the hardware and firmware of the previous programmable controller when replacing the previous programmable controller.
Figurenlistecharacter list
-
1 zeigt ein Blockschaltbild zur schematischen Veranschaulichung eines Beispiels für die Konfiguration einer programmierbaren Steuerung gemäß einer ersten Ausführungsform.1 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to a first embodiment. -
2 zeigt eine Darstellung zur schematischen Veranschaulichung eines Beispiels für die Beziehung zwischen Blöcken, die an der Ausführung eines Steuerprogramms bei der ersten Ausführungsform beteiligt sind.2 Fig. 12 is a diagram schematically showing an example of the relationship between blocks involved in the execution of a control program in the first embodiment. -
3 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für die Beziehung zwischen der Steuerungsemulationseinheit und einem Speicherbereich.3 Fig. 12 is a diagram showing an example of the relationship between the control emulation unit and a storage area. -
4 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für den Ablauf eines Emulationsvorgangs, der in einer programmierbaren Steuerung gemäß der ersten Ausführungsform durchgeführt wird.4 FIG. 14 is a flowchart showing an example of the flow of an emulation process performed in a programmable controller according to the first embodiment. -
5 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für ein Verfahren zum Konvertieren einer virtuellen Ausgabe der programmierbaren Steuerung in eine reale Ausgabe einer programmierbaren Steuerung gemäß der ersten Ausführungsform.5 12 is a diagram showing an example of a method for converting a virtual programmable controller output into a real programmable controller output according to the first embodiment. -
6 zeigt ein Blockschaltbild zur schematischen Veranschaulichung eines Beispiels für die Konfiguration einer programmierbaren Steuerung gemäß einer zweiten Ausführungsform.6 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to a second embodiment. -
7 zeigt ein Zeitdiagramm zur schematischen Veranschaulichung eines Beispiels für die Anpassung des Timings einer Ein-/Ausgabe-Aktualisierung gemäß der zweiten Ausführungsform.7 FIG. 14 is a timing chart schematically showing an example of adjustment of the timing of an input/output update according to the second embodiment. -
8 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für den Ablauf eines Emulationsvorgangs in einer programmierbaren Steuerung gemäß der zweiten Ausführungsform.8th FIG. 12 is a flowchart showing an example of the flow of an emulation process in a programmable controller according to the second embodiment. -
9 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für ein Verfahren zum Konvertieren einer durch Emulieren erzeugten virtuellen Ausgabe in eine reale Ausgabe einer programmierbaren Steuerung gemäß der zweiten Ausführungsform.9 12 is a diagram showing an example of a method for converting a virtual output generated by emulation into a real output of a programmable controller according to the second embodiment. -
10 zeigt ein Blockschaltbild zur schematischen Veranschaulichung eines Beispiels für die Konfiguration einer programmierbaren Steuerung gemäß einer dritten Ausführungsform.10 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to a third embodiment. -
11 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für ein Verfahren zum Konvertieren einer durch Emulieren erzeugten virtuellen Ausgabe in eine reale Ausgabe einer programmierbaren Steuerung gemäß der dritten Ausführungsform.11 12 is a diagram showing an example of a method for converting a virtual output generated by emulation into a real output of a programmable controller according to the third embodiment. -
12 zeigt ein Blockschaltbild zur schematischen Veranschaulichung eines Beispiels für die Konfiguration einer programmierbaren Steuerung gemäß einer vierten Ausführungsform.12 14 is a block diagram schematically showing an example of the configuration of a programmable controller according to a fourth embodiment. -
13 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für das Timing beim Umschalten zwischen mehreren Steuerungsemulationseinheiten, die auf derselben Recheneinheit betrieben werden.13 FIG. 12 is a diagram showing an example of timing when switching between multiple control emulation units operating on the same computing unit.
Beschreibung von AusführungsformenDescription of Embodiments
Im Folgenden wird eine programmierbare Steuerung gemäß Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Figuren detailliert beschrieben. Es wird darauf hingewiesen, dass die Ausführungsformen den Umfang dieser Erfindung nicht einschränken sollen.In the following, a programmable controller according to embodiments of the present invention is described in detail with reference to the figures. It is noted that the embodiments are not intended to limit the scope of this invention.
Die folgenden Ausführungsformen werden anhand eines Beispiels beschrieben, bei dem eine programmierbare „Post-Austausch“-Steuerung den Betrieb einer programmierbaren „Prä-Austausch“-Steuerung emuliert, wenn die programmierbare „Prä-Austausch“-Steuerung ersetzt wird. Die programmierbare „Prä-Austausch“-Steuerung soll demnach durch eine programmierbare Steuerung gemäß einer der Ausführungsformen der vorliegenden Erfindung ersetzt werden. In der folgenden Beschreibung wird eine programmierbare Steuerung gemäß einer der Ausführungsformen einfach als „programmierbare Steuerung“ bezeichnet, und eine zu ersetzende programmierbare Steuerung wird als „programmierbare Prä-Austausch-Steuerung“ bezeichnet. Ferner wird eine virtualisierte „programmierbare Prä-Austausch-Steuerung“ während der Simulation eines Betriebs der „programmierbaren Prä-Austausch-Steuerung“ in der programmierbaren Steuerung im Folgenden als „virtuelle Steuerung“ bezeichnet. Zudem handelt es sich bei der „programmierbaren Prä-Austausch-Steuerung“ um eine der emulierten programmierbaren Steuerungen.The following embodiments are described using an example in which a The "post-swap" programmable controller emulates the operation of a "pre-swap" programmable controller when the "pre-swap" programmable controller is replaced. The "pre-replacement" programmable controller is therefore intended to be replaced with a programmable controller according to one of the embodiments of the present invention. In the following description, a programmable controller according to one of the embodiments is simply referred to as “programmable controller”, and a programmable controller to be replaced is referred to as “pre-replacement programmable controller”. Further, a virtualized “pre-exchange programmable controller” during the simulation of an operation of the “pre-exchange programmable controller” in the programmable controller is hereinafter referred to as “virtual controller”. In addition, the "pre-replacement programmable controller" is one of the emulated programmable controllers.
Erste AusführungsformFirst embodiment
Die Recheneinheit 10 ist ein Mikroprozessor oder Chipsatz, der gemäß einer vorgegebenen Hardware-Architektur konfiguriert ist. Die Recheneinheit 10 wird auch als Mikrocomputer bezeichnet. Die Recheneinheit 10 umfasst eine Virtualisierungseinheit 11. Die Virtualisierungseinheit 11 ist eine Funktionseinheit, die eine Ausführungsumgebung emuliert, in der ein Steuerprogramm für ein Hardwaregerät eines anderen Typs einer programmierbaren Steuerung 1 auf der Hardware der programmierbaren Steuerung 1 ausgeführt wird.The
Die Virtualisierungseinheit 11 umfasst eine Verwaltungseinheit 12, eine Steuerungsemulationseinheit 13, eine Mappinginformationen-Erzeugungseinheit 15 und einen Memory Mapped I/O (Input/Output)-Bereich 14.The
Die Verwaltungseinheit 12 ist eine Funktionseinheit, die Software verwaltet, die von der Recheneinheit 10 ausgeführt wird. Bei der ersten Ausführungsform ist die Verwaltungseinheit 12 ein Betriebssystem (OS) mit einer Scheduling-Funktion, die die parallele Ausführung mehrerer Softwareteile ermöglicht.The
Die Steuerungsemulationseinheit 13 ist eine Funktionseinheit, die den Hardware-Betrieb in einer programmierbaren Prä-Austausch-Steuerung nachbildet. Die Steuerungsemulationseinheit 13 ist ferner eine Funktionseinheit, die aus der Speichereinheit 20 Firmware und ein Steuerprogramm liest, das von der programmierbaren Prä-Austausch-Steuerung verwendet werden soll, und die ausgelesene Firmware und das ausgelesene Steuerprogramm auf einer emulierten Hardware ausführt. Die von der Steuerungsemulationseinheit 13 emulierte programmierbare Prä-Austausch-Steuerung ist die virtuelle Steuerung. Die Steuerungsemulationseinheit 13 führt die Firmware aus, wobei Befehle unter Verwendung von (später beschriebenen) Hardwareinformationen bezüglich der programmierbaren Prä-Austausch-Steuerung ausgeführt werden und ein Betrieb von Peripheriegeräten über den Mikrocomputer in der programmierbaren Prä-Austausch-Steuerung emuliert wird. Die Steuerungsemulationseinheit 13 führt außerdem ein Steuerprogramm auf der Firmware aus.The
Der Memory Mapped I/O-Bereich 14 ist ein Bereich zur Virtualisierung einer Eingabe in und einer Ausgabe von dem Peripheriegerät über den Mikrocomputer, wobei die Eingabe und Ausgabe erfolgt, wenn die Steuerungsemulationseinheit 13 die Firmware und das Steuerprogramm emuliert. In einem Beispiel ist der Memory Mapped I/O-Bereich 14 ein virtualisiertes Ein-/Ausgabesteuerungsregister, das in dem Mikrocomputer der programmierbaren Prä-Austausch-Steuerung enthalten ist. Dem Memory Mapped I/O-Bereich 14 werden als emulierter Speicherbereich Adressen zugewiesen.The memory mapped I/
Die Mappinginformationen-Erzeugungseinheit 15 ist eine Funktionseinheit, die Ein-/Ausgabe-Mappinginformationen erzeugt, die eine Ein-/Ausgabenummer eines Ein-/Ausgangsanschlusses der programmierbaren Steuerung 1 mit einer Ein-/Ausgabenummer eines Ein-/Ausgangsanschlusses der programmierbaren Prä-Austausch-Steuerung verknüpft. Die Mappinginformationen-Erzeugungseinheit 15 speichert die erzeugten Ein-/Ausgabe-Mappinginformationen in der Ein-/Ausgabe-Mappinginformationen-Speichereinheit 24 der Speichereinheit 20. In einem Beispiel erzeugt die Mappinginformationen-Erzeugungseinheit 15 die Ein-/Ausgabe-Mappinginformationen so, dass die Ein-/Ausgabenummer in der programmierbaren Prä-Austausch-Steuerung der Ein-/Ausgabenummer der programmierbaren Steuerung 1 entspricht. The mapping
Bezugnehmend auf die Ein-/Ausgabenummer des Steuerprogramms in einem Beispiel verknüpft die Mappinginformationen-Erzeugungseinheit 15 ferner die Ein-/Ausgabenummer im Steuerprogramm, d. h. die Ein-/Ausgabenummer in der programmierbaren Prä-Austausch-Steuerung, mit einer Ein-/Ausgabenummer der programmierbaren Steuerung 1.Referring to the I/O number of the control program, in an example, the mapping information generation unit links 15 also the input/output number in the control program, i.e. the input/output number in the pre-exchange programmable controller, with an input/output number of the
Die Speichereinheit 20 umfasst eine Firmware-Speichereinheit 21, eine Steuerprogramm-Speichereinheit 22, eine Hardwareinformationen-Speichereinheit 23 und die Ein-/Ausgabe-Mappinginformationen-Speichereinheit 24. Die Speichereinheit 20, bei der es sich um eine Vorrichtung handelt, die darin gespeicherte Daten überschreiben kann, ist eine nichtflüchtige Speichervorrichtung, wie z. B. eine Festplatteneinheit oder ein Solid-State-Laufwerk (SSD). Darüber hinaus kann die Speichereinheit 20 eine flüchtige Speichervorrichtung wie einen Direktzugriffsspeicher (RAM) umfassen, um ein Programm darin zu laden oder Daten darin vorübergehend zu speichern, wenn die Recheneinheit 10 eine Verarbeitung durchführt.The
Die Firmware-Speichereinheit 21 ist eine Funktionseinheit zum Speichern von Firmware, die von der programmierbaren Prä-Austausch-Steuerung ausgeführt werden soll. Es ist zu beachten, dass die programmierbare Prä-Austausch-Steuerung eine der emulierten programmierbaren Steuerungen ist. Es wird ferner darauf hingewiesen, dass die Firmware-Speichereinheit 21 die Firmware in einem binären Datenformat speichert. Die Steuerprogramm-Speichereinheit 22 ist eine Funktionseinheit zum Speichern des Steuerprogramms, das von der programmierbaren Prä-Austausch-Steuerung ausgeführt werden soll.The firmware storage unit 21 is a functional unit for storing firmware to be executed by the pre-replacement programmable controller. Note that the pre-swap programmable controller is one of the emulated programmable controllers. It is further noted that the firmware storage unit 21 stores the firmware in a binary data format. The control
Die Hardwareinformationen-Speichereinheit 23 ist eine Funktionseinheit zum Speichern der Hardwareinformationen, die zum Emulieren der Hardware der programmierbaren Prä-Austausch-Steuerung erforderlich sind. Die Hardwareinformationen umfassen Hardwarekonfigurationsinformationen, die von dem Hardwaregerät der programmierbaren Prä-Austausch-Steuerung abhängen, die von der Steuerungsemulationseinheit 13 emuliert wird. Die Hardwarekonfigurationsinformationen umfassen eine Speicherbelegung, ein Befehlsemulationsverfahren, eine Registerkonfiguration, eine Emulationsverarbeitung bei jeder Registermanipulation und dergleichen.The hardware
Die Ein-/Ausgabe-Mappinginformationen-Speichereinheit 24 ist eine Funktionseinheit zum Speichern der Ein-/Ausgabe-Mappinginformationen. Die Ein-/Ausgabe-Mappinginformationen sind Informationen, die eine Ein-/Ausgabenummer, die einem Ein-/Ausgangsanschluss der Ein-/Ausgabe-Schnittstelleneinheit 40 der programmierbaren Steuerung 1 zugewiesen ist, mit einer Ein-/Ausgabenummer verknüpfen, die einem Ein-/Ausgangsanschluss der virtuellen Steuerung zugewiesen ist. Die Ein-/Ausgabenummer, die einem Ein-/Ausgangsanschluss der virtuellen Steuerung zugeordnet ist, entspricht der Ein-/Ausgabenummer, die einem Ein-/Ausgangsanschluss der programmierbaren Prä-Austausch-Steuerung zugeordnet ist. Die Ein-/Ausgabe-Mappinginformationen werden bei der Konvertierung einer Ein-/Ausgabenummer im Memory Mapped I/O-Bereich 14 in eine Ein-/Ausgabenummer eines Ein-/Ausgangsanschlusses der tatsächlichen Ein-/Ausgabe-Schnittstelleneinheit 40 verwendet, wenn die Steuerungsemulationseinheit 13 auf den Memory Mapped I/O-Bereich 14 zugreift.The input/output mapping information storage unit 24 is a functional unit for storing the input/output mapping information. The input/output mapping information is information associating an input/output number assigned to an input/output terminal of the input/output interface unit 40 of the
Die Kommunikationsschnittstelleneinheit 30 ist mit einer Benutzerschnittstelle 70 verbunden. Die Benutzerschnittstelle 70 ist eine Vorrichtung außerhalb der programmierbaren Steuerung 1. Die Benutzerschnittstelle 70 ist eine Vorrichtung, die auf die Speichereinheit 20 der programmierbaren Steuerung 1 zugreifen kann. Bei der Benutzerschnittstelle 70 handelt es sich z. B. um eine Informationsverarbeitungsvorrichtung wie einen Personalcomputer. Die Benutzerschnittstelle 70 kann die Firmware, das Steuerprogramm, die Hardwareinformationen und die Ein-/Ausgabe-Mappinginformationen in der Speichereinheit 20 speichern und die Firmware, das Steuerprogramm, die Hardwareinformationen und die Ein-/Ausgabe-Mappinginformationen, die bereits in der Speichereinheit 20 gespeichert sind, aus der Speichereinheit 20 löschen. Die Benutzerschnittstelle 70 ist eine Vorrichtung, die ein Ergebnis der automatischen Zuweisung der Ein-/Ausgabe-Mappinginformationen empfangen und es einem Benutzer ermöglichen kann, das Ergebnis zu überprüfen. Die Benutzerschnittstelle 70 ist auch eine Vorrichtung, die den Inhalt der Ein-/Ausgabe-Mappinginformationen ändern kann. Zum Beispiel kann ein Benutzer einen Ein-/Ausgangsanschluss der programmierbaren Steuerung 1 anschließen, indem er sich die Ein-/Ausgabe-Mappinginformationen mittels der Benutzerschnittstelle 70 ansieht. Ein Benutzer kann zudem die Ein-/Ausgabe-Mappinginformationen mit der Benutzerschnittstelle 70 modifizieren, wenn die Verbindung eines Ein-/Ausgangsanschlusses geändert werden soll.The communication interface unit 30 is connected to a user interface 70 . The user interface 70 is a device external to the
Die Hardwareinformationen und die Firmware legen die Betriebsumgebung der programmierbaren Prä-Austausch-Steuerung fest. Dementsprechend werden die Firmware und die Hardwareinformationen, die die Betriebsumgebung der zu emulierenden programmierbaren Prä-Austausch-Steuerung angeben, von der Benutzerschnittstelle 70 in die Speichereinheit 20 geschrieben und von der Virtualisierungseinheit 11 ausgeführt, um dadurch die Emulation eines gewünschten Betriebs der programmierbaren Prä-Austausch-Steuerung zu ermöglichen.The hardware information and firmware define the operating environment of the programmable pre-swap controller. Accordingly, the firmware and hardware information indicating the operating environment of the programmable pre-swap controller to be emulated are written into the
Die Ein-/Ausgabe-Schnittstelleneinheit 40 umfasst Eingangsanschlüsse 41, Ausgangsanschlüsse 42 und eine Ein-/Ausgabe-Steuereinheit 43. Einer der Eingangsanschlüsse 41 ist über eine Leitung mit einer Eingabevorrichtung verbunden. Beispiele für die Eingabevorrichtung umfassen einen Schalter, einen Sensor und einen Drehgeber. Einer der Ausgangsanschlüsse 42 ist über eine Leitung mit einer Ausgabevorrichtung verbunden. Beispiele für die Ausgabevorrichtung umfassen ein Relais, ein Ventil und ein Stellglied. Den Eingangsanschlüssen 41 sind fortlaufende Nummern zugewiesen, die Eingabenummern von „0“ bis „N“ angeben (wobei N eine beliebige natürliche Zahl ist). Den Ausgangsanschlüssen 42 sind fortlaufende Nummern zugeordnet, die Ausgabenummern von „0“ bis „N“ angeben. Es wird darauf hingewiesen, dass in
Die Ein-/Ausgabe-Steuereinheit 43 ist eine Funktionseinheit, die die Weiterleitung von Daten zwischen dem Memory Mapped I/O-Bereich 14 und den Ein-/Ausgabevorrichtungen über die Eingangsanschlüsse 41 und über die Ausgangsanschlüsse 42 steuert. Konkret führt die Ein-/Ausgabe-Steuereinheit 43 bei einem Zugriff auf den Eingangsanschluss 41 oder den Ausgangsanschluss 42 zusammen mit der Steuerungsemulationseinheit 13 eine Ein-/Ausgabe-Aktualisierungsverarbeitung durch. Bei der Ein-/Ausgabe-Aktualisierungsverarbeitung handelt es sich um eine Verarbeitung, die berechnete Ausgabeinformationen über den Ausgangsanschluss 42 an eine Ausgabevorrichtung überträgt und Eingabeinformationen von einer Eingabevorrichtung über den Eingangsanschluss 41 empfängt.The input/output control unit 43 is a functional unit that controls the forwarding of data between the memory mapped I/
Auch wenn
In einigen Fällen kann sich die Art der Verbindung zwischen den Ein-/Ausgangsanschlüssen der programmierbaren Prä-Austausch-Steuerung und den Ein-/Ausgabevorrichtungen von der Art der Verbindung zwischen den Ein-/Ausgangsanschlüssen der programmierbaren Steuerung 1 und den Ein-/Ausgabevorrichtungen unterscheiden. In einem solchen Fall werden die Ein-/Ausgabe-Mappinginformationen verwendet, die die Ein-/Ausgabenummern, die den Ein-/Ausgangsanschlüssen der programmierbaren Steuerung 1 zugewiesen sind, mit den Ein-/Ausgabenummern verknüpfen, die den Ein-/Ausgangsanschlüssen der programmierbaren Prä-Austausch-Steuerung zugewiesen sind. Die Steuerungsemulationseinheit 13 wandelt demnach unter Verwendung der Ein-/Ausgabe-Mappinginformationen das Ziel der Ausgabeinformationen von dem virtualisierten Ausgabeziel in dem Memory Mapped I/O-Bereich 14 in das tatsächliche Ausgabeziel der programmierbaren Steuerung 1 um. Ferner wandelt die Steuerungsemulationseinheit 13 die virtualisierte Eingabequelle in dem Memory Mapped I/O-Bereich 14 in die tatsächliche Eingabequelle in der programmierbaren Steuerung 1 um, um Eingabeinformationen zu empfangen.In some cases, the type of connection between the input/output ports of the pre-exchange programmable controller and the input/output devices may be different from the type of connection between the input/output ports of the
Die Firmware 211a wird als Datei in einem binären Datenformat bereitgestellt, die von dem Mikrocomputer der programmierbaren Prä-Austausch-Steuerung ausgeführt werden kann.The
Die Steuerungsemulationseinheit 13 ist ein Befehlssatzsimulator (ISS), der eine Binärdatei, die die Firmware 211a repräsentiert, decodieren und die Binärdatei mit Software auszuführen kann. Ferner ist die Steuerungsemulationseinheit 13 als Prozess auf der Verwaltungseinheit 12 ausgebildet. Auch wenn die Steuerungsemulationseinheit 13 hier konkret als ISS zur Ausführung der Firmware 211a für eine Hardware mit einer anderen Befehlssatzarchitektur beschrieben wird, kann anstelle der Steuerungsemulationseinheit 13 auch eine Hardwarefunktion mit gleichwertiger Funktionalität verwendet werden. Wenn die Firmware 211a für Hardware mit derselben Befehlssatzarchitektur ausgeführt werden soll, kann die Steuerungsemulationseinheit 13 alternativ so konfiguriert werden, dass sie die Firmware 211a direkt durch einen Prozess der Steuerungsemulationseinheit 13 ausführt.The
Das Steuerprogramm 221a wird Form von Daten bereitgestellt, die in ein Format umgewandelt werden, das von der programmierbaren Prä-Austausch-Steuerung ausgeführt werden kann. Das Datenformat und die Methode zur Ausführung des Steuerprogramms 221a variieren je nach programmierbarer Steuerung. Mögliche Ausführungsverfahren umfassen eine Methode, die es der Firmware 211a ermöglicht, das Steuerprogramm 221a mit Hilfe eines Interpreters auszuführen, eine Methode, die die programmierbare Steuerung mit dedizierter Hardware ausstattet, die das Steuerprogramm 221a direkt ausführen kann, und eine Methode, die diese beiden Methoden kombiniert. Bei der ersten Ausführungsform wird ein Interpreter verwendet, der es der Firmware 211a ermöglicht, das Steuerprogramm 221a direkt zu interpretieren und auszuführen. Wie in
Der Speicherbereich 310 umfasst Speicheradressen, die einem Festwertspeicherbereich (ROM), einem RAM-Bereich und dem Memory Mapped I/O-Bereich 14 zugewiesen sind, der in der virtuellen Steuerung enthalten ist. Der Memory Mapped I/O-Bereich 14 ist ein Registerbereich für das Peripheriegerät über den Mikrocomputer in der programmierbaren Prä-Austausch-Steuerung.The
In dem einem Prozess der Steuerungsemulationseinheit 13 zugewiesenen Speicherplatz befinden sich das Steuerprogramm 221a, das in einen Ausführungscode für die programmierbare Steuerung 1 umgewandelt wurde, die Firmware 211a in einem binären Datenformat, Hardwareinformationen 231 und Ein-/Ausgabe-Mappinginformationen 241.In the memory space allocated to a process of the
Die Hardwareinformationen 231 und die Ein-/Ausgabe-Mappinginformationen 241 über die programmierbare Prä-Austausch-Steuerung sowie das Steuerprogramm 221a und die Firmware 211a, die von der emulierten programmierbaren Steuerung ausgeführt werden sollen, werden in dem einem Prozess der Steuerungsemulationseinheit 13 zugewiesenen Speicherplatz 350 bereitgestellt. Das Steuerprogramm 221a ist das Ergebnis der Konvertierung des Steuerprogramms 221 im Speicherbereich 310 in einen Ausführungscode für die programmierbare Steuerung 1. Die Firmware 211a ist das Ergebnis der Konvertierung der Firmware 211 im Speicherbereich 310 in ein binäres Datenformat. Das Steuerprogramm 221a, die Firmware 211a, die Hardwareinformationen 231 und die Ein-/Ausgabe-Mappinginformationen 241 werden von der Steuerungsemulationseinheit 13 referenziert oder bei Bedarf mit einem neuen Wert aktualisiert.The
In den Ein-/Ausgabe-Mappinginformationen 241 werden die Eingabenummern, die den Eingangsanschlüssen 41 der programmierbaren Steuerung 1 zugewiesen sind, den Eingabenummern der Eingangsanschlüsse der virtuellen Steuerung zugewiesen. Somit werden die Eingabenummern der Eingangsanschlüsse 41 in der programmierbaren Steuerung 1 mit Informationen, die die zugewiesene virtuelle Steuerung identifizieren, und mit den Eingabenummern der Eingangsanschlüsse in dieser virtuellen Steuerung verknüpft. Zudem werden in den Ein-/Ausgabe-Mappinginformationen 241 die Ausgabenummern, die den Ausgangsanschlüssen 42 der programmierbaren Steuerung 1 zugeordnet sind, der virtuellen Steuerung zugeordnet. Somit werden die Ausgabenummern der Ausgangsanschlüsse 42 in der programmierbaren Steuerung 1 mit Informationen zur Identifizierung der zugewiesenen virtuellen Steuerung und mit den Ausgabenummern der Ausgangsanschlüsse dieser virtuellen Steuerung verknüpft.In the input/
Um den Betrieb einer Recheneinheit, die eine Zentraleinheit (CPU) umfasst, zu emulieren, weist die Steuerungsemulationseinheit 13 einen virtuellen Programmzähler 131 und ein virtuelles Mehrzweckregister 132 auf. Die tatsächliche Form des virtuellen Programmzählers 131 und des virtuellen Mehrzweckregisters 132 sind einzelne Daten in einem Prozess der Steuerungsemulationseinheit 13. Das virtuelle Mehrzweckregister 132 speichert alle Daten, die aus der in der Steuerungsemulationseinheit 13 durchgeführten Berechnung resultieren.In order to emulate the operation of a computing unit comprising a central processing unit (CPU), the
Bei dem virtuellen Programmzähler 131 handelt es sich um Daten zum Spezifizieren einer Adresse in dem Speicherbereich, für den die Steuerungsemulationseinheit 13 ausgeführt wird. Bei dem virtuellen Programmzähler 131 handelt es sich demnach um Daten, die den Speicherbereich 310 angeben, den die Steuerungsemulationseinheit emuliert. Die Steuerungsemulationseinheit 13 interpretiert und führt die Firmware 211 an der im virtuellen Programmzähler 131 enthaltenen Adresse aus. Die tatsächliche Form der Firmware 211 ist die Firmware 211a in dem einem Prozess der Steuerungsemulationseinheit 13 zugewiesenen Speicherplatz 350. Dementsprechend konvertiert die Steuerungsemulationseinheit 13 die im virtuellen Programmzähler 131 gespeicherte Adresse in eine Adresse im Speicherplatz 350 und liest dann Daten der tatsächlichen Firmware 211a im binären Datenformat aus dem Speicherplatz 350.The
Eine Logik zum Interpretieren der Firmware 211a im binären Datenformat als Befehl und zum Ausführen dieser Firmware 211a sowie die Verarbeitung zum Emulieren dieses von der Logik interpretierten Befehls sind in den Hardwareinformationen 231 gespeichert. Dementsprechend emuliert die Steuerungsemulationseinheit 13 einen Befehl auf Basis der Hardwareinformationen 231.A logic for interpreting the
Wenn die Ausführung der Firmware 211a einen Zugriff auf den Memory Mapped I/O-Bereich 14 im emulierten Speicherbereich 310 bewirkt, wird eine Verarbeitung zur Emulation der entsprechenden Hardwareoperation per Software durchgeführt. Die Emulationsverarbeitung für das Peripheriegerät über den Mikrocomputer wird in den Hardwareinformationen 231 gespeichert, wobei die Steuerungsemulationseinheit 13 somit auf Basis der Hardwareinformationen 231 eine Hardwareoperation emuliert, die sich auf den Zugriff auf den Memory Mapped I/O-Bereich 14 bezieht. Wenn sich die entsprechende Hardwareoperation auf die Steuerung der Eingabe in die/Ausgabe aus der programmierbaren Steuerung 1 bezieht, bezieht sich die Steuerungsemulationseinheit 13 ferner auf die Ein-/Ausgabe-Mappinginformationen 241, um Informationen über einen entsprechenden der tatsächlichen Eingangsanschlüsse 41 und der tatsächlichen Ausgangsanschlüsse 42 in Übereinstimmung mit der in den Ein-/Ausgabe-Mappinginformationen 241 angegebenen Zuordnung einzugeben oder auszugeben. Zum Beispiel wandelt die Steuerungsemulationseinheit 13 die Ein-/Ausgabenummer des virtuellen Ein-/Ausgangsanschlusses, auf den zugegriffen werden soll, in die Ein-/Ausgabenummer des tatsächlichen Ein-/Ausgangsanschlusses um und empfängt dann Eingabeinformationen von dem tatsächlichen Eingangsanschluss 41 oder gibt Informationen, die ausgegeben werden sollen, an den tatsächlichen Ausgangsanschluss 42 aus. Dies ist darauf zurückzuführen, dass der von der Steuerungsemulationseinheit 13 berechnete Memory Mapped I/O-Bereich 14, bei dem es sich um einen in der programmierbaren Prä-Austausch-Steuerung handelt, eine Konvertierung in die Ein-/Ausgabenummer des Registers für die tatsächliche Ein-/Ausgabesteuerung erfordert, die in der programmierbaren Steuerung 1 durchgeführt wird.When the execution of the
Nachfolgend wird der Betrieb einer wie oben beschrieben konfigurierten programmierbaren Steuerung 1 beschrieben.
Wenn die Recheneinheit 10 die Steuerungsemulationseinheit 13 in Form eines Prozesses auf der Verwaltungseinheit 12 erzeugt, liest die Steuerungsemulationseinheit 13 aus der Speichereinheit 20 die Hardwareinformationen 231 und die Ein-/Ausgabe-Mappinginformationen 241 über die programmierbare Prä-Austausch-Steuerung sowie die Firmware 211a und das Steuerprogramm 221a, die von der programmierbaren Prä-Austausch-Steuerung ausgeführt werden sollen, und lädt die einzelnen Informationen 231, 241 und die Firmware 211a und das Steuerprogramm 221a, die gelesen wurden, in den Speicher (Schritt S11).When the
Als Nächstes setzt die Steuerungsemulationseinheit 13 den virtuellen Programmzähler 131 auf eine Firmware-Startadresse, bei der es sich um die Adresse zum Starten der Firmware 211 handelt (Schritt S12). In einem Anfangszustand setzt die Steuerungsemulationseinheit 13 die Adresse für einen Befehlsabruf auf die Firmware-Startadresse im emulierten Speicherbereich 310.Next, the
Danach konvertiert die Steuerungsemulationseinheit 13 die Firmware-Startadresse, die im virtuellen Programmzähler 131 auf die Adresse der in den Speicher geladenen Firmware 211a gesetzt wurde, in ein binäres Datenformat, und decodiert und führt einen Befehl der Firmware 211a an dieser Adresse aus (Schritt S13). Dieser Vorgang wird als Decodierung von Mikrocomputerbefehlen bezeichnet. Dabei sind Mikrocomputerbefehle verschiedene Arten von Befehlen, einschließlich allgemeiner Operationen, logischer Operationen, Gleitkommaoperationen, Sprunganweisungen, Vergleichen, Speicherübertragungen, Nulloperationen (NOP) und privilegierten Anweisungen, wobei die Steuerungsemulationseinheit 13 die Verarbeitung zur Emulation dieser Befehlsarten durchführt. Es wird darauf hingewiesen, dass zu den privilegierten Anweisungen Befehle für die Manipulation von Steuerregistern, Interrupt-Level-Änderungen, Supervisor-Call-Anweisungen und dergleichen gehören.Thereafter, the
Es wird beispielsweise angenommen, dass der Mikrocomputer der programmierbaren Prä-Austausch-Steuerung einen Befehl „ADD R1, R2, #100“ hat. Dieser Befehl bewirkt eine Operation zum „Speichern eines Ergebnisses der Addition des Wertes von Register R2 und eines Sofortwertes von 100 in Register R1“. Die Steuerungsemulationseinheit 13 der Virtualisierungseinheit 11 führt eine entsprechende Verarbeitung gemäß dieses Befehls durch und speichert das Ergebnis in dem virtuellen Mehrzweckregister 132.For example, assume that the microcomputer of the pre-exchange programmable controller has an instruction “ADD R1, R2, #100”. This command causes an operation to "store a result of adding the value of register R2 and an immediate value of 100 to register R1". The
Als Nächstes bestimmt die Steuerungsemulationseinheit 13, ob der auszuführende Befehl ein Befehl für den Zugriff auf den Speicher ist (Schritt S14). Wenn der auszuführende Befehl kein Befehl für den Zugriff auf den Speicher ist (Nein in Schritt S14), bezieht sich die Steuerungsemulationseinheit 13 auf die Hardwareinformationen 231 und führt eine Verarbeitung des auszuführenden Befehls durch (Schritt S15). Dieser Vorgang wird als Mikrocomputerbefehlsemulationsverarbeitung bezeichnet.Next, the
Wenn der auszuführende Befehl ein Befehl zum Zugriff auf den Speicher ist (Ja in Schritt S14), bestimmt die Steuerungsemulationseinheit 13 alternativ, ob die Adresse, auf die zugegriffen werden soll, der Memory Mapped I/O-Bereich 14 ist (Schritt S16). Wenn die Adresse, auf die zugegriffen werden soll, nicht der Memory Mapped I/O-Bereich 14 ist (Nein in Schritt S16), wird die Mikrocomputerbefehlsemulationsverarbeitung von Schritt S15 durchgeführt. Wenn die Adresse, auf die zugegriffen werden soll, der Memory Mapped I/O-Bereich 14 ist (Ja in Schritt S16), bezieht sich die Steuerungsemulationseinheit 13 auf die Hardwareinformationen 231 und führt eine Hardwareemulationsverarbeitung über das Peripheriegerät durch, die der Verarbeitung des auszuführenden Befehls entspricht (Schritt S17). Diese Verarbeitung wird als Mikrocomputer-Peripheriegerät-Emulationsverarbeitung bezeichnet. Dabei emuliert die Steuerungsemulationseinheit 13 die Hardwareoperation in Übereinstimmung mit den Hardwareinformationen 231. Darüber hinaus spiegelt die Steuerungsemulationseinheit 13 im Falle des Zugriffs auf ein Register für die Ein-/Ausgabe-Steuerung der programmierbaren Steuerung 1 die Informationseingabe oder die Informationsausgabe über den tatsächlichen Ein-/Ausgangsanschuss in Übereinstimmung mit den Ein-/Ausgabe-Mappinginformationen 241 wider. Konkret bezieht sich die Steuerungsemulationseinheit 13 auf die Ein-/Ausgabe-Mappinginformationen 241 und gibt dann entsprechend der Zuordnung in den Ein-/Ausgabe-Mappinginformationen 241 die Informationen an das Ausgabegerät aus oder empfängt die von dem Eingabegerät über die Ein-/Ausgabe-Steuereinheit 43 eingegebenen Informationen.Alternatively, when the command to be executed is a command to access the memory (Yes in step S14), the
Danach oder nach Schritt S15 setzt die Steuerungsemulationseinheit 13 den virtuellen Programmzähler 131 auf die Adresse, die dem nächsten Befehl der Firmware 211 entspricht (Schritt S18), und der Prozess kehrt zu Schritt S13 zurück.Thereafter, or after step S15, the
Um beispielsweise den Ausgangsanschluss mit der Ausgabenummer „1“ in der programmierbaren Prä-Austausch-Steuerung „EIN“ zu schalten, sollte das erste Bit des Ausgabesteuerungsregisters 341 auf „1" gesetzt werden.For example, to turn "ON" the output port with issue number "1" in the programmable pre-swap controller, the first bit of the output control register 341 should be set to "1".
Wenn die Firmware auf der Steuerungsemulationseinheit 13, d. h. der virtuellen Steuerung, beispielsweise die Verarbeitung zum Einschalten der Ausgangsanschlüsse mit den Ausgabenummern „1“ und „2“ durchführt, führt die Steuerungsemulationseinheit 13 eine Hardwareemulationsverarbeitung für das Ausgabesteuerungsregister 341 durch. Das heißt, die Steuerungsemulationseinheit 13 führt eine virtuelle Ausgabe an ein virtuelles Register 141 in dem Memory Mapped I/O-Bereich 14 durch, das dem Ausgabesteuerungsregister 341 entspricht. Dann werden das erste Bit „X1“ und das zweite Bit „X2“ des virtuellen Registers 141 auf „EIN“ gesetzt. Da das Ausgabesteuerungsregister 341 ein Register zur Steuerung der Eingabe in die/Ausgabe aus der programmierbaren Steuerung 1 ist, wird das Ergebnis der Hardwareemulationsverarbeitung unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen 241 an ein tatsächliches Ein-/Ausgabesteuerregister 441 der programmierbaren Steuerung 1 ausgegeben. Auf Basis der Inhalte des Ein-/Ausgabesteuerregisters 441 führt die Ein-/Ausgabe-Steuereinheit 43 demnach eine Steuerung zum Einschalten oder Ausschalten der Eingangsanschlüsse 41 oder der Ausgangsanschlüsse 42 durch.If the firmware on the
Die Ein-/Ausgabe-Mappinginformationen 241 von
Bei der ersten Ausführungsform decodiert die Steuerungsemulationseinheit 13 einen Befehl der Firmware 211a und führt ihn zugleich aus, um so diesen Befehl zu emulieren. Wenn der Befehl ein Befehl zum Zugriff auf den Memory Mapped I/O-Bereich 14 ist, wird zudem auch die Hardware zur gleichen Zeit emuliert. Nach Abschluss des einen Emulationsbefehls setzt die Steuerungsemulationseinheit 13 die Emulation zugleich mit der Ausführung des nächsten Befehls fort. Dabei sind die Emulationsverarbeitung für jeden Befehl, auf den bei der Ausführung der Firmware 211a Bezug genommen wird, und die Hardwareemulationsverarbeitung im Falle eines Zugriffs auf den Memory Mapped I/O-Bereich 14 in den Hardwareinformationen 231 enthalten, wobei die Firmware 211 und die Hardwareinformationen 231 über die Kommunikationsschnittstelleneinheit 30 modifiziert werden können. Durch den Austausch der Firmware und der Hardwareinformationen kann die emulierte programmierbare Steuerung auf Wunsch ausgetauscht werden. Darüber hinaus können die Ein-/Ausgabe-Mappinginformationen 241, auf die Bezug genommen wird, wenn bei der Hardwareemulationsverarbeitung auf einen Ein-/Ausgangsanschluss der programmierbaren Steuerung 1 zugegriffen wird, vom Benutzer manuell geändert werden, so dass die Korrespondenz zwischen den virtuellen Eingaben und Ausgaben in der auf der Steuerungsemulationseinheit 13 emulierten virtuellen Steuerung und den tatsächlichen Eingaben und Ausgaben der programmierbaren Steuerung 1 wie gewünscht geändert werden kann.In the first embodiment, the
Es sei darauf hingewiesen, dass die erste Ausführungsform anhand eines Beispiels beschrieben wurde, bei dem die Firmware das Steuerprogramm in der programmierbaren Prä-Austausch-Steuerung direkt interpretiert und ausführt. Im Falle der Emulation einer programmierbaren Steuerung, die dedizierte Hardware zur Ausführung des Steuerprogramms umfasst, werden Hardwareinformationen zur Emulation dieser dedizierten Hardware angegeben, um dadurch die Ausführung des Steuerprogramms zu emulieren.It should be noted that the first embodiment has been described using an example in which the firmware directly interprets and executes the control program in the pre-replacement programmable controller. In the case of emulating a programmable controller including dedicated hardware for executing the control program, hardware information for emulating this dedicated hardware is given to thereby emulate the execution of the control program.
Bei der ersten Ausführungsform sind die Firmware 211, das Steuerprogramm 221 und die Hardwareinformationen 231 austauschbar, wobei die Ein-/Ausgabe-Mappinginformationen 241 über die Kommunikationsschnittstelleneinheit 30 modifizierbar sind. Die programmierbare Steuerung 1 kann jedoch auch eine Schnittstelle zum Anschließen eines Speichermediums enthalten, auf dem diese Informationen gespeichert sind, und über diese Schnittstelle Daten aus dem Speichermedium lesen und eine Emulationsoperation durchführen. Beispiele für das Speichermedium umfassen eine Secure Digital (SD)-Speicherkarte, einen Compact Disc (CD)-ROM, einen Digital Versatile Disc oder Digital Video Disc (DVD)-ROM, einen Blu-ray (eingetragene Marke) Disk (BD)-ROM, eine CompactFlash (eingetragene Marke)-Karte und eine Floppy (eingetragene Marke)-Disk.In the first embodiment, the
Zweite AusführungsformSecond embodiment
Bei der zweiten Ausführungsform verfügt die Steuerungsemulationseinheit 13 ferner über die Funktionalität, die Zeit zu schätzen, die erforderlich ist, um eine Anweisung der Firmware in der programmierbaren Prä-Austausch-Steuerung auszuführen, den Zeitpunkt des Beginns der Ein-/Ausgabeaktualisierungsoperation in der programmierbaren Prä-Austausch-Steuerung zu berechnen und eine Ein-/Ausgabe-Timing-Anpassungseinheit 431 (später beschrieben) über das Ergebnis zu informieren. Konkret schätzt die Steuerungsemulationseinheit 13 jedes Mal, wenn die Steuerungsemulationseinheit 13 eine Befehlsanweisung der Firmware 211a decodiert und ausführt, eine Befehlsausführungszeit, bei der es sich um die Zeit für die tatsächliche Ausführung des Befehls in der programmierbaren Prä-Austausch-Steuerung handelt. Die Steuerungsemulationseinheit 13 berechnet dann eine kumulative Befehlsausführungszeit, die durch Aufsummieren der Befehlsausführungszeiten ab dem Zeitpunkt des Abschlusses der letzten Ein-/Ausgabeaktualisierungsoperation erhalten wird. Wenn dann ein Zugriff auf ein Ein-/Ausgabeaktualisierungsregister erfolgt, verwendet die Steuerungsemulationseinheit 13 die kumulative Befehlsausführungszeit zu diesem Zeitpunkt, um den Zeitpunkt der Beendigung der Scanverarbeitung abzuschätzen, die das Steuerprogramm in der programmierbaren Prä-Austausch-Steuerung ausführt, d. h. um den Zeitpunkt des tatsächlichen Beginns der Ein-/Ausgabeaktualisierungsoperation abzuschätzen. Die Steuerungsemulationseinheit 13 gibt die geschätzte Zeit des Beginns der Ein-/Ausgabeaktualisierungsoperation an die Ein-/Ausgabe-Timing-Anpassungseinheit 431 aus.In the second embodiment, the
Die Ein-/Ausgabe-Steuereinheit 43 der programmierbaren Steuerung 1 umfasst ferner die Ein-/Ausgabe-Timing-Anpassungseinheit 431. Die Ein-/Ausgabe-Timing-Anpassungseinheit 431 weist die Funktionalität auf, den Zeitpunkt, zu dem die Ein-/Ausgabe-Aktualisierung in der programmierbaren Steuerung 1 durchgeführt wird, mit dem Zeitpunkt, zu dem die Ein-/Ausgabe-Aktualisierung in der programmierbaren Prä-Austausch-Steuerung durchgeführt wird, gleichzusetzen. Die Ein-/Ausgabe-Timing-Anpassungseinheit 431 hält die Ein-/Ausgabe-Steuereinheit 43 in einem Wartezustand bis zum Zeitpunkt des Starts der von der Steuerungsemulationseinheit 13 geschätzten Ein-/Ausgabe-Aktualisierungsverarbeitung und erlaubt der Ein-/Ausgabe-Steuereinheit 43 zum Zeitpunkt des Starts der Ein-/Ausgabe-Aktualisierungsoperation, die Ein-/Ausgabe-Aktualisierungsverarbeitung durchzuführen.The input/output control unit 43 of the
Es wird angenommen, dass die programmierbare Prä-Austausch-Steuerung ein veralteter Typ mit niedriger Rechengeschwindigkeit ist. In diesem Fall wird eine Operation zum Scannen 512 auf der Steuerungsemulationseinheit 13 früher abgeschlossen als eine Operation zum Scannen 511 auf der programmierbaren Prä-Austausch-Steuerung. In diesem Fall gibt die Ein-/Ausgabe-Timing-Anpassungseinheit 431 der zweiten Ausführungsform eine Timing-Anpassungszeit 532 an, die in
Nach Schritt S11 initialisiert die Steuerungsemulationseinheit 13 die kumulative Befehlsausführungszeit (Schritt S31). Die Prozedur wird dann mit Schritt S12 fortgesetzt.After step S11, the
Nach Schritt S15 schätzt die Steuerungsemulationseinheit 13 eine Befehlsausführungszeit für einen emulierten Befehl in der programmierbaren Prä-Austausch-Steuerung und addiert die geschätzte Befehlsausführungszeit zu der kumulativen Befehlsausführungszeit zu diesem Zeitpunkt (Schritt S32). Die kumulative Befehlsausführungszeit, zu der die Befehlsausführungszeit addiert wird, stellt eine neue kumulative Befehlsausführungszeit dar. Die Prozedur wird dann mit Schritt S18 fortgesetzt.After step S15, the
Wenn die Adresse, auf die zugegriffen werden soll, der Memory Mapped I/O-Bereich 14 von Schritt S16 ist (Ja in Schritt S16), bestimmt die Steuerungsemulationseinheit 13, ob die Adresse, auf die zugegriffen werden soll, das Ein-/Ausgabe-Aktualisierungsregister ist (Schritt S33). Wenn die Adresse, auf die zugegriffen werden soll, nicht das Ein-/Ausgabe-Aktualisierungsregister ist (Nein in Schritt S33), führt die Steuerungsemulationseinheit 13 eine Hardwareemulationsverarbeitung an dem entsprechenden Register durch (Schritt S34). Die Prozedur wird dann mit Schritt S32 fortgesetzt.When the address to be accessed is the memory mapped I/
Wenn die Adresse, auf die zugegriffen werden soll, das Ein-/Ausgabe-Aktualisierungsregister ist (Ja in Schritt S33), erhält die Steuerungsemulationseinheit 13 alternativ die kumulative Befehlsausführungszeit zu diesem Zeitpunkt und schätzt aus der kumulativen Befehlsausführungszeit die Startzeit der Ein-/Ausgabe-Aktualisierungsoperation in der emulierten realen programmierbaren Steuerung (Schritt S35). Als Nächstes gibt die Steuerungsemulationseinheit 13 die geschätzte Startzeit der Ein-/Ausgabe-Aktualisierungsoperation an die Ein-/Ausgabe-Timing-Anpassungseinheit 431 aus (Schritt S36). Dann wird die Steuerungsemulationseinheit 13 in einen Wartezustand versetzt, bis sie von der Ein-/Ausgabe-Timing-Anpassungseinheit 431 eine Mitteilung über den Abschluss der Durchführung der Ein-/Ausgabe-Aktualisierung erhält (Schritt S37).Alternatively, when the address to be accessed is the I/O update register (Yes in step S33), the
Nach dem Empfang der Startzeit der Ein-/Ausgabe-Aktualisierungsoperation stellt die Ein-/Ausgabe-Timing-Anpassungseinheit 431 die Startzeit der Ein-/Ausgabe-Aktualisierungsverarbeitung ein (Schritt S38). Die Ein-/Ausgabe-Timing-Anpassungseinheit 431 bestimmt dann, ob die aktuelle Zeit die Startzeit der Ein-/Ausgabe-Aktualisierungsverarbeitung erreicht hat (Schritt S39). Wenn die aktuelle Zeit noch nicht die Startzeit der Ein-/Ausgabe-Aktualisierungsverarbeitung erreicht hat (Nein in Schritt S39), wird die Ein-/Ausgabe-Timing-Anpassungseinheit 431 in einen Wartezustand versetzt.After receiving the start time of the input/output update operation, the input/output timing adjustment unit 431 adjusts the start time of the input/output update processing (step S38). The input/output timing adjustment unit 431 then determines whether the current time has reached the start time of the input/output update processing (step S39). If the current time has not yet reached the start time of the input/output update processing (No in step S39), the input/output timing adjustment unit 431 is placed in a waiting state.
Wenn die aktuelle Zeit die Startzeit der Ein-/Ausgabe-Aktualisierungsverarbeitung erreicht hat (Ja in Schritt S39), erlaubt die Ein-/Ausgabe-Timing-Anpassungseinheit 431 alternativ der Ein-/Ausgabe-Steuereinheit 43, die Ein-/Ausgabe-Aktualisierungsverarbeitung durchzuführen. Die Ein-/Ausgabe-Steuereinheit 43 führt demnach die Ein-/Ausgabe-Aktualisierungsverarbeitung durch, die Eingabeinformationen empfängt oder Ausgabeinformationen festlegt (Schritt S40). Dann benachrichtigt die Ein-/Ausgabe-Timing-Anpassungseinheit 431 die Steuerungsemulationseinheit 13 über den Abschluss der Durchführung der Ein-/Ausgabe-Aktualisierungsverarbeitung (Schritt S41).Alternatively, when the current time has reached the start time of the input/output update processing (Yes in step S39), the input/output timing adjustment unit 431 allows the input/output control unit 43 to perform the input/output update processing to perform. The input/output control unit 43 thus performs the input/output update processing that receives input information or sets output information (step S40). Then, the input/output timing adjustment unit 431 notifies the
Wenn die Steuerungsemulationseinheit 13 von der Ein-/Ausgabe-Timing-Anpassungseinheit 431 die Mitteilung über den Abschluss der Durchführung der Ein-/Ausgabe-Aktualisierungsoperation empfängt (Schritt S42), kehrt die Prozedur zu Schritt S31 zurück.When the
Auch wenn sich die obige Beschreibung auf ein Verfahren bezieht, bei dem jedes Mal, wenn ein Mikrocomputerbefehl ausgeführt wird, die Steuerungsemulationseinheit 13 die Befehlsausführungszeit für denselben Befehl in einem realen Gerät schätzt, der dem Mikrocomputerbefehl entspricht, sowie die Zeit für das Scannen in dem realen Gerät unter Verwendung der kumulativen Befehlsausführungszeit schätzt, kann auch ein anderes Zeitschätzungsverfahren verwendet werden. Beispielsweise kann die Zeit für das Scannen in einem realen Gerät durch Schätzung der Befehlsausführungszeit auf einer Einzelbefehlsbasis des Steuerprogramms 221 und durch Verwendung der kumulativen Befehlsausführungszeit davon geschätzt werden.Although the above description relates to a method in which each time a microcomputer instruction is executed, the
Wenn auf das Ausgabesteuerungsregister 341 in der Firmware 211 a zugegriffen wird, die von der Steuerungsemulationseinheit 13 ausgeführt wird, wird wie bei der Ausgabe an das Ausgabesteuerungsregister 341 in der programmierbaren Prä-Austausch-Steuerung eine virtuelle Ausgabe an das virtuelle Register 141 ausgegeben. Die virtuelle Ausgabe setzt die Verbindung der programmierbaren Prä-Austausch-Steuerung mit den Ein-/Ausgabegeräten und deren Hardwarekonfiguration voraus. Dementsprechend wird im Falle einer Eingabe in/ Ausgabe aus einem Ein-/Ausgangsanschluss der tatsächlichen programmierbaren Steuerung 1 die Ausgabe entsprechend der Verbindung der programmierbaren Steuerung 1 mit den Ein-/Ausgabegeräten und deren Hardwarekonfiguration konvertiert. Die Ausgabenummern in der virtuellen Ausgabe werden unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen 241 in die tatsächlichen Ausgabenummern konvertiert. Bei der zweiten Ausführungsform berechnet die Steuerungsemulationseinheit 13 eine Startzeit „A“ der Ein-/Ausgabe-Aktualisierung unter Bezugnahme auf die kumulative Befehlsausführungszeit 435. In diesem Fall wird demnach der Zeitpunkt berechnet, an dem die Ausgabeinformationen von den tatsächlichen Ausgangsanschlüssen 42 ausgegeben werden sollen. Die tatsächlichen Ausgabewerte und die Startzeit „A“ der Ein-/Ausgabe-Aktualisierung, die bei dieser Operation erhalten werden, werden in der Ein-/Ausgabe-Timing-Anpassungseinheit 431 gespeichert. Bei der Startzeit „A“ informiert die Ein-/Ausgabe-Timing-Anpassungseinheit 431 die Ein-/Ausgabe-Steuereinheit 43, dass der Zeitpunkt des Starts der Ein-/Ausgabe-Aktualisierung erreicht ist, und die Ein-/Ausgabe-Steuereinheit 43 gibt jede einzelne Ausgabeinformation aus.When the
Bei der zweiten Ausführungsform schätzt die Steuerungsemulationseinheit 13 die Befehlsausführungszeit, die erforderlich ist, damit ein von der Steuerungsemulationseinheit 13 ausgeführter Befehl in der emulierten tatsächlichen programmierbaren Steuerung ausgeführt wird, und schätzt ferner die kumulative Befehlsausführungszeit. Wenn die Adresse, auf die nach dem auszuführenden Befehl zugegriffen werden soll, das Ein-/Ausgabe-Aktualisierungsregister ist, schätzt die Steuerungsemulationseinheit 13 zudem die Startzeit der Ein-/Ausgabe-Aktualisierungsverarbeitung in der emulierten tatsächlichen programmierbaren Steuerung unter Verwendung der kumulativen Befehlsausführungszeit. Unter Verwendung dieses Startzeitpunkts der Ein-/Ausgabe-Aktualisierungsoperation passt die Ein-/Ausgabe-Timing-Anpassungseinheit 431 den Zeitpunkt an, zu dem die programmierbare Steuerung 1 die Ein-/Ausgabe-Aktualisierungsverarbeitung durchführt. Dies ist insofern vorteilhaft, als der Zeitpunkt, zu dem die programmierbare Steuerung 1 die Ein-/Ausgabe-Aktualisierung durchführt, dem Zeitpunkt in der emulierten tatsächlichen programmierbaren Steuerung entspricht.In the second embodiment, the
Dritte AusführungsformThird embodiment
Bei der dritten Ausführungsform umfasst die programmierbare Steuerung 1 mehrere Recheneinheiten 10A und 10B. Die Recheneinheiten 10A und 10B umfassen Virtualisierungseinheiten 11A bzw. 11B, die der bei der ersten Ausführungsform beschriebenen Virtualisierungseinheit ähnlich sind. Die programmierbare Steuerung 1 umfasst demnach mehrere Virtualisierungseinheiten 11A und 11B. Wie bei der Recheneinheit 10 der ersten Ausführungsform umfasst die Virtualisierungseinheit 11A eine Verwaltungseinheit 12A, eine Steuerungsemulationseinheit 13A, einen Memory Mapped I/O-Bereich 14A und eine Mappinginformationen-Erzeugungseinheit 15A. In ähnlicher Weise umfasst die Virtualisierungseinheit 11B eine Verwaltungseinheit 12B, eine Steuerungsemulationseinheit 13B, einen Memory Mapped I/O-Bereich 14B und eine Mappinginformationen-Erzeugungseinheit 15B. Durch diese Konfiguration kann die programmierbare Steuerung 1 mehrere programmierbare Prä-Austausch-Steuerungen emulieren. Dies bedeutet, dass die Firmware 211a auf der Virtualisierungseinheit 11A ausgeführt wird und das Steuerprogramm 221a auf der Firmware 211a ausgeführt wird. Die Firmware 212a wird auf der Virtualisierungseinheit 11B ausgeführt und das Steuerprogramm 222a wird auf der Firmware 212a ausgeführt. Es wird darauf hingewiesen, dass in
Bei einer solchen Konfiguration speichert die Hardwareinformationen-Speichereinheit 23 die Hardwareinformationen, die den Steuerungsemulationseinheiten 13A und 13B entsprechen, die in den Virtualisierungseinheiten 11A und 11B enthalten sind. Ferner speichert die Firmware-Speichereinheit 21 die Firmware 211a und die Firmware 212a, die den in den Virtualisierungseinheiten 11A und 11B enthaltenen Steuerungsemulationseinheiten 13A und 13B entsprechen, und die Steuerprogramm-Speichereinheit 22 speichert die Steuerprogramme 221a und 222a, die den in den Virtualisierungseinheiten 11A und 11B enthaltenen Steuerungsemulationseinheiten 13A und 13B entsprechen. Die Ein-/Ausgabe-Mappinginformationen-Speichereinheit 24 speichert eine einzelne Ein-/Ausgabe-Mappinginformation, die den mehreren Steuerungsemulationseinheiten 13 gemeinsam sind.With such a configuration, the hardware
In
In der in
Im Beispiel von
Die Steuerungsemulationseinheiten 13A und 13B arbeiten jeweils in der wie in Bezug auf das Flussdiagramm von
Es ist zu beachten, dass sich die Ein-/Ausgabe-Mappinginformationen 241 von
Es wird nun ein Beispiel beschrieben, bei dem die Firmware 211a, die auf der Steuerungsemulationseinheit 13A ausgeführt wird, auf tatsächliche Ein-/Ausgangsanschlüsse zugreift. Das Ausgabesteuerungsregister 341 ähnelt dem bei der ersten Ausführungsform beschriebenen Register. Bei dem Ausgabesteuerungsregister 341 handelt es sich um ein Ausgabesteuerungsregister, das in einer emulierten tatsächlichen programmierbaren Steuerung enthalten ist, dessen Bits den jeweiligen Ausgabenummern dieser programmierbaren Steuerung entsprechen.An example will now be described in which the
Wenn ein Schreibvorgang an dem erste Bit und dem zweiten Bit des Ausgabesteuerungsregisters 341 auf der Steuerungsemulationseinheit 13A durchgeführt wird, wird eine entsprechende Hardwareemulationsverarbeitung durchgeführt. Das heißt, die Steuerungsemulationseinheit 13A führt einen Schreibvorgang an dem ersten Bit und dem zweiten Bit des virtuellen Registers 141 in dem Memory Mapped I/O-Bereich 14 durch, wobei das Register dem Ausgabesteuerungsregister 341 entspricht. Unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen 241 spiegelt die Steuerungsemulationseinheit 13A das Ergebnis des Schreibvorgangs in den tatsächlichen Ausgangsanschlüssen 42 wider. In den Ein-/Ausgabe-Mappinginformationen 241 werden die Ausgabenummern von „0“ bis „59“ der „virtuellen Steuerung A“ zugewiesen, die von der Steuerungsemulationseinheit 13A emuliert wird, und die Ausgabenummern „0“, „1“ und „2“ der programmierbaren Steuerung 1 werden mit den entsprechenden Ausgabenummern „2“, „1“ bzw. „0“ des virtuellen Registers auf der Steuerungsemulationseinheit 13A verknüpft. Die Steuerungsemulationseinheit 13A setzt die Werte für die Ausgangsanschlüsse 42 mit den Ausgabenummern „0“, „1“ und „2“ auf „1“, „1“ bzw. „0“ und gibt diese Werte an das tatsächliche Ein-/Ausgabesteuerregister 441 aus. Es ist zu beachten, dass auch wenn die Steuerungsemulationseinheit 13B auf die tatsächlichen Ein-/Ausgangsanschlüsse zugreift, auf die tatsächlichen Ein-/Ausgangsanschlüsse auf Basis der Zuweisung zugegriffen wird, die in den Ein-/Ausgabe-Mappinginformationen 241 angegeben ist.When a write operation is performed on the first bit and the second bit of the output control register 341 on the
Wie oben beschrieben wurde, werden die Ein-/Ausgabeoperationen der mehreren Steuerungsemulationseinheiten 13A und 13B unter Bezugnahme auf die gemeinsamen Ein-/Ausgabe-Mappinginformationen 241 emuliert. Infolgedessen werden die Eingangsanschlüsse 41 mit den Eingabenummern von „0“ bis „59“ und die Ausgangsanschlüsse 42 mit den Ausgabenummern von „0“ bis „59“ durch das Steuerprogramm 221a gesteuert. Außerdem werden die Eingangsanschlüsse 41 mit den Eingabenummern von „60“ bis „139“ und die Ausgangsanschlüsse 42 mit den Ausgabenummern von „60“ bis „139“ durch das Steuerprogramm 222a gesteuert. Durch Ändern der Ein-/Ausgabe-Mappinginformationen 241 kann die Beziehung zwischen den mehreren Steuerungsemulationseinheiten 13A und 13B hinsichtlich der Zuordnung zu den tatsächlichen Eingangsanschlüssen 41 und den tatsächlichen Ausgangsanschlüssen 42 geändert werden.As described above, the input/output operations of the plurality of
Es wird darauf hingewiesen, dass die vorstehende Beschreibung anhand eines Beispiels erfolgt ist, bei dem die Eingaben und Ausgaben der Steuerungsemulationseinheiten 13A und 13B jeweils einem der tatsächlichen Eingangsanschlüsse 41 und der tatsächlichen Ausgangsanschlüsse 42 der programmierbaren Steuerung 1 zugeordnet sind. Wenn jedoch ein Eingang und ein Ausgang zwischen den Steuerungsemulationseinheiten 13A und 13B verbunden werden müssen, können die Steuerungsemulationseinheiten 13A und 13B so konfiguriert werden, dass diese Eingaben und Ausgaben intern miteinander verbunden sind. In diesem Fall kann eine Methode verwendet werden, bei der beispielsweise eine Ein-/Ausgabebeziehung zwischen den Steuerungsemulationseinheiten 13A und 13B vorab in den Ein-/Ausgabe-Mappinginformationen 241 beschrieben wird, und, wenn eine der Steuerungsemulationseinheiten auf eine Ausgabe zugreift, die mit der anderen der Steuerungsemulationseinheiten verbunden ist, deren Ausgabeergebnis in der entsprechenden Eingabe der anderen der Steuerungsemulationseinheiten unter Verwendung von Interprozesskommunikation widergespiegelt wird.It is noted that the above description has been made using an example where the inputs and outputs of the
Bei der dritten Ausführungsform enthält die programmierbare Steuerung 1 mehrere Steuerungsemulationseinheiten 13A und 13B, wobei die Steuerungsemulationseinheiten 13A und 13B die jeweiligen Operationen verschiedener programmierbarer Prä-Austausch-Steuerungen emulieren. Dadurch können mehrere vorhandene Steuerprogramme 221a und 222a auf der Hardware einer einzigen programmierbaren Steuerung 1 integriert und gleichzeitig ausgeführt werden.In the third embodiment, the
Vierte AusführungsformFourth embodiment
Ähnlich wie bei der dritten Ausführungsform umfasst die programmierbare Steuerung 1 mehrere Steuerungsemulationseinheiten 13A und 13B. Bei der dritten Ausführungsform ist die programmierbare Steuerung 1 so konfiguriert, dass sie mehrere physikalisch unterschiedliche Recheneinheiten 10A und 10B umfasst, wobei die Recheneinheiten 10A und 10B deren Steuerungsemulationseinheiten 13A und 13B aufweisen. Die programmierbare Steuerung 1 der vierten Ausführungsform ist so konfiguriert, dass sie eine einzige Recheneinheit 10 umfasst, wobei die Virtualisierungseinheit 11 in der Recheneinheit 10 die mehreren Steuerungsemulationseinheiten 13A und 13B aufweist. In diesem Fall ermöglicht die Recheneinheit 10, dass die mehreren Steuerungsemulationseinheiten 13A und 13B wie oben beschrieben im Zeitmultiplexverfahren umgeschaltet werden.Similar to the third embodiment, the
In
Die Ein-/Ausgabe-Steuereinheit 43 der programmierbaren Steuerung 1 umfasst ferner eine Einheit zur Erkennung von Ereignissen hoher Priorität 432. Die Einheit zur Erkennung von Ereignissen hoher Priorität 432 weist die Funktionalität auf, das Auftreten eines Ereignisses zu erfassen, das mit einem Interruptprogramm verknüpft ist, das während der Emulationsverarbeitung der mehreren Steuerungsemulationseinheiten 13A und 13B bevorzugt behandelt werden sollte, und der Recheneinheit 10 eine Ereignismeldung zu übermitteln, die das Auftreten des Ereignisses anzeigt. Ein Ereignis, das mit einem Interruptprogramm verknüpft ist, das bevorzugt behandelt werden sollte, wird im Folgenden als Ereignis hoher Priorität bezeichnet.The input/output control unit 43 of the
Die Verwaltungseinheit 12 der Recheneinheit 10 umfasst ferner eine Umschalteinheit 121. Die Umschalteinheit 121 ist eine Funktionseinheit, die beim Empfang einer Ereignisbenachrichtigung von der Einheit zur Erkennung von Ereignissen hoher Priorität 432 zwischen Steuerungsemulationseinheiten umschaltet, so dass eine Steuerungsemulationseinheit, die ein Interruptprogramm aufgrund des Auftretens eines Ereignisses mit hoher Priorität ausführen sollte, dieses Interruptprogramm auch während des Betriebs einer Steuerungsemulationseinheit ausführt, die sich von der Steuerungsemulationseinheit unterscheidet, die das Interruptprogramm ausführen sollte.The
Die programmierbare Steuerung 1 verfügt im Allgemeinen über die Funktionalität, als Reaktion auf das Eintreten eines bestimmten Ereignisses ein schnell ablaufendes Interruptprogramm auszuführen. Beispiele für ein solches Ereignis sind eine ansteigende oder abfallende Flanke eines Eingangssignals, eine Änderung eines Impulszählerwerts und ein internes Zeitgeberinkrement. Ein Interruptprogramm, das durch diese Ereignisse ausgelöst wird, hat eine höhere Priorität als ein Steuerprogramm, das gerade ausgeführt wird, und muss sehr schnell reagieren können.The
Wenn die beiden Steuerungsemulationseinheiten 13A und 13B in derselben Recheneinheit 10 arbeiten, kann ein Ereignis hoher Priorität, das von der Steuerungsemulationseinheit 13B behandelt werden sollte, während des Betriebs der Steuerungsemulationseinheit 13A auftreten. In diesem Fall führt die Steuerungsemulationseinheit 13B die dem Ereignis hoher Priorität entsprechende Interruptverarbeitung nicht durch, bis die der Steuerungsemulationseinheit 13A zugewiesene Zeit verstrichen ist. Dies verringert die Reaktionsfähigkeit des Interruptprogramms.When the two
Um die Reaktionsfähigkeit beim Auftreten eines Ereignisses mit hoher Priorität zu erhöhen, sieht die vierte Ausführungsform vor, dass die Ein-/Ausgabe-Steuereinheit 43 die Einheit zur Erkennung von Ereignissen hoher Priorität 432 und die Verwaltungseinheit 12 die Umschalteinheit 121 aufweisen.In order to increase the responsiveness when an event with a high priority occurs, the fourth embodiment provides that the input/output control unit 43 has the high-priority
Es wird nun ein Beispiel für das Auftreten eines Interrupts beschrieben. Die folgende Beschreibung basiert auf der Annahme, dass die Steuerungsemulationseinheit 13B ein Interruptprogramm ausführt, wenn die Impulszahl des Drehgebers 83 einen vorgegebenen Sollwert erreicht.An example of occurrence of an interrupt will now be described. The following description is based on the assumption that the
Die Bedingung für die Meldung eines Ereignisses mit hoher Priorität wird in der Einheit zur Erkennung von Ereignissen hoher Priorität 432 festgelegt. Ein Ereignis mit hoher Priorität ist ein Ereignis, das die bevorzugte Ausführung eines Interruptprogramms beim Auftreten dieses Ereignisses erfordert. Die hier festgelegte Bedingung ist, dass "die Anzahl der Impulse für den Eingangsanschluss 41 mit der Eingabenummer „0“ einen vorgegebenen Einstellwert erreicht hat". Wie die Firmware 211a und die Firmware 212a, die auf den Steuerungsemulationseinheiten 13A und 13B emuliert werden, die Bedingung festlegen, hängt von den Hardwarespezifikationen der programmierbaren Steuerungen ab, die von den Steuerungsemulationseinheiten 13A und 13B emuliert werden sollen. Die folgende Beschreibung basiert auf der Annahme, dass die Steuerungsemulationseinheit 13A die programmierbare Steuerung emuliert, die ein spezielles Hardwaregerät zum Zählen von Impulsen aufweist. Die Firmware für die programmierbare Steuerung mit dem speziellen Hardwaregerät greift auf ein Register des speziellen Hardwaregeräts zu. Durch Zugriff auf dieses Register wird die Steuerungsemulationseinheit 13A zur Durchführung einer Hardwareemulationsverarbeitung veranlasst. Bei der Hardwareemulationsverarbeitung werden die Eingabenummer „0“, für die eine Impulsüberwachung erforderlich ist, und die Anzahl der Impulse, die als Ereignisbedingung verwendet werden sollen, in der Einheit zur Erkennung von Ereignissen hoher Priorität 432 eingestellt.The condition for reporting a high priority event is set in the high priority
Wenn die eingestellte Bedingung für ein Ereignis hoher Priorität erfüllt ist, benachrichtigt die Einheit zur Erkennung von Ereignissen hoher Priorität 432 die Umschalteinheit 121 über das Auftreten des Ereignisses. Die Umschalteinheit 121 bringt Hardware-Registerinformationen, die in dem virtuellen Mehrzweckregister 132 auf der Steuerungsemulationseinheit 13B gespeichert sind, die das Ereignis mit hoher Priorität behandeln soll, auf den Status zum Zeitpunkt des Auftretens des Ereignisses. Wenn die Steuerungsemulationseinheit 13B, die das Ereignis mit hoher Priorität behandeln soll, nicht in Betrieb ist, schaltet die Umschalteinheit 121 zwischen den Steuerungsemulationseinheiten 13A und 13B um, die auf der Recheneinheit 10 betrieben werden.When the set high-priority event condition is satisfied, the high-priority
Wenn kein Ereignis mit hoher Priorität eingetreten ist, werden die Steuerungsemulationseinheiten 13A und 13B so betrieben, dass zwischen den Einheiten 13A und 13B auf Basis einer bestimmten Betriebsdauer im Zeitmultiplexverfahren umgeschaltet wird. In
Bei diesem Vorgang wird eine zugewiesene Interruptprogramm-Ausführungszeit 570, d. h. die Zeitspanne für die Ausführung des Interruptprogramms, auf Basis eines bestimmten Algorithmus berechnet. Alternativ kann die zugewiesene Interruptprogramm-Ausführungszeit 570 implementiert werden, indem die Firmware 212a selbst modifiziert wird, um am Punkt der Beendigung des Interruptprogramms einen Hook hinzuzufügen, damit die Beendigung der Ausführung des Interruptprogramms erkannt werden kann. Durch das Hinzufügen eines Hooks entfällt die Notwendigkeit, den Zeitpunkt der Beendigung der Ausführung des Interruptprogramms abzuschätzen; in diesem Fall besteht keine Notwendigkeit, die zugewiesene Interruptprogramm-Ausführungszeit 570 zu berechnen. Wenn die zugewiesene Interruptprogramm-Ausführungszeit 570 abgelaufen ist, schaltet die Umschalteinheit 121 die Verarbeitung um, so dass die Steuerungsemulationseinheit 13A die Verarbeitung durchführt. Dann werden die Hardware-Registerinformationen in dem Ausführungszeitraum 554 wieder auf den Status zum Zeitpunkt des Auftretens des Ereignisses hoher Priorität 560 zurückgebracht, und die Steuerungsemulationseinheit 13A führt die Verarbeitung durch.In this process, an allocated interrupt
Auch wenn die Einheit zur Erkennung von Ereignissen hoher Priorität 432 als Funktionsblock mit einer Funktionalität zum Zählen von Impulsen beschrieben wurde, ist zu beachten, dass die Ausführungsform nicht darauf beschränkt ist. Beispielsweise kann die Einheit zur Erkennung von Ereignissen hoher Priorität 432 so konfiguriert sein, dass sie mehrere Funktionen zur Erkennung anderer Ereignisse wie einer ansteigenden oder abfallenden Flanke eines Eingangssignals aufweist.Although the high priority
Bei der vierten Ausführungsform umfasst die programmierbare Steuerung 1 eine Einheit zur Erkennung von Ereignissen hoher Priorität 432, die ein Ereignis mit hoher Priorität erfasst, und eine Umschalteinheit 121, die die Verarbeitung auf eine der Steuerungsemulationseinheiten 13A und 13B umschaltet, die eine Interruptverarbeitung durchführen soll, wenn ein Ereignis mit hoher Priorität erfasst wird. Dies ermöglicht eine erzwungene Umschaltung auf eine der Steuerungsemulationseinheiten 13A und 13B, die ein Interruptprogramm ausführen soll, wenn ein Ereignis mit hoher Priorität auftritt, wodurch die Reaktionsfähigkeit in Bezug auf ein Ereignis mit hoher Priorität erhöht werden kann, wenn die mehreren Steuerungsemulationseinheiten 13A und 13B auf derselben Recheneinheit 10 betrieben werden.In the fourth embodiment, the
Darüber hinaus kann die oben beschriebene zweite Ausführungsform mit der dritten und vierten Ausführungsform kombiniert werden. Infolgedessen kann der Zeitpunkt, an dem die Ein-/Ausgabe-Aktualisierung für die programmierbare Steuerung 1 durchgeführt wird, mit dem der emulierten realen programmierbaren Steuerung gleichgesetzt werden.In addition, the second embodiment described above can be combined with the third and fourth embodiments. As a result, the timing at which the I/O update is performed for the
Die in den vorangehenden Ausführungsformen beschriebenen Konfigurationen sind lediglich Beispiele für verschiedene Aspekte der vorliegenden Erfindung. Diese Konfigurationen können mit einer anderen bekannten Technologie kombiniert werden, und zudem kann ein Teil der Konfigurationen weggelassen und/oder modifiziert werden, ohne vom Kern der vorliegenden Erfindung abzuweichen.The configurations described in the foregoing embodiments are merely examples of various aspects of the present invention. These configurations can be combined with another known technology, and also part of the configurations can be omitted and/or modified without departing from the gist of the present invention.
BezugszeichenlisteReference List
- 11
- Programmierbare Steuerung; programmable controller;
- 10, 10A, 10B10, 10A, 10B
- Recheneinheit;unit of account;
- 11, 11A, 11B11, 11A, 11B
- Virtualisierungseinheit;virtualization unit;
- 12, 12A, 12B12, 12A, 12B
- Verwaltungseinheit;administrative unit;
- 13, 13A, 13B13, 13A, 13B
- Steuerungsemulationseinheit;control emulation unit;
- 14, 14A, 14B14, 14A, 14B
- Memory Mapped I/O-Bereich;memory mapped I/O area;
- 15, 15A, 15B15, 15A, 15B
- Mappinginformationen-Erzeugungseinheit;mapping information generation unit;
- 2020
- Speichereinheit;storage unit;
- 2121
- Firmware-Speichereinheit;firmware storage unit;
- 2222
- Steuerprogramm-Speichereinheit;control program storage unit;
- 2323
- Hardwareinformationen-Speichereinheit;hardware information storage unit;
- 2424
- Ein-/Ausgabe-Mappinginformationen-Speichereinheit;input/output mapping information storage unit;
- 3030
- Kommunikationsschnittstelleneinheit;communication interface unit;
- 4040
- Ein-/Ausgabe-Schnittstelleneinheit;input/output interface unit;
- 4141
- Eingangsanschluss;input port;
- 4242
- Ausgangsanschluss;output port;
- 4343
- Ein-/Ausgabe-Steuereinheit;input/output control unit;
- 5050
- Bus;Bus;
- 7070
- Benutzerschnittstelle;user interface;
- 81, 8281, 82
- Schalter;Switch;
- 8383
- Drehgeber;encoder;
- 9191
- Lampe;Lamp;
- 9292
- Magnetschalter;magnetic switch;
- 121121
- Umschalteinheit;switching unit;
- 131131
- virtueller Programmzähler;virtual program counter;
- 132132
- virtuelles Mehrzweckregister;virtual general purpose register;
- 211, 211a, 212a211, 211a, 212a
- Firmware;firmware;
- 221, 221a, 222a221, 221a, 222a
- Steuerprogramm;control program;
- 231231
- Hardwareinformationen;hardware information;
- 241241
- Ein-/Ausgabe-Mappinginformationen;input/output mapping information;
- 431431
- Ein-/Ausgabe-Timing-Anpassungseinheit;input/output timing adjustment unit;
- 432432
- Einheit zur Erkennung von Ereignissen hoher Priorität.High priority event detection unit.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- JP 2015005258 [0004]JP 2015005258 [0004]
Claims (6)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/046114 WO2021106064A1 (en) | 2019-11-26 | 2019-11-26 | Programmable controller |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112019007840T5 true DE112019007840T5 (en) | 2022-08-04 |
Family
ID=71949438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112019007840.2T Pending DE112019007840T5 (en) | 2019-11-26 | 2019-11-26 | Programmable controller |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6739689B1 (en) |
CN (1) | CN114730168B (en) |
DE (1) | DE112019007840T5 (en) |
WO (1) | WO2021106064A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015005258A (en) | 2013-06-24 | 2015-01-08 | 横河電機株式会社 | Process control device and system; and update method therefor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58200363A (en) * | 1982-05-14 | 1983-11-21 | Nec Corp | Input and output control system of virtual system |
JP4894961B1 (en) * | 2011-03-15 | 2012-03-14 | オムロン株式会社 | PLC CPU unit, PLC system program, and recording medium storing PLC system program |
CN104903798B (en) * | 2013-01-16 | 2019-09-10 | 西门子公司 | The automation of programmable logic controller (PLC) for being simulated inputs simulation |
JP2015026279A (en) * | 2013-07-26 | 2015-02-05 | 株式会社東芝 | Plant monitoring control device and program |
JP2016031658A (en) * | 2014-07-29 | 2016-03-07 | 株式会社東芝 | Plant control device and plant control method |
JP6915441B2 (en) * | 2017-08-10 | 2021-08-04 | オムロン株式会社 | Information processing equipment, information processing methods, and information processing programs |
-
2019
- 2019-11-26 DE DE112019007840.2T patent/DE112019007840T5/en active Pending
- 2019-11-26 CN CN201980102404.2A patent/CN114730168B/en active Active
- 2019-11-26 WO PCT/JP2019/046114 patent/WO2021106064A1/en active Application Filing
- 2019-11-26 JP JP2020519811A patent/JP6739689B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015005258A (en) | 2013-06-24 | 2015-01-08 | 横河電機株式会社 | Process control device and system; and update method therefor |
Also Published As
Publication number | Publication date |
---|---|
WO2021106064A1 (en) | 2021-06-03 |
JPWO2021106064A1 (en) | 2021-12-02 |
CN114730168B (en) | 2023-06-06 |
CN114730168A (en) | 2022-07-08 |
JP6739689B1 (en) | 2020-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3587622T2 (en) | Emulation device in a data processing system. | |
DE10085374B4 (en) | System management memory for the system management interrupt handlers is integrated into the memory controller, regardless of the BIOS and operating system | |
DE3689696T2 (en) | Data processing system with a main processor and a co-processor with common resources. | |
DE3685863T2 (en) | COMPUTER SYSTEM FOR CONTROLLING VIRTUAL MACHINES. | |
DE1774296C2 (en) | Restructurable control unit for electronic digital computers | |
DE60036465T2 (en) | COMPUTER ADAPTER CARD FOR COMBINING INPUT / OUTPUT PREPARATION REPORTS AND USE THEREOF | |
CH615521A5 (en) | ||
DE60025788T2 (en) | Flexible multipurpose I / O system | |
EP0500973B1 (en) | EEPROM and method for altering a bootstrap routine in the EEPROM | |
DE102008059643A1 (en) | An electronic control device and method for electronically controlling and operating an electronic control device | |
EP3080668B1 (en) | Method for influencing a control program of a control unit | |
DE4406094C2 (en) | Device for operating a control application | |
DE102005059593A1 (en) | Method and device for switching to a memory for a control unit | |
DE112019007840T5 (en) | Programmable controller | |
DE102005026256A1 (en) | Method for carrying out the data transfer between program elements of a process, buffer object for carrying out the data transfer, and printing system | |
DE102013211266A1 (en) | Maintaining the bandwidth quality of service of a hardware resource through a hardware counter | |
DE60226276T2 (en) | METHOD AND ARRANGEMENT FOR MODIFYING THE CONTENT OF A CORRECTION IDENTIFICATION REGISTER | |
DE19580638B4 (en) | A computer system and method for controlling a peripheral device in a computer system | |
EP0111161A2 (en) | Device for initiating microinstructions for at least two independently working function units in an integrated microprogrammed electronic module, and method for its operation | |
EP3021220A1 (en) | Method and computer for accessing a real-time operating system on an AHCI controller | |
DE112019006932T5 (en) | PROGRAMMABLE DIRECT MEMORY ACCESS CONTROLLER IN ANY ORDER FOR CONFIGURATION OF SEVERAL CORE INDEPENDENT PERIPHERAL DEVICES | |
DE102018001565A1 (en) | Security element and method for access control to a security element | |
EP2763039A1 (en) | Method and virtualisation control for managing a resource of a computer with at least two virtual machines | |
DE112017006928T5 (en) | CALCULATION PROCESSING DEVICE AND INFORMATION PROCESSING SYSTEM | |
DE112012006333T5 (en) | Periodic access to a hardware resource |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R081 | Change of applicant/patentee |
Owner name: MITSUBISHI ELECTRIC CORPORATION, JP Free format text: FORMER OWNER: MITSUBISHI ELECTRIC CORPORATION, TOKYO, JP |