DE112018001886T5 - Control device, control procedure and control program - Google Patents

Control device, control procedure and control program Download PDF

Info

Publication number
DE112018001886T5
DE112018001886T5 DE112018001886.5T DE112018001886T DE112018001886T5 DE 112018001886 T5 DE112018001886 T5 DE 112018001886T5 DE 112018001886 T DE112018001886 T DE 112018001886T DE 112018001886 T5 DE112018001886 T5 DE 112018001886T5
Authority
DE
Germany
Prior art keywords
task
control
priority
execution
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018001886.5T
Other languages
German (de)
Inventor
Takahiro TOKU
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority claimed from PCT/JP2018/014142 external-priority patent/WO2018186358A1/en
Publication of DE112018001886T5 publication Critical patent/DE112018001886T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15079Multitasking, real time multitasking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25343Real time multitasking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

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

Abstract

Ein Steuerungstask zum Steuern eines Objekts und ein Nichtsteuerungstask werden derart ausgeführt, dass Echtzeitsteuerung sichergestellt werden kann. Eine Steuereinrichtung (100) weist einen Prozessor (102), der mehrere Tasks ausführt, die einen Steuerungstask (141) und einen Nichtsteuerungstask (142, 143), der die Echtzeitsteuerung betreffende Hilfsverarbeitungen durchführt, umfassen, einen Multitaskausführungsabschnitt (191), der den Prozessor dazu veranlasst, die Tasks in einer Ablauffolge auszuführen, die auf Prioritäten (133) der jeweiligen Tasks basiert, und einen Planer (151) auf. Für den Steuerungstask wird eine höchste Priorität festgelegt. Der Planer legt die Priorität des Nichtsteuerungstasks auf eine erste Priorität fest, wenn eine Ausführungsstartbedingung des Nichtsteuerungstasks erfüllt worden ist, hält die Priorität des Nichtsteuerungstasks auf der ersten Priorität, solange die Zeitdauer seit dem Ausführungsstart kürzer als oder gleich lang wie eine erste Zeitdauer zur Ausführung der Hilfsverarbeitung in Echtzeit ist, und verringert danach die Priorität auf eine zweite Priorität, wenn die Zeitdauer die erste Zeitdauer überstiegen hat.A control task for controlling an object and a non-control task are performed so that real-time control can be ensured. A controller (100) includes a processor (102) that performs a plurality of tasks including a control task (141) and a non-control task (142, 143) that performs real-time control related processing, a multitask execution section (191) that executes the processor to execute the tasks in a sequence based on priorities (133) of the respective tasks and a planner (151). A highest priority is set for the control task. The scheduler sets the priority of the non-control task to a first priority when an execution start condition of the non-control task has been met, keeps the priority of the non-control task at the first priority, as long as the period of time since the execution start is shorter than or equal to a first period of time for executing the Auxiliary processing is in real time, and thereafter reduces the priority to a second priority when the period has exceeded the first period.

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die vorliegende technische Lehre betrifft eine Steuereinrichtung, ein Steuerverfahren und ein Steuerprogramm zum Steuern eines Objekts.The present technical teaching relates to a control device, a control method and a control program for controlling an object.

TECHNISCHER HINTERGRUNDTECHNICAL BACKGROUND

An verschiedenen Produktionsstätten wird vielfach FA- (Fabrikautomatisierungs-) Technik genutzt, die Steuereinrichtungen wie SPS (Speicherprogrammierbare Steuerung) verwendet.FA (factory automation) technology, which uses control devices such as PLC (programmable logic controller), is often used at various production sites.

Bei Steuereinrichtungen wie SPS ist hohe Leistungsfähigkeit gefordert. Bezüglich dieser Anforderung weist eine SPS in Patentdokument Nr. 1 ( JP 2013-506911A ) einen oder mehrere Prozessoren auf, die jeweiligen SPS-Funktionen zugewiesen sind, und mindestens zwei SPS-Funktionen werden parallel ausgeführt.High performance is required for control devices such as PLCs. Regarding this requirement, a PLC in Patent Document No. 1 ( JP 2013-506911A ) one or more processors that are assigned to the respective PLC functions, and at least two PLC functions are executed in parallel.

VORBEKANNTE TECHNISCHE DOKUMENTEPRELIMINARY TECHNICAL DOCUMENTS

PATENTDOKUMENTEPATENT DOCUMENTS

Patentdokument Nr. 1: JP 2013-506911A Patent document No. 1: JP 2013-506911A

ÜBERBLICK ÜBER DIE ERFINDUNGOVERVIEW OF THE INVENTION

VON DER ERFINDUNG ZU LÖSENDE AUFGABENTASKS TO BE SOLVED BY THE INVENTION

Eine Steuereinrichtung wie etwa eine SPS führt zum Steuern von Vorrichtungen, die an einer Produktionsstätte bereitgestellt sind, einen Steuerungstask aus, der ein Ablaufprogramm zur Realisierung der Ablaufsteuerung der Vorrichtungen und ein Bewegungsprogramm zur Realisierung ihrer Bewegungssteuerung in einem vorbestimmten Zyklus umfasst, und als ein Ergebnis wird eine Echtzeitsteuerung der Vorrichtungen realisiert.A control device such as a PLC executes a control task for controlling devices provided at a production site, which includes a sequence program for realizing the sequence control of the devices and a movement program for realizing their movement control in a predetermined cycle, and as a result real-time control of the devices.

Im Übrigen besteht bei einer Steuereinrichtung wie einer SPS Bedarf danach, dass bei Hinzufügung diverser Funktionen Nichtsteuerungstasks, die nicht direkt die Steuerung einer Vorrichtung betreffen, unter Aufrechterhaltung der vorstehend beschriebenen Echtzeitsteuerung (Periodizität) ausgeführt werden.Moreover, in the case of a control device such as a PLC, there is a need that when various functions are added, non-control tasks that do not directly affect the control of a device are carried out while maintaining the real-time control (periodicity) described above.

Um diesen Bedarf zu decken, wurde ein Verfahren vorgeschlagen, bei dem Nichtsteuerungstasks, die in einem Zyklus nicht abgeschlossen wurden, im nächsten Zyklus ausgeführt werden. Dieses Verfahren ist jedoch für spezielle Nichtsteuerungstasks wie etwa Anomalieerkennungen nicht geeignet. Wenn bei der Echtzeitsteuerung eines Objekts die Verarbeitung gemäß einem Ausführungsergebnis des Nichtsteuerungstasks geändert werden muss (die Maschine angehalten wurde, ein aufgrund einer Anomalie fehlerhaftes Werkstück entfernt werden muss, ein Schneidewerkzeug nach dem Verpacken nicht gesenkt wurde, falls die zu steuernde Maschine eine Verpackungsmaschine ist, oder dergleichen), besteht bei diesem Verfahren das Problem, dass die Ausführung des Nichtsteuerungstasks nicht innerhalb einer Zeitdauer abgeschlossen werden kann, die unter Berücksichtigung der Beziehung mit dem Steuerungstask bestimmt ist.To meet this need, a method has been proposed in which non-control tasks that have not been completed in one cycle are performed in the next cycle. However, this method is not suitable for special non-control tasks such as anomaly detection. If in real-time control of an object, the processing needs to be changed according to an execution result of the non-control task (the machine is stopped, a workpiece defective due to an abnormality has to be removed, a cutting tool has not been lowered after packaging, if the machine to be controlled is a packaging machine, or the like), there is a problem with this method that the execution of the non-control task cannot be completed within a period of time determined considering the relationship with the control task.

In Patentdokument Nr. 1 werden mindestens zwei der SPS-Funktionen parallel betrieben, es wird jedoch keine konkrete Ausgestaltung zum Ausführen des Steuerungstasks zum Steuern eines Objekts in Echtzeit und des Nichtsteuerungstasks derart vorgeschlagen, dass die Echtzeitsteuerung des Objekts sichergestellt werden kann.In Patent Document No. 1, at least two of the PLC functions are operated in parallel, but no specific embodiment for executing the control task for controlling an object in real time and the non-control task is proposed in such a way that real-time control of the object can be ensured.

Die vorliegend vorgeschlagene technische Lehre stellt eine Steuereinrichtung, ein Steuerverfahren und ein Steuerprogramm zum Ausführen des Steuerungstasks zum Steuern eines Objekts in Echtzeit und des Nichtsteuerungstasks derart bereit, dass die Echtzeitsteuerung des Objekts sichergestellt werden kann.The technical teaching proposed here provides a control device, a control method and a control program for executing the control task for controlling an object in real time and the non-control task in such a way that real-time control of the object can be ensured.

MITTEL ZUM LÖSEN DER AUFGABEMEANS TO SOLVE THE TASK

Gemäß einem Aspekt dieser Offenbarung umfasst eine Steuereinrichtung, die ein Objekt steuert, einen Prozessor, der dazu eingerichtet ist, mehrere Tasks auszuführen, welche einen Steuerungstask zum Durchführen einer Echtzeitsteuerung des Objekts und einen Nichtsteuerungstask zum Durchführen einer Hilfsverarbeitung (zugehörigen Verarbeitung), die die Echtzeitsteuerung betrifft, umfassen; einen Multitaskausführungsabschnitt, der dazu eingerichtet ist, den Prozessor dazu zu veranlassen, die mehreren Tasks in einer Ablauffolge auszuführen, die auf Prioritäten basiert, die mit jeweiligen Tasks aus den mehreren Tasks verknüpft sind; und einen Planer bzw. Scheduler, der dazu eingerichtet ist, die Priorität des Nichtsteuerungstasks variabel festzulegen, und für den Steuerungstask ist eine höchste Priorität festgelegt. Der Planer weist einen Prioritätswechselabschnitt auf, der dazu eingerichtet ist, die Priorität des Nichtsteuerungstasks auf eine erste Priorität festzulegen, wenn eine Ausführungsstartbedingung des Nichtsteuerungstasks erfüllt worden ist, die Priorität des Nichtsteuerungstasks auf der ersten Priorität zu halten, solange die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks kürzer als oder gleich lang wie eine erste Zeitdauer zur Ausführung der Hilfsverarbeitung in Echtzeit ist, und danach die Priorität des Nichtsteuerungstasks auf eine zweite Priorität zu verringern, wenn die Zeitdauer seit dem Ausführungsstart die erste Zeitdauer überstiegen hat.According to one aspect of this disclosure, a control device that controls an object includes a processor that is configured to perform a plurality of tasks, which include a control task for performing real-time control of the object and a non-control task for performing auxiliary processing (associated processing) that performs real-time control concerns, include; a multitask execution section configured to cause the processor to execute the plurality of tasks in a sequence based on priorities associated with respective tasks from the plurality of tasks; and a scheduler configured to variably set the priority of the non-control task, and a highest priority is set for the control task. The planner has a priority change section configured to set the priority of the non-control task to a first priority when an execution start condition of the non-control task has been met, to keep the priority of the non-control task at the first priority, as long as the period of time since the execution of the non-control task is shorter than or equal to a first time period for executing the auxiliary processing in real time, and thereafter reduce the priority of the non-control task to a second priority if the time period has exceeded the first time period since the execution start.

Die erste Zeitdauer ist vorzugsweise variabel festgelegt. The first time period is preferably set variably.

Vorzugsweise führt der Prioritätswechselabschnitt ferner einen Wechsel derart durch, dass die Priorität des Nichtsteuerungstasks auf die erste Priorität angehoben wird, wenn die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks mit der zweiten Priorität eine zweite Zeitdauer übersteigt.The priority change section preferably also carries out a change such that the priority of the non-control task is raised to the first priority if the time period since the start of execution of the non-control task with the second priority exceeds a second time period.

Die zweite Zeitdauer ist vorzugsweise variabel festgelegt.The second time period is preferably set variably.

Die Hilfsverarbeitung umfasst vorzugsweise eine Merkmalsmengenerzeugungsverarbeitung zum Erzeugen einer zur Erkennung einer Anomalie, die in dem Objekt auftritt, aus Daten, die das Objekt betreffen, geeigneten Merkmalsmenge; eine Anomalieerkennungsverarbeitung zum Erkennen der Anomalie unter Verwendung einer bei der Merkmalsmengenerzeugungsverarbeitung erzeugten Merkmalsmenge; und eine Verarbeitung zum Kommunizieren von Daten für die Merkmalsmengenerzeugungsverarbeitung oder die Anomalieerkennungsverarbeitung an eine Einrichtung, die eine Speichereinrichtung umfasst.The auxiliary processing preferably includes feature set generation processing for generating a feature set suitable for detecting an anomaly that occurs in the object from data relating to the object; anomaly detection processing for detecting the anomaly using a set of features generated in the feature set generation processing; and processing for communicating data for the feature set generation processing or the abnormality detection processing to a device including a storage device.

Vorzugsweise umfasst die Hilfsverarbeitung eine Berechnungsverarbeitung zum Berechnen einer geschätzten Steuergröße des Objekts unter Verwendung eines Anweisungswerts, der von der Steuereinrichtung an das Objekt ausgegeben wird, und eines vorbestimmten prädiktiven Steuerungsmodells; und eine Korrekturwertberechnungsverarbeitung zum Berechnen eines Korrekturwerts basierend auf einer bei der Berechnungsverarbeitung berechneten Steuergröße, und der Steuerungstask umfasst einen Steuerungsberechnungstask zum Berechnen eines Anweisungswerts für das Objekt in Übereinstimmung mit dem berechneten Korrekturwert.Preferably, the auxiliary processing includes calculation processing for calculating an estimated control amount of the object using an instruction value output from the controller to the object and a predetermined predictive control model; and correction value calculation processing for calculating a correction value based on a control quantity calculated in the calculation processing, and the control task includes a control calculation task for calculating an instruction value for the object in accordance with the calculated correction value.

Vorzugsweise umfasst die Hilfsverarbeitung eine Berechnungsverarbeitung zum Berechnen einer geschätzten Steuergröße des Objekts unter Verwendung einer Steuergröße des Objekts, die von der Steuereinrichtung an das Objekt ausgegeben wird, und eines vorbestimmten prädiktiven Steuerungsmodells; und eine Korrekturwertberechnungsverarbeitung zum Berechnen eines Korrekturwerts basierend auf einer bei der Berechnungsverarbeitung berechneten Steuergröße, und der Steuerungstask umfasst einen Steuerungsberechnungstask zum Berechnen eines Anweisungswerts für das Objekt in Übereinstimmung mit dem berechneten Korrekturwert.Preferably, the auxiliary processing includes calculation processing for calculating an estimated control quantity of the object using a control quantity of the object that is output from the control device to the object and a predetermined predictive control model; and correction value calculation processing for calculating a correction value based on a control quantity calculated in the calculation processing, and the control task includes a control calculation task for calculating an instruction value for the object in accordance with the calculated correction value.

Die Korrekturwertberechnungsverarbeitung umfasst vorzugsweise eine Verarbeitung zum Berechnen des Korrekturwerts, der derart korrigiert worden ist, dass die Steuergröße in einem vorbestimmten Bereich liegt.The correction value calculation processing preferably includes processing for calculating the correction value that has been corrected such that the control quantity is in a predetermined range.

Vorzugsweise weist die Steuereinrichtung ferner einen Sammelabschnitt auf, der dazu eingerichtet ist, in Bezug auf den Nichtsteuerungstask Informationen zu sammeln, die die Ausführung des Nichtsteuerungstasks betreffen und eine Ausführungszeit umfassen, und die von dem Sammelabschnitt gesammelten Informationen werden nach außen ausgegeben.Preferably, the control device further comprises a collecting section which is configured to collect information relating to the execution of the non-control task and which includes an execution time, and the information collected by the collecting section is output to the outside.

Die zu sammelnden Informationen umfassen vorzugsweise die Anzahl von Prioritätswechseln des Nichtsteuerungstasks.The information to be collected preferably includes the number of priority changes of the non-control task.

Die Inhalte der Hilfsverarbeitung werden vorzugsweise variabel festgelegt.The contents of the auxiliary processing are preferably set variably.

Vorzugsweise weist die Steuereinrichtung ferner einen Kerninformationsspeicherabschnitt zur Speicherung von Kerninformationen zum Bestimmen eines Prozessorkerns, der den Nichtsteuerungstask ausführen wird, und der Prozessor weist mehrere Prozessorkerne auf, und der Planer weist ferner einen Kernwechselabschnitt auf, der dazu eingerichtet ist, basierend auf den Kerninformationen oder auf Auslastungsgrade der einzelnen Prozessorkerne den Prozessorkern zu bestimmen, der den Nichtsteuerungstask ausführen wird.Preferably, the controller further includes a core information storage section for storing core information for determining a processor core that will execute the non-control task, and the processor has a plurality of processor cores, and the planner also has a core switch section configured based on the core information or Utilization levels of the individual processor cores to determine the processor core that will execute the non-control task.

Die Kerninformationen umfassen vorzugsweise Informationen zum Bestimmen eines Prozessorkerns, der den Nichtsteuerungstask ausführen wird, auf Grundlage der Priorität des Nichtsteuerungstasks.The core information preferably includes information for determining a processor core that will perform the non-control task based on the priority of the non-control task.

Gemäß einem weiteren Aspekt der vorliegenden technischen Lehre ist ein Steuerverfahren in einer Steuereinrichtung bereitgestellt, die ein Objekt steuert. Die Steuereinrichtung weist auf: einen Prozessor, der dazu eingerichtet ist, mehrere Tasks auszuführen, welche einen Steuerungstask zum Durchführen einer Echtzeitsteuerung des Objekts und einen Nichtsteuerungstask zum Durchführen einer Hilfsverarbeitung, die die Echtzeitsteuerung betrifft, umfassen; und einen Multitaskausführungsabschnitt, der dazu eingerichtet ist, den Prozessor dazu zu veranlassen, die mehreren Tasks in einer Ablauffolge auszuführen, die auf Prioritäten basieren, die mit jeweiligen der mehreren Tasks verknüpft sind, und es wird für den Steuerungstask eine höchste Priorität festgelegt.According to a further aspect of the present technical teaching, a control method is provided in a control device that controls an object. The control device comprises: a processor which is set up to carry out a plurality of tasks, which include a control task for performing real-time control of the object and a non-control task for performing auxiliary processing relating to real-time control; and a multitask execution section configured to cause the processor to execute the plurality of tasks in a sequence based on priorities associated with respective ones of the plurality of tasks, and a highest priority is set for the control task.

Das Steuerverfahren umfasst: einen Schritt mit Festlegen der Priorität des Nichtsteuerungstasks auf eine erste Priorität, wenn eine Ausführungsstartbedingung des Nichtsteuerungstasks erfüllt worden ist, und Halten der Priorität des Nichtsteuerungstasks auf der ersten Priorität, solange die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks kürzer als oder gleich lang wie eine erste Zeitdauer zur Ausführung der Hilfsverarbeitung in Echtzeit ist; und einen Schritt mit anschließendem Durchführen eines Wechsels, derart dass die Priorität des Nichtsteuerungstasks auf eine zweite Priorität verringert wird, wenn die Zeitdauer seit dem Ausführungsstart die erste Zeitdauer überstiegen hat.The control method includes: a step of setting the priority of the non-control task to a first priority when an execution start condition of the non-control task has been met, and holding the priority of the non-control task at the first priority as long as the period of time since the execution start of the non-control task is shorter than or equal to how is a first time period for executing the auxiliary processing in real time; and a step followed by a change, such that the priority of the non-control task is reduced to a second priority if the period of time since the start of execution has exceeded the first period.

Gemäß einem weiteren Aspekt dieser technischen Lehre ist ein Programm zum Veranlassen eines Computers dazu, das vorstehend beschriebene Steuerverfahren auszuführen, bereitgestellt.According to another aspect of this technical teaching, a program for causing a computer to carry out the control method described above is provided.

EFFEKT DER ERFINDUNGEFFECT OF THE INVENTION

Gemäß der vorliegend vorgeschlagenen technischen Lehre können ein Steuerungstask zum Steuern eines Objekts in Echtzeit und ein Nichtsteuerungstask derart ausgeführt werden, dass die Echtzeitsteuerung des Objekts sichergestellt werden kann.According to the technical teaching proposed here, a control task for controlling an object in real time and a non-control task can be carried out in such a way that real-time control of the object can be ensured.

Figurenlistelist of figures

  • 1 ist ein schematisches Diagramm, das eine beispielhafte Gesamtausgestaltung eines Steuersystems 1 gemäß einer Ausführungsform veranschaulicht. 1 FIG. 12 is a schematic diagram illustrating an exemplary overall configuration of a control system 1 illustrated according to one embodiment.
  • 2 ist ein Blockschaltbild, das eine beispielhafte Hardwareausgestaltung einer Steuereinrichtung 100 veranschaulicht, die das Steuersystem 1 gemäß der vorliegenden Ausführungsform bildet. 2 FIG. 12 is a block diagram illustrating an exemplary controller hardware configuration 100 which illustrates the tax system 1 according to the present embodiment.
  • 3 ist ein Blockschaltbild, das eine beispielhafte Hardwareausgestaltung einer Unterstützungseinrichtung 200 veranschaulicht, die das Steuersystem 1 gemäß der vorliegenden Ausführungsform bildet. 3 FIG. 12 is a block diagram showing an exemplary hardware configuration of a support device 200 which illustrates the tax system 1 according to the present embodiment.
  • 4 ist ein Flussdiagramm von Verarbeitungen gemäß der vorliegenden Ausführungsform in Form einer Übersicht. 4 FIG. 12 is a flowchart of processing according to the present embodiment in an overview.
  • 5 ist ein Diagramm, das schematisch Funktionen der Steuereinrichtung 100 gemäß der vorliegenden Ausführungsform veranschaulicht. 5 is a diagram that schematically functions of the control device 100 illustrated according to the present embodiment.
  • 6 ist ein Diagramm, das schematisch Zustandsübergänge eines Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulicht. 6 Fig. 4 is a diagram schematically showing state transitions of an auxiliary processing task 143 illustrated according to the present embodiment.
  • 7 ist ein Diagramm, das schematisch die Ausgestaltung eines Hilfsverarbeitungsprogramms 165 gemäß der vorliegenden Ausführungsform veranschaulicht. 7 Fig. 12 is a diagram schematically showing the configuration of an auxiliary processing program 165 illustrated according to the present embodiment.
  • 8 ist ein Diagramm, das eine Benutzerschnittstelle zum Festlegen einer Priorität für einen Task gemäß der vorliegenden Ausführungsform veranschaulicht. 8th FIG. 12 is a diagram illustrating a user interface for setting a priority for a task according to the present embodiment.
  • 9 ist ein Diagramm, das eine Benutzerschnittstelle zum Zuweisen eines Programms an einen Task gemäß der vorliegenden Ausführungsform veranschaulicht. 9 FIG. 12 is a diagram illustrating a user interface for assigning a program to a task according to the present embodiment.
  • 10 ist ein Flussdiagramm, das eine Verarbeitung zum Verwalten der Ausführung des Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. 10 FIG. 12 is a flowchart illustrating processing for managing the execution of the auxiliary processing task according to the present embodiment.
  • 11A und 11B sind Diagramme, die ein Planungsmodell des Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulichen. 11A and 11B are diagrams showing a planning model of the auxiliary processing task 143 according to the present embodiment.
  • 12A bis 12C sind Diagramme, die Prioritätswechsel des Hilfsverarbeitungstasks 143 in Verbindung mit 11 veranschaulichen. 12A to 12C are diagrams that change the priority of the auxiliary processing task 143 combined with 11 illustrate.
  • 13 ist ein Diagramm, das ein Beispiel für ein Festlegen von Prioritäten und Schwellwerten für mehrere Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. 13 10 is a diagram illustrating an example of setting priorities and thresholds for multiple auxiliary processing tasks according to the present embodiment.
  • 14 ist ein Diagramm, das ein Verfahren zum Zuweisen von Programmen an mehrere Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. 14 FIG. 12 is a diagram illustrating a method of assigning programs to multiple auxiliary processing tasks according to the present embodiment.
  • 15 ist ein Diagramm, das eine beispielhafte Anzeige von Unterstützungsinformationen zum Debuggen gemäß der vorliegenden Ausführungsform veranschaulicht. 15 FIG. 12 is a diagram illustrating an exemplary display of support information for debugging according to the present embodiment.
  • 16A und 16B sind Diagramme, die ein Beispiel für Überwachungsinformationen 153A und ein Protokoll 135 gemäß der vorliegenden Ausführungsform veranschaulichen. 16A and 16B are diagrams that are an example of monitoring information 153A and a log 135 according to the present embodiment.
  • 17A und 17B sind Diagramme, die ein Beispiel für gesammelte Informationen 228 gemäß der vorliegenden Ausführungsform veranschaulichen. 17A and 17B are diagrams that are an example of information collected 228 according to the present embodiment.
  • 18 ist ein Diagramm, das Kerninformationen 136 gemäß der vorliegenden Ausführungsform veranschaulicht. 18 is a diagram showing key information 136 illustrated according to the present embodiment.
  • 19A und 19B sind Diagramme, die ein Beispiel für die Ausführung eines einzelnen Hilfsverarbeitungstasks 143 bei einer Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. 19A and 19B are diagrams showing an example of the execution of a single auxiliary processing task 143 in multi-core planning according to the present embodiment.
  • 20A und 20B sind Diagramme, die ein Beispiel für die Ausführung von mehreren Hilfsverarbeitungstasks 143 bei einer Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. 20A and 20B are diagrams showing an example of the execution of multiple auxiliary processing tasks 143 in multi-core planning according to the present embodiment.
  • 21A und 21B sind Diagramme, die ein weiteres Beispiel für die Ausführung der mehreren Hilfsverarbeitungstasks 143 bei einer Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. 21A and 21B are diagrams that are another example of the execution of the multiple auxiliary processing tasks 143 in multi-core planning according to the present embodiment.
  • 22 ist ein Diagramm, das noch ein weiteres Beispiel für die Ausführung der mehreren Hilfsverarbeitungstasks 143 bei einer Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulicht. 22 Fig. 4 is a diagram showing yet another example of the execution of the multiple auxiliary processing tasks 143 at a Multi-core planning according to the present embodiment is illustrated.
  • 23 ist ein schematisches Diagramm, das eine Abwandlung des Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulicht. 23 Fig. 12 is a schematic diagram showing a modification of the auxiliary processing task 143 illustrated according to the present embodiment.
  • 24 ist ein Diagramm, das schematisch ein Beispiel für ein prädiktives Steuerungsmodell gemäß der vorliegenden Ausführungsform veranschaulicht. 24 10 is a diagram schematically illustrating an example of a predictive control model according to the present embodiment.

AUSFÜHRUNGSFORMEN DER ERFINDUNGEMBODIMENTS OF THE INVENTION

Nachstehend werden anhand der Zeichnungen Ausführungsformen der vorliegenden Erfindung ausführlich beschrieben. Es sei angemerkt, dass gleiche oder äquivalente Abschnitte in den Diagrammen gleiche Bezugszeichen tragen und ihre Beschreibung nicht wiederholt wird.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. It should be noted that the same or equivalent sections in the diagrams have the same reference numerals and their description is not repeated.

Begriffsklärungdisambiguation

Es werden nun in der vorliegenden Ausführungsform verwendete Begriffe erläutert.Terms used in the present embodiment will now be explained.

Ein „Task“ ist eine von einem Prozessor auszuführende Verarbeitungseinheit, und ein Task umfasst mindestens ein Programm.A "task" is a processing unit to be executed by a processor, and a task comprises at least one program.

Eine „Echtzeiteigenschaft“ (Echtzeitfähigkeit) eines Tasks gibt an, dass die Ausführung des Tasks innerhalb einer vorbestimmten Zeitdauer ab dem Start der Ausführung des Tasks abgeschlossen sein wird (d. h., die Fähigkeit des Tasks, in Echtzeit ausgeführt zu werden).A "real time" property (real time capability) of a task indicates that the execution of the task will be completed within a predetermined period of time from the start of the execution of the task (i.e., the ability of the task to be performed in real time).

Ein „Steuerungstask“ ist ein Task zur Steuerung eines Objekts einer zu steuernden Feldgerätegruppe in Echtzeit (Echtzeitsteuerung).A "control task" is a task for controlling an object of a field device group to be controlled in real time (real-time control).

Ein „Nichtsteuerungstask“ ist ein Task, welcher, anders als der „Steuerungstask“, nicht direkt an der Echtzeitsteuerung teilnimmt, aber dennoch eine Echtzeiteigenschaft benötigt, das heißt, ein Task zum Durchführen einer Verarbeitung, die die Echtzeitsteuerung betrifft.A "non-control task" is a task which, unlike the "control task", does not directly participate in real-time control, but nevertheless requires a real-time property, that is, a task for performing processing that relates to real-time control.

Die „Priorität“ eines Tasks gibt eine relative Reihenfolge der Ausführung durch einen Prozessor an. Ein Task mit einer hohen Priorität wird früher ausgeführt, ein Task mit niedriger Priorität wird später ausgeführt.The "priority" of a task indicates a relative order of execution by a processor. A high priority task runs earlier, a low priority task runs later.

Übersicht über die vorliegende AusführungsformOverview of the present embodiment

Bei der vorliegenden Ausführungsform legt ein Planer einer Steuereinrichtung variabel Prioritäten mehrerer Tasks fest, die einen Steuerungstask und einen Nichtsteuerungstask umfassen. Bei der vorliegenden Ausführungsform wird für den Steuerungstask unter den mehreren Tasks eine höchste Priorität festgelegt. Wenn eine Bedingung für den Ausführungsstart des Nichtsteuerungstasks erfüllt ist, legt der Planer die Priorität des Nichtsteuerungstasks auf eine erste Priorität (hohe Priorität) fest und hält die Priorität des Nichtsteuerungstasks während einer ersten Zeitdauer zur Ausführung einer Hilfsverarbeitung in Echtzeit ab dem Start der Ausführung des Nichtsteuerungstasks auf der ersten Priorität. Wenn später die Ausführungszeit, also die seit dem Start der Ausführung verstrichene Zeit, die erste Zeitdauer übersteigt, wechselt der Planer die Priorität des Nichtsteuerungstasks derart, dass die Priorität auf eine zweite Priorität (niedrige Priorität) verringert wird.In the present embodiment, a scheduler of a controller variably sets priorities of multiple tasks that include a control task and a non-control task. In the present embodiment, a highest priority is set for the control task among the multiple tasks. If a condition for the execution start of the non-control task is met, the planner sets the priority of the non-control task to a first priority (high priority) and holds the priority of the non-control task for a first period of time for executing auxiliary processing in real time from the start of the execution of the non-control task on the first priority. If the execution time later, i.e. the time that has elapsed since the start of execution, exceeds the first time period, the planner changes the priority of the non-control task in such a way that the priority is reduced to a second priority (low priority).

Dadurch kann die Hilfsverarbeitung in einem Zeitraum, bis die Ausführungszeit die erste Zeitdauer erreicht, ausgeführt werden und dabei die Echtzeiteigenschaft aufrechterhalten werden und es kann zum Beispiel die Echtzeitsteuerung eines Objekts realisiert werden, die das Ergebnis der Hilfsverarbeitung verwendet. Wenn die Ausführungszeit die erste Zeitdauer übersteigt, wird außerdem die Priorität des Nichtsteuerungstasks verringert, und es kann ein anderer Task bevorzugt ausgeführt werden, und daher kann das Objekt, wenn der andere Task eine Verarbeitung ausführt, die zur Echtzeitsteuerung beiträgt, unter Verwendung eines Ausführungsergebnisses des anderen Tasks in Echtzeit gesteuert werden. Somit kann die Echtzeitausführung der Hilfsverarbeitung durch den Nichtsteuerungstask realisiert werden und gleichzeitig sichergestellt werden, dass das Objekt durch den Steuerungstask in Echtzeit gesteuert werden kann.Thereby, the auxiliary processing can be carried out in a period until the execution time reaches the first period of time while maintaining the real-time property and, for example, real-time control of an object that uses the result of the auxiliary processing can be realized. If the execution time exceeds the first period of time, the priority of the non-control task is also reduced and another task can be executed preferentially, and therefore, if the other task executes processing that contributes to real-time control, using an execution result of other tasks can be controlled in real time. Thus, the real-time execution of the auxiliary processing can be realized by the non-control task and at the same time it can be ensured that the object can be controlled in real time by the control task.

Beispielhafte Steuersystem-GesamtausgestaltungExemplary overall control system design

Zunächst wird eine beispielhafte Gesamtausgestaltung eines Steuersystems 1 beschrieben, das eine Steuereinrichtung gemäß der vorliegenden Ausführungsform umfasst.First is an exemplary overall design of a tax system 1 described, which comprises a control device according to the present embodiment.

1 ist ein schematisches Diagramm, das eine beispielhafte Gesamtausgestaltung des Steuersystems 1 gemäß der vorliegenden Ausführungsform veranschaulicht. Bezugnehmend auf 1 umfasst das Steuersystem 1 gemäß der vorliegenden Ausführungsform als Hauptbestandteile eine Steuereinrichtung 100, die ein zu steuerndes Objekt steuert, und eine Unterstützungseinrichtung 200, die mit der Steuereinrichtung 100 verbunden ist. 1 FIG. 10 is a schematic diagram showing an exemplary overall configuration of the control system 1 illustrated according to the present embodiment. Referring to 1 includes the tax system 1 According to the present embodiment, a control device as main components 100 which controls an object to be controlled and a support device 200 that with the control device 100 connected is.

Die Steuereinrichtung 100 kann als eine Art von Computer wie etwa eine SPS (Speicherprogrammierbare Steuerung, PLC) realisiert sein. Die Steuereinrichtung 100 ist über ein erstes Feldnetzwerk 2 mit einer Feldgerätegruppe 10 verbunden und ist über ein zweites Feldnetzwerk 4 mit einer oder mehreren Anzeigeeinrichtungen 400 verbunden. Die Steuereinrichtung 100 ist außerdem über ein lokales Netzwerk 6 mit einer Datenprotokollierungseinrichtung 300 verbunden. Die Steuereinrichtung 100 tauscht über die jeweiligen Netzwerke Daten mit verbundenen Einrichtungen aus. Es sei angemerkt, dass die Datenprotokollierungseinrichtung 300 und die Anzeigeeinrichtung 400 optional sind und keine wesentlichen Bestandteile des Steuersystems 1 sind.The control device 100 can be implemented as a type of computer such as a programmable logic controller (PLC). The control device 100 is over a first field network 2 with a field device group 10 connected and is via a second field network 4 with one or more display devices 400 connected. The control device 100 is also over a local area network 6 with a data logger 300 connected. The control device 100 exchanges data with connected facilities via the respective networks. It should be noted that the data logger 300 and the display device 400 are optional and are not an essential part of the tax system 1 are.

Die Steuereinrichtung 100 weist eine Funktion zum Ausführen diverser Arten von Berechnungen bzw. Rechenoperationen zum Steuern von Ausrüstung und Maschinen an einer Produktionsstätte oder dergleichen, eine Sammlungsfunktion zum Sammeln bzw. Erfassen von Daten (nachstehend auch als „Eingabedaten“ bezeichnet), die von der Feldgerätegruppe 10 gemessen und an die Steuereinrichtung 100 übertragen werden, und eine Überwachungsfunktion zum Überwachen der gesammelten Eingabedaten auf. Als Ergebnis der Implementierung dieser Funktionen in der Steuereinrichtung 100 können in dem Objekt auftretende Phänomene überwacht werden.The control device 100 has a function for performing various types of calculations or arithmetic operations for controlling equipment and machines at a production facility or the like, a collection function for collecting or collecting data (hereinafter also referred to as “input data”) by the field device group 10 measured and to the control device 100 are transmitted, and a monitoring function for monitoring the collected input data. As a result of the implementation of these functions in the control device 100 phenomena occurring in the object can be monitored.

Im Speziellen stellt eine später beschriebene interne Datenbank 130 (nachfolgend auch als „interne DB“ bezeichnet), die in der Steuereinrichtung 100 implementiert ist, einen Teil der Sammlungsfunktion bereit und ein Anomalieerkennungsprogramm (später beschrieben), das in der Steuereinrichtung 100 implementiert ist, stellt die Überwachungsfunktion bereit.Specifically provides an internal database described later 130 (hereinafter also referred to as "internal DB") in the control device 100 implemented, part of the collection function ready and an anomaly detection program (described later) in the control device 100 is implemented, provides the monitoring function.

Die Feldgerätegruppe 10 umfasst Einrichtungen, die Eingabedaten von dem Objekt, das durch die Steuereinrichtung 100 zu steuern ist, und einer Fertigungseinrichtung und einer Produktionslinie sammeln, die mit der von der Steuereinrichtung 100 durchgeführten Steuerung in Zusammenhang stehen (nachfolgend auch kollektiv als „Feld“ bezeichnet). Als derartige Einrichtungen zum Sammeln von Eingabedaten werden ein Eingaberelais und diverse Sensoren erwogen. Die Feldgerätegruppe 10 umfasst ferner Einrichtungen, die basierend auf Anweisungen (nachfolgend auch als „Ausgabedaten“ bezeichnet), die von der Steuereinrichtung 100 erzeugt werden, eine Aktion mit dem Feld bewirken bzw. eine Wirkung auf das Feld ausüben. Als derartige Einrichtungen, die eine Wirkung auf das Feld ausüben, werden ein Ausgaberelais, ein Schütz, ein Servoantrieb, ein Servomotor und andere Aktoren erwogen. Diese Feldgerätegruppe 10 tauscht Daten, welche Eingabedaten und Ausgabedaten umfassen, über das erste Feldnetzwerk 2 mit der Steuereinrichtung 100 aus.The field device group 10 includes devices that input data from the object by the controller 100 is to be controlled, and collect a manufacturing facility and a production line that with that of the control device 100 performed control are related (hereinafter collectively referred to as "field"). An input relay and various sensors are considered as such devices for collecting input data. The field device group 10 also includes devices based on instructions (hereinafter also referred to as "output data") by the control device 100 generated, an action with the field or an effect on the field. As such devices having an effect on the field, an output relay, a contactor, a servo drive, a servo motor and other actuators are contemplated. This field device group 10 exchanges data, including input data and output data, over the first field network 2 with the control device 100 out.

Bei der in 1 gezeigten beispielhaften Ausgestaltung umfasst die Feldgerätegruppe 10 eine Fern-I/O- (-Eingabe/Ausgabe-) Einrichtung 12, eine Relaisgruppe 14, einen Bildsensor 18 und eine Kamera 20, Servoantriebe 22 und Servomotoren 24 sowie eine I/O-Einheit 16. Die Feldgerätegruppe 10 ist nicht auf diese Einrichtungen beschränkt, sondern kann beliebige Einrichtungen, die Eingabedaten sammeln können, oder Einrichtungen, die basierend auf Ausgabedaten eine Aktion durchführen können, umfassen.At the in 1 The exemplary embodiment shown includes the field device group 10 a remote I / O (input / output) device 12 , a relay group 14 , an image sensor 18 and a camera 20 , Servo drives 22 and servo motors 24 and an I / O unit 16. The field device group 10 is not limited to these devices, but may include any devices that can collect input data or devices that can perform an action based on output data.

Die Fern-I/O-Einrichtung 12 weist einen Kommunikationskoppler, der über das erste Feldnetzwerk 2 kommuniziert, und eine Eingabe-/Ausgabeeinheit (nachfolgend auch als „I/O-Einheit“ bezeichnet) auf, die Eingabedaten bezieht und Ausgabedaten ausgibt. Eingabedaten und Ausgabedaten werden über eine derartige I/O-Einheit zwischen der Steuereinrichtung 100 und dem Feld ausgetauscht. Ein Beispiel, bei welchem digitale Signale über die Relaisgruppe 14 als Eingabedaten und Ausgabedaten ausgetauscht werden, ist in 1 gezeigt. Die I/O-Einheit kann direkt mit dem Feldbus verbunden sein. 1 zeigt ein Beispiel, bei dem die I/O-Einheit 16 direkt mit dem ersten Feldnetzwerk 2 verbunden ist.The remote I / O device 12 has a communication coupler that is connected to the first field network 2 communicates, and an input / output unit (hereinafter also referred to as “I / O unit”), which receives input data and outputs output data. Input data and output data are sent via such an I / O unit between the control device 100 and exchanged the field. An example in which digital signals via the relay group 14 is exchanged as input data and output data is in 1 shown. The I / O unit can be connected directly to the fieldbus. 1 shows an example in which the I / O unit 16 connects directly to the first field network 2 connected is.

Der Bildsensor 18 führt Bildmessverarbeitungen wie etwa Musterabgleiche an Bilddaten durch, die von der Kamera 20 aufgenommen wurden, und überträgt die Verarbeitungsergebnisse an die Steuereinrichtung 100.The image sensor 18 performs image measurement processing such as pattern matching on image data by the camera 20 were recorded, and transmits the processing results to the control device 100 ,

Die Servoantriebe 22 treiben die entsprechenden Servomotoren 24 gemäß Ausgabedaten von der Steuereinrichtung 100 an.The servo drives 22 drive the corresponding servo motors 24 according to output data from the control device 100 on.

Wie vorstehend beschrieben ist, werden Daten über das erste Feldnetzwerk 2 zwischen der Steuereinrichtung 100 und der Feldgerätegruppe 10 ausgetauscht, und bei der vorliegenden Ausführungsform werden die auszutauschenden Daten zum Beispiel in jedem Zyklus (= Einheitszeit) T aktualisiert. Der Zyklus T gibt eine vorbestimmte Einheitszeit für die Steuerung der Feldgerätegruppe 10 in Echtzeit an und seine Länge beträgt beispielsweise etwa mehrere hundert Mikrosekunden bis mehrere zehn Millisekunden. Es sei angemerkt, dass eine derartige Aktualisierungsverarbeitung von auszutauschenden Daten auch als „I/O-Auffrischungsverarbeitung“ (I/O-Refresh) bezeichnet werden kann.As described above, data is sent over the first field network 2 between the control device 100 and the field device group 10 exchanged, and in the present embodiment, the data to be exchanged is updated every cycle (= unit time) T, for example. The cycle T gives a predetermined unit time for the control of the field device group 10 in real time and its length is, for example, several hundred microseconds to several tens of milliseconds. It should be noted that such an update processing of data to be exchanged can also be referred to as “I / O refresh processing” (I / O refresh).

Außerdem überträgt jede über das zweite Feldnetzwerk 4 mit der Steuereinrichtung 100 verbundene Anzeigeeinrichtung 400 nach dem Empfang eines durch einen Benutzer ausgeführten Bedienvorgangs einen dem Bedienvorgang entsprichenden Befehl oder dergleichen an die Steuereinrichtung 100 und zeigt ein Berechnungsergebnis der Steuereinrichtung 100 grafisch an.Each also transmits over the second field network 4 with the control device 100 connected display device 400 upon receipt of an operation performed by a user, a command or the like corresponding to the operation to the control device 100 and shows a calculation result of the control device 100 graphically.

Die Datenprotokollierungseinrichtung 300 ist über das lokale Netzwerk 6 mit der Steuereinrichtung 100 verbunden und tauscht benötigte Daten mit der Steuereinrichtung 100 aus. Die Datenprotokollierungseinrichtung 300 sammelt chronologisch Ereignisprotokolle, die von der Steuereinrichtung 100 erzeugt werden, und dergleichen.The data logger 300 is over the local network 6 with the control device 100 connected and exchanges required data with the control device 100 out. The data logger 300 collects chronologically Event logs issued by the controller 100 generated, and the like.

Die Unterstützungseinrichtung 200 ist eine Einrichtung, die eine Vorbereitung unterstützt, die für die Steuerung des Objekts durch die Steuereinrichtung 100 notwendig ist. Im Speziellen stellt die Unterstützungseinrichtung 200 die Entwicklungsumgebung (Programmerstellungs-/-bearbeitungsinstrument bzw. - tool, Parser, Compiler usw.) für von der Steuereinrichtung 100 auszuführende Benutzerprogramme, die Festlegungsumgebung zum Festlegen von Parametern (Konfigurieren) der Steuereinrichtung 100 und diverser mit der Steuereinrichtung 100 verbundener Einrichtungen, eine Funktion zum Übertragen der erzeugten Benutzerprogramme an die Steuereinrichtung 100 und ein später beschriebenes Debugginginstrument 227 zum Durchführen von Korrektur und Modifikation, online oder offline, der Benutzerprogramme oder dergleichen bereit, die auf der Steuereinrichtung 100 auszuführen sind.The support facility 200 is a device that supports preparation necessary for the control of the object by the control device 100 necessary is. In particular, the support facility provides 200 the development environment (program creation / processing instrument or tool, parser, compiler, etc.) for by the control device 100 user programs to be executed, the setting environment for setting parameters (configuration) of the control device 100 and various with the control device 100 connected devices, a function for transmitting the generated user programs to the control device 100 and a debugging tool described later 227 ready for performing correction and modification, online or offline, of the user programs or the like which are on the control device 100 are to be carried out.

Beispielhafte Hardwareausgestaltung von EinrichtungenExemplary hardware design of facilities

Als Nächstes werden beispielhafte Hardwareausgestaltungen der hauptsächlichen Einrichtungen beschrieben, die das Steuersystem 1 gemäß der vorliegenden Ausgestaltung bilden.Next, exemplary hardware configurations of the main devices that make up the control system will be described 1 form according to the present embodiment.

b1. Beispielhafte Hardwareausgestaltung der Steuereinrichtung 100b1. Exemplary hardware configuration of the control device 100

2 ist ein Blockschaltbild, das eine beispielhafte Hardwareausgestaltung der Steuereinrichtung 100 veranschaulicht, die das Steuersystem 1 gemäß der vorliegenden Ausführungsform bildet. Wie in 2 gezeigt ist, weist die Steuereinrichtung 100 einen Zeitgeber 101 zum Messen diverser Zeiten, einschließlich des Zyklus T, einen Prozessor 102 wie etwa eine CPU (zentrale Verarbeitungseinheit) oder eine MPU (Mikroprozessoreinheit), einen Chipsatz 104, eine Hauptspeichereinrichtung 106, eine sekundäre Speichereinrichtung 108, eine Steuereinheit 110 für das lokale Netzwerk, eine USB- (Universal Serial Bus-) Steuereinheit 112, eine Speicherkartenschnittstelle 114, eine Steuereinheit 122 für den internen Bus, Feldbussteuereinheiten 118 und 120 sowie I/O-Einheiten 124-1, 124-2 und so fort auf. Die sekundäre Speichereinrichtung 108 wird durch eine nichtflüchtige Speichereinrichtung wie etwa eine Festplatte, ein Festkörperlaufwerk (SSD) oder dergleichen gebildet. Die Hauptspeichereinrichtung 106 wird durch eine flüchtige Speichereinrichtung wie etwa ein DRAM (dynamischer RAM), ein SRAM (statischer RAM) oder dergleichen gebildet. 2 FIG. 4 is a block diagram showing an exemplary hardware configuration of the control device 100 which illustrates the tax system 1 according to the present embodiment. As in 2 is shown, the control device 100 a timer 101 for measuring various times, including the cycle T , a processor 102 such as a CPU (central processing unit) or an MPU (microprocessor unit), a chipset 104 , a main storage device 106 , a secondary storage device 108 , a control unit 110 for the local network, a USB (Universal Serial Bus) control unit 112 , a memory card interface 114 , a control unit 122 for the internal bus, fieldbus control units 118 and 120 and I / O units 124-1, 124-2 and so on. The secondary storage device 108 is formed by a non-volatile storage device such as a hard disk, a solid-state drive (SSD) or the like. The main storage facility 106 is formed by a volatile memory device such as DRAM (dynamic RAM), SRAM (static RAM) or the like.

Der Prozessor 102 realisiert eine für das Objekt der Feldgerätegruppe 10 geeignete Steuerung und später beschriebene unterschiedliche Arten von Verarbeitungen durch Auslesen von diversen in der sekundären Speichereinrichtung 108 gespeicherten Programmen, Laden der Programme in die Hauptspeichereinrichtung 106 und Ausführen der geladenen Programme. Der Chipsatz 104 realisiert die Verarbeitung der Steuereinrichtung 100 als Ganzes, indem er den Prozessor 102 und entsprechende Komponenten steuert.The processor 102 realizes one for the object of the field device group 10 suitable control and different types of processing described later by reading out various ones in the secondary storage device 108 stored programs, loading the programs into the main memory device 106 and run the loaded programs. The chipset 104 realizes the processing of the control device 100 as a whole by using the processor 102 and controls the corresponding components.

Diverse Programme wie etwa ein von dem Prozessor 102 auszuführendes Benutzerprogramm 150 und eine interne DB 130 sind in der sekundären Speichereinrichtung 108 gespeichert.Various programs such as one from the processor 102 user program to be executed 150 and an internal DB 130 are in the secondary storage device 108 saved.

Die Steuereinheit 110 für das lokale Netzwerk steuert den Austausch von Daten mit anderen Einrichtungen, der über das lokale Netzwerk 6 stattfindet. Die Steuereinheit 110 für das lokale Netzwerk ist typischerweise durch eine zweckbestimmte Schaltung realisiert, die durch ein ASIC (anwendungsspezifische integrierte Schaltung) oder ein FPGA (im Feld programmierbare Gatteranordnung) gebildet wird. Die USB-Steuereinheit 112 steuert den Austausch von Daten mit der Unterstützungseinrichtung 200 über eine USB-Verbindung. Die USB-Steuereinheit 112 ist typischerweise durch eine zweckbestimmte Schaltung realisiert, die durch ein ASIC oder ein FPGA gebildet wird.The control unit 110 for the local network controls the exchange of data with other facilities through the local network 6 takes place. The control unit 110 for the local network is typically implemented by a dedicated circuit, which is formed by an ASIC (application-specific integrated circuit) or an FPGA (gate arrangement programmable in the field). The USB control unit 112 controls the exchange of data with the support facility 200 via a USB connection. The USB control unit 112 is typically implemented by a dedicated circuit that is formed by an ASIC or an FPGA.

Die Speicherkartenschnittstelle 114 ist derart eingerichtet, dass eine Speicherkarte 116 eingeführt und entfernt werden kann, und kann Daten auf die Speicherkarte 116 schreiben und diverse Daten (Benutzerprogramme, Ablaufverfolgungsdaten und so fort) aus der Speicherkarte 116 auslesen.The memory card interface 114 is set up such that a memory card 116 can be inserted and removed, and can store data on the memory card 116 write and various data (user programs, trace data and so on) from the memory card 116 read.

Die Steuereinheit 122 für den internen Bus ist eine Schnittstelle, die Daten mit den I/O-Einheiten 124-1, 124-2 und so fort austauscht, die in der Steuereinrichtung 100 eingebaut sind. Die Steuereinheit 122 für den internen Bus ist typischerweise durch eine zweckbestimmte Schaltung realisiert, die durch ein ASIC oder ein FPGA gebildet wird.The control unit 122 for the internal bus is an interface that exchanges data with the I / O units 124-1, 124-2 and so on, that in the controller 100 are installed. The control unit 122 for the internal bus is typically implemented by a dedicated circuit, which is formed by an ASIC or an FPGA.

Die Feldbussteuereinheit 118 steuert den Austausch von Daten mit anderen Einrichtungen, der über das erste Feldnetzwerk 2 stattfindet. Die Feldbussteuereinheit 118 ist typischerweise durch eine zweckbestimmte Schaltung realisiert, die durch ein ASIC oder ein FPGA gebildet wird, kann jedoch auch durch Softwareimplementation realisiert sein. Wird eine Softwareimplementation verwendet, wird die Feldbussteuereinheit 118 hauptsächlich durch den Prozessor 102, die Hauptspeichereinrichtung 106, einen Speicher und dergleichen gebildet und realisiert die notwendige Verarbeitung, indem der Prozessor 102 ein in dem Speicher gespeichertes Systemprogramm (Firmware) oder dergleichen ausliest, das Programm in die Hauptspeichereinrichtung 106 lädt und das geladene Programm ausführt. Die Feldbussteuereinheit 120 steuert auf ähnliche Weise den Austausch von Daten mit anderen Einrichtungen, der über das zweite Feldnetzwerk 4 stattfindet. Die Feldbussteuereinheit 120 ist ebenfalls typischerweise durch eine zweckbestimmte Schaltung realisiert, die durch ein ASIC oder ein FPGA gebildet wird, kann jedoch auch durch Softwareimplementation realisiert sein. Wird eine Softwareimplementation verwendet, wird die Feldbussteuereinheit 120 hauptsächlich durch den Prozessor 102, die Hauptspeichereinrichtung 106, einen Speicher und dergleichen gebildet und realisiert notwendige Verarbeitungen, indem der Prozessor 102 ein in dem Speicher gespeichertes Systemprogramm (Firmware) oder dergleichen ausliest, das Programm in die Hauptspeichereinrichtung 106 lädt und das geladene Programm ausführt.The fieldbus control unit 118 controls the exchange of data with other facilities over the first field network 2 takes place. The fieldbus control unit 118 is typically implemented by a dedicated circuit that is formed by an ASIC or an FPGA, but can also be implemented by software implementation. If a software implementation is used, the fieldbus control unit 118 mainly through the processor 102 , the main storage device 106 , a memory and the like are formed and realized the necessary processing by the processor 102 reads out a system program (firmware) or the like stored in the memory, the program into the main memory device 106 loads and executes the loaded program. The fieldbus control unit 120 similarly controls the exchange of data with other devices over the second field network 4 takes place. The fieldbus control unit 120 is also typically implemented by a dedicated circuit, which is formed by an ASIC or an FPGA, but can also be implemented by software implementation. If a software implementation is used, the fieldbus control unit 120 mainly through the processor 102 , the main storage device 106 , a memory and the like are formed and realized necessary processing by the processor 102 reads out a system program (firmware) or the like stored in the memory, the program into the main memory device 106 loads and executes the loaded program.

Diverse von der Steuereinrichtung 100 in 2 auszuführende Programme können über ein Aufzeichnungsmedium wie etwa eine computerlesbare Speicherkarte 116 installiert werden, es kann jedoch auch eine Ausgestaltung verwendet werden, bei welcher die Programme auf der sekundären Speichereinrichtung 108 installiert werden, indem sie von einer Servereinrichtung in einem Netzwerk oder dergleichen heruntergeladen werden. Die von der Steuereinrichtung 100 gemäß der vorliegenden Ausführungsform bereitgestellten Funktionen können außerdem durch Nutzung einiger der Module realisiert werden, die von einem später beschriebenen Betriebssystem (OS) 190 bereitgestellt werden.Various from the control device 100 in 2 Programs to be executed can be recorded on a recording medium such as a computer readable memory card 116 can be installed, however, a configuration can also be used in which the programs on the secondary storage device 108 installed by downloading from a server device in a network or the like. The control device 100 Functions provided according to the present embodiment can also be realized by using some of the modules that are described by an operating system (OS) described later. 190 to be provided.

Zwar ist in 2 eine beispielhafte Ausgestaltung gezeigt, bei der benötigte Funktionen bereitgestellt werden, indem der Prozessor 102 die Programme ausführt, einige oder alle der bereitzustellenden Funktionen können jedoch auch unter Verwendung einer zweckbestimmten bzw. dedizierten Hardwareschaltung (zum Beispiel ASIC oder FPGA) implementiert werden. Der bedeutendste Teil der Steuereinrichtung 100 kann alternativ realisiert werden, indem Hardware verwendet wird, die auf einer gewöhnlichen Architektur (zum Beispiel einem Industrie-PC, der auf einem Allzweck-PC basiert) beruht. In diesem Fall kann eine Ausgestaltung verwendet werden, bei welcher mehrere Betriebssysteme mit unterschiedlichem Verwendungszweck unter Verwendung von Virtualisierungstechnologie parallel ausgeführt werden und die benötigten Anwendungen auf den entsprechenden Betriebssystemen ausgeführt werden.Is in 2 an exemplary embodiment shown in which the required functions are provided by the processor 102 executes the programs, but some or all of the functions to be provided can also be implemented using a dedicated or dedicated hardware circuit (e.g. ASIC or FPGA). The most important part of the control device 100 can alternatively be implemented using hardware based on a common architecture (for example an industrial PC based on a general purpose PC). In this case, an embodiment can be used in which several operating systems with different purposes are executed in parallel using virtualization technology and the required applications are executed on the corresponding operating systems.

b2. Beispielhafte Hardwareausgestaltung der Unterstützungseinrichtung 200b2. Exemplary hardware configuration of the support device 200

Als Nächstes wird die Unterstützungseinrichtung 200 gemäß der vorliegenden Ausführungsform durch Ausführen eines Programms unter Verwendung von Hardware realisiert, die zum Beispiel auf einer gewöhnlichen Architektur (zum Beispiel einem Allzweck-PC) basiert.Next is the support facility 200 According to the present embodiment, realized by executing a program using hardware based on, for example, an ordinary architecture (e.g., a general-purpose PC).

3 ist ein Blockschaltbild, das eine beispielhafte Hardwareausgestaltung der Unterstützungseinrichtung 200 zeigt, die das Steuersystem 1 gemäß der vorliegenden Ausführungsform bildet. Wie in 3 gezeigt ist, weist die Unterstützungseinrichtung 200 einen Prozessor 202 wie etwa eine CPU oder eine MPU, ein optisches Laufwerk 204, eine Hauptspeichereinrichtung 206, eine sekundäre Speichereinrichtung 208, eine USB- (Universal Serial Bus-) Steuereinheit 212, eine Steuereinheit 214 für das lokale Netzwerk, eine Eingabeeinheit 216 und eine Anzeigeeinheit 218 auf. Diese Komponenten sind über einen Bus 220 verbunden. 3 FIG. 4 is a block diagram showing an exemplary hardware configuration of the support device 200 that shows the tax system 1 according to the present embodiment. As in 3 is shown, the support device 200 a processor 202 such as a CPU or an MPU, an optical drive 204 , a main storage device 206 , a secondary storage device 208 , a USB (Universal Serial Bus) control unit 212 , a control unit 214 for the local network, an input unit 216 and a display unit 218 on. These components are on a bus 220 connected.

Der Prozessor 202 realisiert diverse später beschriebene unterschiedliche Arten von Verarbeitungen durch Auslesen von diversen in der sekundären Speichereinrichtung 208 gespeicherten Programmen, Laden der Programme in die Hauptspeichereinrichtung 206 und Ausführen der geladenen Programme.The processor 202 realizes various types of processing described later by reading out various ones in the secondary storage device 208 stored programs, loading the programs into the main memory device 206 and run the loaded programs.

Die sekundäre Speichereinrichtung 208 wird zum Beispiel durch eine Festplatte oder ein Festkörperlaufwerk (SSD) gebildet. In der sekundären Speichereinrichtung 208 können typischerweise ein Entwicklungsprogramm 222 zum Erstellen eines Benutzerprogramms 150, Definieren der Systemkonfiguration, Festlegen diverser Parameter und dergleichen, ein Parameterfestlegungsinstrument bzw. -tool 224 zum Zuweisen diverser Variablen, ein Datengewinnungsinstrument 226 zum Extrahieren von Zielinformationen aus von der Steuereinrichtung 100 gesammelten Daten, ein Debugginginstrument bzw. -tool 227, das die Taskplanung betrifft, und gesammelte Informationen 228 gespeichert sein. Die gesammelten Informationen 228 sind Informationen, die zum Debuggen verwendet werden können, und stellen eine Sammlung von Informationen dar, die gesammelt werden, wenn ein Task in der Steuereinrichtung 100 ausgeführt wird. Details des Debugginginstruments 227 und der gesammelten Informationen 228 werden später beschrieben. In der sekundären Speichereinrichtung 208 können außerdem das Betriebssystem und weitere benötigte Programme gespeichert sein.The secondary storage device 208 is formed, for example, by a hard drive or a solid-state drive (SSD). In the secondary storage device 208 can typically be a development program 222 to create a user program 150 , Defining the system configuration, setting various parameters and the like, a parameter setting tool 224 for assigning various variables, a data acquisition instrument 226 for extracting target information from the controller 100 collected data, a debugging tool 227 related to task scheduling, and collected information 228 be saved. The information collected 228 is information that can be used for debugging and is a collection of information that is collected when a task is in the controller 100 is performed. Details of the debugging tool 227 and the information collected 228 will be described later. In the secondary storage device 208 the operating system and other required programs can also be saved.

Die Unterstützungseinrichtung 200 weist ein optisches Laufwerk 204 auf, und aus einem computerlesbaren Aufzeichnungsmedium 205 (zum Beispiel ein optisches Aufzeichnungsmedium wie eine DVD (Digital Versatile Disc)), auf dem Programme dauerhaft gespeichert sind, können Programme ausgelesen werden und auf der sekundären Speichereinrichtung 208 oder dergleichen installiert werden.The support facility 200 has an optical drive 204 on, and from a computer readable recording medium 205 (For example, an optical recording medium such as a DVD (Digital Versatile Disc)) on which programs are permanently stored, programs can be read out and on the secondary storage device 208 or the like can be installed.

Zwar werden diverse von der Unterstützungseinrichtung 200 auszuführende Programme über das computerlesbare Aufzeichnungsmedium 205 installiert, es kann jedoch auch eine Ausgestaltung verwendet werden, bei welcher die Programme installiert werden, indem sie von einer Servereinrichtung in einem Netzwerk oder dergleichen heruntergeladen werden. Es gibt auch Fälle, bei denen die Funktionen, die durch die Unterstützungseinrichtung 200 gemäß der vorliegenden Ausführungsform bereitgestellt werden, durch Nutzung einiger der Module realisiert werden, die von dem Betriebssystem bereitgestellt sind. Various are supported by the support organization 200 programs to be executed via the computer-readable recording medium 205 installed, however, a configuration may be used in which the programs are installed by downloading them from a server device in a network or the like. There are also cases where the functions performed by the support facility 200 according to the present embodiment can be realized using some of the modules provided by the operating system.

Die USB-Steuereinheit 212 steuert den Austausch von Daten mit der Steuereinrichtung 100 über eine USB-Verbindung. Die Steuereinheit 214 für das lokale Netzwerk steuert den Austausch von Daten mit anderen Einrichtungen, der über ein beliebiges geeignetes Netzwerk stattfindet.The USB control unit 212 controls the exchange of data with the control device 100 via a USB connection. The control unit 214 for the local network controls the exchange of data with other facilities, which takes place via any suitable network.

Die Eingabeeinheit 216 wird durch eine Tastatur, eine Maus und dergleichen gebildet und nimmt Bedienvorgänge eines Benutzers (Bedienvorgänge) entgegen. Die Anzeigeeinheit 218 wird durch eine Anzeige bzw. ein Display, diverse Indikatoren, einen Drucker und dergleichen gebildet und gibt Verarbeitungsergebnisse des Prozessors 202 und dergleichen aus.The input unit 216 is formed by a keyboard, a mouse, and the like, and accepts operations of a user (operations). The display unit 218 is formed by a display, various indicators, a printer and the like and gives processing results of the processor 202 and the like.

Zwar ist in 3 eine beispielhafte Ausgestaltung gezeigt, bei der benötigte Funktionen bereitgestellt werden, indem der Prozessor 202 Programme ausführt, einige oder alle dieser bereitgestellten Funktionen können jedoch auch unter Verwendung einer zweckbestimmten bzw. dedizierten Hardwareschaltung (ASIC, FPGA usw.) implementiert werden.Is in 3 an exemplary embodiment shown in which the required functions are provided by the processor 202 Executes programs, but some or all of these provided functions can also be implemented using dedicated or dedicated hardware circuitry (ASIC, FPGA, etc.).

Gesamtverarbeitung und beispielhafte funktionale AusgestaltungOverall processing and exemplary functional design

Als Nächstes werden eine Übersicht der Verarbeitungen, die von dem Steuersystem 1 durchgeführt werden, und eine Übersicht der Funktionen der Steuereinrichtung 100 beschrieben.Next are an overview of the processing operations carried out by the control system 1 be performed, and an overview of the functions of the control device 100 described.

c1. Gesamtverarbeitungc1. elapsed

4 ist ein Flussdiagramm mit einer Übersicht von Verarbeitungen gemäß der vorliegenden Ausführungsform. Wie in 4 gezeigt ist, umfasst die von dem Steuersystem 1 durchgeführte Gesamtverarbeitung eine Verarbeitung (Schritt ST1) zum Ausführen eines von der Steuereinrichtung 100 durchgeführten Tasks und eine Verarbeitung (Schritt ST2) zum Sammeln von Informationen, die während der Ausführung des Tasks gewonnen werden. Außerdem umfasst sind eine statistische Verarbeitung (Schritt ST3) der gesammelten Informationen 228 und eine Anzeigeverarbeitung (Schritt ST4) auf Grundlage der gesammelten Informationen 228, die in der Unterstützungseinrichtung 200 durchgeführt werden. Darüber hinaus umfasst die Verarbeitung in Steuersystem 1 eine von dem Debugginginstrument 227 durchgeführte Debuggingverarbeitung (Schritt ST5) und eine Verarbeitung (Schritt ST6) zum erneuten Ausführen eines Tasks (Programms) auf Grundlage des Ergebnisses des Debuggings in der Steuereinrichtung 100. 4 FIG. 11 is a flowchart showing an overview of processing according to the present embodiment. As in 4 shown includes that of the control system 1 total processing performed processing (step ST1 ) to execute one of the control device 100 performed tasks and processing (step ST2 ) to collect information that is obtained during the execution of the task. Statistical processing (step ST3 ) of the information collected 228 and display processing (step ST4 ) based on the information collected 228 that in the support facility 200 be performed. It also includes processing in tax system 1 one of the debugging tool 227 debugging processing performed (step ST5 ) and processing (step ST6 ) to rerun a task (program) based on the result of debugging in the controller 100 ,

Es sei angemerkt, dass in 4 die statistische Verarbeitung, die Verarbeitung zum Anzeigen eines Bilds auf Grundlage der gesammelten Informationen 228 und die Debuggingverarbeitung (Schritt ST3 bis ST5) durch die Unterstützungseinrichtung 200 ausgeführt werden, diese Verarbeitungen jedoch auch durch die Steuereinrichtung 100 ausgeführt werden können.It should be noted that in 4 statistical processing, processing for displaying an image based on the information collected 228 and debugging processing (step ST3 to ST5 ) by the support organization 200 are carried out, but this processing also by the control device 100 can be executed.

c2. Funktionale Ausgestaltungc2. Functional design

5 ist ein Diagramm, das schematisch Funktionen der Steuereinrichtung 100 gemäß der vorliegenden Ausführungsform veranschaulicht. In 5 ist ein Planer 151 der Steuereinrichtung 100 zusammen mit Daten veranschaulicht, die in der sekundären Speichereinrichtung 108 gespeichert sind. 5 is a diagram that schematically functions of the control device 100 illustrated according to the present embodiment. In 5 is a planner 151 the control device 100 along with data illustrated in the secondary storage device 108 are saved.

Die Hauptspeichereinrichtung 106 weist einen Arbeitsbereich E1 auf, in den der Prozessor 102 ein auszuführendes Programm zur Ausführung lädt. Außerdem sind in der sekundären Speichereinrichtung 108 die interne DB 130, ein Protokoll 135, das während der Ausführung eines Tasks gesammelte Informationen zeigt, und das Benutzerprogramm 150 gespeichert. Das Benutzerprogramm 150 ist ein Programm, das ein Benutzer unter Verwendung der Unterstützungseinrichtung 200 erstellen kann, und es wird grundsätzlich von dem Prozessor 102 (2) in der Steuereinrichtung 100 ausgeführt.The main storage facility 106 has a workspace E1 in which the processor 102 loads a program to be executed. Also in the secondary storage device 108 the internal DB 130 , a log 135 , which shows information gathered during the execution of a task, and the user program 150 saved. The user program 150 is a program that a user uses the support facility 200 can create and it is basically done by the processor 102 ( 2 ) in the control device 100 executed.

Das Benutzerprogramm 150 umfasst primäre Programme mit festem Zyklus (Steuerungseingabeprogramm 161, Steuerungsausgabeprogramm 162 und hochrangiges Steuerprogramm 163 (Steuerungsprogramm mit hoher Priorität)), die in einem festen Zyklus (Takt) T ausgeführt werden, um ein bezeichnetes Objekt der Feldgerätegruppe 10 in Echtzeit zu steuern. Das Benutzerprogramm 150 umfasst ferner ein nachrangiges Steuerprogramm 164 (Steuerprogramm mit niederer Priorität), ein Hilfsverarbeitungsprogramm 165 (Programm für zugehörige Verarbeitungen) und ein Systemdienstprogramm 166.The user program 150 includes primary programs with a fixed cycle (control input program 161 , Control output program 162 and high-level tax program 163 (Control program with high priority)) that run in a fixed cycle (cycle) T are executed to a designated object of the field device group 10 to control in real time. The user program 150 also includes a subordinate tax program 164 (Control program with lower priority), an auxiliary processing program 165 (Related processing program) and a system utility 166 ,

Das Steuerungseingabeprogramm 161 und das Steuerungsausgabeprogramm 162 entsprechen den Funktionen der I/O-Auffrischungsverarbeitung. Im Speziellen umfassen das Steuerungseingabeprogramm 161 und das Steuerungsausgabeprogramm 162 Befehle zum Schreiben von mit der Feldgerätegruppe 10 ausgetauschten Daten (Eingabedaten und Ausgabedaten) in die interne DB 130 als Variablen und zum Auslesen der Variablen. Bei der Steuereinrichtung 100 wird jedem Datum dieser Eingabedaten und Ausgabedaten ein eindeutiger Variablenname zugewiesen, und jedes mit der Feldgerätegruppe 10 ausgetauschte Datum kann durch seinen Variablennamen ausgedrückt werden.The control input program 161 and the control output program 162 correspond to the functions of I / O refresh processing. Specifically, include the control input program 161 and the control output program 162 Commands for writing with the field device group 10 exchanged data (input data and Output data) in the internal DB 130 as variables and for reading the variables. At the control facility 100 a unique variable name is assigned to each date of this input data and output data, and each with the field device group 10 exchanged date can be expressed by its variable name.

Das hochrangige Steuerprogramm 163 umfasst typischerweise ein Ablauf-/Bewegungsprogramm (Ablaufprogramm und/oder Bewegungsprogramm). Das Ablauf-/Bewegungsprogramm umfasst Befehle zum Auslesen von Variablen aus der internen DB 130, zum Durchführen von logischen Berechnungen und/oder numerischen Berechnungen zur Steuerung eines in Echtzeit zu steuernden Objekts der Feldgerätegruppe 10 basierend auf den Variablen und zum Schreiben der Ergebnisse in die Variablen. Die Variablen, die das durch das hochrangige Steuerprogramm 163 erlangte Berechnungsergebnis angeben, werden über das Steuerungsausgabeprogramm 162 an die Feldgerätegruppe 10 ausgegeben und werden verwendet, um das Objekt der Feldgerätegruppe 10 zu steuern.The high-level tax program 163 typically includes a sequence / movement program (sequence program and / or movement program). The sequence / motion program includes commands for reading variables from the internal DB 130 , for performing logical calculations and / or numerical calculations for controlling an object of the field device group to be controlled in real time 10 based on the variables and writing the results into the variables. The variables that are created by the high-level control program 163 obtained calculation result specify, via the control output program 162 to the field device group 10 issued and used to the object of the field device group 10 to control.

Das nachrangige Steuerprogramm 164 umfasst ein Programm, das in Bezug auf die Steuerung der Feldgerätegruppe 10 eine Echtzeiteigenschaft erfordert und dessen Priorität niedriger ist als die des hochrangigen Steuerprogramms. Das nachrangige Steuerprogramm 164 kann zum Beispiel ein Bewegungsbahnerzeugungsprogramm zum Erzeugen von Bewegungsbahndaten umfassen, die dem vorstehend beschriebenen Bewegungsprogramm bereitzustellen sind.The subordinate tax program 164 includes a program related to the control of the field device group 10 requires a real-time property and its priority is lower than that of the high-level control program. The subordinate tax program 164 For example, may include a trajectory generation program for generating trajectory data to be provided to the movement program described above.

Das Hilfsverarbeitungsprogramm 165 ist ein Programm zur Durchführung von Verarbeitungen, die die Echtzeitsteuerung eines Objekts der Feldgerätegruppe 10 betreffen, es erfordert eine Echtzeiteigenschaft und umfasst zum Beispiel ein Merkmalsmengenerzeugungsprogramm und ein Anomalieerkennungsprogramm.The auxiliary processing program 165 is a program for performing processing that real-time control of an object of the field device group 10 concern, it requires real time property and includes, for example, a feature set generation program and an anomaly detection program.

Das Merkmalsmengenerzeugungsprogramm wird durch den Prozessor 102 ausgeführt. Das Merkmalsmengenerzeugungsprogramm umfasst Befehle zum Erzeugen einer Merkmalsmenge unter Verwendung von einzelnen bezeichneten der Variablen gemäß einem vorbestimmten Verfahren zur Erstellung der Merkmalsmenge. Das Merkmalsmengenerzeugungsprogramm kann zum Beispiel eine Merkmalsmenge erzeugen, die geeignet sind, anhand von Daten, die das Objekt der Feldgerätegruppe 10 betreffen, eine in einem Objekt auftretende Anomalie zu erkennen.The feature set generation program is run by the processor 102 executed. The feature set generation program includes instructions for generating a feature set using individually designated variables according to a predetermined method for creating the feature set. The feature set generation program can, for example, create a feature set that is suitable based on data that the object of the field device group 10 concern to detect an anomaly occurring in an object.

Das Anomalieerkennungsprogramm umfasst einen Befehl zur Durchführung einer Anomalieerkennungsverarbeitung unter Verwendung der von dem Merkmalsmengenerzeugungsprogramm erzeugten Merkmalsmenge. Das Anomalieerkennungsprogramm erkennt zum Beispiel auf Grundlage eines Anomalieerkennungsmodells, das durch maschinelles Lernen aufgestellt wurde, und der von dem Merkmalsmengenerzeugungsprogramm erzeugten Merkmalsmenge, ob in einem Objekt eine Anomalie vorliegt oder nicht, und speichert das Ergebnis der Erkennung als Lernergebnis in der internen DB 130 ab. Das Lernergebnis kann auch nach außen übertragen werden und an eine externe Vorrichtung ausgegeben werden.The anomaly detection program includes an instruction to perform an anomaly detection processing using the set of features generated by the feature set generation program. For example, the anomaly detection program recognizes whether an anomaly exists in an object or not based on an anomaly detection model established by machine learning and the set of features generated by the feature set generation program, and stores the result of the detection as a learning result in the internal DB 130 from. The learning result can also be transmitted to the outside and output to an external device.

Das Systemdienstprogramm 166 wird von dem Prozessor 102 ausgeführt. Das Systemdienstprogramm 166 umfasst ein Programm, das keine Echtzeiteigenschaften erfordert, und dient zur Durchführung einer Verarbeitung, die sich von der Verarbeitung zum Steuern der Feldgerätegruppe 10 unterscheidet. Das Systemdienstprogramm 166 umfasst Befehle zum Kommunizieren mit einer Vorrichtung (wie die Unterstützungseinrichtung 200, Datenprotokollierungseinrichtung 300, Anzeigeeinrichtung 400) außerhalb der Steuereinrichtung 100 und zum Schreiben von Daten in eine Datei. Das Systemdienstprogramm 166 kann beliebige Programme umfassen, die nicht zyklisch ausgeführt werden und die zum Beispiel als Reaktion auf ein Ereignis wie etwa eine Unterbrechung ausgeführt werden.The system utility 166 is from the processor 102 executed. The system utility 166 includes a program that does not require real-time properties and is used to perform processing that is different from the processing to control the field device group 10 different. The system utility 166 includes commands to communicate with a device (such as the support device 200 , Data logging device 300 , Display device 400 ) outside the control device 100 and to write data to a file. The system utility 166 may include any programs that are not executed cyclically and that are executed, for example, in response to an event such as an interrupt.

Auf der Steuereinrichtung 100 ist außerdem ein Betriebssystem 190 installiert, um dem Prozessor 102 eine Umgebung zum Ausführen von Programmen bereitzustellen. Das Betriebssystem 190 umfasst einen Multitaskausführungsabschnitt 191. Der Multitaskausführungsabschnitt 191 realisiert eine Multitasksteuerung, die dazu dient, den Prozessor 102 dazu zu veranlassen, das Benutzerprogramm 150 in Einheiten von Tasks in einer Ablauffolge auszuführen, die auf den Prioritäten der jeweiligen Tasks beruht.On the control device 100 is also an operating system 190 installed to the processor 102 to provide an environment for executing programs. The operating system 190 includes a multitask execution section 191 , The multitask execution section 191 realizes a multitask control that serves the processor 102 to cause the user agent 150 Execute in units of tasks in a sequence based on the priorities of the respective tasks.

In der vorliegenden Ausführungsform umfassen die von dem Prozessor auszuführenden Tasks einen hochrangigen Steuerungstask 141 (Steuerungstask mit hoher Priorität), einen nachrangigen Steuerungstask 142 (Steuerungstask mit niedriger Priorität), einen Hilfsverarbeitungstask 143 und einen Diensttask 144. Es sei angemerkt, dass die Arten von Tasks nicht hierauf beschränkt sind. Der hochrangige Steuerungstask 141 und der nachrangige Steuerungstask 142 entsprechen den „Steuerungstasks“ zum Steuern eines Objekts der Feldgerätegruppe 10 in Echtzeit. Der Hilfsverarbeitungstask 143 entspricht dem „Nichtsteuerungstask“, der zwar nicht direkt die Echtzeitsteuerung des Objekts betrifft, jedoch eine Verarbeitung ausführt, die die Echtzeitsteuerung betrifft. Der nachrangige Steuerungstask 142 und der Diensttask 144 sind Tasks, die sich von dem „Steuerungstask“ und dem „Nichtsteuerungstask“ unterscheiden.In the present embodiment, the tasks to be performed by the processor include a high level control task 141 (Control task with high priority), a subordinate control task 142 (Control task with low priority), an auxiliary processing task 143 and a service task 144 , It should be noted that the types of tasks are not limited to this. The high-level control task 141 and the subordinate control task 142 correspond to the "control tasks" for controlling an object of the field device group 10 Real time. The auxiliary processing task 143 corresponds to the “non-control task”, which does not directly affect the real-time control of the object, but executes processing that relates to the real-time control. The subordinate control task 142 and the service task 144 are tasks that differ from the "control task" and the "non-control task".

Bei der vorliegenden Ausführungsform sind zum Beispiel das Steuerungseingabeprogramm 161, das Steuerungsausgabeprogramm 162 und das hochrangige Steuerprogramm 163 des Benutzerprogramms 150 dem hochrangigen Steuerungstask 141 zugewiesen, und das nachrangige Steuerprogramm 164 ist dem nachrangigen Steuerungstask 142 zugewiesen. Außerdem ist das Hilfsverarbeitungsprogramm 165 dem Hilfsverarbeitungstask 143 zugewiesen und das Systemdienstprogramm 166 ist dem Diensttask 144 zugewiesen.In the present embodiment, for example, the control input program 161 , the control output program 162 and the high-level tax program 163 of the user program 150 the high-level control task 141 assigned, and the subordinate tax program 164 is the subordinate control task 142 assigned. Also, the auxiliary processing program 165 the auxiliary processing task 143 assigned and the system utility 166 is the service task 144 assigned.

Die Steuereinrichtung 100 weist ferner Tasksteuerungsinformationen 131, Systemvariablen, einen Schwellwert 152A und Prioritätsinformationen 152B auf, auf welche der Multitaskausführungsabschnitt 191 zum Ausführen eines Tasks Bezug nimmt (sie ausliest). Diese Informationen sind in der Hauptspeichereinrichtung 106 gespeichert. Die Steuereinrichtung 100 weist außerdem Kerninformationen 136 auf, die in einem später beschriebenen Mehrkernbetriebsmodus benutzt werden. Die Details der Kerninformationen 136 werden später beschrieben.The control device 100 also assigns task control information 131 , System variables, a threshold 152A and priority information 152B on which of the multitask execution section 191 refers to (reads out) a task. This information is in the main memory device 106 saved. The control device 100 also shows key information 136 that are used in a multi-core operating mode described later. The details of the core information 136 will be described later.

Die Systemvariablen umfassen diverse Variablen, einschließlich einer Taskzustandsvariable zum Steuern der Ausführung eines Tasks. Die Taskzustandsvariable umfasst ein Statusflag FL, das den Ausführungszustand des Tasks in Übereinstimmung mit dem später beschriebenen Zustandsübergang des Tasks angibt. Der Wert des Statusflags FL wird durch den Multitaskausführungsabschnitt 191 gesetzt und entsprechend dem Zustandsübergang des Tasks zum Beispiel auf „00“ (Zustand „vor Ausführung“), „01“ (Zustand „wird ausgeführt - aktiv“), „10“ (Zustand „wird ausgeführt - ausgesetzt“ (Ausführung ausgesetzt)) oder „11“ (Zustand „Ausführung abgeschlossen“) gesetzt. Es sei angemerkt, dass der Zustandsübergang eines Tasks später in 6 geschrieben wird.The system variables include various variables, including a task state variable to control the execution of a task. The task state variable includes a status flag FL indicating the execution state of the task in accordance with the state transition of the task described later. The value of the status flag FL is through the multitask execution section 191 set and corresponding to the status transition of the task, for example, to " 00 "(State" before execution ")," 01 "(State" is being executed - active ")," 10 "(Status" is being executed - suspended "(execution suspended)) or" 11 "(Status" Execution completed ") set. It should be noted that the state transition of a task later in 6 is written.

Die Tasksteuerungsinformationen 131 umfassen, jeweils für jeden Task, einen Tasknamen 132, eine Priorität 133 und einen Programmnamen 134 des Programms, das dem Task zugewiesen ist. Die Schwellwerte 152A umfassen eine erste Zeitdauer T1 und eine zweite Zeitdauer T2 (> erste Zeitdauer T1). Die erste Zeitdauer T1 entspricht einer Obergrenze der Ausführungszeit bei Ausführung des Hilfsverarbeitungsprogramms 165 des Hilfsverarbeitungstasks 143 in Echtzeit. Die Prioritätsinformationen 152B umfassen eine hohe Priorität PH, welche die Priorität des Hilfsverarbeitungstasks 143 ist, und eine niedrige Priorität PL (eine Priorität, die niedriger ist als die hohe Priorität).The task control information 131 include a task name for each task 132 , a priority 133 and a program name 134 of the program assigned to the task. The threshold values 152A comprise a first period of time T1 and a second period of time T2 (> first period T1 ). The first period T1 corresponds to an upper limit of the execution time when the auxiliary processing program is executed 165 of the auxiliary processing task 143 Real time. The priority information 152B include a high priority PH which is the priority of the auxiliary processing task 143 is, and a low priority PL (a priority that is lower than the high priority).

Der Planer 151 ist durch ein Programm realisiert, das einen Befehl zum variablen Festlegen der Priorität von Tasks - das heißt, der Ablauffolge der durch den Prozessor 102 auszuführenden Tasks - umfasst. Das Programm des Planers 151 ist in der sekundären Speichereinrichtung 108 gespeichert. Der Prozessor 102 liest das Programm des Planers 151 aus der sekundären Speichereinrichtung 108 aus, lädt das ausgelesene Programm in die Hauptspeichereinrichtung 106 und führt das geladene Programm aus.The planner 151 is implemented by a program that issues a command to variably set the priority of tasks - that is, the sequence of events by the processor 102 Tasks to be performed - includes. The planner's program 151 is in the secondary storage device 108 saved. The processor 102 reads the planner's program 151 from the secondary storage device 108 , loads the read program into the main memory device 106 and executes the loaded program.

Zustandsübergänge von TasksState transitions of tasks

Bei der vorliegenden Ausführungsform führt der Multitaskausführungsabschnitt 191 einen Task aus und veranlasst dabei den Task dazu, zwischen einem Zustand „wird ausgeführt“, einem Zustand „vor Ausführung“ und einem Zustand „Ausführung abgeschlossen“ zu wechseln. Der Zustand „wird ausgeführt“ gibt einen Zustand an, bei welchem eine Ressource des Prozessors 102 oder dergleichen dem Task zugewiesen ist und der Task ausgeführt wird. Der Zustand „vor Ausführung“ ist ein Zustand des Tasks vor dem Übergang in den Zustand „wird ausgeführt“ und gibt insbesondere einen ausführbaren Zustand an, bei dem die Ausführung des Tasks begonnen werden kann, wenn eine Ressource zugewiesen wird. Der Zustand „Ausführung abgeschlossen“ ist ein Zustand, bei dem die Ausführung des Tasks abgeschlossen ist, und gibt einen Zustand des Wartens auf ein bestimmtes Ereignis an, damit der Task in den ausführbaren Zustand übergehen kann.In the present embodiment, the multitask execution section performs 191 a task and thereby causes the task to switch between a "executing" state, a "before execution" state and a "execution completed" state. The state "is being executed" indicates a state in which a resource of the processor 102 or the like is assigned to the task and the task is executed. The state “before execution” is a state of the task before the transition to the state “is being executed” and in particular indicates an executable state in which the execution of the task can be started when a resource is assigned. The state "execution completed" is a state in which the execution of the task is completed and indicates a state of waiting for a specific event so that the task can go into the executable state.

Wenn der Prozessor 102 einen einzigen Prozessorkern aufweist, beträgt die Anzahl von Tasks, die in den Zustand „wird ausgeführt“ wechseln, indem ihnen durch den Multitaskausführungsabschnitt 191 eine Ressource des Prozessors 102 (Prozessorkern) zugewiesen wird, zu jedem Zeitpunkt eins. Der Multitaskausführungsabschnitt 191 wählt aus den Tasks im Zustand „vor Ausführung“ einen Task aus, dem als Nächstes die Ressource zuzuweisen ist, und veranlasst, dass der ausgewählte Task in den Zustand „wird ausgeführt“ übergeht. Diese Auswahl wird auf Grundlage der Priorität der jeweiligen Tasks getroffen.If the processor 102 having a single processor core, the number of tasks that go into the "running" state is by going through the multitask execution section 191 a resource of the processor 102 (Processor core) is assigned one at any time. The multitask execution section 191 selects a task from the tasks in the “before execution” state to which the resource is to be assigned next and causes the selected task to go into the “in progress” state. This selection is made based on the priority of the respective tasks.

Es wird erneut auf 5 Bezug genommen. Der Planer 151 weist einen Prioritätswechselabschnitt 153 mit einem Zähler 153B, einen Taskinformationenfestlegeabschnitt 154, der einen Befehl zum Festlegen der Tasksteuerungsinformationen 131 umfasst, und einen Ausführungsanweisungsabschnitt 157 auf, der einen Befehl zum Ausgeben der Ausführungsstartanweisung zum Anweisen des Ausführungsstarts des Hilfsverarbeitungstasks 143 an den Multitaskausführungsabschnitt 191 umfasst. Der Zähler 153B misst die Ausführungszeit des Hilfsverarbeitungstasks 143, indem er einen Zählvorgang synchron zur Ausgabe des Zeitgebers 101 durchführt. Der Planer 151 weist außerdem einen Sammelabschnitt 155, der einen Befehl zum Sammeln von Informationen wie die Anzahl von Prioritätswechseln des Hilfsverarbeitungstasks 143 und eine Ausführungszeit basierend auf Überwachungsinformationen 153A von dem Prioritätswechselabschnitt 153 umfasst, und einen Festlegeabschnitt 152 auf, der einen Befehl zum Festlegen der Schwellwerte 152A und Prioritätsinformationen 152B umfasst. Der Planer 151 weist außerdem einen Kernwechselabschnitt 156 zum Aktivieren eines später beschriebenen Mehrkernbetriebsmodus auf. Diese Abschnitte des Planers 151 sind durch Programme realisiert, und der Prozessor 102 führt diese Programme aus.It will open again 5 Referred. The planner 151 has a priority change section 153 with a counter 153B , a task information setting section 154 which has a command to set the task control information 131 and an execution instruction section 157 on which a command to issue the execution start instruction to instruct the execution start of the auxiliary processing task 143 to the multitask execution section 191 includes. The counter 153B measures the execution time of the auxiliary processing task 143 by giving one Counting process synchronized with the output of the timer 101 performs. The planner 151 also has a collection section 155 which is a command to collect information such as the number of priority changes of the auxiliary processing task 143 and an execution time based on monitoring information 153A from the priority change section 153 includes, and a fixing portion 152 on which is a command to set the thresholds 152A and priority information 152B includes. The planner 151 also has a core change section 156 to activate a multi-core operating mode described later. These sections of the planner 151 are realized through programs, and the processor 102 runs these programs.

d1. Prioritätswechsel des Hilfsverarbeitungstasks 143d1. Auxiliary Processing Task 143 Priority Change

Bei der vorliegenden Ausführungsform führt der Prioritätswechselabschnitt 153 des Planers 151 für einen Nichtsteuerungstask ein Wechseln (Anpassen) der Priorität auf Grundlage der Ausführungszeit des Tasks durch. Zwar ist bei der vorliegenden Ausführungsform als Nichtsteuerungstask, für den die Priorität derartig angepasst wird, der Hilfsverarbeitungstask 143 veranschaulicht, der Task ist jedoch nicht auf den Hilfsverarbeitungstask 143 beschränkt.In the present embodiment, the priority change section performs 153 of the planner 151 for a non-control task, changing (adjusting) the priority based on the execution time of the task. In the present embodiment, the auxiliary processing task is a non-control task for which the priority is adjusted in this way 143 illustrated, but the task is not on the auxiliary processing task 143 limited.

Bei der vorliegenden Ausführungsform wird dem hochrangigen Steuerungstask 141, welcher ein „Steuerungstask“ ist, eine höchste Priorität zugewiesen. Dem nachrangigen Steuerungstask 142, dem „Nichtsteuerungstask“, und dem Diensttask 144 wird eine Priorität zugewiesen, die geringer ist als die Priorität des hochrangigen Steuerungstasks 141. Beispielsweise kann die Priorität des Hilfsverarbeitungstasks 143 auf eine hohe Priorität PH, die einer „ersten Priorität“ entspricht, oder eine niedrige Priorität PL festgelegt werden, die einer „zweiten Priorität“ entspricht. Der Prioritätswechselabschnitt 153 umfasst einen Befehl zum Vergleichen der von dem Zähler 153B gemessenen Ausführungszeit des Hilfsverarbeitungstasks 143 mit den Schwellwerten 152A und Ändern (Wechseln) der Priorität auf die hohe Priorität PH oder die niedrige Priorität PL basierend auf dem Vergleichsergebnis.In the present embodiment, the high-level control task 141 which is a "control task" is assigned a highest priority. The subordinate control task 142 , the "non-control task", and the service task 144 a priority is assigned that is lower than the priority of the high-level control task 141 , For example, the priority of the auxiliary processing task 143 to a high priority PH that corresponds to a "first priority" or a low priority PL can be determined, which corresponds to a "second priority". The priority change section 153 includes a command to compare that from the counter 153B measured execution time of the auxiliary processing task 143 with the threshold values 152A and changing (changing) the priority to the high priority PH or the low priority PL based on the comparison result.

6 ist ein Diagramm, das schematisch Zustandsübergänge des Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulicht. Wie in 6 gezeigt ist, kann der Multitaskausführungsabschnitt 191 den Hilfsverarbeitungstask 143 dazu veranlassen, synchron zu einem Taktauslöser von dem Zustand „vor Ausführung“ in den Zustand „wird ausgeführt“ überzugehen Das Betriebssystem 190 gibt den Taktauslöser (Auslöser) synchron zum Beginn eines Zyklus T aus. 6 Fig. 4 is a diagram schematically showing state transitions of the auxiliary processing task 143 illustrated according to the present embodiment. As in 6 is shown, the multitask execution section 191 the auxiliary processing task 143 cause to go from the state "before execution" to the state "in progress" synchronously to a clock trigger The operating system 190 gives the clock trigger (trigger) synchronous to the beginning of a cycle T out.

Der Prioritätswechselabschnitt 153 misst unter Verwendung des Zählers 153B die Zeitdauer, die der Hilfsverarbeitungstask 143 im Zustand „wird ausgeführt“ verbringt, das heißt, die Länge der Zeit, in der das mit dem Hilfsverarbeitungstask 143 verknüpfte Statusflag FL den Zustand „wird ausgeführt“ angibt (FL = „01“ oder „10“). Ist die Priorität 133 des Hilfsverarbeitungstasks 143 die „hohe Priorität PH“, vergleicht der Prioritätswechselabschnitt 153 die gemessene Ausführungszeit mit der ersten Zeitdauer T1. Wenn das Vergleichsergebnis angibt, dass die Ausführungszeit länger ist als die erste Zeitdauer T1, schreibt der Prioritätswechselabschnitt 153 die mit dem Hilfsverarbeitungstask 143 verknüpfte Priorität 133 in den Tasksteuerungsinformationen 131 von der hohen Priorität PH in die niedrige Priorität PL um. Ist die Priorität 133 des Hilfsverarbeitungstasks 143 hingegen die „niedrige Priorität PL“, vergleicht der Prioritätswechselabschnitt 153 die gemessene Ausführungszeit mit der zweiten Zeitdauer T2. Wenn das Vergleichsergebnis angibt, dass die Ausführungszeit länger ist als die zweite Zeitdauer T2, schreibt der Prioritätswechselabschnitt 153 die mit dem Hilfsverarbeitungstask 143 verknüpfte Priorität 133 in den Tasksteuerungsinformationen 131 von der niedrigen Priorität PL in die hohe Priorität PH um.The priority change section 153 measures using the counter 153B the length of time that the auxiliary processing task 143 spends in the "executing" state, that is, the length of time that the auxiliary processing task 143 linked status flag FL indicates the state "is being executed" ( FL = "01" or "10"). Is the priority 133 of the auxiliary processing task 143 the "high priority PH" compares the priority change section 153 the measured execution time with the first period T1 , If the comparison result indicates that the execution time is longer than the first time period T1 , writes the priority change section 153 with the auxiliary processing task 143 linked priority 133 in the task control information 131 of high priority PH in the low priority PL around. Is the priority 133 of the auxiliary processing task 143 on the other hand, the “low priority PL”, the priority change section compares 153 the measured execution time with the second period T2 , If the comparison result indicates that the execution time is longer than the second time period T2 , writes the priority change section 153 with the auxiliary processing task 143 linked priority 133 in the task control information 131 from the low priority PL in the high priority PH around.

So kann die Priorität des Hilfsverarbeitungstasks 143 basierend auf der Zeitdauer (Ausführungszeit) gewechselt werden, die im vorherigen Zustand „wird ausgeführt“ zur Ausführung des Hilfsverarbeitungstasks 143 benötigt wurde.So the priority of the auxiliary processing task 143 based on the amount of time (execution time) that was "running" in the previous state to perform the auxiliary processing task 143 was needed.

d2. Anweisung zum Veranlassen des Hilfsverarbeitungstasks 143, in den Zustand „wird ausgeführt“ überzugehend2. Instruction to initiate the auxiliary processing task 143 to go into the "executing" state

7 ist ein Diagramm, das schematisch die Ausgestaltung des Hilfsverarbeitungsprogramms 165 gemäß der vorliegenden Ausführungsform veranschaulicht. In 7 sind Anomalieerkennungsprogramme und ein Merkmalsmengenerzeugungsprogramm parallel als Bestandteile des Hilfsverarbeitungsprogramms 165 dargestellt, und Kontakte CN sind verknüpft mit den jeweiligen Programmen gezeigt. Jeder Kontakt CN bezeichnet, ob das verknüpfte Programm gerade ausgeführt wird oder nicht. 7 Fig. 12 is a diagram schematically showing the configuration of the auxiliary processing program 165 illustrated according to the present embodiment. In 7 are anomaly detection programs and a feature set generation program in parallel as components of the auxiliary processing program 165 shown, and contacts CN are shown linked to the respective programs. Each contact CN indicates whether the linked program is currently running or not.

Nachdem er bestimmt hat, dass die Ausführungsstartbedingungen zum Beginnen der Ausführung des Hilfsverarbeitungstasks 143 erfüllt sind, gibt der Ausführungsanweisungsabschnitt 157 eine Ausführungsstartanweisung an den Multitaskausführungsabschnitt 191 aus.After determining that the execution start conditions start to execute the auxiliary processing task 143 the execution instruction section gives 157 an execution start instruction to the multitask execution section 191 out.

Bezug nehmend auf 7 werden die vorstehend erwähnten Ausführungsstartbedingungen erläutert. 7 zeigt einen Zustand, bei dem - während gerade ein anderer, nicht gezeigter Task ausgeführt wird - der mit dem Merkmalsmengenerzeugungsprogramm verknüpfte Kontakt durch eine Befehlsanweisung ausgewählt worden ist, die zum Beispiel von dem anderen Task ausgegeben wurde. Nach Empfang der Befehlsanweisung gibt der Ausführungsanweisungsabschnitt 157 des Planers 151 bei Empfang eines Taktauslösers (Auslösers) eine Anweisung zum Starten der Ausführung des Hilfsverarbeitungstasks 143 an den Multitaskausführungsabschnitt 191 aus. Der Multitaskausführungsabschnitt 191 veranlasst nach Empfang der Anweisung zum Starten der Ausführung von dem Ausführungsanweisungsabschnitt 157 den Hilfsverarbeitungstask 143 dazu, zum Zustand „vor Ausführung“ in den Zustand „wird ausgeführt“ überzugehen.Referring to 7 the execution start conditions mentioned above are explained. 7 shows a state in which - while another, not shown task is being executed - the one with the Feature set generation program linked contact has been selected by a command instruction issued, for example, by the other task. Upon receipt of the command instruction, the execution instruction section issues 157 of the planner 151 an instruction to start the execution of the auxiliary processing task upon receipt of a clock trigger (trigger) 143 to the multitask execution section 191 out. The multitask execution section 191 causes the execution instruction section to start execution upon receipt of the instruction 157 the auxiliary processing task 143 to go to the state "before execution" in the state "in progress".

Nachdem, wie vor stehend beschrieben, der Ausführungsanweisungsabschnitt 157 den in 6 gezeigten Taktauslöser (Auslöser) empfängt, die Befehlsanweisung von dem Steuerprogramm empfängt, eine automatische Anweisung von einem Ereignis basierend auf einem Variablenwert empfängt oder eine Anweisung empfängt, die eine Kombination davon umfassen kann, bestimmt der Ausführungsanweisungsabschnitt 157, dass die Ausführungsstartbedingungen des Hilfsverarbeitungstasks 143 erfüllt sind.After, as described before, the execution instruction section 157 the in 6 receives the shown clock trigger (trigger), receives the command instruction from the control program, receives an automatic instruction from an event based on a variable value, or receives an instruction, which may include a combination thereof, the execution instruction section 157 that the execution start conditions of the auxiliary processing task 143 are fulfilled.

d3. Übergang des Hilfsverarbeitungstasks 143 in den Zustand „wird ausgeführt“ und Setzen des Statusflags FLd3. Transition of the auxiliary processing task 143 to the “is being executed” state and setting the status flag FL

Der Multitaskausführungsabschnitt 191 veranlasst nach Empfang der Ausführungsstartanweisung von dem Ausführungsanweisungsabschnitt 157 den Hilfsverarbeitungstask 143 dazu, in den Zustand „wird ausgeführt“ überzugehen. Im Speziellen liest der Multitaskausführungsabschnitt 191 einen mit dem Hilfsverarbeitungstask 143 verknüpften Programmnamen 134 aus den Tasksteuerungsinformationen 131 aus. Der Multitaskausführungsabschnitt 191 liest das Hilfsverarbeitungsprogramm 165 aus der sekundären Speichereinrichtung 108 auf Grundlage des ausgelesenen Programmnamens 134 aus und lädt das ausgelesene Hilfsverarbeitungsprogramm 165 in die Hauptspeichereinrichtung 106, und als Ergebnis kann die Ausführung des Hilfsverarbeitungsprogramms 165 begonnen werden. Dadurch geht der Hilfsverarbeitungstask 143 von dem Zustand „vor Ausführung“ in den Zustand „wird ausgeführt“ über.The multitask execution section 191 causes upon receipt of the execution start instruction from the execution instruction section 157 the auxiliary processing task 143 to go into the "in progress" state. Specifically, the multitask execution section reads 191 one with the auxiliary processing task 143 linked program names 134 from the task control information 131 out. The multitask execution section 191 reads the auxiliary processing program 165 from the secondary storage device 108 based on the read program name 134 and loads the read out auxiliary processing program 165 into the main storage device 106 , and as a result the execution of the auxiliary processing program 165 be started. This goes the auxiliary processing task 143 from the state "before execution" to the state "is being executed".

Nachdem er den Hilfsverarbeitungstask 143 dazu veranlasst, von dem Zustand „vor Ausführung“ in den Zustand „wird ausgeführt“ überzugehen, setzt der Multitaskausführungsabschnitt 191 außerdem ein mit dem Hilfsverarbeitungstask 143 verknüpftes Statusflag FL. Ist der Hilfsverarbeitungstask 143 in den Zustand „wird ausgeführt“ übergegangen und führt der Prozessor 102 gerade keinen anderen Task aus, veranlasst der Multitaskausführungsabschnitt 191 im Speziellen den Prozessor 102 dazu, umgehend den Hilfsverarbeitungstask 143 auszuführen, und ändert das Statusflag FL von „00“ auf „01“.After completing the auxiliary processing task 143 The multitask execution section sets to cause the state "before execution" to change to the state "being executed" 191 also one with the auxiliary processing task 143 linked status flag FL , Is the auxiliary processing task 143 the processor changes to the "is being executed" state 102 the task of multitasking does not cause any other task 191 especially the processor 102 promptly the auxiliary processing task 143 and changes the status flag FL of " 00 " on " 01 ".

Ist hingegen der Hilfsverarbeitungstask 143 in den Zustand „wird ausgeführt“ übergegangen und führt der Prozessor 102 gerade einen anderen Task aus, das heißt, wird gerade ein anderer Task mit der gleichen Priorität aktiv ausgeführt, setzt der Multitaskausführungsabschnitt 191 die Ausführung des Hilfsverarbeitungstasks 143 aus und ändert das Statusflag FL von „00“ auf „10“. Wenn dann die Ausführung des anderen Tasks ausgesetzt ist, veranlasst der Multitaskausführungsabschnitt 191 in diesem Fall den Prozessor 102 dazu, den Hilfsverarbeitungstask 143 auszuführen, und ändert das mit dem Hilfsverarbeitungstask 143 verknüpfte Statusflag FL von „10“ auf „01“. Wenn ein weiterer Task mit der gleichen Priorität wie der Hilfsverarbeitungstask 143 in den Zustand „wird ausgeführt“ übergehen kann, nehmen so die beiden Tasks abwechselnd den Zustand „wird ausgeführt“ an, indem sie wiederholt in vorbestimmten Zeitintervallen zwischen dem Zustand „wird ausgeführt - aktiv“ und dem Zustand „wird ausgeführt - ausgesetzt“ wechseln (im Folgenden auch als „abwechselnde Ausführung“ bezeichnet), und als Ergebnis können zwei Tasks in einem Zustand „wird ausgeführt“ gehalten werden.However, is the auxiliary processing task 143 the processor changes to the "is being executed" state 102 another task is currently executing, that is, another task with the same priority is being actively executed, the multitask execution section sets 191 the execution of the auxiliary processing task 143 and changes the status flag FL from "00" to "10". Then, when execution of the other task is suspended, the multitask execution section initiates 191 in this case the processor 102 the auxiliary processing task 143 and changes that with the auxiliary processing task 143 linked status flag FL from "10" to "01". If another task with the same priority as the auxiliary processing task 143 can transition to the state "is being executed", the two tasks alternately assume the state "is being executed" by repeatedly switching between the state "being executed - active" and the state "being executed - suspended" at predetermined time intervals ( hereinafter also referred to as "alternate execution"), and as a result two tasks can be kept in a "executing" state.

Wenn später die Ausführung des Hilfsverarbeitungstasks 143 abgeschlossen ist, veranlasst der Multitaskausführungsabschnitt 191 den Hilfsverarbeitungstask 143 dazu, von dem Zustand „wird ausgeführt“ in den Zustand „Ausführung abgeschlossen“ überzugehen, und setzt das mit dem Hilfsverarbeitungstask 143 verknüpfte Statusflag FL auf „11“.If later the execution of the auxiliary processing task 143 is completed, the multitask execution section initiates 191 the auxiliary processing task 143 to go from the state "in progress" to the state "execution completed" and sets this with the auxiliary processing task 143 linked status flag FL on " 11 ".

So kann über den Wert des Statusflags FL des Hilfsverarbeitungstasks 143 angegeben werden, in welchem der Zustände „vor Ausführung“, „wird ausgeführt“ (aktiv oder ausgesetzt) oder „Ausführung abgeschlossen“ sich der Hilfsverarbeitungstask 143 befindet. Der Zähler 153B misst die Ausführungszeit des Hilfsverarbeitungstasks 143 durch Messen der Zeitdauer, in der das Statusflag FL des Hilfsverarbeitungstasks 14301“ oder „10“ beträgt.So about the value of the status flag FL of the auxiliary processing task 143 Indicate in which of the states "before execution", "is being executed" (active or suspended) or "execution completed" the auxiliary processing task 143 located. The counter 153B measures the execution time of the auxiliary processing task 143 by measuring the length of time that the status flag FL of the auxiliary processing task 143 " 01 "Or" 10 "Is.

Festlegen von Informationen zum TaskSet information about the task

Bei der vorliegenden Ausführungsform kann ein Benutzer für jeden Task die Priorität und die dem Task zugewiesenen Programme festlegen bzw. ändern.In the present embodiment, a user can set or change the priority and the programs assigned to the task for each task.

8 ist ein Diagramm, das eine Benutzerschnittstelle zum Festlegen einer Priorität für einen Task gemäß der vorliegenden Ausführungsform veranschaulicht. 9 ist ein Diagramm, das eine Benutzerschnittstelle zum Zuweisen eines Programms zu einem Task gemäß der vorliegenden Ausführungsform veranschaulicht. Die Benutzerschnittstellen in 8 und 9 sind als Bildschirmansichten der Anzeigeeinheit 218 der Unterstützungseinrichtung 200 bereitgestellt. 8th FIG. 12 is a diagram illustrating a user interface for setting a priority for a task according to the present embodiment. 9 Figure 3 is a diagram showing a user interface for assigning a program to a task according to the present Embodiment illustrated. The user interfaces in 8th and 9 are as screen views of the display unit 218 the support facility 200 provided.

Was die Prioritäten von Tasks angeht, so weist bei der vorliegenden Ausführungsform der hochrangige Steuerungstask 141 die höchste Priorität (zuerst im Ausführungsablauf) der Tasks des Benutzerprogramms 150 auf, und die Priorität des hochrangigen Steuerungstasks 141 ist fest. Die Prioritäten der anderen Tasks des Benutzerprogramms 150 können variabel so festgelegt werden, dass sie niedriger sind als die des hochrangigen Steuerungstasks 141. Der Benutzer kann die Prioritäten der anderen Tasks - mit Ausnahme des hochrangigen Steuerungstasks 141 - über die Benutzerschnittstelle in 8 festlegen.As for the priorities of tasks, the high-level control task points in the present embodiment 141 the highest priority (first in the execution sequence) of the tasks of the user program 150 and the priority of the high-level control task 141 is fixed. The priorities of the other user agent tasks 150 can be variably set to be lower than that of the high-level control task 141 , The user can prioritize the other tasks - with the exception of the high-level control task 141 - via the user interface in 8th establish.

In der Ansicht in 8 kann der Benutzer für jeden Task die Elemente „Taskart und -priorität“, „Taskname“, „Auslösezyklus“ und „Zyklus-vorüber-Erkennung aktivieren“ durch Bedienung der Eingabeeinheit 216 festlegen. Es sei angemerkt, dass bei der vorliegenden Ausführungsform für den hochrangigen Steuerungstask 141, der ein primärer Task mit festem Zyklus ist, zum Beispiel Defaultwerte (Vorgabewerte, feste Werte) derart festgelegt sind, dass der Task in einem Zyklus von 1 ms mit der Priorität „4“ ausgeführt wird, wie dies in 8 gezeigt ist.In the view in 8th For each task, the user can activate the "Task type and priority", "Task name", "Trigger cycle" and "Cycle past detection" elements by operating the input unit 216 establish. Note that in the present embodiment, for the high-level control task 141 which is a primary task with a fixed cycle, for example default values (default values, fixed values) are set in such a way that the task is executed in a cycle of 1 ms with priority "4", as described in 8th is shown.

Der Benutzer kann die anderen Tasks, mit Ausnahme des „Steuerungstasks“ nach Belieben festlegen. In 8 legt der Benutzer für den Hilfsverarbeitungstask 143 beispielhaft als Prioritäten „8“ für die hohe Priorität PH und „18“ für die niedrige Priorität PL fest, legt „10 ms“ für den Auslösezyklus fest und legt in der Spalte Zyklus-vorüber-Erkennung „2 ms“ für die erste Zeitdauer T1 und „10 ms“ für die zweite Zeitdauer T2 fest. Es sei angemerkt, dass die erste Zeitdauer T1 und die zweite Zeitdauer T2 nicht auf diese Werte beschränkt sind. Der Benutzer kann zum Beispiel die erste Zeitdauer T1 und die zweite Zeitdauer T2 entsprechend der für den Hilfsverarbeitungstask 143 erforderlichen Echtzeiteigenschaft (Ausführung ist innerhalb einer vorbestimmten Zeitdauer ab Beginn der Ausführung des Tasks abgeschlossen) als zulässigen Bereich der vorbestimmten Zeitdauer (oberer und unterer Grenzwert und dergleichen) festlegen.The user can define the other tasks, with the exception of the “control task”, at will. In 8th the user sets for the auxiliary processing task 143 exemplary as priorities "8" for the high priority PH and "18" for the low priority PL specifies "10 ms" for the trigger cycle and sets "2 ms" for the first period in the Cycle-past detection column T1 and "10 ms" for the second period T2 firmly. It should be noted that the first period T1 and the second period T2 are not limited to these values. For example, the user can use the first time period T1 and the second period T2 corresponding to that for the auxiliary processing task 143 Set the required real-time property (execution is completed within a predetermined time period from the start of the execution of the task) as the permissible range of the predetermined time period (upper and lower limit value and the like).

In 9 kann der Benutzer Programme festlegen, die den entsprechenden Tasks zuzuweisen sind. Bei der vorliegenden Ausführungsform ist einem Task grundsätzlich ein Programm zugewiesen, es können jedoch einem Task auch zwei oder mehr Programme zugewiesen sein. In 9 sind zum Beispiel die Hilfsprogramme Program0, Program 1 und Program2 (Merkmalsmengenerzeugungsprogramm, Anomalieerkennungsprogramm und dergleichen) einem Task RTS1 zugewiesen, welcher der Hilfsverarbeitungstask 143 ist.In 9 the user can define programs that are to be assigned to the corresponding tasks. In the present embodiment, a program is basically assigned to a task, but two or more programs can also be assigned to a task. In 9 are, for example, the utility programs Program0, Program 1 and Program2 (feature set generation program, anomaly detection program and the like) a task RTS1 assigned which of the auxiliary processing task 143 is.

Die Unterstützungseinrichtung 200 überträgt Informationen, die unter Verwendung der Benutzerschnittstellen in 8 und 9 festgelegt wurden, an die Steuereinrichtung 100. Der Festlegeabschnitt 152 der Steuereinrichtung 100 schreibt die Werte der hohen Priorität PH und der niedrigen Priorität PL, die mit dem Hilfsverarbeitungstask 143 verknüpft sind und in den von der Unterstützungseinrichtung 200 erhaltenen Informationen enthalten sind, in die Prioritätsinformationen 152B. Außerdem legt der Taskinformationenfestlegeabschnitt 154 für jeden Task der Tasksteuerungsinformationen 131 den Tasknamen 132, die Priorität 133 und den Programmnamen 134 auf Grundlage der von der Unterstützungseinrichtung 200 empfangenen Informationen fest.The support facility 200 transmits information using the user interfaces in 8th and 9 were set to the control device 100 , The fixing section 152 the control device 100 writes the high priority values PH and low priority PL with the auxiliary processing task 143 are linked and in the by the support organization 200 information received is included in the priority information 152B , In addition, the task information setting section sets 154 for each task of task control information 131 the task name 132 , the priority 133 and the program name 134 based on that from the support organization 200 received information.

Taskverwaltungtask management

Die Steuereinrichtung 100 gemäß der vorliegenden Ausführungsform weist einen Einkernbetriebsmodus und einen Mehrkernbetriebsmodus auf und verwaltet die Ausführung von Tasks in jedem Betriebsmodus. Im Speziellen weist der Prozessor 102 einen oder mehrere Prozessorkerne auf. Der Einkernbetriebsmodus ist ein Modus, bei dem ein Task unter Verwendung eines einzigen Prozessorkerns ausgeführt wird, und der Mehrkernbetriebsmodus ist ein Modus, bei dem ein Task unter Verwendung von zwei oder mehr Prozessorkernen ausgeführt wird. Der Betriebsmodus der Steuereinrichtung 100 ist umschaltbar. Zunächst wird der Einkernbetriebsmodus erläutert.The control device 100 according to the present embodiment, has a single-core operating mode and a multi-core operating mode and manages the execution of tasks in each operating mode. In particular, the processor has 102 one or more processor cores. The single-core operating mode is a mode in which a task is executed using a single processor core, and the multi-core operating mode is a mode in which a task is carried out using two or more processor cores. The operating mode of the control device 100 is switchable. First, the single core mode of operation will be explained.

10 ist ein Flussdiagramm, das die Verarbeitung zum Verwalten der Ausführung des Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. In 10 ist eine Verwaltungsverarbeitung PR des Planers 151 zum Verwalten der Ausführung des Hilfsverarbeitungstasks 143 zusammen mit der Verarbeitung des Multitaskausführungsabschnitts 191 zum Steuern der Ausführung des hochrangigen Steuerungstasks 141 und des Hilfsverarbeitungstasks 143 gezeigt. 10 FIG. 12 is a flowchart illustrating the processing for managing the execution of the auxiliary processing task according to the present embodiment. In 10 is administrative processing PR of the planner 151 to manage the execution of the auxiliary processing task 143 along with the processing of the multitask execution section 191 to control the execution of the high-level control task 141 and the auxiliary processing task 143 shown.

Die Verarbeitung des Multitaskausführungsabschnitts 191 zum Steuern der Ausführung des hochrangigen Steuerungstasks 141 und des Hilfsverarbeitungstasks 143 ist in der Hauptspeichereinrichtung 106 in Form eines Programms gespeichert, das einen Abschnitt des Betriebssystems 190 umfasst. Die Verwaltungsverarbeitung PR des Planers 151 ist außerdem in der sekundären Speichereinrichtung 108 in Form eines Programms gespeichert. Der Prozessor 102 liest diese Programme aus der Hauptspeichereinrichtung 106 und der sekundären Speichereinrichtung 108 aus und führt die Programme aus. Es sei angemerkt, dass bei der vorliegenden Ausführungsform der Prozessor 102 das Programm der Verwaltungsverarbeitung PR periodisch ausführt.The processing of the multitask execution section 191 to control the execution of the high-level control task 141 and the auxiliary processing task 143 is in the main storage device 106 saved in the form of a program that is a section of the operating system 190 includes. Administrative processing PR of the planner 151 is also in the secondary storage device 108 saved in the form of a program. The processor 102 reads these programs from the main memory device 106 and the secondary storage device 108 and runs the programs. It should be noted that in the present Embodiment of the processor 102 the administrative processing program PR periodically.

Wie in 10 gezeigt ist, führt der Prozessor 102 zu Beginn eines Zyklus T den hochrangigen Steuerungstask 141 aus, der die höchste Priorität 133 aller Tasks der Tasksteuerungsinformationen 131 aufweist. Im Speziellen schreibt das Steuerungseingabeprogramm 161 des hochrangigen Steuerungstasks 141 von der Feldgerätegruppe 10 empfangene Daten in eine Eingangsvariable der internen DB 130 (Schritt S1 und S2). Das hochrangige Steuerprogramm 163 führt außerdem eine Berechnung basierend auf Daten der Eingangsvariablen der internen DB 130 durch und schreibt Steuerdaten zum Steuern eines Objekts der Feldgerätegruppe 10 in eine Ausgangsvariable der internen DB 130 (Schritt S3 und S2). Das Steuerungsausgabeprogramm 162 liest Steuerdaten, die durch die in Schritt S2 eingerichtete Ausgangsvariable angegeben werden, aus und gibt die Steuerdaten zum Steuern des Objekts aus (Schritt S5).As in 10 is shown, the processor performs 102 at the beginning of a cycle T the high-level control task 141 out of the highest priority 133 all tasks of the task control information 131 having. In particular, the control input program writes 161 of the high-level control task 141 from the field device group 10 received data in an input variable of the internal DB 130 (Step S1 and S2 ). The high-level tax program 163 also performs a calculation based on data from the input variables of the internal DB 130 and writes control data for controlling an object of the field device group 10 into an output variable of the internal DB 130 (Step S3 and S2 ). The control output program 162 reads control data by the step in S2 output variable are specified, and outputs the control data for controlling the object (step S5 ).

f1. Verwaltung des Hilfsverarbeitungstasks 143 bei hoher Prioritätf1. Manage auxiliary processing task 143 at high priority

Ist die Ausführung des vorstehend beschriebenen hochrangigen Steuerungstasks 141 abgeschlossen, führt der Planer 151 eine Planung derart durch, dass die anderen Tasks entsprechend ihrer Priorität ausgeführt werden. Hierzu wird in den Tasksteuerungsinformationen 131 für die mit dem Hilfsverarbeitungstask 143 verknüpfte Priorität 133 eine „hohe Priorität PH“ als Anfangswert festgelegt, und es wird angenommen, dass die „hohe Priorität PH“ die zweithöchste Priorität nach der Priorität des hochrangigen Steuerungstasks 141 ist.Is the execution of the high level control task described above 141 completed, the planner leads 151 planning in such a way that the other tasks are executed according to their priority. This is done in the task control information 131 for those with the auxiliary processing task 143 linked priority 133 a "high priority PH" is set as the initial value, and it is assumed that the "high priority PH" is the second highest priority after the priority of the high-level control task 141 is.

Es sei angemerkt, dass dieser Anfangswert durch den Taskinformationenfestlegeabschnitt 154 festgelegt wird. Wenn der Ausführungsanweisungsabschnitt 157 nach Initialisierung des Systems (insbesondere nach Initialisierung der Steuereinrichtung 100) zum ersten Mal bestimmt, dass die Ausführungsstartbedingung des Hilfsverarbeitungstasks 143 erfüllt ist, führt der Taskinformationenfestlegeabschnitt 154 das Festlegen des Anfangswerts durch.Note that this initial value is set by the task information setting section 154 is set. If the execution instruction section 157 after initialization of the system (especially after initialization of the control device 100 ) determines for the first time that the execution start condition of the auxiliary processing task 143 is fulfilled, the task information setting section performs 154 by setting the initial value.

Wenn der Planer 151 eine Ausführungsanweisung erhalten hat und dann eine Ausgabe eines Taktauslösers synchron zum Zyklus T erhält (Schritt S6), bestimmt der Ausführungsanweisungsabschnitt 157 bei der Verwaltungsverarbeitung PR, dass die Ausführungsstartbedingung erfüllt ist (Schritt 21). Nach Erfüllung der Ausführungsstartbedingung beginnt der Planer 151 mit dem Verwalten des Zustands des Hilfsverarbeitungstasks 143 (Schritt S23). Die Ausführungsanweisung umfasst eine Befehlsanweisung von der Verarbeitung (Schritt S3) des hochrangigen Steuerungstasks 141 und eine automatische Anweisung von einer Ereignisverarbeitung (Schritt S7) des hochrangigen Steuerungstasks 141 basierend auf einem Variablenwert.If the planner 151 received an execution instruction and then an output of a clock trigger in synchronism with the cycle T receives (step S6 ), determines the execution instruction section 157 in administrative processing PR that the execution start condition is met (step 21 ). The planner begins after the execution start condition is met 151 with managing the state of the auxiliary processing task 143 (Step S23 ). The execution instruction includes an instruction instruction from the processing (step S3 ) of the high-level control task 141 and an automatic instruction from event processing (step S7 ) of the high-level control task 141 based on a variable value.

Wenn die Verwaltung des Zustands des Hilfsverarbeitungstasks 143 begonnen wurde, bestimmt der Planer 151 basierend auf dem Statusflag FL, ob der Hilfsverarbeitungstask 143 sich in einem Zustand „wird ausgeführt“ befindet oder nicht (Schritt S25). Zu diesem Zeitpunkt wird der Hilfsverarbeitungstask 143 nicht ausgeführt, das Statusflag FL ist daher „00“.When managing the state of the auxiliary processing task 143 the planner determines 151 based on the status flag FL whether the auxiliary processing task 143 is or is not in a "running" state (step S25 ). At this point, the auxiliary processing task 143 not executed the status flag FL is therefore "00".

Wenn der Planer 151 auf Grundlage des Statusflags FL bestimmt hat, dass sich der Hilfsverarbeitungstask 143 nicht in einem Zustand „wird ausgeführt“ befindet (NEIN in Schritt S25), gibt der Ausführungsanweisungsabschnitt 157 eine Ausführungsstartanweisung an den Multitaskausführungsabschnitt 191 aus (Schritt S27). Wenn die Ausführungsstartanweisung an den Multitaskausführungsabschnitt 191 ausgegeben wurde, beginnt der Zähler 153B mit dem Messen der Ausführungszeit des Hilfsverarbeitungstasks 143 (Schritt S29). Danach schließt der Planer 151 die Verwaltungsverarbeitung PR ab (Schritt S31) und kehrt mit der Verarbeitung zu Schritt S23 zurück.If the planner 151 based on the status flag FL has determined that the auxiliary processing task 143 is not in a "running" state (NO in step S25 ), the execution instruction section gives 157 an execution start instruction to the multitask execution section 191 off (step S27 ). When the execution start instruction is sent to the multitask execution section 191 the counter starts 153B with measuring the execution time of the auxiliary processing task 143 (Step S29 ). The planner then closes 151 administrative processing PR from (step S31 ) and returns to processing S23 back.

Nach Empfang der Ausführungsstartanweisung von dem Planer 151 wählt der Multitaskausführungsabschnitt 191 auf Grundlage der mit dem Hilfsverarbeitungstask 143 in den Tasksteuerungsinformationen 131 verknüpften Priorität 133 (diese Priorität ist die „hohe Priorität PH“) den Hilfsverarbeitungstask 143 als auszuführenden Task aus und veranlasst den Hilfsverarbeitungstask 143 dazu, vom Zustand „vor Ausführung“ in den Zustand „wird ausgeführt“ überzugehen. Das heißt, der Multitaskausführungsabschnitt 191 ändert das mit dem Hilfsverarbeitungstask 143 verknüpfte Statusflag FL von „00“ auf „01“ (Schritt S41). Der Prozessor 102 führt den von dem Planer 151 ausgewählten Hilfsverarbeitungstask 143 aus. Im Speziellen führt der Prozessor 102 das Hilfsverarbeitungsprogramm 165 aus, das durch den Programmnamen 134 angegeben wird, der über die Tasksteuerungsinformationen 131 mit dem Hilfsverarbeitungstask 143 verknüpft ist (Schritt S45).Upon receipt of the execution start instruction from the planner 151 selects the multitask execution section 191 based on that with the auxiliary processing task 143 in the task control information 131 linked priority 133 (this priority is the "high priority PH") the auxiliary processing task 143 as a task to be executed and initiates the auxiliary processing task 143 to change from the state "before execution" to the state "in progress". That is, the multitask execution section 191 changes that with the auxiliary processing task 143 linked status flag FL from "00" to "01" (step S41 ). The processor 102 leads that from the planner 151 selected auxiliary processing task 143 out. In particular, the processor performs 102 the auxiliary processing program 165 from that by the program name 134 is specified via the task control information 131 with the auxiliary processing task 143 is linked (step S45 ).

Zurück zur Verwaltungsverarbeitung PR: Wenn der Planer 151 anhand des Statusflags FL bestimmt hat, dass sich der Hilfsverarbeitungstask 143 in einem Zustand „wird ausgeführt“ befindet (JA in Schritt S25), vergleicht der Prioritätswechselabschnitt 153 die von dem Zähler 153B gemessene Ausführungszeit des Hilfsverarbeitungstasks 143 mit der Zeitdauer der Schwellwerte 152A (Schritt S33). Im Speziellen wählt der Prioritätswechselabschnitt 153 die zu vergleichende Zeitdauer basierend auf der Priorität 133 des Hilfsverarbeitungstasks 143 aus der ersten Zeitdauer T1 und der zweiten Zeitdauer T2 der Schwellwerte 152A aus. Die Priorität 133 des Hilfsverarbeitungstasks 143 ist hier die hohe Priorität PH. Daher wählt der Prioritätswechselabschnitt 153 die erste Zeitdauer T1 und vergleicht die Ausführungszeit des Hilfsverarbeitungstasks 143 mit der ersten Zeitdauer T1.Back to administrative processing PR : If the planner 151 based on the status flag FL has determined that the auxiliary processing task 143 is in a "running" state (YES in step S25 ), the priority change section compares 153 that of the counter 153B measured execution time of the auxiliary processing task 143 with the duration of the threshold values 152A (Step S33 ). Specifically, the priority change section chooses 153 the time period to be compared based on the priority 133 of the auxiliary processing task 143 from the first period T1 and the second period T2 the threshold values 152A out. The priority 133 of Auxiliary processing tasks 143 is the high priority here PH , Therefore, the priority change section chooses 153 the first period T1 and compares the execution time of the auxiliary processing task 143 with the first period T1 ,

Wenn der Prioritätswechselabschnitt 153 auf Grundlage des Vergleichsergebnisses bestimmt, dass die Bedingung, dass die Ausführungszeit länger als die erste Zeitdauer T1 ist, erfüllt ist, das heißt, dass die Ausführungszeit länger als die erste Zeitdauer geworden ist (sie überstiegen hat) (JA in Schritt S33), gibt der Prioritätswechselabschnitt 153 an den Multitaskausführungsabschnitt 191 eine Übersteigungsbenachrichtigung aus, die angibt, dass die Ausführungszeit die erste Zeitdauer T1 überstiegen hat, und führt eine Prioritätswechselverarbeitung aus (Schritt S35). Bei der Prioritätswechselverarbeitung ändert der Prioritätswechselabschnitt 153 die Priorität 133 des Hilfsverarbeitungstasks 143 in den Tasksteuerungsinformationen 131 auf die niedrige Priorität PL der Prioritätsinformationen 152B. Danach ist die Verwaltungsverarbeitung PR abgeschlossen (Schritt S31) und die Verarbeitung kehrt zu Schritt S23 zurück.If the priority change section 153 based on the comparison result determines that the condition that the execution time is longer than the first period T1 is met, that is, the execution time has become longer than the first period (it has exceeded) (YES in step S33 ), gives the priority change section 153 to the multitask execution section 191 a climb notification indicating that the execution time is the first time period T1 has exceeded, and executes priority change processing (step S35 ). In the priority change processing, the priority change section changes 153 the priority 133 of the auxiliary processing task 143 in the task control information 131 to the low priority PL the priority information 152B , After that is the administrative processing PR completed (step S31 ) and processing returns to step S23 back.

Auch wenn der Prioritätswechselabschnitt 153 bestimmt hat, dass die zuvor erwähnte Bedingung, dass die Ausführungszeit länger ist als die erste Zeitdauer T1, nicht erfüllt ist (NEIN in Schritt S33), das heißt, wenn er bestimmt hat, dass die Ausführungszeit die erste Zeitdauer T1 nicht überstiegen hat, wird die Verarbeitung abgeschlossen (Schritt S31) und die Verarbeitung kehrt zu Schritt S23 zurück.Even if the priority change section 153 has determined that the aforementioned condition that the execution time is longer than the first period T1 , is not fulfilled (NO in step S33 ), that is, if he has determined that the execution time is the first period T1 processing has been completed (step S31 ) and processing returns to step S23 back.

Ist die Ausführung des Hilfsverarbeitungstasks 143 durch den Prozessor 102 beendet, veranlasst der Multitaskausführungsabschnitt 191 den Hilfsverarbeitungstask 143 dazu, von einem Zustand „wird ausgeführt“ in einen Zustand „Ausführung abgeschlossen“ überzugehen. Das heißt, der Multitaskausführungsabschnitt 191 setzt das Statusflag FL des Hilfsverarbeitungstasks 143 von „11“ auf „01“ zurück (Schritt S49). Außerdem fügt der Hilfsverarbeitungstask 143 das Verarbeitungsergebnis (Ausführungsergebnis des Merkmalsmengenerzeugungsprogramm oder des Anomalieerkennungsprogramms) dem Lernergebnis in der internen DB 130 hinzu (Schritt S47 und S2).Is the execution of the auxiliary processing task 143 through the processor 102 finished, the multitask execution section causes 191 the auxiliary processing task 143 to transition from a state "in progress" to a state "execution completed". That is, the multitask execution section 191 sets the status flag FL of the auxiliary processing task 143 from "11" to "01" (step S49 ). The auxiliary processing task also adds 143 the processing result (execution result of the feature set generation program or the abnormality detection program) the learning result in the internal DB 130 added (step S47 and S2 ).

Nach Empfang der zuvor erwähnten Übersteigungsbenachrichtigung von dem Prioritätswechselabschnitt 153 führt der Multitaskausführungsabschnitt 191 eine Übersteigungsbenachrichtigungsverarbeitung durch (Schritt S43) und gibt die Verarbeitung an Schritt S45 weiter. Bei der Übersteigungsbenachrichtigungsverarbeitung führt der Multitaskausführungsabschnitt 191 zum Beispiel eine Bestimmungsverarbeitung aus, um zu bestimmen, ob die Ausführung des Hilfsverarbeitungstasks 143 auszusetzen ist oder nicht. Es sei angemerkt, dass die bei der Übersteigungsbenachrichtigungsverarbeitung durchgeführte Verarbeitung nicht auf die Bestimmungsverarbeitung beschränkt ist.Upon receipt of the aforementioned climb notification from the priority change section 153 leads the multitask execution section 191 climb notification processing by (step S43 ) and passes the processing to step S45 further. The multitask execution section performs the climb notification processing 191 for example, determination processing to determine whether the execution of the auxiliary processing task 143 is to be suspended or not. Note that the processing performed in the climb notification processing is not limited to the determination processing.

f2. Verwaltung des Hilfsverarbeitungstasks 143 bei niedriger Prioritätf2. Manage auxiliary processing task 143 at low priority

Als Nächstes wird ein Fall beschrieben, bei dem - nachdem der Planer 151 nach Durchführung der vorstehend beschriebenen Verarbeitung bei hoher Priorität den nächsten Taktauslöser erhalten hat - die mit dem Hilfsverarbeitungstask 143 verknüpfte Priorität 133 in den Tasksteuerungsinformationen 131 eine niedrige Priorität PL ist. Dies ist der Fall, bei dem die Priorität 133 des Hilfsverarbeitungstasks 143 bei dem vorstehend beschriebenen Schritt S35 durch den Prioritätswechselabschnitt 153 auf die niedrige Priorität PL geändert wurde.Next, a case will be described in which - after the planner 151 after performing the high priority processing described above, received the next clock trigger - that with the auxiliary processing task 143 linked priority 133 in the task control information 131 a low priority PL is. This is the case with priority 133 of the auxiliary processing task 143 in the step described above S35 through the priority change section 153 to the low priority PL was changed.

Es sei angemerkt, dass angenommen wird, dass diese „niedrige Priorität PL“ nach der Priorität des hochrangigen Steuerungstasks 141 die zweithöchste Priorität ist. Außerdem wird angenommen, dass die Priorität 133 (niedrige Priorität PL) des Hilfsverarbeitungstasks 143 die gleiche wie die Priorität 133 des nachrangigen Steuerungstasks 142 ist.It should be noted that it is assumed that this “low priority PL” is after the priority of the high-level control task 141 is the second highest priority. It is also believed to be a priority 133 (low priority PL ) of the auxiliary processing task 143 the same as the priority 133 of the subordinate control task 142 is.

Nach Empfang der Ausführungsanweisung des Hilfsverarbeitungstasks 143 bestimmt der Planer 151, dass die Ausführungsstartbedingung erfüllt ist (Schritt S21 und S23). Als Nächstes bestimmt der Planer 151 anhand des Statusflags FL, dass sich der Hilfsverarbeitungstask 143 nicht in einem Zustand „wird ausgeführt“ befindet (NEIN in Schritt S25), und der Ausführungsanweisungsabschnitt 157 gibt eine Ausführungsstartanweisung an den Multitaskausführungsabschnitt 191 aus (Schritt S27). Nach Empfang der Ausführungsstartanweisung veranlasst der Multitaskausführungsabschnitt 191 den Prozessor 102 dazu, den Hilfsverarbeitungstask 143 auszuführen. Im Speziellen wählt der Multitaskausführungsabschnitt 191 den Hilfsverarbeitungstask 143 und den nachrangigen Steuerungstask 142 gemäß der Priorität 133 in den Tasksteuerungsinformationen 131 aus und veranlasst, dass diese Tasks vom Zustand „vor Ausführung“ in einen Zustand „wird ausgeführt“ übergehen, und der Zähler 153B beginnt mit dem Messen der Ausführungszeit des Hilfsverarbeitungstasks 143 (Schritt S41, S45 und S29). Wenn danach die Ausführung des Hilfsverarbeitungstasks 143 abgeschlossen ist, wird das Statusflag FL des Hilfsverarbeitungstasks 143 zurückgesetzt (Schritt S49), und eine Verarbeitung des Ausführungsergebnisses des Hilfsverarbeitungstasks 143 wird durchgeführt (Schritt S47).After receiving the execution instruction of the auxiliary processing task 143 determines the planner 151 that the execution start condition is met (step S21 and S23 ). The planner then determines 151 based on the status flag FL that the auxiliary processing task 143 is not in a "running" state (NO in step S25 ), and the execution instruction section 157 gives an execution start instruction to the multitask execution section 191 off (step S27 ). Upon receipt of the execution start instruction, the multitask execution section initiates 191 the processor 102 the auxiliary processing task 143 perform. Specifically, the multitask execution section chooses 191 the auxiliary processing task 143 and the subordinate control task 142 according to the priority 133 in the task control information 131 off and causes these tasks to change from the "before execution" state to an "in progress" state, and the counter 153B starts measuring the execution time of the auxiliary processing task 143 (Step S41 . S45 and S29 ). If thereafter the execution of the auxiliary processing task 143 is completed, the status flag FL of the auxiliary processing task 143 reset (step S49 ), and processing the execution result of the auxiliary processing task 143 is carried out (step S47 ).

Hier werden zwei Tasks (der nachrangige Steuerungstask 142 und der Hilfsverarbeitungstask 143) abwechselnd ausgeführt, und der Zähler 153B misst die Ausführungszeit des Hilfsverarbeitungstasks 143 einschließlich der Zeit, zu der bei der abwechselnden Ausführung die Ausführung ausgesetzt ist, auf Grundlage des Werts des Statusflags FL des Hilfsverarbeitungstasks 143.Two tasks (the subordinate control task 142 and the auxiliary processing task 143 ) run alternately, and the counter 153B measures the execution time of the auxiliary processing task 143 including the time at which the alternate execution is suspended based on the value of the status flag FL of the auxiliary processing task 143 ,

Rückkehr zu Schritt S33 Der Prioritätswechselabschnitt 153 vergleicht die von dem Zähler 153B gemessene Ausführungszeit des Hilfsverarbeitungstasks 143 mit der Zeitdauer der Schwellwerte 152A (Schritt S33). Im Speziellen wählt der Prioritätswechselabschnitt 153 die zu vergleichende Zeitdauer basierend auf der Priorität 133 des Hilfsverarbeitungstasks 143 aus der ersten Zeitdauer T1 und der zweiten Zeitdauer T2 der Schwellwerte 152A aus. Die Priorität 133 des Hilfsverarbeitungstasks 143 ist hier die niedrige Priorität PL. Daher wählt der Prioritätswechselabschnitt 153 die zweite Zeitdauer T2 und vergleicht die Ausführungszeit des Hilfsverarbeitungstasks 143 mit der zweiten Zeitdauer T2.Return to step S33 The priority change section 153 compares that from the counter 153B measured execution time of the auxiliary processing task 143 with the duration of the threshold values 152A (Step S33 ). Specifically, the priority change section chooses 153 the time period to be compared based on the priority 133 of the auxiliary processing task 143 from the first period T1 and the second period T2 the threshold values 152A out. The priority 133 of the auxiliary processing task 143 is the low priority here PL , Therefore, the priority change section chooses 153 the second period T2 and compares the execution time of the auxiliary processing task 143 with the second period T2 ,

Wenn der Prioritätswechselabschnitt 153 auf Grundlage des Vergleichsergebnisses bestimmt, dass die Bedingung, dass die Ausführungszeit länger als die zweite Zeitdauer T2 ist, erfüllt ist, das heißt, dass die Ausführungszeit länger als die zweite Zeitdauer T2 geworden ist (sie überstiegen hat) (JA in Schritt S33), gibt der Prioritätswechselabschnitt 153 an den Multitaskausführungsabschnitt 191 eine Übersteigungsbenachrichtigung aus, die angibt, dass die Ausführungszeit die zweite Zeitdauer T2 überstiegen hat, und führt eine Prioritätswechselverarbeitung durch (Schritt S35). Bei der Prioritätswechselverarbeitung ändert der Prioritätswechselabschnitt 153 die Priorität 133 des Hilfsverarbeitungstasks 143 in den Tasksteuerungsinformationen 131 auf die hohe Priorität PH der Prioritätsinformationen 152B. Danach ist die Verwaltungsverarbeitung PR abgeschlossen (Schritt S31) und die Verarbeitung kehrt zu Schritt S23 zurück.If the priority change section 153 based on the comparison result determines that the condition that the execution time is longer than the second period T2 is satisfied, that is, the execution time is longer than the second period T2 has (exceeded) (YES in step S33 ), gives the priority change section 153 to the multitask execution section 191 a climb notification indicating that the execution time is the second period T2 has exceeded, and performs priority change processing (step S35 ). In the priority change processing, the priority change section changes 153 the priority 133 of the auxiliary processing task 143 in the task control information 131 on the high priority PH the priority information 152B , After that is the administrative processing PR completed (step S31 ) and processing returns to step S23 back.

Es sei angemerkt, dass zwar in 10 die Prioritätswechselverarbeitung ausgeführt wird, wenn die Ausführungszeit die erste Zeitdauer T1 oder die zweite Zeitdauer T2 überstiegen hat (Schritt S35), der Zeitpunkt, zu dem die Verarbeitung ausgeführt wird, ist jedoch nicht darauf beschränkt. Die Prioritätswechselverarbeitung kann zum Beispiel auch durchgeführt werden, wenn die Ausführungsstartbedingung des Hilfsverarbeitungstasks 143 erfüllt ist. In diesem Fall legt der Prioritätswechselabschnitt 153 die Priorität 133 des Hilfsverarbeitungstasks 143 in den Tasksteuerungsinformationen 131 auf die hohe Priorität PH oder die niedrige Priorität PL der Prioritätsinformationen 152B fest, wenn die Ausführungszeit des Hilfsverarbeitungstasks 143 die erste Zeitdauer T1 oder die zweite Zeitdauer T2 überstiegen hat und danach die Ausführungsstartbedingung des Hilfsverarbeitungstasks 143 erfüllt wird.It should be noted that in 10 the priority change processing is executed when the execution time is the first period T1 or the second period T2 has exceeded (step S35 ), however, the time at which processing is carried out is not limited to this. The priority change processing can also be performed, for example, when the execution start condition of the auxiliary processing task 143 is satisfied. In this case, the priority change section 153 the priority 133 of the auxiliary processing task 143 in the task control information 131 on the high priority PH or the low priority PL the priority information 152B fixed when the execution time of the auxiliary processing task 143 the first period T1 or the second period T2 and then the execution start condition of the auxiliary processing task 143 is fulfilled.

f3. Vorteil des Wechselns der Priorität des Hilfsverarbeitungstasks 143f3. Advantage of changing priority of auxiliary processing task 143

Gemäß der Verwaltungsverarbeitung PR des Planers 151 in 10 wird die Priorität auf der hohen Priorität PH gehalten, solange die Ausführungszeit des Hilfsverarbeitungstasks 143 die erste Zeitdauer T1 nicht übersteigt. Daher kann eine Hilfsverarbeitung ausgeführt werden und dabei ihre Echtzeiteigenschaft aufrechterhalten werden, und es kann zum Beispiel eine Echtzeitsteuerung eines Objekts realisiert werden, die das Ergebnis einer Hilfsverarbeitung (wie etwa Anomalieerkennungsverarbeitung) verwendet, das bei jeder Ausführung erzielt wird. Wenn die Ausführungszeit die erste Zeitdauer T1 übersteigt, wird außerdem die Priorität des Hilfsverarbeitungstasks 143 gesenkt, und es kann ein anderer Task wie etwa der nachrangige Steuerungstask 142, der ein weiterer Steuerungstask ist, bevorzugt ausgeführt werden, und als Ergebnis wird eine zuverlässige Echtzeitsteuerung des Objekts möglich, die ein Ausführungsergebnis (Bewegungsbahndaten einer Bewegungssteuerung) des nachrangigen Steuerungstasks 142 verwendet. Daher kann die Ausführung einer Hilfsverarbeitung in Echtzeit durch einen Nichtsteuerungstask realisiert werden und gleichzeitig die Realisierung einer Echtzeitsteuerung eines Objekts durch einen Steuerungstask sichergestellt werden.According to administrative processing PR of the planner 151 in 10 the priority will be on the high priority PH held as long as the execution time of the auxiliary processing task 143 the first period T1 does not exceed. Therefore, auxiliary processing can be carried out while maintaining its real-time property, and, for example, real-time control of an object can be realized using the result of auxiliary processing (such as abnormality detection processing) that is achieved each time. If the execution time is the first period T1 the priority of the auxiliary processing task 143 lowered, and another task such as the subordinate control task 142 , which is another control task, can be carried out preferentially, and as a result reliable real-time control of the object is possible, which is an execution result (movement path data of a movement control) of the subordinate control task 142 used. Therefore, the execution of auxiliary processing in real time can be realized by a non-control task and at the same time the realization of real-time control of an object can be ensured by a control task.

Wenn als Ergebnis einer mit einem anderen Task mit gleicher Priorität abwechselnden Ausführung die Ausführungszeit des Hilfsverarbeitungstasks 143 den Schwellwert 152A überstiegen hat, wird außerdem die Priorität des Hilfsverarbeitungstasks 143 geändert, und danach kann die abwechselnde Ausführung vermieden werden, und die Ausführung des Hilfsverarbeitungstasks 143 kann in einer Ausführungszeit abgeschlossen werden, die den Schwellwert nicht übersteigt. Außerdem ist die abwechselnde Ausführung gelöst (vermieden), und daher nimmt die Ausführungszeit eines weiteren Tasks ab. Wenn der weitere Task zum Beispiel der nachrangige Steuerungstask 142 ist, kann somit die Echtzeitsteuerung eines Objekts, die das Ausführungsergebnis des Tasks (Bewegungsbahndaten einer Bewegungssteuerung) verwendet, zuverlässig realisiert werden.If, as a result of execution alternating with another task with the same priority, the execution time of the auxiliary processing task 143 the threshold 152A has also exceeded, the priority of the auxiliary processing task 143 changed, and then alternate execution can be avoided, and execution of the auxiliary processing task 143 can be completed in an execution time that does not exceed the threshold. In addition, alternate execution is resolved (avoided), and therefore the execution time of another task decreases. If the further task, for example the subordinate control task 142 real-time control of an object that uses the execution result of the task (motion path data of a motion control) can thus be reliably implemented.

Wenn als Ergebnis der Ausführung des Hilfsverarbeitungstasks 143 die Ausführungszeit des Hilfsverarbeitungstasks 143 den Schwellwert 152A übersteigt, obwohl keine abwechselnde Ausführung durchgeführt wird, wird außerdem die Prozessorressource über einen vergleichsweise langen Zeittraum belegt, wodurch ein weiterer Task an der Ausführung gehindert ist. Wenn die Ausführungszeit des Hilfsverarbeitungstasks 143 die zweite Zeitdauer T2 übersteigt, erhöht der Planer 151 in diesem Zusammenhang die Priorität des Hilfsverarbeitungstasks 143 durch Ändern der Priorität von der niedrigen Priorität PL auf die hohe Priorität PH, und als Ergebnis wird die Ausführung des Hilfsverarbeitungstasks 143 früher abgeschlossen, und die Ressource kann zu einem früheren Zeitpunkt an einen weiteren Task wie etwa den nachrangigen Steuerungstask 142 abgegeben (ihm zugewiesen) werden. Übersteigt die Ausführungszeit des Hilfsverarbeitungstasks 143 die erste Zeitdauer T1, senkt der Planer 151 außerdem die Priorität des Hilfsverarbeitungstasks 143 durch Ändern der Priorität von der hohen Priorität PH in die niedrige Priorität PL, und als Ergebnis kann die Ressource an einen weiteren Task mit höherer Priorität abgegeben werden. Wenn der weitere Task zum Beispiel der nachrangigen Steuerungstask 142 zur Berechnung einer Bewegungsbahn zur Bewegungssteuerung ist, können die Bewegungsbahndaten früher an ein Bewegungsprogramm des hochrangigen Steuerungstasks 141 ausgegeben werden, und die Echtzeitsteuerung eines Objekts kann zuverlässig durchgeführt werden.If as a result of the execution of the auxiliary processing task 143 the execution time of the auxiliary processing task 143 the threshold 152A exceeds, although no alternate execution is carried out, the processor resource is also occupied over a comparatively long period of time, which prevents another task from executing. When the execution time of the auxiliary processing task 143 the second period T2 the planner increases 151 in this context the priority of the auxiliary processing task 143 by changing the priority from the low priority PL on the high priority PH , and as a result the execution of the auxiliary processing task 143 Completed earlier, and the resource can be sent to another task earlier, such as the subordinate control task 142 given (assigned to him). Exceeds the execution time of the auxiliary processing task 143 the first period T1 , the planner lowers 151 also the priority of the auxiliary processing task 143 by changing the priority from the high priority PH in the low priority PL , and as a result, the resource can be given to another higher priority task. If the further task, for example the subordinate control task 142 to calculate a motion path for motion control, the motion path data can be sent to a motion program of the high-level control task earlier 141 are output, and real-time control of an object can be performed reliably.

Planungsmodell des Hilfsverarbeitungstasks 143Planning model of auxiliary processing task 143

Es wird nun die Verwaltung der Ausführung des Hilfsverarbeitungstasks 143 durch die Verwaltungsverarbeitung PR in 10 anhand eines Planungsmodells der Taskausführung näher beschrieben. 11A und 11B sind Diagramme, die ein Planungsmodell des Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulichen. 12A bis 12C sind Diagramme, die Prioritätswechsel des Hilfsverarbeitungstasks 143 in Verbindung mit 11A und 11B veranschaulichen. Die vertikale Achse in 11A und 11B gibt die Priorität eines Tasks an, die waagrechte Achse gibt der Verlauf der Zeit an und zeigt den n-ten Zyklus T, den (n+1)-ten Zyklus T, den (n+2)-ten Zyklus, den (n+3)-ten Zyklus und so weiter.It will now manage the execution of the auxiliary processing task 143 through administrative processing PR in 10 described in more detail using a planning model of the task execution. 11A and 11B are diagrams showing a planning model of the auxiliary processing task 143 according to the present embodiment. 12A to 12C are diagrams that change the priority of the auxiliary processing task 143 combined with 11A and 11B illustrate. The vertical axis in 11A and 11B indicates the priority of a task, the horizontal axis indicates the course of time and shows the nth cycle T , the (n + 1) th cycle T , the (n + 2) th cycle, the (n + 3) th cycle and so on.

Bei der vorliegenden Ausführungsform kann die hohe Priorität PH des Hilfsverarbeitungstasks 143 kleiner als oder gleich groß wie die Priorität eines weiteren Tasks, wie dem nachrangigen Steuerungstask 142, sein. 11A zeigt zum Beispiel einen Fall, bei dem die hohe Priorität PH des Hilfsverarbeitungstasks 143 gleich der Priorität des nachrangigen Steuerungstasks 142 ist. Bei der vorliegenden Ausführungsform kann außerdem die niedrige Priorität PL des Hilfsverarbeitungstasks 143 größer als oder gleich groß wie die Priorität eines weiteren Tasks, wie dem nachrangigen Steuerungstask 142, sein. 11B zeigt beispielsweise ein Beispiel 1 und ein Beispiel 2, bei denen die Priorität des Hilfsverarbeitungstasks 143 die niedrige Priorität PL ist. Beispiel 1 in 11B zeigt einen Fall, bei dem die niedrige Priorität PL des Hilfsverarbeitungstasks 143 einen Wert aufweist, der zwischen der Priorität des nachrangigen Steuerungstasks 142 und der Priorität des Diensttasks 144 liegt. Beispiel 2 zeigt einen Fall, bei dem die niedrige Priorität PL des Hilfsverarbeitungstasks 143 niedriger ist als die Priorität des nachrangigen Steuerungstasks 142 und gleich groß ist wie die Priorität des Diensttasks 144.In the present embodiment, the high priority PH of the auxiliary processing task 143 less than or equal to the priority of another task, such as the subordinate control task 142 , his. 11A shows for example a case where the high priority PH of the auxiliary processing task 143 equal to the priority of the subordinate control task 142 is. In the present embodiment, the low priority can also PL of the auxiliary processing task 143 greater than or equal to the priority of another task, such as the subordinate control task 142 , his. 11B For example, shows an example 1 and an example 2, in which the priority of the auxiliary processing task 143 the low priority PL is. Example 1 in 11B shows a case where the low priority PL of the auxiliary processing task 143 has a value between the priority of the subordinate control task 142 and the priority of the service task 144 lies. Example 2 shows a case where the low priority PL of the auxiliary processing task 143 is lower than the priority of the subordinate control task 142 and is the same as the priority of the service task 144 ,

g1. Planungsmodell bei hoher Priorität des Hilfsverarbeitungstasks 143g1. Planning model with high priority of auxiliary processing task 143

Wie in 11A gezeigt ist, beginnt jeder Zyklus T als Reaktion auf ein Zyklusstartsignal synchron zur Ausgabe des Zeitgebers 101. Es wird hier angenommen, dass die Prioritäten jeweiliger Tasks wie in 12A gezeigt in den Tasksteuerungsinformationen 131 festgelegt sind. Zu Beginn des Zyklus T wird zuerst der hochrangige Steuerungstask 141 (Steuerungseingabeprogramm 161, Steuerungsausgabeprogramm 162 und hochrangiges Steuerprogramm 163) mit der höchsten Priorität ausgeführt, und danach führt der Multitaskausführungsabschnitt 191 abwechselnd den nachrangigen Steuerungstask 142 und den Hilfsverarbeitungstask 143 aus, die die gleiche Priorität 133 aufweisen, welche, wie in den Tasksteuerungsinformationen 131 in 12A angegeben ist, eine hohe Priorität (= 16) ist. Die Ausführungszeit t des Hilfsverarbeitungstasks 143 (siehe 11A) wird so gemessen, dass ein Zeitraum, während dem bei der abwechselnden Ausführung die Ausführung ausgesetzt ist (das heißt, der Zeitraum, während dem der nachrangige Steuerungstask 142 aktiv ausgeführt wird), eingeschlossen ist.As in 11A each cycle begins T in response to a cycle start signal in synchronism with the output of the timer 101 , It is assumed here that the priorities of the respective tasks are as described in 12A shown in the task control information 131 are set. At the beginning of the cycle T becomes the high-level control task first 141 (Control input program 161 , Control output program 162 and high-level tax program 163 ) with the highest priority, and then the multitask execution section performs 191 alternately the subordinate control task 142 and the auxiliary processing task 143 from having the same priority 133 which, as in the task control information 131 in 12A is specified, is a high priority (= 16). The execution time t of the auxiliary processing task 143 (please refer 11A) is measured so that a period during which the alternate execution is suspended (that is, the period during which the subordinate control task 142 is actively executed).

Ist die Ausführungszeit t in 11A kürzer oder gleich der ersten Zeitdauer T1, führt der Prioritätswechselabschnitt 153 die Prioritätswechselverarbeitung nicht durch, und als Ergebnis verbleibt die Priorität 133 des Hilfsverarbeitungstasks 143 bei der hohen Priorität aus 12A. Wenn hingegen die Ausführungszeit t in 11A länger als die erste Zeitdauer T1 ist, führt der Prioritätswechselabschnitt 153 die Prioritätswechselverarbeitung durch. Dadurch wechselt die Priorität 133 des Hilfsverarbeitungstasks 143 von der Priorität aus 12A zu einer in 12B bzw. 12C gezeigten niedrigen Priorität (= 48).Is the execution time t in 11A shorter or equal to the first period T1 , the priority change section leads 153 the priority change processing is not performed, and as a result, the priority remains 133 of the auxiliary processing task 143 at high priority 12A , However, if the execution time t in 11A longer than the first period T1 is the priority change section 153 the priority change processing by. This changes the priority 133 of the auxiliary processing task 143 from the priority 12A to one in 12B respectively. 12C low priority shown (= 48).

g2. Planungsmodell bei niedriger Priorität des Hilfsverarbeitungstasks 143g2. Planning model with low priority of auxiliary processing task 143

Bezug nehmend auf Beispiel 1 in 11B wird nun ein Fall beschrieben, bei dem der Hilfsverarbeitungstask 143, wie in 12B gezeigt ist, die niedrige Priorität PL aufweist. Ähnlich wie in 11A wird zunächst der hochrangige Steuerungstask 141 ausgeführt, und danach wird ein weiterer Task ausgeführt. Bei diesem Fall ist gemäß den Tasksteuerungsinformationen 131 aus 12B die Priorität des nachrangigen Steuerungstasks 142 höher als die Priorität des Hilfsverarbeitungstasks 143. Daher führt der Multitaskausführungsabschnitt 191 den nachrangigen Steuerungstask 142 aus und führt dann den Hilfsverarbeitungstask 143 aus.Referring to Example 1 in 11B a case where the auxiliary processing task 143 , as in 12B is shown the low priority PL having. Similar to 11A is the high-level control task 141 executed, and then another task is executed. In this case, according to the task control information 131 out 12B the priority of the subordinate control task 142 higher than the priority of the auxiliary processing task 143 , Therefore, the multitask execution section performs 191 the subordinate control task 142 and then runs the auxiliary processing task 143 out.

In Beispiel 1 führt der Prioritätswechselabschnitt 153 die Prioritätswechselverarbeitung aus, wenn die Ausführungszeit t länger ist als die zweite Zeitdauer T2. Dadurch kehrt die Priorität 133 des Hilfsverarbeitungstasks 143 zurück zur ursprünglichen hohen Priorität, die durch die Tasksteuerungsinformationen 131 in 12A angegeben ist. In example 1, the priority change section leads 153 the priority change processing when the execution time t is longer than the second period T2 , This reverses the priority 133 of the auxiliary processing task 143 back to the original high priority set by the task control information 131 in 12A is specified.

Bezug nehmend auf Beispiel 2 in 11B wird nun ein Fall beschrieben, bei dem der Hilfsverarbeitungstask 143, wie in 12C gezeigt ist, eine niedrige Priorität aufweist. Auch in Beispiel 2 wird, ähnlich wie in 11A, zunächst der hochrangige Steuerungstask 141 ausgeführt, und dann wird ein weiterer Task ausgeführt. Bei diesem Fall ist gemäß den Tasksteuerungsinformationen 131 aus 12C die Priorität des nachrangigen Steuerungstasks 142 höher als die Priorität des Hilfsverarbeitungstasks 143, und die Priorität des Hilfsverarbeitungstasks 143 ist gleich der Priorität des Diensttasks 144. Daher führt der Multitaskausführungsabschnitt 191 den nachrangigen Steuerungstask 142 aus und führt dann abwechselnd den Hilfsverarbeitungstask 143 und den Diensttask 144 aus, welche die gleiche Priorität aufweisen.Referring to Example 2 in 11B a case where the auxiliary processing task 143 , as in 12C is shown to have a low priority. In Example 2 too, similar to that in 11A , first the high-level control task 141 executed, and then another task is executed. In this case, according to the task control information 131 out 12C the priority of the subordinate control task 142 higher than the priority of the auxiliary processing task 143 , and the priority of the auxiliary processing task 143 is equal to the priority of the service task 144 , Therefore, the multitask execution section performs 191 the subordinate control task 142 and then take turns running the auxiliary processing task 143 and the service task 144 which have the same priority.

In Beispiel 2 führt der Prioritätswechselabschnitt 153 die Prioritätswechselverarbeitung aus, wenn die Ausführungszeit t des Hilfsverarbeitungstasks 143 länger ist als die zweite Zeitdauer T2. Dadurch wechselt die Priorität 133 des Hilfsverarbeitungstasks 143, so dass sie zur ursprünglichen hohen Priorität zurückkehrt, die durch die Tasksteuerungsinformationen 131 in 12A angegeben ist.In example 2, the priority change section leads 153 the priority change processing when the execution time t of the auxiliary processing task 143 is longer than the second period T2 , This changes the priority 133 of the auxiliary processing task 143 so that it returns to the original high priority set by the task control information 131 in 12A is specified.

Weiteres Beispiel für Hilfsverarbeitungstask 143Another example of auxiliary processing task 143

Dem vorstehend beschriebenen Hilfsverarbeitungstask 143 sind als Verarbeitungen, die den hochrangigen Steuerungstask 141 zur Echtzeitsteuerung betreffen, eine Merkmalsmengenerzeugungsverarbeitung und eine Anomalieerkennungsverarbeitung zugewiesen, die dem Hilfsverarbeitungstask 143 zugewiesenen Verarbeitungen umfassen jedoch auch eine Kommunikationsverarbeitung, die innerhalb der Steuereinrichtung 100 durchgeführt wird. Die Kommunikationsverarbeitung kann im Speziellen eine Verarbeitung umfassen, bei der Daten, die die Merkmalsmengenerzeugungsverarbeitung oder die Anomalieerkennungsverarbeitung betreffen, an diverse Einrichtungen, darunter an die sekundäre Speichereinrichtung 108, kommuniziert werden.The auxiliary processing task described above 143 are as processing operations that the high-level control task 141 for real-time control, feature set generation processing and anomaly detection processing assigned to the auxiliary processing task 143 However, assigned processings also include communication processing that takes place within the controller 100 is carried out. Specifically, the communication processing may include processing in which data related to the feature set generation processing or the abnormality detection processing is sent to various devices, including the secondary storage device 108 , to be communicated.

Die Daten, die die Merkmalsmengenerzeugungsverarbeitung und die Anomalieerkennungsverarbeitung betreffen, umfassen außerdem von der Feldgerätegruppe 10 stammende Rohdaten zum Erzeugen einer Merkmalsmenge, das Ergebnis einer Merkmalsmengenerzeugungsverarbeitung (erzeugte Merkmalsmenge und dergleichen), das Ergebnis einer Anomalieerkennung und dergleichen, die Daten sind jedoch nicht darauf beschränkt. Die Kommunikationsverarbeitung des Ergebnisses der Merkmalsmengenerzeugungsverarbeitung und des Ergebnisses einer Anomalieerkennung kann Kommunikation mit der sekundären Speichereinrichtung 108 und Kommunikation mit einer externen Einrichtung über die Steuereinheit 110 für das lokale Netzwerk, die USB- (Universal Serial Bus-) Steuereinheit 112, die Speicherkartenschnittstelle 114 und dergleichen umfassen. Außerdem kann die Kommunikationsverarbeitung der Rohdaten und des Ergebnisses einer Anomalieerkennung Kommunikation mit einer externen Einrichtung über die Steuereinheit 122 für den internen Bus, die Feldbussteuereinheit 118 oder 120, die I/O-Einheit 124-1, 124-2 usw. oder dergleichen umfassen.The data related to feature set generation processing and anomaly detection processing also includes from the field device group 10 raw data for generating a set of features, the result of feature set generation processing (generated feature set and the like), the result of anomaly detection and the like, but the data is not limited to this. The communication processing of the result of the feature set generation processing and the result of an abnormality detection can communicate with the secondary storage device 108 and communication with an external device via the control unit 110 for the local network, the USB (Universal Serial Bus) control unit 112 , the memory card interface 114 and the like. In addition, the communication processing of the raw data and the result of an abnormality detection can communicate with an external device via the control unit 122 for the internal bus, the fieldbus control unit 118 or 120 which include I / O unit 124-1, 124-2, etc. or the like.

Weiteres Beispiel für Festlegung von Informationen zum TaskAnother example of setting information about the task

Es wird nun ein weiteres Beispiel für das Festlegen von Informationen beschrieben, die einen in 8 und 9 beschriebenen Task betreffen. 13 ist ein Diagramm, das ein Beispiel für ein Festlegen von Prioritäten und Schwellwerten für mehrere Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. Zwar legt in 5 der Festlegeabschnitt 152 die Prioritätsinformationen 152B und die Schwellwerte 152A separat fest, das Festlegen kann jedoch auch, wie in 13 gezeigt ist, in Form einer einzigen Tabelle erfolgen.Another example of specifying information that will be included in 8th and 9 described task concern. 13 10 is a diagram illustrating an example of setting priorities and thresholds for multiple auxiliary processing tasks according to the present embodiment. Although puts in 5 the fixing section 152 the priority information 152B and the thresholds 152A separately, but the setting can also, as in 13 is shown in the form of a single table.

Zum Beispiel ist in 13 ein Fall gezeigt, bei dem der Hilfsverarbeitungstask 143 mehrere Tasks RTS1 und RTS2 umfasst. In 13 werden den jeweiligen Tasks RTSi durch den Festlegeabschnitt 152 Prioritäten (hohe Priorität PH, niedrige Priorität PL) und Schwellwerte (erste Zeitdauer T1 und zweite Zeitdauer T2) in Form einer Tabelle zugewiesen.For example, in 13 shown a case where the auxiliary processing task 143 multiple tasks RTS1 and RTS 2 includes. In 13 are assigned to the respective tasks RTSi by the setting section 152 Priorities (high priority PH , low priority PL ) and threshold values (first period T1 and second period T2 ) in the form of a table.

14 ist ein Diagramm, das ein Verfahren zum Zuweisen von Programmen an mehrere Hilfsverarbeitungstasks gemäß der vorliegenden Ausführungsform veranschaulicht. Der untere Abschnitt von 14 zeigt eine beispielhafte Ansicht, die als Benutzerschnittstelle zum Durchführen einer Zuweisung eines Programms an einen Hilfsverarbeitungstask dient. Die Ansicht wird auf der Anzeigeeinheit 218 der Unterstützungseinrichtung 200 angezeigt. Das Entwicklungsprogramm 222 analysiert die Struktur des Hilfsverarbeitungsprogramms 165, extrahiert auf Grundlage des Ergebnisses der Analyse mehrere Programme (Merkmalsmengenerzeugungsprogramm und Anomalieerkennungsprogramm), die in dem Hilfsverarbeitungsprogramm 165 enthalten sind, und zeigt die extrahierten Programme an. 14 FIG. 12 is a diagram illustrating a method of assigning programs to multiple auxiliary processing tasks according to the present embodiment. The lower section of 14 FIG. 12 shows an exemplary view that serves as a user interface for performing assignment of a program to an auxiliary processing task. The view is on the display unit 218 the support facility 200 displayed. The development program 222 analyzes the structure of the auxiliary processing program 165 , based on the result of the analysis, extracts several programs (feature set generation program and anomaly detection program) that are in the auxiliary processing program 165 and displays the extracted programs.

Der Benutzer bedient die Eingabeeinheit 216 und legt über die Ansicht in 14 an den Hilfsverarbeitungstask 143 zuzuweisende Programme fest. Im oberen Abschnitt von 14 ist ein Zustand dargestellt, bei dem drei Tasks RTS1 bis RTS3 als Hilfsverarbeitungstask 143 festgelegt werden können und der Benutzer den Tasks RTSi das Anomalieerkennungsprogramm und das Merkmalsmengenerzeugungsprogramm zugewiesen hat (Programmnamen 134 festgelegt hat).The user operates the input unit 216 and puts over the view in 14 to the Auxiliary processing task 143 programs to be assigned. In the upper section of 14 a state is shown in which three tasks RTS1 to RTS3 as an auxiliary processing task 143 can be defined and the user has assigned the anomaly detection program and the feature set generation program to the RTSi tasks (program names 134 has determined).

Auf diese Weise können Programmkonfigurationsinformationen des im unteren Abschnitt von 14 gezeigten Hilfsverarbeitungsprogramms 165 als Informationen zur Unterstützung des Benutzers bei der Bestimmung des den Tasks RTSi zuzuweisenden Programms bereitgestellt werden.In this way, program configuration information of the in the lower section of 14 auxiliary processing program shown 165 are provided as information to assist the user in determining the program to be assigned to the RTSi tasks.

Gesammelte Informationen und DebuggingCollected information and debugging

Bei der vorliegenden Ausführungsform zeichnet der Sammelabschnitt 155 Informationen, die die Planung betreffen, als Protokoll 135 auf, wenn der Hilfsverarbeitungstask 143 ausgeführt wird. Das Debugginginstrument 227 erzeugt Informationen zur Unterstützung von Debugging basierend auf gesammelten Informationen 228, die durch Sammeln der Protokolle 135 erhalten werden, und stellt die erzeugten Unterstützungsinformationen dem Benutzer bereit.In the present embodiment, the collecting section draws 155 Information related to planning as a log 135 when the auxiliary processing task 143 is performed. The debugging tool 227 generates information to support debugging based on collected information 228 by collecting the logs 135 are obtained and provides the generated support information to the user.

Bei der vorliegenden Ausführungsform bedeutet „Debugging“ das Anpassen und Ändern von Benutzerfestlegungsinformationen (erste Zeitdauer T1, zweite Zeitdauer T2, Priorität (hohe Priorität PH und niedrige Priorität PL), dem Hilfsverarbeitungstask 143 zuzuweisende Programme (einschließlich Programmnamen und -art)), die durch den Benutzer festgelegt wurden. Der Benutzer führt das Debugging beispielsweise durch, damit die Echtzeitsteuerung zuverlässig durchgeführt werden kann.In the present embodiment, “debugging” means adapting and changing user setting information (first period of time T1 , second period T2 , Priority (high priority PH and low priority PL ), the auxiliary processing task 143 programs to be assigned (including program name and type) that have been specified by the user. The user performs the debugging, for example, so that the real-time control can be carried out reliably.

15 ist ein Diagramm, das eine beispielhafte Anzeige von Unterstützungsinformationen zum Debugging gemäß der vorliegenden Ausführungsform veranschaulicht. 16A und 16B sind Diagramme, die ein Beispiel für die Überwachungsinformationen 153A und das Protokoll 135 gemäß der vorliegenden Ausführungsform veranschaulichen. 17 ist ein Diagramm, das ein Beispiel für die gesammelten Informationen 228 gemäß der vorliegenden Ausführungsform veranschaulicht. 15 FIG. 12 is a diagram illustrating an exemplary display of support information for debugging according to the present embodiment. 16A and 16B are diagrams showing an example of the monitoring information 153A and the protocol 135 according to the present embodiment. 17 is a diagram that is an example of the information collected 228 illustrated according to the present embodiment.

J1. Zu sammelnde InformationenJ1. Information to collect

Bei der vorliegenden Ausführungsform empfängt der Sammelabschnitt 155 Überwachungsinformationen 153A, die von dem Prioritätswechselabschnitt 153 ausgegeben werden, während der Hilfsverarbeitungstask 143 ausgeführt wird, und speichert die empfangenen Überwachungsinformationen 153A als Protokoll 135 in der sekundären Speichereinrichtung 108. Die Überwachungsinformationen 153A sind Informationen, die die Planung der Ausführung des Hilfsverarbeitungstasks 143 betreffen, und umfassen zum Beispiel die aktuelle Messzeit, die von dem Zähler 153B ausgegeben wird, und die Priorität (entweder hohe Priorität PH oder niedrige Priorität PL).In the present embodiment, the collecting section receives 155 monitoring information 153A by the priority change section 153 output during the auxiliary processing task 143 is executed and stores the monitoring information received 153A as a protocol 135 in the secondary storage device 108 , The monitoring information 153A are information that schedule the execution of the auxiliary processing task 143 concern and include, for example, the current measurement time taken by the counter 153B is issued, and the priority (either high priority PH or low priority PL ).

16A zeigt ein Beispiel für die Überwachungsinformationen 153A und 16B zeigt ein Beispiel für das Protokoll 135. Es wird beispielsweise ein Fall angenommen, bei dem für einen Task RTS1, welcher der Hilfsverarbeitungstask 143 ist, die erste Zeitdauer T1 auf 2 ms festgelegt ist und die zweite Zeitdauer T2 auf 10 ms festgelegt ist. In diesem Fall wird die Ausführung des Tasks RTS1 mit der hohen Priorität PH begonnen und, wenn die Ausführung beendet ist, gibt der Prioritätswechselabschnitt 153 zum Beispiel Überwachungsinformationen 153A gemäß 16A aus, und die Elemente in 16B werden als Protokoll 135 aufgezeichnet. 16A shows an example of the monitoring information 153A and 16B shows an example of the protocol 135 , For example, assume a case where a task RTS1 which is the auxiliary processing task 143 is, the first period T1 is set to 2 ms and the second period T2 is set to 10 ms. In this case, the execution of the task RTS1 with the high priority PH started and when the execution is finished, the priority change section gives 153 for example monitoring information 153A according to 16A from, and the elements in 16B are used as a protocol 135 recorded.

Im Speziellen geben die Überwachungsinformationen 153A in 16A an, dass die Priorität nach Abschluss der Ausführung des Tasks RTS1 eine „hohe Priorität“ ist, und dass die Ausführung 0,2 ms nach Beginn der Ausführung bei dieser hohen Priorität beendet ist. Außerdem gibt das Protokoll 135 in 16B an, dass die Priorität zwischen Beginn der Ausführung des Tasks RTS1 und Abschluss zweimal wechselte (das heißt, von hoher Priorität zu niedriger Priorität und zurück zu hoher Priorität), und dass als Gesamtausführungszeit 12,2 ms benötigt wurden.Specifically give the monitoring information 153A in 16A indicates that the priority is complete after the task completes RTS1 is a "high priority" and that execution ends at this high priority 0.2 ms after the start of execution. The protocol also gives 135 in 16B indicates that the priority between starting execution of the task RTS1 and completion toggled twice (that is, from high priority to low priority and back to high priority), and that the total execution time was 12.2 msec.

Das Debugginginstrument 227 der Unterstützungseinrichtung 200 empfängt ein Protokoll 135 von der Steuereinrichtung 100 und erzeugt anhand des Protokolls 135 gesammelte Informationen 228. Wie in 17A gezeigt ist, umfassen die gesammelten Informationen 228 für den Hilfsverarbeitungstask 143 statistische Informationen wie etwa Taskname 71, die Ausführungsanzahl 82, welche eine Gesamtanzahl von Ausführungen ist, repräsentative Werte der Ausführungszeit (Minimum, Durchschnitt, Maximum) 83 und repräsentative Werte der Prioritätswechselanzahl (Minimum, Durchschnitt, Maximum) 84. Die repräsentativen Werte der Ausführungszeit 83 zeigen einen Maximalwert, einen Durchschnittswert und einen Maximalwert der Ausführungszeit für 21 103 Taskausführungen an, deren Anzahl durch die Ausführungsanzahl 82 angegeben ist. Außerdem zeigen die repräsentativen Werte der Prioritätswechselanzahl 84 einen Maximalwert, einen Durchschnittswert und einen Maximalwert der Anzahl von Prioritätswechseln bei den 21 103 Taskausführungen, deren Anzahl durch die Ausführungsanzahl 82 angegeben ist.The debugging tool 227 the support facility 200 receives a log 135 from the control device 100 and generated based on the protocol 135 information collected 228 , As in 17A shown includes the information collected 228 for the auxiliary processing task 143 statistical information such as task name 71 , the number of executions 82 , which is a total number of executions, representative values of execution time (minimum, average, maximum) 83 and representative values of the number of priority changes (minimum, average, maximum) 84. The representative values of execution time 83 indicate a maximum value, an average value and a maximum value of the execution time for 21 103 task executions, the number of which by the number of executions 82 is specified. In addition, the representative values show the number of priority changes 84 a maximum value, an average value and a maximum value of the number of priority changes in the 21,103 task executions, the number of which by the number of executions 82 is specified.

Die gesammelten Informationen 228 umfassen außerdem die Informationen in 17B. 17B zeigt eine Analyse von Informationen über die 21 103 Taskausführungen in 17A. Im Speziellen umfassen die gesammelten Informationen 228 für den Hilfsverarbeitungstask 143 den Tasknamen 71, statistische Informationen 96 und 97 von Fällen, bei denen die Ausführung mit „hoher Priorität“ endete, und statistische Informationen 98 und 99 von Fällen, bei denen die Ausführung mit „niedriger Priorität“ endete, mit jeweils einem Satz Informationen (das heißt, ein Satz aus hoher Priorität PH, niedriger Priorität PL, erster Zeitdauer T1 und zweiter Zeitdauer T2).The information collected 228 also include the information in 17B , 17B shows an analysis of information about the 21 103 task executions in 17A , In particular, the information collected includes 228 for the auxiliary processing task 143 the task name 71 , statistical information 96 and 97 cases where execution ended with "high priority" and statistical information 98 and 99 of cases where execution ended with "low priority" with one set of information each (that is, one set of high priority) PH , lower priority PL , first period T1 and second period T2 ).

Die statistischen Informationen 96 geben an, dass für den Task RTS1 insgesamt 23 Fälle vorliegen, bei denen die Priorität zwischen Beginn und Ende der Ausführung viermal wechselte und die Ausführung mit „hoher Priorität“ endete, wobei der Task RTS1 entsprechend einem konkreten Satz Informationen (einem Satz aus hoher Priorität, niedriger Priorität, erster Zeitdauer T1 und zweiter Zeitdauer T2) ausgeführt wurde. Außerdem geben die statistischen Informationen 97 an, dass für die 23 Taskausführungen der Minimalwert, der Durchschnittswert und der Maximalwert der Ausführungszeit 0,1 ms, 0,8 ms bzw. 1,9 ms betragen.The statistical information 96 indicate that for the task RTS1 There are a total of 23 cases in which the priority changed four times between the start and end of the execution and the execution ended with "high priority", whereby the task RTS1 corresponding to a concrete set of information (a set of high priority, low priority, first time period T1 and second period T2 ) was carried out. Also give the statistical information 97 assumes that the minimum, average, and maximum execution times for the 23 task executions are 0.1 ms, 0.8 ms, and 1.9 ms, respectively.

Auf ähnliche Weise geben die statistischen Informationen 96 an, dass für den Task RTS1 insgesamt 11 Fälle vorlagen, bei denen die Priorität zwischen Beginn und Ende der Ausführung fünfmal wechselte und die Ausführung mit „niedriger Priorität“ endete, wobei der Task RTS1 entsprechend dem vorstehend erwähnten konkreten Satz Informationen ausgeführt wurde. Außerdem geben die statistischen Informationen 99 an, dass für die 11 Taskausführungen der Minimalwert, der Durchschnittswert und der Maximalwert der Ausführungszeit 0,1 ms, 0,4 ms bzw. 0,5 ms betragen.The statistical information gives in a similar way 96 at that for the task RTS1 There were a total of 11 cases in which the priority changed five times between the start and end of execution and the execution ended with "low priority", whereby the task RTS1 was carried out according to the above-mentioned concrete set of information. Also give the statistical information 99 at that for the 11 Task executions the minimum value, the average value and the maximum value of the execution time are 0.1 ms, 0.4 ms and 0.5 ms, respectively.

J2. DebugginginstrumentJ2. Debugging tool

Von dem Debugginginstrument 227 anhand der gesammelten Informationen 228 erzeugte Debuggungunterstützungsinformationen werden dem Benutzer in einer in 15 gezeigten Bildschirmansicht der Anzeigeeinheit 218 bereitgestellt. Es wird zum Beispiel ein Bild, das auf den statistischen Informationen 96 und 97 aus 17B basiert, im oberen Abschnitt der Bildschirmansicht in 15 angezeigt und ein Bild, das auf den statistischen Informationen 98 und 99 aus 17B basiert, in einem unteren Abschnitt davon angezeigt.From the debugging tool 227 based on the information collected 228 generated debugging support information is provided to the user in an in 15 shown screen view of the display unit 218 provided. For example, it will be an image based on the statistical information 96 and 97 out 17B based, in the upper section of the screen view in 15 displayed and an image based on the statistical information 98 and 99 out 17B based, shown in a lower section of it.

Der Benutzer kann anhand des Ergebnisses eines Vergleichs der gesammelten Informationen 228 in der Bildschirmansicht in 15 mit den Anforderungen der Echtzeitsteuerung Orientierungshilfe (Hinweise) erhalten, um zu bestimmen, ob die Schwellwerte 152A (erste Zeitdauer T1 und zweite Zeitdauer T2) oder die Prioritätsinformationen 152B (hohe Priorität PH, niedrige Priorität PL), die für den Task RTS1 festgelegt wurden, für die zuverlässige Durchführung der Echtzeitsteuerung geeignet sind. Der Benutzer kann außerdem anhand des Vergleichsergebnisses Orientierungshilfe erhalten, um zu bestimmen, ob das dem Task RTS1 zugewiesene Programm geeignet ist.The user can use the result of a comparison of the information collected 228 in the screen view in 15 with the requirements of real-time control guidance (notes) obtained to determine whether the threshold values 152A (first period T1 and second period T2 ) or the priority information 152B (high priority PH , low priority PL ) for the task RTS1 have been determined, are suitable for the reliable implementation of real-time control. The user can also get guidance from the comparison result to determine whether that is the task RTS1 assigned program is suitable.

Basierend auf der vorstehenden Bestimmung kann der Benutzer zum Beispiel die Schwellwerte 152A (erste Zeitdauer T1 und zweite Zeitdauer T2) oder die Prioritätsinformationen 152B (hohe Priorität PH, niedrige Priorität PL), die dem Task RTS1 zugewiesen sind, über die Benutzerschnittstelle in 8 ändern. Alternativ hierzu kann der Benutzer zum Beispiel über die Benutzerschnittstelle in 13 die dem Task RTS1 zugewiesenen Programme ändern.For example, based on the above determination, the user can set the threshold values 152A (first period T1 and second period T2 ) or the priority information 152B (high priority PH , low priority PL ) the task RTS1 are assigned via the user interface in 8th to change. Alternatively, the user can, for example, use the user interface in 13 the task RTS1 change assigned programs.

Wenn zum Beispiel der Task RTS1 öfter auf eine niedrige Priorität wechselte als die Anforderungen vorsehen, kann angenommen werden, dass der Task RTS1 und ein weiterer Task abwechselnd ausgeführt wurden, sodass als Ergebnis die Ausführungszeit zunahm und die Priorität auf eine niedrige Priorität wechselte. In diesem Fall kann der Benutzer die Häufigkeit der Wechsel auf eine niedrige Priorität verringern, indem er die erste Zeitdauer T1 verlängert oder den ursprünglichen Wert der hohen Priorität PH derart ändert, dass die abwechselnde Ausführung vermieden werden kann.For example, if the task RTS1 changed to a lower priority more often than the requirements provide, it can be assumed that the task RTS1 and another task were executed alternately, so that as a result, the execution time increased and the priority changed to a low priority. In this case, the user can reduce the frequency of changes to a low priority by changing the first period T1 extended or the original high priority value PH changes in such a way that alternate execution can be avoided.

Wenn zum Beispiel der Task RTS1 öfter auf eine hohe Priorität wechselte als die Anforderungen vorsehen, kann außerdem angenommen werden, dass der Task RTS1 und ein weiterer Task abwechselnd ausgeführt wurden, sodass als Ergebnis die Ausführungszeit zunahm und die Priorität auf eine hohe Priorität wechselte. In diesem Fall kann der Benutzer die Häufigkeit der Wechsel auf eine hohe Priorität verringern, indem er die zweite Zeitdauer T2 verlängert oder den ursprünglichen Wert der niedrigen Priorität PL derart ändert, dass die abwechselnde Ausführung vermieden werden kann.For example, if the task RTS1 more often switched to a high priority than the requirements provide, it can also be assumed that the task RTS1 and another task were executed alternately, so that as a result, the execution time increased and the priority changed to a high priority. In this case, the user can reduce the frequency of changing to a high priority by changing the second period T2 extended or the original low priority value PL changes in such a way that alternate execution can be avoided.

Wenn dem Task RTS1 ein Merkmalsmengenerzeugungsprogramm zugewiesen war und dann die Taskausführungszeit länger war als die Anforderungen vorsehen oder die Priorität öfter auf eine niedrige Priorität wechselte als die Anforderungen vorsehen, kann außerdem angenommen werden, dass die Ausführung des Merkmalsmengenerzeugungsprogramms den Prozessor 102 stark ausgelastet hat.If the task RTS1 a feature set generation program was assigned and then the task execution time was longer than the requests provide, or the priority changed to a lower priority more than the requirements provide, the execution of the feature set generation program can also be assumed to be the processor 102 has been busy.

Das Merkmalsmengenerzeugungsprogramm kann insbesondere eine Verarbeitung umfassen, die eine hohe Rechenlast (lange Berechnungszeit) aufweist, etwa eine schnelle Fourier-Transformation (FFT). Der Benutzer kann das Merkmalsmengenerzeugungsprogramm ändern, indem er das Entwicklungsprogramm 222 ausführt, um die Last zu verringern. Der Benutzer kann zum Beispiel das Merkmalsmengenerzeugungsprogramm derart ändern, dass die Rechenlast abnimmt, indem er die Arten der zu erzeugenden Merkmalsmengen ändert oder die Anzahl von Arten davon verringert.The feature set generation program can in particular comprise processing that has a high computing load (long calculation time), such as a fast Fourier transform (FFT). The user can change the feature set generation program by using the development program 222 to reduce the load. For example, the user can change the feature set generation program such that the computational load decreases by changing the types of the feature sets to be generated or by reducing the number of types thereof.

Die Unterstützungseinrichtung 200 überträgt die geänderten Schwellwerte 152A, die geänderten Prioritätsinformationen 152B oder das geänderte Merkmalsmengenerzeugungsprogramm an die Steuereinrichtung 100. Der Planer 151 erzeugt auf Grundlage der geänderten Informationen die Tasksteuerungsinformationen 131 und führt den Task RTS basierend auf den Tasksteuerungsinformationen 131 erneut aus. Das Debugginginstrument 227 zeigt eine Überwachungsbildschirmansicht (15) basierend auf gesammelten Informationen 228 an, die während der erneuten Ausführung bezogen wurden. Diese Überwachungsbildschirmansicht stellt dem Benutzer Unterstützungsinformationen bereit, anhand derer bestimmt werden kann, ob die Änderungen des Schwellwerts (erste Zeitdauer T1, zweite Zeitdauer T2), der Prioritätsinformationen (hohe Priorität PH, niedrige Priorität PL), des Merkmalsmengenerzeugungsprogramms oder dergleichen für die zuverlässige Durchführung der Echtzeitsteuerung geeignet sind.The support facility 200 transmits the changed threshold values 152A , the changed priority information 152B or the changed feature quantity generation program to the control device 100 , The planner 151 generates the task control information based on the changed information 131 and leads the task RTS based on the task control information 131 again. The debugging tool 227 shows a monitor screen view ( 15 ) based on information collected 228 that were obtained during the re-execution. This monitor screen view provides the user with support information that can be used to determine whether the threshold changes (first time period T1 , second period T2 ), the priority information (high priority PH , low priority PL ), the feature set generation program or the like are suitable for the reliable execution of the real-time control.

Weitere Bestimmungsbedingung für PrioritätswechselAnother condition for changing priorities

Zwar wird bei der vorstehend beschriebenen Ausführungsform die Prioritätswechselverarbeitung (Schritt S35 in 10) durchgeführt, wenn die Ausführungszeit die erste Zeitdauer T1 oder die zweite Zeitdauer T2 überstiegen hat (JA in Schritt S33), die Bedingung für die Durchführung der Prioritätswechselverarbeitung ist jedoch nicht auf die Bedingung beschränkt, dass die Ausführungszeit die erste Zeitdauer T1 oder die zweite Zeitdauer T2 überstiegen hat.In the embodiment described above, the priority change processing (step S35 in 10 ) performed when the execution time is the first period T1 or the second period T2 has exceeded (YES in step S33 ), the condition for performing the priority change processing is not limited to the condition that the execution time is the first period T1 or the second period T2 has exceeded.

Beispielsweise kann der Planer 151 zählen, wie oft die Ausführungszeit des Hilfsverarbeitungstasks die erste Zeitdauer T1 oder die zweite Zeitdauer T2 überstiegen hat. Der Planer 151 kann dann die Prioritätswechselverarbeitung durchführen, wenn - als Bedingung für die Durchführung der Prioritätswechselverarbeitung - der Wert dieser Zählung einen vorbestimmten Wert N (N ≥ 2) erreicht oder übersteigt. Es sei angemerkt, dass der Wert von N vom Benutzer festgelegt werden kann.For example, the planner 151 count the number of times the auxiliary processing task executes the first amount of time T1 or the second period T2 has exceeded. The planner 151 can then carry out the priority change processing if - as a condition for carrying out the priority change processing - the value of this count reaches or exceeds a predetermined value N (N 2 2). It should be noted that the value of N can be set by the user.

MehrkernbetriebsmodusMulti-core mode

Bei der vorstehend beschriebenen Ausführungsform wurde ein Fall beschrieben, bei dem der Planer 151 den Hilfsverarbeitungstask 143 unter Verwendung eines einzigen Prozessorkerns des Prozessors 102 ausführt, wenn sich die Steuereinrichtung 100 in einem Einkernbetriebsmodus befindet. Hier wird nun ein Mehrkernbetriebsmodus beschrieben, bei dem zwei oder mehr im Prozessor 102 enthaltene Prozessorkerne verwendet werden. Wenn die Steuereinrichtung 100 in den Mehrkernbetriebsmodus wechselt, aktiviert der Planer 151 den Kernwechselabschnitt 156.In the above-described embodiment, a case where the planner 151 the auxiliary processing task 143 using a single processor core of the processor 102 executes when the control device 100 is in a single core mode of operation. Here, a multi-core operating mode will now be described, in which two or more in the processor 102 included processor cores are used. If the control device 100 the planner switches to multi-core operating mode 151 the core change section 156 ,

Der Prozessorkern ist durch eine Kombination von Einrichtungen zum Ausführen von Tasks gebildet, wie etwa Arithmetik- und Logikeinheiten und Programmzähler. Daher können im Mehrkernbetriebsmodus mehrere Tasks unter Verwendung von mehreren Prozessorkernen parallel ausgeführt werden. Bei der vorliegenden Ausführungsform wird ein Fall beschrieben, bei dem der Prozessor 102 zum Beispiel vier Prozessorkerne Core 1 bis Core4 aufweist, die Anzahl von Prozessorkernen muss kann jedoch auch lediglich zwei oder mehr betragen und ist nicht auf vier beschränkt. Im Folgenden werden die vier Prozessorkerne zur Identifizierung mit den Kernnummern Core 1 bis Core4 bezeichnet.The processor core is formed by a combination of devices for performing tasks, such as arithmetic and logic units and program counters. Therefore, in multi-core operation mode, multiple tasks can be performed in parallel using multiple processor cores. In the present embodiment, a case where the processor is described 102 for example four processor cores 1 up to Core4, but the number of processor cores may only be two or more and is not limited to four. Below are the four processor cores for identification with the core numbers Core 1 referred to Core4.

L1. Festlegen von KerninformationenL1. Define key information

18 ist ein Diagramm, das die Kerninformationen 136 gemäß der vorliegenden Ausführungsform veranschaulicht. Die Kerninformationen 136 geben Informationen an, die den Kernprozessor betreffen, der den Hilfsverarbeitungstask 143 im Mehrkernbetriebsmodus ausführt. Die Unterstützungseinrichtung 200 akzeptiert die Kerninformationen 136 auf Grundlage eines Bedienvorgangs, der an der Eingabeeinheit 216 getätigt wird, und überträgt die akzeptierten Kerninformationen 136 an die Steuereinrichtung 100. Der Prozessor 102 der Steuereinrichtung 100 speichert die von der Unterstützungseinrichtung 200 empfangenen Kerninformationen 136 in der sekundären Speichereinrichtung 108. Bei Ausführung eines Tasks liest der Prozessor 102 die Kerninformationen 136 aus der sekundären Speichereinrichtung 108 aus und lädt sie in die Hauptspeichereinrichtung 106. 18 is a diagram that shows the core information 136 illustrated according to the present embodiment. The key information 136 provide information pertaining to the core processor that is running the auxiliary processing task 143 executes in multi-core operating mode. The support facility 200 accepts the core information 136 based on an operation that is performed on the input unit 216 is done and transmits the accepted core information 136 to the control device 100 , The processor 102 the control device 100 stores that from the support facility 200 received core information 136 in the secondary storage device 108 , The processor reads when a task is executed 102 the core information 136 from the secondary storage device 108 and loads them into the main storage device 106 ,

Wie in 18 gezeigt ist, umfassen die Kerninformationen 136 für jeden Task RTSi des Hilfsverarbeitungstasks 143 die Daten „Für Betrieb zugewiesener Kern“ 137 und „Zuweisungsmodus“ 138. Die Spalte „Für Betrieb zugewiesener Kern“ 137 gibt Informationen über die Zuweisung des Prozessorkerns für die Ausführung des verknüpften Tasks RTSi an. Der Zuweisungsmodus 138 umfasst Daten 139 zum Bezeichnen, ob der Prozessorkern, der den Task RTSi ausführt, „dynamisch“ gewechselt wird oder fest ist, und Daten 140, die - wenn „fest“ bezeichnet ist - den Prozessorkern angeben, der den Task RTSi ausführen soll.As in 18 shown includes the core information 136 for each task RTSi of the auxiliary processing task 143 the data "Core assigned for operation" 137 and "Assignment mode" 138. The column "Core assigned for operation" 137 contains information about the allocation of the processor core for the execution of the linked task RTSi. The assignment mode 138 includes data 139 to indicate whether the processor core that executes the RTSi task is changed “dynamically” or is fixed, and data 140 , which - if "fixed" is specified - indicate the processor core that is to execute the RTSi task.

Wie in 18 gezeigt ist, sind einem Task „RTS1“ konkret Core2 und Core3 zugewiesen und der angegebene Zuweisungsmodus ist „dynamisch“. Dies gibt an, dass der Prozessorkern, der den Task „RTS 1“ ausführt, zwischen Core2 und Core3 wechseln kann. Im Unterschied dazu sind einem Task „RTS2“ Core2 und Core3 zugewiesen und der angegebene Zuweisungsmodus ist „fest (hoch = 2, niedrig = 3)“. Dies bezeichnet, dass bei Ausführung des Tasks „RTS2“ der Task „RTS2“ von Core2 ausgeführt wird, wenn die Priorität hoch ist, und von Core 3 ausgeführt wird, wenn die Priorität niedrig ist.As in 18 is shown, a task “RTS1” is specifically assigned to Core2 and Core3 and the assignment mode specified is "dynamic". This indicates that the processor core that performs the “RTS 1” task can switch between Core2 and Core3. In contrast, a task "RTS2" is assigned Core2 and Core3 and the specified assignment mode is "fixed (high = 2, low = 3)". This means that when the "RTS2" task is executed, the "RTS2" task is executed by Core2, if the priority is high, and by Core 3 is executed when the priority is low.

L2. MehrkernplanungL2. Multicore planning

Als Nächstes wird die Planung der Ausführung des Hilfsverarbeitungstasks 143 (Task RTSi) im Mehrkernbetriebsmodus erläutert. Im Mehrkernbetriebsmodus empfängt der Kernwechselabschnitt 156 einen CPU-Auslastungsgrad 159 von dem Betriebssystem 190. Das Betriebssystem 190 misst den CPU-Auslastungsgrad 159. Der CPU-Auslastungsgrad 159 gibt beispielsweise für jeden Kern Core1 bis Core4 den Anteil an, in dem sich der Prozessorkern in einem Leerlaufzustand befindet, bei dem der Kern nicht zur Ausführung eines Tasks oder dergleichen verwendet wird (Anteil des Leerlaufzustands pro Zeiteinheit: Leeranteil E).Next is planning the execution of the auxiliary processing task 143 (Task RTSi) explained in multi-core operating mode. In the multi-core operating mode, the core switch section receives 156 a CPU utilization level 159 from the operating system 190 , The operating system 190 measures the CPU utilization rate 159 , The CPU utilization level 159 For example, for each core, Core1 to Core4 specifies the proportion in which the processor core is in an idle state in which the core is not used for executing a task or the like (proportion of the idle state per unit of time: idle proportion e ).

Der Kernwechselabschnitt 156 umfasst einen Befehl zum Bestimmen - wenn der Planer 151 den Übergang des Hilfsverarbeitungstasks 143 in einen Zustand „wird ausgeführt“ veranlasst - des Prozessorkerns, der den Hilfsverarbeitungstask 143 ausführen soll, auf Grundlage der Kerninformationen 136 oder auf Grundlage sowohl des CPU-Auslastungsgrads 159 als auch der Kerninformationen 136. Der Kernwechselabschnitt 156 gibt einen Kernzuweisungsanweisungswert 158, der den bestimmten Prozessorkern angibt, an das Betriebssystem 190 aus. Diese Vorgänge werden auch als „Mehrkernplanung“ des Planers 151 bezeichnet. Das Betriebssystem 190 führt den Hilfsverarbeitungstask 143, der in einen Zustand „wird ausgeführt“ überführt wurde, unter Verwendung des Prozessorkerns aus, der durch den Kernzuweisungsanweisungswert 158 bezeichnet wird.The core change section 156 includes a command to determine - if the planner 151 the transition of the auxiliary processing task 143 into a "running" state - the processor core, which is the auxiliary processing task 143 should perform based on the core information 136 or based on both the CPU utilization level 159 as well as the core information 136 , The core change section 156 gives a core assignment instruction value 158 that specifies the particular processor core to the operating system 190 out. These processes are also called "multi-core planning" by the planner 151 designated. The operating system 190 leads the auxiliary processing task 143 that has been brought into a "running" state using the processor core defined by the core assignment instruction value 158 referred to as.

Bei der Mehrkernplanung wird einer der nachstehend beschriebenen Betriebsmodi M1 bis M7 aktiv. Es sei angemerkt, dass der Multitaskausführungsabschnitt 191 in den Betriebsmodi M1 bis M7, ähnlich wie im Einkernbetriebsmodus, zuerst den hochrangigen Steuerungstask 141, der ein primärer Task mit festem Zyklus ist, in einem oder mehreren der Prozessorkerne Core1 bis Core4 ausführt.Multi-core planning uses one of the operating modes described below M1 to M7 active. It should be noted that the multitask execution section 191 in the operating modes M1 to M7 , similar to the single-core operating mode, first the high-level control task 141 , which is a primary fixed cycle task, executes in one or more of the core1 through core4 processor cores.

L3. Planungsmodell bei Ausführung eines einzigen Hilfsverarbeitungstasks 143L3. Planning model when executing a single auxiliary processing task 143

19A und 19B sind Diagramme, die ein Beispiel für die Ausführung eines einzelnen Hilfsverarbeitungstasks 143 bei der Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. In 19 wird ein Fall beschrieben, bei dem zunächst der Hilfsverarbeitungstask 143 (nachfolgend auch als ein Task RTS bezeichnet) mit hoher Priorität auszuführen ist und dann ein Task RTS mit niedriger Priorität auszuführen ist. 19A and 19B are diagrams showing an example of the execution of a single auxiliary processing task 143 in multi-core planning according to the present embodiment. In 19 a case is described in which the auxiliary processing task 143 (hereinafter also referred to as a task RTS designated) is to be executed with high priority and then a task RTS to be carried out with low priority.

Der Betriebsmodus M1 in 19A zeigt einen Fall, bei dem die Kerninformationen 136 angeben, dass Core2 und Core3 einem Task „RTS“ zugewiesen sind und der Zuweisungsmodus „dynamisch“ ist. Wenn „dynamisch“ bezeichnet ist, bestimmt der Kernwechselabschnitt 156 den Prozessorkern mit dem größten Leeranteil E (das heißt, mit einer großen Ressource, die dem Hilfsverarbeitungstask 143 zugewiesen werden kann) als Prozessorkern, der den Task RTS ausführen soll, auf Grundlage des CPU-Auslastungsgrads 159 und der Kerninformationen 136.The operating mode M1 in 19A shows a case where the core information 136 Specify that Core2 and Core3 are assigned to an “RTS” task and the assignment mode is “dynamic”. If "dynamic" is designated, the core change section determines 156 the processor core with the largest empty portion e (That is, with a large resource dedicated to the auxiliary processing task 143 can be assigned) as the processor core that the task RTS based on the CPU utilization level 159 and the core information 136 ,

Wie in 19A gezeigt ist, bestimmt der Kernwechselabschnitt 156 vor Ausführung des Tasks RTS aus der CPU-Auslastung 159, dass der Leeranteil E von Core3 größer als der Leeranteil E von Core2 ist. Daher bestimmt der Kernwechselabschnitt 156 auf Grundlage der Bestimmung Core3 mit dem größeren Leeranteil E als Prozessorkern, der den Task RTS ausführen soll, und gibt einen Kernzuweisungsanweisungswert 158 aus, der den bestimmten Core3 angibt. Der Multitaskausführungsabschnitt 191 führt somit den Task RTS mit hoher Priorität in Core3 aus.As in 19A is shown, the core change section determines 156 before executing the task RTS from the CPU usage 159 that the empty portion e of Core3 larger than the empty portion e from Core2. Therefore, the core change section determines 156 based on the Core3 determination with the larger empty portion e as the processor core that does the task RTS to execute, and gives a core assignment instruction value 158 that specifies the particular Core3. The multitask execution section 191 thus leads the task RTS with high priority in core3.

Als Nächstes wird ein Fall beschrieben, bei dem der Task RTS in Core3 ausgeführt wurde und der Prioritätswechselabschnitt 153 dessen Priorität von einer hohen Priorität auf eine niedrige Priorität gewechselt hat. Beim Ausführen des Tasks RTS mit niedriger Priorität, bestimmt der Kernwechselabschnitt 156 aus dem CPU-Auslastungsgrad 159, dass der Leeranteil E von Core3 größer als der Leeranteil E von Core2 ist, und er bestimmt auf Grundlage dieser Bestimmung Core3 mit dem größeren Leeranteil E als Prozessorkern, der den Task RTS ausführen soll, und gibt einen Kernzuweisungsanweisungswert 158 aus, der Core3 angibt. Demgemäß wird der Task RTS mit niedriger Priorität in Core3 ausgeführt.Next, a case where the task RTS was executed in Core3 and the priority switch section 153 whose priority has changed from a high priority to a low priority. When executing the task RTS with low priority, determines the core change section 156 from the CPU utilization rate 159 that the empty portion e of Core3 larger than the empty portion e of Core2, and on the basis of this determination, it determines Core3 with the larger empty portion e as the processor core that does the task RTS to execute, and gives a core assignment instruction value 158 that indicates Core3. Accordingly, the task RTS executed with low priority in Core3.

Im Gegensatz dazu zeigt der Betriebsmodus M2 in 19B einen Fall, bei dem die Kerninformationen 136 angeben, dass Core2 und Core3 dem Task „RTS“ zugewiesen sind, und der Zuweisungsmodus „fest“ (Core2 bei hoher Priorität und Core3 bei niedriger Priorität) ist.In contrast, the operating mode shows M2 in 19B a case where the core information 136 Specify that Core2 and Core3 are assigned to the RTS task and the assignment mode is fixed (Core2 for high priority and Core3 for low priority).

Daher bestimmt der Kernwechselabschnitt 156 den Prozessorkern, der den Task RTS ausführen soll, auf Grundlage der Kerninformationen 136 und unabhängig von dem CPU-Auslastungsgrad 159. Wie in 19B gezeigt ist, gibt der Kernwechselabschnitt 156 zum Beispiel einen Kernzuweisungsanweisungswert 158 aus, der Core2 angibt, wenn der Task RTS eine hohe Priorität aufweist. Wenn der Task RTS in Core2 ausgeführt wurde und der Prioritätswechselabschnitt 153 die Priorität von einer hohen Priorität auf eine niedrige Priorität gewechselt hat, bestimmt der Kernwechselabschnitt 156 auf Grundlage der Kerninformationen 136 Core3 als Prozessorkern, der den Task RTS ausführen soll, und gibt einen Kernzuweisungsanweisungswert 158 aus, der Core3 angibt. Der Multitaskausführungsabschnitt 191 führt demgemäß den Task RTS mit niedriger Priorität in Core3 aus.Therefore, the core change section determines 156 the processor core that does the task RTS should perform based on the core information 136 and regardless of the CPU utilization level 159 , As in 19B is shown there Core switching section 156 for example a core assignment instruction value 158 off, which indicates Core2 when the task RTS has a high priority. If the task RTS was executed in Core2 and the priority switch section 153 the priority change section has changed the priority from a high priority to a low priority 156 based on the core information 136 Core3 as the processor core that does the task RTS to execute, and gives a core assignment instruction value 158 that indicates Core3. The multitask execution section 191 accordingly leads the task RTS with low priority in core3.

L4. Planungsmodell bei Ausführung von mehreren Hilfsverarbeitungstasks 143L4. Planning model when executing multiple auxiliary processing tasks 143

20A und 20B sind Diagramme, die ein Beispiel für die Ausführung von mehreren Hilfsverarbeitungstasks 143 bei der Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. Die Betriebsmodi M1 und M2 in 19A und 19B zeigen einen Fall, bei dem ein einzelner Task RTS ausgeführt wird, in Betriebsmodus M3 und M4 in 20A und 20B plant der Planer 151 hingegen mehrere Tasks RTS. Anhand von 20A und 20B wird nun ein Fall beschrieben, bei dem Tasks RTS1 bis RTS3 mit hoher Priorität ausgeführt werden und dann Tasks RTS1 bis RTS3 mit niedriger Priorität ausgeführt werden. 20A and 20B are diagrams showing an example of the execution of multiple auxiliary processing tasks 143 in multi-core planning according to the present embodiment. The operating modes M1 and M2 in 19A and 19B show a case where a single task RTS is running in operating mode M3 and M4 in 20A and 20B the planner plans 151 however, several tasks RTS , Based on 20A and 20B a case is now described in which tasks RTS1 to RTS3 run with high priority and then tasks RTS1 to RTS3 run with low priority.

Zunächst zeigt der Betriebsmodus M3 in 20A einen Fall, bei dem die Kerninformationen 136 angeben, dass Core2 und Core3 den Tasks „RTS 1 bis RTS3“ zugewiesen sind und der Zuweisungsmodus „dynamisch“ ist. Der Betriebsmodus M4 in 20B zeigt einen Fall, bei dem die Kerninformationen 136 angeben, dass Core2 und Core3 den Tasks „RTS 1 bis RTS3“ zugewiesen sind, und der Zuweisungsmodus fest (Core2 bei hoher Priorität und Core3 bei niedriger Priorität) ist.First the operating mode shows M3 in 20A a case where the core information 136 Specify that Core2 and Core3 are assigned to tasks "RTS 1 to RTS3" and the assignment mode is "dynamic". The operating mode M4 in 20B shows a case where the core information 136 Specify that Core2 and Core3 are assigned to tasks "RTS 1 to RTS3" and the assignment mode is fixed (Core2 with high priority and Core3 with low priority).

Im Betriebsmodus M3 in 20A kann der Kernwechselabschnitt 156 auf Grundlage des CPU-Auslastungsgrads 159 Core3 mit dem höchsten Leeranteil E als Prozessorkern bestimmen, der die Tasks RTS1 bis RTS ausführen soll, um die Tasks RTS1 bis RTS3 mit der gleichen Priorität (hohe Priorität) auszuführen.In operating mode M3 in 20A can the core change section 156 based on the CPU utilization level 159 Core3 with the highest empty share e determine as the processor core that the tasks RTS1 to RTS should perform the tasks RTS1 to RTS3 to execute with the same priority (high priority).

In diesem Fall werden drei Tasks RTS1 bis RTS3 parallel (abwechselnd) in einem einzigen Prozessorkern (das heißt, Core3) ausgeführt. Die Ausführungszeit der jeweiligen Tasks kann sich daher relativ verlängern. Um die Ausführungszeit zu verringern, bestimmt der Kernwechselabschnitt 156 daher beispielsweise - wenn der Leeranteil E von Core3 mindestens so groß ist wie ein Schwellwert -, dass Core3 der Prozessorkern ist, der die Tasks RTS1 und RTS2 ausführen soll, und er bestimmt einen weiteren Prozessorkern (das heißt, Core2) für den Task RTS3. Wenn mehrere Hilfsverarbeitungstasks 143 ausgeführt werden, wird somit die Last auf die Prozessorkerne verteilt, und die Ausführungszeit der jeweiligen Hilfsverarbeitungstasks 143 kann verringert werden.In this case there are three tasks RTS1 to RTS3 executed in parallel (alternately) in a single processor core (that is, Core3). The execution time of the respective tasks can therefore be relatively longer. To reduce execution time, the core switch section determines 156 therefore, for example - if the empty portion e of Core3 is at least as large as a threshold - that Core3 is the processor core that does the tasks RTS1 and RTS 2 should execute, and it determines another processor core (that is, Core2) for the task RTS3 , If there are multiple auxiliary processing tasks 143 the load is thus distributed to the processor cores and the execution time of the respective auxiliary processing tasks 143 can be reduced.

Wenn die Priorität der Tasks RTS1 bis RTS3 auf eine niedrige Priorität wechselt, bestimmt der Kernwechselabschnitt 156 außerdem einen Prozessorkern mit einem großen Leeranteil E, der durch den CPU-Auslastungsgrad 159 angegeben wird, (das heißt, Core3) als Prozessorkern, der die Tasks RTS 1 bis RTS3 ausführt. Alternativ kann bestimmt werden, dass die Tasks RTS1 und RTS2 von Core3 auszuführen sind und der Task RTS3 von einem weiteren Prozessorkern (das heißt, Core2) auszuführen ist. Demgemäß können die vorstehend beschriebene Lastverteilung auf die Prozessorkerne und die Verringerung der Ausführungszeit der Tasks realisiert werden.If the priority of the tasks RTS1 to RTS3 changes to a low priority, the core change section determines 156 also a processor core with a large empty portion e by the CPU utilization rate 159 is specified (that is, Core3) as the processor core that performs the tasks RTS 1 to RTS3 performs. Alternatively, it can be determined that the tasks RTS1 and RTS 2 are to be executed by Core3 and the task RTS3 by another processor core (i.e. Core2). Accordingly, the load distribution among the processor cores described above and the reduction in the execution time of the tasks can be realized.

Im Betriebsmodus M4 in 20B bestimmt der Kernwechselabschnitt 156 gemäß den Kerninformationen 136, unabhängig von dem CPU-Auslastungsgrad 159, Core2 als Prozessorkern, der die Tasks RTS1 bis RTS3 ausführen wird, um die Tasks RTS 1 bis RTS3 mit der gleichen hohen Priorität auszuführen. Der Planer 151 führt die Planung derart durch, dass die Tasks RTS1, RTS2 und RTS3 in der angegebenen Reihenfolge in Core2 aufeinander folgend ausgeführt werden.In operating mode M4 in 20B determines the core change section 156 according to the core information 136 , regardless of the CPU utilization level 159 , Core2 as the processor core that performs the tasks RTS1 to RTS3 will perform the tasks RTS 1 to RTS3 to execute with the same high priority. The planner 151 carries out the planning in such a way that the tasks RTS1 . RTS 2 and RTS3 are executed in sequence in Core2 in the order specified.

Wenn die Priorität der Tasks RTS1 bis RTS3 auf eine niedrige Priorität wechselt, bestimmt der Kernwechselabschnitt 156 außerdem gemäß den Kerninformationen 136, unabhängig von dem CPU-Auslastungsgrad 159, Core3 als Prozessorkern, der die Tasks RTS1 bis RTS3 ausführen wird. Der Planer 151 führt die Planung derart durch, dass die Tasks RTS1, RTS2 und RTS3 in der angegebenen Reihenfolge in Core3 aufeinander folgend ausgeführt werden.If the priority of the tasks RTS1 to RTS3 changes to a low priority, the core change section determines 156 also according to the core information 136 , regardless of the CPU utilization level 159 , Core3 as the processor core that performs the tasks RTS1 to RTS3 will execute. The planner 151 carries out the planning in such a way that the tasks RTS1 . RTS 2 and RTS3 be executed in sequence in Core3 in the order specified.

L5. Planungsmodell 2 bei Ausführung von mehreren Hilfsverarbeitungstasks 143L5. Planning model 2 when executing multiple auxiliary processing tasks 143

21A und 21B sind Diagramme, die ein weiteres Beispiel für die Ausführung von mehreren Hilfsverarbeitungstasks 143 bei der Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulichen. 21A and 21B are diagrams that are another example of the execution of multiple auxiliary processing tasks 143 in multi-core planning according to the present embodiment.

Im Betriebsmodus M5 in 21A bestimmt der Kernwechselabschnitt 156, ähnlich wie in 20A, gemäß dem CPU-Auslastungsgrad 159 und den Kerninformationen 136 den Prozessorkern, der die Tasks RTS1 bis RTS3 ausführen wird.In operating mode M5 in 21A determines the core change section 156 , similar to in 20A , according to the CPU utilization level 159 and the core information 136 the processor core that does the tasks RTS1 to RTS3 will execute.

Der Betriebsmodus M6 in 21B zeigt eine Abwandlung des Planungsmodells des Betriebsmodus M4 in 20B. In 20B führt der Planer 151 die Planung derart durch, dass Tasks RTS1, RTS2 und RTS3 in der angegebenen Reihenfolge in Core3 (oder Core2) aufeinander folgend ausgeführt werden. Der Task RTS3, der zuletzt ausgeführt wird, muss daher auf das Ende der Ausführung der anderen Tasks warten, und die Ausführungszeit des Tasks RTS3 nimmt zu.The operating mode M6 in 21B shows a modification of the planning model of the operation mode M4 in 20B , In 20B leads the planner 151 planning in such a way that tasks RTS1 . RTS 2 and RTS3 be executed in sequence in Core3 (or Core2) in the order given. The task RTS3 , which is executed last, must therefore wait for the other tasks to finish and the task's execution time RTS3 is increasing.

Im Gegensatz dazu führt der Planer 151 im Betriebsmodus M6 in 21B die Planung derart durch, dass die Tasks RTS1 bis RTS3 parallel (das heißt, abwechselnd) in Core3 (oder Core2) ausgeführt werden. Die Ausführungszeit der jeweiligen Tasks kann somit ausgeglichen werden.In contrast, the planner leads 151 in operating mode M6 in 21B planning in such a way that the tasks RTS1 to RTS3 run in parallel (that is, alternately) in Core3 (or Core2). The execution time of the respective tasks can thus be balanced.

Bei der vorliegenden Ausführungsform kann der Benutzer außerdem den Betriebsmodus M4 (siehe 20B) oder den Betriebsmodus M6 (siehe 20B) als Modus zur Ausführung von mehreren Tasks gemäß den Kerninformationen 136 bezeichnen.In the present embodiment, the user can also operate mode M4 (please refer 20B) or the operating mode M6 (please refer 20B) as a mode for executing multiple tasks according to the core information 136 describe.

L6. Planungsmodell 3 bei Ausführung von mehreren Hilfsverarbeitungstasks 143L6. Planning model 3 when executing multiple auxiliary processing tasks 143

22 ist ein Diagramm, das noch ein weiteres Beispiel für die Ausführung von mehreren Hilfsverarbeitungstasks 143 bei der Mehrkernplanung gemäß der vorliegenden Ausführungsform veranschaulicht. Der Betriebsmodus M7 in 22 zeigt einen Fall, bei dem die Kerninformationen 136 angeben, dass Core2 und Core3 den Tasks „RTS“ zugewiesen sind, und der Zuweisungsmodus „fest (Core2 bei hoher Priorität und Core3 bei niedriger Priorität)“ ist. 22 Fig. 4 is a diagram showing yet another example of the execution of multiple auxiliary processing tasks 143 in multi-core planning according to the present embodiment. The operating mode M7 in 22 shows a case where the core information 136 Specify that Core2 and Core3 are assigned to the "RTS" tasks and the assignment mode is "Fixed (Core2 for high priority and Core3 for low priority)".

Im Betriebsmodus M7 bestimmt der Kernwechselabschnitt 156 auf Grundlage der Kerninformationen 136, unabhängig von dem CPU-Auslastungsgrad 159, Core2 als Prozessorkern, der Tasks RTS1 bis RTS3 mit einer hohen Priorität ausführt. Auf ähnliche Weise bestimmt der Kernwechselabschnitt 156 Core3 als Prozessorkern, der Tasks RTS1 bis RTS3 mit einer niedrigen Priorität ausführt.In operating mode M7 determines the core change section 156 based on the core information 136 , regardless of the CPU utilization level 159 , Core2 as processor core, the tasks RTS1 to RTS3 with a high priority. Similarly, the core change section determines 156 Core3 as the processor core, the tasks RTS1 to RTS3 with a low priority.

Wenn mehrere Hilfsverarbeitungstasks 143 mit einer hohen Priorität in einen Zustand „wird ausgeführt“ übergehen, kann im Betriebsmodus M7 die Echtzeiteigenschaft jedes Tasks realisiert werden. Wie in 22 gezeigt ist, führt der Planer 151, wenn Tasks RTS1 bis RTS3 mit einer hohen Priorität ausgeführt werden, im Speziellen die Planung derart durch, dass die Tasks RTS1, RTS2 und RTS3 in der angegebenen Reihenfolge in Core2 aufeinander folgend ausgeführt werden (siehe Übergang von Fall C1 zu Fall C2 und dann zu Fall C3 in 22). Daher wird jeder Task mit einer hohen Priorität durch Belegung einer nutzbaren Ressource von Core2 ausgeführt, und die Task-Ausführungszeit kann verringert werden.If there are multiple auxiliary processing tasks 143 with a high priority in a state "is being executed" can in operating mode M7 the real-time property of each task can be realized. As in 22 is shown, the planner leads 151 when tasks RTS1 to RTS3 be carried out with a high priority, especially by planning in such a way that the tasks RTS1 . RTS 2 and RTS3 are executed in sequence in Core2 in the order specified (see transition from case C1 coincidence C2 and then fall C3 in 22 ). Therefore, each task with a high priority is executed by occupying a usable resource by Core2, and the task execution time can be reduced.

Als Nächstes bestimmt der Kernwechselabschnitt 156 - wenn die Priorität des Tasks RTS1 auf eine niedrige Priorität gewechselt hat, da während der Ausführung des Tasks RTS1 mit einer hohen Priorität durch Core2 die Ausführungszeit die erste Zeitdauer T1 überstiegen hat - gemäß den Kerninformationen 136 Core3 als Prozessorkern, der den Task RTS1 ausführt (Fall C2). In diesem Fall werden die Ausführung des Tasks RTS1 mit einer niedrigen Priorität in Core3 und die Ausführung des Tasks RTS2 mit einer hohen Priorität in Core2 parallel durchgeführt.Next, the core changeover section determines 156 - if the priority of the task RTS1 has switched to a low priority because during the execution of the task RTS1 with a high priority by Core2 the execution time the first period T1 exceeded - according to the core information 136 Core3 as the processor core that does the task RTS1 executes (case C2 ). In this case, the execution of the task RTS1 with a low priority in Core3 and the execution of the task RTS 2 performed in parallel with a high priority in Core2.

Wenn die Ausführungszeit des Tasks RTS2 mit einer hohen Priorität in Core2 die erste Zeitdauer T1 überstiegen hat (die Ausführungszeit des Tasks RTS1 in Core3 die zweite Zeitdauer T2 jedoch nicht überstiegen hat), wechselt als Nächstes die Priorität des Tasks RTS2 auf eine niedrige Priorität. In diesem Fall bestimmt der Kernwechselabschnitt 156 gemäß den Kerninformationen 136 Core3 als Prozessorkern, der den Task RTS2 ausführt. Daher werden die Ausführung des Tasks RTS1 und des Tasks RTS2 in Core3 und die Ausführung des Tasks RTS3 mit einer hohen Priorität in Core2 parallel ausgeführt (Fall C3).If the execution time of the task RTS 2 with a high priority in Core2 the first time T1 exceeded (the execution time of the task RTS1 the second time in Core3 T2 has not exceeded), the priority of the task changes next RTS 2 to a low priority. In this case, the core change section determines 156 according to the core information 136 Core3 as the processor core that does the task RTS 2 performs. Therefore, the execution of the task RTS1 and the task RTS 2 in Core3 and the execution of the task RTS3 Executed in parallel with a high priority in Core2 (case C3 ).

Wenn die Ausführungszeit des Tasks RTS3 mit einer hohen Priorität in Core2 die erste Zeitdauer T1 überstiegen hat (beide Ausführungszeiten der Tasks RTS1 und RTS2 in Core3 die zweite Zeitdauer T2 jedoch nicht überstiegen haben), wechselt als Nächstes die Priorität des Tasks RTS3 auf eine niedrige Priorität. In diesem Fall bestimmt der Kernwechselabschnitt 156 gemäß den Kerninformationen 136 Core3 als Prozessorkern, der den Task RTS1 ausführt. Die Tasks RTS1 bis RTS3 werden daher abwechselnd in Core3 ausgeführt (Fall C4).If the execution time of the task RTS3 with a high priority in Core2 the first time T1 has exceeded (both execution times of the tasks RTS1 and RTS 2 the second time in Core3 T2 but have not exceeded), the priority of the task changes next RTS3 to a low priority. In this case, the core change section determines 156 according to the core information 136 Core3 as the processor core that does the task RTS1 performs. The tasks RTS1 to RTS3 are therefore executed alternately in Core3 (case C4 ).

Wenn die Ausführungszeit des Tasks RTS1 mit einer niedrigen Priorität in Core3 die zweite Zeitdauer T2 überstiegen hat (beide Ausführungszeiten der Tasks RTS2 und RTS3 in Core3 die zweite Zeitdauer T2 jedoch nicht überstiegen haben), wechselt schließlich die Priorität des Tasks RTS1 auf eine hohe Priorität (Fall C5). In diesem Fall werden die Ausführung des Tasks RTS1 in Core2 und die abwechselnde Ausführung der Tasks RTS2 und RTS3 in Core3 parallel durchgeführt.If the execution time of the task RTS1 with a low priority in Core3 the second period T2 has exceeded (both execution times of the tasks RTS 2 and RTS3 the second time in Core3 T2 have not exceeded), the priority of the task finally changes RTS1 to a high priority (case C5 ). In this case, the execution of the task RTS1 in Core2 and the alternate execution of the tasks RTS 2 and RTS3 carried out in parallel in Core3.

Wenn die mehreren Tasks RTS1 bis RTS3 auszuführen sind, kann der Benutzer im Mehrkernbetriebsmodus gemäß der vorliegenden Ausführungsform bezeichnen, in welchem der vorstehend beschriebenen Betriebsmodi M4, M6 und M7 die Tasks auszuführen sind.If the multiple tasks RTS1 to RTS3 In the multi-core operating mode according to the present embodiment, the user can designate which of the operating modes described above M4 . M6 and M7 the tasks are to be performed.

Abwandlungenmodifications

23 ist ein Diagramm, das eine Abwandlung des Hilfsverarbeitungstasks 143 gemäß der vorliegenden Ausführungsform veranschaulicht. 24 ist ein Diagramm, das schematisch ein Beispiel für ein prädiktives Steuerungsmodell gemäß der vorliegenden Ausführungsform veranschaulicht. Zwar wurde in der vorstehend beschriebenen vorliegenden Ausführungsform das Anomalieerkennungsprogramm als ein Beispiel für den Hilfsverarbeitungstask 143 beschrieben, die Hilfsverarbeitung ist jedoch nicht auf das Anomalieerkennungsprogramm beschränkt. Beispielsweise kann der in „c2. Funktionale Ausgestaltung“ beschriebene Hilfsverarbeitungstask 143 ein prädiktives Steuerprogramm zum Steuern eines Objekts (im Folgenden als Objekt 90 bezeichnet) umfassen, das von der Steuereinrichtung 100 unter Verwendung eines prädiktiven Steuerungsmodells zu steuern ist. Das Objekt 90 ist eine Vorrichtung oder dergleichen, die in der Feldgerätegruppe 10 in 1 enthalten ist. Das prädiktive Steuerprogramm umfasst einen Befehl zum Vorhersagen der Steuergröße des Objekts 90 unter Verwendung eines Anweisungswerts der Variablen, der dem Objekt 90 zu übergeben ist, und gibt einen Korrekturwert des Steuerparameters aus. Als Ergebnis der Ausführung eines derartigen Befehls wird die Korrekturwertberechnungsverarbeitung 1431 in 23 realisiert. 23 Fig. 12 is a diagram showing a modification of the auxiliary processing task 143 illustrated according to the present embodiment. 24 10 is a diagram schematically illustrating an example of a predictive control model according to the present embodiment. In the present embodiment described above, although the abnormality detection program was used as an example of the auxiliary processing task 143 described, but the auxiliary processing is not limited to the anomaly detection program. For example, the one in “c2. Functional design ”described auxiliary processing task 143 a predictive control program for controlling an object (hereinafter referred to as an object 90 designated) include that of the control device 100 is to be controlled using a predictive control model. The object 90 is a device or the like belonging to the field device group 10 in 1 is included. The predictive control program includes a command to predict the control size of the object 90 using an instruction value of the variable associated with the object 90 is to be transferred, and outputs a correction value of the control parameter. As a result of the execution of such an instruction, the correction value calculation processing 1431 in 23 realized.

Bei der vorliegenden Ausführungsform ist das prädiktive Steuerungsmodell ein Verarbeitungsmodell, das zum Beispiel anzuwenden ist, um eine Optimierung der Steuerung des Objekts 90 zu realisieren und dabei eine Reaktion des Objekts 90 vorherzusagen.In the present embodiment, the predictive control model is a processing model to be used, for example, to optimize the control of the object 90 to realize and thereby a reaction of the object 90 predict.

Es sei angemerkt, dass der Anweisungswert und die Steuergröße durch Variablen angegeben werden, die in der internen DB 130 in 5 gespeichert sind. Der Anweisungswert und die Steuergröße sind Daten (Eingabedaten und Ausgabedaten), die mit der Feldgerätegruppe 10 in 1 ausgetauscht werden, wenn das Steuerungseingabeprogramm 161 und das Steuerungsausgabeprogramm 162 die I/O-Auffrischungsverarbeitung in 5 durchführen, und sind in der internen DB 130 als Variablen eingerichtet.It should be noted that the instruction value and the control variable are specified by variables that are in the internal DB 130 in 5 are saved. The instruction value and the control variable are data (input data and output data) related to the field device group 10 in 1 be replaced when the control input program 161 and the control output program 162 the I / O refresh processing in 5 perform, and are in the internal DB 130 set up as variables.

Der in der Steuereinrichtung 100 auszuführende Hilfsverarbeitungstask 143 und ein Steuerungsberechnungstask 1411, der ein Beispiel für den hochrangigen Steuerungstask 141 ist, sind in 23 gezeigt. Bei Ausführung erzeugt der Steuerungsberechnungstask 1411 für jeden Steuerzyklus einen Anweisungswert 1516 gemäß einem vorbestimmten Muster 1511, gibt den Anweisungswert 1516 an das Objekt 90 aus und empfängt eine Steuergröße 1517, die eine Antwort auf (ein Feedbackwert für) den Anweisungswert 1516 ist, von dem Objekt 90.The one in the control device 100 Auxiliary processing task to be executed 143 and a control calculation task 1411 which is an example of the high-level control task 141 is, are in 23 shown. When executed, the control calculation task creates 1411 an instruction value for each control cycle 1516 according to a predetermined pattern 1511 , returns the instruction value 1516 to the object 90 off and receives a control variable 1517 that have a response to (a feedback value for) the instruction value 1516 is from the object 90 ,

Der Hilfsverarbeitungstask 143 umfasst eine Vorhersageverarbeitung 1432 zum Berechnen einer geschätzten Steuergröße 1513, die ein geschätzter Wert der Steuergröße des Objekts 90 ist, unter Verwendung einer Ausgabe des Steuerungsberechnungstasks 1411 (das heißt, des Anweisungswerts 1512, der von der Steuereinrichtung 100 an das Objekt 90 ausgegeben wird) und des prädiktiven Steuerungsmodells 1434 und eine Berechnungsverarbeitung 1433 zum Berechnen eines Korrekturwerts 1514 durch derartiges Durchführen einer Korrektur, dass die Differenz zwischen der geschätzten Steuergröße 1513 und einer idealen Steuergröße 1518 (Ziel-Steuergröße) in einem vorbestimmten Bereich liegt. In 23 sind der Anweisungswert 1512 und die Steuergröße 1515 ähnliche Werte wie der Anweisungswert 1516 bzw. die Steuergröße 1517.The auxiliary processing task 143 includes prediction processing 1432 to calculate an estimated tax figure 1513 which is an estimated value of the control size of the object 90 is, using an output of the control calculation task 1411 (that is, the instruction value 1512 by the control device 100 to the object 90 is output) and the predictive control model 1434 and calculation processing 1433 to calculate a correction value 1514 by making a correction such that the difference between the estimated control quantity 1513 and an ideal tax figure 1518 (Target control quantity) is in a predetermined range. In 23 are the instruction value 1512 and the tax figure 1515 values similar to the instruction value 1516 or the tax figure 1517 ,

Der Steuerungsberechnungstask 1411 berechnet eine Steuerungsausgabe (Anweisungswert 1516) an das Objekt 90 gemäß dem berechneten Korrekturwert 1514. Der berechnete Anweisungswert 1516 wird ausgegeben, um das Objekt 90 zu steuern.The control calculation task 1411 computes a control output (instruction value 1516 ) to the object 90 according to the calculated correction value 1514 , The calculated instruction value 1516 is issued to the object 90 to control.

Das zuvor erwähnte prädiktive Steuerungsmodell 1434 wird im Voraus durch maschinelles Lernen auf Grundlage der Eigenschaften des Objekts 90 erzeugt. Alternativ hierzu wird das prädiktive Steuerungsmodell 1434 im Voraus durch einen Bedienvorgang erzeugt. Ein Beispiel für das prädiktive Steuerungsmodell 1434 ist in 24 schematisch gezeigt. Wie in 24 gezeigt ist, wird das prädiktive Steuerungsmodell 1434 zum Beispiel als Graph veranschaulicht, der die Korrelation zwischen dem Anweisungswert 1512 (bzw. der Steuergröße 1515) und der geschätzten Steuergröße 1513 repräsentiert. Daher kann bei der Vorhersageverarbeitung 1432 der Wert Y der geschätzten Steuergröße 1513 anhand eines Werts X des Anweisungswerts 1512 (bzw. der Steuergröße 1515) auf Grundlage eines derartigen prädiktiven Steuerungsmodells 1434 geschätzt (berechnet) werden. Es sei angemerkt, dass das prädiktive Steuerungsmodell 1434 nicht auf einen derartigen Korrelationsgraphen beschränkt ist.The predictive control model mentioned earlier 1434 is done in advance through machine learning based on the properties of the object 90 generated. Alternatively, the predictive control model 1434 generated in advance by an operation. An example of the predictive control model 1434 is in 24 shown schematically. As in 24 is shown, the predictive control model 1434 For example, as a graph that illustrates the correlation between the instruction value 1512 (or the tax figure 1515 ) and the estimated tax amount 1513 represents. Therefore, in predictive processing 1432 the value Y of the estimated tax quantity 1513 based on a value X of the instruction value 1512 (or the tax figure 1515 ) based on such a predictive control model 1434 be estimated (calculated). It should be noted that the predictive control model 1434 is not limited to such a correlation graph.

Es sei angemerkt, dass die geschätzte Steuergröße 1513, die unter Verwendung des prädiktiven Steuerungsmodells 1434 geschätzt wird, ein aktueller Wert (zum Beispiel ein Wert, der dem aktuellen Steuerzyklus entspricht) oder ein zukünftiger Wert (zum Beispiel ein Wert, der dem nächsten oder einem späteren Steuerzyklus entspricht) sein kann.It should be noted that the estimated tax figure 1513 using the predictive control model 1434 is estimated to be a current value (for example, a value that corresponds to the current control cycle) or a future value (for example, a value that corresponds to the next or a later control cycle).

Bei der Erzeugung des prädiktiven Steuerungsmodell 1434 durch maschinelles Lernen kann das prädiktive Steuerungsmodell 1434 zum Beispiel auch durch maschinelles Lernen unter Verwendung eines neuronalen Netzwerks erzeugt werden.When generating the predictive control model 1434 machine learning can make the predictive control model 1434 for example, also generated by machine learning using a neural network.

Bei der Berechnungsverarbeitung 1433 wird außerdem eine Differenz zwischen der von der Vorhersageverarbeitung 1432 ausgegebenen geschätzten Steuergröße 1513 und der idealen Steuergröße (Ziel-Steuergröße) 1518 berechnet, und die Korrekturgröße des Anweisungswerts 1516 kann anhand der berechneten Steuergröße-Differenz unter Verwendung eines nicht dargestellten prädiktiven Steuerungsmodells geschätzt (berechnet) werden.In calculation processing 1433 also becomes a difference between that of the prediction processing 1432 issued estimated tax amount 1513 and the ideal tax variable (target tax variable) 1518 calculated, and the correction amount of the instruction value 1516 can based on the calculated control variable difference can be estimated (calculated) using a predictive control model, not shown.

Der Steuerungsberechnungstask 1411 empfängt den Korrekturwert 1514, erzeugt den Anweisungswert 1516, für den der empfangene Korrekturwert 1514 als Feedback erhalten wird, und gibt den erzeugten Anweisungswert 1516 an das Objekt 90 aus.The control calculation task 1411 receives the correction value 1514 , generates the instruction value 1516 for which the received correction value 1514 is received as feedback, and gives the generated instruction value 1516 to the object 90 out.

Zusammenfassend wird ein prädiktives Steuerungsmodell 1434 in 24 im Voraus erzeugt, bei dem die geschätzte Steuergröße 1513 eine Zielvariable ist und der Anweisungswert 1512 eine erklärende Variable ist. Daher wird in 23 der dem Objekt 90 zu übergebende aktuelle Anweisungswert 1512 (Anweisungswert 1516) an das prädiktive Steuerungsmodell 1434 eingegeben und die geschätzte Steuergröße 1513 des Objekts 90 im nächsten Steuerzyklus ausgegeben. Als Nächstes wird der Korrekturwert 1514 berechnet, der durch derartiges Durchführen einer Korrektur erhalten wurde, dass sich die Differenz zwischen der geschätzten Steuergröße 1513 und der idealen Steuergröße 1518 (Ziel-Steuergröße) in einem vorbestimmten Bereich befindet, und der Anweisungswert 1516 wird unter Verwendung des berechneten Korrekturwerts 1514 überschrieben.In summary, a predictive control model 1434 in 24 generated in advance at which the estimated tax amount 1513 is a target variable and the instruction value 1512 is an explanatory variable. Therefore in 23 of the object 90 current instruction value to be transferred 1512 (Instruction value 1516 ) to the predictive control model 1434 entered and the estimated tax amount 1513 of the object 90 issued in the next control cycle. Next is the correction value 1514 calculated, which was obtained by performing a correction such that the difference between the estimated control quantity 1513 and the ideal tax base 1518 (Target control quantity) is in a predetermined range, and the instruction value 1516 is calculated using the calculated correction value 1514 overwritten.

Das prädiktive Steuerungsmodell 1434 in 24 kann auch im Voraus derart erzeugt werden, dass die geschätzte Steuergröße 1513 eine Zielvariable ist und die Steuergröße 1515 eine erklärende Variable ist. In diesem Fall wird in 23 die dem Objekt 90 zu übergebende aktuelle Steuergröße 1515 (Steuergröße 1517) an das prädiktive Steuerungsmodell 1434 eingegeben und die geschätzte Steuergröße 1513 des Objekts 90 im nächsten Steuerzyklus ausgegeben. Als Nächstes wird der Korrekturwert 1514 berechnet, der durch derartiges Durchführen einer Korrektur erhalten wurde, dass sich die Differenz zwischen der geschätzten Steuergröße 1513 und der idealen Steuergröße 1518 (Ziel-Steuergröße) in einem vorbestimmten Bereich befindet, und der Anweisungswert 1516 wird unter Verwendung des berechneten Korrekturwerts 1514 überschrieben.The predictive control model 1434 in 24 can also be generated in advance in such a way that the estimated control variable 1513 is a target variable and the control variable 1515 is an explanatory variable. In this case, 23 the object 90 current tax variable to be transferred 1515 (Control variable 1517 ) to the predictive control model 1434 entered and the estimated tax amount 1513 of the object 90 issued in the next control cycle. Next is the correction value 1514 calculated, which was obtained by performing a correction such that the difference between the estimated control quantity 1513 and the ideal tax base 1518 (Target control quantity) is in a predetermined range, and the instruction value 1516 is calculated using the calculated correction value 1514 overwritten.

Wie vorstehend beschrieben ist, kann gemäß der Korrekturwertberechnungsverarbeitung 1431 des Hilfsverarbeitungstasks 143 der Korrekturwert 1514 des Steuerparameters durch Vorhersagen der Steuergröße des Objekts 90 unter Verwendung des an das Objekt 90 zu übergebenden Anweisungswerts 1512 ausgegeben werden. Der an das Objekt 90 zu übergebende Korrekturwert kann auch unter Verwendung der Steuergröße 1515 des Objekts 90 vorhergesagt werden.As described above, according to the correction value calculation processing 1431 of the auxiliary processing task 143 the correction value 1514 the control parameter by predicting the control size of the object 90 using the to the object 90 instruction value to be passed 1512 be issued. The one on the object 90 Correction value to be transferred can also be made using the control variable 1515 of the object 90 be predicted.

Bei der Berechnungsverarbeitung 1433 in 23 wird außerdem der Korrekturwert 1514 durch derartiges Durchführen einer Korrektur berechnet, dass sich die Differenz zwischen der geschätzten Steuergröße 1513 und der idealen Steuergröße (Ziel-Steuergröße) 1518 in einem vorbestimmten Bereich befindet, das Verfahren der Berechnung des Korrekturwerts 1514 ist jedoch nicht auf ein derartiges Korrekturverfahren beschränkt. Die Berechnungsverarbeitung 1433 kann zum Beispiel eine Verarbeitung zum Berechnen des Korrekturwerts 1514 durch Durchführung einer vorbestimmten Berechnung unter Verwendung beispielsweise der geschätzten Steuergröße 1513 sein.In calculation processing 1433 in 23 will also be the correction value 1514 by performing a correction such that the difference between the estimated control quantity 1513 and the ideal tax variable (target tax variable) 1518 is in a predetermined range, the method of calculating the correction value 1514 however, it is not limited to such a correction method. The calculation processing 1433 can, for example, processing for calculating the correction value 1514 by performing a predetermined calculation using, for example, the estimated control quantity 1513 his.

In 23 wird der Anweisungswert 1516, der auf dem Korrekturwert 1514 basiert, der anhand des prädiktiven Steuerungsmodells 1434 geschätzt (berechnet) wurde, außerdem in jedem Steuerzyklus an das Objekt 90 ausgegeben, der Ausgabezyklus des Anweisungswerts 1516 ist jedoch nicht auf den Steuerzyklus beschränkt. Der Anweisungswert 1516 kann zum Beispiel, abhängig von den Eigenschaften des Objekts 90, in einem Zyklus ausgegeben werden, der länger ist als der Steuerzyklus. In diesem Fall kann der Anweisungswert 1516, der auf dem Korrekturwert 1514 basiert, der durch Schätzen (Berechnen) des Objekts 90 unter Verwendung des prädiktiven Steuerungsmodells 1434 mit einem Zyklus erhalten wurde, der länger als der Steuerzyklus ist, an das Objekt 90 ausgegeben werden.In 23 becomes the instruction value 1516 that on the correction value 1514 based on the predictive control model 1434 was estimated (calculated), also in each control cycle to the object 90 output, the output cycle of the instruction value 1516 however, it is not limited to the control cycle. The instruction value 1516 for example, depending on the properties of the object 90 , are output in a cycle that is longer than the control cycle. In this case, the instruction value 1516 that on the correction value 1514 based, by estimating (calculating) the object 90 using the predictive control model 1434 with a cycle that is longer than the control cycle to the object 90 be issued.

Das vorbestimmte Muster 1511 kann außerdem ein Positionsmuster umfassen, das die Bewegungsbahn angibt, entlang der sich das Objekt 90 bewegen soll. In diesem Fall kann die Position des Objekts 90 in Übereinstimmung mit der Bewegungsbahn (der geschätzten Bewegungsbahn, entlang der sich das Objekt 90 bewegen soll) gesteuert werden, die durch den Anweisungswert 1516 angegeben wird, der auf dem Korrekturwert 1514 basiert, der unter Verwendung des prädiktiven Steuerungsmodells 1434 erzeugt wurde.The predetermined pattern 1511 may also include a positional pattern that indicates the trajectory along which the object travels 90 should move. In this case, the position of the object 90 in accordance with the trajectory (the estimated trajectory along which the object travels 90 should be controlled) by the instruction value 1516 is specified on the correction value 1514 based, using the predictive control model 1434 was generated.

Es sei angemerkt, dass in 23 der Steuerungsberechnungstask 1411 den Anweisungswert 1516 zwar gemäß dem vorbestimmten Muster 1511 erzeugt, der Steuerungsberechnungstask 1411 den Anweisungswert 1516 jedoch auch ohne Verwendung des Musters 1511 erzeugen kann.It should be noted that in 23 the control calculation task 1411 the instruction value 1516 according to the predetermined pattern 1511 generated, the control calculation task 1411 the instruction value 1516 but without using the pattern 1511 can generate.

Effekte der vorliegenden AusführungsformEffects of the present embodiment

Bei der Prioritätswechselverarbeitung gemäß der vorliegenden Ausführungsform wird die Priorität auf der hohen Priorität PH gehalten, solange die Ausführungszeit nicht länger als die erste Zeitdauer T1 ist (diese nicht übersteigt). Daher kann eine Hilfsverarbeitung ausgeführt werden und dabei die Echtzeiteigenschaft aufrechterhalten werden, und es kann zum Beispiel die Echtzeitsteuerung eines Objekts realisiert werden, die das bei jeder Ausführung erzielte Ergebnis der Hilfsverarbeitung verwendet. Außerdem kann ein weiterer Task bevorzugt ausgeführt werden, indem die Priorität des Hilfsverarbeitungstasks 143 verringert wird, wenn die Ausführungszeit länger wird als die erste Zeitdauer T1 (sie übersteigt), und als Ergebnis kann der hochrangige Steuerungstask 141 - wenn ein weiterer Task, wie etwa der nachrangige Steuerungstask 142, eine Verarbeitung ausführt, die zur Echtzeitsteuerung beiträgt - eine Echtzeitsteuerung des Objekts unter Verwendung des Ausführungsergebnisses durchführen. Daher kann die Echtzeitausführung einer Hilfsverarbeitung durch einen Nichtsteuerungstask realisiert werden und gleichzeitig die Realisierung der Echtzeitsteuerung eines Objekts durch den Steuerungstask sichergestellt werden.In the priority change processing according to the present embodiment, the priority becomes the high priority PH held as long as the execution time is no longer than the first period T1 is (does not exceed). Therefore, auxiliary processing can be carried out while maintaining real-time property, and it can Example real-time control of an object can be realized, which uses the result of auxiliary processing achieved with each execution. In addition, another task can preferably be performed by the priority of the auxiliary processing task 143 is reduced if the execution time becomes longer than the first period T1 (it exceeds), and as a result, the high-level control task 141 - if another task, such as the subordinate control task 142 executes processing that contributes to real-time control - real-time control of the object using the execution result. Therefore, the real-time execution of auxiliary processing can be realized by a non-control task and at the same time the real-time control of an object can be ensured by the control task.

Bei der Mehrkernplanung wird außerdem eine Prioritätswechselverarbeitung an dem Hilfsverarbeitungstask 143 durchgeführt, während ein Steuerungstask eines Objekts bevorzugt in jedem Prozessorkern ausgeführt wird. Außerdem wird eine Prioritätswechselverarbeitung an mehreren Hilfsverarbeitungstasks 143 durchgeführt, während der Steuerungstask bevorzugt unter gleichzeitiger Verwendung von zwei oder mehr Prozessorkernen ausgeführt wird.In multi-core planning, priority change processing is also performed on the auxiliary processing task 143 performed while a control task of an object is preferably performed in each processor core. In addition, priority change processing is performed on multiple auxiliary processing tasks 143 performed while the control task is preferably executed using two or more processor cores at the same time.

Dadurch kann auch bei der Mehrkernplanung die Echtzeitausführung von Hilfsverarbeitungen durch mehrere Nichtsteuerungstasks realisiert werden und gleichzeitig die Echtzeitsteuerung eines Objekts durch den Steuerungstask sichergestellt sein.As a result, the real-time execution of auxiliary processing can also be implemented by multiple non-control tasks in multi-core planning and, at the same time, real-time control of an object can be ensured by the control task.

Ausgestaltung der AusführungsformDesign of the embodiment

Gemäß der vorstehend beschriebenen Ausführungsform umfasst die Steuereinrichtung 100, die ein Objekt steuert, Tasksteuerungsinformationen 131, in denen verknüpft mit mehreren Tasks, die einen Steuerungstask (hochrangiger Steuerungstask 141) zum Durchführen von Echtzeitsteuerung des Objekts und einen Nichtsteuerungstask zum Durchführen einer die Echtzeitsteuerung betreffenden Hilfsverarbeitung umfassen, Prioritäten gespeichert sind in Bezug auf die Ausführung der jeweiligen Tasks durch einen Prozessor und einen Planer 151, der den Ausführungsablauf der Nichtsteuerungstasks in Übereinstimmung mit den Prioritäten anpasst. Für den Steuerungstask wird eine höchste Priorität festgelegt (das heißt, für den Nichtsteuerungstask wird eine Priorität festgelegt, die niedriger ist als die Priorität des Steuerungstasks). Der Planer 151 weist einen Prioritätswechselabschnitt 153 auf, der für den Nichtsteuerungstask die Priorität des Nichtsteuerungstasks auf eine niedrigere Priorität (von einer hohen Priorität PH auf eine niedrige Priorität PL) ändert, wenn die Ausführungszeit t des Nichtsteuerungstasks eine erste Zeitdauer T1 zum Ausführen der Hilfsverarbeitung in Echtzeit überstiegen hat.According to the embodiment described above, the control device comprises 100 that controls an object, task control information 131 , in which linked to several tasks that a control task (high-level control task 141 ) for performing real-time control of the object and a non-control task for performing auxiliary processing relating to real-time control, priorities are stored with respect to the execution of the respective tasks by a processor and a planner 151 that adjusts the execution flow of the non-control tasks in accordance with the priorities. A highest priority is set for the control task (that is, a priority is set for the non-control task that is lower than the priority of the control task). The planner 151 has a priority change section 153 the priority of the non-control task for the non-control task to a lower priority (from a high priority PH to a low priority PL ) changes when the execution time t of the non-control task a first period of time T1 to execute the auxiliary processing in real time.

Gemäß der vorstehend beschriebenen Ausgestaltung werden Prioritätswechsel derart durchgeführt, dass die Priorität des Nichtsteuerungstasks auf der hohen Priorität PH gehalten wird, solange die Ausführungszeit kürzer als oder gleich lang wie die erste Zeitdauer T1 zur Echtzeitausführung ist, und wenn die Ausführungszeit die erste Zeitdauer T1 übersteigt, wechselt die Priorität auf die niedrige Priorität PL. Solange die Ausführungszeit kürzer als oder gleich lang wie die erste Zeitdauer ist, kann daher der Nichtsteuerungstask (Hilfsverarbeitungstask 143) in Echtzeit ausgeführt werden, indem die Priorität unter Beibehaltung der Echtzeitsteuerung eines Objekts relativ erhöht wird, und als Ergebnis kann das Ergebnis der Hilfsverarbeitung zuverlässig in die Echtzeitsteuerung des Objekts übernommen werden.According to the embodiment described above, priority changes are carried out in such a way that the priority of the non-control task is at the high priority PH is held as long as the execution time is shorter than or equal to the first period T1 for real-time execution, and if the execution time is the first period T1 priority, the priority changes to the low priority PL , As long as the execution time is shorter than or equal to the first time period, the non-control task (auxiliary processing task 143 ) are performed in real time by relatively increasing the priority while maintaining real-time control of an object, and as a result, the result of the auxiliary processing can be reliably transferred to the real-time control of the object.

Wenn die Ausführungszeit die erste Zeitdauer zur Echtzeitausführung übersteigt, kann außerdem die Ressource bevorzugt einem weiteren Steuerungstask (zum Beispiel dem nachrangigen Steuerungstask 142) zugewiesen werden, indem die Priorität verringert wird. Das Ergebnis einer Verarbeitung durch einen weiteren Steuerungstask kann somit zuverlässig in die Echtzeitsteuerung des Objekts übernommen werden. Somit können ein Steuerungstask zum Steuern eines Objekts in Echtzeit und ein Nichtsteuerungstask derart ausgeführt werden, dass die Echtzeitsteuerung des Objekts sichergestellt werden kann.In addition, if the execution time exceeds the first time period for real-time execution, the resource can preferably be assigned to another control task (for example the subordinate control task 142 ) can be assigned by reducing the priority. The result of processing by another control task can thus be reliably transferred to the real-time control of the object. Thus, a control task for controlling an object in real time and a non-control task can be performed so that real time control of the object can be ensured.

Vorzugsweise gibt die hohe Priorität PH eine Priorität an, die größer als oder gleich groß wie die Priorität eines weiteren Tasks (zum Beispiel des nachrangigen Steuerungstasks 142) ist, und die niedrige Priorität PL gibt eine Priorität an, die niedriger als oder gleich groß wie die Priorität des weiteren Tasks ist. Dadurch kann ein weiterer Task bevorzugt ausgeführt werden, und wenn der weitere Task dem Steuerungstask die Echtzeitsteuerung betreffende Daten wie etwa Bewegungsbahndaten bereitstellt, kann die Echtzeitsteuerung eines Objekts zuverlässig durchgeführt werden.Preferably gives high priority PH a priority that is greater than or equal to the priority of another task (for example the subordinate control task 142 ), and the low priority PL specifies a priority that is lower than or equal to the priority of the further task. As a result, a further task can preferably be carried out, and if the further task provides the control task with data relating to real-time control, such as movement path data, real-time control of an object can be carried out reliably.

Die erste Zeitdauer T1 ist vorzugsweise variabel festgelegt. Außerdem können die niedrige Priorität PL und die hohe Priorität PH variabel festgelegt sein. Dadurch können die erste Zeitdauer T1 und die hohe Priorität PH oder die niedrige Priorität PL durch Durchführung einer Anpassung derart bestimmt werden, dass der Steuerungstask zum Steuern eines Objekts in Echtzeit und der Nichtsteuerungstask so ausgeführt werden können, dass die Echtzeitsteuerung des Objekts sichergestellt ist.The first period T1 is preferably set variably. It can also be the low priority PL and the high priority PH be set variably. This allows the first period of time T1 and the high priority PH or the low priority PL can be determined by performing an adjustment such that the control task for controlling an object in real time and the non-control task can be executed in such a way that real-time control of the object is ensured.

Vorzugsweise erhöht der Prioritätswechselabschnitt 153 ferner für den Nichtsteuerungstask mit der niedrigen Priorität PL die Priorität des Nichtsteuerungstasks auf die hohe Priorität PH, wenn die Ausführungszeit eine zweite Zeitdauer T2 übersteigt. Dadurch kann die Ausführungszeit des Nichtsteuerungstasks unter Verwendung der ersten Zeitdauer T1 und der zweiten Zeitdauer T2 als Orientierungshilfe derart angepasst werden, dass die Echtzeitsteuerung eines Objekts sichergestellt werden kann. Preferably, the priority change section increases 153 also for the non-control task with the low priority PL the priority of the non-control task to the high priority PH if the execution time is a second period T2 exceeds. This allows the execution time of the non-control task using the first period T1 and the second period T2 As an orientation aid, they can be adjusted so that real-time control of an object can be ensured.

Die zweite Zeitdauer T2 wird vorzugsweise variabel festgelegt. Dadurch kann die zweite Zeitdauer T2 durch Durchführung einer Anpassung derart bestimmt werden, dass der Steuerungstask zum Steuern eines Objekts in Echtzeit und der Nichtsteuerungstask so ausgeführt werden können, dass die Echtzeitsteuerung des Objekts sichergestellt ist.The second period T2 is preferably set variably. This allows the second period T2 can be determined by performing an adjustment such that the control task for controlling an object in real time and the non-control task can be executed in such a way that real-time control of the object is ensured.

Die Hilfsverarbeitung umfasst vorzugsweise eine Merkmalsmengenerzeugungsverarbeitung zum Erzeugen einer Merkmalsmenge, die geeignet ist zum Erkennen einer Anomalie, die in einem Objekt auftritt, aus Daten, die das Objekt betreffen, eine Anomalieerkennungsverarbeitung zum Erkennen einer Anomalie unter Verwendung der durch die Merkmalsmengenerzeugungsverarbeitung erzeugten Merkmalsmenge und eine Verarbeitung zum Kommunizieren von Daten für die Merkmalsmengenerzeugungsverarbeitung oder die Anomalieerkennungsverarbeitung an eine Einrichtung, die eine Speichereinrichtung umfasst.The auxiliary processing preferably includes feature set generation processing for generating a feature set suitable for detecting an anomaly occurring in an object from data relating to the object, an anomaly detection processing for detecting an anomaly using the set of features generated by the feature set generation processing, and processing for communicating data for feature set generation processing or anomaly detection processing to a device including a storage device.

Daher kann die Echtzeitsteuerung eines Objekts unter Verwendung eines Anomalieerkennungsergebnisses durchgeführt werden, das ein Ergebnis der Echtzeitausführung des Nichtsteuerungstasks ist.Therefore, real-time control of an object can be performed using an abnormality detection result that is a result of real-time execution of the non-control task.

Die Hilfsverarbeitung umfasst vorzugsweise eine Berechnungsverarbeitung zum Berechnen einer geschätzten Steuergröße 1513 eines Objekts 90 unter Verwendung eines Anweisungswerts 1512, der von einer Steuereinrichtung an das Objekt ausgegeben wird, und eines vorbestimmten Steuerungsmodells 1434; und eine Korrekturwertberechnungsverarbeitung 1431 zum Berechnen eines Korrekturwerts 1514 auf Grundlage einer bei der Berechnungsverarbeitung berechneten Steuergröße; und der Steuerungstask 141 umfasst vorzugsweise einen Steuerungsberechnungstask 1411 zum Berechnen einer Steuerungsausgabe (eines Anweisungswerts 1516) an das Objekt gemäß dem berechneten Korrekturwert 1514.The auxiliary processing preferably includes calculation processing for calculating an estimated control variable 1513 of an object 90 using an instruction value 1512 , which is output by a control device to the object, and a predetermined control model 1434 ; and correction value calculation processing 1431 to calculate a correction value 1514 based on a control quantity calculated in the calculation processing; and the control task 141 preferably includes a control calculation task 1411 for calculating a control output (an instruction value 1516 ) to the object according to the calculated correction value 1514 ,

Daher kann die Echtzeitsteuerung eines Objekts unter Verwendung eines Ergebnisses einer Verarbeitung durchgeführt werden, bei der das prädiktive Steuerungsmodell des Nichtsteuerungstasks verwendet wird.Therefore, real-time control of an object can be performed using a result of processing using the predictive control model of the non-control task.

Die Hilfsverarbeitung umfasst vorzugsweise eine Berechnungsverarbeitung zum Berechnen der geschätzten Steuergröße 1513 des Objekts unter Verwendung einer Steuergröße 1517 des Objekts 90, die von der Steuereinrichtung an das Objekt ausgegeben wird, und des vorbestimmten Steuerungsmodells 1434 sowie die Korrekturwertberechnungsverarbeitung 1431 zum Berechnen des Korrekturwerts 1514 auf Grundlage der bei der Berechnungsverarbeitung berechneten Steuergröße 1513, und der Steuerungstask 141 umfasst den Steuerungsberechnungstask 1411 zum Berechnen der Steuerungsausgabe (des Anweisungswerts 1516) an das Objekt gemäß dem berechneten Korrekturwert.The auxiliary processing preferably includes calculation processing for calculating the estimated control variable 1513 of the object using a control variable 1517 of the object 90 output from the control device to the object and the predetermined control model 1434 as well as the correction value calculation processing 1431 to calculate the correction value 1514 based on the tax quantity calculated in the calculation processing 1513 , and the control task 141 includes the control calculation task 1411 to calculate the control output (the instruction value 1516 ) to the object according to the calculated correction value.

Daher kann die Echtzeitsteuerung eines Objekts unter Verwendung eines Ergebnisses einer Verarbeitung durchgeführt werden, bei der das prädiktive Steuerungsmodell des Nichtsteuerungstasks verwendet wird.Therefore, real-time control of an object can be performed using a result of processing using the predictive control model of the non-control task.

Die Korrekturwertberechnungsverarbeitung umfasst vorzugsweise eine Verarbeitung zum Berechnen eines Korrekturwerts durch derartiges Durchführen einer Korrektur, dass die Steuergröße in einem vorbestimmten Bereich liegt.The correction value calculation processing preferably includes processing for calculating a correction value by performing a correction such that the control quantity is in a predetermined range.

Daher kann der Korrekturwert durch derartiges Durchführen einer Korrektur berechnet werden, dass die Steuergröße in dem vorbestimmten Bereich liegt.Therefore, the correction value can be calculated by performing a correction such that the control quantity is in the predetermined range.

Vorzugsweise weist die Steuereinrichtung einen Sammelabschnitt 155 auf, der in Bezug auf den Nichtsteuerungstask Informationen sammelt, die die Ausführung des Nichtsteuerungstasks betreffen und eine Ausführungszeit umfassen, und die von dem Sammelabschnitt gesammelten Informationen werden nach außen ausgegeben.The control device preferably has a collecting section 155 which collects information related to the execution of the non-control task and an execution time related to the non-control task, and the information collected by the collecting section is output to the outside.

Als Ergebnis der Ausgabe der gesammelten Informationen können daher Informationen, die die Ausführungszeit des Nichtsteuerungstasks umfassen, einem Benutzer als Unterstützungsinformationen zum Festlegen der ersten Zeitdauer T1 oder der zweiten Zeitdauer T2 bereitgestellt werden.Therefore, as a result of the output of the collected information, information including the execution time of the non-control task can be given to a user as support information for setting the first period of time T1 or the second period T2 to be provided.

Die zu sammelnden Informationen umfassen vorzugsweise die Anzahl von Prioritätswechseln des Nichtsteuerungstasks.The information to be collected preferably includes the number of priority changes of the non-control task.

Daher kann die Anzahl von Prioritätswechseln des Nichtsteuerungstasks dem Benutzer als Unterstützungsinformationen bereitgestellt werden.Therefore, the number of priority changes of the non-control task can be provided to the user as support information.

Inhalte von Verarbeitungen, die in der Hilfsverarbeitung enthalten sind, sind vorzugsweise variabel festgelegt.Contents of processing that are included in the auxiliary processing are preferably set variably.

Die Inhalte der Hilfsverarbeitung (Art des Hilfsverarbeitungsprogramms, Inhalte von Verarbeitungen wie etwa Berechnungsverarbeitungen) können daher derart angepasst werden, dass der Steuerungstask zum Steuern eines Objekts in Echtzeit und der Nichtsteuerungstask die Echtzeitsteuerung des Objekts sicherstellen können. The contents of the auxiliary processing (type of the auxiliary processing program, contents of processing such as calculation processing) can therefore be adapted such that the control task for controlling an object in real time and the non-control task can ensure real-time control of the object.

Vorzugsweise weist ein Prozessor 102 mehrere Prozessorkerne (Core1 bis Core4) auf, und es sind Kerninformationen 136 gespeichert, die dazu dienen, einen Prozessorkern zu bezeichnen, der den Nichtsteuerungstask ausführen wird. Ein Planer 151 umfasst einen Kernwechselabschnitt 156 zum Bestimmen desjenigen Prozessorkerns, der den Nichtsteuerungstask ausführen wird, auf Grundlage der Kerninformationen 136 oder dem Auslastungsgrad 159 der jeweiligen Prozessorkerne.Preferably, a processor has 102 multiple processor cores (Core1 through Core4) and it's core information 136 stored, which are used to designate a processor core that will execute the non-control task. A planner 151 includes a core change section 156 to determine the processor core that will execute the non-control task based on the core information 136 or the degree of utilization 159 of the respective processor cores.

Daher wird derjenige Prozessorkern bestimmt, dessen Auslastungsgrad 159 angibt, dass ein Leeranteil E hoch ist, und der Prozessorkern kann dazu veranlasst werden, den Nichtsteuerungstask auszuführen.Therefore, the processor core is determined, the degree of utilization 159 indicates that an empty portion e is high, and the processor core can be made to perform the non-control task.

Die Kerninformationen 136 umfassen vorzugsweise Informationen zum Bestimmen eines Prozessorkerns, der den Nichtsteuerungstask ausführen wird, auf Grundlage der Priorität des Nichtsteuerungstasks.The key information 136 preferably include information for determining a processor core that will perform the non-control task based on the priority of the non-control task.

Wenn mehrere Nichtsteuerungstasks vorliegen, können daher die Prozessorkerne in absteigender Reihenfolge der Priorität der Nichtsteuerungstasks bestimmt werden, und die Nichtsteuerungstasks werden durch die jeweils bestimmten Prozessorkerne ausgeführt.Therefore, if there are multiple non-control tasks, the processor cores can be determined in descending order of priority of the non-control tasks, and the non-control tasks are performed by the particular processor cores.

Die vorliegend offenbarten Ausführungsformen sind in jeder Hinsicht veranschaulichend und nicht einschränkend zu verstehen. Der Schutzumfang der Erfindung wird durch die Ansprüche und nicht durch die vorausgegangene Beschreibung angegeben, und alle Änderungen, die in die Bedeutung und den Äquivalenzbereich der Ansprüche fallen, gelten als darin eingeschlossen.The embodiments disclosed herein are to be considered in all respects as illustrative and not restrictive. The scope of the invention is indicated by the claims rather than the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are to be embraced therein.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

11
Steuersystemcontrol system
1010
FeldgerätegruppeField Device Group
100100
Steuereinrichtungcontrol device
101101
Zeitgebertimer
102, 202102, 202
Prozessorprocessor
106, 206106, 206
HauptspeichereinrichtungMain memory means
108, 208108, 208
sekundäre Speichereinrichtungsecondary storage device
131131
TasksteuerungsinformationenTask control information
133133
Prioritätpriority
134134
Programmnameprogram name
135135
Protokollprotocol
136136
Kerninformationencore information
137137
Für Betrieb zugewiesener KernCore assigned for operation
138138
Zuweisungsmodusassignment mode
141141
hochrangiger Steuerungstaskhigh-level control task
142142
nachrangiger Steuerungstasksubordinate control task
143143
HilfsverarbeitungstaskAuxiliary processing task
144144
Diensttaskservice task
150150
Benutzerprogrammuser program
151151
Planerplanner
152152
FestlegeabschnittSetting section
152A152A
Schwellwertthreshold
152B152B
Prioritätsinformationenpriority information
153153
PrioritätswechselabschnittPriority change portion
153A153A
Überwachungsinformationenmonitoring information
153B153B
Zählercounter
154154
TaskinformationenfestlegeabschnittTask information setting section
155155
Sammelabschnittcollecting section
156156
KernwechselabschnittCore switching section
157157
AusführungsanweisungsabschnittExecution instructing section
158158
KernzuweisungsbefehlCore assignment command
159159
Auslastungsgradcapacity utilization
161161
SteuerungseingabeprogrammControl input program
162162
SteuerungsausgabeprogrammControl spending program
163163
hochrangiges Steuerprogrammhigh-level tax program
164 164
nachrangiges Steuerprogrammsubordinate tax program
165165
HilfsverarbeitungsprogrammAuxiliary processor
166166
SystemdienstprogrammSystem Utility
191191
MultitaskausführungsabschnittMultitask execution section
200200
Unterstützungseinrichtungsupport facility
204204
optisches Laufwerkoptical drive
205205
Aufzeichnungsmediumrecording medium
216216
Eingabeeinheitinput unit
218218
Anzeigeeinheitdisplay unit
222222
Entwicklungsprogrammdevelopment program
224224
ParameterfestlegungsinstrumentParameter setting instrument
226226
DatengewinnungsinstrumentData collection instrument
227227
DebugginginstrumentDebugging tool
228228
gesammelte Informationeninformation collected
300300
DatenprotokollierungseinrichtungData logging device
400400
Anzeigeeinrichtungdisplay
Ee
Leeranteilvoid fraction
FLFL
Statusflagstatus flag
PHPH
hohe Prioritäthigh priority
PLPL
niedrige Prioritätlow priority
PRPR
Verwaltungsverarbeitungadministrative processing
RTS, RTS1, RTS2, RTS3RTS, RTS1, RTS2, RTS3
Tasktask
TT
Zykluscycle
tt
Ausführungsdauerexecution time

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE 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 documents listed by the applicant has been generated automatically and is only included 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 2013506911 A [0003, 0004]JP 2013506911 A [0003, 0004]

Claims (15)

Steuereinrichtung zum Steuern eines Objekts, wobei die Steuereinrichtung aufweist: einen Prozessor, der dazu eingerichtet ist, mehrere Tasks auszuführen, welche einen Steuerungstask zum Durchführen einer Echtzeitsteuerung des Objekts und einen Nichtsteuerungstask zum Durchführen einer Hilfsverarbeitung umfassen, die die Echtzeitsteuerung betrifft; einen Multitaskausführungsabschnitt, der dazu eingerichtet ist, den Prozessor dazu zu veranlassen, die mehreren Tasks in einer Ablauffolge auszuführen, die auf Prioritäten basiert, die mit jeweiligen Tasks aus den mehreren Tasks verknüpft sind; und einen Planer, der dazu eingerichtet ist, die Priorität des Nichtsteuerungstasks variabel festzulegen, wobei für den Steuerungstask eine höchste Priorität festgelegt wird und der Planer einen Prioritätswechselabschnitt aufweist, der dazu eingerichtet ist, die Priorität des Nichtsteuerungstasks auf eine erste Priorität festzulegen, wenn eine Ausführungsstartbedingung des Nichtsteuerungstasks erfüllt worden ist, die Priorität des Nichtsteuerungstasks auf der ersten Priorität zu halten, solange die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks kürzer als oder gleich lang wie eine erste Zeitdauer zur Ausführung der Hilfsverarbeitung in Echtzeit ist, und danach die Priorität des Nichtsteuerungstasks auf eine zweite Priorität zu verringern, wenn die Zeitdauer seit dem Ausführungsstart die erste Zeitdauer überstiegen hat.Control device for controlling an object, the control device comprising: a processor configured to perform a plurality of tasks including a control task for performing real-time control of the object and a non-control task for performing auxiliary processing related to real-time control; a multitask execution section configured to cause the processor to execute the plurality of tasks in a sequence based on priorities associated with respective tasks from the plurality of tasks; and a planner that is set up to variably determine the priority of the non-control task, a highest priority is set for the control task and the planner has a priority change section configured to set the priority of the non-control task to a first priority when an execution start condition of the non-control task has been met, to keep the priority of the non-control task at the first priority as long as the period of time since the execution start of the non-control task is shorter than or the same length as a first time period for executing the auxiliary processing in real time, and thereafter reduce the priority of the non-control task to a second priority if the time period has exceeded the first time period since the execution start. Steuereinrichtung nach Anspruch 1, wobei die erste Zeitdauer variabel festgelegt werden kann.Control device after Claim 1 , the first time period being variable. Steuereinrichtung nach Anspruch 1 oder 2, wobei der Prioritätswechselabschnitt ferner einen Wechsel derart durchführt, dass die Priorität des Nichtsteuerungstasks auf die erste Priorität angehoben wird, wenn die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks mit der zweiten Priorität eine zweite Zeitdauer übersteigt.Control device after Claim 1 or 2 , wherein the priority change section further performs a change such that the priority of the non-control task is raised to the first priority if the time period since the execution start of the non-control task with the second priority exceeds a second time period. Steuereinrichtung nach Anspruch 3, wobei die zweite Zeitdauer variabel festgelegt werden kann.Control device after Claim 3 , the second time period being variable. Steuereinrichtung nach einem der Ansprüche 1 bis 4, wobei die Hilfsverarbeitung umfasst: eine Merkmalsmengenerzeugungsverarbeitung zum Erzeugen einer zur Erkennung einer Anomalie, die in dem Objekt auftritt, aus Daten, die das Objekt betreffen, geeigneten Merkmalsmenge; eine Anomalieerkennungsverarbeitung zum Erkennen der Anomalie unter Verwendung einer bei der Merkmalsmengenerzeugungsverarbeitung erzeugten Merkmalsmenge; und eine Verarbeitung zum Kommunizieren von Daten für die Merkmalsmengenerzeugungsverarbeitung oder die Anomalieerkennungsverarbeitung an eine Einrichtung, die eine Speichereinrichtung umfasst.Control device according to one of the Claims 1 to 4 wherein the auxiliary processing includes: feature set generation processing for generating a set of features suitable for detecting an abnormality occurring in the object from data relating to the object; anomaly detection processing for detecting the anomaly using a set of features generated in the feature set generation processing; and processing for communicating data for the feature set generation processing or the abnormality detection processing to a device including a storage device. Steuereinrichtung nach einem der Ansprüche 1 bis 4, wobei die Hilfsverarbeitung umfasst: eine Berechnungsverarbeitung zum Berechnen einer geschätzten Steuergröße des Objekts unter Verwendung eines Anweisungswerts, der von der Steuereinrichtung an das Objekt ausgegeben wird, und eines vorbestimmten prädiktiven Steuerungsmodells; und eine Korrekturwertberechnungsverarbeitung zum Berechnen eines Korrekturwerts basierend auf einer bei der Berechnungsverarbeitung berechneten Steuergröße und der Steuerungstask einen Steuerungsberechnungstask zum Berechnen eines Anweisungswerts für das Objekt in Übereinstimmung mit dem berechneten Korrekturwert umfasst.Control device according to one of the Claims 1 to 4 wherein the auxiliary processing includes: calculation processing for calculating an estimated control amount of the object using an instruction value output from the controller to the object and a predetermined predictive control model; and correction value calculation processing for calculating a correction value based on a control quantity calculated in the calculation processing and the control task comprises a control calculation task for calculating an instruction value for the object in accordance with the calculated correction value. Steuereinrichtung nach einem der Ansprüche 1 bis 4, wobei die Hilfsverarbeitung umfasst: eine Berechnungsverarbeitung zum Berechnen einer geschätzten Steuergröße des Objekts unter Verwendung einer Steuergröße des Objekts, die von der Steuereinrichtung an das Objekt ausgegeben wird, und eines vorbestimmten prädiktiven Steuerungsmodells; eine Korrekturwertberechnungsverarbeitung zum Berechnen eines Korrekturwerts basierend auf einer bei der Berechnungsverarbeitung berechneten Steuergröße und der Steuerungstask einen Steuerungsberechnungstask zum Berechnen eines Anweisungswerts für das Objekt in Übereinstimmung mit dem berechneten Korrekturwert umfasst.Control device according to one of the Claims 1 to 4 wherein the auxiliary processing includes: calculation processing for calculating an estimated control quantity of the object using a control quantity of the object output from the controller to the object and a predetermined predictive control model; correction value calculation processing for calculating a correction value based on a control quantity calculated in the calculation processing and the control task includes a control calculation task for calculating an instruction value for the object in accordance with the calculated correction value. Steuereinrichtung nach Anspruch 6 oder 7, wobei die Korrekturwertberechnungsverarbeitung eine Verarbeitung zum Berechnen des Korrekturwerts umfasst, der derart korrigiert worden ist, dass die Steuergröße in einem vorbestimmten Bereich liegt.Control device after Claim 6 or 7 wherein the correction value calculation processing includes processing for calculating the correction value that has been corrected such that the control quantity is in a predetermined range. Steuereinrichtung nach einem der Ansprüche 1 bis 8, ferner aufweisend einen Sammelabschnitt, der dazu eingerichtet ist, in Bezug auf den Nichtsteuerungstask Informationen zu sammeln, die die Ausführung des Nichtsteuerungstasks betreffen und eine Zeitdauer ab dem Ausführungsstart umfassen, wobei die von dem Sammelabschnitt gesammelten Informationen nach außen ausgegeben werden.Control device according to one of the Claims 1 to 8th further comprising a collection section configured to collect information related to the execution of the non-control task relating to the execution of the non-control task and comprising a period of time from the start of execution, the information collected by the collection section being output to the outside. Steuereinrichtung nach Anspruch 9, wobei die zu sammelnden Informationen die Anzahl von Prioritätswechseln des Nichtsteuerungstasks umfassen.Control device after Claim 9 wherein the information to be collected includes the number of priority changes of the non-control task. Steuereinrichtung nach einem der Ansprüche 1 bis 10, wobei die von der Hilfsverarbeitung umfassten Verarbeitungen variabel festlegbar sind. Control device according to one of the Claims 1 to 10 , wherein the processing included in the auxiliary processing can be set variably. Steuereinrichtung nach einem der Ansprüche 1 bis 11, wobei der Prozessor mehrere Prozessorkerne aufweist, die Steuereinrichtung ferner einen Kerninformationsspeicherabschnitt zur Speicherung von Kerninformationen zum Bestimmen eines Prozessorkerns zur Ausführung des Nichtsteuerungstasks aufweist und der Planer ferner einen Kernwechselabschnitt aufweist, der dazu eingerichtet ist, basierend auf den Kerninformationen oder auf dem Auslastungsgrad der einzelnen Prozessorkerne den Prozessorkern zur Ausführung des Nichtsteuerungstasks zu bestimmen.Control device according to one of the Claims 1 to 11 , wherein the processor has a plurality of processor cores, the control device further comprises a core information storage section for storing core information for determining a processor core for carrying out the non-control task, and the planner also has a core change section which is set up based on the core information or on the degree of utilization of the individual processor cores determine the processor core for performing the non-control task. Steuereinrichtung nach Anspruch 12, wobei die Kerninformationen Informationen zum Bestimmen eines Prozessorkerns, der den Nichtsteuerungstask ausführt, basierend auf der Priorität des Nichtsteuerungstasks umfassen.Control device after Claim 12 wherein the core information includes information for determining a processor core that executes the non-control task based on the priority of the non-control task. Steuerverfahren einer Steuereinrichtung zum Steuern eines Objekts, wobei die Steuereinrichtung aufweist: einen Prozessor, der dazu eingerichtet ist, mehrere Tasks auszuführen, welche einen Steuerungstask zum Durchführen einer Echtzeitsteuerung des Objekts und einen Nichtsteuerungstask zum Durchführen einer Hilfsverarbeitung umfassen, die die Echtzeitsteuerung betrifft; und einen Multitaskausführungsabschnitt, der dazu eingerichtet ist, den Prozessor dazu zu veranlassen, die mehreren Tasks in einer Ablauffolge auszuführen, die auf Prioritäten basiert, die mit jeweiligen der mehreren Tasks verknüpft sind, und für den Steuerungstask eine höchste Priorität festgelegt wird, das Steuerverfahren einen Schritt mit variablem Festlegen der Priorität des Nichtsteuerungstasks umfasst und der Schritt mit variablem Festlegen umfasst: einen Schritt mit Festlegen der Priorität des Nichtsteuerungstasks auf eine erste Priorität, wenn eine Ausführungsstartbedingung des Nichtsteuerungstasks erfüllt worden ist, und Halten der Priorität des Nichtsteuerungstasks auf der ersten Priorität, solange die Zeitdauer seit dem Ausführungsstart des Nichtsteuerungstasks kürzer als oder gleich lang wie eine erste Zeitdauer zur Ausführung der Hilfsverarbeitung in Echtzeit ist; und einen Schritt mit anschließendem Durchführen eines Wechsels derart, dass die Priorität des Nichtsteuerungstasks auf eine zweite Priorität verringert wird, wenn die Zeitdauer seit dem Ausführungsstart die erste Zeitdauer überstiegen hat.Control method of a control device for controlling an object, the control device comprising: a processor configured to perform a plurality of tasks including a control task for performing real-time control of the object and a non-control task for performing auxiliary processing related to real-time control; and a multitask execution section configured to cause the processor to execute the plurality of tasks in a sequence based on priorities associated with each of the plurality of tasks, and a highest priority is set for the control task, the control method includes a step of variably setting the priority of the non-control task and the variable setting step includes: a step of setting the priority of the non-control task to a first priority when an execution start condition of the non-control task has been met, and keeping the priority of the non-control task at the first priority as long as the period of time since the execution start of the non-control task is shorter than or equal to a first period to execute the auxiliary processing in real time; and a step followed by a change such that the priority of the non-control task is reduced to a second priority if the period of time since the start of execution has exceeded the first period of time. Programm zum Veranlassen eines Computers dazu, das Steuerverfahren nach Anspruch 14 auszuführen.Program to get a computer to follow the control procedure Claim 14 perform.
DE112018001886.5T 2017-04-07 2018-04-02 Control device, control procedure and control program Pending DE112018001886T5 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2017077015 2017-04-07
JP2017-077015 2017-04-07
JP2018048152A JP6406466B1 (en) 2017-04-07 2018-03-15 Control device, control method, and control program
JP2018-048152 2018-03-15
PCT/JP2018/014142 WO2018186358A1 (en) 2017-04-07 2018-04-02 Control device, control method, and control program

Publications (1)

Publication Number Publication Date
DE112018001886T5 true DE112018001886T5 (en) 2019-12-19

Family

ID=63855241

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001886.5T Pending DE112018001886T5 (en) 2017-04-07 2018-04-02 Control device, control procedure and control program

Country Status (3)

Country Link
JP (1) JP6406466B1 (en)
CN (1) CN110402430B (en)
DE (1) DE112018001886T5 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7380390B2 (en) * 2020-03-31 2023-11-15 オムロン株式会社 Control device, program and control method
CN112015529B (en) * 2020-08-05 2023-09-01 北京奇艺世纪科技有限公司 Data task scheduling method, system, electronic device and storage medium
US20220075349A1 (en) * 2020-09-08 2022-03-10 Delta Tau Data Systems, Inc. Method and apparatus for multi-core processor management in a motion control system
CN112677659B (en) * 2020-12-22 2022-09-09 厦门喵宝科技有限公司 Control method of portable intelligent printing device and printing device
CN113393146B (en) * 2021-06-25 2022-12-20 重庆大学 Multi-stage flexible test system reliability evaluation method based on Bayesian network
CN114326560B (en) * 2021-11-18 2024-02-09 北京华能新锐控制技术有限公司 Method and device for reducing CPU load of domestic PLC of wind turbine generator
CN114282661A (en) * 2021-12-23 2022-04-05 安谋科技(中国)有限公司 Method for operating neural network model, readable medium and electronic device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013506911A (en) 2009-09-30 2013-02-28 ゼネラル・エレクトリック・カンパニイ Multiprocessor programmable logic controller and method for operating the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
JP2002099434A (en) * 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd Control apparatus
GB2392515B (en) * 2002-08-28 2005-08-17 Livedevices Ltd Improvements relating to stack usage in computer-related operating systems
US20060195847A1 (en) * 2003-12-04 2006-08-31 Katsushige Amano Task scheduling device, method, program, recording medium, and transmission medium for priority-driven periodic process scheduling
JP4270038B2 (en) * 2004-06-16 2009-05-27 株式会社デンソーウェーブ Control device and computer program
JP4905597B1 (en) * 2011-03-15 2012-03-28 オムロン株式会社 Controller support device, controller support program to be executed in the device, and recording medium storing the program
CN103377078B (en) * 2012-04-11 2017-04-12 广州地铁集团有限公司 Real-time task scheduling method and system for vehicular ATP
EP2857968B1 (en) * 2012-05-24 2023-07-05 Renesas Electronics Corporation Task processor
JP5669987B1 (en) * 2014-01-07 2015-02-18 三菱電機株式会社 Control device, development device, and development program
CN104915256B (en) * 2015-06-05 2019-03-26 惠州Tcl移动通信有限公司 A kind of the Real-Time Scheduling implementation method and its system of task

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013506911A (en) 2009-09-30 2013-02-28 ゼネラル・エレクトリック・カンパニイ Multiprocessor programmable logic controller and method for operating the same

Also Published As

Publication number Publication date
CN110402430B (en) 2023-01-10
JP6406466B1 (en) 2018-10-17
JP2018181315A (en) 2018-11-15
CN110402430A (en) 2019-11-01

Similar Documents

Publication Publication Date Title
DE112018001886T5 (en) Control device, control procedure and control program
DE102007016060B4 (en) Computerarbeitslastneuverteilung
DE112017005957B4 (en) Information processing system and information processing method
DE10255125A1 (en) Decentralized Automatic Testing of Graphical User Interfaces (GUI) of Software
EP2996006B1 (en) Method and apparatus for monitoring a production and/or mounting process
WO2013171234A1 (en) Method for the monitoring, control and data-collection of system components of a service-oriented automation system, and a service-oriented automation system for carrying out said method
DE2244402A1 (en) DATA PROCESSING SYSTEM
WO2011061046A1 (en) Parallelized program control
DE102017111201A1 (en) Production management device for controlling production cells on which maintenance work is performed
EP3125056A1 (en) System and method for control and/or analysis of an industrial process
DE112017005554T5 (en) Data processing device, data processing method, settings management device and data processing system
DE102018201379B4 (en) Monitoring device, machine installation and monitoring system
EP2808749B1 (en) Method for the exchange of control information between operating and observation devices of an industrial automation system and industrial automation system
DE102019215739A1 (en) Control device, communication terminal and control system
DE102006052757A1 (en) Automation device for use with engineering system, has processing unit i.e. cell processor, provided with processing cores for controlling, monitoring and/or influencing technical processes, where processing cores execute operating systems
EP3088976A1 (en) Method for operating an automation device and automation device
WO2010118864A1 (en) Method for providing information about the wear and tear of a component of a machine and method for providing a replacement algorithm
DE4446286C1 (en) Responsive signal processing system and method for producing a responsive system
DE102018006156A1 (en) control system
WO2022028827A1 (en) Method for operating a system, and system coupled to a number of production stations for producing a product
DE102017003157A1 (en) Numerical control
DE102021003650A1 (en) Information processing apparatus, method of controlling an information processing apparatus, manufacturing system, method of manufacturing objects, and recording medium
EP3992733A1 (en) Machine loading planning for a complex production plant
DE102017001765A1 (en) NUMERICAL CONTROL FOR TOOL MACHINE
DE102020123911A1 (en) SYNCHRONIZATION OF BEHAVIOR OF SEVERAL INSTRUMENTS WITH THE HELP OF ORDERS AND INTERMEDIATE OBJECTIVES

Legal Events

Date Code Title Description
R012 Request for examination validly filed