-
Die
Erfindung betrifft ein Automatisierungsgerät zur Steuerung, Überwachung
und/oder Beeinflussung eines technischen Prozesses, wobei das Automatisierungsgerät eine Verarbeitungseinheit, also
z.B. einen Mikroprozessor oder dergleichen, aufweist.
-
Der
Begriff "Automatisierungsgerät" umfasst sämtliche
Geräte,
Einrichtungen oder Systeme, also neben z.B. Steuerungen, wie speicherprogrammierbaren
Steuerungen, Prozessrechnern, (Industrie-)Computern und dergleichen
auch Antriebssteuerungen, Frequenzumrichter und Ähnliches, wie sie zur Steuerung,
Regelung und/oder Überwachung technologischer
Prozesse z.B. zum Umformen oder Transportieren von Material, Energie
oder Information etc. eingesetzt werden oder einsetzbar sind, wobei
insbesondere über
geeignete technische Einrichtungen, wie z.B. Sensoren oder Aktoren,
Energie aufgewandt oder gewandelt wird.
-
Gattungsgemäße Automatisierungsgeräte sind
allgemein bekannt. So bietet z.B. die Anmelderin der vorliegenden
Erfindung unter den Marken SIMATIC oder SINUMERIC Prozesssteuerungseinrichtungen
oder Motion-Control-Einrichtungen an, die nach der obigen Definition
ebenfalls unter den Begriff Automatisierungsgerät fallen. Nachdem der Funktionsumfang
von Automatisierungsgeräten
und damit auch die Leistungsanforderungen an solche Automatisierungsgeräte immer
mehr zunimmt, stoßen
bisherige Architekturen solcher Automatisierungsgeräte – auch in
einer Ausführungsform
als verteilte und vernetzte Automatisierungsgeräte – zunehmend an Leistungsgrenzen.
Insofern besteht ein ständiges Bestreben,
die Leistungsfähigkeit
der Automatisierungsgeräte
zu erhöhen.
Eine entsprechende Aufgabe liegt auch der vorliegenden Erfindung
zugrunde.
-
Für Automatisierungsgeräte der eingangs genannten
Art, die zur Ausführung
einer üblicherweise
in Software und/oder Hardware ausgeführten Automatisierungslösung, also
z.B. einem Steuerprogramm oder dergleichen, eine Verarbeitungseinheit, wie
z.B. einen Prozessor, einen ASIC, einen FPGA oder dergleichen aufweisen,
ist erfindungsgemäß vorgesehen,
dass die Verarbeitungseinheit mehrere Verarbeitungskerne aufweist.
Die oben genannte Aufgabe hinsichtlich einer Leistungssteigerung
im Bereich der Automatisierungsgeräte wird gleichfalls durch die
Verwendung einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
als Verarbeitungseinheit in einem Automatisierungsgerät der eingangs genannten
Art und/oder dem Oberbegriff des Anspruchs 1 gelöst.
-
Durch
die Verwendung einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
kann die Leistungsfähigkeit
des jeweiligen Automatisierungsgerätes insofern nahezu linear
erhöht
werden, weil bei bisherigen Automatisierungsgeräten und herkömmlichen
Verarbeitungseinheiten stets Verarbeitungseinheiten mit einem einzigen
Verarbeitungskern, dem jeweiligen Prozessorkern, vorgesehen waren.
Bei mehreren Verarbeitungskernen kann die jeweils geforderte Funktionalität auf die
Verarbeitungskerne aufgeteilt werden, so dass zumindest näherungsweise
jeder Verarbeitungskern den Leistungsumfang einer bisherigen Verarbeitungseinheit
mit nur einem Verarbeitungskern bietet. Darüber hinaus kann bei der Verwendung
einer Verarbeitungseinheit mit mehreren Verarbeitungskernen die
auf unterschiedliche Verarbeitungskerne verteilte Funktionalität auch weitestgehend
parallel ablaufen, weil die Verarbeitungskerne, sofern nicht eine
systembedingte oder anwendungsspezifische Interprozessorkommunikation
erforderlich ist, unabhängig
voneinander laufen und dabei z.B. auf eigene und/oder geschützte Speicherbereiche
zugreifen, eigene Zwischenspeicher, den so genannten Cache, verwalten
und adressieren und insbesondere jede Verarbeitungskern über einen
eigenen Satz von Prozessorregistern verfügt, so dass der gleichzeitige
und damit im Wesentlichen parallele Betrieb möglich wird. Abgesehen von einer
Verarbeitungseinheit mit mehreren Verarbeitungsker nen, bei der die
einzelnen Verarbeitungskerne im Wesentlichen gleiche Funktionalität aufweisen, so
dass Teilfunktionalitäten
einer jeweiligen Automatisierungslösung grundsätzlich jedem Verarbeitungskern
zuweisbar sind, kann auch vorgesehen sein, dass eine Verarbeitungseinheit
mit mehreren Verarbeitungskernen zum Einsatz kommt, bei der die
Verarbeitungskerne für
unterschiedliche Anwendungen oder Einsatzbereiche optimiert sind.
So kann z.B. ein erster Verarbeitungskern für vergleichsweise einfache
logische Verknüpfungen,
wie sie insbesondere bei der Steuerung und/oder Überwachung technischer Prozesse
wichtig sind, optimiert sein, während ein
weiterer Prozessorkern für
arithmetische Verknüpfungen
und schließlich
nochmals ein weiterer Prozessorkern für Kommunikationsaufgaben optimiert
ist, usw.
-
Bevorzugte
Ausgestaltungen des oben genannten erfindungsgemäßen Automatisierungsgerätes oder
der oben beschriebenen erfindungsgemäßen Verwendung einer Verarbeitungseinheit
mit mehreren Verarbeitungskernen als Verarbeitungseinheit in einem
Automatisierungsgerät
sind Gegenstand der auf die zugehörigen Ansprüche rückbezogenen Unteransprüche.
-
Wenn
als Verarbeitungseinheit ein so genannter Cell-Prozessor vorgesehen
ist, der als Verarbeitungskerne zumindest zwei Prozessorkerne umfasst,
kann für
den Bereich der Automatisierungstechnik auf bekannte Technologien,
nämlich
die vorgenannten Cell-Prozessoren, wie sie z.B. in der
US 6,826,662 beschrieben sind, zurückgegriffen
werden.
-
Wenn
einer der Verarbeitungskerne zur Ausführung eines ersten Betriebssystems,
insbesondere eines Echtzeit-Betriebssystems, und ein weiterer Verarbeitungskern
zur Ausführung
eines weiteren Betriebssystems vorgesehen ist, kann z.B. auf einem Automatisierungsgerät eine Prozesssteuerungsfunktionalität zusammen
mit einer Leitstellenfunktionalität oder dergleichen realisiert
sein. Eine Prozesssteuerungsfunktionalität profitiert eher vom Leistungsumfang
eines Echtzeit-Betriebssystems oder eines sonstigen, auf zumindest
vorhersehbare Latenzzei ten optimierten Betriebssystems. Solche Randbedingungen
stehen für
Anwendungsfälle,
wie sie z.B. bei einer Leitstelle relevant sind, eher nicht im Vordergrund,
weil es hier z.B. auf eine übersichtliche
Darstellung von Statusmeldungen, Verbrauchswerten und dergleichen
ankommt, und insoweit eher eine optimierte Mensch-Maschine-Schnittstelle
gefragt ist, wie sie von heute üblichen
fensterorientierten Benutzeroberflächen durchgängig angeboten wird. Mit der Möglichkeit,
auf zumindest zwei unabhängig
voneinander betreibbaren Verarbeitungskernen zwei Betriebssysteme
und die damit assoziierten Funktionalitäten auf einem Automatisierungsgerät vorhalten
zu können,
ergibt sich z.B. auch die Möglichkeit,
im Falles eines z.B. bei Test- oder Diagnosetätigkeiten erforderlich werdenden
Neustarts einer der beiden Funktionalitäten, so z.B. der Prozesssteuerungsfunktionalität, einen
solchen Neustart durchzuführen, ohne
dass davon die Funktionalität,
die dem anderen Verarbeitungskern zugewiesen ist, beeinflusst würde.
-
Zur
Steuerung, Überwachung
und/oder Beeinflussung des technischen Prozesses ist üblicherweise
eine als Kollektion aus grundsätzlich
eigenständigen
Automatisierungsmodulen auffassbare Automatisierungslösung, also
insbesondere das jeweilige Anwenderprogramm, insbesondere das Anwenderprogramm
mit in dem Anwenderprogramm enthaltenen oder von diesem umfassten
Bibliotheken oder Bibliotheksbestandteilen zur Realisierung häufig wiederkehrender
Funktionalitäten,
wie z.B. bestimmte Reglerstrukturen, Achssteuerungen oder dergleichen,
vorgesehen. Zusätzlich
oder alternativ zu der oben beschriebenen Verteilung von unterschiedlichen
Betriebssystemen auf einzelne Verarbeitungskerne kann in diesem
Zusammenhang auch vorgesehen sein, dass die Automatisierungsmodule als
Bestandteile der Automatisierungslösung zur Ausführung auf
die einzelnen Verarbeitungskerne verteilt oder verteilbar sind.
Hier kann z.B. vorteilhaft vorgesehen sein, dass bestimmte Funktionalitäten auf
diejenigen Verarbeitungskerne verteilt werden, die zur Verarbeitung
dieser Funktionalitäten
optimal ausgelegt sind. In diesem Zusammenhang kann es sich z.B.
als sinnvoll herausstellen, z.B. Reglerfunktionalitäten auf
Verarbeitungs kerne, die zur Verarbeitung arithmetischer Funktionen
optimiert sind, zu verteilen. Zusätzlich oder alternativ kann
im gleichen Zusammenhang sinnvoll sein, solche Reglerfunktionen auf
Verarbeitungskerne zu verteilen, auf denen ein Echtzeit-Betriebssystem ausgeführt wird,
damit die zur Stabilität
von digitalen Regelungen erforderliche Äquidistanz der Regelungseingriffe
gewährleistet
ist. Bei dieser Ausgestaltung handelt es sich also im Wesentlichen
um ein Automatisierungsgerät
mit einer Verarbeitungseinheit, bei der die einzelnen Verarbeitungskerne
zur Ausführung
zeitkritischer Automatisierungsmodule und andere Verarbeitungskerne
zur Ausführung
zeitunkritischer Automatisierungsmodule vorgesehen sind oder um
die Verwendung einer Verarbeitungseinheit mit solchen Verarbeitungskernen.
-
Zur
Verteilung der Automatisierungsmodule auf die einzelnen Verarbeitungskerne
ist gemäß einem
weiteren, ggf. unabhängigen
Aspekt der Erfindung ein Engineeringsystem zum Zusammenwirken mit
einem Automatisierungsgerät
der oben genannten Art vorgesehen, das Mittel zum Verteilen der
Automatisierungsmodule auf die Verarbeitungskerne aufweist. Bei
den Mitteln kann es sich um eine üblicherweise in Software realisierte
Funktionalität
handeln, mittels derer ein Bediener für die einzelnen Automatisierungsmodule
den jeweiligen Verarbeitungskern auswählt und das Engineeringsystem
anhand eines diese Auswahl repräsentierenden
Datums die Verteilung der jeweiligen Funktionalität an die
zur Verfügung
stehenden Verarbeitungskerne vornimmt. Das Engineeringsystem kann
dabei in Weiterführung der
oben skizzierten Szenarien selbst auf dem Automatisierungsgerät ablaufen
und dabei die Funktionalität
eines oder mehrerer Verarbeitungskerne ausnutzen und z.B. während des
Betriebs des Automatisierungsgeräts
zur Steuerung, Überwachung
und/oder Beeinflussung des technischen Prozesses in einen inaktiven
Zustand geschaltet werden, der auf Seiten der Verarbeitungseinheit
und der betroffenen Verarbeitungskerne nur noch minimale Ressourcen
belegt.
-
In
einer bevorzugten Ausgestaltung kann vorgesehen sein, dass das Engineeringsystem
Mittel zum Erkennen eines Leistungsbedarfs eines Automatisierungsmoduls
sowie Mittel zum Erkennen eines Leistungsumfangs einzelner oder
aller Verarbeitungskerne aufweist. Solche Mittel zum Erkennen eines
Leistungsbedarfs sind im einfachsten Fall Komparatoren, die mit
einzelnen Automatisierungsmodulen bei deren Erstellung assoziierte
Daten mit einer endlichen Anzahl möglicher Daten vergleichen und z.B.
ein Automatisierungsmodul mit einer Regelungsfunktionalität anhand
eines für
Regelungsfunktionalitäten
vorgegebenen oder vorgebbaren Bezeichners erkennen, so dass insoweit
eine eindeutige Zuordnung möglich
ist.
-
Die
vorgenannten Mittel können
die Bewertung des Leistungsbedarfs eines Automatisierungsmoduls
auch in gewissem Umfang eigenständig
vornehmen, indem z.B. die darin enthaltenen Steuerungsbefehle ausgewertet
werden und ein Automatisierungsmodul mit Regelungsfunktionalität, das notwendig
z.B. einen gewissen Umfang arithmetischer Funktionen beinhaltet,
als Automatisierungsmodul erkennen, das einen vergleichsweise hohen
Leistungsumfang erfordert. Zusätzlich
oder alternativ kann, insbesondere bei komplexen Automatisierungsmodulen,
die selbst aus einzelnen Automatisierungsmodulen zusammengesetzt
sind, die Bewertung des erforderlichen Leistungsbedarfs auch danach
erfolgen, dass für
alle von dem Automatisierungsmodul umfassten Automatisierungsmodule
ein Bezeichner der oben beschriebenen Art hinterlegt ist und dass
diese Bezeichner bei der Erkennung des geforderten Leistungsumfangs
ausgewertet werden, indem als geforderter Leistungsbedarf z.B. der
Leistungsbedarfs ausgewählt
wird, der von den von dem Automatisierungsmodul umfassten Modulen
als maximaler Leistungsbedarf durch den jeweiligen Bezeichner kodiert
ist oder es kann bei einem Automatisierungsmodul mit Automatisierungsmodulen
mit untereinander stark variierendem Leistungsbedarf aus den jeweiligen
für diese
geforderten einzelnen Leistungsbedarfe auch ein mittlerer Leistungsbedarf gebildet
werden.
-
Das
Erkennen des Leistungsumfangs einzelner oder aller Verarbeitungskerne
ist üblicherweise durch
Abfrage einer dem jeweiligen Verarbeitungskern zugeordneten Kennung
möglich,
wobei sich aus der bei einer solchen Abfrage erhaltenen Kennung und
einer insbesondere in einer Tabelle vorgehaltenen Menge aller möglichen
Kennungen auf einfache Art und Weise ein Maß für den Leistungsumfang des jeweiligen
Verarbeitungskerns ableiten lässt.
-
Mit
den oben genannten Daten hinsichtlich des Leistungsbedarfs einzelner
Automatisierungsmodule und des Leistungsumfangs einzelner oder aller
Verarbeitungskerne ist es auf Seiten des Engineeringsystems möglich, weitestgehend
automatisch das Verteilen der Automatisierungsmodule auf die Verarbeitungskerne
entsprechend dem Leistungsbedarf bzw. dem Leistungsumfang vorzunehmen.
Dazu sind für
das Engineeringsystem entsprechende Mittel, also üblicherweise
entsprechende Programmcodemittel, die die Auswertung des ermittelten
Leistungsbedarfs sowie die Auswertung des erkannten Leistungsumfangs
vornehmen und dann einen Transfer des jeweiligen Automatisierungsmoduls oder
einer Kollektion von Automatisierungsmodulen auf den jeweiligen
Verarbeitungskern vornehmen oder auslösen, vorgesehen.
-
Die
mit der Anmeldung eingereichten Patentansprüche sind Formulierungsvorschläge ohne
Präjudiz
für die
Erzielung weitergehenden Patentschutzes. Die Anmelderin behält sich
vor, noch weitere, bisher nur in der Beschreibung und/oder Zeichnung offenbarte
Merkmalskombination zu beanspruchen.
-
Das
oder jedes Ausführungsbeispiel
ist nicht als Einschränkung
der Erfindung zu verstehen. Vielmehr sind im Rahmen der vorliegenden
Offenbarung zahlreiche Abänderungen
und Modifikationen möglich,
insbesondere solche Varianten, Elemente und Kombinationen, die zum
Beispiel durch Kombination oder Abwandlung von einzelnen in Verbindung
mit den im allgemeinen oder speziellen Beschreibungsteil beschriebenen
sowie in den Ansprüchen und/oder
der Zeichnung enthaltenen Merkmalen bzw. Elementen oder Verfahrensschritten
für den Fachmann
im Hinblick auf die Lösung
der Aufgabe entnehmbar sind und durch kombinierbare Merkmale zu
einem neuen Gegenstand oder zu neuen Verfahrensschritten bzw. Verfahrensschrittfolgen
führen, auch
soweit sie Prüf-
und Arbeitsverfahren betreffen.
-
In
Unteransprüchen
verwendete Rückbeziehungen
weisen auf die weitere Ausbildung des Gegenstandes des Hauptanspruches
durch die Merkmale des jeweiligen Unteranspruches hin; sie sind nicht
als ein Verzicht auf die Erzielung eines selbständigen, gegenständlichen
Schutzes für
die Merkmalskombinationen der rückbezogenen
Unteransprüche
zu verstehen. Des Weiteren ist im Hinblick auf eine Auslegung der
Ansprüche
bei einer näheren Konkretisierung
eines Merkmals in einem nachgeordneten Anspruch davon auszugehen,
dass eine derartige Beschränkung
in den jeweils vorangehenden Ansprüchen nicht vorhanden ist.
-
Da
die Gegenstände
der Unteransprüche
im Hinblick auf den Stand der Technik am Prioritätstag eigene und unabhängige Erfindungen
bilden können, behält die Anmelderin
sich vor, sie zum Gegenstand unabhängiger Ansprüche oder
Teilungserklärungen zu
machen. Sie können
weiterhin auch selbständige Erfindungen
enthalten, die eine von den Gegenständen der vorhergehenden Unteransprüche unabhängige Gestaltung
aufweisen.
-
Nachfolgend
wird ein Ausführungsbeispiel der
Erfindung anhand der Zeichnung näher
erläutert. Einander
entsprechende Gegenstände
oder Elemente sind in allen Figuren mit den gleichen Bezugszeichen
versehen.
-
Darin zeigen
-
1 ein
im Stand der Technik bekanntes Automatisierungssystem mit verteilten
Automatisierungsgeräten,
-
2 ein
Automatisierungsgerät
mit einer Verarbeitungseinheit mit einer Mehrzahl von Verarbeitungskernen
und
-
3 schematisch
vereinfacht eine Prinzipdarstellung zur Verteilung von Softwarekomponenten auf
einzelne oder alle zur Verfügung
stehenden Verarbeitungskerne.
-
1 zeigt
in schematisch vereinfachter Darstellung ein insgesamt mit 10 bezeichnetes
Automatisierungssystem zur Steuerung, Überwachung und/oder Beeinflussung
eines technischen Prozesses 12, im Folgenden kurz nur noch
als Steuerung eines technischen Prozesses 12 bezeichnet,
umfassend eine Mehrzahl von Automatisierungsgeräten 14, 16, 18,
wobei ein erstes Automatisierungsgerät 14 z.B. in Form
einer Zentraleinheit einer speicherprogrammierbaren Steuerung und
weitere Automatisierungsgeräte 16, 18 z.B.
in Form dezentraler Peripherie, z.B. Feldgeräte oder Antriebssteuerungen, ausgeführt sind.
-
Bei
dem in 1 dargestellten Automatisierungssystem 10 umfasst
jedes Automatisierungsgerät 14, 16, 18 eine
Verarbeitungseinheit 20, also z.B. einen so genannten Mikroprozessor,
der in an sich bekannter Art und Weise einen Verarbeitungskern 22 aufweist.
Der Verarbeitungseinheit 20 ist darüber hinaus in an sich bekannter
Art und Weise ein Hauptspeicher 24, ein Zwischenspeicher 26,
also z.B. ein so genannter Cache, eine Ein-/Ausgabeverarbeitung 28,
häufig
auch als I/O-Verarbeitung
oder kurz nur als IO bezeichnet, sowie eine Interrupt-Verarbeitung 30 zugeordnet.
-
Zur
Steuerung des technischen Prozesses 12 ist eine in 1 nur
schematisch dargestellte Automatisierungslösung 32 vorgesehen,
die einzelne Automatisierungsmodule 34 umfasst. Zur Ausführung der
Automatisierungslösung 32 durch
das Automatisierungssystem 10 oder die davon umfassten Automatisierungsgeräte 14, 16, 18 wird
die Automatisierungslösung 32 auf
den Automatisierungsgeräten 14, 16, 18 implementiert,
insbesondere indem einzelne Automatisierungsmodule 34 auf
die Automatisierungsgeräte 14, 16, 18 verteilt
werden. Im dargestellten Beispiel ist gezeigt, dass auf dem zentralen
Automatisierungsgerät 14 drei
Automatisierungsmodule 34 implementiert sind, die, nachdem
das Automatisierungsgerät 14 nur
eine her kömmliche
Verarbeitungseinheit 20 mit genau einem Verarbeitungskern 22 aufweist,
sequentiell durch die Verarbeitungseinheit 20 ausgeführt werden,
was durch die Pfeile zwischen den Automatisierungsmodulen 34 angedeutet
ist. Entsprechendes gilt für
das weitere Automatisierungsgerät 16,
auf dem gemäß der exemplarischen
Darstellung zwei Automatisierungsmodule 34 implementiert
sind, die, wie durch die Pfeile angegeben, aufgrund der Verarbeitungseinheit 20 mit
nur einem Verarbeitungskern 22 sequentiell, also nacheinander,
ausgeführt
werden. Für
das weiter dargestellte Automatisierungsgerät 34, auf dem nur ein
Automatisierungsmodul 34 implementiert ist, kann die dort
vorgesehene Verarbeitungseinheit 20 mit einem Verarbeitungskern 22 das
implementierte Automatisierungsmodul 34 ausschließlich ausführen.
-
2 zeigt
eine schematische Darstellung eines Automatisierungsgerätes 40 in
der erfindungsgemäßen Ausgestaltung,
das ebenfalls zur Steuerung des technischen Prozesses 12 vorgesehen
ist und analog zu der in 1 dargestellten Konstellation
dazu mit weiteren, nicht dargestellten Automatisierungsgeräten, entweder
in der erfindungsgemäßen Ausgestaltung
oder in der herkömmlichen
Ausgestaltung gemäß 1,
zusammenwirken kann.
-
Das
erfindungsgemäße Automatisierungsgerät 40 unterscheidet
sich von den herkömmlichen Automatisierungsgeräten 14, 16, 18 dadurch,
dass es eine Verarbeitungseinheit 20 mit mehreren Verarbeitungskernen 22, 22', 22'' aufweist. In der Darstellung ist
bereits angedeutet, dass die Zahl der Verarbeitungskerne 22, 22', 22'' für die jeweilige Verarbeitungseinheit 20 variieren
kann, wobei üblicherweise Verarbeitungseinheiten 20 mit
einer Vielzahl von Verarbeitungskernen 22, 22', 22'' entsprechend einer Potenz von
zwei, also 2, 4, 8, 16, usw. Verarbeitungskerne 22, 22', 22'' vorgesehen sind. Jeder Verarbeitungskern 22, 22', 22'' vereinigt in sich die Funktionalität und Leistungsfähigkeit
eines entsprechenden Verarbeitungskerns 22 (vgl. 1)
bisheriger Verarbeitungseinheiten 20 (1).
-
Wie
in 2 schematisch dargestellt, greifen sämtliche
Verarbeitungskerne 22, 22', 22'' auf
einen gemeinsamen Hauptspeicher 24 zu, wobei zum wechselseitigen
Schutz der jeweiligen Speicherinhalte vorgesehen sein kann, dass
jedem Verarbeitungskern 22, 22', 22'' exklusiv
ein bestimmter, ggf. auch dynamisch veränderlicher Bereich des Hauptspeichers 24 zugeteilt
ist. Für
einen evtl. erforderlichen Datenaustausch zwischen den einzelnen
Verarbeitungskernen 22, 22', 22'' kann
eine nicht dargestellte kommunikative Verbindung vorgesehen sein,
z.B. ein verarbeitungseinheitsinterner Bus, oder es kann alternativ
vorgesehen sein, dass alle Verarbeitungskerne 22, 22', 22'' auf einen dafür vorgesehen Bereich des Hauptspeichers
zugreifen, um Daten untereinander auszutauschen, so dass z.B. eine
Synchronisation der Verarbeitungskerne 22, 22', 22'' mit an sich bekannten Mitteln
der Interprozesskommunikation, z.B. Prozesssuspendierung an einem
Semaphor oder Prozesssuspendierung an einer Mailbox und dergleichen,
möglich
wird.
-
Entsprechend
der in 1 exemplarisch dargestellten Automatisierungslösung 32 mit
einer Anzahl von Automatisierungsmodulen 34 ist für das Automatisierungsgerät 40 gemäß der Erfindung
deren Verteilung auf die einzelnen Verarbeitungskerne 22, 22', 22'' vorgesehen. Wenn die jeweilige
Verarbeitungseinheit 20 des Automatisierungsgerätes 40 eine
der Anzahl der Automatisierungsmodule 34 entsprechende
Anzahl von Verarbeitungskernen 22, 22', 22'' aufweist, kann jedes Automatisierungsmodul 34 genau
einem Verarbeitungskern 22, 22', 22'' zugeordnet
werden und dort zur Ausführung
implementiert sein. Wenn mehr Automatisierungsmodule 34 von
der Automatisierungslösung 32 umfasst
sind als Verarbeitungskerne 22, 22', 22'' zur
Verfügung
stehen, erfolgt gemäß einem
weiteren Aspekt der Erfindung eine geeignete Verteilung der Automatisierungsmodule 34 auf
die zur Verfügung
stehenden Verarbeitungskerne 22, 22', 22''.
-
3 ist
als schematisch vereinfachte Darstellung zur Verdeutlichung eines
möglichen
Prinzips bei der Verteilung von Automatisierungsmodulen 34 auf
die einzelnen Verarbeitungskerne 22, 22', 22'' vorgesehen. Eine solche Verteilung
erfolgt bevorzugt mittels eines Engineeringsystems 42,
das insbesondere in Software ausgeführt ist und entweder auf einem
mit dem Automatisierungsgerät 40 (vgl. 2) kommunikativ
verbundenen Gerät,
z.B. einem Personal-Computer oder dergleichen, oder sogar auf dem Automatisierungsgerät 40 selbst,
also einem der dort vorgesehen Verarbeitungskerne 22, 22', 22'' implementiert sein kann.
-
Zur
automatischen Verteilung der Automatisierungsmodule 34 auf
einzelne Verarbeitungskerne 22, 22', 22'' ist
z.B. vorgesehen, dass jedem Automatisierungsmodul 34 eine
Leistungsbedarfskennung 44, die z.B. von einem Programmierer
bei der Erstellung des jeweiligen Automatisierungsmoduls 34 versorgt
wird. Analog ist für
jeden Verarbeitungskern 22, 22', 22'' eine
Leistungsumfangskennung 46 vorgesehen, wobei als Leistungsumfangskennung 46 z.B. eine
im Verarbeitungskern 22, 22', 22'' hinterlegte
Typenkennzeichnung herangezogen werden kann. Beim Verteilen der
Automatisierungsmodule 34 auf die Verarbeitungskerne 22, 22', 22'' wertet das Engineeringsystem 42 die
Leistungsbedarfskennung 44 aus und verteilt die jeweiligen
Automatisierungsmodule 34 auf die Verarbeitungskerne 22, 22', 22'' entsprechend dem Leistungsbedarf
bzw. dem vom jeweiligen Verarbeitungskern 22, 22', 22'' angebotenen Leistungsumfang entsprechend
der diesbezüglichen Leistungsumfangskennung 46.
-
Die
Leistungsbedarfskennung 44 kann auch automatisch generiert
werden, z.B. in Ansehung der in dem Automatisierungsmodul 34 verwendeten
Instruktionen oder dergleichen wie bereits eingangs erläutert.
-
Der
Vorteil der Erfindung besteht darin, dass bei bekannten Automatisierungssystemen 10 (vgl. 1),
wenn deren Performance nicht ausreicht, heute zusätzliche
Verarbeitungseinheiten, also Prozessoren in weiteren Automatisierungsgeräten, eingesetzt
werden müssen,
um sowohl für
eine Prozesssteue rungs- und/oder eine Motion-Control-Anwendung ausreichend
Performance bereitzustellen. Da gemäß dem Stand der Technik nur
Verarbeitungseinheiten mit genau einem Verarbeitungskern eingesetzt
werden, ist bisher eine Erweiterung durch z.B. Einsteckkarten und
dergleichen in den jeweiligen Automatisierungsgeräten erforderlich
gewesen, welche bei der Integration zu hohem Aufwand führen. Typischerweise
kommen dabei so genannte Embedded-Prozessoren zum Einsatz, die mit
zusätzlichen Tools
programmiert und/oder bedient werden müssen.
-
Durch
den Einsatz von Verarbeitungseinheiten mit mehr als einem Verarbeitungskern,
also z.B. so genannten Multikernprozessoren oder Cell-Prozessoren,
und die vorteilhafte Nutzung solcher Verarbeitungseinheiten für die Abbildung
der Automatisierungsaufgaben lassen sich mit einem Automatisierungsgerät 40 mit
einer Verarbeitungseinheit 20 mit mehreren Verarbeitungskernen 22, 22', 22'' Automatisierungssysteme aufbauen,
für die
bislang eine Mehrzahl von einzelnen Automatisierungsgeräten 14, 16, 18 mit
jeweils einer Verarbeitungseinheit 20 und jeweils einem
Verarbeitungskern 22 notwendig waren. Darüber hinaus
kann für
bestimmte Anwendungen und eine günstige
Abbildung der Automatisierungslösung 32 und
der davon umfassten Automatisierungsmodule 34 auf ein solches
Automatisierungsgerät 40 (Multicore-Architektur)
oder ein Automatisierungssystem mit mindestens einem solchen Automatisierungsgerät 40 ein
signifikanter Performance-Gewinn und eine deutliche Verbesserung
der Deterministik erreicht werden. Ein zentraler Aspekt der Erfindung
besteht darin, bestimmte Aufgaben, also z.B. Berechnungen, logische
Verknüpfungen und
dergleichen bestimmten Verarbeitungskernen 22, 22', 22'' innerhalb einer solchen Multicore-Architektur
zuzuweisen. Die Zuweisung erfolgt z.B. durch eine dafür auswertbare
Projektierung im Engineeringsystem 42 (vgl. z.B. 3 und
die dortige Erläuterung).
Alternativ oder zusätzlich
können
auch vordefinierte Nutzungsprofile, die die Abbildung von Automatisierungsaufgaben
auf die einzelnen Verarbeitungskerne 22, 22', 22'' beschreiben, oder die Art der
jeweils instanziierten Technologieobjekte – als besondere Ausprägung eines
Auto matisierungsmoduls 34 – oder die vom jeweiligen Automatisierungsmodul 34 oder
der zugrunde liegenden Applikation genutzte Funktionalität, z.B.
ein so genannter Software-Nocken für Nockensteuerwerke, Art und
Umfang von Interrupts, sowie ein bestimmter Sicherheitsstandard
herangezogen werden kann. Darüber hinaus
oder zusätzlich
können
selbstverständlich auch
Performancegrößen wie
z.B. Zykluszeiten oder Interruptreaktionszeiten oder projektierte
Subkomponenten in Betracht gezogen werden und z.B. in der Leistungsbedarfskennung 44 hinterlegt
werden oder für
die automatische Ableitung der Leistungsbedarfskennung 44 herangezogen
werden.
-
Im
Folgenden werden vorteilhafte Anwendungen oder Aufgabenteilungen
bei Automatisierungsgeräten 40 mit
einer Verarbeitungseinheit 20 mit mehreren Verarbeitungskernen 22, 22', 22'' aufgelistet:
- – Verbesserung
der Kommunikationsleistung zwischen gekoppelten Subkomponenten
– schnelle
Kopplung der verteilten Aufgaben möglich (Speicher, Interrupts)
– Verbesserung
der Parallelität
in der Abarbeitung
– Verbesserung
der Gesamtperformance, da durch die Architektur bisherige Engpässe wie
z.B. Kommunikation zwischen verteilten Automatisierungsgeräten, nicht
mehr auftreten
– eine
elektronische Königswelle
(z.B. bei Druckmaschinen) lässt
sich zumindest teilweise in einen automatisierungsgeräteinternen
Bus integrieren, welcher die einzelnen Verarbeitungskerne 22, 22', 22'' miteinander verbindet
– durch
die Integration von Aufgaben, welche bislang auf verschiedene Automatisierungsgeräte 14, 16, 18 verteilt
waren, in einer Verarbeitungseinheit 20 mit mehreren Verarbeitungskernen 22, 22', 22'' ist vorhersehbar, dass sich der
Taktzyklus vieler Maschinen erheblich verkürzen lässt, da Bussysteme für die Kommunikation
mit der Peripherie entlastet werden
- – Homogene
Systemskalierung
– mit
einem Modell können
Anwendungen, Performance und Deterministik skaliert werden
– stärkere Entkopplung
des Systemverhaltens der Subkomponenten
- – Anwendungsabhängige Verteilung
der Automatisierungs-/Motion-Control-Aufgabe 32 auf die einzelnen
Verarbeitungskerne 22, 22', 22''
– jeder
Achse eines Antriebssystems wird ein Kern für die Motion-Control-Aufgaben
zugeordnet (insbesondere Nachbildung einer Master-Slave-Struktur
für mehrere
Antriebe; dies ist vor allem bei einer Maschine mit einer Vielzahl
von Antriebsachsen vorteilhaft)
– einem der Verarbeitungskerne 22, 22', 22'' werden zentrale Steuerungs- und
Regelungsaufgaben, z.B. zur Koordinierung verschiedener Achsen,
zugeordnet
– Simulation
und Steuerung kann auf einem (weiteren) Verarbeitungskern 22, 22', 22'' ablaufen
– Simulationen sind nunmehr
auf der gleichen Verarbeitungseinheit 20 ausführbar (ein
(erster) Verarbeitungskern 22, 22', 22'' berechnet
z.B. die Simulation und ein anderer Verarbeitungskern 22, 22', 22' die Anwendung
selbst; ein Vergleich der Ergebnisse kann beispielsweise in einem
der Verarbeitungskerne 22, 22', 22'' oder
einem dritten Verarbeitungskern 22, 22', 22'' durchgeführt werden)
– Simulationsintegration
– Integration
der Rechnung des Maschinenmodells
– Teile der Maschine real laufen
lassen
– Teile
durch ein Echtzeitmodell abdecken und damit schrittweisen Maschinenaufbau/Maschineninbetriebnahme
unterstützen
- – Abbildung
von sicherheitsrelevanten Anwendungen
– eine sicherheitsrelevante
Anwendung läuft gleichzeitig
auf zwei unterschiedlichen Betriebssystemen, jedoch auf einer Verarbeitungseinheit 20 mit
verschiedenen Verarbeitungskernen 22, 22', 22''
– einfache Realisierung von
sicheren Bewegungsfunktionen
– das sichere Programm läuft auf
PPE und parallel auf SPE
– Überprüfung der
Ergebnisse der Logikabläufe auf
PPE/SPE
- – Mapping
verschiedener Betriebssysteme auf unterschiedliche Verarbeitungskerne 22, 22', 22''
– ein oder mehrere Verarbeitungskerne 22, 22', 22'' für ein Host-Betriebssystem mit
der Möglichkeit,
das Host-Betriebssystem neu zu starten, ohne ein z.B. auf einem
anderen Verarbeitungskern 22, 22', 22'' ablaufendes
Realzeitbetriebssystem zu beeinflussen, z.B. bei Rekonfiguration, Systemabsturz
oder dergleichen, bzw. mutatis mutandis ein Neustart des Echtzeitbetriebssystems
ohne Rückwirkungen
auf andere Betriebssysteme
– Entkopplung des Systemhandlings
der einzelnen Betriebssysteme
– geringer Einfluss des Host-Betriebssystems
auf das Realzeitbetriebssystem, z.B. aufgrund getrennter Cache-Speicher
oder getrennter Interrupts
– schnelle Kopplung zwischen
Host-Betriebssystem und Realzeitbetriebssystem möglich, z.B. über Speicher
oder Interrupts,
– paralleler
Ablauf von Host-Betriebssystem und Realzeitbetriebssystem statt
wie bisher bei einer Verarbeitungseinheit 20 mit nur einem
Verarbeitungskern 22 (1) sequentiell,
wobei sich daraus bevorzugt eine Verringerung von Latenzen bei einer
Kommunikation zwischen Host-Betriebssystem und Realzeitbetriebssystem
ergibt
- – Mapping
von geräteinternen
Subkomponenten auf unterschiedliche Verarbeitungskerne 22, 22', 22''
– ein (erster) Verarbeitungskern 22, 22', 22'' für eine Benutzerschnittstelle
(HMI)
– ein
(weiterer) Verarbeitungskern 22, 22', 22'' für Motion-Control
– ein (nochmals
weiterer) Verarbeitungskern 22, 22', 22'' für Antriebsachsen
– ein (nochmals
weiterer) Verarbeitungskern 22, 22', 22'' zur
Verteilung von Automatisierungsmodulen 34 zur Realisierung
der Funktionalität
von Einzelachsen auf die zur Verfügung stehenden Verarbeitungskerne 22, 22', 22''
– ein (nochmals weiterer) Verarbeitungskern 22, 22', 22'' für eine Prozessvisualisierung
(Vision-System)
– Kombination
aus Steuerung/HMI/Antrieben/Vision-System/Multimedia-System
– Schnelle
Kopplung der verteilten Aufgaben möglich, wobei eine solche Kopplung
z.B. über den
Hauptspeicher 24 und/oder über Interrupts erfolgen kann
- – Automatisierungsaufgabenunabhängige Performance-
und Deterministikoptimierung durch Mapping von parallelen Echtzeitaufgaben
auf verschiedene Verarbeitungskerne 22, 22', 22''
– Aufteilung von zyklischen
und azyklischen Tasks, als besondere Ausprägung eines Automatisierungsmoduls 34,
auf verschiedene Verarbeitungskerne 22, 22', 22'', wobei dadurch eine optimale Lastverteilung
und eine Erhöhung
der Deterministik erreicht wird
– Trennung von Aufgaben mit
der Möglichkeit, eine
Interrupt-Last oder eine I/O-Last zu verteilen
– Verteilen
von Interrupts an verschiedene Verarbeitungskerne 22, 22', 22''
– höherer Grad an Parallelität speziell
bei der Interaktion zwischen Realzeitbetriebssystem und Host-Betriebssystem
– schnelle
Kopplung der verteilten Aufgaben möglich, wobei auch eine solche
Kopplung bevorzugt über
den Speicher und/oder über
Interrupts erfolgt
– durch
die Abbildung von Echtzeitaufgaben auf mehrere Verarbeitungskerne 22, 22', 22'' kann Parallelität/Performance
und Deterministik entscheidend verbessert werden
– Mapping
von Regelungsaufgaben 34 auf einen (ersten) Verarbeitungskern 22, 22', 22'' und Mapping der I/O oder Interrupt-Verarbeitung 34 auf
einen oder mehrere andere Verarbeitungskerne 22, 22', 22''
- – Funktionale
Erweiterung bestehender Steuerungsplattformen um Qualitätsüberwachung
und dergleichen, insbesondere durch Integration von Vision-Systemen
– Integration
eines Vision-Systems zur besseren Unterstützung der Bildverarbeitung
– bei einer
Anwendung in der pharmazeutischen Industrie, z.B. bei einer Blistermaschine,
ist mit solchen Bildverarbeitungsmitteln z.B. eine Überwachung
möglich,
ob so genannte Blisterhöfe
mit Tabletten gefüllt
sind
– bei
einer Anwendung in der glasverarbeitenden Industrie ist mit solchen
Bildverarbeitungsmitteln eine Qualitätsüberwachung der Glasprodukte möglich
- – Anreicherung
von Maschinen/Maschinenaggregaten mit multimedialer Information – Ablauf
von Steuerung und Multimediaanwendung auf einer Verarbeitungseinheit 20 mit
mehreren Verarbeitungskernen 22, 22', 22''
– Betriebsanleitungen
und Videos für
Inbetriebnahmeabläufe
können
auf einem (ersten) Verarbeitungskern 22, 22', 22'' der Verarbeitungseinheit 20 ablaufen,
während
die Steuerung des technischen Prozesses 12 durch die verbleibenden
Verarbeitungskerne 22, 22', 22'' der
Verarbeitungseinheit 20 parallel erfolgt, wobei die parallele Verarbeitung
insbesondere in Echtzeit parallel zur Steuerung des technischen
Prozesses 12 erfolgen kann
– zusätzlich oder alternativ können auf
einzelnen Verarbeitungskernen 22, 22', 22'' Inbetriebnahmeanleitungen, Serviceanleitungen,
Maschinenausbau-/umbauanleitungen, Maschinenabnahmen und dergleichen
vorgehalten sein und zum jederzeitigen Zugriff und zur Einsichtnahme
zur Verfügung
stehen.
-
Zusammenfassend
lässt sich
die vorliegende Erfindung damit kurz wie folgt darstellen: Die Erfindung
betrifft ein Automatisierungsgerät 40 zur Steuerung, Überwachung
und/oder Beeinflussung eines technischen Prozesses 12,
wobei das Automatisierungsgerät 40 eine
Verarbeitungseinheit 20 mit mehreren Verarbeitungskerne 22, 22', 22'' aufweist sowie die Verwendung
einer Verarbeitungseinheit 20 mit mehreren Verarbeitungskernen 22, 22', 22'' als Verarbeitungseinheit 20 in
einem Automatisierungsgerät
zur Steuerung, Überwachung
und/oder Beeinflussung eines technischen Prozesses 12.