-
Die Erfindung betrifft ein Automatisierungssystem, das möglichst flexibel betreibbar ist.
-
Das Automatisierungssystem weist eine oder mehrere funktionsanbietende Komponenten auf, die bestimmt Funktionen zur Verfügung stellen bzw. anbieten.
-
Das Automatisierungssystem weist weiter funktionsnutzende Komponenten auf, die auf die Funktionen zugreifen.
-
Das Automatisierungssystem weist weiter eine oder mehrere vermittelnde Komponenten auf. Die funktionsanbietenden und/oder die funktionsnutzenden Komponenten melden sich bei der vermittelnden Komponente an.
-
Für den Fall, dass eine funktionsnutzende Komponente Zugriff auf eine bestimmte Funktion benötigt, fragt die funktionsnutzende Komponente bei der vermittelnden Komponente nach einer funktionsanbietenden Komponente nach, die die bestimmte Funktion zur Verfügung stellt. Für den Fall, dass eine solche funktionsanbietende Komponente bei der vermittelnden Komponente angemeldet ist, ermöglicht die vermittelnde Komponente einen Zugriff auf die bestimmte Funktion für die funktionsnutzende Komponente, beispielsweise indem ein Kommunikationskanal zwischen den beiden Komponenten aufgebaut wird. Für den Fall, dass keine solche funktionsanbietende Komponente bei der vermittelnden Komponente angemeldet ist, wird dies der funktionsnutzenden Komponente mitgeteilt und/oder eine Fehlermeldung erzeugt.
-
In einer Ausführungsform stellt ein erster Typ von funktionsanbietenden Komponenten Funktionen zur Fehlerverwaltung des Automatisierungssystems zur Verfügung, und/oder ein zweiter Typ von funktionsanbietenden Komponenten stellt Funktionen zur Lizenzverwaltung des Automatisierungssystems zur Verfügung, und/oder ein dritter Typ von funktionsanbietenden Komponenten stellt Funktionen zur Erfassung eines Zustands des Automatisierungssystems zur Verfügung.
-
In einer Ausführungsform sind ein erster Typ von funktionsnutzenden Komponenten Komponenten einer speicherprogrammierbaren Steuerung, und/oder ein zweiter Typ von funktionsnutzenden Komponenten sind Komponenten eines Frequenzumrichters.
-
In einer Ausführungsform sind die funktionsanbietenden Komponenten, die funktionsnutzenden Komponenten und/oder die vermittelnde Komponente mittels eines Feldbusses und/oder eines geteilten Speichers zum Datenaustausch miteinander verbunden.
-
In einer Ausführungsform ist die vermittelnde Komponente dazu ausgebildet, eine funktionsanbietende Komponente erst zu aktivieren, sobald eine funktionsnutzende Komponente einen Zugriff auf die bestimmte Funktion der funktionsanbietenden Komponente benötigt, und/oder die vermittelnde Komponente ist dazu ausgebildet ist, eine funktionsanbietende Komponente zu deaktivieren, sobald keine funktionsnutzende Komponente mehr einen Zugriff auf die bestimmte Funktion der funktionsanbietenden Komponente benötigt.
-
In einer Ausführungsform weist das Automatisierungssystem eine Mehrzahl von Mikroprozessorsystemen auf, wobei die funktionsanbietenden Komponenten, die funktionsnutzenden Komponenten und die vermittelnde Komponente auf mindestens einem der Mikroprozessorsysteme ausgeführt werden, wobei die vermittelnde Komponente dazu ausgebildet ist, ein Mikroprozessorsystem, auf dem die die funktionsanbietenden Komponenten und/oder die funktionsnutzenden Komponenten ausgeführt werden, basierend auf vorgebbaren Kriterien auszuwählen.
-
In einer Ausführungsform sind die vorgebbaren Kriterien ausgewählt aus: möglichst gleichmäßige Auslastung der Mehrzahl von Mikroprozessorsystemen, möglichst hohe Verarbeitungsleistung, und möglichst geringer Energieverbrauch.
-
Die vermittelnde Komponente koordiniert, verwaltet und verteilt Daten und/oder Informationen. Die vermittelnde Komponente sorgt dafür, dass die die funktionsanbietenden und funktionsnutzenden Komponenten voneinander wissen und schließlich Daten austauschen können. Die vermittelnde Komponente fungiert hierbei wie ein Dirigent eines Orchesters.
-
Erfindungsgemäß wird prinzipiell zwischen funktionsanbietenden Komponenten, d.h. Dienstanbietern, und funktionsnutzenden Komponenten, d.h. Dienstnutzern, unterschieden. Die vermittelnde Komponente übernimmt die Anmeldung der funktionsanbietenden Komponenten und der funktionsnutzenden Komponenten und initiiert die Kommunikation zwischen den Komponenten. Damit stellt die vermittelnde Komponente sicher, dass die Komponenten dann Daten miteinander austauschen können. Der Nutzdatenfluss läuft dann bevorzugt direkt zwischen den Komponenten.
-
Die vermittelnde Komponente stellt beispielsweise Funktionen oder Schnittstellen zur Verfügung, die die funktionsanbietenden und funktionsnutzenden Komponenten aufrufen, beispielsweise eine Funktion zum Verbindungsaufbau und eine Funktion zur Registrierung als Funktionsanbieter bzw. Funktionsnutzer. Die sich ergebenden Informationen können dann beispielsweise in einer Shared-Memory-Struktur gehalten werden. Der Shared-Memory-Struktur können jederzeit weitere funktionsanbietende Komponenten und funktionsnutzende Komponenten zugeordnet werden, beispielsweise während der Laufzeit des Automatisierungssystems. Beim Starten einer speicherprogrammierbaren Steuerung können sich deren Prozesse bzw. Komponente beispielsweise bei der vermittelnden Komponente anmelden bzw. registrieren. Damit wird die Shared-Memory-Struktur ergänzt um die Information, dass der Prozess bzw. die Komponente vorhanden ist und zusätzlich werden die benötigten funktionsanbietenden bzw. funktionsnutzenden Komponenten mit registriert. Fordert jetzt ein Prozess bzw. eine funktionsnutzende Komponente eine funktionsanbietende Komponente an, die es nicht gibt bzw. die sich nicht angemeldet hat, würde ein Fehler erzeugt werden.
-
Bei Verwendung mehrerer vermittelnder Komponenten kann auch in verteilten Automatisierungssystemen eine Verbindung zwischen funktionsanbietenden Komponenten und funktionsnutzenden Komponenten über Systemgrenzen bzw. Ebenen hinweg hergestellt werden. Die Informationsvermittlung erfolgt dann auch zwischen den verschiedenen vermittelnden Komponenten, die in jedem Teilsystem angeordnet sind. Beispielsweise kann lediglich eine einzelne funktionsanbietende Komponente zur Lizenzverwaltung des Automatisierungssystems in einem Teilsystem vorhanden sein, wobei funktionsnutzende Komponenten aus anderen Teilsystemen Zugriff auf diese funktionsanbietende Komponente zur Lizenzverwaltung erhalten, indem ihre Anfrage an die vermittelnde Komponente ihres Teilsystems in das andere Teilsystem enthaltend die funktionsanbietende Komponente weitergeleitet wird.
-
Die vermittelnde Komponente kann auch Informationen über eine Struktur der Komponenten bereitstellen bzw. erzeugen. Die vermittelnde Komponente ermittelt insoweit nicht nur jede funktionsanbietende bzw. funktionsnutzende Komponente, sondern auch deren Verwandtschaftsverhältnisse. Dies ist gerade bei komplexen Automatisierungssystemen für Service und Diagnose hilfreich. Somit können Hard- und Software-Komponenten dargestellt werden. Da diese Komponenten untereinander in unterschiedlichen Kontexten agieren, ist es wichtig, diese Hierarchien in unterschiedlichen Darstellungen zu präsentieren. Beispielsweise kann ein Frequenzumrichter, der über einen Feldbus angeschlossen ist und in einem Maschinenmodul verbaut ist, in einer funktionalen Sicht als Aktor des Maschinenmodules dargestellt werden. Aus einer Kommunikationssicht ist der Frequenzumrichter ein bestimmter Feldbus-Teilnehmer mit einer bestimmten Adresse. Aus einer weiteren Sicht ist der Frequenzumrichter eine Komponente, die mit einem Motor verbunden ist. Alle diese Abhängigkeiten bzw. Verwandtschaftsverhältnisse kennt die vermittelnde Komponente und kann diese beispielswiese zu einer Visualisierung weitergeben.
-
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen detailliert beschrieben. Hierbei zeigt:
- 1 ein Blockschaltbild eines erfindungsgemäßen Automatisierungssystem mit funktionsanbietenden Komponenten, funktionsnutzenden Komponenten und einer vermittelnden Komponente, die die funktionsanbietenden Komponenten mit den funktionsnutzenden Komponenten funktional koppelt,
- 2 ein Blockschaltbild einer Variante des in 1 gezeigten Automatisierungssystems, bei der die Komponenten mittels eines Feldbusses miteinander zum Datenaustausch gekoppelt sind,
- 3 ein Blockschaltbild einer weiteren Variante des in 1 gezeigten Automatisierungssystems, bei der die Komponenten mittels eines geteilten Speichers miteinander zum Datenaustausch gekoppelt sind, und
- 4 ein Blockschaltbild einer weiteren Variante des in 1 gezeigten Automatisierungssystems mit einer Mehrzahl von Mikroprozessorsystemen.
-
1 zeigt hoch schematisch ein Automatisierungssystem 100, aufweisend: funktionsanbietende Komponenten 1, 2, 3, die bestimmte, im Automatisierungssystem 100 benötigte Funktionen zur Verfügung stellen, funktionsnutzende Komponenten 4, 5, 6, die auf die Funktionen zugreifen, und eine vermittelnde Komponente 7.
-
Die funktionsanbietenden Komponenten 1, 2, 3 sind jeweils dazu ausgebildet, sich bei der vermittelnden Komponente 7 anzumelden. Entsprechend sind die funktionsnutzenden Komponenten 4, 5, 6 dazu ausgebildet, sich ebenfalls bei der vermittelnden Komponente 7 anzumelden.
-
Für den Fall, dass sie Zugriff auf eine bestimmte Funktion benötigen, fragen die funktionsnutzenden Komponenten 4, 5, 6, bei der vermittelnden Komponente 7 nach einer funktionsanbietenden Komponente 1, 2, 3 nach, die die bestimmte Funktion zur Verfügung stellt. Für den Fall, dass eine solche funktionsanbietende Komponente 1, 2, 3 bei der mindestens einen vermittelnden Komponente 7 angemeldet ist, ermöglicht die vermittelnde Komponente 7 einen Zugriff auf die bestimmte Funktion für die funktionsnutzende Komponente 4, 5, 6.
-
Exemplarisch stellt ein erster Typ von funktionsanbietenden Komponenten 1 Funktionen zur Fehlerverwaltung des Automatisierungssystems zur Verfügung. Ein zweiter Typ von funktionsanbietenden Komponenten 2 stellt Funktionen zur Lizenzverwaltung des Automatisierungssystems 100 zur Verfügung, Ein dritter Typ von funktionsanbietenden Komponenten 3 stellt Funktionen zur Erfassung eines Zustands des Automatisierungssystems 100 zur Verfügung.
-
Die funktionsnutzenden Komponenten 4, 5, 6 sind vorliegend jeweils Komponenten einer speicherprogrammierbaren Steuerung 8. Alternativ oder zusätzlich können funktionsnutzende Komponenten beispielsweise auch Komponenten von Frequenzumrichtern 9 des Antriebssystems 100 sein.
-
Die funktionsanbietenden Komponenten 1, 2, 3, die funktionsnutzenden Komponenten 4, 5, 6 und/oder die vermittelnde Komponente 7 können wie in 2 gezeigt mittels eines Feldbusses 10 zum Datenaustausch verbunden sein. Alternativ oder zusätzlich können die funktionsanbietenden Komponenten 1, 2, 3, die funktionsnutzenden Komponenten 4, 5, 6 und/oder die vermittelnde Komponente 7 wie in 3 gezeigt mittels eines geteilten Speichers 11 zum Datenaustausch verbunden sein.
-
Die vermittelnde Komponente 7 ist dazu ausgebildet, eine funktionsanbietende Komponente 1, 2, 3 erst zu aktivieren, sobald eine funktionsnutzende Komponente 4, 5, 6 einen Zugriff auf die bestimmte Funktion der funktionsanbietenden Komponente 1, 2, 3 benötigt. Weiter ist die vermittelnde Komponente 7 dazu ausgebildet, eine funktionsanbietende Komponente 1, 2, 3 zu deaktivieren, sobald keine funktionsnutzende Komponente 4, 5, 6 mehr einen Zugriff auf die bestimmte Funktion der funktionsanbietenden Komponente 1, 2, 3 benötigt.
-
Bezugnehmend auf 4, kann das Automatisierungssystem 100 eine Mehrzahl von Mikroprozessorsystemen 12 aufweisen, wobei die funktionsanbietenden Komponenten 1, 2, 3, die funktionsnutzenden Komponenten 4, 5, 6 und die mindestens eine vermittelnde Komponente 7 auf mindestens einem der Mikroprozessorsysteme 12 ausgeführt werden, wobei die vermittelnde Komponente 7 dazu ausgebildet ist, ein Mikroprozessorsystem 12, auf dem die die funktionsanbietenden Komponenten 1, 2, 3 und/oder die funktionsnutzenden Komponenten 4, 5, 6 ausgeführt werden, basierend auf vorgebbaren Kriterien auszuwählen. Die vorgebbaren Kriterien können beispielsweise sein: möglichst gleichmäßige Auslastung der Mehrzahl von Mikroprozessorsystemen, möglichst hohe Verarbeitungsleistung bzw. möglichst geringer Energieverbrauch.
-
Erneut Bezug nehmend auf 1, weist das Automatisierungssystem 100 weiter ein erstes Maschinenelement in Form eines exemplarischen Einförderers (linke Spalte) mit einem Frequenzumrichter 9, einem mittels des Frequenzumrichters 9 angesteuerten Elektromotor 13, einem mittels des Elektromotors 13 angesteuerten Getriebe 14 und einer mittels des Getriebes 14 angesteuerten Mechanik 15 auf.
-
Das Automatisierungssystem 100 weist weiter ein zweites Maschinenelement in Form einer exemplarischen Bearbeitungsanlage (mittlere Spalte) mit einem Frequenzumrichter 9, einem mittels des Frequenzumrichters 9 angesteuerten Elektromotor 13, einem mittels des Elektromotors 13 angesteuerten Getriebe 14 und einer mittels des Getriebes 14 angesteuerten Mechanik 15 auf.
-
Das Automatisierungssystem 100 weist weiter ein drittes Maschinenelement in Form eines exemplarischen Ausförderers (rechte Spalte) mit einem Frequenzumrichter 9, einem mittels des Frequenzumrichters 9 angesteuerten Elektromotor 13, einem mittels des Elektromotors 13 angesteuerten Getriebe 14 und einer mittels des Getriebes 14 angesteuerten Mechanik 15 auf.
-
Jedes dieser Maschinenelemente weist folgende Kernelemente auf: Mechanik, beispielsweise in Form von Förderbändern, Sägen, Bohrern und Klebevorrichtungen; Aktoren für die Mechanik, beispielsweise in Form von Getrieben, Motoren; Stimulatoren der Aktoren, beispielsweise in Form von Frequenzumrichtern und IO-Modulen; und Steuersoftware für Maschinentechnologien.
-
Der Betrieb des in 1 gezeigten Automatisierungssystems 100 wird nachfolgend beschrieben.
-
In einem ersten Schritt werden sämtliche elektrischen Komponenten des Automatisierungssystems 100 eingeschaltet.
-
Danach melden sich in einem zweiten Schritt die funktionsanbietenden Komponenten 1, 2, 3 an der vermittelnden Komponente 7 an und stellen ihre Funktionen dem Automatisierungssystem 100 bereit. Die Funktionen umfassen eine Fehlerverwaltung, die ein Handling aller Hard- und Software-Fehler im Automatisierungssystem 100 bereitstellt, Funktionen zur Lizenzverwaltung des Automatisierungssystems 100, d.h. die Bereitstellung aller relevanten Daten zur zeitoptimierten Systemanalyse und Instandhaltung, und Funktionen zur Erfassung eines Zustands des Automatisierungssystems 100, d.h. die Bereitstellung von relevanten Daten zur System-Effizienz-Überwachung und Systemprozessverbesserung.
-
Danach wird die eigentliche Anlagen-Steuerung der speicherprogrammierbaren Steuerung 8 gestartet.
-
Danach melden sich die funktionsnutzenden Komponenten 4, 5, 6 bei der vermittelnden Komponente 7 an und geben der vermittelnden Komponente 7 bekannt, welche universellen Maschinenfunktionen sie nutzen und mit welchen Daten sie zu versorgen sind.
-
Aktoren in einem Schaltschrank, wie beispielsweise die Frequenzumrichter 11, weisen eine digitale Schnittstelle auf und liefern direkt Daten in das Automatisierungssystem 100 und dadurch in die universellen Systemfunktionen.
-
Für Aktoren, die keine digitale Schnittstelle aufweisen, wie beispielsweise die Motoren 13, die Getriebe 14 und die mechanischen Elemente 15, werden digitale Abbilder automatisch erzeugt und die Daten dafür in der vermittelnden Komponente 7 hinterlegt, was ebenfalls im Zuge eines Anmeldevorgangs bei der vermittelnden Komponente 7 erfolgen kann. Die Daten der Hardware-Elemente 13 bis 15 können beispielsweise durch eine CAD-Software erzeugt und im Automatisierungssystem 100 hinterlegt werden. Ein Anmeldeprozess für Komponenten am Feldbus 10 und für zugehörige Prozesse kann direkt über die vermittelnde Komponente 7 erfolgen.
-
Das Datenhandling während der Systemlaufzeit wird wie folgt durchgeführt.
-
Aufgrund der Anmeldung der funktionsanbietenden Komponente 1 zur Fehlerverwaltung an der vermittelnden Komponente 7 kann jede funktionsnutzende Komponente einfach und standardisiert Fehler und Meldungen absetzen. Damit ist jede Meldung eineindeutig einer Komponente, egal ob Hard- oder Software, zuordenbar. Folgesysteme, wie Visualisierungen lokal oder in abgesetzen Systemen, können die Fehler eindeutig anzeigen.
-
Nachdem die funktionsanbietende Komponente 2 zur Lizenzverwaltung ihre Funktion durch Anmeldung an der vermittelnden Komponente 7 bereitgestellt hat, kommuniziert die vermittelnde Komponente 7 dies an die anderen Komponenten, die jetzt Daten liefern können. Die funktionsanbietende Komponente 2 zur Lizenzverwaltung kann hierfür eine eigene Datenbank aufweisen, die diese mit Daten direkt aus den Hard- und Software-Elementen befüllt. Kommt es dann zu einer Anfrage an die funktionsanbietende Komponente 2 zur Lizenzverwaltung von intern oder extern, gibt diese beispielsweise über eine standardisierte OPC UA-Schnittstelle die Daten an die anfordernde Komponente weiter. Dadurch ist das Automatisierungssystem 100 in der Lage, über alle seine Komponenten Status- und Verortungs-Informationen zur Verfügung zu stellen.
-
Mehrere vermittelnde Komponenten können sich auch system- bzw. geräteübergreifend vernetzen, um die Erfindung in verteilten Systemen zu nutzen. Eine vermittelnde Komponente in einem ersten Teilsystem kann beispielsweise dafür sorgen, dass eine Anfrage einer dienstnutzenden Komponente nicht im eigenen Teilsystem bearbeitet wird, sondern, dass eine funktionsanbietende Komponente in einem anderen Teilsystem genutzt wird. Die vermittelnden Komponenten sorgen dann dafür, dass die Daten der funktionsnutzenden Komponente über die System-Grenzen hinweg zur richtigen funktionsanbietenden Komponente übertragen werden.
-
Auch neue, später dazukommende funktionsanbietende bzw. funktionsnutzende Komponenten können dem Automatisierungssystem 100 zu dessen Laufzeit bekannt gemacht werden. Die vermittelnde Komponente ist nämlich dazu ausgebildet, neue Komponenten während der Laufzeit zu registrieren und nutzbar zu machen.
-
Ein Kernmerkmal der vermittelnden Komponente ist ihre ressourcenschonende Steuerung der funktionsanbietenden Komponenten. Eine funktionsanbietende Komponente wird erst aktiviert bzw. ausgeführt, wenn mindestens eine funktionsnutzende Komponente Bedarf anmeldet. Wird die funktionsanbietende Komponente von keiner Komponente mehr angesprochen, wird diese wieder deaktiviert. Dies spart Speicherbedarf und Prozessorlaufzeit.
-
Zum Aktivieren einer Komponente kann beispielsweise zunächst ein zugehöriger Programmcode in Form eines sogenannten shared Objects in den Hauptspeicher eines Mikroprozessorsystems geladen werden. Danach wird eine Initialisierungsfunktion der Komponente aufgerufen, woraufhin dann die Komponente selbst ggf. weitere Ressourcen des Mikroprozessorsystems belegt.
-
Die vermittelnde Komponente kann bei Bedarf ein Load-Balancing durchführen, indem funktionsanbietende Dienste auf andere Zielsysteme ausgelagert werden, um beispielsweise die Echtzeitfähigkeit eines Systems sicherzustellen.