Beschreibung
System zur Bereitstellung eines Standard-Frameworks für Automatisierungsgeräte
Die Erfindung betrifft ein System sowie ein Verfahren zur Bereitstellung standardisierter, geräteunabhängiger Funktionalität für die Erstellung von Steuerungssoftware für Automatisierungssysteme.
In der heutigen Automatisierungswelt besitzen Automatisierungsgeräte unterschiedlichen Bautyps jeweils eigene Programmierschnittstellen und haben einen eigenen Befehlssatz, der bei der Programmierung bzw. Implementierung einer Automatisierungslösung auf dem jeweiligen Gerät verwendet wird. Aufgrund dieser Unterschiede werden die im Rahmen einer Automatisierungslösung benötigten verschiedenen Automatisierungs- systeme (Geräte einheitlichen Bautyps) unterschiedlich programmiert. Die Programmierung erfolgt dabei auf einem sehr niedrigen Niveau, das heißt es wird, vergleichbar zur Assemblerprogrammierung, eine einfache Syntax verwendet. Zur Realisierung einer komplexen Automatisierungslösung wird entsprechend eine Großzahl einfacher Befehle benötigt. Die so entstehenden Automatisierungslösungen sind spezifisch für die jeweiligen Automatisierungssysteme entwickelt und lassen sich, durch ihre Spezifität bedingt, nicht auf andere Automatisierungssysteme übertragen, welche jeweils wieder einen anderen Befehlssatz haben. Heutzutage werden also spezifische Lösungen mit hohem Programmieraufwand realisiert. Eine Übertragung von Programmen zwischen unterschiedlichen Automatisierungssystemen ist vor allem aufgrund der Tatsache nicht möglich, dass Basismechanismen der Automatisierung, wie das Ansprechen von Zählern oder das Herunterladen von Bausteinen auf jedem Gerätetyp unterschiedlich repräsentiert sind. Entsprechend werden die verschiedenen Automatisierungssysteme heutzutage als Einzelsysteme betrachtet. Jedes System hat seine eigene, spezielle Implementierung und eine eigene Pro-
grammierschnittstelle. Hieraus resultiert eine Vielzahl von spezifischen Compilern, die die jeweiligen Automatisierungsprogramme für entsprechende Zielsysteme übersetzen. Hinzu kommt, dass sich auch die Programmierumgebungen für die Erstellung einer Automatisierungslösung zwischen den einzelnen Automatisierungssystemen stark unterscheiden. So ist zum Beispiel das Download, also das Herunterladen einer erstellten Software, und das Debuggen, das Beheben von Fehlern im Programmcode für die jeweiligen Automatisierungssysteme unterschiedlich realisiert. Aus diesem Grund existieren Experten für die Programmierung einzelner Systeme. Nur wenige dieser Experten beherrschen verschiedene Automatisierungssysteme gleich gut und kennen deren jeweilige Spezifika.
Die Aufgabe der vorliegenden Erfindung ist es, eine standardisierte und vereinfachte Programmierung und Implementierung von Automatisierungslösungen für verschiedene Automatisierungssysteme zu ermöglichen.
Diese Aufgabe wird gelöst durch ein System zur Bereitstellung von geräteunabhängiger Funktionalität für Automatisierungsgeräte mit ersten Mitteln zur Kapselung spezifischer Funktionen mindestens eines Automatisierungsgeräts und zum Bereitstellen von Basisfunktionalität des Automatisierungsgeräts und auf den ersten Mitteln aufsetzende zweite Mittel zur Bereitstellung von allgemeiner Funktionalität und/oder Automatisierungsfunktionalität .
Der Erfindung liegt die Erkenntnis zugrunde, dass derzeit im Automatisierungsumfeld in der Regel eine heterogene Hardwarewelt anzutreffen ist. Bei der Erstellung einer Automatisierungslösung für eine Anlage ist der Programmierer somit mit verschiedenen Automatisierungsgeräten konfrontiert, die jeweils eine eigene Sprache verstehen. Um die Erstellung einer Lösung zu vereinfachen, wird vorgeschlagen, eine einheitliche Umgebung zu schaffen, auf der Automatisierungslösungen für unterschiedliche Automatisierungssysteme auf standardisierte
Weise erstellt werden können. Hierzu wird ein so genanntes Standard-Framework für Automatisierungsgeräte bereitgestellt. Das Standard-Framework bildet eine Abstraktion der untergelagerten Hardware, also der Automatisierungsgeräte und stellt hierbei gleichermaßen allgemeine Funktionalität, wie beispielsweise Download oder Ansprechen von Ein- und Ausgängen zur Verfügung, aber auch Automatisierungsfunktionalität, wie beispielsweise die Bereitstellung von Diagnosedaten oder das Forcen von Variablen. Das definierte Standard-Framework ist speziell auf die Belange der Automatisierungstechnik zugeschnitten und bietet unter anderem eine Vereinheitlichung der Runtime-Umgebung für verschiedene Automatisierungsgeräte sowie die Möglichkeit der Kapselung spezifischer Hardwareeigenheiten. Für die Erstellung des Programms, das auf einer speziellen Hardware läuft, werden hierbei Klassen des Frameworks genutzt. Eine Automatisierungslösung kann somit basierend auf den Funktionen und Automatisierungsobjekten des Standard- Frameworks realisiert werden. Die standardisierte Funktionalität des Frameworks wird hierbei von den Automatisierungsgeräten selbst angeboten. Hierzu sind auf den Automatisierungsgeräten Mittel zur Kapselung spezifischer Funktionen der Automatisierungsgeräte und zum Bereitstellen von Basisfunktionalität in Form des so genannten "Automation-Runtime-Layer" (ARL) realisiert. Der ARL bietet von der jeweiligen Hardware, also dem Automatisierungsgerät, abstrahierende, unabhängige Basisdienste an. Hierzu zählen beispielsweise Framing, Synchronisation, Speichermanagement, Merker sowie Zähler. Der ARL ist plattformspezifische ausgebildet und besitzt die Aufgabe, alle plattformspezifischen Funktionen zu überdecken. Auf dem ARL setzen Mittel zur Bereitstellung allgemeiner Funktionalität in Form des so genannten "Runtime-Framework" (RF) auf. Das RF bietet hierbei höhere Dienste an und stellt neben allgemeiner Funktionalität (wie Speicherverwaltung, Threading, Synchronisation, ... ) auch Automatisierungsfunktionalität zur Verfügung. Im Gegensatz zum ARL ist die Implementierung des RF nicht plattformspezifisch. Hierdurch kann eine einmalige Implementierung mit geringem Aufwand auf ver-
schiedene Zielplattformen, das heißt Automatisierungssysteme, portiert werden. Vorteilhaft ist hierbei vor allem, dass bei der Erstellung von Äutomatisierungslösungen eine Bereitstellung von allgemeinen Automatisierungsdiensten, die generell verwendet werden können, ermöglicht wird. Die Nutzung des vorgestellten Systems führt zu einer Vereinfachung der Implementierung einzelner Automatisierungsko ponenten. Es erfolgt eine Standardisierung der Services zum Zugriff auf die Automatisierungsgeräte und zum Zugriff auf automatisierungsspezifische Objekte, Alarme und Prozesswerte. Durch die Abstraktion von der spezifischen Hardware, das heißt eine Unabhängigkeit von speziellen Automatisierungssystemen, wird eine hardwareunabhängige Programmierung der Automatisierungskomponenten ermöglicht. Spezifisches, auf ein Automatisierungssystem zugeschnittenes Expertenwissen, ist für die Erstellung der Automatisierungslösung hierdurch nicht mehr nötig. Ein aufwendiges Erstellen von speziellem Programmcode, der auf relativ niedrigem Niveau ist, erübrigt sich durch die Nutzung des vorgestellten Systems, es ermöglicht vielmehr eine Programmierung unter Nutzung von Hochsprachenprogrammiersprachen. Dadurch wird dem Programmierer ermöglicht, sich auf die Lösung der eigentlichen automatisierungsspezifischen Probleme zu konzentrieren, statt seine Kapazität in die Erzeugung von rudimentären Programmbestandteilen investieren zu müssen. Des Weiteren sorgt das Standard-Framework für eine Durchgängigkeit bei der Diagnose und den Fehleranalysen über die Grenzen der Automatisierungssysteme hinweg. Auch das Zusammenspiel verschiedener Komponenten, die in einer Automatisierungslösung realisiert sind, ist einfacher zu analysieren bzw. zu debuggen. Durch die Nutzung des Standard-Frameworks bietet sich die Möglichkeit, höherwertige Zusatzpakete zu entwickeln, die Objekte oder Funktionen anbieten, welche dann e-benfalls unabhängig von der Zielplattform sein können. Solche technologischen Objekte oder Zusatzpakete können innerhalb des Systems in Form von Bibliotheken hinterlegt werden, um für wiederkehrende Automatisierungsaufgaben zur Verfügung zu stehen. Zudem ermöglicht die Verwendung des Standard-
Frameworks ein Portieren von Automatisierungslösungen über verschiedene Gerätefamilien hinweg.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass die ersten Mittel zur Überdeckung spezifischer Funktionen als automatisierungsgerätespezifische Adapter ausgebildet sind. Die automatisierungsgerätespezifi- schen Eigenschaften werden vom ARL dadurch auf relativ niedriger Ebene im Gesamtsystem standardisiert, so dass sie in Form von, für ein Programmiersystem allgemein verständlichen, Befehlen zur Verfügung stehen. Hierdurch ist gewährleistet, dass alle Automatisierungsgeräte einheitlich auf niedriger Ebene angesprochen werden können. Eine Standardisierung auf höherer Hierarchieebene innerhalb eines Automatisierungssystems würde unter Umständen zu einem Verlust von automatisierungsgerätespezifischen Eigenschaften führen. Die Verwendung von spezifischen Adaptern sorgt hingegen dafür, dass alle Eigenschaften auch in allgemeiner Form zur Verfügung gestellt werden können.
Eine weitere vorteilhafte Ausbildung des Systems ist dadurch gekennzeichnet, dass die Mittel zur Bereitstellung von allgemeiner Funktionalität und/oder Automatisierungsfunktionalität geräteunabhängig ausgebildet sind. Vorteilhaft ist hierbei, dass allgemeine Funktionalität wie beispielsweise die Realisierung eines Downloads nicht in dem gerätespezifischen ARL integriert werden muss. Besonders Automatisierungsfunktionalität, die unabhängig von spezifischen Automatisierungsgeräten ist, wie beispielsweise das Durchführen von Diagnosen, muss nicht auf den spezifischen ARLs realisiert sein. Dadurch dass diese Funktionalitäten geräteunabhängig sind, müssen sie nur einmal implementiert werden und können dann automatisierungsgerätespezifisch unabhängig verwendet werden. Eine einmalige Erstellung des Runtime-Framework (RF) wird hierdurch ermöglicht.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass das System zur Nutzung durch ein Erstellsystem für die Erstellung von Steuerungssoftware vorgesehen ist. Die vom System bereitgestellte standardisierte sowie geräteunabhängige Funktionalität kann dadurch vorteilhaft von einem gängigen automatisierungstechnischen Editor, einem Programmierwerkzeug oder allgemein, einem Engineering- System verwendet werden. Eine einfachere, schnellere und kostengünstigere Herstellung von Steuerungssoftware wird durch diese vorteilhafte Ausbildung ermöglicht.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass das System zur Bereitstellung von technologischen Objekten für Automatisierungsgeräte vorgesehen ist. Objekte wie beispielsweise ein Hubtisch, ein Förderband oder Kessel können, wenn sie sich in Form von allgemein wieder verwendbaren Funktionen abbilden lassen in Form einer Bibliothek abgelegt werden. Diese technologischen Objekte stehen dem Programmierer dann standardmäßig mit ihren Eigenschaften und Methoden für die Realisierung einer Automatisierungslösung zur Verfügung. Der Programmieraufwand wird durch diese vorgegebenen Objekte erheblich verringert.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass ein Speicher zur Speicherung von Automatisierungslösungen für wiederkehrende Aufgaben vorgesehen ist. Die bereits realisierten Automatisierungslösungen können auf dem Automatisierungsgerät hinterlegt werden, und stehen für die Wiederverwendung in neuen Automatisierungslösungen zur Verfügung. Einem zur Erstellung von Steuerungssoftware genutzten Engineering-System können sind sie bekannt. Eine schnellere Entwicklung und auch die Nutzung bereits vorhandenen Lösungswissens wird hierdurch ermöglicht.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass das System zur Nutzung eines Internet und/oder Intranet zur Übertragung von Daten vorgesehen
ist. Hierdurch wird beispielsweise eine vom Ort der Automatisierungsgeräte unabhängige Installation eines zur Programmierung verwendeten Engineering-Systems ermöglicht. Eine erstellte Automatisierungslösung kann über das Internet oder Intranet an die jeweiligen Zielautomatisierungsgeräte gesendet werden. Die Versendung von programmierten Lösungen in Form von Disketten oder anderen Datenträgern erübrigt sich durch diese Ausbildung der Erfindung.
Eine weitere vorteilhafte Ausbildung der Erfindung ist dadurch gekennzeichnet, dass eine automatisierungsspezifisch ausgebildete Programmiersprache für die Erstellung einer Steuerungssoftware als Zwischensprache für Automatisierungssprachen, als Zielsprache von Erstellsystemen und zur Abbildung auf die ersten Mittel (dem RF) auf einem Automatisierungsgerät als Zielplattform vorgesehen ist. Die Realisierung dieser automatisierungsspezifisch ausgebildeten Zwischensprache für Automatisierungslösungen bietet den Vorteil, dass spezifische Programmiersprachen, die heutzutage in der Automatisierungstechnik von den Erstellsystemen verwendet werden, auf eine einzige Programmiersprache als Zielsprache abgebildet werden können. Vorteilhaft ist hierbei, dass für die Lösung einer Automatisierungsaufgabe für die Erstellung geeignete Editoren und Erstellsysteme verwendet werden können. Diese Editoren und Erstellsysteme haben jeweils ihre eigene Programmiersprache, die dann in die Zwischensprache für Automatisierungssprachen (AIL = Automation Intermediate Language) übersetzt wird. Durch die anschließende Nutzung der AIL wird gewährleistet, dass die speziellen Automatisierungsaufgaben, die mit Hilfe der jeweiligen Editoren gelöst wurden, später problemlos zusammenarbeiten. Vorteilhaft ist hierbei außerdem, dass es zu einer Abstraktion der Programmierwerkzeuge von der zugrundeliegenden Hardware kommt. Die Nutzung der AIL ermöglicht auch das einheitliche Debuggen bzw. die Fehleranalyse der erstellten Automatisierungslösung, da die unterschiedlichen Programmiersprachen zuvor in eine einheitliche Sprache übersetzt worden sind. Die Nutzung der AIL ermöglicht
somit erstmals, einen Standard-Debugger zu verwenden. Hierdurch wird der Zugriff vom PC bis hinunter auf die Steuerung ermöglicht .
Eine weitere vorteilhafte Ausbildung des Systems ist dadurch gekennzeichnet, dass Compiler (5) zur Abbildung der Sprache auf die Zielplattform vorgesehen sind. Die Programmierwerkzeuge müssen sich ausschließlich auf die Abbildung in die AIL konzentrieren. Die Übersetzung in die hardwarespezifische Version erfolgt durch die speziellen Compiler. Eine Realisierung der entsprechenden Lösung auf eine bestimmte Zielplattform hin muss nicht erfolgen. Hierdurch wird die Grundlage für die Erstellung hardwareunabhängiger Automatisierungskomponenten gebildet. Eine Automatisierungslösung läuft auf einem Automatisierungsgerät genau dann, wenn die Anforderungen an den jeweiligen ARL erfüllt sind. Die Anzahl der dafür benötigten Compiler verringert sich, da nicht jede mögliche Editor-Automatisierungssystem-Kombination ihren eigenen Compiler benötigt. Es werden nur System- bzw. Editorenspezifische Compiler in die AIL und von der AIL benötigt.
Im Folgenden wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläutert. Es zeigen:
FIG 1 eine schematische Darstellung eines Ausführungsbeispiels des Standard-Frameworks für Automatisierungssysteme,
FIG 2 eine schematische Darstellung der Verwendung einer automatisierungsspezifischen Zwischensprache .
FIG 1 zeigt eine schematische Darstellung eines Ausführungsbeispiels eines Standard-Frameworks zur Bereitstellung geräteunabhängiger, standardisierter Funktionalität für unterschiedliche Automatisierungssysteme 6ι..n. Auf den Automatisierungssystemen 6ι..n setzen systemspezifische Adapter 3χ..n, so genannte Automation-Runtime-Layer (ARL) auf. Die ALR 3ι..n
überdecken automatisierungsgerätespezifische Funktionen und stellen Basisfunktionalität der Automatisierungssysteme βι..n zur Verfügung. Auf den Adaptern 3ι..n setzen automatisierungs- systemunabhängige Runtime-Frameworks (RF) 4 auf. Die RFs 4 stellen allgemeine Funktionalität und Automatisierungsfunktionalität zur Verfügung. Die Automatisierungslösung wird mit Hilfe eines Engineering-Systems 2 erstellt. Hierzu kann auf eine Bibliothek mit technologischen Objekten 7 zurückgegriffen werden. Bereits realisierte Automatisierungslösungen können in einem Speicher 8 auf den Automatisierungsgeräten zur Wiederverwendung hinterlegt werden. Die mittels des Engineering-Systems erstellte Software wird mit Hilfe der Compiler 5ι..n für die jeweiligen Automatisierungssysteme 6ι..n in eine Runtimeversion übersetzt. Die Daten werden mit Hilfe einer Datenübertragungsvorrichtung 9 übertragen.
Die Besonderheit des in FIG 1 dargestellten Systems 1 besteht darin, dass auf einem beliebigen Engineering-System 2 eine standardisierte, geräteunabhängige Automatisierungslösung erstellt werden kann. Diese Besonderheit wird dadurch gewährleistet, dass die automatisierungssystemspezifischen Eigenschaften mit Hilfe der ARL 3ι..n überdeckt werden. Im Zusammenwirken mit dem systemunabhängigen RF 4, welches weitere Funktionalität bereitstellt, steht auf den Automatisierungsgeräten 6ι..n eine vereinheitlichte Ebene zur Verfügung, auf der mit Hilfe höherwertiger Programmiersprachen eine Automatisierungslösung realisiert werden kann. Dies ermöglicht die Verwendung allgemeiner Bausteine, wie beispielsweise technologischen Objekten 7, die dem Engineering-System zur Verfügung stehen. Eine spezifische Implementierung der jeweiligen Lösung für die einzelnen Automatisierungssysteme 6ι..n erübrigt sich auf diese Weise. Einmal entwickelte Lösungen können gerate- und systemunabhängig wieder verwendet werden. Der jeweilige Compiler 5χ..n sorgt dann für eine entsprechende Übersetzung des allgemeinen Programmcodes in eine vom jeweiligen Automatisierungssystem 6ι..n interpretierbare Form. Allgemein wird durch das vorgestellte System die Implementierung einer
Automatisierungslösung enorm vereinfacht: Automatisierungs- systemspezifisches Expertenwissen ist nicht mehr notwendig und eine Wiederverwendung bereits implementierter Lösungen ist möglich.
FIG 2 zeigt die beispielhafte Verwendung einer automatisierungsspezifischen Programmiersprache als Zwischensprache 10 zwischen Programmiersprachen automatisierungstechnischer Editoren 12 und automatisierungsgerätespezifischen Sprachen. Die mittels automatisierungsspezifischer Editoren 12 erstellten Programmcodes werden mit Hilfe von spezifischen Compilern 11 in die Zwischensprache 10 übersetzt. Aus der Zwischensprache heraus werden mittels Compiler 5ι..n die Anweisungen in auto- matisierungssystemspezifische Anweisungen übersetzt. Die Daten können hierbei auf die Automatisierungsgeräte 6ι..n über ein Intranet bzw. Internet 13 übertragen werden.
Der wesentliche Vorteil der in FIG 2 dargestellten schematischen Ausbildung des Systems mit einer Zwischensprache 10 für Automatisierungssysteme (AIL = Automation Intermediate Language) besteht darin, dass die Menge der zu verwendenden Compiler, die für die Erstellung einer Automatisierungslösung verwendet werden müssen, wesentlich reduziert werden kann. Ohne die Verwendung einer AIL muss jede verwendete Programmiersprache eines automatisierungsspezifischen Editoren 12ι..m mittels eines speziellen Compilers für die konkrete Zielplattform 6ι..n übersetzt werden. Hieraus ergibt sich eine Menge von n*m Compilern für eine Menge von m Editoren und n Automatisierungsgeräten. Bei der Verwendung der Zwischensprache 10 übersetzen die Compiler llι..m ihren Quellcode in die Zwischensprache 10. Von der Zwischensprache wird der Code mit Hilfe systemspezifischer Compiler 5ι..n in die Sprache der Zielplattform 6ι..n übersetzt. Bei der Verwendung der AIL sind somit nur noch n+m Compiler notwendig, um eine spezifische Automatisierungslösung zu realisieren. Außerdem kann ein Großteil der Realisierung innerhalb der AIL selbst erstellt
werden. Somit vereinfacht sich die Erstellung einer Automatisierungslösung um ein Vielfaches.
Zusammenfassend betrifft die Erfindung ein System sowie ein Verfahren zur Bereitstellung von standardisierter, geräteunabhängiger Funktionalität für das Erstellen einer Lösung im Automatisierungsumfeld. Hierbei werden die spezifischen Eigenschaften und Funktionen unterschiedlicher Automatisierungssysteme 61..n auf den jeweiligen Geräten direkt durch einen systemspezifischen Adapter, dem Automation-Runtime-Layer (ARL) 3ι..n abgedeckt, bzw. generalisiert. Eine weitere, auf dem jeweiligen Gerät implementierte Komponente, das Runtime- Framework (RF) 4 stellt allgemeine Automatisierungs- und/oder Basisfunktionalität zur Verfügung. Die Automatisierungslösung kann entsprechen standardisiert auf einem Engineering-System 2 erstellt unabhängig von der jeweiligen Zielplattform 61..n beliebig portiert werden. Die Nutzung einheitlicher Objektbibliotheken 7 und die Wiederverwendung einmal erstellter Lösungen ist systemunabhängig möglich.
Bezugszeichenliste
2 Vorrichtung zur Programmierung und Implementierung einer Automatisierungslösung
3 Mittel zur Kapselung spezifischer Funktionen (Adapter)
4 Mittel zur Bereitstellung allgemeiner Funktionalität
5 Compiler β Automatisierungsgerät
7 Technologische Objekte
8 Speicher
9 Datenübertragungsvorrichtung
10 Zwischensprache
11 Compiler
12 Automatisierungstechniche Editoren
13 Intra/Internet