-
Die Erfindung beschreibt ein System
und ein Verfahren zum Generieren von Automatisierungscode aus mit
steuerungsrelevanten Informationen angereicherten Beschreibungen
-
Bei der Entwicklung einer Automatisierungslösung für eine fertigungs-
oder prozesstechnische Anlage ist die Durchgängigkeit des Daten- bzw. Informationsflusses
ein Problem. Eine Automatisierungslösung wird heutzutage in der
Regel mit Hilfe von Zeichnungen beschrieben. Hierzu werden beispielsweise
CAD- oder CAE-Werkzeuge verwendet. Auf Basis von mit derartigen
Systemen beschriebenen Anlagen-Layouts kann steuerungs- und bedienrelevante
Information, wie beispielsweise Materialflussinformation in der
bereits erstellten Zeichnung einzugefügt werden. Diese im Layout,
also der grafischen Beschreibung der Anlage, enthaltene Information
wird jedoch derzeit nicht direkt für das Engineering einer Automatisierungslösung genutzt.
Die Erstellung von Automatisierungscode erfolgt in der Regel zwar
auf Basis des Anlagen-Layouts, eine Durchgängigkeit des Datenflusses ist
jedoch nicht gewährleistet.
-
In der Regel bekommt ein Entwickler
eines Automatisierungscodes eine Beschreibung des Anlagen-Layouts,
beispielsweise in Form einer Zeichnung, und setzt diese Beschreibung
eventuell mit Hilfe von Zusatzdokumentation, aufgrund von Erfahrung
und Programmierrichtlinien in Automatisierungscode um. Vereinzelt
wird bereits Code aus Layout erzeugt, die Verfahren basieren jedoch
auf speziellen Abbildungen und erlauben somit keine Realisierung in
einem als Basiswerkzeug einzusetzendem Produkt.
-
Die Verschaltung von automatisierungstechnisch
relevanten Elementen erfolgt heutzutage über spezielle Anschlusspunkte,
wobei eine spezifische Datenübergabesemantik
für die
Reali sierung der Automatisierung genutzt wird. Für die Ausbildung bzw. Abbildung
einer gerichteten Beziehung zwischen den Elementen ist jedoch eine
Vielzahl weiterer Varianten relevant.
-
Die Aufgabe der Erfindung besteht
darin, ein System und ein Verfahren anzugeben, mittels dessen eine
einfachere Generierung von Automatisierungscode ermöglicht wird.
-
Diese Aufgabe wird gelöst durch
System zum Generieren von Automatisierungscode aus mit steuerungsrelevanten
Informationen angereicherten Beschreibungen, mit in den Beschreibungen
dargestellten Komponenten, wobei die Komponenten über Ports
verfügen
und durch jeweils mindestens einen Funktionsbaustein repräsentiert
sind, aus in den Beschreibungen enthaltenen gerichteten Beziehungen zwischen
den Komponenten abgebildeten Ein-/Ausgangsinformationen zu den Ports,
den Funktionsbausteinen zugehörigen
Signalen, wobei die Signale zur Versendung über die Ports der Komponenten
vorgesehen sind, Mitteln zur Definition von Metainformation für die Signale
und einem Codegenerator zur Erstellung von Automatisierungscode
durch Verschaltung der Signale.
-
Die Aufgabe wird weiterhin gelöst durch
ein Verfahren zum Generieren von Automatisierungscode aus mit steuerungsrelevanten
Informationen angereicherten Beschreibungen, bei dem in den Beschreibungen
dargestellte Komponenten jeweils durch mindestens einen Funktionsbaustein
repräsentiert
werden und über
Ports, Ein-/Ausgangsinformationen zu den Ports aus in den Beschreibungen enthaltenen
gerichteten Beziehungen zwischen den Komponenten abgebildet werden,
den Funktionsbausteinen zugehörige
Signale über
die Ports der Komponenten versendet werden, Metainformation für die Signale
definiert wird und Automatisierungscode durch Verschaltung der Signale
generiert wird.
-
Der Erfindung liegt die Erkenntnis
zugrunde, dass bereits vorhandene steuerungsrelevante Informationen,
die in Be- schreibungen
für eine
fertigungs- oder prozesstechnische Anlage vorliegen, vorteilhaft
für die
Generierung von Automatisierungscode verwendet werden können. Dabei
ist es wichtig, einen durchgehenden Dateninformationsfluss von der
Erstellung einer Beschreibung bis zur Generierung des entsprechenden
Automatisierungscodes zu gewährleisten.
Informationen stehen auf diese Weise jederzeit zur Verfügung und
können
nicht im Laufe der Erstellung einer Automatisierungslösung verloren gehen.
-
Bei dem erfindungsgemäßen System
wird die Datendurchgängigkeit
dadurch erzielt, dass in einer Beschreibung steuerungsrelevante
Informationen bereits hinterlegt werden. Die Beschreibung, beispielsweise
einer Anlage, erfolgt mit Hilfe von Komponenten, welche die Elemente,
aus denen die Anlage besteht, repräsentieren. Innerhalb des Systems werden
die Komponenten jeweils durch sogenannte Funktionsbausteine repräsentiert.
Bei diesen Funktionsbausteinen handelt es sich um Objekte, welche von
einem bestimmten Typ sind und Eigenschaften sowie Funktionen aufweisen.
Diese Objekte sind im Rahmen des Systems wiederverwendbar. Die Komponenten
besitzen Anschlusspunkte, sogenannte Ports, über die ein Datentransfer in
der fertigen Automatisierungslösung
realisiert wird. Diesen Ports werden im Rahmen des erfindungsgemäßen Systems Informationen über die
Vorgänger-Nachfolger-Beziehungen
der Komponenten auf der Anlage zugewiesen. Über die Ports werden Signale
zwischen den Komponenten versendet. Hierbei werden den Signalen
sogenannte Metainformationen zugewiesen bzw. die Informationen werden
für die
Signale definiert. Die Verschaltung der Signale erfolgt auf Basis
von Regeln. Mit Hilfe der Metainformationen lassen sich eine Vielzahl
von Varianten für
mögliche
Automatisierungslösungen
beschreiben, die auf Basis des Layouts und im Zusammenhang mit den
gerichteten Beziehungen zwischen den Komponenten schließlich zu
einer Generierung von Automatisierungscode verwendet werden können.
-
Hierbei spezifizieren die Metainformationen die
möglichen
Beziehungen, die zwischen Komponenten des Automatisierungssystems
eingegangen werden können.
Auf Basis der Metainformation kann somit eine gezieltere Spezifikation
erfolgen und die Beschreibung definierter Beziehungen zwischen den beteiligten
Komponenten kann zu einer automatischen Generierung von Code führen.
-
Eine weitere vorteilhafte Ausbildung
der Erfindung ist dadurch gekennzeichnet, dass das System zum Generieren
von Automatisierungscode für fertigungs-
und/oder prozesstechnische Anlagen vorgesehen ist. Vorteilhaft ist
hierbei vor allem, dass die komplexe Erstellung von Automatisierungscode,
die mit Zunahme einer Automatisierungslösung entsprechend schwieriger
und fehlerbehafteter wird, speziell für den sicherheitsrelevanten
Bereich der Anlagenautomatisierung verwendet werden kann. Gerade
im Automatisierungsumfeld von fertigungs- und/oder prozesstechnische Anlagen
werden besonders komplexe Automatisierungslösungen generiert. Hierbei ist
es von großem
Vorteil, wenn ein durchgängiger
Informationsfluss gewährleistet
ist und die Generierung der Automatisierungslösung großteils automatisch erfolgt.
-
Eine weitere vorteilhafte Ausbildung
der Erfindung ist dadurch gekennzeichnet, dass eine Zeichnung mit
steuerungsrelevanten Informationen zur Verwendung als Beschreibung
vorgesehen ist. Vorteilhaft ist hierbei vor allem, dass eine Automatisierungslösung in
der Regel im ersten Schritt in Form einer Zeichnung konzipiert wird.
Zeichnerische Beschreibungen, wie sie beispielsweise in einem CAD-System
vorliegen, können
somit im Rahmen des erfindungsgemäßen Systems zur Generierung von
Automatisierungscode verwendet werden.
-
Eine weitere vorteilhafte Ausbildung
der Erfindung ist dadurch gekennzeichnet, dass vierte Mittel zur
Eingabe steuerungsrelevanter Informationen zur Verwendung als Beschreibung
vorgesehen sind. Eine Beschreibung muss nicht notwendigerwei se in Form
einer Zeichnung für
die Automatisierungslösung
vorliegen. Sie kann vielmehr beispielsweise auch in Tabellenform
oder in beliebiger anderer Form vorliegen. Ausschlaggebend für die Verwendbarkeit einer
Beschreibung ist, dass die steuerungsrelevanten Informationen in
die Beschreibung eingetragen sind. Ist dies der Fall, kann eine
beliebige Beschreibung als Basis für das erfindungsgemäße System verwendet
werden.
-
Eine weitere vorteilhafte Ausbildung
der Erfindung ist dadurch gekennzeichnet, dass ein Material- und/oder
Energie- und/oder
Informationsfluss in einer fertigungs- und/oder prozesstechnischen
Anlage als Basis für
die Abbildung der gerichteten Beziehungen zwischen den Komponenten
vorgesehen ist. Die Verwendung eines Materialflusses für die Beschreibung
der Beziehungen von automatisierungstechnisch relevanten Elementen
einer Anlage ist besonders vorteilhaft, da das Gesamtkonzept für die Erstellung
der Anlage in der Regel ohnehin auf Basis des Materialflusses erstellt
wird. In welcher Weise Materialien durch die Anlage bewegt bzw.
geschleust werden, ist einem Automatisierer immer unmittelbar klar.
Wird also die Lösung
auf Basis des Materialsflusses entwickelt, so kann die gerichtete
Beziehung zwischen den beteiligten Elementen auf einfache Weise
erstellt werden. Es sind keinen weiteren Abstraktionsebenen nötig, die
unter Umständen
zur Entstehung von Fehlern führen,
da die Beziehung zwischen den beteiligten Elementen nicht unmittelbar klar
wird. Verwendung des Materialflusses erleichtert einem Entwickler
einer Automatisierungslösung
die Arbeit unmittelbar, da die gerichteten Beziehungen intuitiv
definiert werden können.
-
Neben einem Materialfluss gibt es
in einer zu konzipierenden Anlage weitere „Flüsse", wie beispielsweise Energie und Information.
Auch diese können
als Basis für
die Abbildung der gerichteten Beziehungen dienen, da auch sie gerichtet
sind. Im Rahmen der Projektierung einer Anlage werde diese, oder
auch beliebige andere „Flüsse" ebenso wie ein Materialfluss definiert.
Die Komponenten sind in diese Flüsse
eingebunden und Verschaltungen als Basis zur Codegenerierung zwischen
den Komponenten können
daraus abgeleitet werden.
-
Eine weitere vorteilhafte Ausbildung
der Erfindung ist dadurch gekennzeichnet, dass die Generierung von
Automatisierungscode für
die zentrale und/oder verteilter Automatisierungslösungen vorgesehen
ist. Vorteilhaft ist hierbei, dass der mit Hilfe des Systems sowie
des Verfahrens generierte Code nicht auf einer Steuerung laufen
muss, sondern dass die generierte Lösung, also der Automatisierungscode auf
mehreren Steuerungen implementiert werden kann. Die komponentenorientierte
Codegenerierung auf Basis der Verschaltung der Signale mit den Metainformationen
ermöglicht
auch eine einfache Verteilung von Codebestandteilen auf mehrere
Steuerungen, da der Datenfluss durch die Metainformationen an den
Ports ohnehin gewährleistet
ist. Das Entwickeln von Übergabeprotokollen
zur Kommunikation erübrigt
sich. Eine Dezentralisierung der entwickelten Automatisierungslösungen ist
auf diese Weise einfach möglich.
-
Im Folgenden wird die Erfindung anhand
der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben
und erläutert.
-
Es zeigen:
-
1 eine
schematische Darstellung eines Systems zum Generieren von Automatisierungscode,
-
2 eine
beispielhafte Darstellung der Struktur von Steuerungen bei einer
verteilten Automatisierungslösung,
-
3 eine
beispielhafte Darstellung der automatischen Vernetzung von Komponenten
bei einer verteilten Automatisierungslösung.
-
Das in 1 beispielhaft
dargestellte System generiert Code, insbesondere Automatisierungscode
aus Beschreibungen 1. Hierbei besteht eine komplexe Struktur,
beispielsweise eine Anlage, aus einzelnen Komponenten 2.
Die Komponenten 2 sind durch Funktionsbausteine 3 repräsentiert,
und weisen Ports 6 auf. Signale 4 werden über die
Ports 6 versendet. Metainformation wird für die Signale 4 mithilfe
der Definitionsmittel 5 definiert. Auf Basis der Verschaltung
der Signale 4 wird durch einen Codegenerator 7 Code,
insbesondere Automatisierungscode, generiert.
-
Innerhalb des erfindungsgemäßen Systems wird
eine Durchgängigkeit
des Datenflusses im Rahmen des Engineerings einer Automatisierungslösung erreicht.
Die in einer Beschreibung 1, beispielsweise einer CAD-Zeichnung,
enthaltenen automatisierungsrelevanten Informationen werden automatisch für die Generierung
von Automatisierungscode genutzt. Die zu automatisierenden Teile
einer Anlage sind als Komponenten 2 in der Beschreibung 1 enthalten
und besitzen automatisierungsrelevante Informationen, die im Layout
hinterlegt sind. Die Komponenten 2 sind durch Funktionsbausteine 3 repräsentiert.
In der Regel ist eine Komponente 2 durch einen Funktionsbaustein
repräsentiert.
Weiterhin weisen die Komponenten 2 sogenannte Ports 6,
das sind Ein- und Ausgänge
für Daten
bzw. Signale auf. Auf der Anlage erfolgt die Kommunikation zwischen
den Komponenten über
diese Ports 6. Die in der Beschreibung 1 bereits
enthaltenen Informationen werden genutzt, um den Ports Ein- und
Ausgangsinformationen zuzuweisen. Hierüber wird die Vorgänger-Nachfolger-Beziehung
zwischen den Komponenten geregelt, d. h. es wird definiert, wer
wem über welchen
Dateneingang Daten sendet. Die Daten sind im System durch die Signale 4 repräsentiert.
Für diese
Signale 4, die über
die Ports 6 versendet werden und die den jeweiligen Funktionsbausteinen 3 zugeordnet
sind, welche die entsprechenden Komponenten 2 repräsentieren,
kann über
die Eingabemittel 5 Metainformation definiert werden. Die
Metainformation kann dabei als reine Zusatzinformation oder als für die Generierung
von Code relevanter Information ausgebildet sein.
-
Auf Basis der Metainformation werden
die Komponenten 2 automatisierungstechnisch miteinander
in Verbindung gesetzt. Bestimmte Verbindungen zwischen den Komponenten 2 können nur
implementiert werden, wenn dies durch die Zwänge, die in der Metainformation
beschrieben sind auch erlaubt wird. Es kommt somit zu einer automatisierten „Verdrahtung" der Komponenten 2 und
damit zur automatischen Generierung von Automatisierungscode.
-
Die Arbeit des Entwicklers wird enorm
erleichtert, da durch Definition der Metainformation weniger Freiheitsgrade
bestehen, was zu einer Verringerung der Fehlermöglichkeiten führt. Zudem
ist ein durchgängiger
Informationsfluss gewährleistet,
was den Verlust von bereits erarbeitetem Know-How im Rahmen der
Entwicklung einer Automatisierungslösung verringert.
-
Derartige Beschreibungen können beispielsweise
sein:
P7TE_OutputPS zeigt an, dass der Parameter (nur gültig als
Ausgangswert) mit dem Eingang eines Vorgängers (einer Vorgängerkomponente),
welcher über UDA
P7TE_IPS mit Wert "S" verfügt, verbunden
werden muss.
-
Auf Basis derartiger, hinterlegter
Regeln wird mittels eines Algorithmus der Code anhand eines Vorgänger/Nachfolger
Prinzips generiert, insbesondere bei Generierung von Code für eine zentrale
Automatisierungslösung.
-
Der Algorithmus zur Verbindung von
Komponenten auf Basis des Vorgänger/Nachfolger
Verhältnisses
kann beispielsweise wie folgt lauten:
- – Für alle Komponenten
(Ressourcen) wird der jeweilige Funktionsbaustein folgendermaßen verbunden
– Für alle Eingänge des
Funktionsbausteines
- – Für alle Vorgänger der
jeweiligen Komponente
– Suche
nach den Ausgängen
des Funktionsbausteines des Vorgängers,
welche über
ein P7TE_OPS mit Wert "S" verfügen.
– Suche
nach den Eingängen
des Funktionsbausteins der aktuellen Komponente, die über ein P7TE_IPS
mit Wert "P" verfügen.
– Verbinde
sie, wenn P7TE_NO übereinstimmt (oder
bei beiden nicht existiert bzw. belegt ist bzw. definiert ist)
-
2 stellt
den layout-orientierten Entwurf einer Struktur von Steuerungen mit
einem Kommunikationsnetzwerk 10 dar. Diese Struktur ist
Basis für die
Codegenerierung bei einer verteilten Automatisierungslösung. In
der Abbildung ist eine beispielhafte Struktur mit zwei Bereichen 13 dargestellt,
die jeweils durch eine koordinierende Steuerung 11 gesteuert
werden sollen. Mehrere Steuerungen 12 für die jeweiligen Komponenten 2 werden über das
Netzwerk 10, beispielsweise ein Ethernet bzw. PROFInet, durch
eine übergeordnete,
koordinierende Steuerung 11 angesprochen.
-
Der Codegenerierer für eine verteilte
Lösung,
beispielsweise für
PROFInet, geht immer von einer Struktur aus, bei der mindestens
eine Extra-Steuerung 11 für die Koordination zur Verfügung steht.
Die Zuweisung der Komponenten 2 zu dieser koordinierenden
Steuerung erfolgt grafisch im Layout. Dabei wird eine Netzwerktopologie
entworfen.
-
Eine spezielle Implementierung von
Komponenten, die für
eine korrekte Datenübertragung
bzw. Koordination zwischen den koordinierenden Steuerungen 12 verantwortlich
sind, erübrigt
sich, da die korrekte Kommunikation bereits durch den automatisch
auf Basis des Layouts generierten Automatisierungscode gegeben ist.
-
In 3 ist
die Generierung von Automatisierungscode bei einer verteilten Automatisierungslösung dargestellt..Die
Komponenten 2 einer verteilten Automatisierungslösung werden
beispielsweise nach folgendem Algorithmus bzw. folgenden Regeln
verknüpft:
-
AutomaticMode/ManualMode
-
Für
diese Parameter besitzt die koordinierende Steuerung 11 einen
Ausgang pro Wirkungsbereich, welcher diesem Steuerungsumfeld zugewiesen
wird. Die entsprechenden Ausgänge
werden mit den jeweiligen Eingängen
verbunden.
-
ManualKeyInput/InterlockIManualInterlock/AutomaticInterlock
-
Für
diesen Parameter besitzt die koordinierende Steuerung 11 für jede Komponente 2 einen
individuellen Ausgang, welcher mit dem jeweiligen Eingang der Komponente 2 verbunden
wird.
-
P7TE_OPS/P7TE_IPS
-
Die Ausgänge der Komponenten 2 werden jeweils
mit den entsprechenden Eingängen
verbunden.
-
Zusammenfassend betrifft die Erfindung
ein System und ein Verfahren, bei dem auf Basis von vorliegenden
Beschreibungen 1 einer Anlagenstruktur Automatisierungscode
generiert wird. Hierbei werden die Komponenten 2 der Anlage
durch Funktionsbausteine 3 repräsentiert und weisen Ports 6 zur Datenübertragung
auf. Signale 4, die den Funktionsbausteinen 3 zugeordnet
sind, werden über
die Ports übertragen.
Hierbei kann ein Signal 4 mehr als einem Port zugeordnet
sein, z. B. weil es den aktuell aktiven Port 6 kennzeichnet.
Den Signalen 4 wird Metainformation zugewiesen. Auf Basis
der Verschaltung der Signale wird Automatisierungscode automatisch
generiert.