-
Die
Erfindung betrifft eine Einrichtung zur Steuerung und/oder Regelung
einer Maschine. Bei Echtzeitanwendungen zur Steuerung und/oder Regelung
einer Maschine ist ein zyklischer Datenverkehr zweckmäßig. Die
Echtzeitanwendung, Geber und Antriebe bilden einen Regelkreis. Typischerweise
arbeitet ein solcher Regelkreis mit einem vorgebbaren zeitlich konstanten
Takt. Dieser Takt muss für alle
Komponenten konstant sein. Bei industriellen Maschinen, wie z.B.
Werkzeugmaschine, Produktionsmaschinen und/oder Robotern, ist häufig eine größere Anzahl
von Antrieben mit einer steuernden und/oder regelnden Einrichtung
verbunden. Die Einrichtung kann dabei z.B. in Form einer numerischen Steuerung
der Maschine vorliegen. Der Datenverkehr erfolgt dann üblicherweise
mit einer Kommunikationseinrichtung über z.B. eine Echtzeitbusanbindung.
Die Kommunikationseinrichtung muss die Übertragung der Daten im Takt
sicherstellen.
-
Die
Abarbeitung der Steuerungs- und Regelungsfunktionen erfolgt innerhalb
von einem oder mehreren Echtzeitprogrammen, während azyklische Aufgaben,
wie z.B. die Visualisierung von Prozessdaten, innerhalb von einem
oder mehreren Nichtechtzeitprogrammen abgearbeitet werden. Unter
Echtzeitprogrammen sind dabei Programme zu verstehen, die auf einem
Echtzeitbetriebssystem ablaufen und deren Abarbeitung zyklisch mit
Hilfe eines vorzugsweisen äquidistanten
Takts erfolgt. Nichtechtzeitprogramme laufen auf einem Nichtechtzeitbetriebssystem
wie z.B. Unix ab.
-
Häufig wird
an eine Einrichtung zur Steuerung und/oder Regelung der Maschine
die Anforderung gestellt, dass sowohl Echtzeit als auch Nichtechtzeitprogramme
auf einer Recheneinrichtung nebeneinander ablaufen können, wobei
das Echtzeitprogramm die Steuerung und/oder Regelung von Antrieben
der Maschine erlaubt und das Nichtechtzeitprogramm wie schon oben
gesagt azyklische Aufgaben, wie z.B. die Visualisierung von Prozessdaten übernimmt.
-
Aus
der Offenlegungsschrift
EP
1 067 448 A2 und der Patentschrift
DE 102 46 746 B3 sind Rechnersysteme
bekannt, bei denen mit Hilfe eines zyklischen Takts eine Umschaltung
von der Bearbeitung des Nichtechtzeitprogramms zur Bearbeitung des
Echtzeitprogramms erfolgt. Diese aus dem Stand der Technik bekannte
Vorgehensweise weist den großen
Nachteil auf, dass mehr oder weniger große Schwankungen bei der zyklischen
Bearbeitung des Echtzeitprogramm auftreten, so dass z.B. Daten nicht
mehr zeitlich äquidistant
eingelesen oder bearbeitet werden. Die zeitlichen Schwankungen bei der
Bearbeitung eines Echtzeitprogramms werden fachspezifisch auch als
Jitter bezeichnet. Der Jitter kommt unter anderem zustande, weil
nach Empfang des Takts zur Umschaltung das Nichtechtzeitbetriebssystem
zuerst in der Regel Daten sichern muss bevor die tatsächliche
Umschaltung zum Echtzeitprogramm erfolgt. Das Sichern der Daten
kann aber unterschiedlich lange dauern, so dass sich der schon oben
beschriebene Jitter bei einer Bearbeitung des Echtzeitprogramms
einstellt.
-
Aus
der
deutschen Patentanmeldung
mit dem Anmeldeaktenzeichen 10 2006 052 757.7 ist ein Automatisierungsgerät zur Steuerung, Überwachung und/oder
Beeinflussung eines technischen Prozesses, wobei das Automatisierungsgerät eine Verarbeitungseinheit
aufweist, wobei die Verarbeitungseinheit mehrere Verarbeitungskerne
aufweist, bekannt.
-
Aus
der
deutschen Patentanmeldung
mit dem Anmeldeaktenzeichen 10 2006 040 417.3 ist eine
Einrichtung zur Steuerung und/oder Regelung einer Maschine, wobei
die Einrichtung einen Multicore-Prozessor mit mehreren Cores aufweist,
wobei in einem ersten Core ein Echtzeitprogramm und in einem zweiten
Core ein Nichtechtzeitprogramm abläuft, wobei das Echtzeitprogramm
die Steuerung und/oder Regelung von Antrieben der Maschine erlaubt,
wobei die Vorgabe des Abarbeitungsbeginns des Echt zeitprogramms
mittels einem dem ersten Core vorgebbaren Takts erfolgt, bekannt.
-
Der
Erfindung liegt die Aufgabe zugrunde, eine Einrichtung zur Steuerung
und/oder Regelung einer Maschine zu schaffen, bei der Schwankungen bei
der zyklischen Bearbeitung eines Echtzeitprogramms reduziert werden.
-
Die
Aufgabe wird gelöst
durch eine Einrichtung zur Steuerung und/oder Regelung einer Maschine,
wobei die Einrichtung einen Multicore-Prozessor mit mehreren Cores
aufweist, wobei ein Echtzeitprogramm die Steuerung und/oder Regelung
von Antrieben der Maschine erlaubt, wobei ein Echtzeitprogramm und
ein Nichtechtzeitprogramm auf dem Multicore-Prozessor ablaufen,
wobei eine Aufteilung der Cores auf die Bearbeitung des Echtzeitprogramms und
des Nichtechtzeitprogramms dahingehend erfolgt, dass das Echtzeitprogramm
und das Nichtechtzeitprogramm voneinander getrennt auf unterschiedlichen
Cores ablaufen, wobei in einem ersten Core ein erster Teil des Echtzeitprogramms
und in einem zweiten Core ein zweiter Teil des Echtzeitprogramms ablauft,
wobei in einem dritten Core das Nichtechtzeitprogramm oder ein Teil
des Nichtechtzeitprogramms ablauft, wobei die Vorgabe des Abarbeitungsbeginns
des ersten Teils des Echtzeitprogramms mittels einem dem ersten
Core vorgebbaren ersten Takts erfolgt, wobei die Vorgabe des Abarbeitungsbeginns
des zweiten Teils des Echtzeitprogramms mittels einem dem zweiten
Core vorgebbaren zweiten Takts erfolgt.
-
Vorteilhafte
Ausbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
-
Weiterhin
erweist es sich als vorteilhaft, wenn die Einrichtung über eine
Kommunikationseinrichtung mit den Antrieben zum Austausch von Daten verbunden
ist. Die Anbindung der Antriebe zum Austausch von Daten mit der
Einrichtung über
eine Kommunikationseinrichtung stellt eine handelsübliche Anbindung
der Antriebe dar.
-
Ferner
erweist es sich als vorteilhaft, wenn der erste Takt von einem Taktgeber
erzeugt wird, wobei der Taktgeber integraler Bestandteil der Einrichtung
ist. Wenn der Takt von einem Taktgeber erzeugt wird, der integraler
Bestandteil der Einrichtung ist, steht der Takt auch bei einer Störung der
Datenverbindung zwischen Einrichtung und Kommunikationseinrichtung
für die
Vorgabe des Abarbeitungsbeginns des Echtzeitprogramms zur Verfügung.
-
Weiterhin
erweist es sich als vorteilhaft, wenn der erste Takt von einem Taktgeber
erzeugt wird, wobei der Taktgeber integraler Bestandteil der Kommunikationseinrichtung
ist. Wenn der Taktgeber integraler Bestandteil der Kommunikationseinrichtung
ist, ist der Taktgeber, da er auch den Takt für den Echtzeitbus zur Anbindung
der Antriebe an das Kommunikationssystem vorgibt, prozessnah lokalisiert und
der Takt kann den Antrieben mit hoher Genauigkeit vorgegeben werden.
-
Weiterhin
erweist es sich als vorteilhaft, wenn der zweite Takt vom ersten
Core erzeugt wird. Wenn der zweite Takt vom ersten Core erzeugt
wird, kann auf der Verwendung eines zusätzlichen Taktgebers zur Erzeugung
des zweiten Taktes verzichtet werden.
-
Ferner
erweist es sich als vorteilhaft, wenn die Kommunikationseinrichtung über einen
Echtzeitbus mit den Antrieben verbunden ist, wobei der Bustakt des
Echtzeitbusses vom Taktgeber vorgegeben wird. Wenn der Takt des
Taktgebers sowohl als Bustakt als auch gleichzeitig zur Taktung
des Echtzeitprogramms verwendet wird, kann eine hochgenaue Synchronisierung
der Komponenten erreicht werden.
-
Ferner
erweist es sich als vorteilhaft, wenn die Einrichtung zur Steuerung
und/oder Regelung einer Werkzeugmaschine, Produktionsmaschine und/oder
eines Roboters verwendet wird, da zur Steuerung und/oder Regelung
solcher Maschinen oft eine hohe Rechenleistung gefordert ist.
-
Ein
Ausführungsbeispiel
der Erfindung ist in der Zeichnung dargestellt und wird im Folgenden
näher erläutert. Dabei
zeigt die Figur eine erfindungsgemäße Einrichtung zur Steuerung
und/oder Regelung einer Maschine mit angeschlossenen Antrieben.
-
Aus
dem Stand der Technik sind so genannte Multicore-Prozessoren bekannt,
die gegenüber
einem normalen Prozessor über
mehrere Cores, d.h. über
mehrere voneinander unabhängige
Rechenkerne verfügen.
-
In
der Figur ist in Form eines Blockschaltbildes eine Einrichtung 8 zur
Steuerung und/oder Regelung einer Maschine dargestellt. Die Einrichtung
kann dabei z.B. als numerische Steuerung z.B. einer Werkzeugmaschine,
Produktionsmaschine und/oder eines Roboters ausgebildet sein.
-
Die
Einrichtung 8 weist einen Multicore-Prozessor 1 auf,
der mindestens über
einen ersten Core 2, einen zweiten Core 3 und
einen dritten Core 12 verfügt. Gegebenenfalls noch vorhandene
weitere Cores des Multicore-Prozessors 1 sind in der Figur gestrichelt
gezeichnet angedeutet, wobei der Multicore-Prozessor 1 eine
Vielzahl von Cores aufweisen kann, also erheblich mehr als die in
der Figur dargestellten vier Cores.
-
Erfindungsgemäß erfolgt
eine Aufteilung der Cores des Multicore-Prozessors 1 auf
die Bearbeitung des Echtzeitprogramms und das Nichtechtzeitprogramms
dahingehend, dass das Echtzeitprogramm und das Nichtechtzeitprogramm
voneinander getrennt auf unterschiedlichen Cores ablaufen, wobei
in einem ersten Core ein erster Teil des Echtzeitprogramms und in
einem zweiten Core ein zweiter Teil des Echtzeitprogramms abläuft, wobei
in einem dritten Core das Nichtechtzeitprogramm oder ein Teil des
Nichtechtzeitprogramms abläuft.
Das Echtzeitprogramm läuft
somit nicht auf einem einzelnen Core ab sondern ist auf mehrere
Cores des Multicore-Prozessors 1 verteilt, während das
Nichtechtzeitprogramm auf einem einzelnen Core ablaufen kann oder aber
ebenfalls über
mehrere Cores verteilt ablaufen kann, wobei eine strikte Aufteilung
der Cores dahingehend erfolgt, dass auf einem Core entweder ein Teil
eines Echtzeitprogramms oder ein Nichtechtzeitprogramm oder ein
Teil eines Nichtechtzeitprogramms abläuft. Ein Echtzeitprogramm besteht
dabei in der Regel aus mehreren so genannten Tasks, wobei z.B. zwei
der Tasks einen ersten Teil des Echtzeitprogramms bilden, während ein
dritter Task einen zweiten Teil des Echtzeitprogramms bildet und
gegebenenfalls vorhandene weitere Tasks des Echtzeitprogramms z.B.
einen dritten Teil des Echtzeitprogramms bilden, der auf einem weiteren
Core abläuft.
-
Ein
Echtzeitprogramm erlaubt die Steuerung und/oder Regelung der beiden
Antriebe A1 und A2 der Maschine, wobei in dem ersten Core 2 ein
erster Teil EZP' des
Echtzeitprogramms und in dem zweiten Core 3 ein zweiter
Teil EZP'' des Echtzeitprogramms abläuft. Gegebenenfalls
noch vorhandene weitere Teile des Echtzeitprogramms können auf
den weiteren Cores des Multicore-Prozessors 1 ablaufen.
Auf dem dritten Cores 12 läuft ein Nichtechtzeitprogramm
NZEP oder falls das Nichtechtzeitprogramm ebenfalls wie das Echtzeitprogramm
auf mehrere Cores verteilt ist, ein Teil NEZP' des Nichtechtzeitprogramms NZEP ab.
Die Verwaltung des Echtzeitprogramms erfolgt mit Hilfe eines auf
den ersten Core 2 und dem zweiten Core 3 ablaufenden
Echtzeitbetriebssystems während
die Verwaltung des Nichtechtzeitprogramms im Rahmen des Ausführungsbeispiels
mit einem auf dem dritten Core 12 ablaufenden Nichtechtzeitbetriebssystem
erfolgt.
-
Das
Nichtechtzeitprogramm dient z.B. zum Aufbereiten von Daten für eine,
der Übersichtlichkeit halber
nicht mehr dargestellte, an die Einrichtung 8 angeschlossene
Bedien- und Beobachtungseinheit. Die Einrichtung 8 ist
mit einer Kommunikationseinrichtung 9, die z.B. in Form
einer Busbaugruppe vorliegen kann, verbunden. Die Einrichtung 8 und
insbesondere der erste Core 2 und der zweite Core 3 können Daten
mit der Kommunikationseinrichtung 9 über eine Verbindung 12 austauschen.
Weiterhin erfolgt über
die Verbindung 12 eine Übertra gung
eines ersten Takts T1. Die Kommunikationseinrichtung 9 dient zur
Ansteuerung eines Echtzeitbusses 11, wobei die Kommunikationseinrichtung 9 über den
Echtzeitbus 11 zum Datenaustausch mit den beiden Antrieben
A1 und A2 der Maschine verbunden ist. Der Echtzeitbus 11 kann
z.B. in Form eines echtzeitfähigen
Profibusses vorliegen. Die Antriebe A1 und A2 können dabei z.B. aus einer Regelbaugruppe,
einem an der Regelbaugruppe angeschlossenen Umrichter und einen
an den Umrichter angeschlossenen Motor bestehen. Weiterhin weisen
die Antrieb A1 und A2 noch entsprechende jeweils den Antrieben zugeordnete
Geber auf, die z.B. die Rotorlage des Motors des jeweiligen Antriebs
messen. Zur Steuerung und/oder Regelung der Antriebe A1 und A2 ist
es notwendig, dass Daten in Echtzeit übertragen und verarbeitet werden.
-
Die
Echtzeitanwendung und insbesondere das Echtzeitprogramm benötigt einen
zyklischen ersten Takt T1, der von einem Taktgeber 7, der
im Rahmen des Ausführungsbeispiels
integraler Bestandteil der Kommunikationseinrichtung 9 ist,
erzeugt wird. Der erste Takt T1 wird über die Verbindung 12 zur Einrichtung 8 an
den ersten Core 2 gesendet. Die Vorgabe des Abarbeitungsbeginns
des ersten Teils EZP' des
Echtzeitprogramms erfolgt mittels einem dem ersten Core 2 vorgegebenen
ersten Taktes T1 und die Vorgabe des Abarbeitungsbeginns des zweiten
Teils EZP'' des Echtzeitprogramms
erfolgt mittels einem dem zweiten Core 3 vorgegebenen zweiten Takt
T2, welcher im Rahmen des Ausführungsbeispiels
von dem ersten Core 2 erzeugt wird und dem zweiten Core 3 zur
Verfügung
gestellt wird. Durch diese Maßnahme
entfällt
ein sonst notwendiger weiterer Taktgeber zur Steuerung des Abarbeitungsbeginns
des zweiten Teils EZP'' des Echtzeitprogramms.
-
Mit
Hilfe des ersten Takt T1 wird auch der Kommunikationstakt d.h. der
Bustakt des Echtzeitbusses 11 festgelegt.
-
Alternativ
kann der erste Takt T1 aber auch von einem in der Figur gestrichelt
dargestellten Taktgeber 7',
der integrale Bestandteil der Einrichtung 8 ist, erzeugt
und vorgegeben werden. Weiterhin ist es selbstverständlich auch
möglich
den Takt T2 mittels eines separaten Taktgebers zu erzeugen oder
den Takt T2 ebenfalls mittels der Taktgeber 7' und 7 zu
erzeugen, wobei der Takt T1 in diesem Falle mit dem Takt T2 übereinstimmt.
Alternativ kann der Takt T2 aber auch aus dem Takt T1 durch z.B.
eine Taktteilerschaltung gewonnen werden.
-
Das
in der Figur dargestellte Prinzip der Aufteilung eines Echtzeitprogramms
und eines Nichtechtzeitprogramms auf unterschiedliche Cores lässt sich
auf gegebenenfalls noch vorhandene weitere Echtzeitprogramme und/oder
Nichtechtzeitprogramme des Multicore-Prozessors 1 in analoger
Form übertragen.
Falls z.B. ein weiteres Echtzeitprogramm vorhanden ist, das z.B.
zur Steuerung und/oder Regelung von weiteren Antrieben dient, kann
das erfindungsgemäße Aufteilungsprinzip
der Cores, wie in der Figur dargestellt und in der Beschreibung
beschrieben, in analoger Form auf das weitere Echtzeitprogramm und/oder
falls vorhanden auf weitere Nichtechtzeitprogramme und/oder auf
Teile von weiteren Nichtechtzeitprogrammen angewendet werden.