DE112018007018T5 - CPU unit of a programmable logic controller, programmable logic controller, method, computer and computer program - Google Patents

CPU unit of a programmable logic controller, programmable logic controller, method, computer and computer program Download PDF

Info

Publication number
DE112018007018T5
DE112018007018T5 DE112018007018.2T DE112018007018T DE112018007018T5 DE 112018007018 T5 DE112018007018 T5 DE 112018007018T5 DE 112018007018 T DE112018007018 T DE 112018007018T DE 112018007018 T5 DE112018007018 T5 DE 112018007018T5
Authority
DE
Germany
Prior art keywords
command
programmable logic
computing device
instruction
microprocessor
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.)
Granted
Application number
DE112018007018.2T
Other languages
German (de)
Other versions
DE112018007018B4 (en
Inventor
Natsumi Ishiguro
Tomoaki Takagi
Jun Nakagawa
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 DE112018007018T5 publication Critical patent/DE112018007018T5/en
Application granted granted Critical
Publication of DE112018007018B4 publication Critical patent/DE112018007018B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Eine CPU-Einheit (100) umfasst eine MPU (142) und ein FPGA (143) als Rechenvorrichtungen zur Verarbeitung eines Befehls. Ein Befehl enthält Rechenvorrichtungsinformation, die eine durch einen Benutzer ausgewählte Rechenvorrichtung zum Verarbeiten des Befehls angibt. Die MPU (142) verarbeitet den Befehl, wenn die Rechenvorrichtungsinformation die MPU (142) angibt.Das FPGA (143) verarbeitet den Befehl, wenn die Rechenvorrichtungsinformation das FPGA (143) angibt. Wenn sich die Rechenvorrichtungsinformation ändert, verarbeitet die MPU (142) oder das FPGA (143) den Befehl basierend auf der geänderten Rechenvorrichtungsinformation.A CPU unit (100) comprises an MPU (142) and an FPGA (143) as computing devices for processing an instruction. A command includes computing device information indicating a user selected computing device to process the command. The MPU (142) processes the command when the computing device information indicates the MPU (142). The FPGA (143) processes the command when the computing device information indicates the FPGA (143). When the computing device information changes, the MPU (142) or the FPGA (143) processes the command based on the changed computing device information.

Description

Technischer BereichTechnical part

Die vorliegende Offenbarung betrifft eine CPU-Einheit einer programmierbaren Logiksteuerung, eine programmierbare Logiksteuerung, ein Verfahren, einen Computer und ein Computerprogramm.The present disclosure relates to a CPU unit of a programmable logic controller, a programmable logic controller, a method, a computer and a computer program.

Stand der TechnikState of the art

Bei einer programmierbaren Logiksteuerung („programmable logic controller“, PLC), die im Bereich der Fabrikautomatisierung verwendet wird, ist eine zentrale Verarbeitungseinheit („central processing unit“, CPU) vorgesehen, die eine anwendungsspezifische integrierte Schaltung („application specific integrated circuit“, ASIC), die eine integrierte Schaltung für eine spezielle Anwendung ist, und einen Mikroprozessor („microprocessor“, MPU) umfasst, der eine allgemeine Verarbeitung durchführt. Das ASIC führt einen speziellen Typ der Verarbeitung durch, der zum Zeitpunkt der Entwicklung bestimmt wird, und der Mikroprozessor führt eine Verarbeitung aus, die das ASIC nicht ausführen soll. Da die Rechenleistung des Mikroprozessors nicht so hoch ist wie die des ASIC, ist die Verarbeitungsfähigkeit des Mikroprozessors im Hinblick auf die ständig zunehmende Geschwindigkeit der Verarbeitung der CPU-Einheit ein Nachteil.In the case of a programmable logic controller (PLC), which is used in the field of factory automation, a central processing unit (CPU) is provided, which an application-specific integrated circuit ("application specific integrated circuit", ASIC), which is an integrated circuit for a specific application and includes a microprocessor (“microprocessor”, MPU) that performs general processing. The ASIC performs a special type of processing that is determined at design time, and the microprocessor performs processing that the ASIC should not do. Since the computing power of the microprocessor is not as high as that of the ASIC, the processing ability of the microprocessor is a disadvantage in view of the ever increasing speed of processing of the CPU unit.

Wenn das ASIC so eingerichtet wird, dass es alle Befehle verarbeitet, können die Operationen der CPU-Einheit schneller gemacht werden. Um dies zu erreichen, wäre es jedoch nötig, das ASIC mit einer Berechnungsschaltung zu versehen, die auf sämtliche Verarbeitungen innerhalb des Programms spezialisiert ist, und dies ist praktisch nicht erreichbar, da die Entwicklungskosten zu hoch werden.If the ASIC is set up to process all commands, the operations of the CPU unit can be made faster. In order to achieve this, however, it would be necessary to provide the ASIC with a computation circuit which is specialized in all processing within the program, and this is not practically achievable since the development costs become too high.

Patentliteratur 1 offenbart ein Verfahren zum Erhöhen der Verarbeitungsgeschwindigkeit, indem ein umkonfigurierbarer Prozessor, der einer programmierbaren Logikvorrichtung entspricht, dazu veranlasst wird, einen Teil der Verarbeitung des Mikroprozessors auszuführen. Bei diesem Verfahren führt die programmierbare Logikvorrichtung Programmelemente aus, die Funktionen umfassen, die zur Verarbeitung Zeit benötigen, während der Mikroprozessor Programmelemente ausführt, die Funktionen, die zur Verarbeitung Zeit benötigen, nicht umfassen.Patent Literature 1 discloses a method of increasing the processing speed by causing a reconfigurable processor corresponding to a programmable logic device to perform part of the processing of the microprocessor. In this method, the programmable logic device executes program elements that include functions that take time to process, while the microprocessor executes program elements that do not include functions that take time to process.

ZitierungslisteList of citations

PatentliteraturPatent literature

Patentliteratur 1: ungeprüfte japanische Patentanmeldung mit Veröffentlichungsnummer 2009-251782 Patent Literature 1: Japanese Unexamined Patent Application Publication Number 2009-251782

Überblick über die ErfindungOverview of the invention

Technisches ProblemTechnical problem

Mit dem Verfahren aus Patentliteratur 1 führt die programmierbare Logikvorrichtung eine Verarbeitung für nur die Programmelemente aus, die Funktionen enthalten.With the method of Patent Literature 1, the programmable logic device executes processing for only the program elements including functions.

In Bezug auf die durch die programmierbare Logikvorrichtung durchgeführte Verarbeitung muss ein Benutzer in einem Fall, in dem ein neues Programm erstellt werden soll, ein ursprüngliches Programm erstellen, das die Rechenvorrichtung in Betracht zieht, so dass diese Verarbeitung in den Funktionen enthalten ist.Regarding the processing performed by the programmable logic device, in a case where a new program is to be created, a user needs to create an original program that the computing device takes into consideration so that this processing is included in the functions.

In einem Fall, in dem eine Verarbeitung eines existierenden Programms so geändert werden soll, dass die programmierbare Logikvorrichtung die Verarbeitung anstatt des Mikroprozessors ausführt, ist es ferner nötig, das Programm so zu korrigieren, dass Funktionen diese Verarbeitung enthalten, und diese Korrekturaufgabe erfordert Zeit und Energie.Further, in a case where processing of an existing program is to be changed so that the programmable logic device executes the processing instead of the microprocessor, it is necessary to correct the program so that functions include this processing, and this correcting task takes time and effort Energy.

In Anbetracht der vorgenannten Umstände ist es ein Ziel der vorliegenden Offenbarung, bei einer programmierbaren Logiksteuerung (i) die Möglichkeit vorzusehen, eine Rechenvorrichtung nach der Erstellung eines Programms in einem Fall auszuwählen, in dem die Verarbeitung eines Mikroprozessors auf programmierbare Logikvorrichtungen verteilt werden soll, und ferner (ii) die Möglichkeit vorzusehen, die Rechenvorrichtungen zu ändern, ohne wesentliche Korrekturen an dem Programm vornehmen zu müssen.In view of the foregoing, it is an object of the present disclosure to provide a programmable logic controller (i) with the ability to select a computing device after creating a program in a case where the processing of a microprocessor is to be distributed among programmable logic devices, and further (ii) to provide the ability to change the computing devices without having to make substantial corrections to the program.

Lösung des Problemsthe solution of the problem

Um das voran genannte Ziel zu erreichen, umfasst eine CPU-Einheit, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, gemäß einem Aspekt der vorliegenden Offenbarung einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen. Ein Befehl in einem Benutzerprogramm enthält Rechenvorrichtungsinformation, die eine von einem Benutzer ausgewählte Rechenvorrichtung als eine Rechenvorrichtung zum Verarbeiten des Befehls angibt. Der Mikroprozessor verarbeitet den Befehl, wenn die Rechenvorrichtungsinformation den Mikroprozessor angibt. Die programmierbare Logikvorrichtung verarbeitet den Befehl, wenn die Rechenvorrichtungsinformation die programmierbare Logikvorrichtung angibt. Wenn sich die Rechenvorrichtungsinformation ändert, verarbeitet der Mikroprozessor oder die programmierbare Logiksteuerung den Befehl basierend auf der geänderten Rechenvorrichtungsinformation.To achieve the aforementioned object, a CPU unit configured to be integrated in a programmable logic controller, according to one aspect of the present disclosure, includes a microprocessor and a programmable logic device as computing devices. A command in a user program contains computing device information indicating a computing device selected by a user as a computing device for processing the command. The microprocessor processes the command when the computing device information indicates the microprocessor. The programmable logic device processes the command when the computing device information indicates the programmable logic device. If the computing device information changes, the microprocessor or programmable logic controller processes the command based on the changed computing device information.

Vorteilhafte Wirkungen der ErfindungAdvantageous Effects of the Invention

Bei der CPU-Einheit gemäß einem Aspekt der vorliegenden Erfindung, die dazu konfiguriert ist, in der programmierbaren Logiksteuerung enthalten zu sein, verarbeitet der Mikroprozessor einen Befehl, wenn die durch den Benutzer ausgewählte Rechenvorrichtungsinformation den Mikroprozessor als die Rechenvorrichtung zur Verarbeitung des Befehls angibt, und die programmierbare Logikvorrichtung verarbeitet den Befehl, wenn die Rechenvorrichtungsinformation des Befehls die programmierbare Logikvorrichtung angibt. Wenn sich die Rechenvorrichtungsinformation ändert, verarbeitet entweder der Mikroprozessor oder die programmierbare Logiksteuerung den Befehl basierend auf der geänderten Rechenvorrichtungsinformation. Bei einer solchen Konfiguration können die Rechenvorrichtungen nach der Erstellung des Programms geändert werden, ohne dass es für den Benutzer notwendig ist, sich während der Erstellung des Programms über die Rechenvorrichtung bewusst zu sein, die die Verarbeitung durchführen sollen. Ferner kann die Rechenvorrichtung geändert werden, ohne dass an dem Programm drastische Korrekturen durchgeführt werden müssen.In the CPU unit according to an aspect of the present invention configured to be included in the programmable logic controller, when the computing device information selected by the user indicates the microprocessor as the computing device for processing the command, the microprocessor processes a command, and the programmable logic device processes the command when the computing device information of the command indicates the programmable logic device. If the computing device information changes, either the microprocessor or the programmable logic controller processes the command based on the changed computing device information. With such a configuration, the computing devices can be changed after the program is created without the need for the user to be aware of the computing device that are to perform the processing during the creation of the program. Furthermore, the computing device can be changed without having to make drastic corrections to the program.

FigurenlisteFigure list

  • 1 ist ein Blockdiagramm, das eine Konfiguration einer PLC gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt; 1 Fig. 3 is a block diagram showing a configuration of a PLC according to an embodiment of the present disclosure;
  • 2 ist ein Flussdiagramm eines Scans eines Programms einer CPU-Einheit der PLC gemäß der Ausführungsform der vorliegenden Offenbarung; 2 FIG. 12 is a flowchart of a scan of a program of a CPU unit of the PLC according to the embodiment of the present disclosure;
  • 3 ist ein Flussdiagramm, das die Ausführung des Programms der 2 im Detail zeigt; 3 FIG. 13 is a flow diagram illustrating the execution of the program of FIG 2 shows in detail;
  • 4 ist ein Diagramm, das ein Beispiel eines Menübildschirms eines technischen Werkzeugs zeigt, bei dem Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; 4th Fig. 13 is a diagram showing an example of a technical tool menu screen in which computing device information is to be changed according to the embodiment;
  • 5 ist ein Diagramm, das ein Beispiel eines Untermenü-Bildschirms des technischen Werkzeugs zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; 5 Fig. 13 is a diagram showing an example of a submenu screen of the engineering tool in which the computing device information is to be changed according to the embodiment;
  • 6 ist ein Flussdiagramm, das eine Verarbeitung für die Rechenvorrichtungsinformation in einem automatischen Auswahlmodus für das technische Werkzeug zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; 6th Fig. 13 is a flowchart showing processing for the computing device information in an automatic engineering tool selection mode in which the computing device information is to be changed according to the embodiment;
  • 7 ist ein Diagramm, welches ein Beispiel eines Auswahlbildschirms in einem manuellen Auswahlmodus 1 des technischen Werkzeugs zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; 7th Fig. 13 is a diagram showing an example of a selection screen in a manual selection mode 1 of the engineering tool in which the computing device information is to be changed according to the embodiment;
  • 8 ist ein Diagramm, welches ein Beispiel eines Auswahlbildschirms in einem manuellen Auswahlmodus 2 des technischen Werkzeugs zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; 8th Fig. 13 is a diagram showing an example of a selection screen in a manual selection mode 2 of the engineering tool in which the computing device information is to be changed according to the embodiment;
  • 9 ist ein Diagramm, welches ein weiteres Beispiel eines Auswahlbildschirms in dem manuellen Auswahlmodus 1 des technischen Werkzeugs zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll; und 9 Fig. 13 is a diagram showing another example of a selection screen in the manual selection mode 1 of the engineering tool in which the computing device information is to be changed according to the embodiment; and
  • 10 ist ein Diagramm, welches noch ein weiteres Beispiel eines Auswahlbildschirms in dem manuellen Auswahlmodus 2 des technischen Werkzeugs zeigt, bei dem die Rechenvorrichtungsinformation gemäß der Ausführungsform geändert werden soll. 10 Fig. 13 is a diagram showing still another example of a selection screen in the manual selection mode 2 of the engineering tool in which the computing device information is to be changed according to the embodiment.

Beschreibung von AusführungsformenDescription of embodiments

AusführungsformEmbodiment

Nun wird eine programmierbare Logiksteuerung (nachfolgend als PLC bezeichnet) 1 gemäß der Ausführungsform der vorliegenden Offenbarung beschrieben.A programmable logic controller (hereinafter referred to as PLC) 1 according to the embodiment of the present disclosure will now be described.

Wie in 1 gezeigt, umfasst die PLC 1 eine CPU-Einheit 100, die die Gesamtheit der PLC 1 steuert, eine Eingabeeinheit 200, die Eingabedaten für Berechnungen der CPU-Einheit 100 an die CPU-Einheit 100 bereitstellt, und eine Ausgabeeinheit 300, an welche durch die CPU-Einheit 100 Ausgabedaten bereitgestellt werden.As in 1 shown includes the PLC 1 a CPU unit 100 which is the entirety of the PLC 1 controls, an input unit 200 , the input data for calculations of the CPU unit 100 to the CPU unit 100 provides, and an output unit 300 , to which by the CPU unit 100 Output data are provided.

Die Eingabeeinheit 200 ist mit einer Detektionsvorrichtung 901 verbunden, die einen Sensor, einen Schalter usw. umfasst. Die Eingabeeinheit 200 stellt die AN/AUS-Signalausgaben des Sensors, des Schalters usw. des Detektors 901 an die CPU-Einheit 100 bereit.The input unit 200 is with a detection device 901 connected, which includes a sensor, a switch, etc. The input unit 200 provides the ON / OFF signal outputs of the sensor, switch, etc. of the detector 901 to the CPU unit 100 ready.

Beispielsweise versorgt die Eingabeeinheit 200 die CPU-Einheit 100 mit einem AN-Signal als Nachricht, dass der Schalter der Detektionsvorrichtung 901 angeschaltet ist, und mit einem AUS-Signal als Nachricht, dass der Schalter der Detektionsvorrichtung 901 ausgeschaltet ist. In einem Fall, in dem das AN-Signal durch „1“ repräsentiert ist und das AUS-Signal durch „0“ repräsentiert ist, wenn der Schalter der Eingabeeinheit 200 angeschaltet ist, stellt die Eingabeeinheit 2001“ an die CPU-Einheit 100 bereit. Wenn der Schalter ausgeschaltet ist, stellt die Einheit 200 „0“ an die CPU-Einheit 100 bereit.For example, supplies the input unit 200 the CPU unit 100 with an ON signal as a message that the switch of the detection device 901 is switched on, and with an OFF signal as a message that the switch of the detection device 901 is turned off. In a case where the ON signal is 1 "Is represented and the OFF signal is represented by" 0 "when the switch of the input unit 200 is switched on, the input unit 200 " 1 “To the CPU unit 100 ready. When the switch is off, the unit turns off 200 "0" to the CPU unit 100 ready.

Die Ausgabeeinheit 300 ist mit einer Steuerungszielvorrichtung 902 verbunden, die einen Aktuator, eine Anzeigelampe usw. umfasst. Die CPU-Einheit 100 stellt die AN/AUS-Signale, die den Aktuator, die Anzeigelampe usw. der Steuerungszielvorrichtung 902 steuern, an die Ausgabeeinheit 300 bereit.The output unit 300 is with a control aiming device 902 connected, which includes an actuator, an indicator lamp, etc. The CPU unit 100 provides the ON / OFF signals that control the actuator, indicator lamp, etc. of the control target device 902 control to the output unit 300 ready.

Die CPU-Einheit 100 stellt der Ausgabeeinheit 300 beispielsweise ein AN-Signal als einen Befehl bereit, um den Aktuator der Steuerungszielvorrichtung 902 anzutreiben, und ein AUS-Signal als einen Befehl, um den Aktuator der Steuerungszielvorrichtung 902 zu stoppen. In dem Fall, in dem das AN-Signal durch „1“ repräsentiert ist und das AUS-Signal durch „0“ repräsentiert ist, stellt die CPU-Einheit 100 der Ausgabeeinheit „1“ bereit, um den Aktuator anzutreiben, und die CPU-Einheit 100 stellt der Ausgabeeinheit „0“ bereit, um den Aktuator zu stoppen.The CPU unit 100 represents the output unit 300 for example, an ON signal as a command ready to the actuator of the control target device 902 and an OFF signal as a command to the actuator of the control target device 902 to stop. In the case where the ON signal is 1 "Is represented and the OFF signal is represented by" 0 ", the CPU unit provides 100 the output unit " 1 “Ready to drive the actuator and the CPU unit 100 provides "0" to the output unit to stop the actuator.

Die CPU-Einheit 100, die Eingabeeinheit 200 und die Ausgabeeinheit 300 sind miteinander über einen geteilten Bus 400 verbunden, und sie kommunizieren miteinander über den geteilten Bus 400. Obwohl dies nicht dargestellt ist, sind die CPU-Einheit 100, die Eingabeeinheit 200 und die Ausgabeeinheit 300 über eine Basiseinheit mit einer Leistungsversorgungseinheit verbunden, und sie werden mit Leistung betrieben, die durch die Leistungsversorgungseinheit bereitgestellt wird.The CPU unit 100 , the input unit 200 and the output unit 300 are with each other via a shared bus 400 connected, and they communicate with each other through the shared bus 400 . Although not shown, these are the CPU unit 100 , the input unit 200 and the output unit 300 connected to a power supply unit via a base unit, and they are operated with power provided by the power supply unit.

Die CPU-Einheit 100 umfasst einen Speicher 110, der verschiedene Arten von Daten speichert, eine Werkzeugschnittstelle 120 zur Kommunikation mit einem technischen Werkzeug 500, das nachfolgend beschrieben wird, einer Schnittstelle 130 für den geteilten Bus zur Kommunikation über den geteilten Bus 400 und eine Recheneinheit 140, die als Rechenvorrichtungen eine anwendungsspezifische integrierte Schaltung (ASIC) 141, einen Mikroprozessor 142 (nachfolgend als MPU 142 bezeichnet) und ein programmierbares Logikgatter („Field Programmable Gate Array“, FPGA) 143 umfasst. Die Komponenten der CPU-Einheit 100 sind miteinander über einen Bus 190 verbunden. Das FPGA 143 ist ein Beispiel für eine programmierbare Logikvorrichtung.The CPU unit 100 includes a memory 110 that stores various types of data, a tool interface 120 for communication with a technical tool 500 , which is described below, an interface 130 for the shared bus for communication via the shared bus 400 and a computing unit 140 that use an application-specific integrated circuit (ASIC) as computing devices 141 , a microprocessor 142 (hereinafter referred to as MPU 142 labeled) and a programmable logic gate ("Field Programmable Gate Array", FPGA) 143 includes. The components of the CPU unit 100 are to each other via a bus 190 connected. The FPGA 143 is an example of a programmable logic device.

Der Speicher 110 umfasst einen Nur-Lese-Speicher („Read-Only Memory“, ROM), einen Direktzugriffsspeicher („Random-Access Memory“, RAM), eine Speicherkarte und dergleichen. Der Speicher 110 speichert ein Benutzerprogramm 111.The memory 110 includes read-only memory (ROM), random-access memory (RAM), memory card, and the like. The memory 110 saves a user agent 111 .

Das Benutzerprogramm 111 ist ein Programm zum Steuern der Steuerungszielvorrichtung 902. Der Benutzer erzeugt das Benutzerprogramm 111, indem er das nachfolgend beschriebene technische Werkzeug 500 benutzt. Nachdem das erzeugte Benutzerprogramm 111 in Assemblersprache umgewandelt und auf die CPU-Einheit 100 der PLC 1 hochgeladen wurde, wird das umgewandelte und hochgeladene Benutzerprogramm 111 in dem Speicher 110 gespeichert. In dem Benutzerprogramm 111 ist jeder Befehl ein AN-Zustand oder ein AUS-Zustand in Abhängigkeit von dem AN/AUS-Signal. Nur Befehle, die in dem AN-Zustand sind, werden ausgeführt.The user agent 111 is a program for controlling the control target device 902 . The user creates the user program 111 by using the technical tool described below 500 used. After the generated user program 111 converted into assembly language and transferred to the CPU unit 100 the PLC 1 is uploaded, the converted and uploaded user agent 111 in the memory 110 saved. In the user agent 111 each command is an ON state or an OFF state depending on the ON / OFF signal. Only commands that are in the ON state are executed.

Jeder Befehl in dem Benutzerprogramm 111 umfasst Rechenvorrichtungsinformation als Information, die angibt, welche der Rechenvorrichtungen der Recheneinheit 140 den vorliegenden Befehl ausführen soll. Beispielsweise werden das ASIC 141 durch „1“, die MPU 142 durch „2“ und das FPGA 143 durch „3“ repräsentiert. In einem solchen Fall wird ein Bit-String, der diese Werte angibt, jedem Befehl hinzugefügt. In der vorliegenden Ausführungsform kann die Rechenvorrichtungsinformation in Bezug auf spezielle Befehle, die bestimmt sind, so dass das ASIC die Verarbeitung ausführt, nicht geändert werden.Any command in the user agent 111 includes computing device information as information indicating which of the computing devices of the computing unit 140 should execute the present command. For example, the ASIC 141 by " 1 “, The MPU 142 by " 2 “And the FPGA 143 represented by "3". In such a case a string of bits indicating these values is added to each command. In the present embodiment, the computing device information relating to specific commands that are determined so that the ASIC performs the processing cannot be changed.

Die Werkzeugschnittstelle 120 ist eine Schnittstelle für die CPU-Einheit 100, um mit dem technischen Werkzeug 500 zu kommunizieren. Die Werkzeugschnittstelle 120 arbeitet in Übereinstimmung mit der Steuerung durch die Recheneinheit 140.The tool interface 120 is an interface for the CPU unit 100 to keep up with the technical tool 500 to communicate. The tool interface 120 works in accordance with the control by the arithmetic unit 140 .

Die Schnittstelle 130 für den geteilten Bus ist eine Kommunikationsschnittstelle für die CPU-Einheit 100, um mit der Eingabeeinheit 200 und der Ausgabeeinheit 300 über den geteilten Bus 400 zu kommunizieren. Die Schnittstelle 130 für den geteilten Bus arbeitet in Übereinstimmung mit der Steuerung durch die Recheneinheit 140.the interface 130 for the shared bus is a communication interface for the CPU unit 100 to use the input unit 200 and the output unit 300 via the shared bus 400 to communicate. the interface 130 for the shared bus operates in accordance with the control by the computing unit 140 .

Die Recheneinheit 140 führt jeden der Befehle des Benutzerprogramms 100 aus, indem sie Daten verwendet, die durch die Eingabeeinheit 200 bereitgestellt werden. Insbesondere führen Rechenvorrichtungen, die durch jeweilige Rechenvorrichtungsinformation in dem Benutzerprogramm 111 angegeben sind, den Befehl aus. Die Eingabedaten sind ein Wert, der ein AN/AUS-Signal des Sensors, Schalters usw. der Detektionsvorrichtung 901, das von dem Sensor ausgegeben wird, angibt. Die Recheneinheit 140 führt nur Befehle aus, die in einem AN-Zustand sind, basierend auf dem AN-Signal, und sie stellt das AN/AUS-Signal an die Ausgabeeinheit 300 basierend auf der Ausgabe bereit, die aus dem Ergebnis der Berechnung erhalten wurde. Die Ausgabeeinheit 300 steuert die Steuerungszielvorrichtung 902 in Übereinstimmung mit dem bereitgestellten AN/AUS-Signal.The arithmetic unit 140 executes each of the commands of the user agent 100 made by having data used by the input unit 200 to be provided. In particular, computing devices lead by respective computing device information in the user program 111 are specified, execute the command. The input data is a value representing an ON / OFF signal of the sensor, switch, etc. of the detection device 901 output from the sensor. The arithmetic unit 140 only executes commands that are in an ON state based on the ON signal, and provides the ON / OFF signal to the output unit 300 based on the output obtained from the result of the calculation. The output unit 300 controls the control target device 902 in accordance with the provided ON / OFF signal.

Das ASIC 141 umfasst ein Register 1411, das Daten zeitweise speichert, wenn ein Befehl in einem Programmzähler 1412 verarbeitet wird, der eine Adresse eines als Nächstes auszuführenden Befehls speichert. Das ASIC 141 verarbeitet nur spezifische Befehle bei der Ausführung des Benutzerprogramms 111. Dies liegt daran, dass das ASIC 141 nur bestimmte Befehle ausführen kann, die bei dessen Entwicklung festgelegt werden. Dieser bestimmte Befehl wird als ein ASIC-unterstützter Befehl bezeichnet. Umgekehrt werden Befehle des Benutzerprogramms 111, die von dem ASIC-unterstützten Befehl verschieden sind, als ASIC-nicht-unterstützte Befehle bezeichnet.The ASIC 141 includes a register 1411 that temporarily stores data when an instruction is in a program counter 1412 which stores an address of an instruction to be executed next. The ASIC 141 only processes specific commands when executing the user agent 111 . This is because the ASIC 141 can only execute certain commands that are specified when it is developed. This particular command is known as an ASIC assisted command. Conversely, user agent commands 111 that are different from the ASIC supported command are referred to as ASIC unsupported commands.

Die MPU 142 umfasst ein Register 1421, das Daten zeitweise speichert, wenn ein Befehl ausgeführt wird. Die MPU 142 verarbeitet aus den ASIC-nicht-unterstützten Befehlen solche Befehle, die so ausgewählt wurden, dass die MPU 142 die Verarbeitung ausführt.The MPU 142 includes a register 1421 that temporarily stores data when an instruction is executed. The MPU 142 processes those commands from the ASIC-unsupported commands which were selected in such a way that the MPU 142 executes the processing.

Das FPGA 143 umfasst ein Register 1431, das Daten zeitweise speichert, wenn ein Befehl ausgeführt wird. Das FPGA 143 verarbeitet unter den ASIC-nicht-unterstützten Befehlen solche Befehle, die so ausgewählt wurden, dass das FPGA 143 die Verarbeitung ausführt. In Bezug auf das FPGA 143 kann der Benutzer nach der Herstellung Änderungen der Konfiguration der Logikschaltung des FPGA 143 durchführen. In einem Fall, in dem beispielsweise aufgrund einer Änderung an dem Benutzerprogramm 111 dem Benutzerprogramm 111 ein neuer Befehl hinzugefügt wird und dieser Befehl nicht der ASIC-unterstützte Befehl ist, kann das ASIC 141 den neu hinzugefügten Befehl nicht ausführen. Jedoch kann das FPGA 143 den neu hinzugefügten Befehl durch Ändern der Konfiguration der Logikschaltung ausführen. Ähnlich dem FPGA 143 kann auch die MPU 142 den ASIC-nicht-unterstützten Befehl ausführen, in Bezug auf die Verarbeitungsgeschwindigkeit ist das FPGA 143 jedoch schneller. Das Verfahren zur Auswahl, ob ein Befehl durch die MPU 142 ausgeführt werden soll oder ob ein Befehl durch das FPGA 143 ausgeführt werden soll, wird nachfolgend beschrieben.The FPGA 143 includes a register 1431 that temporarily stores data when an instruction is executed. The FPGA 143 among the ASIC-unsupported commands processes those commands that have been selected so that the FPGA 143 executes the processing. Regarding the FPGA 143 the user can make changes to the configuration of the logic circuit of the FPGA after manufacture 143 carry out. In a case where, for example, due to a change in the user agent 111 the user agent 111 a new command is added and that command is not the ASIC-supported command, the ASIC 141 do not execute the newly added command. However, the FPGA 143 execute the newly added command by changing the configuration of the logic circuit. Similar to the FPGA 143 can also do the MPU 142 execute the ASIC-unsupported command, in terms of processing speed the FPGA 143 but faster. The method of choosing whether to send a command through the MPU 142 should be executed or whether a command is to be executed by the FPGA 143 is to be executed is described below.

Die Eingabeeinheit 200 umfasst einen Speicher 210 zum Speichern verschiedener Arten von Daten, einen geteilten Speicher 220 zum Austausch von Daten mit der CPU-Einheit 100, eine Schnittstelle 230 für den geteilten Bus zur Kommunikation mit dem geteilten Bus 400 und eine MPU 240, die die Gesamtheit der Eingabeeinheit 200 steuert. Die Komponenten der Eingabeeinheit 200 sind miteinander über einen Bus 290 verbunden.The input unit 200 includes a memory 210 for storing different types of data, a shared memory 220 for exchanging data with the CPU unit 100 , an interface 230 for the shared bus to communicate with the shared bus 400 and an MPU 240 representing the entirety of the input unit 200 controls. The components of the input unit 200 are to each other via a bus 290 connected.

Der Speicher 210 umfasst ein ROM, ein RAM, eine Speicherkarte und dergleichen. Der Speicher 210 speichert ein Betriebsprogramm 211 zum Betreiben der Eingabeeinheit 200.The memory 210 includes a ROM, a RAM, a memory card and the like. The memory 210 saves an operating program 211 to operate the input unit 200 .

Der geteilte Speicher 220 ist ein Speicher, von dem sowohl durch die CPU-Einheit 100 und die Eingabeeinheit 200 gelesen werden kann und in den durch diese auch geschrieben werden kann. Werte, die AN/AUS-Signale angeben, die von dem Sensor, dem Schalter usw. der Detektionsvorrichtung 901 ausgegeben werden, werden in dem geteilten Speicher 220 gespeichert.The shared memory 220 is a memory that is shared by both the CPU unit 100 and the input unit 200 can be read and can also be written to by this. Values indicating ON / OFF signals received from the sensor, switch, etc. of the detection device 901 are output in the shared memory 220 saved.

Die Schnittstelle 230 für den geteilten Bus ist eine Kommunikationsschnittstelle, die es der Eingabeeinheit 200 ermöglicht, mit der CPU-Einheit 100 über den geteilten Bus 400 zu kommunizieren. Die Schnittstelle 130 für den geteilten Bus arbeitet in Übereinstimmung mit einer Steuerung durch die MPU 240.the interface 230 for the shared bus is a communication interface that connects it to the input unit 200 allows with the CPU unit 100 via the shared bus 400 to communicate. the interface 130 for the shared bus operates in accordance with control by the MPU 240 .

Die MPU 240 führt ein Betriebsprogramm 211 aus und speichert einen Wert, der ein detektiertes AN oder ein AUS angibt, in dem geteilten Speicher 220. Das AN gibt einen Zustand an, in dem ein bestimmtes Ziel durch einen Sensor, Schalter oder dergleichen der Detektionsvorrichtung 901 detektiert wurde, während AUS einen Zustand angibt, in dem es keine solche Detektion gibt. Dieser Wert gibt das AN/AUS-Signal zur Ausgabe an die CPU-Einheit 100 an.The MPU 240 conducts an operating program 211 and stores a value indicating a detected ON or OFF in the shared memory 220 . The ON indicates a state in which a certain target by a sensor, switch or the like of the detection device 901 was detected, while OFF indicates a state in which there is no such detection. This value gives the ON / OFF signal to be output to the CPU unit 100 at.

Die Ausgabeeinheit 300 umfasst einen Speicher 310, der verschiedene Arten von Daten speichert, einen geteilten Speicher 320 zum Austausch von Daten mit der CPU-Einheit 100, eine Schnittstelle 330 für den geteilten Bus zur Kommunikation mit dem geteilten Bus 400 und eine MPU 340, die die Gesamtheit der Ausgabeeinheit 300 steuert. Die Komponenten der Ausgabeeinheit 300 sind miteinander über einen Bus 390 verbunden.The output unit 300 includes a memory 310 that stores various types of data is a shared memory 320 for exchanging data with the CPU unit 100 , an interface 330 for the shared bus to communicate with the shared bus 400 and an MPU 340 which is the entirety of the output unit 300 controls. The components of the output unit 300 are to each other via a bus 390 connected.

Der Speicher 310 umfasst ein ROM, ein RAM, eine Speicherkarte oder dergleichen. Der Speicher 310 speichert ein Betriebsprogramm 311 zum Betreiben der Ausgabeeinheit 300.The memory 310 includes a ROM, a RAM, a memory card or the like. The memory 310 saves an operating program 311 to operate the output unit 300 .

Der geteilte Speicher 320 ist ein Speicher, von dem sowohl durch die CPU-Einheit 100 als auch durch die Ausgabeeinheit 300 gelesen und in den durch diese geschrieben werden kann. Werte, die AN/AUS-Signale angeben, die Ausgaben der Berechnungen der CPU-Einheit 100 sind, werden in dem geteilten Speicher 320 gespeichert. Diese Werte sind Steuerdaten zum Steuern des Aktuators, der Anzeigelampe usw. der Steuerungszielvorrichtung 902, und diese werden durch die CPU-Einheit 100 in den geteilten Speicher 320 geschrieben.The shared memory 320 is a memory that is shared by both the CPU unit 100 as well as through the output unit 300 can be read and written to by this. Values indicating ON / OFF signals, the outputs of the calculations of the CPU unit 100 are in the shared memory 320 saved. These values are control data for controlling the actuator, indicator lamp, etc. of the control target device 902 , and these are handled by the CPU unit 100 into shared memory 320 written.

Die Schnittstelle 330 für den geteilten Bus ist eine Kommunikationsschnittstelle für die Ausgabeeinheit 300, um über den geteilten Bus 400 mit der CPU-Einheit 100 zu kommunizieren. Die Schnittstelle 330 für den geteilten Bus arbeitet in Übereinstimmung mit Steuerungen durch die MPU 340.the interface 330 for the shared bus is a communication interface for the output unit 300 to get over the shared bus 400 with the CPU unit 100 to communicate. the interface 330 for the shared bus operates in accordance with controls by the MPU 340 .

Die MPU 340 führt ein Betriebsprogramm 311 aus und steuert die Steuerungszielvorrichtung 902 basierend auf den AN/AUS-Signalen, die von der CPU-Einheit 100 bereitgestellt werden. Beispielsweise schaltet die MPU 340 den Aktuator der Steuerungszielvorrichtung 902 an, wenn ein AN-Signal bereitgestellt wird.The MPU 340 conducts an operating program 311 and controls the control target device 902 based on the ON / OFF signals sent from the CPU unit 100 to be provided. For example, the MPU switches 340 the actuator of the control target device 902 on when an ON signal is provided.

Wie vorangehend beschrieben wurde, verwendet der Benutzer das technische Werkzeug 500, um das Benutzerprogramm 111 zu erzeugen, das durch die CPU-Einheit 100 ausgeführt werden soll. Das erzeugte Benutzerprogramm 111 wird auf die CPU-Einheit 100 in einem Zustand hochgeladen, in dem das technische Werkzeug 500 und die CPU-Einheit 100 durch ein Kommunikationskabel 501 verbunden sind.As described above, the user uses the technical tool 500 to open the user agent 111 to generate that by the CPU unit 100 should be executed. The generated user program 111 is on the CPU unit 100 uploaded in a state in which the technical tool 500 and the CPU unit 100 through a communication cable 501 are connected.

Das technische Werkzeug 500 ist eine Vorrichtung, die mit einer Anwendung zum Erzeugen eines Programms auf einem Personalcomputer ausgestattet ist. Das technische Werkzeug 500 umfasst einen Speicher 510, der verschiedene Arten von Daten speichert, ein Befehlseingabemodul 520, das Benutzerbefehle empfängt, eine Anzeige 530, die Bilder auf einer Anzeigevorrichtung anzeigt, eine Werkzeugschnittstelle 540 zur Kommunikation mit der CPU-Einheit 100, eine CPU 550, die die Gesamtheit des technischen Werkzeugs 500 steuert. Die Komponenten des technischen Werkzeugs 500 sind miteinander über einen Bus 590 verbunden.The technical tool 500 is an apparatus equipped with an application for creating a program on a personal computer. The technical tool 500 includes a memory 510 that stores various kinds of data, a command input module 520 receiving user commands, an indication 530 that displays images on a display device, a tool interface 540 for communication with the CPU unit 100 , a CPU 550 representing the entirety of the technical tool 500 controls. The components of the technical tool 500 are to each other via a bus 590 connected.

Der Speicher 510 umfasst ein Betriebssystem 511 und eine Programmerzeugungsanwendung 512. Das Betriebssystem 511 ist ein Programm zum Steuern der Gesamtheit des technischen Werkzeugs 500. Die Programmerzeugungsanwendung 512 ist ein Programm zum Erzeugen eines Benutzerprogramms 111 und zum Auswählen einer Rechenvorrichtung für jeden Befehl des erzeugten Benutzerprogramms 111.The memory 510 includes an operating system 511 and a program generation application 512 . The operating system 511 is a program for controlling the entirety of the technical tool 500 . The program generation application 512 is a program for creating a user program 111 and for selecting a computing device for each instruction of the generated user program 111 .

Das Befehlseingabemodul 520 umfasst eine Eingabevorrichtung, wie etwa eine Tastatur und eine Maus. Das Befehlseingabemodul 520 empfängt Befehlseingaben von dem Benutzer und gibt Signale an die CPU 550 aus, die auf den empfangenen Befehlen basieren. Die Anzeige 530 umfasst eine Bildanzeigevorrichtung und gibt an die Bildanzeigevorrichtung Bilder in Übereinstimmung mit einer Steuerung durch die CPU 550 aus. Das Befehlseingabemodul 520 und die Anzeige 530 arbeiten als ein Empfänger, der Instruktionen des Benutzers empfängt.The command input module 520 includes an input device such as a keyboard and mouse. The command input module 520 receives command inputs from the user and outputs signals to the CPU 550 based on the commands received. The ad 530 comprises an image display device and outputs images to the image display device in accordance with control by the CPU 550 out. The command input module 520 and the ad 530 work as a receiver receiving instructions from the user.

Die Werkzeugschnittstelle 540 behandelt das Senden und das Empfangen von Daten hin zu und von der CPU-Einheit 100, die über das Kommunikationskabel 501 angeschlossen ist, in Übereinstimmung mit einer Steuerung durch die CPU 550.The tool interface 540 handles the sending and receiving of data to and from the CPU unit 100 over the communication cable 501 is connected in accordance with control by the CPU 550 .

Die CPU 550 führt das Betriebssystem 511 aus und steuert die Gesamtheit des technischen Werkzeugs 500. Die CPU 550 führt auch die Programmerzeugungsanwendung 512 aus, um die Funktion zur Erzeugung des Benutzerprogramms 111 und die Funktion zum Ändern der Auswahl einer Rechenvorrichtung in Bezug auf Befehle in dem Benutzerprogramm 111 zu erreichen.The CPU 550 runs the operating system 511 and controls the entirety of the technical tool 500 . The CPU 550 also runs the program generation application 512 to activate the function for generating the user program 111 and the function of changing the selection of a computing device with respect to commands in the user program 111 to reach.

Die vorgenannte CPU-Einheit 100 führt das Benutzerprogramm 111 wie folgt aus. Die CPU-Einheit 100 verarbeitet das Benutzerprogramm 111 sequenziell ausgehend von dem Befehl am Kopf des Programms und, wenn der ENDE-Befehl, der die Programmbeendigung angibt, gelesen wird, kehrt die Verarbeitung zur Bearbeitung des Befehls an den Kopf zurück. Dieses Schema wird als das Scan-Schema bezeichnet.The aforementioned CPU unit 100 runs the user agent 111 as follows. The CPU unit 100 processes the user agent 111 sequentially starting from the command at the head of the program and when the END command indicating the program termination is read, processing returns to the head to process the command. This scheme is called the scanning scheme.

Zusätzlich zur Ausführung der Befehle des Benutzerprogramms 111 gewinnt die CPU-Einheit 100 Eingaben, die zur Ausführung der Befehle notwendig sind, und sie gibt das Ausführungsergebnis der Befehle aus. Wie in 2 gezeigt, führt die Recheneinheit 140 der CPU-Einheit 100 eine einzige Bearbeitungsreihe durch, die eine Erneuerungsverarbeitung (Schritt S11), eine Programmausführung (Schritt S12) und eine Beendigungsverarbeitung (Schritt S13) als einen Zyklus umfasst, und sie wiederholt diesen Zyklus.In addition to executing user agent commands 111 wins the CPU unit 100 Inputs that are necessary for executing the commands and it outputs the execution result of the commands. As in 2 shown, performs the computing unit 140 the CPU unit 100 performs a single series of processing that includes renewal processing (step S11 ), a program execution (step S12 ) and termination processing (step S13 ) as one cycle, and it repeats that cycle.

Bei der Erneuerungsverarbeitung des Schritts S11 schreibt die Recheneinheit 140 zunächst die Ausgabedaten, die in dem Speicher 110 gespeichert sind und durch die Ausführung des Benutzerprogramms in dem vorangegangenen Zyklus erhalten wurden, in den geteilten Speicher 320 der Ausgabeeinheit 300. Hiernach werden die Ausgabedaten aus dem Speicher 110 gelöscht. Ferner liest die Recheneinheit 140 die Eingabedaten von dem geteilten Speicher 220 der Eingabeeinheit 200 über den geteilten Bus 400 und speichert den gelesenen Eingabewert in dem Speicher 110.In the renewal processing of the step S11 writes the arithmetic unit 140 first the output data that is in the memory 110 and obtained by the execution of the user program in the previous cycle into the shared memory 320 the output unit 300 . The output data are then taken from the memory 110 deleted. The processing unit also reads 140 the input data from the shared memory 220 the input unit 200 via the shared bus 400 and stores the read input value in the memory 110 .

In dem Programmausführungsschritt S12 liest die Recheneinheit 140 Befehle des Benutzerprogramms 111 sequenziell von dem ersten Befehl an und führt die gelesenen Befehle aus. In der vorliegenden Ausführungsform verarbeitet das ASIC 140 den ASIC-unterstützten Befehl, und die MPU 142 oder das FPGA 143 verarbeiten den ASIC-nicht-unterstützten Befehl. Wenn die Recheneinheit 140 den ENDE-Befehl lädt, der die Beendigung des Benutzerprogramms 111 angibt, beendet die Recheneinheit 140 die Ausführung des Benutzerprogramms 111. Die Verarbeitung des ASIC-nicht-unterstützten Befehls durch die MPU 142 oder das FPGA 143 ist ein Beispiel für einen Schritt, in dem entweder der Mikroprozessor oder die programmierbare Logikvorrichtung der vorliegenden Ausführungsform Befehle ausführen.In the program execution step S12 reads the arithmetic unit 140 User agent commands 111 sequentially from the first command and executes the read commands. In the present embodiment, the ASIC is processing 140 the ASIC-supported command, and the MPU 142 or the FPGA 143 process the ASIC unsupported command. When the arithmetic unit 140 loads the END command, which terminates the user program 111 indicates the processing unit ends 140 the execution of the user program 111 . The processing of the ASIC unsupported command by the MPU 142 or the FPGA 143 Fig. 16 is an example of a step in which either the microprocessor or the programmable logic device of the present embodiment executes instructions.

Bei der Beendigungsverarbeitung des Schritts S13 führt die CPU-Einheit 100 eine Verarbeitung zur Datenübertragung mit einer nicht dargestellten Netzwerkeinheit aus, die mit anderen Vorrichtungen über ein Netzwerk kommuniziert, und sie führt andere Arten von verteilten Verarbeitungen aus.At the completion processing of the step S13 runs the CPU unit 100 performs data transfer processing with an unillustrated network unit communicating with other devices through a network, and other types of distributed processing.

In der vorliegenden Ausführungsform werden Befehle des Benutzerprogramms 111 auf verteilte Weise durch das ASIC 141, die MPU 142 und das FPGA 143 ausgeführt. Nachfolgend werden die Verarbeitungen durch das ASIC 141, die MPU 142 und das FPGA 143 in dem Programmausführungsschritt des Schritts S12 der 2 detaillierter beschrieben.In the present embodiment, commands of the user program 111 in a distributed manner through the ASIC 141 , the MPU 142 and the FPGA 143 executed. The following is the processing by the ASIC 141 , the MPU 142 and the FPGA 143 in the program execution step of the step S12 the 2 described in more detail.

Es wird angenommen, dass die Adresse des ersten Befehls des Benutzerprogramms 111 in dem Programmzähler 1412 des ASIC 141 gespeichert ist.It is assumed that the address of the first command of the user program 111 in the program counter 1412 of the ASIC 141 is stored.

Wie in 3 gezeigt, lädt das ASIC 141 einen Befehl des Benutzerprogramms 111, der durch eine Adresse des Programmzählers 1412 angegeben wird, in das Register 1411 (Schritt S121). Das ASIC 141 zählt auch die Adresse des Programmzählers 1412 hoch. Deshalb wird die Adresse, die den nächsten Befehl angibt, in dem Programmzähler 1412 gesetzt.As in 3 shown, the ASIC is charging 141 a user agent command 111 , which is indicated by an address of the program counter 1412 is specified in the register 1411 (Step S121 ). The ASIC 141 also counts the address of the program counter 1412 high. Therefore, the address indicating the next instruction will be in the program counter 1412 set.

Das ASIC 141 macht eine Bestimmung dahingehend, ob der geladene Befehl der ENDE-Befehl ist oder nicht (Schritt S122). Wenn eine Bestimmung dahingehend durchgeführt wird, dass der geladene Befehl nicht der ENDE-Befehl ist (Nein in Schritt S112), macht das ASIC 141 eine Bestimmung dahingehend, ob der geladene Befehl ein ASIC-unterstützter Befehl ist (Schritt S123). Insbesondere wird eine Bestimmung dahingehend gemacht, ob ein in dem Befehl enthaltener Bit-String, der die Rechenvorrichtungsinformation angibt, ein Bit-String ist, der das ASIC 141 angibt.The ASIC 141 makes a determination as to whether or not the loaded instruction is the END instruction (step S122 ). When a determination is made that the loaded instruction is not the END instruction (No in step S112 ), does the ASIC 141 a determination as to whether the loaded instruction is an ASIC-assisted instruction (step S123 ). In particular, there is a provision made as to whether a bit string contained in the command, which indicates the computing device information, is a bit string that the ASIC 141 indicates.

Wenn eine Bestimmung dahingehend durchgeführt wird, dass der geladene Befehl ein ASIC-unterstützter Befehl (Ja im Schritt S123) ist, führt das ASIC 141 den Befehl aus (Schritt S124). Danach lädt das ASIC 141 einen Befehl der in dem Programmzähler 1412 gesetzten Adresse in das Register 1411 (Schritt S121).If a determination is made that the loaded instruction is an ASIC-assisted instruction (yes in step S123 ) is the ASIC 141 execute the command (step S124 ). Then the ASIC loads 141 an instruction in the program counter 1412 set address in the register 1411 (Step S121 ).

In Schritt S123 macht das ASIC eine Bestimmung dahingehend, dass der geladene Befehl nicht ein ASIC-unterstützter Befehl ist (Nein in Schritt S123), das ASIC 141 gibt einen Unterbrechungsbefehl an die MPU 142 aus und behält dann den Wert des Programmzählers 1412 bei und stoppt.In step S123 the ASIC makes a determination that the command loaded is not an ASIC-supported command (No in step S123 ), the ASIC 141 gives an interrupt command to the MPU 142 and then retains the value of the program counter 1412 at and stops.

Wenn die MPU 142 den Unterbrechungsbefehl von dem ASIC 141 erhält, lädt die MPU 142 den in dem Register 1411 des ASIC 141 gespeicherten Befehl in das Register 1421 innerhalb der MPU 142. Die MPU 142 macht basierend auf der Rechenvorrichtungsinformation des geladenen Befehls eine Bestimmung dahingehend, ob der Befehl ein derart ausgewählter Befehl ist oder nicht, dass die MPU 142 die Verarbeitung ausführt (Schritt S125). Wenn eine Bestimmung dahingehend getroffen wird, dass der Befehl ein derart ausgewählter Befehl ist, dass die MPU 142 die Verarbeitung ausführt (Ja in Schritt S125) führt die MPU 142 den Befehl aus (Schritt S126). Dann schreibt die MPU 142 einen Wert, der einen erneuten Start angibt, in das Register 1411 des ASIC 141, um das ASIC 141 erneut zu starten. Hierdurch startet das ASIC 141 erneut, lädt den durch die in dem Programmzähler 1412 beibehaltene Adresse angegebenen Befehl in das Register 1411 (Schritt S121) und setzt die Ausführung des Befehls fort.When the MPU 142 the interrupt command from the ASIC 141 receives the MPU 142 those in the register 1411 of the ASIC 141 stored command in the register 1421 within the MPU 142 . The MPU 142 makes a determination based on the computing device information of the loaded instruction as to whether or not the instruction is such a selected instruction that the MPU 142 executes the processing (step S125 ). When a determination is made that the command is such a selected command that the MPU 142 executes the processing (yes in step S125 ) runs the MPU 142 execute the command (step S126 ). Then the MPU writes 142 a value indicating a restart into the register 1411 of the ASIC 141 to get the ASIC 141 start again. This starts the ASIC 141 again, loads the through the in the program counter 1412 retained address specified command in the register 1411 (Step S121 ) and continues executing the command.

Wenn die MPU 142 umgekehrt eine Bestimmung dahingehend trifft, dass der in Schritt S125 geladene Befehl ein nicht derart ausgewählter Befehl ist, dass die MPU 142 die Verarbeitung durchführt (Nein in Schritt S125), dann schreibt die MPU 142 den Befehl in das Register 1431 des FPGA 143 und veranlasst das
FPGA 143, den Befehl auszuführen (Schritt S127). Das FPGA 143 führt den in dem Register 1431 des FPGA 143 gespeicherten Befehl aus und schreibt einen Rückkehrwert, der angibt, dass die Berechnung abgeschlossen ist, in das
Register 1431. Wenn der Rückgabewert in das Register 1431 geschrieben ist, schreibt die MPU 142 einen Wert, der den erneuten Start angibt, in das Register 1411 des ASIC 141, um das ASIC 141 erneut zu starten. Hierdurch lädt das ASIC 141 den durch die in dem Programmzähler 1412 beibehaltene Adresse angegebenen Befehl in das Register 1411 (Schritt S121) und setzt die Ausführung des Befehls fort.
When the MPU 142 conversely, makes a determination that the in step S125 instruction loaded is not a selected instruction that the MPU 142 performs the processing (no in step S125 ), then the MPU writes 142 the command in the register 1431 of the FPGA 143 and arrange that
FPGA 143 to execute the command (step S127 ). The FPGA 143 leads the in the register 1431 of the FPGA 143 stored command and writes a return value indicating that the calculation is complete to the
register 1431 . If the return value is in the register 1431 is written, writes the MPU 142 a value indicating the restart into the register 1411 of the ASIC 141 to get the ASIC 141 start again. This loads the ASIC 141 the by the in the program counter 1412 retained address specified command in the register 1411 (Step S121 ) and continues executing the command.

Wenn das ASIC 141 in Schritt S122 eine Bestimmung dahingehend durchführt, dass der geladene Befehl ein ENDE-Befehl ist (Ja im Schritt S122) beendet das ASIC 141 die Ausführung des Benutzerprogramms 111. Dann führt die CPU-Einheit 100 die Beendigungsverarbeitung des Schritts S13 der 2 durch.When the ASIC 141 in step S122 makes a determination that the loaded instruction is an END instruction (Yes in step S122 ) terminates the ASIC 141 the execution of the user program 111 . Then the CPU unit performs 100 the completion processing of the step S13 the 2 by.

Wie vorangehend beschrieben wird der ASIC-nicht-unterstützte Befehl durch die MPU 142 oder das FPGA 143 verarbeitet, und zwar in Übereinstimmung mit dem Wert, der in der Rechenvorrichtungsinformation eingestellt ist. Ein Wert, der die MPU 142 angibt, ist in der Rechenvorrichtungsinformation als Vorgabewert für alle ASIC-nicht-unterstützten Befehle zu einem Zeitpunkt eingestellt, zu dem das Benutzerprogramm erzeugt wird.As previously described, the ASIC-unsupported command is issued by the MPU 142 or the FPGA 143 processed in accordance with the value set in the computing device information. A value that the MPU 142 is set in the computing device information as the default value for all ASIC-unsupported commands at a point in time at which the user program is generated.

Nachfolgend wird ein Verfahren zum Ändern der Rechenvorrichtungsinformation des ASIC-nicht-unterstützten Befehls unter Verwendung des technischen Werkzeugs 500 beschrieben.The following is a method of changing the computing device information of the ASIC unsupported command using the engineering tool 500 described.

Zunächst betätigt ein Benutzer die Tastatur, die Maus und/oder dergleichen des Befehlseingabemoduls 520, um die Programmerzeugungsanwendung 512 des technischen Werkzeugs 500 zu starten. Der Benutzer wählt das Menü „Benutzerprogrammerstellung“ aus dem Menübildschirm aus, wie etwa dem, der in 4 dargestellt ist, und der auf der Anzeige 530 dargestellt ist, wodurch die Darstellung eines nicht gezeigten Programmausführungsbildschirms auf der Anzeige 530 erreicht wird. Der Benutzer erzeugt ein Benutzerprogramm 111 auf dem nicht dargestellten Programmerzeugungsbildschirm und sichert das erzeugte Benutzerprogramm 111. Das erzeugte Benutzerprogramm 111 wird in dem Speicher 510 des technischen Werkzeugs 500 gespeichert.First, a user operates the keyboard, mouse and / or the like of the command input module 520 to open the program generation application 512 of the technical tool 500 to start. The user selects the User Programming menu from the menu screen, such as the one shown in 4th and the one on the display 530 which results in the appearance of a program execution screen, not shown, on the display 530 is achieved. The user creates a user program 111 on the program creation screen, not shown, and saves the user program created 111 . The generated user program 111 is in the memory 510 of the technical tool 500 saved.

Der Benutzer betätigt dann das Befehlseingabemodul 520, wodurch der in 4 gezeigte Menübildschirm wieder auf der Anzeige 530 angezeigt wird. Der Benutzer wählt das Menü „Rechenvorrichtungsauswahl“ aus, wodurch die Darstellung des Untermenü-Bildschirms, wie etwa dem in 5 gezeigten, auf dem Bildschirm 530 erreicht wird.The user then operates the command input module 520 whereby the in 4th menu screen shown on the display again 530 is shown. The user selects the "Computing Device Selection" menu, which changes the appearance of the submenu screen, such as that in FIG 5 shown on the screen 530 is achieved.

Wie in 5 gezeigt, gibt es „Automatischer Auswahlmodus“, „Manueller Auswahlmodus 1“ und „Manueller Auswahlmodus 2“ in dem Untermenü der Rechenvorrichtungsauswahl. In dem automatischen Auswahlmodus analysiert das technische Werkzeug 500 das Benutzerprogramm 11, wählt als einen durch das FPGA 143 auszuführenden Befehl einen Befehl aus, für den durch die Ausführung durch das FPGA 143 verbesserte Geschwindigkeit und verbesserte Performance erwartet werden und setzt einen Wert, der das FPGA 143 angibt, in der Rechenvorrichtungsinformation des ausgewählten Befehls. In dem manuellen Auswahlmodus 1 und dem manuellen Auswahlmodus 2 wählt der Benutzer die Rechenvorrichtung für jeden Befehl aus.As in 5 shown, there are “Automatic selection mode”, “Manual selection mode” 1 "And" Manual selection mode 2 “In the submenu of the computing device selection. The technical tool analyzes in the automatic selection mode 500 the user agent 11 , choose as one through the FPGA 143 command to be executed, for which the FPGA 143 Improved speed and improved performance are expected and sets a value that the FPGA 143 indicates in the computing device information of the selected command. In the manual selection mode 1 and the manual selection mode 2 the user selects the computing device for each command.

(Automatischer Auswahlmodus)(Automatic selection mode)

In einem Fall, in dem der automatische Auswahlmodus ausgeführt wird, wählt der Benutzer frei ein Benutzerprogramm 111 als ein Zielprogramm aus dem Untermenübildschirm aus und gibt „Automatischer Auswahlmodus“ an. In dem in den Zeichnungen dargestellten Beispiel ist „Programm 001“ als das Benutzerprogramm 111 ausgewählt.In a case where the automatic selection mode is executed, the user freely selects a user program 111 as a target program from the submenu screen and indicates “Auto Select Mode”. In the example shown in the drawings, “Program 001” is as the user program 111 selected.

Wenn „Automatischer Auswahlmodus“ ausgewählt ist, führt die CPU 550 des technischen Werkzeugs 500 die Programmerzeugungsanwendung 512 aus und führt die nachfolgend beschriebene Verarbeitung durch.If “Automatic selection mode” is selected, the CPU 550 of the technical tool 500 the program generation application 512 and performs the processing described below.

Hierbei ist die folgende Information vorab in dem Speicher 510 gespeichert.

  1. (1) Anzahl der ASIC-nicht-unterstützten Befehle: N1. Dieser Wert ist die Anzahl von Arten sämtlicher ASIC-nicht-unterstützten Befehle. Es wird nicht betrachtet, ob diese in dem „Programm 001“, das das Benutzerprogramm 111 ist, enthalten sind oder nicht.
  2. (2) Gesamtanzahl der Gates des FPGA 143: GFPGA. Dieser Wert ist ein Wert, der auf den Hardwarespezifikationen des FPGA 143 beruht.
  3. (3) Anzahl der Gates des FPGA 143, die zur Verarbeitung jedes Befehls zu verwenden sind (Anzahl der verwendeten Gates): Gn (n = 1, 2, ..., N1)
  4. (4) Zeitdauer, die durch Verwenden des FPGA 143 für jeden Befehl gewonnen werden kann (reduzierbare Zeit): Tn (n = 1, 2, ..., N1). Diese wird hier als die Differenz zwischen der Zeit zum Verarbeiten eines Befehls durch die MPU 142 und der Zeit zur Verarbeitung des gleichen Befehls durch die FPGA 143 angegeben. Die reduzierbare Zeit ist ein Beispiel der Verarbeitungszeit für jeden Befehl durch die programmierbare Logikvorrichtung der vorliegenden Offenbarung. Auf ähnliche Weise sind die oben erwähnten (2), (3) und (4) Beispiele für Definitionsinformation der programmierbaren Logikvorrichtung der vorliegenden Offenbarung.
Here, the following information is previously in the memory 510 saved.
  1. (1) Number of ASIC unsupported commands: N 1 . This value is the number of types of all ASIC unsupported commands. It is not considered whether this is in "Program 001", which the user program 111 is, are included or not.
  2. (2) Total number of gates of the FPGA 143 : G FPGA . This value is a value based on the hardware specifications of the FPGA 143 is based.
  3. (3) Number of gates of the FPGA 143 to be used to process each command (number of gates used): G n (n = 1, 2, ..., N 1 )
  4. (4) Time taken by using the FPGA 143 can be obtained for each command (reducible time): T n (n = 1, 2, ..., N 1 ). This is referred to here as the difference between the time it took the MPU to process an instruction 142 and the time for the FPGA to process the same command 143 specified. The reducible time is an example of the processing time for each instruction by the programmable logic device of the present disclosure. Similarly, the above mentioned ( 2 ), ( 3 ) and ( 4th ) Examples of definition information of the programmable logic device of the present disclosure.

Wie in 6 dargestellt, wird die Anzahl der Aufrufe der entsprechenden Befehle des N1-Typs (Anzahl der Aufrufe) Cn (n = 1, 2, ..., N1) in dem Benutzerprogramm 111 gezählt (Schritt S21).As in 6th shown, the number of calls of the corresponding instructions of the N 1 type (number of calls) C n (n = 1, 2, ..., N 1 ) in the user program 111 counted (step S21 ).

Für jeden Befehl wird eine Verarbeitungszeit pro einzelnem Gate des FPGA 143 erhalten (Schritt S22).
Hierbei wird die folgende mathematische Gleichung (1) verwendet. Verarbeitungszeit pro Gate P n  f u ¨ r jede Befehl = reduzierbare Zeit T n × in Schritt S21 erhalterne Anzahl der Aufrufe C n ÷ Anzahl der benutzen Gates G n ( n = 1,2, , N 1 )

Figure DE112018007018T5_0001
For each command there is a processing time per individual gate of the FPGA 143 received (step S22 ).
Here, the following mathematical equation (1) is used. Processing time per gate P n f u ¨ r any command = reducible time T n × in step S21 number of calls received C n ÷ Number of gates used G n ( n = 1.2, ... , N 1 )
Figure DE112018007018T5_0001

Die Befehle werden nach der Verarbeitungszeit pro Gate Pn für jeden in Schritt S22 erhaltenen Befehl sortiert (Schritt S23). Die Sortierung wird hier in absteigender Reihenfolge vorgenommen.The commands are according to the processing time per gate P n for each in step S22 command received (step S23 ). The sorting is done here in descending order.

Beginnend mit dem Befehl mit der längsten Verarbeitungszeit pro Gate Pn, wird die Anzahl der benutzten Gates Gn für den Befehl nacheinander aufaddiert. Das Aufaddieren wird fortgesetzt solange die Summe der Anzahl der benutzten Gates Gn die Gesamtanzahl der Gates GFPGA des FPGA 143 nicht übersteigt.Starting with the instruction with the longest processing time per gate P n , the number of gates G n used for the instruction is added up one after the other. The addition is continued as long as the sum of the number of gates Gn used is the total number of gates G FPGA of the FPGA 143 does not exceed.

Der Zähler i wird insbesondere auf „1“ gesetzt, und die Anzahl der benutzten Gates Gn des in Schritt S23 sortierten i-ten Befehls wird auf den Summenwert s als aktuelles Gi gesetzt (Schritt S24).The counter i is set to " 1 “Is set, and the number of gates G n used in step S23 The sorted i-th command is set to the sum value s as the current G i (step S24 ).

Dann wird eine Bestimmung dahingehend durchgeführt, ob der Summenwert s größer ist als die Gesamtanzahl der Gates GFPGA oder nicht (Schritt S25). Wenn eine Bestimmung dahingehend gemacht wird, dass der Summenwert s kleiner gleich der Gesamtanzahl der Gates GFPGA ist (Nein in Schritt S25), dann wird das FPGA 143 in der Rechenvorrichtungsinformation des i-ten Befehls gesetzt (Schritt S26). Der Zähler i wird inkrementiert, und der durch Aufaddieren des momentanen Summenwerts s und der Anzahl der verwendeten Gates Gi des i-ten Befehls erhaltene Wert wird als der neue Summenwert s gesetzt (Schritt S27). Dann kehrt die Verarbeitung zu Schritt S25 zurück.A determination is then made as to whether or not the sum value s is greater than the total number of gates G FPGA (step S25 ). When a determination is made to that the sum value s is less than or equal to the total number of gates G FPGA (no in step S25 ) then the FPGA 143 is set in the computing device information of the i-th instruction (step S26 ). The counter i is incremented, and the value obtained by adding up the current sum value s and the number of gates Gi of the i-th instruction used is set as the new sum value s (step S27 ). Then processing returns to step S25 back.

Wenn in Schritt S25 eine Bestimmung dahingehend durchgeführt wird, dass der Summenwert s größer als GFPGA ist (Ja in Schritt S25), wird die Verarbeitung beendet.If in step S25 a determination is made to the effect that the sum value s is greater than G FPGA (Yes in step S25 ), processing ends.

Mit der vorangehend beschriebenen Verarbeitung setzt die CPU 555 das FPGA 143 in der Rechenvorrichtungsinformation des ausgewählten Befehls als den durch das FPGA 143 auszuführenden Befehl. Die CPU 550 aktualisiert jedoch die Rechenvorrichtungsinformation der Befehle, die nicht als durch das FPGA 143 auszuführende Befehle ausgewählt sind, nicht. Auf diese Weise arbeitet die CPU 550 als ein Bestimmungsmodul, um Befehle, die durch das FPGA 143 zu verarbeiten sind, und Befehle, die nicht durch das FPGA 143 zu verarbeiten sind, zu bestimmen, und als ein Aktualisierungsmodul, dass die Rechenvorrichtungsinformation eines Befehls aktualisiert, der als ein durch das FPGA 143 auszuführender Befehl bestimmt wurde. Der Befehl, der als ein durch das FPGA 143 auszuführender Befehl ausgewählt ist, ist ein Beispiel eines ersten Befehls der vorliegenden Offenbarung. Der Befehl, der nicht durch das FPGA 143 auszuführen ist, ist ein Beispiel eines zweiten Befehls der vorliegenden Offenbarung.With the processing described above, the CPU sets 555 the FPGA 143 in the computing device information of the selected instruction as that by the FPGA 143 command to be executed. The CPU 550 however, updates the computing device information of the instructions that are not considered by the FPGA 143 commands to be executed are not selected. This is how the CPU works 550 as a destination module to take commands issued by the FPGA 143 are to be processed, and commands that are not processed by the FPGA 143 to be processed, to be determined, and as an update module, that updates the computing device information of an instruction that is declared as a by the FPGA 143 command to be executed has been determined. The command issued as a by the FPGA 143 command to be executed is selected is an example of a first command of the present disclosure. The command that is not sent by the FPGA 143 is to be executed is an example of a second instruction of the present disclosure.

Wenn die Verarbeitung in dem automatischen Auswahlmodus endet, betätigt der Benutzer das Befehlseingabemodul 520, wodurch die erneute Darstellung des in 5 gezeigten Untermenü-Bildschirms erreicht wird. Dann wählt der Benutzer auf dem Untermenü-Bildschirm „Programm hochladen“ aus, um das aktualisierte Programm 001 auf die CPU-Einheit 100 hochzuladen. Es wird angenommen, dass das technische Werkzeug 500 und die CPU-Einheit 100 zuvor durch das Kommunikationskabel 501 verbunden wurden. Wenn „Programm hochgeladen“ ausgewählt wird, überträgt die CPU 550 das „Programm 001“, das das in dem Speicher 510 gespeicherte Benutzerprogramm 111 ist, in den Speicher 110 der CPU-Einheit 100. Auf diese Weise arbeitet die CPU 550 als ein Übertragungsmodul, das das Benutzerprogramm 111 mit der aktualisierten Rechenvorrichtungsinformation die CPU-Einheit 100 überträgt.When the processing in the automatic selection mode ends, the user operates the command input module 520 , which means that the in 5 submenu screen shown is reached. The user then selects “Upload Program” on the submenu screen to upload the updated program 001 on the CPU unit 100 upload. It is believed that the technical tool 500 and the CPU unit 100 beforehand through the communication cable 501 were connected. If "Program Uploaded" is selected, the CPU will transfer 550 the "program 001" that is in the memory 510 saved user program 111 is in memory 110 the CPU unit 100 . This is how the CPU works 550 as a transmission module that the user program 111 with the updated computing device information, the CPU unit 100 transmits.

In dem vorangehend erwähnten automatischen Auswahlmodus wird eine Analyse durchgeführt, die auf der Anzahl der Aufrufe des gleichen ASIC-nicht-unterstützten Befehls, die die Anzahl der Male angibt, die der gleiche ASIC-nicht-unterstützte Befehl in dem Benutzerprogramm 111 aufgerufen wird, einer Verarbeitungszeit pro Aufruf für jeden Befehl und der Anzahl der zu verwendenden Gates basiert, und es werden dann Befehle ausgewählt, deren Verarbeitung durch das FPGA 143 ausgeführt werden soll, und zwar nacheinander, ausgehend von dem Befehl mit der längsten Verarbeitungszeit pro Gate. Das Zuordnen der Befehle mit den großen Verarbeitungslasten zu dem FPGA 143 ermöglicht es, die Geschwindigkeit des Betriebs der PLC 1 zu verbessern.In the above-mentioned automatic selection mode, an analysis is performed based on the number of calls to the same ASIC-unsupported command, which indicates the number of times that the same ASIC-unsupported command in the user program 111 is called based on a processing time per call for each command and the number of gates to be used, and commands are then selected to be processed by the FPGA 143 should be executed, one after the other, starting from the instruction with the longest processing time per gate. Assigning the instructions with the heavy workloads to the FPGA 143 allows the speed of operation of the PLC 1 to improve.

Obwohl das Benutzerprogramm 111 in dem vorangehend genannten automatischen Auswahlmodus analysiert wird und die durch das FPGA 143 auszuführenden Befehle ausgewählt werden, kann der Benutzer in dem nachfolgend beschriebenen manuellen Auswahlmodus 1 die Rechenvorrichtung für jeden Befehl auswählen.Although the user agent 111 is analyzed in the aforementioned automatic selection mode and which is analyzed by the FPGA 143 commands to be executed can be selected by the user in the manual selection mode described below 1 select the computing device for each instruction.

Manueller Auswahlmodus 1Manual selection mode 1

In einem Fall, in dem der manuelle Auswahlmodus 1 auszuführen ist, betätigt der Benutzer das Befehlseingabemodul 520, wodurch der Untermenü-Bildschirm der 5 dargestellt wird. In dem Untermenü-Bildschirm wählt der Benutzer ein Benutzerprogramm 111 frei als das Zielprogramm aus und gibt „Manueller Auswahlmodus 1“ an.In a case where the manual selection mode 1 is to be carried out, the user operates the command input module 520 which makes the submenu screen of the 5 is pictured. In the submenu screen, the user selects a user program 111 freely as the target program and gives "Manual selection mode 1 " at.

Wenn „Manueller Auswahlmodus 1“ ausgewählt ist, zeigt die CPU 550 des technischen Werkzeugs 500 auf der Anzeige 530 einen Auswahlbildschirm an, wie er in 7 gezeigt ist. Auf diesem Bildschirm wird eine Liste der ASIC-nicht-unterstützten Befehle in dem Benutzerprogramm 111 dargestellt. Hierbei werden die Liste der in dem Benutzerprogramm 111 aufgerufenen ASIC-nicht-unterstützten Befehle, die Anzahl der Aufrufe, die die Anzahl der Male angibt, die jeder Befehl in dem Benutzerprogramm 111 aufgerufen wird, die Ressourcenlast, die die Last angibt, die durch eine einmalige Ausführung jedes Befehls verursacht wird, und das aktuelle ausführende Organ für jeden Befehl dargestellt. Der Wert des ausführenden Organs gibt an, ob die MPU 142 oder das FPGA 143 die Rechenvorrichtung ist, die einen bestimmten Befehl ausführen soll. In einem Fall, in dem ein ausführendes Organ „S/W“ ist, bezeichnet dies, dass die MPU 142 den Befehl verarbeiten soll. In einem Fall, in dem ein ausführendes Organ „H/W“ ist, gibt dies an, dass das FPGA 143 den Befehl verarbeiten soll. In dem manuellen Auswahlmodus 1 werden sämtliche der ASIC-nicht-unterstützten Befehle durch eine spezifizierte Rechenvorrichtung verarbeitet, welche entweder die MPU 142 oder das FPGA 143 ist. Wenn beispielsweise das ausführende Organ des Befehls A von „S/W“ zu „H/W“ aktualisiert wird, verarbeitet das FPGA 143 sämtliche der aufgerufenen Befehle A in dem Benutzerprogramm 111.If “Manual selection mode 1 “Is selected, the CPU shows 550 of the technical tool 500 on the display 530 displays a selection screen as shown in 7th is shown. This screen displays a list of the ASIC unsupported commands in the user program 111 shown. This is the list of in the user program 111 ASIC unsupported commands called, the number of calls, indicating the number of times each command in the user agent 111 is called, the resource load, which indicates the load caused by executing each command once, and the current executing organ for each command. The value of the executive body indicates whether the MPU 142 or the FPGA 143 is the computing device executing a particular instruction should. In a case where an executive body is “S / W”, this means that the MPU 142 process the command. In a case where an executive body is “H / W”, this indicates that the FPGA 143 process the command. In the manual selection mode 1 all of the ASIC unsupported commands are processed by a specified computing device, which is either the MPU 142 or the FPGA 143 is. For example, if the executing organ of command A is updated from “S / W” to “H / W”, the FPGA processes 143 all of the called commands A in the user program 111 .

Der Benutzer ändert den Wert des ausführenden Organs des ausgewählten Befehls und wählt dann „Sichern“ aus, was im unteren Bereich des Bildschirms angeordnet ist, um die Änderungsdetails zu sichern. Die CPU 550 verwendet deshalb den Wert des ausgewählten Ausführungsorgans, um die Rechenvorrichtungsinformation für jeden der Befehle in dem Benutzerprogramm 111 zu aktualisieren. Ändert der Benutzer beispielsweise das ausführende Organ des Befehls A von Anführungszeichen „S/W“ in „H/W“, so kann er dann „Sichern“ auswählen. In diesem Fall wird die Rechenvorrichtungsinformation für alle in dem Benutzerprogramm 111 aufgerufenen Befehle A auf einen Wert aktualisiert, der das FPGA 143 angibt.The user changes the value of the executive organ of the selected command and then selects "Save" which is located at the bottom of the screen to save the change details. The CPU 550 therefore uses the selected executor's value to compute the computing device information for each of the instructions in the user program 111 to update. For example, if the user changes the executing organ of command A from quotation marks “S / W” to “H / W”, he can then select “Save”. In this case, the computing device information for everyone becomes in the user program 111 called command A is updated to a value that the FPGA 143 indicates.

Wenn die Verarbeitung in dem manuellen Auswahlmodus 1 endet, wählt der Benutzer, ähnlich wie bei dem automatischen Auswahlmodus, „Programm hochladen“ auf dem in 5 gezeigten Untermenü-Bildschirm, um das Benutzerprogramm 111 mit der geänderten Rechenvorrichtungsinformation zu der CPU-Einheit 100 hochzuladen.When processing in manual selection mode 1 ends, the user selects, similar to the automatic selection mode, "Upload program" on the in 5 shown submenu screen to the user program 111 with the changed computing device information to the CPU unit 100 upload.

Auch werden auf dem in 7 gezeigten Bildschirm die Anzahl der Aufrufe und die Ressourcenlast jedes Befehls gemeinsam dargestellt. Deshalb kann der Benutzer auswählen, ob die MPU 142 oder das FPGA 143 die Rechenvorrichtung ist, um die Verarbeitung eines bestimmten Befehls durchzuführen, nachdem er die Anzahl der Aufrufe und die Ressourcenlast für jeden Befehl in Betracht gezogen hat.The in 7th The screen shown shows the number of calls and the resource load of each command together. Therefore, the user can choose whether the MPU 142 or the FPGA 143 the computing device is to perform the processing of a particular instruction after considering the number of calls and the resource load for each instruction.

Da jeder der Befehle des Benutzerprogramms 111 nur ausgeführt wird, wenn er AN ist, werden nicht sämtliche der in dem Benutzerprogramm 111 aufgerufenen Befehle A immer innerhalb eines einzigen Zyklus ausgeführt. Aufgrund dieser Umstände können geeignetere Auswahlen getroffen werden, wenn ein Benutzer, der die Umgebungsbedingungen versteht, die Person ist, die auswählt, ob die MPU 142 oder das FPGA 143 die Rechenvorrichtung ist, um jeden Befehl auszuführen.As each of the user agent commands 111 only executes when it is ON, not all of the in the user agent will be executed 111 commands called A are always executed within a single cycle. Because of these circumstances, more appropriate choices can be made when a user who understands the environmental conditions is the person who selects whether the MPU 142 or the FPGA 143 the computing device is to execute each instruction.

In dem vorangehend erläuterten manuellen Auswahlmodus 1 werden sämtliche ASIC-nicht-unterstützte Befehle durch eine angegebene Rechenvorrichtung ausgeführt, welche entweder die MPU 142 oder das FPGA 143 ist. Solange die Auswahldetails nicht geändert werden, wird ein Befehl, selbst dann wenn er immer wieder aufgerufen wird, durch die Rechenvorrichtung, MPU 142 oder FPGA 143, ausgeführt, die ausgewählt ist. In dem nachfolgend beschriebenen manuellen Auswahlmodus 2 wird eine Konfiguration bereitgestellt, die eine genauere Auswahl ermöglicht.In the manual selection mode explained above 1 all ASIC-unsupported commands are executed by a specified computing device, which is either the MPU 142 or the FPGA 143 is. As long as the selection details are not changed, an instruction, even if it is called over and over again, is processed by the computing device, MPU 142 or FPGA 143 , run that is selected. In the manual selection mode described below 2 a configuration is provided that allows a more precise selection.

Manueller Auswahlmodus 2 Manual selection mode 2

Nachfolgend wird der manuelle Auswahlmodus 2 beschrieben. Der Benutzer betätigt das Befehlseingabemodul 520, wodurch der Untermenü-Bildschirm der 5 dargestellt wird. Aus dem Untermenü-Bildschirm wählt der Benutzer „Programm 001“ als das Ziel-Benutzerprogramm aus, und er wählt „Manueller Auswahlmodus 2“ als den Auswahlmodus aus.The manual selection mode is shown below 2 described. The user operates the command input module 520 which makes the submenu screen of the 5 is pictured. From the submenu screen, the user selects “Program 001” as the target user program, and selects “Manual Selection Mode 2 “As the selection mode.

Wenn „Manueller Auswahlmodus 2“ ausgewählt ist, zeigt die CPU 550 des technischen Werkzeugs 500 auf der Anzeige 530 ein Leiter-Logikdiagramm des vom Benutzer ausgewählten Programms 001 und das ausführende Organ für jeden Befehl an, wie in 8 gezeigt. Der Wert des ausführenden Organs gibt an, ob die Rechenvorrichtung zur Ausführung eines bestimmten Befehls die MPU 142 oder das FPGA 143 ist, wie dies auch in dem manuellen Auswahlmodus 1 der Fall war. In dem dargestellten Beispiel wird die Rechenvorrichtung für jeden Befehl des Benutzerprogramms 111 einzeln ausgewählt. In dem vorangehend erläuterten manuellen Auswahlmodus 1 werden sämtliche Befehle des gleichen ASIC-nicht-unterstützten Befehls so eingestellt, dass eine Rechenvorrichtung, die entweder die MPU 142 oder das FPGA 143 ist, die Verarbeitung ausführt. Im Gegensatz hierzu wird in dem manuellen Auswahlmodus 2 selbst dann, wenn der gleiche ASIC-nicht-unterstützte-Befehl mehrere Male in dem Benutzerprogramm 111 aufgerufen wird, eine Rechenvorrichtung für den jeweiligen ASIC-nicht-unterstützten Befehl einzeln ausgewählt. Selbst wenn beispielsweise der Befehl A mehrere Male aufzurufen ist, kann die MPU 142 angegeben werden, um den ersten Befehl A auszuführen, und das FPGA 143 kann angegeben werden, um den nächsten Befehl A auszuführen.If “Manual selection mode 2 “Is selected, the CPU shows 550 of the technical tool 500 on the display 530 a ladder logic diagram of the user selected program 001 and the executive body for each command, as in 8th shown. The value of the executing organ indicates whether the computing device is using the MPU to execute a specific command 142 or the FPGA 143 is like this also in the manual selection mode 1 was the case. In the example shown, the computing device is used for each command of the user program 111 individually selected. In the manual selection mode explained above 1 all commands of the same ASIC-unsupported command are set so that a computing device that is either the MPU 142 or the FPGA 143 is performing processing. In contrast, in the manual selection mode 2 even if the same ASIC unsupported command multiple times in the user program 111 is called, a computing device is selected individually for the respective ASIC-unsupported command. For example, even if instruction A is to be called multiple times, the MPU 142 must be specified to execute the first command A, and the FPGA 143 can be specified to execute the next command A.

Der Benutzer ändert den Wert des ausführenden Organs, um den ausgewählten Befehl auszuführen, und er wählt dann „Sichern“ aus, dass im unteren Bereich des Bildschirms angeordnet ist, um die Änderungsdetails zu sichern. Die CPU 550 verwendet deshalb den Wert des ausgewählten ausführenden Organs, um die Rechenvorrichtungsinformation auf einer individuellen Basis für die jeweiligen Befehle in dem Benutzerprogramm 111 zu aktualisieren.The user changes the value of the executing organ to execute the selected command and then selects “Save” located at the bottom of the screen to save the Save change details. The CPU 550 therefore uses the selected executive organ's value to compute the computing device information on an individual basis for the respective commands in the user program 111 to update.

Wenn die Verarbeitung in dem manuellen Auswahlmodus 2 endet, wählt der Benutzer, ähnlich wie in dem automatischen Auswahlmodus 1, „Programm hochladen“ auf dem in 5 gezeigten Untermenü-Bildschirm, um das Benutzerprogramm 111 mit der geänderten Rechenvorrichtungsinformation auf die CPU Einheit 100 hochzuladen.When processing in manual selection mode 2 ends, the user selects, similar to the automatic selection mode 1 , "Upload program" on the in 5 shown submenu screen to the user program 111 with the changed computing device information on the CPU unit 100 upload.

Der manuelle Auswahlmodus 2 stellt, ähnlich wie der manuelle Auswahlmodus 1, folgende Vorteile bereit. Da jeder der Befehle des Benutzerprogramms 111 nur ausgeführt wird, wenn er AN ist, werden alle der in dem Benutzerprogramm 111 enthaltenen Befehle nicht innerhalb eines einzigen Zyklus ausgeführt. Aufgrund dieser Umstände kann ein Benutzer, der die Umgebungsbedingungen versteht, auswählen, ob die MPU 142 oder das FPGA 143 die Rechenvorrichtung ist, um die Verarbeitung jedes Befehls durchzuführen, weshalb sogar noch besser geeignete Auswahlen durchgeführt werden können.The manual selection mode 2 similar to manual selection mode 1 , the following advantages ready. As each of the user agent commands 111 only runs when it is ON will all of the in the user agent 111 contained commands are not executed within a single cycle. Based on these circumstances, a user who understands the environmental conditions can select whether the MPU 142 or the FPGA 143 the computing device is to perform the processing of each instruction and therefore even more appropriate selections can be made.

Wie vorangehend beschrieben, werden mit der PLC 1 gemäß der Ausführungsform der vorliegenden Offenbarung Informationen, die die MPU 142 oder das FPGA 143 angegeben, in der Rechenvorrichtungsinformation gesetzt, die in dem ASIC-nicht-unterstützten Befehl enthalten ist. Wenn das Programm ausgeführt wird, führt die Rechenvorrichtung, die durch die Rechenvorrichtungsinformation angegeben ist, den Befehl aus. Ferner kann das technische Werkzeug 500 verwendet werden, um die Rechenvorrichtungsinformation zu ändern. Diese Art der Bereitstellung einer Konfiguration ermöglicht es dem Benutzer, eine Rechenvorrichtung nach der Erstellung des Programms auszuwählen, ohne dass der Benutzer sich während der Erstellung des Programms bewusst sein muss, welche Rechenvorrichtungen die Verarbeitung ausführen. Ferner können die Rechenvorrichtungen geändert werden, ohne dass drastische Korrekturen an dem Programm durchgeführt werden müssen.As described above, the PLC 1 according to the embodiment of the present disclosure, information that the MPU 142 or the FPGA 143 is set in the computing device information contained in the ASIC unsupported instruction. When the program is executed, the computing device indicated by the computing device information executes the instruction. Furthermore, the technical tool 500 can be used to change the computing device information. This way of providing a configuration enables the user to select a computing device after creating the program without the user having to be aware of which computing devices are executing the processing while creating the program. Furthermore, the computing devices can be changed without making drastic corrections to the program.

Bei der obigen Konfiguration gemäß der Ausführungsform können die folgenden vorteilhaften Wirkungen erwartet werden.With the above configuration according to the embodiment, the following advantageous effects can be expected.

In dem automatischen Auswahlmodus ermöglicht es die Durchführung der Analyse basierend auf der Anzahl der Aufrufe innerhalb des Benutzerprogramms 111 des gleichen ASIC-nicht-unterstützten Befehls, die Verarbeitungszeit pro Aufruf für jeden Befehl und die Anzahl der zur Ausführung jedes Befehls zu verwendenden Gates und das Zuordnen der Befehle mit großen Verarbeitungslasten zu dem FPGA 143, die Geschwindigkeit des Betriebs der PLC 1 zu verbessern. Da der Benutzer geeignete Rechenvorrichtungen auswählt, ohne Einstellungen vornehmen zu müssen, kann auch ein Benutzer, der ein Verständnis der Hardware nicht hat, die Bearbeitung leicht ausführen.In the automatic selection mode it enables the analysis to be performed based on the number of calls within the user agent 111 of the same ASIC unsupported instruction, the processing time per call for each instruction and the number of gates to be used to execute each instruction, and the allocation of instructions with heavy processing loads to the FPGA 143 , the speed of operation of the PLC 1 to improve. Since the user selects appropriate computing devices without making settings, even a user who does not have an understanding of the hardware can easily perform the processing.

In einem Fall, in dem an dem Benutzerprogramm 111 eine Korrektur vorgenommen wird, ist die Bedienung einfach, da es ausreichend ist, die Verarbeitung für die Rechenvorrichtungsauswahl in dem automatischen Auswahlmodus erneut auszuführen und das Programm 111, das die aktualisierte Rechenvorrichtungsinformation enthält, auf die CPU-Einheit 100 hochzuladen. Auch wenn eine Änderung an den Spezifikationen des FPGA 143 gemacht wird, ohne das Benutzerprogramm 111 zu ändern, und das bereits erzeugte Benutzerprogramm 111 durch eine andere CPU-Einheit 100 mit anderen Spezifikationen ausgeführt werden soll, ist es ausreichend, die Verarbeitung zur Rechenvorrichtungsauswahl in dem automatischen Auswahlmodus mit den vorangehend beschriebenen Arten von Parametern (1) bis (4) erneut auszuführen, die in dem Speicher 510 des technischen Werkzeugs 500 gespeichert sind. Geeignete Rechenvorrichtungen können ausgewählt werden, indem auf diese Weise vorgegangen wird.In a case where the user agent 111 When a correction is made, the operation is easy because it suffices to re-execute the processing for the calculating device selection in the automatic selection mode and the program 111 containing the updated computing device information to the CPU unit 100 upload. Even if there is a change to the specifications of the FPGA 143 is done without the user agent 111 and the user agent that has already been created 111 by another CPU unit 100 is to be carried out with other specifications, it is sufficient to carry out the processing for calculating device selection in the automatic selection mode with the types of parameters described above ( 1 ) to ( 4th ) re-run those in memory 510 of the technical tool 500 are stored. Appropriate computing devices can be selected by proceeding in this manner.

Da in dem automatischen Auswahlmodus die Benutzerprogramme 111 basierend auf den Spezifikationen des FPGA 143 analysiert werden, kann eine geeignete Auswahl der Rechenvorrichtungen getroffen werden, die zu der Ausführungsumgebung passen.Since in the automatic selection mode the user programs 111 based on the specifications of the FPGA 143 are analyzed, a suitable selection of the computing devices can be made that match the execution environment.

Da ferner die Analyseverarbeitung in dem technischen Werkzeug 500 durchgeführt wird, beeinträchtigt dies nicht die Leistungsfähigkeit der PLC 1 während der Ausführung.Furthermore, as the analysis processing in the technical tool 500 is carried out, this does not affect the performance of the PLC 1 during execution.

In den manuellen Auswahlmodi 1 und 2 ermöglicht es die Auswahl einer Rechenvorrichtung zur Verarbeitung eines Befehls durch einen Benutzer, der die Bedingungen vor Ort versteht, geeignetere Auswahlen als in dem automatischen Auswahlmodus zu treffen. In den manuellen Auswahlmodi 1 und 2 ist es nicht notwendig, während der Erstellung des Benutzerprogramms 111 die Rechenvorrichtungen zu kennen, da die Rechenvorrichtung nach der Erstellung des Benutzerprogramms 111 geändert werden kann. Selbst wenn das Benutzerprogramm 111 geändert wird oder das Benutzerprogramm 111 korrigiert wird, ist es entsprechend ausreichend, die Auswahl der Rechenvorrichtungen erneut durchzuführen. Es ist somit nicht nötig, die Rechenvorrichtungen zu kennen, selbst wenn das Benutzerprogramm 111 geändert wird. Da die Rechenvorrichtungsinformation einfach geändert werden kann, indem das technische Werkzeug 500 verwendet wird, kann selbst in einem Fall, in dem ein bereits erstelltes Benutzerprogramm 111 durch eine andere CPU-Einheit 100 mit verschiedenen Spezifikationen auszuführen ist, die Auswahl der Rechenvorrichtung mehrere Male wiederholt werden, bis die geeignetste Rechenvorrichtung ausgewählt ist.In the manual selection modes 1 and 2 enables the selection of a computing device for processing an instruction by a user who understands the local conditions to make more appropriate selections than in the automatic selection mode. In the manual selection modes 1 and 2 it is not necessary during the creation of the user program 111 to know the computing devices since the Computing device after the creation of the user program 111 can be changed. Even if the user agent 111 is changed or the user agent 111 is corrected, it is accordingly sufficient to carry out the selection of the computing devices again. It is therefore not necessary to know the computing devices, even if the user program 111 will be changed. Since the computing device information can be easily changed by the engineering tool 500 can be used even in a case where a user agent already created 111 by another CPU unit 100 is to be carried out with different specifications, the selection of the computing device is repeated several times until the most suitable computing device is selected.

Auch kann die Performance der PLC 1 durch Verwenden des manuellen Auswahlmodus 1 evaluiert werden. Beispielsweise kann für einen einzelnen Befehl eine Differenz der Verarbeitungszeiten erhalten werden, indem die Verarbeitungszeit in dem Fall gemessen wird, in dem die Verarbeitung durch die MPU 142 durchgeführt wird, und indem die Verarbeitungszeit in dem Fall gemessen wird, in dem die Verarbeitung durch das FPGA 143 durchgeführt wird. Statistische Daten der tatsächlichen Verarbeitungszeit der Rechenvorrichtungen werden für jeden Befehl vorab erzeugt. Die Rechenvorrichtung kann in dem manuellen Auswahlmodus 1 Befehl für Befehl ausgewählt werden, oder sie kann in dem manuellen Auswahlmodus 2 basierend auf diesen statistischen Daten ausgewählt werden. Auch kann bei den manuellen Auswahlmodi erreicht werden, dass ein Befehl an einer bestimmten Stelle durch eine Rechenvorrichtung ausgeführt wird, die verschieden ist von anderen Befehlen in dem Benutzerprogramm 111 der MPU 142 oder des FPGA 143. Durch diese Vorgehensweise ist es möglich, die Modi zu verwenden, um einen Fehler in dem Benutzerprogramm 111 aufzuspüren.The performance of the PLC 1 by using the manual selection mode 1 be evaluated. For example, for a single instruction, a difference in processing times can be obtained by measuring the processing time in the case where the processing by the MPU 142 is performed and by measuring the processing time in the case where the processing by the FPGA 143 is carried out. Statistical data of the actual processing time of the computing devices are generated in advance for each instruction. The computing device can be in the manual selection mode 1 Can be selected command by command, or it can be selected in manual selection mode 2 can be selected based on these statistical data. In the manual selection modes, it can also be achieved that a command is executed at a specific point by a computing device that is different from other commands in the user program 111 the MPU 142 or the FPGA 143 . By doing this it is possible to use the modes to avoid an error in the user program 111 track down.

Das Leiter-Logikdiagramm, wie es in 9 dargestellt ist, kann auch auf dem Auswahlbildschirm des manuellen Auswahlmodus 1 dargestellt werden. Der Benutzer kann bestätigen, wo der Befehl innerhalb des Benutzerprogramms 111 aufgerufen wird, und der Benutzer kann deshalb eine Rechenvorrichtung auswählen, wobei er diesen Aspekt beachtet.The ladder logic diagram as shown in 9 can also be displayed on the selection screen of the manual selection mode 1 being represented. The user can confirm where the command is within the user agent 111 is called, and the user can therefore select a computing device taking this aspect into account.

Auf dem Auswahlbildschirm des manuellen Auswahlmodus 2 ist die Anzeige nicht auf ein Leiter-Logikdiagramm wie das in 8 beschränkt. Wie in 10 gezeigt, kann die Liste der Befehle, die Anzahl der Aufrufe, die Ressourcenlast bei Ausführung eines bestimmten Befehls zusammen mit dem Leiter-Logikdiagramm dargestellt werden.On the manual selection mode selection screen 2 the display is not on a ladder logic diagram like the one in 8th limited. As in 10 shown, the list of commands, the number of calls, the resource load when executing a particular command can be displayed together with the ladder logic diagram.

In dem vorangehend erläuterten automatischen Auswahlmodus wird die Zeit, die durch die Verwendung des FPGA 143 eingespart werden kann, als ein Beispiel der Verarbeitungszeit jedes Befehls durch die programmierbare Logikvorrichtung verwendet. Als eine weitere Alternative kann der tatsächliche Messwert der Verarbeitungszeit für jeden Befehl durch die programmierbare Logikvorrichtung verwendet werden. Als noch eine weitere Alternative kann ein theoretisch erwarteter Wert als die Verarbeitungszeit für jeden Befehl durch die programmierbare Logikvorrichtung verwendet werden.In the automatic selection mode explained above, the time taken by the use of the FPGA 143 can be saved, as an example of the processing time of each instruction used by the programmable logic device. As a further alternative, the actual measurement of the processing time for each instruction can be used by the programmable logic device. As yet another alternative, a theoretically expected value can be used as the processing time for each instruction by the programmable logic device.

Obwohl in der vorangegangenen Beschreibung Befehle dem FPGA 143 der Reihe nach ausgehend von dem Befehl mit der längsten Verarbeitungszeit pro Gate zugeordnet werden, ist das Verfahren zur Rechenvorrichtungsauswahl in dem automatischen Auswahlmodus nicht hierauf beschränkt. Beispielsweise können Befehle dem FPGA 143 der Reihe nach ausgehend von dem Befehl mit dem größten Wert zugeordnet werden, der durch Multiplizieren von (i) der Verarbeitungszeit für jeden Befehl durch die programmierbare Logikvorrichtung mit (ii) der Anzahl der Aufrufe jedes Befehls innerhalb des Benutzerprogramms 111. Als eine weitere Alternative können Befehle dem FPGA 143 der Reihe nach ausgehend von dem Befehl zugeordnet werden, der den größten Wert aufweist, der durch Multiplizieren der Anzahl der für jeden Befehl zu verwendenden Gates, der Verarbeitungszeit für jeden Befehl durch die programmierbare Logikvorrichtung und die Anzahl der Aufrufe jedes Befehls innerhalb des Benutzerprogramms 111 erhalten wird. Als noch eine weitere Alternative können Befehle dem FPGA 143 einfach der Reihe nach ausgehend von dem Befehl mit der größten Anzahl von Aufrufen oder der Reihe nach ausgehend von dem Befehl mit der längsten Verarbeitungszeit jedes Befehls durch die programmierbare Logikvorrichtung in dem Benutzerprogramm 111.Although in the previous description commands the FPGA 143 are sequentially assigned based on the instruction with the longest processing time per gate, the method of computing device selection in the automatic selection mode is not limited to this. For example, commands can be sent to the FPGA 143 sequentially based on the instruction with the greatest value, obtained by multiplying (i) the processing time for each instruction by the programmable logic device by (ii) the number of times each instruction was called within the user program 111 . As a further alternative, commands can be sent to the FPGA 143 assigned in sequence from the instruction having the greatest value obtained by multiplying the number of gates to be used for each instruction, the processing time for each instruction by the programmable logic device, and the number of times each instruction is called within the user program 111 is obtained. As yet another alternative, commands can be sent to the FPGA 143 simply sequentially starting from the command with the greatest number of calls or sequentially starting from the command with the longest processing time of each command by the programmable logic device in the user program 111 .

Das Aufzeichnungsmedium, auf dem das Programm aufgezeichnet wird, kann beispielsweise ein computerlesbares Aufzeichnungsmedium, wie etwa ein USB-Speicher, eine flexible Platte, eine CD, eine DVD, eine Blue-Ray (registrierte Handelsmarke), eine MO, eine SD-Karte und ein Memory-Stick (registrierte Handelsmarke) sein, wie auch eine magnetische Platte, eine optische Platte, eine magneto-optische Platte, ein Halbleiterspeicher und ein Magnetband.The recording medium on which the program is recorded can be, for example, a computer readable recording medium such as a USB memory, a flexible disk, a CD, a DVD, a Blue-Ray (registered trademark), an MO, an SD card, and a memory stick (registered trademark), as well as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory and a magnetic tape.

Die vorangegangene Beschreibung erläutert einige beispielhafte Ausführungsformen zu Erläuterungszwecken. Obwohl vorangehend spezielle Ausführungsformen dargestellt wurden, wird der Fachmann erkennen, dass Änderungen in der Gestalt und im Detail durchgeführt werden können, ohne von der breiteren Idee und Tragweite der Erfindung abzuweichen. Entsprechend sind die Beschreibung und die Zeichnungen erläuternd und nicht im einschränkenden Sinne zu verstehen. Diese detaillierte Beschreibung sollte deshalb nicht im einschränkenden Sinne verstanden werden, und der Schutzbereich der Erfindung ist nur durch die beigefügten Ansprüche sowie deren Äquivalenten begrenzt.The foregoing description illustrates some exemplary embodiments for purposes of explanation. Although specific embodiments have been shown above, those skilled in the art will recognize that changes in shape and detail can be made without departing from the broader spirit and scope of the invention. Accordingly, the description and the drawings are to be understood as explanatory and not in a restrictive sense. This detailed description should therefore not be taken in a limiting sense, and the scope of the invention is limited only by the appended claims and their equivalents.

BezugszeichenlisteList of reference symbols

11
PLCPLC
100100
CPU-EinheitCPU unit
110110
SpeicherStorage
111111
BenutzerprogrammUser program
120120
WerkzeugschnittstelleTool interface
130130
Schnittstelle für geteilten BusShared bus interface
140140
RecheneinheitArithmetic unit
141141
ASICASIC
14111411
Registerregister
14121412
ProgrammzählerProgram counter
142142
MPUMPU
14211421
Registerregister
143143
FPGAFPGA
14311431
Registerregister
190190
Busbus
200200
EingabeeinheitInput unit
210210
SpeicherStorage
211211
BetriebsprogrammOperating program
220220
geteilter Speichershared storage
230230
Schnittstelle für geteilten BusShared bus interface
240240
MPUMPU
290290
Busbus
300300
AusgabeeinheitOutput unit
310310
SpeicherStorage
311311
BetriebsprogrammOperating program
320320
geteilter Speichershared storage
330330
Schnittstelle für den geteilten BusInterface for the shared bus
340340
MPUMPU
390390
Busbus
400400
geteilter Busshared bus
500500
technisches Werkzeugtechnical tool
501501
KommunikationskabelCommunication cable
510510
SpeicherStorage
511511
Betriebssystemoperating system
512512
ProgrammerzeugungsanwendungProgram generation application
520520
BefehlseingabemodulCommand input module
530530
Anzeigedisplay
540540
WerkzeugschnittstelleTool interface
550550
CPUCPU
590590
Busbus
901901
DetektionsvorrichtungDetection device
902902
SteuerungszielvorrichtungControl aiming device

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE 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 listed 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 2009251782 [0005]JP 2009251782 [0005]

Claims (17)

CPU-Einheit, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, wobei die CPU-Einheit umfasst: einen Mikroprozessor als eine Rechenvorrichtung, und eine programmierbare Logikvorrichtung als eine Rechenvorrichtung, wobei ein Befehl in einem Benutzerprogramm Rechenvorrichtungsinformation enthält, die eine durch einen Benutzer ausgewählte Rechenvorrichtung zum Verarbeiten des Befehls angibt, wobei der Mikroprozessor den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation den Mikroprozessor angibt, wobei die programmierbare Logikvorrichtung den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation die programmierbare Logikvorrichtung angibt, und wobei, wenn sich die Rechenvorrichtungsinformation ändert, der Mikroprozessor oder die programmierbare Logikvorrichtung den Befehl basierend auf der geänderten Rechenvorrichtungsinformation verarbeitet.A CPU unit configured to be integrated in a programmable logic controller, the CPU unit comprising: a microprocessor as a computing device, and a programmable logic device as a computing device, wherein a command in a user program contains computing device information indicating a computing device selected by a user for processing the command, wherein the microprocessor processes the instruction when the computing device information indicates the microprocessor, wherein the programmable logic device processes the command when the computing device information indicates the programmable logic device, and wherein if the computing device information changes, the microprocessor or programmable logic device processes the command based on the changed computing device information. CPU-Einheit, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, nach Anspruch 1, ferner umfassend ein ASIC als eine Rechenvorrichtung, wobei der Befehl einen spezifischen Befehl, der durch das ASIC ausführbar ist, und einen ASIC-nicht-unterstützten Befehl umfasst, der von dem spezifischen Befehl verschieden ist, wobei das ASIC den spezifischen Befehl verarbeitet, wobei die Rechenvorrichtungsinformation, die in dem ASIC-nicht-unterstützten Befehl enthalten ist, eine Rechenvorrichtung zum Verarbeiten des ASIC-nicht-unterstützten Befehls aus dem Mikroprozessor und der programmierbaren Logiksteuerung angibt, wobei der Mikroprozessor den ASIC-nicht-unterstützten Befehl verarbeitet, wenn die Rechenvorrichtungsinformation den Mikroprozessor angibt, wobei die programmierbare Logikvorrichtung den ASIC-nicht-unterstützten Befehl verarbeitet, wenn die Rechenvorrichtungsinformation die programmierbare Logiksteuerung angibt, und wobei, wenn sich die Rechenvorrichtungsinformation ändert, der Mikroprozessor oder die programmierbare Logikvorrichtung den ASIC-nicht-unterstützten Befehl basierend auf der geänderten Rechenvorrichtungsinformation verarbeitet.CPU unit configured to be integrated in a programmable logic controller according to Claim 1 , further comprising an ASIC as a computing device, wherein the command comprises a specific command executable by the ASIC and an ASIC-unsupported command that is different from the specific command, the ASIC processing the specific command, wherein the computing device information included in the ASIC-unsupported instruction indicates a computing device for processing the ASIC-unsupported instruction from the microprocessor and the programmable logic controller, the microprocessor processing the ASIC-unsupported instruction when the computing device information indicates the microprocessor, wherein the programmable logic device processes the ASIC-unsupported instruction if the computing device information indicates the programmable logic control, and wherein if the computing device information changes, the microprocessor or programmable logic device processes the ASIC-unsupported Command processed based on the changed computing device information. CPU-Einheit, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, nach Anspruch 2, wobei der spezifische Befehl, der durch das ASIC zu verarbeiten ist, Rechenvorrichtungsinformation umfasst, die eine Rechenvorrichtung zum Verarbeiten des spezifischen Befehls angibt.CPU unit configured to be integrated in a programmable logic controller according to Claim 2 wherein the specific command to be processed by the ASIC includes computing device information indicating a computing device for processing the specific command. Programmierbare Logiksteuerung, umfassend: CPU-Einheit; eine Eingabeeinheit zum Bereitstellen von Ausgabedaten einer Detektionsvorrichtung an die CPU-Einheit; und eine Ausgabeeinheit zum Empfangen von Steuerungsdaten von der CPU-Einheit, um eine Steuerungszielvorrichtung zu steuern, wobei die CPU-Einheit einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei ein Befehl in einem Benutzerprogramm Rechenvorrichtungsinformation enthält, die eine durch einen Benutzer ausgewählte Rechenvorrichtung zum Verarbeiten des Befehls angibt, wobei der Mikroprozessor den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation den Mikroprozessor angibt, wobei die programmierbare Logikvorrichtung den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation die programmierbare Logikvorrichtung angibt, und wobei, wenn sich die Rechenvorrichtungsinformation ändert, der Mikroprozessor oder die programmierbare Logikvorrichtung den Befehl basierend auf der geänderten Rechenvorrichtungsinformation verarbeitet.A programmable logic controller comprising: CPU unit; an input unit for providing output data of a detection device to the CPU unit; and an output unit for receiving control data from the CPU unit to control a control target device, the CPU unit including a microprocessor and a programmable logic device as computing devices, wherein an instruction in a user program includes computing device information indicating a computing device selected by a user for processing the command, the microprocessor processing the command when the computing device information indicates the microprocessor, the programmable logic device processing the command when the computing device information indicates the programmable logic device, and wherein if the computing device information changes, the microprocessor or programmable logic device processes the command based on the changed computing device information. Verfahren zum Ausführen eines Benutzerprogramms durch eine CPU-Einheit, die einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei das Verfahren umfasst: einen Schritt des Verarbeitens eines Befehls in dem Benutzerprogramm durch den Mikroprozessor oder die programmierbare Logikvorrichtung, wobei der Befehl Rechenvorrichtungsinformation enthält, die eine durch einen Benutzer ausgewählte Rechenvorrichtung zum Verarbeiten des Befehls angibt, wobei in dem Schritt der Mikroprozessor den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation den Mikroprozessor angibt, wobei in dem Schritt die programmierbare Logikvorrichtung den Befehl verarbeitet, wenn die Rechenvorrichtungsinformation die programmierbare Logikvorrichtung angibt, und wobei, wenn sich die Rechenvorrichtungsinformation ändert, der Mikroprozessor oder die programmierbare Logikvorrichtung den Befehl basierend auf der geänderten Rechenvorrichtungsinformation verarbeitet.A method of executing a user program by a CPU unit comprising a microprocessor and a programmable logic device as computing devices, the method comprising: a step of processing a command in the user program by the microprocessor or the programmable logic device, wherein the command includes computing device information indicating a user selected computing device for processing the command, wherein in the step the microprocessor processes the instruction if the computing device information indicates the microprocessor, wherein in the step the programmable logic device processes the command if the computing device information indicates the programmable logic device, and wherein if the computing device information changes, the microprocessor or programmable logic device processes the command based on the changed computing device information. Computer, der mit einer CPU-Einheit verbindbar ist, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, wobei die CPU-Einheit einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei der Computer umfasst: einen Speicher zum Speichern eines Benutzerprogramms und von Definitionsinformation der programmierbaren Logiksteuerung; ein Bestimmungsmodul zum Bestimmen eines ersten Befehls und eines zweiten Befehls aus Befehlen in dem Benutzerprogramm basierend auf dem Benutzerprogramm und der Definitionsinformation, wobei der erste Befehl ein Befehl ist, der durch die programmierbare Logikvorrichtung zu verarbeiten ist, und der zweite Befehl ein Befehl ist, der nicht durch die programmierbare Logikvorrichtung zu verarbeiten ist; ein Aktualisierungsmodul zum Aktualisieren von Rechenvorrichtungsinformation (i) eines Befehls, der als der erste Befehl bestimmt wurde, und (ii) die eine Rechenvorrichtung zur Verarbeitung des Befehls angibt, auf einen Wert, der die programmierbare Logikvorrichtung angibt; und ein Übertragungsmodul zum Übertragen des Benutzerprogramms mit der aktualisierten Rechenvorrichtungsinformation an den Speicher der CPU-Einheit.A computer connectable to a CPU unit configured to be integrated in a programmable logic controller, the CPU unit comprising a microprocessor and a programmable logic device as computing devices, the computer comprising: a memory for storing a user program and definition information of the programmable logic controller; a determination module for determining a first command and a second command from commands in the user program based on the user program and the definition information, the first command being a command to be processed by the programmable logic device, and the second instruction is an instruction not to be processed by the programmable logic device; an update module for updating Computing device information (i) an instruction determined to be the first instruction, and (ii) indicating a computing device to process the command to a value indicating the programmable logic device; and a transfer module for transferring the user program with the updated computing device information to the memory of the CPU unit. Computer nach Anspruch 6, wobei die Definitionsinformation der programmierbaren Logiksteuerung eine Anzahl von Gates der programmierbaren Logiksteuerung, die zur Verarbeitung jedes Befehls zu verwenden sind, und eine Gesamtzahl der Gates der programmierbaren Logiksteuerung umfasst, und wobei das Bestimmungsmodul den ersten Befehl und den zweiten Befehl basierend auf der jeweiligen Anzahl der Gates und der Gesamtzahl der Gates bestimmt.Computer after Claim 6 wherein the programmable logic controller definition information includes a number of programmable logic controller gates to be used to process each command and a total number of the programmable logic controller gates, and wherein the determination module includes the first command and the second command based on the respective number the gates and the total number of gates are determined. Computer nach Anspruch 7, wobei das Bestimmungsmodul ferner basierend auf einer Anzahl von Aufrufen jedes Befehls in dem Benutzerprogramm und einer Verarbeitungszeit jedes Befehls durch die programmierbare Logiksteuerung den durch die programmierbare Logiksteuerung zu verarbeitenden ersten Befehl und den nicht durch die programmierbare Logiksteuerung zu verarbeitenden zweiten Befehl bestimmt.Computer after Claim 7 wherein the determination module further determines, based on a number of times each command in the user program and a processing time of each command by the programmable logic controller, the first command to be processed by the programmable logic controller and the second command not to be processed by the programmable logic controller. Computer nach einem der Ansprüche 6 bis 8, wobei ein Vorgabewert der Rechenvorrichtungsinformation ein Wert ist, der den Mikroprozessor angibt.Computer for one of the Claims 6 to 8th , wherein a default value of the computing device information is a value indicating the microprocessor. Computer, der mit einer CPU-Einheit verbindbar ist, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, wobei die CPU-Einheit einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei der Computer umfasst: einen Speicher zum Speichern eines Benutzerprogramms; ein Empfangsmodul zum Empfangen einer Instruktion eines Benutzers, entweder den Mikroprozessor oder die programmierbare Logiksteuerung in Bezug auf eine Rechenvorrichtung zum Verarbeiten eines Befehls in dem Benutzerprogramm auszuwählen; ein Aktualisierungsmodul zum Aktualisieren von Rechenvorrichtungsinformation (i) die in dem Befehl enthalten ist, und (ii) die eine Rechenvorrichtung zur Verarbeitung des Befehls angibt, auf einen Wert, der die programmierbare Logikvorrichtung angibt, wenn von dem Benutzer eine Instruktion erhalten wird, die programmierbare Logiksteuerung auszuwählen, und zum Aktualisieren der Rechenvorrichtungsinformation auf einen Wert, der den Mikroprozessor angibt, wenn von dem Benutzer eine Instruktion erhalten wird, den Mikroprozessor auszuwählen; und ein Übertragungsmodul zum Übertragen des Benutzerprogramms mit der aktualisierten Rechenvorrichtungsinformation an den Speicher der CPU-Einheit.A computer connectable to a CPU unit configured to be integrated in a programmable logic controller, the CPU unit comprising a microprocessor and a programmable logic device as computing devices, the computer comprising: a memory for storing a user program; a receiving module for receiving an instruction from a user, select either the microprocessor or the programmable logic controller with respect to a computing device for processing an instruction in the user program; an update module for updating Computing device information (i) contained in the instruction, and (ii) specifying a computing device to process the command to a value indicative of the programmable logic device when an instruction is received from the user to select the programmable logic controller and to update the computing device information to a value indicative of the microprocessor, when an instruction is received from the user to select the microprocessor; and a transfer module for transferring the user program with the updated computing device information to the memory of the CPU unit. Computerprogramm, das durch einen Computer ausführbar ist, der mit einer CPU-Einheit verbindbar ist, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, wobei die CPU-Einheit einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei das Computerprogramm den Computer veranlasst, folgendes zu tun: basierend auf einem Benutzerprogramm und Definitionsinformation der programmierbaren Logiksteuerung einen ersten Befehl und einen zweiten Befehl aus Befehlen in dem Benutzerprogramm zu bestimmen, wobei der erste Befehl ein Befehl ist, der durch die programmierbare Logikvorrichtung zu verarbeiten ist, und der zweite Befehl ein Befehl ist, der nicht durch die programmierbare Logikvorrichtung zu verarbeiten ist; und Rechenvorrichtungsinformation (i) eines Befehls, der als der erste Befehl bestimmt wurde, und (ii) die eine Rechenvorrichtung zur Verarbeitung des Befehls angibt, auf einen Wert zu aktualisieren, der die programmierbare Logikvorrichtung angibt.Computer program that is executable by a computer that is connectable to a CPU unit that is configured to be integrated in a programmable logic controller, wherein the CPU unit comprises a microprocessor and a programmable logic device as computing devices, the computer program the Computer causes to do the following: based on a user program and definition information of the programmable logic controller to determine a first command and a second command from commands in the user program, the the first instruction is an instruction to be processed by the programmable logic device and the second instruction is an instruction not to be processed by the programmable logic device; and computing device information (i) of an instruction determined to be the first instruction and (ii) indicating a computing device for processing the instruction to update to a value indicating the programmable logic device. Computerprogramm nach Anspruch 11, wobei die Definitionsinformation der programmierbaren Logiksteuerung eine Anzahl von Gates der programmierbaren Logiksteuerung, die zur Verarbeitung jedes Befehls zu verwenden sind, und eine Gesamtzahl der Gates der programmierbaren Logiksteuerung umfasst, und wobei das Computerprogramm den Computer ferner veranlasst, den ersten Befehl und den zweiten Befehl basierend auf der jeweiligen Anzahl der Gates und der Gesamtzahl der Gates zu bestimmen.Computer program after Claim 11 wherein the programmable logic controller definition information includes a number of programmable logic controller gates to be used to process each command and a total number of the programmable logic controller gates, and wherein the computer program further causes the computer to generate the first command and the second command based on the respective number of gates and the total number of gates. Computerprogramm nach Anspruch 12, wobei das Computerprogramm den Computer ferner veranlasst, den ersten Befehl und den zweiten Befehl basierend auf einer Anzahl von Aufrufen jedes Befehls in dem Benutzerprogramm und einer Verarbeitungszeit jedes Befehls durch die programmierbare Logiksteuerung zu bestimmen.Computer program after Claim 12 wherein the computer program further causes the computer to determine the first command and the second command based on a number of times each command is called in the user program and a processing time of each command by the programmable logic controller. Computerprogramm nach einem der Ansprüche 11 bis 13, wobei ein Vorgabewert der Rechenvorrichtungsinformation ein Wert ist, der den Mikroprozessor angibt.Computer program according to one of the Claims 11 to 13 , wherein a default value of the computing device information is a value indicating the microprocessor. Computerprogramm, das durch einen Computer ausführbar ist, der mit einer CPU-Einheit verbindbar ist, die dazu konfiguriert ist, in einer programmierbaren Logiksteuerung integriert zu sein, wobei die CPU-Einheit einen Mikroprozessor und eine programmierbare Logikvorrichtung als Rechenvorrichtungen umfasst, wobei das Computerprogramm den Computer veranlasst, folgendes zu tun: eine Instruktion von einem Benutzer zu empfangen, die entweder den Mikroprozessor oder die programmierbare Logiksteuerung in Bezug auf eine Rechenvorrichtung zum Verarbeiten eines Befehls in einem Benutzerprogramm auswählt; wenn von dem Benutzer eine Instruktion erhalten wird, die programmierbare Logiksteuerung als die Rechenvorrichtung des Befehls auszuwählen, Rechenvorrichtungsinformation (i) des Befehls und (ii) die den Befehl verarbeitet, auf einen Wert zu aktualisieren der die programmierbare Logikvorrichtung angibt, und, wenn von dem Benutzer eine Instruktion erhalten wird, den Mikroprozessor als die Rechenvorrichtung des Befehls auszuwählen, die Rechenvorrichtungsinformation auf einen Wert zu aktualisieren, der den Mikroprozessor angibt.Computer program that is executable by a computer that is connectable to a CPU unit that is configured to be integrated in a programmable logic controller, wherein the CPU unit comprises a microprocessor and a programmable logic device as computing devices, the computer program the Computer causes to do the following: receive an instruction from a user selecting either the microprocessor or the programmable logic controller with respect to a computing device for processing an instruction in a user program; when an instruction is received from the user to select the programmable logic controller as the computing device of the instruction, Computing device information (i) the command and (ii) which processes the command to update to a value indicative of the programmable logic device, and, when an instruction is received from the user to select the microprocessor as the computing device of the instruction that Update computing device information to a value indicative of the microprocessor. Computerprogramm nach Anspruch 15, wobei, wenn es zwei oder mehr Befehle gibt, die in dem Benutzerprogramm die gleichen Befehle sind, das Computerprogramm es veranlasst, dass sämtliche Rechenvorrichtungsinformation des gleichen Befehls basierend auf einer Instruktion des Benutzers auf einen Wert aktualisiert werden, der eine Rechenvorrichtung als entweder den Mikroprozessor oder die programmierbare Logiksteuerung angibt.Computer program after Claim 15 wherein, if there are two or more commands that are the same commands in the user program, the computer program causes all of the computing device information of the same command to be updated to a value indicating a computing device as either the microprocessor based on an instruction from the user or indicates the programmable logic controller. Computerprogramm nach Anspruch 15, wobei, selbst wenn es zwei oder mehr Befehle gibt, die in dem Benutzerprogramm die gleichen Befehle sind, das Computerprogramm es veranlasst, dass die Rechenvorrichtungsinformation des Befehls basierend auf einer Instruktion des Benutzers einzeln auf einen Wert aktualisiert werden, der eine Rechenvorrichtung als entweder den Mikroprozessor oder die programmierbare Logiksteuerung angibt.Computer program after Claim 15 wherein, even if there are two or more commands that are the same commands in the user program, the computer program causes the computing device information of the command to be individually updated to a value based on an instruction from the user, which one computing device as either the Microprocessor or the programmable logic controller.
DE112018007018.2T 2018-03-07 2018-03-07 CPU unit of a programmable logic controller, programmable logic controller, method and computer Active DE112018007018B4 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/008798 WO2019171501A1 (en) 2018-03-07 2018-03-07 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program

Publications (2)

Publication Number Publication Date
DE112018007018T5 true DE112018007018T5 (en) 2020-11-05
DE112018007018B4 DE112018007018B4 (en) 2024-05-02

Family

ID=67846525

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018007018.2T Active DE112018007018B4 (en) 2018-03-07 2018-03-07 CPU unit of a programmable logic controller, programmable logic controller, method and computer

Country Status (5)

Country Link
JP (1) JP6591116B1 (en)
CN (1) CN111819503B (en)
DE (1) DE112018007018B4 (en)
TW (1) TWI701592B (en)
WO (1) WO2019171501A1 (en)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
JP4207105B2 (en) * 2001-03-15 2009-01-14 オムロン株式会社 system
US7024495B2 (en) 2001-03-30 2006-04-04 Omron Corporation Programmable controller
KR100745959B1 (en) * 2002-04-17 2007-08-02 후지쯔 가부시끼가이샤 Integrated circuit development method, program recording medium containing integrated circuit development method
JP4462426B2 (en) * 2005-02-28 2010-05-12 オムロン株式会社 PLC tool device
JP2006294005A (en) * 2005-03-14 2006-10-26 Omron Corp Programmable controller
US8117424B2 (en) * 2007-09-21 2012-02-14 Siemens Industry, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
JP2009251782A (en) * 2008-04-03 2009-10-29 Koyo Electronics Ind Co Ltd Acceleration method, and the like, of programmable controller
JP6443190B2 (en) * 2015-04-06 2018-12-26 オムロン株式会社 Programmable logic controller, control method of programmable logic controller, and control program
JP2016212710A (en) * 2015-05-12 2016-12-15 三菱電機株式会社 Ladder program syntactic analysis tool

Also Published As

Publication number Publication date
JPWO2019171501A1 (en) 2020-04-16
DE112018007018B4 (en) 2024-05-02
WO2019171501A1 (en) 2019-09-12
TW201939273A (en) 2019-10-01
JP6591116B1 (en) 2019-10-16
TWI701592B (en) 2020-08-11
CN111819503B (en) 2021-08-24
CN111819503A (en) 2020-10-23

Similar Documents

Publication Publication Date Title
DE102017003943A1 (en) Cell controller for optimizing movements of a production system comprising industrial machines
EP2999998B1 (en) Methods for ascertaining a model of an output variable of a technical system
DE102015004932A1 (en) Simulation device for several robots
DE102006028992A1 (en) Electronic control device
DE3503119A1 (en) METHOD FOR AUTOMATICALLY GENERATING A SOURCE PROGRAM
DE102018003769A1 (en) Machine learning device, servo control system and machine learning method
DE102019106728A1 (en) HEAT SHIFT CORRECTION SYSTEM AND COMPUTER
DE4106164A1 (en) METHOD FOR SEARCHING AND ELIMINATING PROGRAM ERRORS BY EXECUTING A BLOCK MODE RUN
DE102018007107A1 (en) CONTROL DEVICE AND MACHINE EQUIPMENT
DE102016006202A1 (en) Numerical control device for managing machining data and machining results
DE102018003244A1 (en) Numerical control
DE112018007018B4 (en) CPU unit of a programmable logic controller, programmable logic controller, method and computer
DE102019005935A1 (en) NUMERIC CONTROL UNIT
DE112018007472T5 (en) Data processing device, data processing method and program
EP3650964B1 (en) Method for controlling or regulating a technical system
DE102020202723A1 (en) Automatic code generation method and computer readable storage medium storing an automatic code generation program
DE102019008550A1 (en) Numerical control
DE102018209901A1 (en) Computing unit, method and computer program for multiplying at least two multiplicands
DE112020007149B4 (en) Mapping support program, mapping support device, mapping learning program, mapping learning device and computer-readable storage medium
DE102019205081A1 (en) Method, device and computer program for operating a deep neural network
DE102020205964B3 (en) Device and method for operating a test bench
EP4357997A1 (en) Method for determining a production order of production orders of a production plant, production plant system, computer program and electronically readable data carrier
DE102022112606B3 (en) Computer-implemented method for calibrating a technical system
DE102020003526A1 (en) Control device, control system and machine learning device
EP3491517B1 (en) Signal flow-based computer program with direct feedthrough loops

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05B0019050000

Ipc: G05B0019042000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05B0019050000

Ipc: G06F0009500000

R016 Response to examination communication
R084 Declaration of willingness to licence
R018 Grant decision by examination section/examining division