DE112019007840T5 - Programmable controller - Google Patents

Programmable controller Download PDF

Info

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
Application number
DE112019007840.2T
Other languages
German (de)
Inventor
Takaya OTA
Shunya Hasegawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112019007840T5 publication Critical patent/DE112019007840T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total 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.Patent Document 1 discloses a process control device employing a virtualization technique for use in a control system for process control. Virtualization is a technique for running software intended for an existing system on new hardware. The process control device described in Patent Document 1 includes, on hardware, a virtualization unit operated in place of the hardware. In the process control device described in Patent Document 1, an operating system is reinstalled in the virtualization unit while keeping a used operating system functional. In addition, the same control program is installed and used as the control program on the newly installed operating system. The operation of the control program on the operating system used is compared with the operation of the control program on the newly installed operating system, whereby it is determined whether the control program works normally on the newly installed operating system. When the control program works normally on the newly installed OS, the newly installed OS is used, but when the control program does not work normally on the newly installed OS, the newly installed OS is stopped.

Liste der Zitatelist of citations

Patentliteraturpatent literature

Patentdokument 1: Japanische Offenlegungsschrift Nr. 2015-5258 Patent Document 1: Japanese Patent Application Laid-Open No. 2015-5258

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 Patent Document 1 to the programmable controller used after replacement, the virtualization unit for emulating hardware needs to be modified for each programmable controller used before replacement. In particular, when the instruction set architecture of the emulated programmable controller differs from the instruction set architecture of the hardware in the controller that controls the virtualization unit, instruction set-level emulation is inevitable and different types of virtualization units must be specified. One possible approach to solving this problem is to provide programmable controllers comprising multiple types of virtualization units that emulate different hardware devices. Unfortunately, a problem with such a method is that it requires an enormous number of product types.

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

1 zeigt ein Blockschaltbild, das schematisch ein Beispiel für die Konfiguration einer programmierbaren Steuerung gemäß der ersten Ausführungsform veranschaulicht. Eine programmierbare Steuerung 1 umfasst eine Recheneinheit 10, eine Speichereinheit 20, eine Kommunikationsschnittstelleneinheit 30 und eine Ein-/Ausgabe-Schnittstelleneinheit 40. Die Recheneinheit 10, die Speichereinheit 20, die Kommunikationsschnittstelleneinheit 30 und die Ein-/Ausgabe-Schnittstelleneinheit 40 sind über einen Bus 50 miteinander verbunden. 1 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to the first embodiment. A programmable controller 1 includes an arithmetic unit 10, a memory unit 20, a communication interface unit 30 and an I/O interface unit 40. The arithmetic unit 10, the memory unit 20, the communication interface unit 30 and the I/O interface unit 40 are connected via a bus 50 connected to each other.

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 processing unit 10 is a microprocessor or chipset that is configured according to a predetermined hardware architecture. The computing unit 10 is also referred to as a microcomputer. The computing unit 10 includes a virtualization unit 11. The virtualization unit 11 is a functional unit that emulates an execution environment in which a control program for a hardware device of another type of programmable controller 1 is executed on the programmable controller 1 hardware.

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 virtualization unit 11 comprises a management unit 12, a control emulation unit 13, a mapping information generation unit 15 and a memory mapped I/O (input/output) area 14.

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 management unit 12 is a functional unit that manages software executed by the computing unit 10 . In the first embodiment, the management unit 12 is an operating system (OS) having a scheduling function that allows multiple pieces of software to be executed in parallel.

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 controller emulation unit 13 is a functional unit that emulates the hardware operation in a pre-swap programmable controller. The controller emulation unit 13 is also a functional unit that reads firmware and a control program to be used by the pre-exchange programmable controller from the storage unit 20 and executes the read firmware and the read control program on an emulated hardware. The pre-exchange programmable controller emulated by the controller emulation unit 13 is the virtual controller. The controller emulation unit 13 executes the firmware, executing instructions using hardware information (described later) related to the pre-replacement programmable controller, and emulating an operation of peripheral devices via the microcomputer in the pre-replacement programmable controller. The control emulation unit 13 also executes a control program on the firmware.

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/O area 14 is an area for virtualizing an input to and an output from the peripheral device via the microcomputer, the input and output being performed when the control emulation unit 13 emulates the firmware and the control program. In one example, memory mapped I/O region 14 is a virtualized input/output control register that resides in the programmable pre-swap controller microcomputer. Addresses are assigned to the memory mapped I/O area 14 as an emulated memory area.

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 information generation unit 15 is a functional unit that generates input/output mapping information that matches an input/output number of an input/output port of the programmable controller 1 with an input/output number of an input/output port of the pre-exchange programmable control linked. The mapping information generation unit 15 stores the generated input/output mapping information in the input/output mapping information storage unit 24 of the storage unit 20. In an example, the mapping information generation unit 15 generates the input/output mapping information such that the input -/Output number in the pre-swap programmable controller corresponds to the I/O number of programmable controller 1.

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 programmable controller 1.

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 storage unit 20 includes a firmware storage unit 21, a control program storage unit 22, a hardware information storage unit 23, and the input/output mapping information storage unit 24. The storage unit 20, which is a device that stores data stored therein can overwrite, is a non-volatile storage device such. B. a hard disk unit or a solid state drive (SSD). In addition, the storage unit 20 may include a volatile storage device such as random access memory (RAM) to load a program therein or temporarily store data therein when the computing unit 10 performs processing.

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 program storage unit 22 is a functional unit for storing the control program to be executed by the pre-exchange programmable controller.

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 information storage unit 23 is a functional unit for storing the hardware information required for emulating the hardware of the pre-replacement programmable controller. The hardware information includes hardware configuration information that depends on the hardware device of the pre-swap programmable controller that the controller emulation unit 13 emulates. The hardware configuration information includes a memory map, an instruction emulation method, a register configuration, emulation processing at each register manipulation, and the like.

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 programmable controller 1 with an input/output number assigned to an input /out port is assigned to the virtual controller. The I/O number associated with an I/O port of the virtual controller corresponds to the I/O number associated with an I/O port of the pre-swap programmable controller. The input/output mapping information is used in converting an input/output number in the memory mapped I/O area 14 into an input/output number of an input/output port of the actual input/output interface unit 40 when the control emulation unit 13 accesses the memory mapped I/O area 14.

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 programmable controller 1. The user interface 70 is a device that can access the memory unit 20 of the programmable controller 1. FIG. The user interface 70 is e.g. B. an information processing device such as a personal computer. The user interface 70 can store the firmware, the control program, the hardware information and the input/output mapping information in the storage unit 20 and the firmware, the control program, the hardware information and the input/output mapping information already stored in the storage unit 20 are deleted from the storage unit 20. The user interface 70 is a device that can receive a result of the automatic assignment of the input/output mapping information and allow a user to check the result. The user interface 70 is also a device that can change the content of the input/output mapping information. For example, a user can connect an input/output port of the programmable controller 1 by viewing the input/output mapping information through the user interface 70 . A user can also modify the I/O mapping information with the user interface 70 if the connection of an I/O port is to be changed.

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 storage unit 20 by the user interface 70 and executed by the virtualization unit 11, thereby emulating a desired operation of the programmable pre-swap - to allow control.

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 1 eine Eingabenummer „i“ als „Eingang i“ (wobei i eine natürliche Zahl von 0 bis N ist) und eine Ausgabenummer „i“ als „Ausgang i“ dargestellt ist. In 1 ist der Eingangsanschluss 41 mit der Eingabenummer „0“ mit einem Schalter 81 verbunden, und der Ausgangsanschluss 42 mit der Ausgabenummer „0“ ist mit einer Lampe 91 verbunden. Die Eingangsanschlüsse 41 und die Ausgangsanschlüsse 42 werden hier auch gemeinsam als Ein-/Ausgangsanschlüsse bezeichnet, und eine Eingabevorrichtung und eine Ausgabevorrichtung werden hier auch gemeinsam als Ein-/Ausgabevorrichtung bezeichnet.The input/output interface unit 40 includes input ports 41, output ports 42 and an input/output control unit 43. One of the input ports 41 is connected to an input device via a wire. Examples of the input device include a switch, a sensor, and a rotary encoder. One of the output ports 42 is connected to an output device via a wire. Examples of the output device include a relay, a valve, and an actuator. The input terminals 41 are assigned sequential numbers indicating input numbers from "0" to "N" (where N is any natural number). The output terminals 42 are assigned consecutive numbers indicating output numbers from "0" to "N". It is noted that in 1 an input number "i" is represented as "input i" (where i is a natural number from 0 to N) and an output number "i" is represented as "output i". In 1 For example, the input terminal 41 with the input number "0" is connected to a switch 81, and the output terminal 42 with the output number "0" is connected to a lamp 91. The input ports 41 and the output ports 42 are also referred to collectively as input/output terminals herein, and an input device and an output device are also referred to collectively as input/output device herein.

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/O area 14 and the input/output devices via the input ports 41 and via the output ports 42 . Concretely, the I/O control unit 43 performs I/O update processing together with the control emulation unit 13 when the input port 41 or the output port 42 is accessed. The input/output update processing is processing that transmits calculated output information to an output device via the output terminal 42 and receives input information from an input device via the input terminal 41 .

Auch wenn 1 einen Fall veranschaulicht, bei dem eine Eingabevorrichtung und eine Ausgabevorrichtung mit der programmierbaren Steuerung 1 verbunden sind, ist die Anzahl der Eingabevorrichtungen und der Ausgabevorrichtungen, die mit der programmierbaren Steuerung 1 verbunden sind, nicht begrenzt. Es können demnach mehrere Eingabevorrichtungen und mehrere Ausgabevorrichtungen mit der programmierbaren Steuerung 1 verbunden sein.Even if 1 illustrates a case where one input device and one output device are connected to the programmable controller 1, the number of the input devices and the output devices connected to the programmable controller 1 is not limited. Accordingly, a number of input devices and a number of output devices can be connected to the programmable controller 1 .

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 programmable controller 1 and the input/output devices . In such a case, the input/output mapping information associating the input/output numbers assigned to the input/output pins of the programmable controller 1 with the input/output numbers assigned to the input/output pins of the programmable controller 1 is used Assigned to pre-exchange control. The controller emulation unit 13 accordingly converts the destination of the output information from the virtualized output destination in the memory mapped I/O area 14 into the actual output destination of the programmable controller 1 using the input/output mapping information. Further, the controller emulation unit 13 converts the virtualized input source in the memory mapped I/O area 14 into the actual input source in the programmable controller 1 to receive input information.

2 zeigt eine Darstellung, die schematisch ein Beispiel für die Beziehung zwischen den Blöcken veranschaulicht, die an der Ausführung eines Steuerprogramms bei der ersten Ausführungsform beteiligt sind. Die Steuerungsemulationseinheit 13, die Firmware 211a und ein Steuerprogramm 221a sind hier jeweils als ein Block dargestellt. 2 Fig. 12 is a diagram schematically showing an example of the relationship between blocks involved in execution of a control program in the first embodiment. The control emulation unit 13, the firmware 211a and a control program 221a are each shown here as a block.

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 firmware 211a is provided as a file in a binary data format executable by the programmable pre-swap controller microcomputer.

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 controller emulation unit 13 is an instruction set simulator (ISS) capable of decoding a binary file representing the firmware 211a and executing the binary file with software. Furthermore, the control emulation unit 13 is designed as a process on the administration unit 12 . Even if the control emulation unit 13 is specifically described here as an ISS for executing the firmware 211a for hardware with a different instruction set architecture, a hardware function with equivalent functionality can also be used instead of the control emulation unit 13 . Alternatively, if firmware 211a is to be executed for hardware with the same instruction set architecture, controller emulation unit 13 may be configured to execute firmware 211a directly through a controller emulation unit 13 process.

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 2 dargestellt ist, bewirkt die Ausführung der Firmware 211a auf der Steuerungsemulationseinheit 13, dass die Logik zur Ausführung des Steuerprogramms 221a ausgeführt wird, wodurch das Steuerprogramm 221 a ausgeführt werden kann.The control program 221a is provided in the form of data converted into a format that can be executed by the programmable pre-swap controller. The data format and the method of executing the control program 221a vary depending on the programmable controller. Possible execution methods include a method that allows the firmware 211a to execute the control program 221a using an interpreter, a method that provides the programmable controller with dedicated hardware that can execute the control program 221a directly, and a method that combines these two methods combined. In the first embodiment, an interpreter is used that allows the firmware 211a to directly interpret and execute the control program 221a. As in 2 As shown, execution of the firmware 211a on the controller emulation unit 13 causes the logic to execute the control program 221a to be executed, thereby allowing the control program 221a to be executed.

3 zeigt eine Darstellung, die ein Beispiel für die Beziehung zwischen der Steuerungsemulationseinheit und einem Speicherbereich veranschaulicht. 3 zeigt die Steuerungsemulationseinheit 13, einen von der Steuerungsemulationseinheit 13 emulierten Speicherbereich 310 und einen einem Prozess der Steuerungsemulationseinheit 13 zugewiesenen Speicherplatz 350. 3 Fig. 12 is a diagram showing an example of the relationship between the control emulation unit and a storage area. 3 shows the control emulation unit 13, a memory area 310 emulated by the control emulation unit 13, and a memory space 350 assigned to a process of the control emulation unit 13.

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 memory area 310 includes memory addresses allocated to a read only memory (ROM) area, a RAM area, and the memory mapped I/O area 14 included in the virtual controller. The memory mapped I/O area 14 is a register area for the peripheral device via the microcomputer in the pre-swap programmable controller.

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 controller emulation unit 13, there are the control program 221a, which has been converted into an execution code for the programmable controller 1, the firmware 211a in a binary data format, hardware information 231 and input/output mapping information 241.

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 hardware information 231 and the input/output mapping information 241 about the pre-replacement programmable controller and the control program 221a and the firmware 211a to be executed by the emulated programmable controller are stored in the memory space 350 allocated to a process of the controller emulation unit 13 provided. The control program 221a is the result of the conversion of the control program 221 in the memory area 310 into an execution code for the programmable controller 1. The firmware 211a is the result of the conversion of the firmware 211 in the memory area 310 into a binary data format. The control program 221a, the firmware 211a, the hardware information 231 and the input/output mapping information 241 are referenced by the control emulation unit 13 or updated with a new value if required.

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/output mapping information 241, the input numbers assigned to the input ports 41 of the programmable controller 1 are assigned to the input numbers of the input ports of the virtual controller. Thus, the input numbers of the input ports 41 in the programmable controller 1 are associated with information identifying the assigned virtual controller and with the input numbers of the input ports in that virtual controller. In addition, in the input/output mapping information 241, the output numbers assigned to the output terminals 42 of the programmable controller 1 are assigned to the virtual controller. Thus, the output numbers of the output ports 42 in the programmable controller 1 are associated with information identifying the assigned virtual controller and with the output numbers of the output ports of that virtual controller.

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 control emulation unit 13 has a virtual program counter 131 and a virtual general-purpose register 132 . The actual form of the virtual program counter 131 and the virtual general-purpose register 132 is individual data in a process of the controller emulation unit 13. The virtual general-purpose register 132 stores all data resulting from the calculation performed in the controller emulation unit 13.

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 virtual program counter 131 is data for specifying an address in the memory area for which the control emulation unit 13 is executed. The virtual program counter 131 is therefore data that indicates the memory area 310 that the control emulation unit emulates. The control emulation unit 13 interprets and executes the firmware 211 at the address contained in the virtual program counter 131 . The actual form of the firmware 211 is the firmware 211a in the storage space 350 allocated to a process of the control emulation unit 13. Accordingly, the control emulation unit 13 converts the address stored in the virtual program counter 131 into an address in the storage space 350 and then reads data of the actual firmware 211a in binary data format from memory location 350.

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 firmware 211a in binary data format as a command and executing this firmware 211a and the processing for emulating this command interpreted by the logic are stored in the hardware information 231 . Accordingly, the control emulation unit 13 emulates an instruction based on the hardware information 231.

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 firmware 211a causes access to the memory mapped I/O area 14 in the emulated memory area 310, processing for emulating the corresponding hardware operation is performed by software. The emulation processing for the peripheral device via the microcomputer is stored in the hardware information 231, and the control emulation unit 13 thus emulates a hardware operation related to accessing the memory mapped I/O area 14 based on the hardware information 231. Further, when the corresponding hardware operation is related to controlling the input/output from the programmable controller 1, the controller emulation unit 13 refers to the input/output mapping information 241 to obtain information about a corresponding one of the actual input ports 41 and the actual output ports 42 in accordance with the mapping specified in the input/output mapping information 241 or output. For example, the control emulation unit 13 converts the I/O number of the virtual I/O port to be accessed into the I/O number of the actual I/O port, and then receives input information from the actual I/O port 41 or outputs information to be output to the actual output terminal 42. This is because the memory mapped I/O area 14 calculated by the controller emulation unit 13, which is one in the pre-exchange programmable controller, performs a conversion to the I/O number of the register for the actual I/O control required, which is performed in the programmable controller 1.

Nachfolgend wird der Betrieb einer wie oben beschrieben konfigurierten programmierbaren Steuerung 1 beschrieben. 4 zeigt ein Flussdiagramm, das ein Beispiel für den Ablauf einer Emulationsverarbeitung veranschaulicht, die in einer programmierbaren Steuerung gemäß der ersten Ausführungsform durchgeführt wird.The operation of a programmable controller 1 configured as described above will be described below. 4 12 is a flowchart showing an example of the flow of emulation processing performed in a programmable controller according to the first embodiment.

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 arithmetic unit 10 generates the control emulation unit 13 in the form of a process on the management unit 12, the control emulation unit 13 reads from the storage unit 20 the hardware information 231 and the input/output mapping information 241 about the programmable pre-replacement controller and the firmware 211a and the control program 221a to be executed by the pre-exchange programmable controller, and loads the pieces of information 231, 241 and the firmware 211a and the control program 221a that have been read into the memory (step S11).

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 control emulation unit 13 sets the virtual program counter 131 to a firmware start address, which is the address for starting the firmware 211 (step S12). In an initial state, the control emulation unit 13 sets the address for an instruction fetch to the firmware start address in the emulated memory area 310.

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 control emulation unit 13 converts the firmware start address set in the virtual program counter 131 to the address of the firmware 211a loaded in the memory into a binary data format, and decodes and executes an instruction of the firmware 211a at this address (step S13) . This process is called decoding microcomputer instructions. Here, microcomputer instructions are various types of instructions including general operations, logical operations, floating point operations, branch instructions, compares, memory transfers, no operations (NOP), and privileged instructions, and the control emulation unit 13 performs the processing for emulating these types of instructions. Note that privileged instructions include commands for manipulation of control registers, interrupt level changes, supervisor call instructions, and the like.

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 control emulation unit 13 of the virtualization unit 11 carries out corresponding processing according to this command and stores the result in the virtual general-purpose register 132.

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 control emulation unit 13 determines whether the command to be executed is a memory access command (step S14). When the command to be executed is not a memory access command (No in step S14), the control emulation unit 13 refers to the hardware information 231 and executes processing of the command to be executed (step S15). This process is referred to as microcomputer instruction emulation processing.

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 control emulation unit 13 determines whether the address to be accessed is the memory mapped I/O area 14 (step S16). If the address to be accessed is not the memory mapped I/O area 14 (No in step S16), the microcomputer instruction emulation processing of step S15 is performed. When the address to be accessed is the memory mapped I/O area 14 (Yes in step S16), the control emulation unit 13 refers to the hardware information 231 and performs hardware emulation processing about the peripheral device corresponding to the processing of the to be executed command (step S17). This processing is referred to as microcomputer peripheral device emulation processing. At this time, the controller emulation unit 13 emulates the hardware operation in accordance with the hardware information 231. In addition, in the case of accessing a register for the I/O control of the programmable controller 1, the control emulation unit 13 mirrors the information input or the information output about the actual I/O output port in accordance with the input/output mapping information 241 reflected. Specifically, the control emulation unit 13 refers to the input/output mapping information 241 and then outputs the information to the output device or receives the information from the input device via the input/output control unit according to the mapping in the input/output mapping information 241 43 entered information.

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 control emulation unit 13 sets the virtual program counter 131 to the address corresponding to the next command of the firmware 211 (step S18), and the process returns to step S13.

5 zeigt eine Darstellung, die ein Beispiel für ein Verfahren zum Konvertieren einer virtuellen Ausgabe der programmierbaren Steuerung in eine reale Ausgabe einer programmierbaren Steuerung gemäß der ersten Ausführungsform veranschaulicht. Dieses Beispiel basiert auf der Annahme, dass die Ausgabesteuerung, die in der programmierbaren Prä-Austausch-Steuerung durchgeführt werden soll, unter Verwendung eines Ausgabesteuerungsregisters 341 durchgeführt wird; dass das Ausgabesteuerungsregister 341 ein Register ist, das auf eine Adresse „0x10001000“ des emulierten Speicherbereichs 310 abgebildet ist; und dass die Bits „b0“ bis „b15“ eins-zu-eins den Ausgangsanschlüssen der Ausgabenummern der programmierbaren Prä-Austausch-Steuerung entsprechen. 5 12 is a diagram illustrating an example of a method for converting a virtual programmable controller output into a real programmable controller output according to the first embodiment. This example is based on the assumption that the output control to be performed in the programmable pre-exchange controller is performed using an output control register 341; that the output control register 341 is a register mapped to an address "0x10001000" of the emulated memory area 310; and bits "b0" through "b15" correspond one-to-one to the output terminals of the pre-swap programmable controller output numbers.

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 control emulation unit 13, i. H. of the virtual controller, for example, performs the processing for turning on the output ports having the output numbers “1” and “2”, the controller emulation unit 13 performs hardware emulation processing for the output control register 341 . That is, the control emulation unit 13 performs a virtual output to a virtual register 141 in the memory mapped I/O area 14 corresponding to the output control register 341 . Then, the first bit "X1" and the second bit "X2" of the virtual register 141 are set to "ON". Since the output control register 341 is a register for controlling input/output from the programmable controller 1, the result of hardware emulation processing is output to an actual input/output control register 441 of the programmable controller 1 with reference to the input/output mapping information 241 . Accordingly, based on the contents of the input/output control register 441, the input/output control unit 43 performs control to turn on or off the input ports 41 or the output ports 42.

Die Ein-/Ausgabe-Mappinginformationen 241 von 5 verknüpfen die Ausgabenummern „0“, „1“ und „2“ der programmierbaren Steuerung 1 mit den Ausgabenummern „2“, „1“ bzw. „0“ der virtuellen Steuerung, die von der Steuerungsemulationseinheit 13 emuliert wird. Wenn die Werte der Ausgabenummern „0“, „1“ und „2“ der virtuellen Steuerung „0“, „1“ bzw. „1“ sind, werden die Werte der Ausgangsanschlüsse 42 mit den Ausgabenummern „0“, „1“ und „2“ auf „1“, „1“ bzw. „0“ gesetzt. Jeder der Werte der Ausgangsanschlüsse mit den Ausgabenummern „3“ und höher bei der virtuellen Steuerung wird in ähnlicher Weise unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen 241 auf den Ausgangsanschluss 42 mit der entsprechenden Ausgabenummer der programmierbaren Steuerung 1 eingestellt. In dem Beispiel von 5 weisen die Ausgabenummern „3“ und höher bei der virtuellen Steuerung alle den Wert „0“ auf.The input/output mapping information 241 from 5 concatenate the output numbers "0", "1" and "2" of the programmable controller 1 with the output numbers "2", "1" and "0", respectively, of the virtual controller emulated by the controller emulation unit 13. When the values of the output numbers "0", "1" and "2" of the virtual controller are "0", "1" and "1", respectively, the values of the output terminals 42 with the output numbers "0", "1" and "2" set to "1", "1" or "0". Each of the values of the output ports with the issue numbers “3” and higher in the virtual controller is similarly set to the output port 42 with the corresponding issue number of the programmable controller 1 with reference to the input/output mapping information 241 . In the example of 5 the issue numbers "3" and higher in the virtual controller are all "0".

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 control emulation unit 13 decodes and simultaneously executes an instruction of the firmware 211a so as to emulate this instruction. If the command a In addition, if the command to access the memory mapped I/O area is 14, the hardware is also emulated at the same time. After the completion of one emulation command, the control emulation unit 13 continues the emulation at the same time as executing the next command. Here, the emulation processing for each command referred to in the execution of the firmware 211a and the hardware emulation processing in the case of accessing the memory mapped I/O area 14 are contained in the hardware information 231, the firmware 211 and the hardware information 231 can be modified via the communication interface unit 30. By exchanging the firmware and hardware information, the emulated programmable controller can be swapped out if desired. In addition, the input/output mapping information 241 referred to when an input/output terminal of the programmable controller 1 is accessed in hardware emulation processing can be changed manually by the user so that the correspondence between the virtual inputs and Outputs in the virtual controller emulated on the controller emulation unit 13 and the actual inputs and outputs of the programmable controller 1 can be changed as desired.

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 firmware 211, the control program 221 and the hardware information 231 are exchangeable, and the input/output mapping information 241 via the communication interface unit 30 is modifiable. However, the programmable controller 1 may also include an interface for connecting a storage medium on which this information is stored, and reading data from the storage medium through this interface and performing an emulation operation. Examples of the storage medium include a Secure Digital (SD) memory card, a Compact Disc (CD)-ROM, a Digital Versatile Disc or Digital Video Disc (DVD)-ROM, a Blu-ray (registered trademark) Disc (BD) ROM, a CompactFlash (registered trademark) card and a Floppy (registered trademark) disk.

Zweite AusführungsformSecond embodiment

6 zeigt ein Blockschaltbild, das schematisch ein Beispiel für die Konfiguration einer programmierbaren Steuerung gemäß der zweiten Ausführungsform veranschaulicht. Im Folgenden werden die Unterschiede zur ersten Ausführungsform beschrieben. Ferner werden Elemente, die mit den Elementen der ersten Ausführungsform identisch sind, mit den gleichen Bezugszeichen versehen, wobei deren Beschreibung entfällt. 6 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to the second embodiment. The differences from the first embodiment are described below. Further, elements that are identical to elements in the first embodiment are given the same reference numerals and the description thereof is omitted.

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 controller emulation unit 13 further has the functionality to estimate the time required to execute an instruction of the firmware in the programmable pre-exchange controller, the timing of the start of the I/O update operation in the programmable pre - exchange control and inform an I/O timing adjustment unit 431 (described later) of the result. Specifically, each time the controller emulation unit 13 decodes and executes an instruction instruction of the firmware 211a, the controller emulation unit 13 estimates an instruction execution time, which is the time for actually executing the instruction in the pre-exchange programmable controller. The control emulation unit 13 then calculates a cumulative instruction execution time obtained by summing up the instruction execution times from the time the last I/O update operation was completed. Then, when an I/O update register is accessed, the controller emulation unit 13 uses the cumulative instruction execution time at that time to estimate the time of completion of the scan processing that the control program in the pre-exchange programmable controller executes, i. H. to estimate the actual start time of the I/O update operation. The control emulation unit 13 outputs the estimated time of the start of the I/O update operation to the I/O timing adjustment unit 431 .

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 programmable controller 1 also includes the input/output timing adjustment unit 431. The input/output timing adjustment unit 431 has the functionality of the point in time at which the input/output - update is performed in the programmable controller 1 equates to the time when the I/O update is performed in the pre-replacement programmable controller. The I/O timing adjustment unit 431 keeps the I/O control unit 43 in a waiting state until at the time of starting the I/O update processing estimated by the control emulation unit 13, and allowing the I/O control unit 43 to perform the I/O update processing at the time of starting the I/O update operation.

7 zeigt ein Zeitdiagramm, das schematisch ein Beispiel für die Anpassung des Timings einer Ein-/Ausgabe-Aktualisierung gemäß der zweiten Ausführungsform veranschaulicht. In 7 veranschaulicht der obere Abschnitt eine Operation, die in der programmierbaren Prä-Austausch-Steuerung durchgeführt wird, und der untere Abschnitt veranschaulicht eine Operation, die in der Steuerungsemulationseinheit 13 durchgeführt wird. Wie in der Darstellung der Operation in der programmierbaren Prä-Austausch-Steuerung gezeigt ist, wiederholt die programmierbare Steuerung im Allgemeinen das Scannen 511, um das Steuerprogramm auszuführen, und die Ein-/Ausgabe-Aktualisierung 521, um Informationen zu empfangen, die von einem externen Eingabegerät eingegeben werden, oder um Informationen, d. h. ein Berechnungsergebnis, an ein externes Ausgabegerät auszugeben. Dies ermöglicht die Steuerung von Geräten und dergleichen. 7 12 is a timing chart schematically illustrating an example of I/O refresh timing adjustment according to the second embodiment. In 7 the upper portion illustrates an operation performed in the pre-exchange programmable controller, and the lower portion illustrates an operation performed in the controller emulation unit 13 . As shown in the representation of the operation in the pre-swap programmable controller, the programmable controller generally repeats scanning 511 to execute the control program and I/O update 521 to receive information received from a external input device, or to output information, ie a calculation result, to an external output device. This allows controlling devices and the like.

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 7 nach dem Scannen 512 auf der Steuerungsemulationseinheit 13 dargestellt ist. Dadurch wird die Ein-/Ausgabe-Aktualisierung 522 auf der Steuerungsemulationseinheit 13 so eingestellt, dass die Ein-/Ausgabe-Aktualisierung 522 zur gleichen Zeit beginnt wie die Ein-/Ausgabe-Aktualisierung 521 auf der programmierbaren Prä-Austausch-Steuerung. Dies hat zur Folge, dass die Eingabe von einem Gerät, das zu steuern ist, und die Ausgabe an dieses Gerät zu denselben Zeitpunkten erfolgt wie bei einem realen Gerät.The pre-replacement programmable controller is believed to be an obsolete type with low computational speed. In this case, a scan operation 512 on the controller emulation unit 13 is completed earlier than a scan operation 511 on the pre-swap programmable controller. In this case, the input/output timing adjustment unit 431 of the second embodiment specifies a timing adjustment time 532 that is in 7 after scanning 512 on the controller emulation unit 13 . This sets the I/O update 522 on the controller emulation unit 13 so that the I/O update 522 starts at the same time as the I/O update 521 on the pre-swap programmable controller. As a result, input from a device to be controlled and output to that device occur at the same timing as a real device.

8 zeigt ein Flussdiagramm, das ein Beispiel für den Ablauf eines Emulationsvorgangs veranschaulicht, der in einer programmierbaren Steuerung gemäß der zweiten Ausführungsform durchgeführt wird. Es wird darauf hingewiesen, dass im Folgenden die Unterschiede zum Flussdiagramm der bei der ersten Ausführungsform beschriebenen 4 erläutert werden. 8th 12 is a flowchart showing an example of the flow of an emulation process performed in a programmable controller according to the second embodiment. It is noted that in the following, the differences from the flowchart described in the first embodiment 4 be explained.

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 control emulation unit 13 initializes the cumulative command execution time (step S31). The procedure then continues with step S12.

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 control emulation unit 13 estimates an instruction execution time for an emulated instruction in the pre-exchange programmable controller and adds the estimated instruction execution time to the cumulative instruction execution time at that time (step S32). The cumulative command execution time to which the command execution time is added represents a new cumulative command execution time. The procedure then advances to step S18.

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/O area 14 of step S16 (Yes in step S16), the control emulation unit 13 determines whether the address to be accessed is the I/O - update register (step S33). When the address to be accessed is not the I/O update register (No in step S33), the control emulation unit 13 performs hardware emulation processing on the corresponding register (step S34). The procedure then continues with step S32.

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 control emulation unit 13 obtains the cumulative instruction execution time at that time and estimates from the cumulative instruction execution time the start time of the I/O Update operation in the emulated real programmable controller (step S35). Next, the control emulation unit 13 outputs the estimated start time of the input/output update operation to the input/output timing adjustment unit 431 (step S36). Then, the control emulation unit 13 is placed in a waiting state until receiving a notification of the completion of performing the I/O update from the I/O timing adjustment unit 431 (step S37).

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 control emulation unit 13 of the completion of performing the input/output update processing (step S41).

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 control emulation unit 13 receives the notification of completion of performing the I/O update operation from the I/O timing adjustment unit 431 (step S42), the procedure returns to step S31.

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 control emulation unit 13 estimates the instruction execution time for the same instruction in a real device that corresponds to the microcomputer instruction and the time for scanning in the real device estimates using the cumulative instruction execution time, another time estimation method can also be used. For example, the time for scanning in a real device can be estimated by estimating the command execution time on a command-by-command basis of the control program 221 and using the cumulative command execution time thereof.

9 zeigt eine Darstellung, die ein Beispiel für ein Verfahren zum Konvertieren einer durch Emulieren erzeugten virtuellen Ausgabe in eine reale Ausgabe einer programmierbaren Steuerung gemäß der zweiten Ausführungsform veranschaulicht. Im Folgenden wird eine Ausgabeoperation beschrieben, bei der Werte in dem virtuellen Register 141 festgelegt werden, das dem bei der ersten Ausführungsform beschriebenen Ausgabesteuerungsregister 341 entspricht, und bei der die festgelegten Werte in der realen Ausgabe wiedergegeben werden. 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. An output operation in which values are set in the virtual register 141 corresponding to the output control register 341 described in the first embodiment and the set values are reflected in the real output will be described below.

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 issue control register 341 is accessed in the firmware 211a executed by the controller emulation unit 13, a virtual issue is issued to the virtual register 141 like the issue to the issue control register 341 in the pre-swap programmable controller. The virtual issue assumes the connection of the programmable pre-swap controller with the input/output devices and their hardware configuration. Accordingly, in the case of an input/output from an input/output terminal of the actual programmable controller 1, the output is converted according to the connection of the programmable controller 1 with the input/output devices and their hardware configuration. The issue numbers in the virtual issue are converted to the actual issue numbers with reference to the I/O mapping information 241 . In the second embodiment, the control emulation unit 13 calculates an input/output update start time “A” with reference to the cumulative instruction execution time 435. In this case, therefore, the timing at which the output information is to be output from the actual output ports 42 is calculated. The actual output values and the input/output update start time “A” obtained in this operation are stored in the input/output timing adjustment unit 431 . At the start time "A", the input/output timing adjustment unit 431 informs the input/output control unit 43 that the timing of the start of the input/output update has come, and the input/output control unit 43 outputs every single piece of output information.

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 controller emulation unit 13 estimates the instruction execution time required for an instruction executed by the controller emulation unit 13 to be executed in the emulated actual programmable controller, and further estimates the cumulative instruction execution time. In addition, when the address to be accessed after the instruction to be executed is the I/O update register, the controller emulation unit 13 estimates the start time of the I/O update processing in the emulated actual programmable controller using the cumulative instruction execution time. Using this input/output update operation start timing, the input/output timing adjustment unit 431 adjusts the timing at which the programmable controller 1 performs the input/output update processing. This is advantageous in that the timing at which the programmable controller 1 performs the I/O update corresponds to the timing in the actual programmable controller being emulated.

Dritte AusführungsformThird embodiment

10 zeigt ein Blockschaltbild, das schematisch ein Beispiel für die Konfiguration einer programmierbaren Steuerung gemäß einer dritten Ausführungsform veranschaulicht. Im Folgenden werden die Unterschiede zur ersten Ausführungsform beschrieben. Ferner sind Elemente, die mit den Elementen der ersten Ausführungsform identisch sind, mit gleichen Bezugszeichen versehen, wobei deren Beschreibung weggelassen wird. 10 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to a third embodiment. The following are the differences from the first embodiment described. Further, elements identical to elements in the first embodiment are given the same reference numerals and the description thereof is omitted.

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 10 zwei Recheneinheiten 10A und 10B dargestellt sind, es können aber auch drei oder mehr Recheneinheiten vorgesehen sein.In the third embodiment, the programmable controller 1 includes a plurality of computing units 10A and 10B. The computing units 10A and 10B comprise virtualization units 11A and 11B, respectively, which are similar to the virtualization unit described in the first embodiment. The programmable controller 1 accordingly includes a number of virtualization units 11A and 11B. As with the arithmetic unit 10 of the first embodiment, the virtualization unit 11A includes a management unit 12A, a control emulation unit 13A, a memory mapped I/O area 14A, and a mapping information generation unit 15A. Similarly, the virtualization unit 11B comprises a management unit 12B, a control emulation unit 13B, a memory mapped I/O area 14B and a mapping information generation unit 15B. With this configuration, the programmable controller 1 can emulate multiple pre-swap programmable controllers. This means that the firmware 211a runs on the virtualization unit 11A and the control program 221a runs on the firmware 211a. The firmware 212a is executed on the virtualization unit 11B and the control program 222a is executed on the firmware 212a. It is noted that in 10 two computing units 10A and 10B are shown, but three or more computing units can also be provided.

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 information storage unit 23 stores the hardware information corresponding to the control emulation units 13A and 13B included in the virtualization units 11A and 11B. Further, the firmware storage unit 21 stores the firmware 211a and the firmware 212a corresponding to the control emulation units 13A and 13B included in the virtualization units 11A and 11B, and the control program storage unit 22 stores the control programs 221a and 222a corresponding to those in the virtualization units 11A and 11A 11B correspond to control emulation units 13A and 13B. The input/output mapping information storage unit 24 stores a piece of input/output mapping information common to the plurality of control emulation units 13 .

In 10 ist ein Schalter 82 mit dem Eingangsanschluss 41 verbunden, der die Eingabenummer „60“ hat, und ein Magnetschalter 92 ist mit dem Ausgangsanschluss 42 verbunden, der die Ausgabenummer „60“ aufweist.In 10 a switch 82 is connected to the input port 41, which has the input number "60", and a magnetic switch 92 is connected to the output port 42, which has the output number "60".

In der in 10 dargestellten programmierbaren Steuerung 1 führen die Recheneinheit 10A das Steuerprogramm 221a und die Recheneinheit 10B das Steuerprogramm 222a aus. Die Steuerprogramme 221a und 222a steuern die externen Eingabe- und Ausgabegeräte.in the in 10 In the programmable controller 1 shown, the arithmetic unit 10A executes the control program 221a and the arithmetic unit 10B executes the control program 222a. The control programs 221a and 222a control the external input and output devices.

Im Beispiel von 10 werden die Eingangsanschlüsse 41, die Eingabenummern von „0“ bis „59“ aufweisen, und die Ausgangsanschlüsse 42, die Ausgabenummern von „0“ bis „59“ aufweisen, durch das Steuerprogramm 221a gesteuert. Zudem werden die Eingangsanschlüsse 41 mit Eingabenummern von „60“ bis „139“ und die Ausgangsanschlüsse 42 mit Ausgabenummern von „60“ bis „139“ durch das Steuerprogramm 222a gesteuert.In the example of 10 For example, the input ports 41 having input numbers from "0" to "59" and the output ports 42 having output numbers from "0" to "59" are controlled by the control program 221a. In addition, the input ports 41 with input numbers from “60” to “139” and the output ports 42 with output numbers from “60” to “139” are controlled by the control program 222a.

Die Steuerungsemulationseinheiten 13A und 13B arbeiten jeweils in der wie in Bezug auf das Flussdiagramm von 4 der ersten Ausführungsform beschrieben Art und Weise, wobei die Steuerungsemulationseinheiten 13A und 13B unabhängig voneinander arbeiten. In dem gezeigten Beispiel umfasst die Hardware der programmierbaren Steuerung 1 mehrere Recheneinheiten 10A und 10B, wobei jede der verschiedenen Steuerungsemulationseinheiten 13A und 13B parallel an der entsprechenden Recheneinheit 10A und 10B betrieben wird. Wenn die Hardware der programmierbaren Steuerung 1 nur eine Recheneinheit 10 enthält, kann die Virtualisierungseinheit 11 jedoch mehrere Steuerungsemulationseinheiten 13A und 13B aufweisen und deren Operationen im Zeitmultiplexverfahren schalten. In diesem Fall führen die Steuerungsemulationseinheiten 13A und 13B die Verarbeitung durch, während die Steuerungsemulationseinheiten 13A, 13B im Zeitmultiplexverfahren umgeschaltet werden.The control emulation units 13A and 13B each operate in FIG 4 in the manner described in the first embodiment, the control emulation units 13A and 13B operate independently of each other. In the example shown, the hardware of the programmable controller 1 comprises a plurality of arithmetic units 10A and 10B, each of the different control emulation units 13A and 13B being operated in parallel on the corresponding arithmetic unit 10A and 10B. However, if the hardware of the programmable controller 1 contains only one computing unit 10, the virtualization unit 11 can have a plurality of controller emulation units 13A and 13B and switch their operations in time-division multiplexing. In this case, the control emulation units 13A and 13B perform the processing while the control emulation units 13A, 13B are time-divisionally switched.

11 zeigt eine Darstellung, die ein Beispiel für ein Verfahren zum Konvertieren einer durch Emulieren erzeugten virtuellen Ausgabe in eine reale Ausgabe einer programmierbaren Steuerung gemäß der dritten Ausführungsform veranschaulicht. Wenn die Steuerungsemulationseinheit 13A auf die Ein-/Ausgabe-Schnittstelleneinheit 40 zugreift, d. h. wenn auf die Hardware, die die Ein-/AusgabeSteuerung durchführt, wie bei der Verarbeitung in Schritt S17 von 4 durch Firmware zugegriffen wird, erfolgt eine Ausgabe an die Ausgangsanschlüsse 42 mit entsprechenden tatsächlichen Ausgabenummern unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen 241. 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. When the control emulation unit 13A accesses the I/O interface unit 40, that is, when the hardware that performs I/O control, as in the processing in step S17 of FIG 4 accessed by firmware, an output is made to the output ports 42 with corresponding actual issue numbers with reference to the input/output mapping information 241.

Es ist zu beachten, dass sich die Ein-/Ausgabe-Mappinginformationen 241 von 11 von den Ein-/Ausgabe-Mappinginformationen 241 von 4 unterscheiden. Auch wenn die Recheneinheit 10 bei der ersten Ausführungsform eine einzelne virtuelle Steuerung emuliert, emulieren die Recheneinheiten 10A und 10B bei der dritten Ausführungsform zwei virtuelle Steuerungen. Daher enthält das Feld „Zuordnung der virtuellen Steuerung“ der Ein-/Ausgabe-Mappinginformationen 241 entweder die von der Recheneinheit 10A emulierte virtuelle Steuerung A oder die von der Recheneinheit 10B emulierte virtuelle Steuerung B.Note that the I/O mapping information 241 differs from 11 from the input/output mapping information 241 from 4 differentiate. Although the arithmetic unit 10 emulates a single virtual controller in the first embodiment, the arithmetic units emulate one 10A and 10B, two virtual controllers in the third embodiment. Therefore, the field "mapping of the virtual controller" of the input/output mapping information 241 contains either the virtual controller A emulated by the computing unit 10A or the virtual controller B emulated by the computing unit 10B.

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 firmware 211a running on the control emulation unit 13A accesses actual input/output ports. The output control register 341 is similar to the register described in the first embodiment. The output control register 341 is an output control register contained in an emulated actual programmable controller, the bits of which correspond to the respective output numbers of that programmable controller.

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 control emulation unit 13A, corresponding hardware emulation processing is performed. That is, the control emulation unit 13</b>A performs a write operation on the first bit and the second bit of the virtual register 141 in the memory mapped I/O area 14 , which register corresponds to the output control register 341 . With reference to the input/output mapping information 241 , the control emulation unit 13A reflects the result of the writing operation in the actual output ports 42 . In the input/output mapping information 241, the issue numbers from “0” to “59” are assigned to the “virtual controller A” emulated by the controller emulation unit 13A, and the issue numbers “0”, “1” and “2” of the programmable controller 1 are concatenated with the corresponding virtual register output numbers “2”, “1” and “0” on the controller emulation unit 13A. The control emulation unit 13A sets the values for the output terminals 42 having the output numbers "0", "1" and "2" to "1", "1" and "0", respectively, and outputs these values to the actual input/output control register 441 . It should be noted that even when the control emulation unit 13B accesses the actual input/output ports, the actual input/output ports are accessed based on the allocation indicated in the input/output mapping information 241 .

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 control emulation units 13A and 13B are emulated with reference to the input/output common mapping information 241 . As a result, the input ports 41 having the input numbers from "0" to "59" and the output ports 42 having the output numbers from "0" to "59" are controlled by the control program 221a. In addition, the input ports 41 having the input numbers from "60" to "139" and the output ports 42 having the output numbers from "60" to "139" are controlled by the control program 222a. By changing the input/output mapping information 241, the relationship between the plurality of control emulation units 13A and 13B in relation to the actual input ports 41 and the actual output ports 42 can be changed.

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 controller emulation units 13A and 13B are assigned to one of the actual input ports 41 and the actual output ports 42 of the programmable controller 1, respectively. However, when an input and an output need to be connected between the control emulation units 13A and 13B, the control emulation units 13A and 13B can be configured so that these inputs and outputs are internally connected. In this case, a method can be used in which, for example, an input/output relationship between the control emulation units 13A and 13B is previously described in the input/output mapping information 241, and when one of the control emulation units accesses an output that is compatible with the connected to another of the control emulation units, the output result of which is reflected in the corresponding input of the other of the control emulation units using inter-process communication.

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 programmable controller 1 includes a plurality of controller emulation units 13A and 13B, the controller emulation units 13A and 13B emulating the respective operations of different pre-replacement programmable controllers. As a result, a number of existing control programs 221a and 222a can be integrated on the hardware of a single programmable controller 1 and executed at the same time.

Vierte AusführungsformFourth embodiment

12 zeigt ein Blockschaltbild, das schematisch ein Beispiel für die Konfiguration einer programmierbaren Steuerung gemäß der vierten Ausführungsform veranschaulicht. Im Folgenden werden die Unterschiede zur ersten und dritten Ausführungsform erläutert. Ferner sind Elemente, die mit den Elementen der ersten und dritten Ausführungsform identisch sind, mit den gleichen Bezugszeichen versehen und deren Beschreibung wird weggelassen. 12 12 is a block diagram schematically showing an example of the configuration of a programmable controller according to the fourth embodiment. The differences from the first and third embodiment are explained below. Furthermore, elements with the elements of the first and third embodiment are identical in shape are given the same reference numerals and the description thereof is omitted.

Ä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 programmable controller 1 includes a plurality of controller emulation units 13A and 13B. In the third embodiment, the programmable controller 1 is configured to include a plurality of physically different computing units 10A and 10B, the computing units 10A and 10B having their controller emulation units 13A and 13B. The programmable controller 1 of the fourth embodiment is configured to include a single arithmetic unit 10, and the virtualization unit 11 in the arithmetic unit 10 has the plurality of controller emulation units 13A and 13B. In this case, the arithmetic unit 10 allows the plurality of control emulation units 13A and 13B to be time-divisionally switched as described above.

In 12 ist ein Drehgeber 83 mit dem Eingangsanschluss 41 mit der Eingabenummer „0“ verbunden, und der Schalter 82 ist mit dem Eingangsanschluss 41 mit der Eingabenummer „60“ verbunden. Die Lampe 91 ist mit dem Ausgangsanschluss 42 mit der Ausgabenummer „0“ verbunden, und der Magnetschalter 92 ist mit dem Ausgangsanschluss 42 mit der Ausgabenummer „60“ verbunden.In 12 a rotary encoder 83 is connected to the input terminal 41 with the input number "0", and the switch 82 is connected to the input terminal 41 with the input number "60". The lamp 91 is connected to the output terminal 42 with the edition number "0", and the magnetic switch 92 is connected to the output terminal 42 with the edition number "60".

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 programmable controller 1 further comprises a unit for detecting high-priority events 432. The unit for detecting high-priority events 432 has the functionality to detect the occurrence of an event which is linked to an interrupt program which should be given preferential treatment during the emulation processing of the plurality of control emulation units 13A and 13B, and to transmit to the arithmetic unit 10 an event notification indicating the occurrence of the event. An event associated with an interrupt program that should be given preferential treatment is hereinafter referred to as a high-priority event.

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 management unit 12 of the arithmetic unit 10 further includes a switching unit 121. The switching unit 121 is a functional unit that switches between control emulation units upon receipt of an event notification from the high-priority event detection unit 432, so that a control emulation unit that executes an interrupt program due to the occurrence of a should execute an event with high priority, also executes this interrupt routine during the operation of a control emulation unit that is different from the control emulation unit that should execute the interrupt routine.

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 programmable controller 1 generally has the functionality to execute a rapidly running interrupt program as a reaction to the occurrence of a specific event. Examples of such an event are a rising or falling edge of an input signal, a change in a pulse counter value, and an internal timer increment. An interrupt program that is triggered by these events has a higher priority than a control program that is currently being executed and must be able to react very quickly.

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 control emulation units 13A and 13B operate in the same computing unit 10, a high-priority event that should be handled by the control emulation unit 13B may occur during the operation of the control emulation unit 13A. In this case, the control emulation unit 13B does not perform the interrupt processing corresponding to the high-priority event until the time allotted to the control emulation unit 13A has elapsed. This reduces the responsiveness of the interrupt program.

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 event detection unit 432 and the management unit 12 has the switching unit 121 .

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 control emulation unit 13B executes an interrupt program when the pulse number of the rotary encoder 83 reaches a preset target value.

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 event detection unit 432 . A high priority event is an event that requires priority execution of an interrupt program when that event occurs. The condition specified here is that "the number of pulses for the input terminal 41 with the input number "0" has reached a predetermined setting value". How the firmware 211a and the firmware 212a emulated on the controller emulation units 13A and 13B determine the condition depends on the hardware specifications of the programmable controllers to be emulated by the controller emulation units 13A and 13B. The following Description is based on the assumption that the controller emulation unit 13A emulates the programmable controller that has a special hardware device for counting pulses. The firmware for the programmable controller with the specific hardware device accesses a register of the specific hardware device. Accessing this register causes the control emulation unit 13A to perform hardware emulation processing. In hardware emulation processing, the input number "0" for which pulse monitoring is required and the number of pulses to be used as an event condition are set in the high-priority event detection unit 432 .

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 event detection unit 432 notifies the switching unit 121 of the occurrence of the event. The switching unit 121 brings hardware register information stored in the virtual general-purpose register 132 on the control emulation unit 13B, which is to handle the event with high priority, to the status at the time of occurrence of the event. When the control emulation unit 13B, which is to handle the event with high priority, is not in operation, the switching unit 121 switches between the control emulation units 13A and 13B operated on the arithmetic unit 10.

13 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für das Timing beim Umschalten zwischen mehreren Steuerungsemulationseinheiten, die auf derselben Recheneinheit betrieben werden. In dieser Darstellung zeigt der obere Abschnitt den Betriebszustand der Steuerungsemulationseinheit 13A, und der untere Abschnitt zeigt den Betriebszustand der Steuerungsemulationseinheit 13B. Ferner ist auf der horizontalen Achse die Zeit dargestellt. 13 FIG. 12 is a diagram showing an example of timing when switching between multiple control emulation units operating on the same computing unit. In this diagram, the upper portion shows the operating state of the control emulation unit 13A, and the lower portion shows the operating state of the control emulation unit 13B. Also, time is shown on the horizontal axis.

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 13 führt die Steuerungsemulationseinheit 13A zunächst eine Verarbeitung in einem Ausführungszeitraum 551 aus, wobei die Steuerungsemulationseinheit 13B anschließend eine Verarbeitung im Ausführungszeitraum 552 ausführt. Die Steuerungsemulationseinheit 13A führt die Verarbeitung im nächsten Ausführungszeitraum 553 aus, wobei im Zeitraum 553 zum Zeitpunkt t1 ein Ereignis hoher Priorität 560 eintritt. Das Ereignis hoher Priorität 560 bedeutet hier, dass ein Impulszählerwert des Drehgebers 83 einen Sollwert erreicht. Die Einheit zur Erkennung von Ereignissen hoher Priorität 432 erfasst das Auftreten des Ereignisses hoher Priorität 560 und übermittelt der Umschalteinheit 121 eine Ereignismeldung, die das Auftreten des Ereignisses mit hoher Priorität anzeigt. Nach Erhalt der Ereignismeldung schaltet die Umschalteinheit 121 die Verarbeitung von der Steuerungsemulationseinheit 13A auf die Steuerungsemulationseinheit 13B um, damit die Steuerungsemulationseinheit 13B auch in dem Ausführungszeitraum 553, in dem die Steuerungsemulationseinheit 13A in Betrieb ist, betrieben werden kann. Die Steuerungsemulationseinheit 13B führt dann ein Interruptprogramm aus, das dem Ereignis mit hoher Priorität entspricht.When no high-priority event has occurred, the control emulation units 13A and 13B are operated to time-divisionally switch between the units 13A and 13B based on a certain operation period. In 13 the control emulation unit 13A first executes processing in an execution period 551, and then the control emulation unit 13B executes processing in the execution period 552. The control emulation unit 13A executes the processing in the next execution period 553, and in the period 553 at time t1, a high-priority event 560 occurs. The high-priority event 560 means here that a pulse counter value of the rotary encoder 83 reaches a target value. The high-priority event detection unit 432 detects the occurrence of the high-priority event 560 and transmits to the switching unit 121 an event notification indicating the occurrence of the high-priority event. After receiving the event notification, the switching unit 121 switches the processing from the control emulation unit 13A to the control emulation unit 13B so that the control emulation unit 13B can also be operated in the execution period 553 in which the control emulation unit 13A is in operation. The control emulation unit 13B then executes an interrupt program corresponding to the high-priority event.

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 program execution time 570, i. H. the time span for the execution of the interrupt program, calculated on the basis of a specific algorithm. Alternatively, the allocated interrupt routine execution time 570 may be implemented by modifying the firmware 212a itself to add a hook at the point of termination of the interrupt routine so that the termination of interrupt routine execution can be detected. The addition of a hook eliminates the need to anticipate when the interrupt program will finish executing; in this case there is no need to calculate the allocated interrupt program execution time 570 . When the assigned interrupt program execution time 570 has elapsed, the switching unit 121 switches the processing so that the control emulation unit 13A performs the processing. Then, the hardware register information in the execution period 554 is restored to the status at the time when the high priority event 560 occurred, and the control emulation unit 13A performs the processing.

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 event detection unit 432 has been described as a functional block with pulse counting functionality, it should be noted that the embodiment is not so limited. For example, the high priority event detection unit 432 may be configured to have multiple functions to detect other events such as a rising or falling edge of an input signal.

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 programmable controller 1 includes a high-priority event detection unit 432 that detects a high-priority event, and a switching unit 121 that switches processing to one of the controller emulation units 13A and 13B to perform interrupt processing. when a high priority event is detected becomes. This enables forced switching to one of the control emulation units 13A and 13B to execute an interrupt program when a high-priority event occurs, whereby responsiveness to a high-priority event can be increased when the multiple control emulation units 13A and 13B are on the same arithmetic unit 10 are operated.

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 programmable controller 1 can be equated with that of the emulated real programmable controller.

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)

Programmierbare Steuerung, die aufweist: eine Speichereinheit zum Speichern von Firmware und einem Steuerprogramm, die von einer emulierten programmierbaren Steuerung ausgeführt werden sollen, und von Hardwareinformationen, die zur Emulation der Hardware der emulierten programmierbaren Steuerung erforderlich sind; und eine Steuerungsemulationseinheit zum Emulieren einer Hardwareoperation in der emulierten programmierbaren Steuerung auf Basis der Hardwareinformationen,wobei die Steuerungsemulationseinheit die Firmware und das Steuerprogramm auf der emulierten Hardware ausführt, und die Firmware und die Hardwareinformationen, die in der Speichereinheit gespeichert sind, in Übereinstimmung mit der emulierten programmierbaren Steuerung modifizierbar sind.Programmable controller that includes: a storage unit for storing 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; and a controller emulation unit for emulating a hardware operation in the emulated programmable controller based on the hardware information,wherein the control emulation unit runs the firmware and the control program on the emulated hardware, and the firmware and hardware information stored in the memory unit is modifiable in accordance with the emulated programmable controller. Programmierbare Steuerung nach Anspruch 1, die ferner aufweist: Ein-/Ausgangsanschlüsse, die mit einem Eingabegerät und einem Ausgangsanschluss verbunden sind; und eine Ein-/Ausgabe-Steuereinheit zum Steuern der Eingabe und Ausgabe von Informationen in die und aus den Ein-/Ausgangsanschlüssen, wobei die Speichereinheit ferner Ein-/Ausgabe-Mappinginformationen speichert, die eine Korrespondenzbeziehung zwischen der Eingabe in die und der Ausgabe aus den Ein-/Ausgangsanschlüssen und virtuellen Eingaben/Ausgaben definieren, wenn die Steuerungsemulationseinheit die Firmware und das Steuerprogramm ausführt, und die Steuerungsemulationseinheit die virtuellen Eingaben/Ausgaben bei der Ausführung der Firmware und des Steuerprogramms in die Eingabe in die und die Ausgabe aus den Ein-/Ausgangsanschlüssen unter Bezugnahme auf die Ein-/Ausgabe-Mappinginformationen konvertiert.Programmable controller after claim 1 further comprising: input/output ports connected to an input device and an output port; and an input/output control unit for controlling input and output of information to and from the input/output ports, the storage unit further storing input/output mapping information showing a correspondence relationship between input to and output from define the input/output ports and virtual inputs/outputs when the controller emulation unit executes the firmware and the control program, and the controller emulation unit converts the virtual inputs/outputs into the input to and the output from the inputs when the firmware and the control program are executed. /Output ports with reference to the I/O mapping information. Programmierbare Steuerung nach Anspruch 2, die ferner eine mit einem externen Gerät verbundene Kommunikationsschnittstelleneinheit umfasst, welche die in den Ein-/Ausgabe-Mappinginformationen definierte Beziehung zwischen der Eingabe in die und der Ausgabe aus den Ein-/Ausgangsanschlüssen und der virtuellen Eingabe/Ausgabe modifizieren kann.Programmable controller after claim 2 further comprising a communication interface unit, connected to an external device, capable of modifying the relationship between the input to and output from the input/output ports and the virtual input/output defined in the input/output mapping information. Programmierbare Steuerung nach Anspruch 2 oder 3, die ferner aufweist: eine Ein-/Ausgabe-Timing-Anpassungseinheit zum Anpassen des Zeitpunkts der tatsächlichen Eingabe in die und Ausgabe aus den Ein-/Ausgangsanschlüssen von der virtuellen Eingabe/Ausgabe, die von der Ein-/Ausgabe-Steuereinheit durchgeführt wird, wobei die Steuerungsemulationseinheit, wenn die emulierte programmierbare Steuerung in Übereinstimmung mit der Firmware und dem Steuerprogramm emuliert wird, eine Ausführungszeit schätzt, die für die emulierte tatsächliche programmierbare Steuerung erforderlich ist, um das Steuerprogramm auszuführen, und auf Basis der Ausführungszeit eine Startzeit für die Eingabe und Ausgabe durch die emulierte tatsächliche programmierbare Steuerung schätzt, und die Ein-/Ausgabe-Timing-Anpassungseinheit die Ein-/Ausgabe-Steuereinheit zur Durchführung der Steuerung im Wartezustand hält, bis der Startzeitpunkt erreicht ist, und es der Ein-/Ausgabe-Steuereinheit zum Startzeitpunkt ermöglicht, die Eingabe und Ausgabe in die und aus den Ein-/Ausgangsanschlüssen zu steuern.Programmable controller after claim 2 or 3 further comprising: an input/output timing adjustment unit for adjusting the timing of actual input to and output from the input/output ports of the virtual input/output performed by the input/output control unit, wherein the controller emulation unit, when the emulated programmable controller is emulated in accordance with the firmware and the control program, estimates an execution time required for the emulated actual programmable controller to execute the control program, and based on the execution time, a start time for the input and Estimates output by the emulated actual programmable controller, and the I/O timing adjustment unit keeps the I/O controller in the waiting state to perform the control until the start timing is reached, and allows the I/O controller to Start time allows input and output to and from the in/out to control input connections. Programmierbare Steuerung nach einem der Ansprüche 1 bis 4, wobei die Steuerungsemulationseinheit mehrere Steuerungsemulationseinheiten umfasst, und wobei die Speichereinheit die Firmware und das Steuerprogramm, die von jeder der Steuerungsemulationseinheiten auszuführen sind, sowie die Hardwareinformationen aufweist.Programmable controller according to one of Claims 1 until 4 wherein the control emulation unit comprises a plurality of control emulation units, and wherein the storage unit has the firmware and the control program to be executed by each of the control emulation units and the hardware information. Programmierbare Steuerung nach Anspruch 5, die ferner aufweist: eine Umschalteinheit, welche die Hardwareemulationsverarbeitung in der emulierten programmierbaren Steuerung, die von den Steuerungsemulationseinheiten durchgeführt wird, umschaltet; und eine Einheit zur Erkennung von Ereignissen hoher Priorität, um ein mit einer Interruptverarbeitung verknüpftes Ereignis zu erfassen, wobei die Einheit zur Erkennung von Ereignissen hoher Priorität beim Erfassen des Auftretens eines Ereignisses mit hoher Priorität die Umschalteinheit über das Auftreten des Ereignisses mit hoher Priorität benachrichtigt, wobei das Ereignis mit hoher Priorität ein Ereignis ist, das erfordert, dass die Interruptverarbeitung bevorzugt durchgeführt wird, und die Umschalteinheit das Umschalten zwischen den Steuerungsemulationseinheiten so steuert, dass die mit dem Ereignis hoher Priorität verknüpfte Interruptverarbeitung ausgeführt wird.Programmable controller after claim 5 further comprising: a switching unit that switches hardware emulation processing in the emulated programmable controller performed by the controller emulation units; and a high-priority event detection unit for detecting an event associated with an interrupt processing, wherein the high-priority event detection unit upon detection of the occurrence of a high-priority event notifies the switching unit of the occurrence of the high-priority event, wherein the high-priority event is an event that requires the interrupt processing to be performed preferentially, and the switching unit controls switching between the control emulation units so that the interrupt processing associated with the high-priority event is performed.
DE112019007840.2T 2019-11-26 2019-11-26 Programmable controller Pending DE112019007840T5 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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