-
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
-
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
Prob lem, 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 Pro gramm 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 Verarbeitungspro gramm 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 10–22 beschrieben.
-
Jedes
der Programme A–K, die in 10–22 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 Computerres source 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 μ1 (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
werden 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änderungsmö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 10–13 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 μs-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 I 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), I (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 Sen dezeitplanungseinheit 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 Zeitfenstermanagementverfahren 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 Zeitfenstertabelle 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 eintrifft. 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 Controllern 120 eine Mehrzahl von zu steuernden Geräten 121 steuern.
Es sei bemerkt, dass, falls das Steuerungssystem eine Mehrzahl von
Controllern 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.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - http://www.anybus.jp/technologies/ethercat.shtml [0002]