DE102010002327B4 - Controller - Google Patents

Controller Download PDF

Info

Publication number
DE102010002327B4
DE102010002327B4 DE102010002327.2A DE102010002327A DE102010002327B4 DE 102010002327 B4 DE102010002327 B4 DE 102010002327B4 DE 102010002327 A DE102010002327 A DE 102010002327A DE 102010002327 B4 DE102010002327 B4 DE 102010002327B4
Authority
DE
Germany
Prior art keywords
program
data
unit
control command
programs
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.)
Expired - Fee Related
Application number
DE102010002327.2A
Other languages
English (en)
Other versions
DE102010002327A1 (de
Inventor
Tatsuya Maruyama
Tsutomu Yamada
Norihisa Yanagihara
Shinji Yonemoto
Takashi Iwaki
Hiroshi Fujii
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.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
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 Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Publication of DE102010002327A1 publication Critical patent/DE102010002327A1/de
Application granted granted Critical
Publication of DE102010002327B4 publication Critical patent/DE102010002327B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/4186Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31145Ethernet
    • 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/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31218Scheduling communication on bus
    • 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)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Abstract

Controller mit einem oder mehreren Programmen zur Steuerung von einem oder mehreren zu steuernden Geräten (121), wobei der Controller umfasst: eine Verarbeitungseinheit (101) zur Ausgabe eines Steuerungsbefehls für jedes zu steuernde Gerät (121) an einen Kommunikationsplaner (102) basierend auf jedem der Programme; und den Kommunikationsplaner (102) zur Ermittlung einer Sendezeit zum Senden des von der Verarbeitungseinheit (101) ausgegebenen Steuerungsbefehlswerts an die einzelnen zu steuernden Geräte (121) über ein Netzwerk (122) gemäß einer Zeitfenster nutzenden Zeitplaninformation und zum Senden von Sendedaten mit den Steuerungsbefehlswerten an das einzelne zu steuernde Gerät (121), wobei der Kommunikationsplaner (102) umfasst: eine Speichereinheit (139); eine Programminformationsmanagementeinheit (142) zum Empfangen einer Eingabe von Programmmanagementinformationen, welche die Identifikationsinformation des von dem Programm zu steuernden Geräts (121) angeben, welches eines der Programme ist, die periodisch die Steuerungsbefehlswerte senden, sowie die für die Übertragung des Steuerungsbefehlswerts an das zu steuernde Gerät (121) verwendete Periode und einen maximalen Wert der Datenmenge des von dem einzelnen Programm ausgegebenen Steuerungsbefehlswerts, sowie zum Speichern der Programmmanagementinformationen; eine Sendedatenmanagementeinheit (140) zum Empfangen der Eingabe des Steuerungsbefehlswerts an das zu steuernde Gerät (121) von der Verarbeitungseinheit (101) auf der Basis des Programms und zum Speichern des Steuerungsbefehlswerts in der Speichereinheit (139); eine Planänderungsmöglichkeits-Bestimmungseinheit (131) zur Berechnung der Summe der Datenmengen der Steuerungsbefehlswerte, die von jedem der Programme ausgegeben werden, welche die Verarbeitungseinheit (101) gegenwärtig ausführt, und zwar Bezug nehmend auf die Programmmanagementinformation der Programme, wobei die Planänderungsmöglichkeits-Bestimmungseinheit (131) dann, wenn ein durch Division der Summe durch den Kommunikationsverarbeitungsdurchsatz des Kommunikationsplaners (102) erhaltener Wert geringer ...

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Sendezeit-Steuerungstechnologie zur Verwendung dann, wenn ein Controller zur Steuerung mehrerer zu steuernder Geräte an jedes zu steuernde Gerät einen Steuerbefehlswert übermittelt.
  • 2. Beschreibung des Stands der Technik
  • Das Dokument DE 103 57 824 A1 offenbart ein Verfahren zum synchronisierten Betreiben mehrerer Geräte, die jeweils über unterschiedliche Schnittstellen gesteuert werden. Das Dokument US 2008/0013572 A1 offenbart ein System zur Ausführung verteilter Software unter harten Echtzeitbedingungen, wobei den einzelnen Einheiten feste, sich periodisch wiederholende Kommunikationszeitfenster zugeordnet werden.
  • Es gibt ein Steuerungssystem, in welchem ein Controller ein oder mehrere zu steuernde Geräte über ein Netzwerk steuert (siehe Nicht-Patentliteratur 1: EtherCAT (eingetragene Marke), gesucht online am 3. Dezember 2008, Internet URL:
    http://www.anybus.jp/technologies/ethercat.shtml). Dort steuert der Controller jedes zu steuernde Gerät durch den Vorgang der Programmausführung. Der Controller verwendet ein geeignetes Betriebssystem (im Folgenden als ein OS bezeichnet) sowie spezielle Hardware, um die Arbeitsleistung zu erhöhen. Im Allgemeinen wiederholt ein einem derartigen Steuerprozess zugehöriges Programm einen vorgegebenen Prozess mit einer vorgegebenen Periode. Die Periode stellt typischerweise eine zeitliche Einschränkung für den Steuerprozess des Controllers dar.
  • In diesem Fall führt der Controller den Steuerbefehlswerten zugehörende Steuerprozesse mit unterschiedlichen Sendeperiode und weiteren Bedingungen für jedes der zu steuernden Geräte aus. In einem solchen Fall ist es für eine Kommunikationsanwendung des Controllers notwendig, eine Einschaltbedingung zum Identifizieren jeder Periode jedes Steuerprozesses einzustellen, um die zeitlichen Beschränkungen des Steuerprozesses erfüllen zu können. Das Einstellen einer solchen Einschaltbedingung ist sehr kompliziert und es bedarf viel Zeit und Mühe bei der Entwicklung der Kommunikationsanwendung. Es besteht ferner das Problem, dass das Ändern, Hinzufügen und Erweitern des Steuerprozesses für die Kommunikationsanwendung sehr zeitintensiv ist.
  • Obwohl die Anwendung für jeden Steuerprozess unterteilt werden kann, ist es schwierig, die zu übermittelnden Daten zusammenzustellen. Aus diesem Grund wird in dem Verfahren, welches jeden Steuerprozess in der Anwendung unterteilt, durch jede der Teilanmeldung der gesamte Datensatz übertragen. Hierbei wird durch den Header jedes Datensatzes die Lücke zwischen den Frames und Ähnliches der Overhead erhöht. Infolgedessen besteht in dem Verfahren zur Unterteilung der Anwendung für jeden Steuerprozess das Problem, dass die Kommunikationsleistung durch den erhöhten Overhead reduziert wird.
  • Die vorliegende Erfindung zielt daher darauf ab, die oben genannten Probleme zu lösen und eine Verschlechterung der Kommunikationsleistung zu vermeiden, während die für die Entwicklung des Controllers zur Durchführung von Steuerprozessen mit einer Vielzahl von unterschiedlichen Perioden reduziert wird.
  • Zusammenfassung der Erfindung
  • Um das oben genannte Problem zu lösen, schlägt die vorliegende Erfindung einen Controller nach Anspruch 1 vor, der ein oder mehrere Programme zum Steuern eines oder mehrerer zu steuernder Geräte umfasst. Der Controller umfasst eine Verarbeitungseinheit und einen Kommunikationsplaner. Die Verarbeitungseinheit gibt an jedes zu steuernde Gerät basierend auf jedem Programm einen Steuerbefehlswert an einen Kommunikationsplaner aus. Der Kommunikationsplaner bestimmt eine Sendezeit zum Senden des Steuerbefehlswerts, der von der Verarbeitungseinheit ausgegeben wird, zu dem einzelnen Gerät, welches über ein Netzwerk gesteuert werden soll, und zwar entsprechend der Planungsinformationen, die Zeitfenster verwenden. Dann überträgt der Kommunikationsplaner die Sendedaten, welche den Steuerbefehlswert enthalten, zu dem vorgegebenen Sendezeitpunkt an das einzelne zu steuernde Gerät.
  • Der Kommunikationsplaner umfasst eine Programminformations-Managementeinheit, eine Sendedatenmanagementeinheit, eine Sendezeitplanungseinheit und eine Sendeeinheit. Die Programminformations-Managementeinheit empfängt eine Eingabe von Programmmanagementinformationen, die die Identifikationsinformation des von dem Programm zu steuernden Geräts angibt, wobei das Programm eines der Programme ist, die den Steuerbefehlswert periodisch senden, sowie die Periode zum Senden des Steuerbefehlswerts an das zu steuernde Gerät. Anschließend speichert die Programminformations-Managementeinheit die Programmmanagementinformationen in einer Programminformationen-Speichereinheit. Die Sendedatenmanagementeinheit empfängt als Eingabe den Steuerbefehlswert für das zu steuernde Gerät basierend auf dem Programm von der Verarbeitungseinheit. Dann speichert die Sendedatenmanagementeinheit den Steuerbefehlswert in einer Speichereinheit. Die Sendezeitplanungseinheit bestimmt die Sendezeit zum Senden der den Steuerbefehlswert enthaltenden Sendedaten in der in den Programmmanagementinformationen angezeigten Periode und zeichnet die Sendezeit in der Planungsinformation auf.
  • Anschließend gibt die Sendezeitplanungseinheit einen Sendebefehl für die Sendedaten in dem so bestimmten Sendezeitpunkt aus. Die Sendeeinheit liest den Steuerbefehlswert basierend auf dem von der Sendezeitplanungseinheit ausgegebenen Sendebefehl aus der Speichereinheit. Dann sendet die Sendeeinheit die Sendedaten, welche den aus der Speichereinheit gelesenen Steuerbefehlswert enthalten.
  • Wie oben beschrieben, im Hinblick auf ein Programm (Programm zum periodischen Ausgeben eines Steuerbefehlswerts) in dem Controller beschrieben, speichert der Kommunikationsplaner des Controllers die maximal zulässige Periode und andere Bedingungen zum Senden des Steuerbefehlswerts an ein durch das Programm zu steuerndes Gerät in der Programmmanagementinformation. Dann bestimmt der Kommunikationsplaner den Sendeplan zum Senden des Steuerbefehlswerts in einer solchen Weise, dass die in der Programmmanagementinformation angegebene maximal zulässige Periode eingehalten wird. Dann sendet der Kommunikationsplaner basierend auf dem Sendeplan die Sendedaten, die den Steuerinstruktionswert des speziellen Programms enthalten.
  • Mit anderen Worten, sendet der Controller die den Steuerbefehlswert enthaltenden Sendedaten in einer solchen Weise, dass die zeitliche Beschränkung (die maximal zulässige Periode oder eine andere Bedingung) des Programms zur Übermittlung des Steuerbefehlswerts erfüllt wird. Dadurch entfällt die Notwendigkeit für die Kommunikationsanwendung, einer Einschaltbedingung zum Identifizieren jeder Periode jedes periodischen Arbeitsprogramms und Ähnliches zu identifizieren. Im Ergebnis ist es möglich, die Zeit zur Entwicklung des Controllers zur Ausführung des Steuervorgangs mit einer oder einer Vielzahl unterschiedlicher Perioden zu reduzieren. Ferner plant der Kommunikationsplaner die Sendedaten einer Vielzahl von periodischen Arbeitsprogrammen innerhalb des Bereichs ihrer zeitlichen Beschränkungen in einem Block und überträgt die Sendedaten entsprechend dem Sendezeitplan. Dadurch ist es möglich, eine Reduktion der Kommunikationsleistungsfähigkeit zu verhindern.
  • Nach der vorliegenden Erfindung ist es möglich, die Zeit und Mühe zur Entwicklung eines Controllers zur Durchführung von Steuerprozessen mit einer Vielzahl von unterschiedlichen Perioden zu reduzieren. Es ist ferner möglich, das Hinzufügen neuer Steuerprozesse (Steuerprozessprogramme) sowie die Änderungen oder Modifikationen der Perioden eines existierenden Steuerprozesses zu vereinfachen. Ferner stellt der Controller Sendedaten einer Vielzahl von periodischen Arbeitsprogrammen zusammen und überträgt diese gleichzeitig. Daher ist es möglich, eine Reduktion der Kommunikationsleistung zu verhindern.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, welches einer Hardwarekonfiguration eines Controllers nach einem Ausführungsbeispiel zeigt;
  • 2 ist ein schematisches Diagramm, welches eine Systemkonfiguration mit dem Controller aus 1 zeigt;
  • 3 ist ein Blockdiagramm, welches eine Konfiguration eines Kommunikationsplaners aus 1 zeigt;
  • 4 ist ein Blockdiagramm, welches eine Konfiguration einer Programmmanagementeinheit aus 3 zeigt;
  • 5 ist ein schematisches Diagramm, welches eine Konfiguration von Programmen zeigt, die in dem Controller aus 1 laufen;
  • 6 ist ein Flussdiagramm, das einen Verarbeitungsablauf eines periodischen Verarbeitungsprogramms aus 5 zeigt;
  • 7 ist ein Flussdiagramm, welches einen Verarbeitungsablauf des periodischen Verarbeitungsprogramms aus 5 zeigt;
  • 8 ist ein Flussdiagramm, welches einen Verarbeitungsablauf eines nicht periodischen Arbeitsprogramms aus 5 zeigt;
  • 9 ist ein Flussdiagramm, welches einen Verarbeitungsablauf des Kommunikationsplaners aus 3 zeigt;
  • 10 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf einer Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 11 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 12 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 13 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 14 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 15 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 16 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 17 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 18 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 19 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 20 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 21 ist ein erläuterndes Diagramm, welches einen Verarbeitungsablauf der Planänderungsmöglichkeits-Bestimmungseinheit aus 3 zeigt;
  • 22 ist ein erläuterndes Diagramm einer beispielhaften Zuordnung eines Zeitfensters nach dem Ausführungsbeispiel;
  • 23 ist ein Flussdiagramm, das ein Bestimmungsverfahren der Planänderungsmöglichkeitseinheit im Hinblick auf das nicht periodische Arbeitsprogramm nach dem Ausführungsbeispiel zeigt;
  • 24 ist ein erläuterndes Diagramm, das ein Beispiel einer Sendezeitplan-Tabelle (Planinformation) von Zeitfenstern zeigt, welche die Sendezeitplanungseinheit nach dem Ausführungsbeispiel managt;
  • 25 ist ein Blockdiagramm, das eine Hardwarekonfiguration des Controllers nach dem Ausführungsbeispiel zeigt;
  • 26 ist ein schematisches Diagramm, das die Konfiguration von auf dem Controller nach 25 laufenden Programmen zeigt;
  • 27 ist ein Blockdiagramm, das eine Hardwarekonfiguration des Controllers nach dem Ausführungsbeispiel zeigt;
  • 28 ist ein Blockdiagramm, das eine Konfiguration des Kommunikationsplaners aus 27 zeigt; und
  • 29 ist ein schematisches Diagramm, das eine Systemkonfiguration zeigt, welche die Controller aus 1, 25 und 27 verwendet.
  • Detaillierte Beschreibung des bevorzugten Ausführungsbeispiels
  • Im Folgenden wird ein bevorzugtes Ausführungsbeispiel der Erfindung (im Folgenden als Ausführungsbeispiel bezeichnet) beschrieben.
  • 1. Hardwarekonfiguration des Controllers
  • 1 ist ein Blockdiagramm, das eine Hardwarekonfiguration eines Controllers nach dem Ausführungsbeispiel zeigt. Der Controller hat ein oder mehrere Programme zum Steuern eines zu steuernden Geräts. Eine CPU (Central Processing Unit) 101 des Controllers überträgt jedes Programm von einem Festspeichermedium 109 in einen Speicher 108 und führt das Programm aus. 1 zeigt den Zustand, in welchem Programme auf den Speicher 108 übertragen werden. Beispiele des Programms sind ein OS (Betriebssystem) mit einer Interrupt-Behandlungsroutine und ein auf dem OS laufendes Anwendungsprogramm zum Steuern des zu steuernden Geräts 121. Ein Kommunikationsplaner 102 empfängt von der CPU 101 eine Kommunikationsanfrage und kommuniziert mit einem LAN(Local Area Network)-Controller 103 mit einem Steuernetzwerk. Beispiele für die Implementierung eines Kommunikationsplaners 102 sind FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device), ASIC (Application Specific Integrated Circuit) und IC (Integrated Circuit) als eine Gatteranordnung.
  • Der LAN-Controller 103 ist ein Sendeschaltkreis mit einer Kommunikationsfunktion mit dem Steuernetzwerk. Der LAN-Controller 103 erfüllt Kommunikationsstandards wie beispielsweise ein LAN-Controller für Ethernet (eingetragene Marke), eine Kombination eines MAC(Media Access Controller)-Chips und eines PHYes(physical layer)-Chips oder ein integrierter Schaltkreis zur Verarbeitung der Bit-Übertragungsschicht spezieller Netzwerkspezifikationen oder zur Verarbeitung der Bit-Übertragungsschicht und einer Sicherungsschicht.
  • Der Speicher 108 ist eine flüchtige Speicherfläche zum Betrieb der CPU, welche das OS, Anwendungsprogramme und Ähnliches speichert, die von dem nicht flüchtigen Speichermedium 101 übertragen wurden.
  • Das nicht flüchtige Speichermedium 109 ist ein Speichermedium wie beispielsweise eine HDD (Hard Disk Drive) oder ein Flash-Speicher. Das nicht flüchtige Speichermedium 109 wird zur Speicherung des von der CPU 101 auszuführenden Programms und des Arbeitsergebnisses des Programms verwendet.
  • Ein Bus 110 verbindet die CPU 101, den Speicher 108, das nicht flüchtige Speichermedium 109, den Kommunikationsplaner 102 und den LAN-Controller 103 miteinander. Beispiele für den Bus 110 sind ein PCI(Peripheral Component Interconnect)-Bus, ein ISA(Industrial Standard Architecture)-Bus, und ein PCI-Express-Bus, ein System-Bus und eine Speicher-Bus.
  • 2 ist ein Blockdiagramm, das eine Systemkonfiguration zeigt, die den Controller 120 verwendet. Der Controller 120 ist eine Hardwarevorrichtung, die mit jedes zu steuernden Geräts 121 über das Steuernetzwerk 122 verbunden ist, um das zu steuernde Gerät 121 zu steuern. Beispiele für die zu steuernden Geräten 121 sind ein Servoverstärker und ein Servomotor. In 2 verwendet das Netzwerk eine Ringtopologie, andere Topologien können jedoch ebenfalls verwendet werden, wie beispielsweise eine logische Ringtopologie oder eine Sterntopologie.
  • 2. Kommunikationsplaner
  • 3 ist ein Blockdiagramm, das einen funktionellen Aufbau des Kommunikationsplaners 102 zeigt. Der Kommunikationsplaner 102 umfasst eine Programmmanagementeinheit 130, eine Änderungsmöglichkeits-Bestimmungseinheit 131, eine Datagramm-Verknüpfungseinheit 132, eine Datagramm-Aufteilungseinheit 133, eine Zeitgebereinheit 134, eine Übertragungszeitplanungseinheit 135, eine Programmaufweckeinheit 136, eine Sendeeinheit 137 und eine Empfangseinheit 138. Ein spezielles Beispiel einer Kommunikationsplanung durch den Kommunikationsplaner 102 wird im Folgenden beschrieben.
  • Die Programmmanagementeinheit 130 erzeugt Informationen (Programmmanagementinformationen) von Programmen zur Durchführung einzelner Steuervorgänge und speichert die erzeugten Informationen in einer Speichereinheit 139 des Kommunikationsplaners 102. Es ist notwendig, die Programmmanagementeinheit 130 für jedes der Programme (in 5 erläutert) bereitzustellen, so dass eine Vielzahl von Programmmanagementeinheiten 130 in dem Kommunikationsplaner 120 vorliegen kann. Obwohl die maximale Anzahl der Programmmanagementeinheiten 130 durch die Ressourcen des Computers wie beispielsweise Hardware beschränkt sind, sollten so viele Programmmanagementeinheiten 130 bereitgestellt werden, wie die Anzahl der Programme und Kontrollziele vorgibt, die zum Errichten des Steuerungssystems ausreichend sind. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, ob es möglich ist, ein neues Programm hinzuzufügen, die Periode eines bestehenden Programms zu ändern und die Registrierung eines Programms zu löschen, und zwar basierend auf der zeitlichen Beschränkung jedes Programms und der Informationen wie beispielsweise die Quantität der Kommunikation. Beispielsweise berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 im Hinblick auf alle Programme inklusive des neu hinzugefügten Programms und des geänderten existierenden Programms die Summe der Datenpaketgrößen der Steuerbefehlswerte, die von jedem der Programme ausgegeben werden, und zwar unter Bezugnahme auf die Programmmanagementinformation. Dann berechnet die Planänderungsmöglichkeits-Bestimmungseinheit den Wert durch Division dieser Summe durch den Kommunikationsverarbeitungsdurchsatz des Kommunikationsplaners 102. Wenn der erhaltene Wert geringer als die kürzeste maximal mögliche Periode der maximal zulässigen Perioden der Programme ist, bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass der Wert die zeitlichen Beschränkungen aller Programme erfüllt. Andererseits bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass der Wert nicht die zeitlichen Beschränkungen aller Programme erfüllt, wenn der erhaltene Wert größer als die kürzeste maximal zulässige Periode der maximal zulässigen Perioden der Programme ist. In anderen Worten bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das neue Programm nicht hinzugefügt werden kann oder das bestehende Programm nicht geändert werden kann.
  • Die Datagramm-Verknüpfungseinheit 132 sammelt und verknüpft die zu einem von der Sendezeitplanungseinheit 135 bestimmten Sendezeitpunkt zu übertragenden Daten und sendet die verknüpften Daten an die Sendeeinheit 137. Dann aktualisiert die Datagramm-Verknüpfungseinheit 132 den Zustandsmerker einer Zustandsmerker-Managementeinheit 145 (in 4 erläutert). Ferner fügt die Datagramm-Verknüpfungseinheit 132 einen eindeutigen Header und Trailer für das Steuernetzwerk 122 hinzu, wenn dies nötig ist.
  • Es sei bemerkt, dass die Reihenfolge, in welcher die Datagramm-Verknüpfungseinheit 132 die Daten der einzelnen Programme verknüpft, nicht speziell eingeschränkt ist, so lange die Information zum Identifizieren der Sendedaten, die in dem Header bereitgestellt wird, für jeden Sendedatensatz eindeutig ist. Beispielsweise kann die Datagramm-Verknüpfungseinheit 132 die Daten der einzelnen Programme in der für Managementzwecke in der Programmmanagementeinheit 130 bereitgestellten Reihenfolge verknüpfen.
  • Wenn jedoch die Position der Sendedaten bei der Übertragung an das Steuernetzwerk 122 eine spezielle Bedeutung hat, sollten die Sendedaten entsprechend der Spezifikation des Steuernetzwerks 122 in der entsprechenden Position angeordnet werden. Beispielsweise ordnet die Datagramm-Verknüpfungseinheit 132 die Sendedaten entsprechend der Ordnung des zu steuernden Geräts 121, die die Sendedaten empfängt, an, wenn eine Bedingung besteht, dass die Reihenfolge, in der die Sendedaten gesendet werden und die Reihenfolge, in der das zu steuernde Gerät 121 die Sendedaten empfängt, gleich sein sollen.
  • Die Datagramm-Aufteilungseinheit 133 teilt die von der Empfangseinheit 138 empfangenen Daten in Daten für jedes Programm auf. Dann überträgt die Datagramm-Aufteilungseinheit 133 jeden Datensatz an einer Datagramm-Extraktionseinheit 144 (in 4 erläutert) der Programmmanagementeinheit 130 jedes Programms. Ferner überträgt die Datagramm-Aufteilungseinheit 133 den Identifikator der Programmmanagementeinheit 133, welche die Daten empfängt, an die Programmaufweckeinheit 136. In anderen Worten überträgt der Controller 120 basierend auf dem Programm den Steuerbefehlswert enthaltenden Daten an das zu steuernde Gerät 121. Dann empfängt die Empfangseinheit 138 des Controllers 120 als Antwort auf den Steuerbefehlswert von des zu steuernden Geräts 121 Daten.
  • Die empfangenen Daten können hier Antworten auf Steuerbefehlswerte einer Vielzahl von Programmen enthalten. Aus diesem Grund teilt die Datagramm-Aufteilungseinheit 133 die empfangenen Daten in Daten für die einzelnen Programme auf und überträgt (gibt aus) die jeweiligen Daten an die Programmmanagementeinheit 130 jedes Programms, das den zu der Antwort gehörigen Vorgang ausführt. Ferner überträgt die Datagramm-Aufteilungseinheit 133 die Identifikatoren der Programmmanagementeinheiten 130, welche die Daten empfangen, um die Programmaufweckeinheit 136 zu benachrichtigen, welche Programme die empfangenen Daten verarbeiten sollten.
  • Die Zeitgebereinheit 134 hat ein Zeitgebermittel, um Zeitinformationen für die einzelnen Einheiten des Kommunikationsplaners 102 bereitzustellen. Die Zeitinformationen werden für die Messung der nach der Ausführung der Steueranwendung verstrichenen Zeit verwendet und ferner für das Aufzeichnen der Eintrittszeit jedes Ereignisses verwendet. Es sei bemerkt, dass die Zeitgebereinheit 134 durch eine Vorrichtung, wie beispielsweise außerhalb des Kommunikationsplaners 102 angeordneten Zeitgeber, ersetzt werden kann.
  • Die Sendezeitplanungseinheit 135 extrahiert Daten von den Programmmanagementeinheiten 130 der einzelnen Programme, um die Daten zu der geplanten Sendezeit zu senden und verknüpft die extrahierten Daten, wobei die Periode jedes Programms und auch die Einstellungsinformationen berücksichtig werden. Dann bestimmt die Sendezeitplanungseinheit 135 die Sendezeit für die Daten. Ferner gewinnt die Sendezeitplanungseinheit 135 die Periode aus den Programmmanagementinformationen der Programminformationsmanagementeinheit 142 jeder der Programmmanagementeinheiten 130. Die Sendezeitplanungseinheit 135 benachrichtigt die Datagramm-Verknüpfungseinheit 132 des Programms zur Übertragung der Daten zu der geplanten Sendezeit.
  • Die Programmaufwacheinheit 136 identifiziert das Programm, welches den empfangenen Daten zugeordnet ist aus dem Identifikator der Programmmanagementeinheit 130, der von der Datagramm-Aufteilungseinheit 133 mitgeteilt wird. Dann weckt die Programmaufweckeinheit 136 das identifizierte Programm auf. Das Aufweckverfahren kann durch eine Unterbrechung durch den Bus 110 (siehe 1) veranschaulicht werden.
  • Die Sendeeinheit 137 sendet die von der Datagramm-Verknüpfungseinheit 132 übertragenen Daten an den LAN-Controller 103.
  • Die Empfangseinheit 138 empfängt die Daten von dem LAN-Controller 103 und sendet die empfangenen Daten an die Datagramm-Aufteilungseinheit 133.
  • 3. Programmmanagementeinheit
  • 4 zeigt einen Aufbau der Programmmanagementeinheit 130 des Kommunikationsplaners. Die Programmmanagementeinheit 130 gibt die Sendedaten des speziellen Programms, die von der CPU 101 ausgegeben werden, an eine Sendedatenmanagementeinheit 140 aus. Ferner gibt die Programmmanagementeinheit 130 die Empfangsdaten aus, die sie von des zu steuernden Geräts 121 empfangen hat, und zwar durch die Empfangseinheit 138, die Datagramm-Aufteilungseinheit 133, die Datagramm-Extraktionseinheit 144 und eine Empfangsdatenmanagementeinheit 141 an die CPU.
  • Die Programmmanagementeinheit 130 umfasst eine Programminformationsmanagementeinheit 142, eine Datagramm-Erzeugungseinheit 143, eine Datagramm-Extraktionseinheit 144 und eine Zustandsmerker-Managementeinheit 145. Die Zustandsmerker-Managementeinheit 145 aktualisiert einen Zustandsmerker. Der Zustandsmerker ist in einem vorgegebenen Bereich der Speichereinheit gespeichert, die von dem Kommunikationsplaner 102 umfasst ist.
  • Die Sendedatenmanagementeinheit 140 empfängt Sendedaten, welche die von der CPU 101 basierend auf dem Programm ausgegebenen Steuerbefehlswerte enthält. Dann speichert die Sendedatenmanagementeinheit 140 einmal die Sendedaten in der Speichereinheit des Kommunikationsplaners 102. Die Sendedaten umfassen den Steuerbefehlswert und andere Informationen.
  • Die Empfangsdatenmanagementeinheit 141 gibt die von des zu steuernden Geräts 121 empfangenen Empfangsdaten an die CPU 101 aus. Die Empfangsdaten sind beispielsweise Daten, die ein Antwortergebnis des zu steuernden Geräts 121 auf den in den Sendedaten angegebenen Steuerbefehlswert enthalten.
  • Die Programminformationsmanagementeinheit 142 managt die Programmsteuerungsinformationen, die das in dem Controller 120 enthaltene Programm, den Steuervorgang des Programms und das zu steuernde Gerät 121 angeben. Insbesondere ist die Programmmanagementinformation eine Information, welche den Identifikator des Programms, den Identifikator des zu steuernden Geräts 121, die Periode zum Senden des Steuerbefehlswerts basierend auf dem Programm, die Zielsendezeit, die maximal zulässige Periode, das Verfahren im Fehlerfall der Datenaktualisierung innerhalb der Periode, das Verfahren im Fall einer Periodenänderung, das periodische Verarbeitungsprogramm oder nicht periodische Verarbeitungsprogramm, die Priorität innerhalb der Programme, die Datenposition des Programms in dem gesendeten Datenblock und Ähnliches angibt. Es sei bemerkt, dass das periodische Verarbeitungsprogramm ein Programm zur Übertragung von Daten auf das zu steuernde Gerät 121 mit einer vorgegebenen Periode ist und das nicht periodische Verarbeitungsprogramm ein Programm zur Übertragung von Daten auf das zu steuernde Gerät 121 in nicht periodischer Weise ist.
  • Nach dem Empfang einer Sendeanfrage von der CPU 101 wandelt die Datagramm-Erzeugungseinheit 143 die Sendedaten in ein geeignetes Format zur Übertragung um und verarbeitet diese. Ein solches Verfahren ist durch die Erzeugung eines eindeutigen Headers und Trailers für das Kommunikationsprotokoll des Steuerungsnetzwerks 122 exemplifiziert. Auf diese Weise konvertiert die Datagramm-Erzeugungseinheit 143 die Daten in ein für die Spezifikation des Steuerungsnetzwerks 122 geeignetes Format.
  • Die Datagramm-Extraktionseinheit 144 konvertiert nach dem Empfang einer Datenempfangsbestätigung von der Datagramm-Aufteilungseinheit 133 die Daten in ein für die Mitteilung an das Programm geeignetes Format um. Ein solches Verfahren kann beispielsweise in dem Löschen des Headers und des Trailers des Datenblocks bestehen.
  • Die Zustandsmerker-Managementeinheit 145 aktualisiert Zustandsmerker, welche die Zustände der Sendedaten und Empfangsdaten anzeigen. Beispielsweise aktualisiert die Zustandsmerker-Managementeinheit 145 in den folgenden Fällen: Der Zustand, in welchem die CPU 101 die Sendedaten der Sendedatenmanagementeinheit 140 basierend auf dem Programm aktualisiert hat, die Sendedaten jedoch nicht nach außerhalb des Kommunikationsplaners 102 übertragen wurden; der Zustand, in welchem der Kommunikationsplaner 102 die Sendedaten der Sendedatenmanagementeinheit 140 gesendet hat, die CPU 101 die Sendedaten jedoch nicht aktualisiert; der Zustand, in welchem der Kommunikationsplaner 102 die Empfangsdaten der Empfangsdatenmanagementeinheit 141 aktualisiert hat, die CPU die Empfangsdaten jedoch nicht erhält; und der Zustand, in welchem die CPU 101 die Empfangsdaten der Empfangsdatenmanagementeinheit 141 erhalten hat, der Kommunikationsplaner 102 das Paket von außen jedoch nicht empfängt.
  • Das Programm oder die Sendezeitplanungseinheit 135 fragt den Zustand des Zustandsmerkers bei der Zustandsmerker-Managementeinheit 145 ab. Auf diese Weise kann beispielsweise die Sendezeitplanungseinheit 135 den Fall erkennen, in welchem das Programm die Sendedaten innerhalb einer vorgegebenen Periode nicht aktualisiert hat. Gleichzeitig kann das Programm bestätigen, ob die Empfangsdaten aktualisiert wurden. Es ist so möglich, zu bestimmen, ob die Empfangsdaten eingegangen sein sollten oder nicht.
  • 4. Programme auf dem Controller
  • Als nächstes zeigt 5 die Konfiguration des auf dem Controller 120 laufenden Programms. Das auf dem Controller 120 laufende Programm umfasst ein OS 150, einen Gerätetreiber 151, periodische Arbeitsprogramme 152, nicht periodische Arbeitsprogramme 153, ein API (Application Program Interface) 154, einen Protokollstapel 155 und ein gemeinsames Einstellungsprogramm 156. In 5 verwenden die oberen Programme die Funktionen, die von den unteren Programmen bereitgestellt werden. Hier wird angenommen, dass die periodischen Arbeitsprogramme 152 jeweils unterschiedliche Prozesse durchführen.
  • Zu illustrativen Zwecken zeigt 5, dass die einzelnen periodischen Arbeitsprogramme 152 unterschiedliche Prozesse durchführen. Es können jedoch eine Vielzahl von unterschiedlichen periodischen Prozessen von einem Programm ausgeführt werden. Ferner kann der Controller 120 keine nicht periodischen Arbeitsprogramme 153 umfassen.
  • Das OS 150 stellt die grundlegenden Funktionen wie Programmmanagement und Zugang zu Hardware bereit. Die OS ist nicht unbedingt nötig, es wird jedoch vorzugsweise genutzt, da das OS die Grundfunktionen wie die Verwendung einer Allzweckanwendung und existierender Softwareressourcen sowie das Aufgabenmanagement bereitstellt. Ferner ist das OS 150 vorzugsweise ein Echtzeit-OS, das Aufgabenplanung gemäß zeitlicher Beschränkungen durchführen kann.
  • Der Gerätetreiber 151 ist ein Treiber zum Zugreifen auf den Kommunikationsplaner 102 durch den Bus 110 mittels der von dem OS 150 bereitgestellten Zugriffsmittel auf die Hardware. Der Gerätetreiber 151 kann Teil des OS 150 sein.
  • Das periodische Arbeitsprogramm 152 ist ein auf dem Controller 120 laufendes Anwendungsprogramm. Das periodische Verarbeitungsprogramm 152 wird mit einer Zeitbedingung wie beispielsweise die Sendezeitperiode periodisch ausgeführt, um das zu steuernde Gerät 121 zu steuern, überwachen und diagnostizieren. Das periodische Verarbeitungsprogramm 152 wird zum Zugriff auf den Kommunikationsplaner 102 durch das API 154 und den Gerätetreiber 152 verwendet, um das zu steuernde Gerät 121 zu steuern, überwachen und diagnostizieren. Der Controller umfasst ein oder mehrere periodische Arbeitsprogramme 152.
  • Das nicht periodische Arbeitsprogramm 153 ist ein Programm zur Kommunikation ohne zeitliche Bedingungen. Das Steuernetzwerk 122 (siehe 2), welches das Steuersystem bildet, kann die Kommunikation durch TCP/IP (Transmission Control Protocol/Internet Protocol) ermöglichen, die im Internet verwendet werden. In einem derartigen Steuernetzwerk 122 verknüpft das Steuerungssystem die über TCP/IP Kommunikation zu übertragenden Daten mit anderen Daten und überträgt diese auf das Steuernetzwerk 122.
  • Der API 154 ist eine Softwareschnittstelle zum Zugreifen auf den Gerätetreiber 151, der ein Programm ist, welches die Unterschiede in der Hardware absorbiert und ein gemeinsames Zugriffsmittel des Programms auf die Hardware bereitstellt. Der API 154 kann Teil des OS 150 sein. Beispiele für das von dem API 154 bereitgestellte Zugriffsmittel umfassen das Schreiben, Lesen, Senden, Empfangen und Einstellungen im Hinblick auf die Hardware. Bibliotheken und Middleware sind spezielle Beispiele für den API 154.
  • Der Protokollstapel 155 ist ein Programm zur Ausführung der Sendeanfrage durch das nicht periodische Arbeitsprogramm 153, die Übertragung des empfangenen Inhalts des nicht periodischen Arbeitsprogramms 153, das Aufteilen der gesendeten Daten und die Rekonstruktion der gesendeten Daten.
  • Im Allgemeinen ist die Quantität der Kommunikation in dem Steuerprozess gering. Die Quantität der Kommunikationsdaten pro Instruktion in dem periodischen Arbeitsprogramm 152 kann durch einen Sende- und Empfangsvorgang kommuniziert werden. Es können jedoch Fälle eintreten, in welchen die Quantität der Kommunikation in anderen Anwendungen als der Steuerung die Größe eines einzelnen Pakets übertreffen, so dass das Aufteilen und Rekonstruieren der Daten nötig wird. Ferner ist auch ein Rückübertragungsvorgang zur Herstellung der Verlässlichkeit sowie der Blockierungssteuerung für die Einstellung der Quantität der Kommunikation umfasst. Der Protokollstapel 155 ist ein Programm zur Ausführung dieser Prozesse.
  • Das gemeinsame Einstellungsprogramm 156 ist ein Programm zum Einstellen einer allgemeinen Funktion des Kommunikationsplaners 102.
  • 5. Verfahren des periodischen Verarbeitungsprogramms
  • Als nächstes zeigt 6 das Verarbeitungsverfahren des periodischen Verarbeitungsprogramms 152. Hier wird die Beschreibung des Falls angegeben, in welchem das periodische Verarbeitungsprogramm 152 zusätzlich zu dem existierenden periodischen Arbeitsprogramm 152 des Controllers 120 neu hinzugefügt wird und der Controller 120 bestimmt, ob das neue periodische Verarbeitungsprogramm 152 in dem Controller 120 ausgeführt werden kann. Zunächst fragt die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 bei der Planänderungsmöglichkeits-Bestimmungseinheit 131 des Kommunikationsplaners 102 nach, ob das neue periodische Verarbeitungsprogramm 152 ausgeführt werden kann (S001). Der Bestimmungsprozess durch die Planänderungsmöglichkeits-Bestimmungseinheit 131, die bestimmt, ob das neue periodische Verarbeitungsprogramm 152 ausgeführt werden kann, wird im Folgenden detailliert beschrieben.
  • Wenn die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass das neue periodische Verarbeitungsprogramm 152 ausgeführt werden kann (jetzt in S001), stellt das periodische Verarbeitungsprogramm 152 die für den periodischen Prozess (und die periodische Kommunikation) des neuen periodischen Verarbeitungsprogramms 152 notwendigen Informationen in der Programmmanagementinformation der Programminformationsmanagementeinheit 142 ein (S002). Die für den periodischen Prozess und die periodische Kommunikation notwendige Information umfasst das Folgende: Den Identifikator des Programms, den Identifikator des zu steuernden Geräts 121, auf welche das neue periodische Verarbeitungsprogramm 152 den Steuerbefehlswert überträgt, die Periode zur Übertragung des Steuerbefehlswerts, die Sollsendezeit, die maximal zulässige Periode, das Verfahren im Fall eines Fehlens der Datenaktualisierung innerhalb der Periode, das Verfahren im Fall einer Periodenänderung, das periodische Verarbeitungsprogramm oder das nicht periodische Verarbeitungsprogramm, die Priorität innerhalb der in dem Controller 120 enthaltenen Programme, die Datenposition des Programms in den Sendedaten und Ähnliches.
  • Wenn ein Merkmal von dem periodischen Verarbeitungsprogramm 152 nicht explizit angegeben wird, kann die Programminformationsmanagementeinheit 142 in der Lage sein, einen vorgegebenen Einstellungswert einzustellen. Wenn ermittelt wird, dass das neue periodische Verarbeitungsprogramm 152 nicht ausgeführt werden kann (Nein in S001), beendet die Planänderungsmöglichkeits-Bestimmungseinheit 131 den Prozess.
  • Nach S002 berechnet die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 den Steuerbefehlswert, der gesendet werden soll, und bestimmt die Sendedaten (S003).
  • Als nächstes sendet die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 die Sendedaten an den Kommunikationsplaner 102 und geht in den Wartezustand (S004). Wenn dann die Empfangseinheit 138 des Kommunikationsplaners 102 die Daten von dem zu steuernden Gerät 121 empfängt, wird die CPU 101 aus dem Wartezustand erlöst (S005).
  • Nach S005 bestimmt die CPU 101, ob das periodische Verarbeitungsprogramm 152 beendet werden soll (S006). Wenn bestimmt wird, dass der Prozess nicht beendet wird (Nein in S006), wiederholt die CPU 101 die Schritte von S003 aus und die CPU 101 beendet andernfalls (Ja in S006) den Prozess. Es sei bemerkt, dass das Beenden in Schritt S006 jederzeit innerhalb des Prozesses durchgeführt werden kann, der periodisch ausgeführt wird, namentlich während der Schritte von S003–S005.
  • Die Endbedingungen hängen vom Urteil der Entwickler und der Spezifikation des Steuersystems ab. Beispielsweise legt die CPU 101 das Ende des Prozesses fest, wenn die Sendedaten eine vorgegebene Anzahl von Malen gesendet wurden oder wenn die empfangenen Daten eine vorgegebene Information enthalten.
  • Wie in 7 angegeben, kann die CPU 101, anstatt das in 6 dargestellte Verfahren auszuführen, in der Lage sein, den Datenempfangsprozess unabhängig von dem periodischen Prozess auszuführen. In diesem Fall registriert die CPU 101 nach S002 den Inhalt des Empfangsvorgangs basierend auf dem periodischen Verarbeitungsprogramm 152 (S010). Der Inhalt des Empfangsvorgangs ist das Folgende: Nach dem Empfangen der Empfangsdaten, Umwandeln und Verarbeiten der Empfangsdaten in ein für den periodischen Prozess geeignetes Format, Speichern der Empfangsdaten in einem gemeinsamen Areal, so dass der empfangene Inhalt von dem periodischen Prozess gelesen werden kann, Berechnen des statistischen Werts der Empfangsinformationen und Ähnlichem.
  • Ferner erhält die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 die Empfangsinformation (S011). In anderen Worten erhält die CPU 101 die Empfangsdaten von dem Speicher 108 oder Ähnlichem, bevor sie den Steuerbefehlswert berechnet. Ferner ergänzt die CPU 101 den Empfangszeitpunkt zum Feststellen, wann die Empfangszeiten empfangen wurden, den Identifikator, der aktualisiert wurde oder jedes Mal nach dem Erhalt der Empfangszeiten aktualisiert werden soll und Ähnliches. Die hier erhaltenen Empfangsdaten sind nicht notwendigerweise die Empfangsdaten für einmal und können Empfangsdaten für eine Vielzahl von Malen sein. In dem periodischen Prozess kann eine hochfunktionale Steuerung erreicht werden, wenn Empfangsdaten für eine Vielzahl von Malen gewonnen werden.
  • Ferner sendet die CPU 101 nach S003 in 7 die Sendedaten basierend auf dem periodischen Verarbeitungsprogramm 152 (S012). Als nächstes springt das periodische Verarbeitungsprogramm 152 in den Wartezustand (S013). Spezielle Beispiele für das Warteverfahren sind ein Schlafruf des POSIX (Portable Operating System Interface) und ein Systemruf zum Versetzen des Prozesses in den Wartezustand. Solche Systemrufe können von dem OS 150 bereitgestellt werden.
  • Dann wird die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 durch die Programmaufweckeinheit 136 des Kommunikationsplaners 102 erlöst (S014). Nach dem Ausführen von S014 bestimmt die CPU 101, ob das periodische Verarbeitungsprogramm 152 beendet werden soll (S006). Wenn ermittelt wird, dass der Prozess nicht beendet wird (Nein in S006), wiederholt die CPU 101 die Schritte von S001 und andernfalls (Ja in S006) beendet die CPU 101 den Prozess. Es sei bemerkt, dass das Bestimmen des Endes in Schritt S006 jederzeit innerhalb des periodisch durchgeführten Prozesses erfolgen kann, namentlich während der Schritte von S011–S014.
  • 6. Nicht periodisches Verarbeitungsprogramm
  • 8 zeigt eine Verarbeitungsprozedur eines nicht periodischen Verarbeitungsprogramms 153. Zunächst fragt die CPU 101 basierend auf dem nicht periodischen Verarbeitungsprogramm 153 bei der Planänderungsmöglichkeits-Bestimmungseinheit 131 des Kommunikationsplaners 102 nach, ob das nicht periodische Verarbeitungsprogramm 153 ausgeführt werden kann (S020). Zu diesem Zeitpunkt benachrichtigt die CPU 101 die Planänderungsmöglichkeits-Bestimmungseinheit 131 über die Bedingungen des nicht periodischen Verarbeitungsprogramms 153, wenn Bedingungen für das nicht periodische Verarbeitungsprogramm 153 wie beispielsweise eine minimale garantierte Bandbreite oder eine maximal zulässige Verzögerung vorliegen.
  • Wenn die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass das nicht periodische Verarbeitungsprogramm ausgeführt werden kann (Ja in S020), sendet oder empfängt die CPU 101 die Daten (S021). Andererseits beendet die CPU 101 den Prozess einfach, wenn die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass das nicht periodische Verarbeitungsprogramm 153 nicht ausgeführt werden kann.
  • 7. Verfahren im Kommunikationsplaner
  • Als nächstes werden unter Verwendung von 9 die Verarbeitungsverfahren des Kommunikationsplaners 102 beschrieben, der in den 6, 7 und 8 dargestellt ist. In S001 aus 6, 7 und in S020 aus 8 fragt die CPU 101 bei der Planänderungsmöglichkeits-Bestimmungseinheit 131 des Kommunikationsplaners 102 nach, ob das neue periodische Verarbeitungsprogramm 152 oder das neue nicht periodische Verarbeitungsprogramm 153 ausgeführt werden kann. Das Bestimmungsverfahren der Planänderungsmöglichkeits-Bestimmungseinheit 131 im Hinblick auf das periodische Verarbeitungsprogramm 152 wird unter Bezugnahme auf die 1022 beschrieben.
  • Jedes der Programme A–K, die in 1022 dargestellt sind, stellt ein periodisches Verarbeitungsprogramm 152 dar. Die Datenmenge stellt die maximale Datenmenge des Steuerbefehlswerts dar, der von jedem der periodischen Verarbeitungsprogramme 152 gesendet wird. Die Einheit für die Datenmenge ist „B” (1 Byte = 8 Bit).
  • Beurteilung des periodischen Verarbeitungsprogramms
  • Zunächst überträgt die CPU 101 basierend auf dem periodischen Verarbeitungsprogramm 152 die Periode des Steuerbefehlswerts des periodischen Verarbeitungsprogramms 152 sowie die Datenmenge (die maximale Datenmenge) des Steuerbefehlswerts auf die Planänderungsmöglichkeits-Bestimmungseinheit 131 (siehe 3) (S040).
  • Als nächstes bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob es eine Computerressource gibt, die der Programmmanagementeinheit 130 neu zugeordnet werden kann oder Ähnliches (S041). Wenn es keine zuordenbare Computerressource gibt (Nein in S041), bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das periodische Verarbeitungsprogramm 152 nicht ausgeführt werden kann (S057). Die Computerressource kann hier beispielsweise die Speicherkapazität des Speichers 108 sein. Wenn es andererseits zuordenbare Computerressourcen in der Planänderungsmöglichkeits-Bestimmungseinheit 131 gibt (Ja in S041), berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Summe 1, welche die Summe aller Datenmengen der gegenwärtig laufenden Programme ist (S042).
  • 10 zeigt das Beispiel der Struktur jedes periodischen Verarbeitungsprogramms. 11 zeigt die Beziehung zwischen jedem periodischen Verarbeitungsprogramm und den folgenden Schritten S042–S045.
    S042: Berechne Summe 1 der Datenmengen
    S043: Ermittle minimale Periode μ1
    S044: Berechne T1 durch Teilen der Summe 1 durch den Kommunikationsverarbeitungsdurchsatz
    S045: Ist Summe aus T1 und einem Sicherheitskoeffizienten geringer als μ1?
  • Beispielsweise können, falls die Perioden und Datenmengen der periodischen Verarbeitungsprogramme 152 wie in 10 sind, berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 305 B, was die Summe der Datenmengen aller Programme ist.
  • Nach Schritt S042 ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Periode μ1 des Programms mit der kürzesten Periode. In anderen Worten ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die minimale Periode 11 (S043). Beispielsweise ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131 20 μs, was die kürzeste Periode (Ausführungsperiode) der in 10 dargestellten Perioden ist, als μ1.
  • Dann berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 T1, also die Kommunikationsverarbeitungseinheit des Kommunikationsplaners 102 durch das Teilen der Summe 1, die in S042 berechnet wurde, durch den Kommunikationsverarbeitungsdurchsatz des Kommunikationsplaners 102 (S044).
  • Hier wird T1 berechnet, um die Kommunikationsverarbeitungseinheit des Kommunikationsplaners 102 für den Fall zu berechnen, in welchem die Perioden all der periodischen Verarbeitungsprogramme 152 miteinander überlappen. Beispielsweise berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 T1 ist 305 B/100 Mbps ist 24,4 μs, wenn der Kommunikationsverarbeitungsdurchsatz des Kommunikationsplaners 102 100 Mbps beträgt.
  • Zurückkommend auf die Beschreibung zu 9 bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 als nächstes, ob die Summe aus T1 wie in S044 berechnet und des Sicherheitskoeffizienten weniger als μ1 beträgt (S045). Hier bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das periodische Verarbeitungsprogramm 152 ausgeführt wenden kann (S056), wenn die Summe aus T1 wie in S044 berechnet und dem Sicherheitskoeffizienten weniger als μ1 beträgt (Ja in S045).
  • Gleichzeitig kann das periodische Verarbeitungsprogramm 152 möglicherweise auch ausgeführt werden, wenn die Summe aus T1 wie in S044 berechnet und dem Sicherheitskoeffizienten μ1 oder mehr beträgt (Nein in S045) und die Planäriderungsmöglichkeits-Bestimmungseinheit 131 springt zu S046. Beispielsweise kann, wie in 11 dargestellt, in dem Fall T1 = 24,4, Sicherheitskoeffizient = 0 und μ1 = 20 μ, die Summe aus T1 und dem Sicherheitskoeffizienten 24,4 erreichen, was mehr als μ1 ist, so dass der Prozess zu S046 springt.
  • Gruppieren des periodischen Verarbeitungsprogramms
  • Zurückkehrend zur Beschreibung von 9 gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 als nächstes alle gegenwärtig laufenden periodischen Verarbeitungsprogramme 152 mit Primzahlen der Perioden (S046). In anderen Worten gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die periodischen Verarbeitungsprogramme 152 mit Perioden, die Primmultiplikatoren der Periode des Zeitfensters sind, in eine Gruppe. Auf diese Weise gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 all die periodischen Verarbeitungsprogramme 152 in Periodengruppen.
  • Beispielsweise gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 wie in 12 dargestellt, das Programm A mit 20 μs-Perioden und das Programm C mit 40 μs-Perioden in einer 20 μs-Periodengruppe. In ähnlicher Weise gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 das Programm B mit 30 μs-Perioden und das Programm I mit 90 μs-Perioden in einer 30 μs-Periodengruppe. Dann gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 einfach die Programme F, G, H und E mit Perioden von 70 μs in einer 70 μs-Periodengruppe.
  • Es sei bemerkt, dass 60 μs ein gemeinsames Vielfaches von 20 μs und 30 μs ist und 140 μs ein gemeinsames Vielfaches von 20 μs und 70 μs. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 behält das Programm D mit 60 μs-Periode und auch die Programme K und J mit 140 μs-Periode, anstatt sie zu gruppieren. In anderen Worten gruppiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programme, die nur in ihrem speziellen Perioden übermitteln können, als Daten für jede Periode. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 behält jedoch das Programm, das zu mehreren Gruppen mit unterschiedlichen Perioden gehören kann, anstatt diejenige Gruppe zu bestimmen, zu welcher das Programm gehören soll.
  • Anpassen der Ausführungszeit
  • Zurückkehrend zur Beschreibung zur 9 stellt die Planänderungsmöglichkeits-Bestimmungseinheit 131 nach dem in 13 dargestellten Gruppieren die Ausführungszeitpunkte der Programme (periodische Verarbeitungsprogramme 152) in jeder Gruppe ein (S047). Hier wird die Einstellung der Programmausführungszeitpunkte so durchgeführt, dass die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Periode jedes der periodischen Verarbeitungsprogramme 152 in jeder Gruppe so verschiebt, dass die Datenmenge in jedem Zeitfenster innerhalb des Bereichs, in dem die Datenmenge in jedem Zeitfenster nicht die maximale Datenmenge überschreitet, die pro Zeitfenster (im Folgenden als Ts bezeichnet) übermittelt werden kann, so groß wie möglich gemacht wird.
  • Insbesondere fügt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die periodischen Verarbeitungsprogramme 152 aus dem Programm mit einer großen Datenmenge in einem Zeitfenster zusammen. Wenn die Datenmenge Ts übertrifft, verschiebt die Planänderungsmöglichkeits-Bestimmungseinheit 131 das periodische Verarbeitungsprogramm 152 in ein anderes Zeitfenster.
  • Es sei bemerkt, dass, wenn die Periode des periodischen Verarbeitungsprogramms 152 ein gemeinsames Vielfaches der Perioden unterschiedlicher Zeitfenster ist, die Planänderungsmöglichkeits-Bestimmungseinheit 131, die dieses periodische Verarbeitungsprogramm 152 zu einer Gruppe hinzufügt, so dass die gesamte Datenmenge der Gruppe so groß wie möglich wird (wenn jedoch die Datenmenge Ts übertrifft, verlegt die Planänderungsmöglichkeits-Bestimmungseinheit 131 das periodische Verarbeitungsprogramm 152 in eine andere Gruppe). Wenn ferner das periodische Verarbeitungsprogramm 152 eine Datenmenge hat, die größer als Ts ist, wird es der Verwendung des nachfolgenden Zeitfensters zugeordnet.
  • Wenn beispielsweise die Annahme besteht, dass Ts = 100 B die Datenmenge ist, die pro Zeitfenster übertragen werden kann, wie in 1 dargestellt, ist die gesamte Datenmenge der Programme A und C in der 20 μs-Periodengruppe 40 B, so dass in dem Zeitfenster 60 B ungenutzt bleiben. Wenn die Programme K und J mit 140 μs-Perioden, die anstatt gruppiert zu sein, vorbehalten wurden, in die 20 μs-Periodengruppe gesteckt werden, ist die gesamte Datenmenge genau 100 B. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 setzt diese Daten in das gleiche Zeitfenster wie die Programme A und C in der 20 μs-Periodengruppe. Es sei bemerkt, dass die Planänderungsmöglichkeits-Bestimmungseinheit 131 das Programm D von 60 μs-Perioden in ein anderes Zeitfenster der 20 μs-Periodengruppe verschiebt. Hier wurden die Programme K und J als die Programme ausgewählt, die in das Zeitfenster der 20 μs-Periodengruppe gruppiert werden, weil die Datenmenge der Programme K und J größer als die Datenmenge des Programms D ist.
  • Als nächstes setzt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programme B und I aus der 30 μs-Periodengruppe in ein Zeitfenster. Ferner setzt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programme F, G und E mit 70 μs-Perioden in ein Zeitfenster. In diesem Zeitpunkt beträgt die gesamte Datenmenge des Zeitfensters Ts (100 B), wenn die Planänderungsmöglichkeits-Bestimmungseinheit 131 auch das Programm H in das gleiche Zeitfenster wie die Programme F, G und E setzt. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 verschiebt das Programm H daher in ein anderes Zeitfenster in der 70 μs-Periodengruppe.
  • 14 und 15 erläutern den Fall der Anwendung von S046 und S047 auf ein periodisches Arbeitsprogramm mit einer unterschiedlichen Größe wie in 1013 dargestellt. Im Übrigen ist, wie im Fall des Programms F aus der 70 μs-Periodengruppe in 14 dargestellt, wenn die Datenkurse (120 B) des Programms alleine Ts (beispielsweise 100 B) bereits übertrifft, die Zuordnung der Daten zu aufeinanderfolgenden Datenblöcken als eine Serie von Zeitfenstern wie in 15 dargestellt durch die Planänderungsmöglichkeits-Bestimmungseinheit 131 erfolgt. In anderen Worten ordnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 das Programm F den aufeinanderfolgenden zwei Zeitfenstern zu.
  • Berechnung von μg
  • Hier bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 μg durch Division der Periode jeder Gruppe durch die Periode eines Zeitfensters. Beispielsweise beträgt der Wert von μg in der 20 μs-Periodengruppe 2, wenn die Periode eines Zeitfensters 10 μs beträgt.
  • Als nächstes stellt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Zeitfenster zur Übertragung der Daten der einzelnen periodischen Verarbeitungsprogramme 152 in der Gruppe inklusive der Daten des neu hinzugefügten Programms, und zwar derart, dass die Anzahl der Arten von verwendeten Zeitfenstern gleich oder weniger als μg ist. Dann bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob es ein Zeitfenster gibt, dessen Datenmenge Ts als Ergebnis der Einstellung der Zeitfenster in jeder Gruppe beträgt (S048).
  • Hier bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das periodische Verarbeitungsprogramm 152 nicht ausgeführt werden kann (S057), wenn es ein Zeitfenster gibt, dessen Datenmenge Ts übertrifft (Ja in S048). Andererseits könnte das Programm ausgeführt werden, wenn es kein Zeitfenster gibt, dessen Datenmenge Ts übertrifft (Nein in S048) und die Planänderungsmöglichkeits-Bestimmungseinheit 131 springt zu S049.
  • Beispielsweise ist, wie in 16 dargestellt, μg = 2 für die 20 μs-Periodengruppe, μg = 3 für die 30 μs-Periodengruppe und μg = 7 für die 70 μs-Periodengruppe. Hier gibt es keine Kombination mit einer Ts übertreffenden Datenmenge in μg = 2-Kombinationen in der 20 us-Periodengruppe inklusive des neu hinzugefügten Programms (Nein in S048). Der Prozess wird daher in S049 fortgesetzt.
  • Vergleich der Summe der Datenmengen Summe 2 mit Ts
  • Zurückkehrend zur Beschreibung von 9 wählt die Planänderungsmöglichkeits-Bestimmungseinheit 131 wie in 17 dargestellt als nächstes die Kombination der periodischen Verarbeitungsprogramme aus, deren Datenmenge die maximal unter den anderen Kombinationen in jeder verbleibenden Gruppe ist. Dann berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Summe 2, welche die Summe der Datenmengen der gewählten Kombinationen jeder verbleibenden Gruppe ist und die Kombination der Programme, deren Datenmenge in der Gruppe inklusive des neu ergänzten Programms maximal ist (S049).
  • Beispielsweise ist, wie in 17 dargestellt, die Kombination mit der maximalen Datenmenge in den von der 20 μs-Periodengruppe unterschiedlichen Gruppen, namentlich in der 30 μs-Periodengruppe, die Kombination der Programme B und I, in welchen die Datenmenge 45 B beträgt. Ferner ist die Kombination mit der maximalen Datenmenge in der 70 μs-Periodengruppe die Kombination der Programme E, F und G, in welcher die Datenmenge 100 B beträgt. Daher berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 Summe 2 = 100 B + 45 B + 100 B = 245 B. Zurückkehrend zu der Beschreibung aus 9 bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 als nächstes, ob die Summe 2 Ts übertrifft (S050). Hier benachrichtigt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Sendezeitplanungseinheit 135 (siehe 3), wenn die Summe 2 Ts nicht übertrifft (Nein in S050), dass es nötig ist, die Zeitplanung zur Ausführung zu verändern (S055). Dann bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das neu hinzugefügte periodische Verarbeitungsprogramm 152 ausgeführt werden kann (S056). Dann ordnet die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programmmanagementeinheit 130 neu dem neu hinzugefügten periodischen Verarbeitungsprogramm 152 zu (S058) und beendet den Prozess.
  • Reduktion von Summe 2 durch Kombinationsänderung
  • Andererseits ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, wenn die Summe 2 Ts übertrifft (Ja in S050), ob die Summe 2, also die Summe der maximalen Datenmengen in den Zeitfenstern der einzelnen Periodengruppen, durch Änderungen der Kombinationen der die einzelnen Zeitfenster in den einzelnen Periodengruppen bildenden Programme reduziert werden kann (S051).
  • Zum Beispiel betrifft, wie in 17 dargestellt, Summe 2 = 245 B, wie berechnet in S049, so dass die Planänderungsmöglichkeits-Bestimmungseinheit 131 zu S051 springt. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ermittelt, ob Summe 2, also die Summe der maximalen Datenmengen der einzelnen Zeitfenster in der einzelnen Periodengruppe, durch eine Änderung der Kombinationen der die einzelnen Zeitfenster in der einzelnen Periodengruppe bildenden Programme reduziert werden kann (S051).
  • Zurückkehrend zu der Beschreibung in 9 bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 in S051, dass die Summe 2, also die Summe der maximalen Datenmengen der einzelnen Zeitfenster in den einzelnen Periodengruppen, durch eine Änderung der Kombinationen der die einzelnen Zeitfenster in den einzelnen Periodengruppen bildenden Programme reduziert werden kann (Ja in S051). Dann ändert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programmkonfiguration jedes Zeitfensters (S052).
  • Insbesondere wählt die Planänderungsmöglichkeits-Bestimmungseinheit 131 ein Programm mit kleiner Datenmenge aus einer Vielzahl der das Zeitfenster mit der maximalen Datenmenge in der Gruppe bildenden Programme aus. Dann verschiebt die Planänderungsmöglichkeits-Bestimmungseinheit 131 das ausgewählte Programm in ein anderes Zeitfenster, um die maximale Datenmenge in der Gruppe zu reduzieren. Dann wiederholt die Planänderungsmöglichkeits-Bestimmungseinheit 131 den Schritt S049.
  • Beispielsweise hat, wie in 17 dargestellt, die Planänderungsmöglichkeits-Bestimmungseinheit 131 und die Periodengruppen, in den jeweils das Zeitfenster mit der maximalen Datenmenge einer Vielzahl von Programmen umfasst. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ändert daher die Datenkonfiguration jedes Zeitfensters mit maximaler Datenmenge in jeder Periodengruppe, um die maximale Datenmenge zu reduzieren.
  • Beispielsweise ist das Zeitfenster mit der maximalen Datenmenge in der 20 μs-Gruppe das Zeitfenster der Programme A, C, K und J. Daher verschiebt, beispielsweise wie in 18 dargestellt, die Planänderungsmöglichkeits-Bestimmungseinheit 131 das Programm J in das Zeitfenster des Programms C, so dass die verbleibenden Programme A, D und K ein Zeitfenster bilden.
  • Genauso ist in 17 das Zeitfenster mit der maximalen Datenmenge in der 30 μs-Periodengruppe das Zeitfenster der Programme B und I. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ändert daher, wie in 18 dargestellt, die Datenkonfiguration des Zeitfensters der Programme B und 1 durch das Verschieben des Programms B in ein anderes Zeitfenster.
  • Genauso ist in 17 das Zeitfenster mit der maximalen Datenmenge in der 70 μs-Periodengruppe das Zeitfenster der Programme F, G und E. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ändert daher, wie in 18 dargestellt, die Datenkonfiguration des Zeitfensters der Programme F, G und E durch ein Verschieben der Programme G und E in andere Zeitfenster, so dass das Programm F ein Zeitfenster bildet.
  • Auf diese Weise reduziert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die maximale Datenmenge des Zeitfensters in jeder Periodengruppe. Dann wiederholt die Planänderungsmöglichkeits-Bestimmungseinheit 131 S049 und die nachfolgenden Schritte. Beispielsweise berechnet die Planänderungsmöglichkeits-Bestimmungseinheit 131, wie in 19 dargestellt, Summe 2 = 60 B + 30 B + 40 B = 130 B. Hier ist Summe 2 > Ts (100 B) (Ja in S050), so dass der Prozess zu S051 springt.
  • Reduktion von Summe 2 durch Gruppierungsänderung
  • Zurückkehrend zur Beschreibung aus 9 ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131 in S051, dass die maximale Datenmenge des Zeitfensters in jeder Periodengruppe selbst durch eine Änderung der die Programme eines Zeitfensters bildenden Programme nicht reduziert werden kann (Nein in S051). Dann ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob die Programme der Periodengruppe ein Programm enthalten, das in eine andere Periodengruppe verschoben werden kann.
  • In anderen Worten ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob für jedes Programm eine andere Gruppierung möglich ist (S053). Wenn eine andere Gruppierung möglich ist, ändert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Gruppenzusammensetzung (S054) und wiederholt S047 und die nachfolgenden Prozesse.
  • Beispielsweise sind sowohl die Zeitfenster der Programme A, B und K als auch das Zeitfenster der Programme C und J die Zeitfenster mit der maximalen Datenmenge in der 20 μs-Periodengruppe. Hier ist μg (der durch Division der Periode jeder Gruppe durch die Periode eines Zeitfensters erhaltene Wert) der 20 μs-Periodengruppe 2. Da die Planänderungsmöglichkeits-Bestimmungseinheit 131 zwei Zeitfenster in der 20 μs-Periodengruppe erzeugt hat, ist es schwierig, die maximale Datenmenge des Zeitfensters der Programme A, D und K durch verschiedene Programme in das andere Zeitfenster zu reduzieren.
  • Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ermittelt daher, dass die maximale Größe jedes Zeitfensters jeder Periodengruppe selbst durch eine Veränderung der Zusammensetzung der das Zeitfenster bildenden Programme nicht reduziert werden kann (Nein in S051). Die Planänderungsmöglichkeits-Bestimmungseinheit 131 ermittelt dann, ob eine andere Gruppierung für die Programme möglich ist (S053).
  • Hier umfasst, wie in 19 dargestellt, die 20 μs-Periodengruppe die Programme K und J, deren Perioden jeweils 140 μs betragen. Die Programme K und J mit den 140 μs-Perioden können in die andere Periodengruppe (70 μs-Periodengruppe) verschoben werden. Daher verschiebt, wie in 20 dargestellt, die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programme K und J in die 70 μs-Periodengruppe. In anderen Worten verschiebt die Planänderungsmöglichkeits-Bestimmungseinheit 131 dann, wenn das Zeitfenster mit der maximalen Datenmenge in jeder Periodengruppe ein Programm mit einem gemeinsamen Vielfachen der Perioden enthält, das Programm in die Gruppe der Periode, die ein gemeinsames Vielfaches der Periode des betroffenen Programms ist. Auf diese Weise kann die Planänderungsmöglichkeits-Bestimmungseinheit 131 die maximale Größe des Zeitfensters in jeder Periodengruppe reduzieren, während der Wert von μg, der für jede Periodengruppe bestimmt wurde, beibehalten bleibt.
  • 21 erklärt die Schritte von S047 bis S050, in welchen die Kombination der Programme geändert wird und die Kombination mit der größten Datenmenge wird noch einmal ausgewählt und die Datenmengen werden aufsummiert.
  • Dann kehrt die Planänderungsmöglichkeits-Bestimmungseinheit 131 zu S049 zurück und berechnet Summe 2 und erhält 30 B + 30 B + 40 B = 100 B wie in 21 dargestellt. Dieser Wert übertrifft nicht Ts = 100 B (Nein in S050), so dass der Prozess zu S055 springt. Die Planänderungsmöglichkeits-Bestimmungseinheit 131 benachrichtigt die Sendezeitplanungseinheit 135, dass es nötig ist, den Zeitplan zur Ausführung der Prozesse zu verändern (S055). Dann ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das Programm ausgeführt werden kann (S056) und ordnet das Programm wieder der Programmmanagementeinheit 130 zu (S058).
  • Zurückkehrend zur Beschreibung zu 9 ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131 in S053, dass eine unterschiedliche Gruppierung nicht für alle Daten möglich ist (Nein in S053). Die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass das Programm nicht ausgeführt werden kann (S057). Ferner benachrichtigt die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Sendezeitplanungseinheit 135, dass es nötig ist, den Zeitplan zur Ausführung des neu hinzugefügten periodischen Verarbeitungsprogramms 152 zu ändern (S055). Dann führt die Planänderungsmöglichkeits-Bestimmungseinheit 131 S056 und die nachfolgenden Prozesse aus.
  • Durch Ausführen der obengenannten Prozesse bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 beispielsweise die Zuordnung der Zeitfenster, die in 22 dargestellt ist, zu den Programmen A–K, die periodische Verarbeitungsprogramme 152 sind. Beispielsweise bezeichnet die Bezugsziffer 220 in 22 ein Zeitfenster, das die Programme A (10 B), D (20 B), 1 (30 B) und F (40 B) überträgt. In anderen Worten verwendet der Kommunikationsplaner 102 Ethernet-(eingetragene Marke)Datenrahmen zur Übertragung der Sendedaten mit den Steuerungsbefehlswerten dieser Programme zum Sendezeitpunkt des Zeitfensters, das diese Programme umfasst.
  • Beurteilung nicht periodischer Verarbeitungsprogramme
  • Als nächstes zeigt 23 den Bestimmungsvorgang der Planänderungsmöglichkeits-Bestimmungseinheit 131 im Hinblick auf das nicht periodische Verarbeitungsprogramm 153.
  • Zunächst ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob es eine Computerressource gibt, die der Programmmanagementeinheit 130 neu zugeordnet werden kann oder Ähnliches (S041). Wenn es keine zuordenbare Computerressource gibt (Nein in S041), bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das Programm nicht ausgeführt werden kann (S057).
  • Wenn es eine zuordenbaren Computerressource in der Planänderungsmöglichkeits-Bestimmungseinheit 131 gibt (Ja in S041), liest die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programmmanagementinformation aus der Programminformationsmanagementeinheit 142 und ermittelt, ob es Beschränkungen für das nicht periodische Verarbeitungsprogramm 153 (S060) gibt. Wenn es keine Beschränkung für das nicht periodische Verarbeitungsprogramm 153 gibt (Nein in S060), nimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 Bezug auf eine Sendezeitplantabelle (Zeitfenstertabelle) 160 und bestätigt, dass es in dem Zeitplan Raum gibt (S061).
  • 24 ist eine Ansicht eines Beispiels der Sendezeitplantabelle (Zeitfenstertabelle) 160 der Zeitfenster, welche die Sendezeitplanungseinheit 135 managt. Die Sendezeitplaninformation ist in der Speichereinheit des Kommunikationsplaners 102 gespeichert. In der Zeitfenstertabelle 160 stellt die Abszisse Zeitfenster von der Gegenwart bis zu einer vorgegebenen Zeit in chronologischer Ordnung dar und die Ordinate stellt die Datenmenge für jedes Zeitfenster dar.
  • Die Sendezeitplanungseinheit 135 bestätigt, ob es ein nicht voll mit Daten besetztes Zeitfenster in der Zeitfenstertabelle 160 aus 24 gibt, und zwar als Antwort auf eine Anfrage der Planänderungsmöglichkeits-Bestimmungseinheit 131. In anderen Worten bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 dann, wenn es Raum in dem Zeitfenster zur Übertragung des nicht periodischen Verarbeitungsprogramms 153 gibt, dass der Plan Raum lässt.
  • Wenn kein Raum in dem Plan in S061 aus 23 bleibt (Nein in S061), bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das nicht periodische Verarbeitungsprogramm 153 nicht ausgeführt werden kann (S057). Wenn bestimmt wird, dass das nicht periodische Verarbeitungsprogramm 153 nach einer vorgegebenen Wartezeit verwendet werden kann, kann die Planänderungsmöglichkeits-Bestimmungseinheit 131 das Ergebnis ihrer Ermittlung in einem Log aufzeichnen und die vorgegebene Zeit warten.
  • In S061 bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 dann, wenn es Raum in dem Zeitplan der Sendezeitplanungseinheit 135 gibt (Ja in S061), dass das nicht periodische Verarbeitungsprogramm 153 ausgeführt werden kann (S056). Gleichzeitig bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131 in S060 dann, wenn eine Beschränkung des nicht periodischen Verarbeitungsprogramms 153 vorliegt (Ja in S060), ob die Beschränkung des nicht periodischen Verarbeitungsprogramms 153 eine Garantie für eine minimale Kommunikationsbandbreite ist (S062).
  • Wenn die Beschränkung eine Garantie für die minimale Kommunikationsbandbreite ist (Ja in S062), bestätigt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob die Sendezeitplanungseinheit 135 die Bandbreite garantieren kann (S063). In anderen Worten bestätigt die Planänderungsmöglichkeits-Bestimmungseinheit 131 bei der Sendezeitplanungseinheit 135, ob genug Raum in dem Zeitplan ist, um die minimale Kommunikationsbandbreite zu garantieren.
  • Beispielsweise bestätigt die Sendezeitplanungseinheit 135 dann, wenn die minimale Kommunikationsbandbreite des nicht periodischen Verarbeitungsprogramms 153 5 B/s beträgt, ob Platz von 5 B in dem aktuellen und den folgenden Zeitfenstern für eine Sekunde in dem in 24 dargestellten Plan ist. Dann gibt die Sendezeitplanungseinheit 135 das Ergebnis der Bestätigung an die Planänderungsmöglichkeits-Bestimmungseinheit 131 zurück.
  • Wenn es Platz in dem Zeitplan gibt (Ja in S063), bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das nicht periodische Verarbeitungsprogramm 153 ausgeführt werden kann (S056). Dann beantragt die Planänderungsmöglichkeits-Bestimmungseinheit 131 bei der Programminformationsmanagementeinheit 142 die Aktualisierung der Programmmanagementinformationen (S066). In anderen Worten instruiert die Planänderungsmöglichkeits-Bestimmungseinheit 131 die Programminformationsmanagementeinheit 142, die Informationen des nicht periodischen Verarbeitungsprogramms 153 zu ergänzen. Andererseits bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das nicht periodische Verarbeitungsprogramm 153 nicht ausgeführt werden kann (S057), wenn es keinen Raum in dem Zeitplan gibt (Nein in S036).
  • Wenn in S062 bestimmt wird, dass die Bedingungen des nicht periodischen Verarbeitungsprogramms 153 nicht die Garantie einer minimalen Kommunikationsbandbreite sind (Nein in S062), ermittelt die Planänderungsmöglichkeits-Bestimmungseinheit 131, ob die Bedingung des nicht periodischen Verarbeitungsprogramms eine maximal zulässige Verzögerung ist (S064). Wenn die Bedingung eine maximal zulässige Verzögerung ist (Ja in S064), wendet die CPU 101 die auf dem nicht periodischen Verarbeitungsprogramm 153 beruhende Datenmenge auf die Planänderungsmöglichkeits-Bestimmungseinheit 131 an und bestätigt, ob die Sendezeitplanungseinheit 135 die Bedingung der maximal zulässigen Verzögerung garantieren kann (S065).
  • Beispielsweise bestätigt die Sendezeitplanungseinheit 135 dann, wenn die maximal zulässige Verzögerung des nicht periodischen Verarbeitungsprogramms 153 10 μs beträgt und die Datenmenge 10 B beträgt, ob in dem aktuellen und in den folgenden Zeitfenstern bis 10 μs später Raum für 10 B in der Zeitfenstertabelle 160 aus 24 bleibt. Dann gibt die Sendezeitplanungseinheit 135 das Ergebnis der Bestätigung an die Planänderungsmöglichkeits-Bestimmungseinheit 131 zurück.
  • Hier bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass das nicht periodische Verarbeitungsprogramm 153 ausgeführt werden kann (S056), wenn die maximal zulässige Verzögerung garantiert werden kann (Ja in S065). Wenn sie nicht garantiert werden kann (Nein in S065), bestimmt die Planänderungsmöglichkeits-Bestimmungseinheit 131, dass die das nicht periodische Verarbeitungsprogramm 153 nicht ausgeführt werden kann (S057).
  • Es sei bemerkt, dass wenn in S065 ermittelt wird, dass die Bedingung des nicht periodischen Verarbeitungsprogramms 153 nicht die maximal zulässige Verzögerung ist (Nein in S064), die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass das nicht periodische Verarbeitungsprogramm 153 nicht ausgeführt werden kann (S066). Es können jedoch eine Reihe von Ermittlungen im Hinblick auf andere Bedingungen durchgeführt werden, indem Verfahren zur Bestimmung der Bedingungen bereitgestellt werden.
  • Aktualisieren des Sendezeitplans
  • In S002 aus 6 und 7 stellt die Programminformationsmanagementeinheit 142 in der Programmmanagementeinheit 130 verschiedene Typen von Informationen im Zusammenhang mit den periodischen Verarbeitungsprogrammen 152 und den nicht periodischen Verarbeitungsprogrammen 153 in der Programmmanagementinformation ein. Dann stellt in S004 die CPU 101 die Sendedaten für die Sendedatenmanagementeinheit 140 bereit.
  • Insbesondere aktualisiert die Sendezeitplanungseinheit 135 den zukünftigen Sendezeitplan, wenn die Sendedatenmanagementeinheit 140 als erstes eingestellt wird, worüber die Sendezeitplanungseinheit 135 nicht benachrichtigt wird. Die Aktualisierung des Sendezeitplans durch die Sendezeitplanungseinheit 135 wird unten beschrieben.
  • Die Sendezeitplanungseinheit 135 verwaltet den Sendezeitplan der Daten basierend auf dem Zeitfenster. Wie in dem Beispiel in 24 dargestellt, sendet die Sendezeitplanungseinheit 135 die Sendedaten jedes Zeitfensters, das Daten enthält, die durch die Datagramm-Verknüpfungseinheit 132 verknüpft wurden. Die Breite des Zeitfensters wird unter Berücksichtigung der für den Kommunikationsplaner 102 notwendigen Verarbeitungszeit zur Übertragung eines Pakets geeigneter Größe und der für den Steuerprozess notwendigen Periode bestimmt.
  • Beispielsweise wird bei 10 μs als die für den Kommunikationsplaner 102 notwendige Bearbeitungszeit zur Sendung eines Pakets von 100 B die Breite des Zeitfensters auf 10 μs eingestellt. Gleichzeitig wird die für den Steuerungsprozess notwendige Periode ebenfalls auf ein Vielfaches von 10 μs eingestellt. Wenn ferner ein Paket mit einer Datenmenge von über 100 B übertragen wird, ist es notwendig, einen Prozess auszuführen, in welchem ein Paket mehrere Zeitfenster besetzt. Beispielsweise kann die Breite des Zeitfensters basierend auf der Einfachheit der Zeitplanung der Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt werden. Wenn es eine Beschränkung für das Steuerungssystem gibt, wie beispielsweise diejenige, keine Pakete über 500 B zu übertragen, kann die Breite des Zeitfensters auch gemäß dieser Beschränkung bestimmt werden.
  • Zeitfenstermanagementverfahren
  • Hier wird das Zeiffenstermanagementverfahren der Sendezeitplanungseinheit 135 beschrieben, wozu wieder 24 benutzt wird. In der Zeitfenstertabelle 160 aus 24 stellt die Abszisse Zeitfenster von der aktuellen Zeit bis zu einer vorgegebenen Zeit in chronologischer Ordnung dar und die Ordinate stellt Datenmengen für die Kommunikation dar, die der Kommunikationsplaner 102 für jedes Zeitfenster verarbeiten kann. In der Sendezeitplanungstabelle 160 verschiebt die CPU 101 einen Pointer, der die aktuelle Zeit angibt, auf der Abszisse während das Zeitfenster abläuft, bis der Pointer das Ende erreicht und setzt ihn dann an den Anfang zurück. Die CPU 101 wiederholt diesen Vorgang.
  • Die Sendezeitplanungseinheit 135 schreibt die geplante Sendezeit und Datenmenge jedes Programms, die durch die Planänderungsmöglichkeits-Bestimmungseinheit 131 ermittelt wurden, in die Zeiffenstertabelle 160. Dabei plant die Sendezeitplanungseinheit 135 in das gleiche Zeitfenster ein, soweit dies innerhalb des die Bedingungen der Programme erfüllten Bereichs möglich ist. Wenn jedoch, wie in S046–S053 in 9 dargestellt, die Planänderungsmöglichkeits-Bestimmungseinheit 131 bestimmt, dass es nötig ist, das Zeitfenster zu verschieben, verschiebt die Sendezeitplanungseinheit 135 das Zeitfenster.
  • Ferner verwaltet die Sendezeitplanungseinheit 135 die Anzahl der verbleibenden Zeitfenster einzeln, wenn die Periode des periodischen Verarbeitungsprogramms 152 größer als die Breite der Abszisse der Zeitfenstertabelle 160 ist, bis die Sendedaten gesendet wurden. Auf diese Weise reduziert die Sendezeitplanungseinheit 135 die Anzahl der verbleibenden Zeitfenster Schritt für Schritt, während die Zeit der Zeitfenster verstreicht. Dann, wenn die Anzahl der verbleibenden Zeitfenster 0 ist, überträgt die Sendezeitplanungseinheit 135 die Daten des periodischen Verarbeitungsprogramms 152. Nach der Sendung der Sendedaten initialisiert die Sendedatenplanungseinheit 135 die Anzahl der Zeitfenster auf dem Wert der Periode.
  • In S002 aus 6 und 7 kann die CPU 101 auf der Basis des periodischen Verarbeitungsprogramms 152 auch das Verhalten im Fall einer fehlerhaften Benachrichtigung der Sendezeitplanungseinheit 135 mit den Sendedaten innerhalb der Periode des speziellen periodischen Verarbeitungsprogramms 152 einstellen, die in der Programmmanagementinformation angezeigt ist.
  • Beispiele für eine solche Einstellung sind die Folgenden: Senden des letzten Befehlswerts als die gleichen Daten, Stoppen des Sendens von Daten, Fehlermeldung an den Benutzer nach der Anfrage für die Sendung und Verzögerung der Übertragung, bis die Anfrage eitrifft. Ferner ist es auch möglich, die Anzahl, die Zeiten und Ähnliches von Verzögerungen in der Übertragung der Sendedaten für die Periode aufzuzeichnen, so dass der Benutzer diese Informationen für Zwecke wie beispielsweise eine Diagnose des Controllers 120 nutzen kann.
  • Ferner kann in S014 aus 7 der Wartezustand durch die Programmaufweckeinheit 136 zu einem geeigneten Zeitpunkt gemäß der auf dem periodischen Verarbeitungsprogramm 152 basierenden Sendezeit aufgelöst werden.
  • Wenn ferner die Prozesse in 6, 7 und 8 beendet werden, wird die Programmmanagementeinheit 130 entlastet. Die Sendezeitplanungseinheit 135 löscht dann den Plan des periodischen Verarbeitungsprogramms 152 oder des nicht periodischen Verarbeitungsprogramm 153.
  • Wenn die Periode des Prozesses des periodischen Verarbeitungsprogramms 152 während der Ausführung des Programms geändert wird, fragt die CPU 101 nach, ob die Periode des speziellen periodischen Verarbeitungsprogramm 152 geändert werden kann, und zwar bei der Planänderungsmöglichkeits-Bestimmungseinheit 131 des Kommunikationsplaners 102. Dann führt die CPU 101 S002 und die nachfolgenden Prozesse aus 6 aus, wenn ermittelt wird, dass die Periode geändert werden kann.
  • Die Entscheidung, ob die Periode des periodischen Verarbeitungsprogramms 152 geändert werden kann, wird durch das gleiche Verfahren wie dasjenige aus 9 getroffen, das oben beschrieben wurde. In anderen Worten empfängt die Planänderungsmöglichkeits-Bestimmungseinheit 131 eine Anmeldung für die geänderte Periode und die maximale Datenmenge in Bezug auf das periodische Verarbeitungsprogramm 152, das geändert werden soll (S040) und führt S041 und die nachfolgenden Prozesse aus.
  • Merkmale des Controllers
  • Mit einem derartigen Controller 120 kann die CPU 101 Daten basierend auf dem periodischen Verarbeitungsprogramm 152 jederzeit senden und empfangen, ohne die Sendezeitpunkte mit den anderen periodischen Verarbeitungsprogrammen 152 synchronisieren zu müssen. Zudem kann der Controller 120 einen Steuerprozess und einen Kommunikationsprozess unabhängig von dem periodischen Verarbeitungsprogramm 152 oder dem nicht periodischen Verarbeitungsprogramm 153 implementieren.
  • Dank dieser Merkmale ist es möglich, die Abhängigkeit der periodischen Verarbeitungsprogramme 152 und des nicht periodischen Verarbeitungsprogramms 153 in dem Controller 120 voneinander zu reduzieren. Dadurch kann die Wiederverwendbarkeit, Bedienbarkeit, Skalierbarkeit und Flexibilität des Controllers als Software erhöht werden. In anderen Worten macht es der Controller 120 einfach, das existierende System zu ändern und auszuweiten. Es ist auch mit dem Controller 120 einfach, das periodische Verarbeitungsprogramm 152 für das spezielle zu steuernde Gerät 121 in anderen Steuersystemen wiederzuverwerten.
  • Ferner kann der Controller 120 Daten verknüpfen und gleichzeitig senden, wobei jede der Bedingungen der periodischen Verarbeitungsprogramme 152 und der nicht periodischen Verarbeitungsprogramme 153 gleichzeitig berücksichtig werden. Dadurch kann die gleiche Datenmenge mit einer reduzierten Anzahl von Sendepaketen gesendet werden. Als Ergebnis ist es möglich, den mit der Verarbeitung gemeinsame Teile wie beispielsweise des Headers und des Trailers einhergehenden Overhead zu reduzieren.
  • Beispielsweise hat Ethernet (eingetragene Marke) den mit der Kommunikation der 8 B-Präambel, des 14 B-Headers und der 4 B-FCS (Frame Check Sequence) und der 96 Bit-Lücke zwischen den Frames zusammenhängenden Overhead. Durch eine Reduktion des Overheads kann die minimal erreichbare Periode weiter reduziert werden und die Steuerungsleistung des Steuerungsziels kann verbessert werden.
  • Andere Änderungen
  • Die Funktion des Kommunikationsplaners 102 des Controllers 120 kann auch durch den Prozess einer Programmausführung des Controllers 120 realisiert werden. In diesem Fall hat der Controller 120 einen Aufbau, in welchem der Kommunikationsplaner 102 des Controllers 120 nicht enthalten ist. 26 zeigt den Aufbau von Programmen, die auf einem solchen Controller 120 laufen.
  • In 26 ist ein Kommunikationsplaner 170 ein auf der CPU 101 laufendes Programm, das die gleiche Funktion wie diejenige des Kommunikationsplaners 102 realisiert, der oben beschrieben wurde. Der Kommunikationsplaner 170 empfängt eine Kommunikationsanfrage von dem periodischen Verarbeitungsprogramm 152 und dem Protokollstapel 155. Dann greift der Kommunikationsplaner 170 über den Gerätetreiber 151 auf den LAN-Controller 103 zu, um mit dem Steuerungsnetzwerk 122 zu kommunizieren (siehe 2). Beispiele für den Kommunikationsplaner 170 sind Middleware, ein Serverprogramm oder ein Kernelmodul.
  • Es sei bemerkt, dass der Controller 120 und das zu steuernde Gerät 121 durch ein anderes Netzwerk als LAN verknüpft werden können. In diesem Fall ist, wie in 27 dargestellt, ein Kommunikationsplaner 180 des Controllers 120 mit einem Kommunikationscontroller 181 für die Verbindung mit dem Steuernetzwerk ausgestattet.
  • Zudem umfasst, wie in 28 dargestellt, der Kommunikationsplaner 180 ferner eine Netzwerkprotokollinformationsmanagementeinheit 190 zum Speichern verschiedener Arten von Informationen (beispielsweise verfügbare Zeit für den Controller 120, verfügbare Periode und Informationen über das Paket, das gesendet und empfangen werden kann oder andere Informationen) zur Verwendung in dem Steuerungsnetzwerk. Die Sendezeitplanungseinheit 135 erhält Informationen über die Nutzung des Steuerungsnetzwerks von der Netzwerkprotokollinformationsmanagementeinheit 190. Dann plant die Sendezeitplanungseinheit 135 die Sendezeit der Sendedaten Bezug nehmend auf die erhaltenen Informationen.
  • Ferner kann der Controller 120, wie in 29 dargestellt, mit dem zu steuernden Gerät 121 über ein Bus-Netzwerk verknüpft sein. Ferner können, wie in 29 dargestellt, eine Mehrzahl von Controller 120 eine Mehrzahl von zu steuernden Geräten 121 steuern. Es sei bemerkt, dass, falls das Steuerungssystem eine Mehrzahl von Controller 120 enthält, die Controller 120 die Sendung ihrer Sendedaten so planen sollten, dass die Sendezeiten miteinander synchronisiert sind.
  • Die Beschreibung wurde angegeben für den Fall, in welchem die Sendeeinheit 137 (siehe 3) des Controllers 120 Ethernet (eingetragene Marke) Datenrahmen überträgt. Die Sendeeinheit 137 kann jedoch auch in der Lage sein, Zeiteinteilungen zur Übertragung von Daten nach der Zeitfenstertabelle (Zeitplaninformation) 160 zu nutzen.
  • Die obigen Ausführungsbeispiele der Erfindung und die beiliegenden Ansprüche und Figuren zeigen viele charakteristische Merkmale der Erfindung in speziellen Kombinationen. Der Fachmann ist selbstverständlich in der Lage, weitere Kombinationen und Unterkombinationen dieser Merkmale zu betrachten, um die Erfindung seinen spezifischen Bedürfnissen anzupassen.

Claims (7)

  1. Controller mit einem oder mehreren Programmen zur Steuerung von einem oder mehreren zu steuernden Geräten (121), wobei der Controller umfasst: eine Verarbeitungseinheit (101) zur Ausgabe eines Steuerungsbefehls für jedes zu steuernde Gerät (121) an einen Kommunikationsplaner (102) basierend auf jedem der Programme; und den Kommunikationsplaner (102) zur Ermittlung einer Sendezeit zum Senden des von der Verarbeitungseinheit (101) ausgegebenen Steuerungsbefehlswerts an die einzelnen zu steuernden Geräte (121) über ein Netzwerk (122) gemäß einer Zeitfenster nutzenden Zeitplaninformation und zum Senden von Sendedaten mit den Steuerungsbefehlswerten an das einzelne zu steuernde Gerät (121), wobei der Kommunikationsplaner (102) umfasst: eine Speichereinheit (139); eine Programminformationsmanagementeinheit (142) zum Empfangen einer Eingabe von Programmmanagementinformationen, welche die Identifikationsinformation des von dem Programm zu steuernden Geräts (121) angeben, welches eines der Programme ist, die periodisch die Steuerungsbefehlswerte senden, sowie die für die Übertragung des Steuerungsbefehlswerts an das zu steuernde Gerät (121) verwendete Periode und einen maximalen Wert der Datenmenge des von dem einzelnen Programm ausgegebenen Steuerungsbefehlswerts, sowie zum Speichern der Programmmanagementinformationen; eine Sendedatenmanagementeinheit (140) zum Empfangen der Eingabe des Steuerungsbefehlswerts an das zu steuernde Gerät (121) von der Verarbeitungseinheit (101) auf der Basis des Programms und zum Speichern des Steuerungsbefehlswerts in der Speichereinheit (139); eine Planänderungsmöglichkeits-Bestimmungseinheit (131) zur Berechnung der Summe der Datenmengen der Steuerungsbefehlswerte, die von jedem der Programme ausgegeben werden, welche die Verarbeitungseinheit (101) gegenwärtig ausführt, und zwar Bezug nehmend auf die Programmmanagementinformation der Programme, wobei die Planänderungsmöglichkeits-Bestimmungseinheit (131) dann, wenn ein durch Division der Summe durch den Kommunikationsverarbeitungsdurchsatz des Kommunikationsplaners (102) erhaltener Wert geringer ist als die minimale Periode der Perioden aller Programme, bestimmt, dass der Wert die zeitlichen Beschränkungen der laufenden Programme erfüllt, eine Sendezeitplanungseinheit (135) zum Festlegen der Sendezeit, so dass die den Steuerungsbefehlswert enthaltenden Sendedaten innerhalb einer in der Programmmanagementinformation angegebenen Periode gesendet werden, zum Aufzeichnen der Sendezeit in der Zeitplaninformation und zum Ausgeben eines Sendebefehls für die Sendedaten zu der ermittelten Sendezeit, wenn die Planänderungsmöglichkeits-Bestimmungseinheit (131) bestimmt, dass der Wert die zeitlichen Beschränkungen der laufenden Programme erfüllt; und eine Sendeeinheit (137) zum Lesen des Steuerbefehlswerts aus der Speichereinheit auf der Basis des von der Sendezeitplanungseinheit (135) ausgegebenen Sendebefehls und zum Senden der Sendedaten, die den Steuerungsbefehlswert enthalten.
  2. Controller nach Anspruch 1, wobei der Kommunikationsplaner (102) ferner umfasst: eine Empfangseinheit zum Empfangen von Empfangsdaten als Antwort auf den Steuerungsbefehlswert von dem zu steuernden Gerät (121); und eine Programmaufweckeinheit (136) zum Aufwecken des Programms, welches den Steuerungsbefehlswert ausgibt, nach dem Empfang der Empfangsdaten; wobei die Verarbeitungseinheit (101) auf der Basis des aufgeweckten Programms den nächsten Steuerungsbefehlswert auf der Basis der in den Empfangsdaten angegebenen Antwort bestimmt und den so bestimmten Steuerungsbefehlswert auf der Basis der Aufweckanweisung des Programms an den Kommunikationsplaner (102) ausgibt.
  3. Controller nach Anspruch 1, wobei der Kommunikationsplaner (102) eine Datagramm-Verknüpfungseinheit (132) zur Erzeugung der Sendedaten in einem Zeitfenster umfasst, so dass die gesamte Datenmenge gleich oder geringer als die maximale Datenmenge ist, die pro Zeitfenster übermittelt werden kann, wobei die Sendeeinheit (137) die erzeugten Sendedaten in dem von der Planänderungsmöglichkeits-Bestimmungseinheit (131) ausgegebenen Sendezeitpunkt sendet.
  4. Controller nach Anspruch 3, wobei dann, wenn die Summe der Datenmengen der Steuerungsbefehlswerte der Programme, deren Periode Primzahlen im Hinblick auf die Periode jedes der laufenden Programme sind, die maximale Datenmenge, die in einem Zeitfenster übermittelt werden kann, übertrifft, die Sendezeitplanungseinheit, die Gruppe der Steuerungsbefehlswerte der Programme in Blöcke von Steuerungsbefehlswerten aufteilt, so dass die Datenmenge jedes Blocks gleich oder geringer als die maximale Datenmenge ist, und die aufgeteilten Blöcke der Steuerungsbefehlswerte jeweils den anderen Zeitfenstern zuordnet.
  5. Controller nach Anspruch 2, wobei die Sendeeinheit (137) Ethernet (eingetragene Marke) Datenrahmen zur Durchführung der Übertragung der Sendedaten auf die zu steuernden Geräte (121) und auch für den Empfang der Empfangsdaten von den zu steuernden Geräten (121) über das Netzwerk (122) verwendet.
  6. Controller nach Anspruch 2, wobei die Sendeeinheit (137) eine Zeitaufteilung zum Senden der Sendedaten an die zu steuernden Geräte (121) und auch für den Empfang der Empfangsdaten von den zu steuernden Geräten (121) über das Netzwerk (122) verwendet.
  7. Controller nach Anspruch 1, wobei die Topologie des Netzwerks (122), welches den Controller und die zu steuernden Geräte (121) verbindet, eine Ringtopologie ist.
DE102010002327.2A 2009-03-24 2010-02-25 Controller Expired - Fee Related DE102010002327B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009072344A JP4876138B2 (ja) 2009-03-24 2009-03-24 制御用計算機および制御システム
JP2009-072344 2009-03-24

Publications (2)

Publication Number Publication Date
DE102010002327A1 DE102010002327A1 (de) 2010-11-18
DE102010002327B4 true DE102010002327B4 (de) 2017-05-04

Family

ID=42979259

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010002327.2A Expired - Fee Related DE102010002327B4 (de) 2009-03-24 2010-02-25 Controller

Country Status (2)

Country Link
JP (1) JP4876138B2 (de)
DE (1) DE102010002327B4 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6488830B2 (ja) * 2015-03-31 2019-03-27 オムロン株式会社 制御装置
JP2017034307A (ja) * 2015-07-28 2017-02-09 株式会社東芝 情報収集管理装置、方法、及び情報収集システム
CN106406246B (zh) * 2015-07-31 2019-09-20 中国联合网络通信集团有限公司 调度消息传输的方法及装置
JP6450708B2 (ja) * 2016-05-16 2019-01-09 ファナック株式会社 複数の製造セルの間で加工情報を処理する情報処理装置
JP6900690B2 (ja) 2017-02-07 2021-07-07 オムロン株式会社 制御装置
JP6911791B2 (ja) * 2018-02-14 2021-07-28 オムロン株式会社 制御装置、制御システム、制御方法、および、制御プログラム
JP7025966B2 (ja) * 2018-03-20 2022-02-25 日立Astemo株式会社 車両制御装置
JP7415345B2 (ja) * 2019-07-03 2024-01-17 オムロン株式会社 制御システム、サポート装置および設定プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357824A1 (de) * 2003-12-09 2005-07-14 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Betreiben zusammenarbeitender unterschiedlicher Geräte
US20080013572A1 (en) * 2006-06-19 2008-01-17 Wolfgang Pree Gmbh System and method for executing distributed software

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07312613A (ja) * 1994-05-19 1995-11-28 Hitachi Ltd 通信システム
JP2000216811A (ja) * 1999-01-22 2000-08-04 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP4500484B2 (ja) * 2002-07-19 2010-07-14 株式会社日立製作所 コントローラおよび情報通信サービス方法
JP2004280195A (ja) * 2003-03-12 2004-10-07 Yaskawa Electric Corp ロボット制御装置
DE602005010252D1 (de) * 2005-09-20 2008-11-20 Matsushita Electric Ind Co Ltd Vefahren und Vorrichtung zur Packetsegmentierung und Verknüpfungssignalisierung in einem Kommunikationssystem
WO2008105051A1 (ja) * 2007-02-26 2008-09-04 Toshiba Mitsubishi-Electric Industrial Systems Corporation スケジューラ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357824A1 (de) * 2003-12-09 2005-07-14 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Betreiben zusammenarbeitender unterschiedlicher Geräte
US20080013572A1 (en) * 2006-06-19 2008-01-17 Wolfgang Pree Gmbh System and method for executing distributed software

Also Published As

Publication number Publication date
JP4876138B2 (ja) 2012-02-15
JP2010224939A (ja) 2010-10-07
DE102010002327A1 (de) 2010-11-18

Similar Documents

Publication Publication Date Title
DE102010002327B4 (de) Controller
DE69634983T2 (de) Verfahren und vorrichtung für ein hybrides wettbewerbs- und abfrageprotokoll
EP1309920B1 (de) Adressvergabeverfahren für mindestens einen neu an ein bussystem angeschlossenen busteilnehmer
AT411948B (de) Kommunikationsverfahren und apparat zur übertragung von zeitgesteuerten und ereignisgesteuerten ethernet nachrichten
EP1989598B1 (de) Verfahren, kommunikationsnetzwerk und steuereinheit zum zyklischen übertragen von daten
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
EP0807883B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
WO2007107414A1 (de) Verfahren und datenübertragungssystem zur übergabe von daten zwischen dem datenübertragungssystem und einem host-prozessor eines teilnehmers eines datenübertragungssystems
DE10031670A1 (de) Automatisch heruntergeladener verbindungsaktiver Plan
WO2007101590A1 (de) Verfahren zur erstellung eines optimierten ablaufplans für ein zeitgesteuertes verteiltes rechnersystem
WO2007039620A1 (de) Teilnehmerschnittstelle zwischen einem flexray-kommunikationsbaustein und einem flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
DE102011122644A1 (de) Nachrichtenverlustverhinderung unter Verwendung eines Senderpuffers und Verkehrsgestaltung in durch ein Ereignis ausgelösten verteilten eingebetteten Echtzeitsystemen
EP2197160A1 (de) Azyklischer Datentransfer über einen Feldbuskoppler
EP2556651B1 (de) Verfahren und vorrichtung zum austausch von daten zwischen zwei geräten eines automatisierungsnetzwerks
DE102018001574A1 (de) Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems
EP3669527B1 (de) Verfahren zum betreiben einer sensoranordnung in einem kraftfahrzeug auf basis eines dsi-protokolls
AT512665B1 (de) Verfahren und Apparat zur Bildung von Software Fault Containment Units in einem verteilten Echtzeitsystem
EP1370952B1 (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem
DE102006024744B4 (de) Kommunikationssystem, Zyklus-Masterknoten und Kommunikationsverfahren
DE60213589T2 (de) Verfahren zur Verwaltung eines Kommunikationsnetzes mit drahtlosen Strecken mit mehr als zwei drahtlosen einrichtungen
EP2090948B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
EP2133763A1 (de) Verfahren zum Betrieb eines Automatisierungssystems
DE102010001596A1 (de) Verfahren zum Betrieb eines zeitgesteuerten Bussystems
EP1642207B1 (de) Zuordnung von stationsadressen zu kommunikationsteilnehmern in einem bussystem
EP3552063B1 (de) Verfahren zur automatischen konfiguration von funktionseinheiten eines automatisierungssystems

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee