Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR OPERATING AN AUTOMATION DEVICE, PROCESSOR FOR USE IN THE METHOD, AND AUTOMATION DEVICE OPERATING IN ACCORDANCE WITH THE METHOD
Document Type and Number:
WIPO Patent Application WO/2015/150210
Kind Code:
A1
Abstract:
The invention relates to a method for operating an automation device (18), which comprises a processor (20) for directly executing function modules (10), and an apparatus suitable for use in the method and an apparatus operating in accordance with the method, namely a processor (20) and an automation device (18) having such a processor (20), wherein a function module (10), which is selected as a component of an automation solution by means of a development environment (16), is converted into a code block (28) by means of the development environment (16), wherein the code block (28) comprises a type identifier (26) corresponding to the type of the particular function module (10), wherein inputs and outputs (12, 14) of the particular function module (10) are mapped to simultaneously usable processor registers (24) in the code block (28), wherein in order to execute the automation solution, a plurality of code blocks (28) is processed by the reading in of a particular code block (28) by the processor (20) and subsequent execution of the code block (28), wherein the execution of the code block (28) comprises selecting a function unit (30-34) from a plurality of function units (30-34) comprised by the processor (20) on the basis of the type identifier (26) of the code block (28) and activating the selected function unit (30-34) with the processor registers (24) specified in the code block (28).

Inventors:
SCHLARB EBERHARD (DE)
Application Number:
PCT/EP2015/056523
Publication Date:
October 08, 2015
Filing Date:
March 26, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F17/50; G06F9/38
Foreign References:
US20030204386A12003-10-30
US7093224B22006-08-15
US20090055565A12009-02-26
Other References:
None
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Betrieb eines Automatisierungsgeräts (18), wobei das Automatisierungsgerät (18) einen Prozessor (20) zur direkten Ausführung von Funktionsbausteinen (10) umfasst, wobei ein mittels einer Entwicklungsumgebung (16) als Bestandteil einer Automatisierungslösung ausgewählter Funktionsbaustein (10) mittels der Entwicklungsumgebung (16) in jeweils einen Codeblock (28) umgewandelt wird,

wobei der Codeblock (28) eine Typkennung (26) entsprechend der Art des jeweiligen Funktionsbausteins (10) umfasst,

wobei Ein- und Ausgänge (12, 14) des jeweiligen Funktions¬ bausteins (10) in dem Codeblock (28) in gleichzeitig verwend¬ bare Prozessorregister (24) abgebildet werden,

wobei zur Ausführung der Automatisierungslösung eine Mehrzahl von Codeblöcken (28) durch Einlesen jeweils eines Codeblocks (28) durch den Prozessor (20) und eine anschließende Ausführung des Codeblocks (28) abgearbeitet wird,

wobei die Ausführung des Codeblocks (28) eine Auswahl ei- ner Funktionseinheit (30-34) aus einer Mehrzahl von vom Prozessor (20) umfassten Funktionseinheiten (30-34) anhand der Typkennung (26) des Codeblocks (28) sowie eine Aktivierung der ausgewählten Funktionseinheit (30-34) mit den im Codeblock (28) spezifizierten Prozessorregistern (24) umfasst.

2. Verfahren nach Anspruch 1, wobei beim Umwandeln eines als Bestandteil einer Automatisierungslösung ausgewählten Funktionsbausteins (10) in jeweils einen Codeblock (28) dem jewei¬ ligen Codeblock (28) mittels der Entwicklungsumgebung (16) auf Basis des zugrunde liegenden Funktionsbausteins (10) eine eindeutige Typkennung (26) sowie eine Referenzierung einzel¬ ner, gleichzeitig verwendbarer Prozessorregister (24) des Prozessors (20) zugeordnet werden. 3. Verfahren nach Anspruch 1 oder 2, wobei beim Ausführen eines Codeblocks (28) die Inhalte der im Codeblock (28) spezi¬ fizierten Prozessorregister (24) mittels eines von dem Prozessor (20) umfassten Multiplexers (36) in einzelne, einer Funktionseinheit (30-34) des Prozessors (20) zugeordnete Ak¬ kus (40) geladen werden.

4. Verfahren nach Anspruch 1, 2 oder 3, wobei die mittels der Entwicklungsumgebung (16) auf Basis jeweils eines zugrunde liegenden Funktionsbausteins (10) generierten Codeblöcke (28) in einer Ablaufliste (42) zusammengefasst werden und wobei mittels des Prozessors (20) die Ablaufliste (42) zyklisch ausgeführt wird, indem sukzessive jeweils ein Codeblock (28) abgearbeitet wird.

5. Prozessor (20) zur direkten Ausführung von bei einer Spezifikation einer Automatisierungslösung verwendeten Funktionsbausteinen (10),

wobei der Prozessor (20) eine Vielzahl von Prozessorregis¬ tern (24) umfasst,

wobei der Prozessor (20) zur Ausführung unterschiedlicher Funktionsbausteine (10) jeweils eine Funktionseinheit (30-34) umfasst und,

wobei die Inhalte der Prozessorregister (24) jeweils einer

Funktionseinheit (30-34) mittels eines von dem Prozessor (20) umfassten Multiplexers (36) zuordenbar sind.

6. Prozessor (20) nach Anspruch 5, mit einer Mehrzahl von je- der Funktionseinheit (30-34) zugeordneten Akkus (40), wobei als Zuordnung der Inhalte der Prozessorregister (24) zu jeweils einer Funktionseinheit (30-34) mittels des Multiplexers (36) der Inhalt der Prozessorregister (24) in jeweils ein der Funktionseinheit (30-34) zugeordnetes Akku (40) ladbar ist.

7. Automatisierungsgerät (18) mit einem Prozessor (20) nach einem der Ansprüche 5 oder 6.

8. System mit einer Entwicklungsumgebung (16) und einem Auto- matisierungsgerät (18) nach Anspruch 7, wobei die Entwick¬ lungsumgebung (16) Programmcodemittel zur automatischen Umwandlung eines als Bestandteil einer Automatisierungslösung ausgewählten Funktionsbausteins (10) in jeweils einen Code¬ block (28) umfasst, wobei jeder Codeblock (28) eine eindeuti- ge Typkennung (26) auf Basis des zugrunde liegenden Funkti¬ onsbausteins (10) sowie eine Referenzierung einzelner, gleichzeitig verwendbarer Prozessorregister (24) des Prozessors (20) des Automatisierungsgeräts (18) umfasst.

Description:
Beschreibung

Verfahren zum Betrieb eines Automatisierungsgeräts, Prozessor zur Verwendung im Rahmen des Verfahrens und nach dem Verfah- ren arbeitendes Automatisierungsgerät

Die Erfindung betrifft ein Verfahren zum Betrieb eines Auto ¬ matisierungsgeräts, einen Prozessor zur Verwendung im Rahmen des Verfahrens sowie ein nach dem Verfahren arbeitendes Auto- matisierungsgerät .

Automatisierungsgeräte und Verfahren zu deren Betrieb sind an sich bekannt. In der nachfolgenden Beschreibung umfasst der Begriff "Automatisierungsgerät" sämtliche Geräte, Einrichtun- gen oder Systeme, also zum Beispiel Automatisierungsrechner in Form von speicherprogrammierbaren Steuerungen, Prozessrechner, ( Industrie- ) Computer und dergleichen sowie Prozess- leitsysteme (Leittechniksysteme) , wie sie zur Steuerung, Re ¬ gelung und/oder Überwachung technologischer Prozesse zum Bei- spiel 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.

Speziell im Rahmen von Prozessleitsystemen werden Automatisierungsrechner eingesetzt, deren Funktion über ein häufig auch als Entwicklungsumgebung (Engineering-System) bezeichnetes Projektierungssystem durch graphische Verknüpfung von Standardbausteinen (Regler-, Rechen- und Logikfunktionen) festgelegt wird. Die Gesamtheit der dabei projektierten Funk ¬ tionen wird im Folgenden als Automatisierungslösung bezeichnet und diese wird zur Automatisierung eines jeweiligen technischen Prozesses in den oder die dafür vorgesehenen und als Automatisierungsgerät fungierenden Automatisierungsrechner geladen und dort zyklisch ausgeführt.

Bisher kommen dabei im Wesentlichen zwei Verfahren zur Anwendung: Bei dem ersten - im Folgenden kurz als Interpreterlö- sung bezeichneten - Verfahren wird jede projektierte Funktion in eine Ablaufliste umgewandelt, die alle darin enthaltenen Bausteinfunktionen in deren Abarbeitungsreihenfolge auflistet sowie den Datenfluss zwischen den Einzelfunktionen und deren Parametrierung beschreibt. Diese Ablaufliste wird im Automa ¬ tisierungsrechner interpretiert. Bei dem zweiten - im Folgenden kurz als Compilerlösung bezeichneten - Verfahren wird jede projektierte Funktion durch einen Übersetzungsvorgang direkt in ausführbaren Maschinencode umgewandelt, der dann durch den Prozessor des Automatisierungsrechners ausgeführt wird .

Mit der Interpreterlösung sind Projektierungen flexibler und schneller änderbar und es wird kein zielsystemspezifischer Compiler benötigt. Mit der Compilerlösung werden höhere Ausführungsgeschwindigkeiten erreicht, weil eine Interpretati ¬ onsebene entfällt.

Sowohl bei der Interpreterlösung wie auch bei der Compiler- lösung müssen zur Ausführung einer einzelnen Bausteinfunktion jeweils eine Vielzahl von Prozessorbefehlen ausgeführt werden. Die Anzahl der auszuführenden Prozessorbefehle ist bei der Interpreterlösung am höchsten, weil bei der Compilerlösung aufgrund des zwischengeschalteten Übersetzungsschritts die Anzahl der notwendigen Prozessorbefehle reduziert ist.

Eine Aufgabe der vorliegenden Erfindung besteht darin, ein weiteres Verfahren zum Betrieb eines Automatisierungsgeräts bei der Ausführung zuvor projektierter Funktionen sowie ein nach dem Verfahren arbeitendes Automatisierungsgerät anzuge ¬ ben, insbesondere ein Verfahren, bei dem die Anzahl der auszuführenden Prozessorbefehle auch im Vergleich zu einer

Compilerlösung nochmals deutlich reduziert ist. Diese Aufgabe wird mit einem Verfahren zum Betrieb eines

Automatisierungsgeräts mit den Merkmalen des Anspruchs 1 so ¬ wie mit einem Prozessor mit den Merkmalen des Anspruchs 5 und einem Automatisierungsgerät mit den Merkmalen des Anspruchs 7 gelöst . Bei dem erfindungsgemäßen Verfahren umfasst das Automatisierungsgerät einen weiter unten mit zusätzlichen Details beschriebenen Prozessor zur direkten Ausführung von Funktionsbausteinen. Das Verfahren wird bei der Erstellung einer Auto- matisierungslösung ausgeführt. Bei dem Verfahren wird ein mittels einer Entwicklungsumgebung als Bestandteil einer Automatisierungslösung ausgewählter Funktionsbaustein automatisch mittels der Entwicklungsumgebung in jeweils einen Codeblock umgewandelt. Der Codeblock umfasst eine eindeutige Typ- kennung entsprechend der Art des jeweiligen Funktionsbau ¬ steins. Die von dem Codeblock umfasste Typkennung spezifiziert also die Art des zugrunde liegenden Funktionsbausteins. Ein- und Ausgänge des jeweiligen Funktionsbausteins werden mittels der Entwicklungsumgebung in dem Codeblock automatisch in gleichzeitig verwendbare Prozessorregister des Prozessors abgebildet. Der Prozessor umfasst dafür eine Vielzahl von Prozessorregistern. Bei einer ersten Realisierung eines solchen Prozessors wurden als Prozessorregister zum Beispiel 1.000 binäre Register und 250 Fließkommaregister implemen- tiert. Zur Ausführung der Automatisierungslösung wird eine Mehrzahl von Codeblöcken durch Einlesen jeweils eines Codeblocks durch den Prozessor und eine anschließende Ausführung des Codeblocks mittels des Prozessors abgearbeitet. Die Aus ¬ führung jeweils eines Codeblocks umfasst eine prozessorintern automatisch anhand der Typkennung des jeweiligen Codeblocks ablaufende Auswahl einer Funktionseinheit aus einer Mehrzahl von von dem Prozessor umfassten Funktionseinheiten sowie eine Aktivierung der ausgewählten Funktionseinheit mit den im Codeblock spezifizierten Prozessorregistern.

Der bei dem Verfahren verwendete erfindungsgemäße Prozessor zur direkten Ausführung von bei einer Spezifikation einer Automatisierungslösung verwendeten Funktionsbausteinen zeichnet sich einerseits durch eine Vielzahl von Prozessorregis- tern, zum Beispiel einer Anzahl von Prozessorregistern in der oben beispielhaft erwähnten Größenordnung, sowie eine Mehrzahl von Funktionseinheiten zur Ausführung unterschiedlicher Typen von Funktionsbausteinen aus. Die Inhalte der Prozessorregister sind prozessorintern und automatisch mittels eines von dem Prozessor umfassten Multiplexers jeweils einer Funktionseinheit zuordenbar.

Das zur Lösung der oben genannten Aufgabe vorgeschlagene Automatisierungsgerät zeichnet sich durch Mittel zur Ausfüh ¬ rung des hier und im Folgenden beschriebenen Verfahrens aus. Als Mittel zur Ausführung des Verfahrens fungiert ein nach ¬ folgend mit weiteren Details beschriebener Prozessor. Die oben genannte Aufgabe wird ebenfalls mit einem System mit zumindest einem derartigen Automatisierungsgerät sowie einer in Software ausgeführten Entwicklungsumgebung gelöst, mittels derer eine projektierte Automatisierungslösung in eine mittels des Prozessors verarbeitbare Form umgewandelt wird. Die dafür notwendige Funktionalität der Entwicklungsumgebung ist ebenfalls in Software implementiert. Die Erfindung ist inso ¬ weit auch ein Computerprogramm mit durch einen Computer ausführbaren Programmcodeanweisungen und andererseits ein Speichermedium mit einem derartigen Computerprogramm, also ein Computerprogrammprodukt mit Programmcodemitteln, sowie schließlich auch ein Automatisierungsgerät, zum Beispiel ein Automatisierungsgerät in Form eines sogenannten Programmiergeräts, in dessen Speicher als Mittel zur Durchführung des Verfahrens und seiner Ausgestaltungen ein solches Computer- programm geladen oder ladbar ist.

Der Vorteil der Erfindung besteht darin, dass im Vergleich zu den eingangs skizzierten bekannten Verfahren die dort zur Abarbeitung der projektierten Automatisierungsfunktion not- wendigen Interpretationsschichten und Übersetzungsvorgänge eliminiert werden, indem ein Prozessor definiert wird, der in der Lage ist, die gewählte Darstellungsform einer Ablaufliste direkt als Prozessorbefehlsliste auszuführen. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. Dabei verwendete Rückbeziehungen weisen auf die weitere Ausbildung des Gegenstandes des Hauptanspru ¬ ches durch die Merkmale des jeweiligen Unteranspruches hin. Sie sind nicht als ein Verzicht auf die Erzielung eines selb- stä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 nachge- ordneten Anspruch davon auszugehen, dass eine derartige Beschränkung in den jeweils vorangehenden Ansprüchen nicht vorhanden ist. Schließlich ist darauf hinzuweisen, dass das hier angegebene Verfahren auch entsprechend der abhängigen Vorrichtungsansprüche weitergebildet sein kann und umgekehrt.

Bei einer Ausführungsform des Verfahrens werden beim Umwandeln eines als Bestandteil einer Automatisierungslösung ausgewählten Funktionsbausteins in jeweils einen Codeblock die folgenden Schritte automatisch mittels der beim Erstellen der Automatisierungslösung verwendeten Entwicklungsumgebung ausgeführt: Zum einen wird dem jeweiligen Codeblock auf Basis des zugrunde liegenden Funktionsbausteins eine eindeutige Typkennung zugeordnet, so dass der Codeblock eine automatisch interpretierbare Information über die Art des zugrunde lie- genden Funktionsbausteins umfasst. Zum anderen wird dem je ¬ weiligen Codeblock eine Referenzierung einzelner, gleichzeitig verwendbarer Prozessorregister des Prozessors zugeordnet. Auf diese Weise werden die Ein- und Ausgänge des zugrunde liegenden Funktionsbausteins auf jeweils einzelne Prozessor- register abgebildet, wobei die Entwicklungsumgebung automa ¬ tisch die verfügbaren Prozessorregister verwaltet und ein bereits verwendetes Prozessorregister - von einer weiter unten beschriebenen Ausnahme abgesehen - bei der Umwandlung eines Funktionsbausteins in einen Codeblock nicht mehrfach verwen- det.

Bei einer Ausführungsform des Verfahrens werden beim Ausführen eines Codeblocks die Inhalte der im Codeblock spezifi ¬ zierten Prozessorregister mittels eines von dem Prozessor um- fassten Multiplexers in einzelne, einer Funktionseinheit des Prozessors zugeordnete Akkus (Akkuregister) geladen.

Bei einer Ausführungsform eines zur Ausführung eines solchen Verfahrens geeigneten Prozessors, bei dem die Inhalte der Prozessorregister mittels des Multiplexers jeweils einer Funktionseinheit zuordenbar sind, weist der Prozessor eine Mehrzahl von jeder Funktionseinheit zugeordneten Akkus auf. Die Zuordnung der Inhalte der Prozessorregister zu jeweils einer Funktionseinheit erfolgt durch den Multiplexer, indem mittels des Multiplexers der Inhalt der Prozessorregister in jeweils ein der Funktionseinheit zugeordnetes Akku ladbar ist . Die Akkus fungieren damit gleichsam als Schnittstelle zwi ¬ schen genau einer Funktionseinheit und den Prozessorregistern und jeder Funktionseinheit ist eine Mehrzahl von Akkus zuge ¬ ordnet. Bei einer ersten Realisierung eines solchen Prozessors wurden zum Beispiel für jede Funktionseinheit 32 Akkus für binäre Daten und 16 Akkus für Fließkommadaten implementiert. Nach dem Laden der Inhalte der Prozessorregister in die Akkus der jeweiligen Funktionseinheit kann die Funktions ¬ einheit aktiviert werden. Die Funktionseinheit führt dann den jeweiligen Codeblock und damit den zugrunde liegenden Funkti- onsbaustein aus.

Bei einer weiteren Ausführungsform des Verfahrens werden die mittels der Entwicklungsumgebung auf Basis jeweils eines zu ¬ grunde liegenden Funktionsbausteins generierten Codeblöcke in einer Ablaufliste zusammengefasst und mittels des Prozessors wird diese Ablaufliste zyklisch ausgeführt, indem sukzessive jeweils ein Codeblock abgearbeitet wird und am Ende der Ab ¬ laufliste die zyklische Ausführung der Ablaufliste mit der Abarbeitung des ersten Codeblocks erneut beginnt. Durch die Zusammenfassung der Codeblöcke in einer Ablaufliste und deren zyklische Ausführung ist die hier vorgeschlagene Form eines Automatisierungsprogramms mit von dem Prozessor direkt aus ¬ führbaren und jeweils einen Funktionsbaustein repräsentierenden Programmbefehlen, nämlich den Codeblöcken, auf eine übli- che Struktur von Automatisierungsprogrammen, die ebenfalls eine zyklisch ausgeführte Ablaufliste umfassen, abgebildet.

Insgesamt ist die Erfindung damit auch ein eine Entwicklungs ¬ umgebung sowie ein Automatisierungsgerät der hier und im Fol- genden beschriebenen Art umfassendes System. Die Entwicklungsumgebung ist ein Computerprogramm oder eine Kollektion von Computerprogrammen zur Erstellung einer Automatisierungslösung. Die Entwicklungsumgebung umfasst als Computerprogramm auch Programmcodemittel zur automatischen Umwandlung eines als Bestandteil einer Automatisierungslösung ausgewählten Funktionsbausteins in jeweils einen Codeblock. Als Ergebnis einer solchen automatischen Umwandlung umfasst ein resultierender Codeblock eine eindeutige Typkennung auf Basis des zu- gründe liegenden Funktionsbausteins sowie eine Referenzierung einzelner, gleichzeitig verwendbarer Prozessorregister des Prozessors des Automatisierungsgeräts. Für jeden Funktions ¬ baustein der Automatisierungslösung wird auf diese Weise ein Codeblock generiert und der resultierende Codeblock oder die resultierenden Codeblöcke werden durch das Automatisierungs ¬ gerät mittels des hier und im Folgenden beschriebenen speziellen Prozessors des Automatisierungsgeräts ausgeführt.

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.

Das oder jedes Ausführungsbeispiel ist nicht als Einschrän- kung der Erfindung zu verstehen. Vielmehr sind im Rahmen der vorliegenden Offenbarung durchaus auch Abänderungen und Modifikationen möglich, insbesondere solche Varianten und Kombi ¬ nationen, die zum Beispiel durch Kombination oder Abwandlung von einzelnen in Verbindung mit den im allgemeinen oder spe- ziellen 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 kombi ¬ nierbare Merkmale zu einem neuen Gegenstand oder zu neuen Verfahrensschritten bzw. Verfahrensschrittfolgen führen. Es zeigen ein UND-Gatter als Beispiel für einen bei einer Er Stellung einer Automatisierungslösung verwendbaren ( Funktions-) Baustein,

FIG 2 eine schematisch vereinfachte Darstellung eines zum

Abarbeiten solcher Bausteine vorgesehenen Prozessors, eine Darstellung zur Erläuterung einer Umsetzung ei ner projektierten Form eines Bausteins in eine von dem Prozessor ausführbare Form und

FIG 4 eine Übersichtsdarstellung mit einem Prozessor gemäß

FIG 2 und einer entsprechend einer Projektierung einer Automatisierungslösung entstehenden Ablaufliste, deren Inhalte sukzessive mittels des Prozessors aus ¬ geführt werden. Eine Automatisierungslösung, also ein Computerprogramm oder eine Kollektion von Computerprogrammen zur Steuerung und/oder Überwachung eines technischen Prozesses, umfasst üblicherwei ¬ se eine Vielzahl von im Folgenden kurz als Bausteine 10 bezeichneten Funktionsbausteinen 10 und die Darstellung in FIG 1 zeigt als ein besonders einfaches Beispiel für einen derartigen Baustein 10 ein UND-Gatter. Ein solches UND-Gatter umfasst eine Mehrzahl von Eingängen 12 - hier symbolisch als „E1.0" und „El.l" angegeben - und zumindest einen Ausgang 14 - symbolisch mit „A1.0" bezeichnet. Genauso wie ein solches UND-Gatter umfasst auch jeder im Folgenden betrachtete Baustein 10 zumindest einen Eingang 12 und zumindest einen Aus ¬ gang 14.

Eine Projektierung einer Automatisierungslösung und damit auch die Verwendung solcher Bausteine 10 erfolgt in grund ¬ sätzlich an sich bekannter Art und Weise mittels einer üblicherweise als Entwicklungsumgebung 16 (FIG 4) bezeichneten Software. Im Rahmen der Projektierung einer Automatisierungslösung werden üblicherweise eine Vielzahl von Bausteinen 10 verwendet und miteinander verknüpft. Im Interesse einer ein ¬ fachen Lesbarkeit der nachfolgenden Beschreibung - aber ohne Verzicht auf eine weitergehende Allgemeingültigkeit - wird diese so weit wie möglich am Beispiel eines Bausteins 10 in Form eines UND-Gatters - wie in FIG 1 gezeigt - fortgesetzt.

Bei der Projektierung eines Bausteins 10 stehen der Typ des Bausteins 10 (Bausteintyp) und die jeweilige Anzahl der Ein ¬ gänge 12 und Ausgänge 14 fest. Des Weiteren steht der zur Ausführung der Automatisierungslösung vorgesehene Prozessor 20 (FIG 2) fest, nämlich der Prozessor 20 des zur Steuerung und/oder Überwachung des jeweiligen technischen Prozesses bestimmten Automatisierungsgeräts 18. Ein solcher Prozessor 20 umfasst in einem Prozessorregisterspeicherbereich 22 eine Mehrzahl von Prozessorregistern 24, wobei die einzelnen Prozessorregister 24 unterschiedlichen Kategorien zugeordnet sein können.

Abgesehen von der nachfolgend erläuterten Ausnahme wird immer dann, wenn im Rahmen einer Projektierung einer Automatisierungslösung ein Baustein 10 verwendet wird, jedem dort verwendeten neuen Eingang 12 ein Prozessorregister 24 und jedem dort verwendeten neuen Ausgang 14 ebenfalls ein Prozessorregister 24 eindeutig zugeordnet. Diese Zuordnung erfolgt mit- tels einer von der Entwicklungsumgebung 16 umfassten Softwarefunktionalität und zur Illustration zeigt FIG 3 in einer tabellarischen Darstellung die von dem Baustein 10 gemäß FIG 1 umfassten Ein- und Ausgänge 12, 14 sowie deren Zuord ¬ nung zu jeweils einem Prozessorregister 24, wobei die zu- geordneten Prozessorregister 24 durch eine Adresse oder dergleichen eindeutig identifiziert sind. In der Darstellung in FIG 3 ist dies symbolisch mit einer innerhalb der Gesamtheit der Prozessorregister 24 eindeutigen und damit als Adresse fungierenden Nummer gezeigt. Darüber hinaus wird der Bau- steintyp des jeweiligen Bausteins 10 in eine im Folgenden als Typkennung 26 bezeichnete eindeutige Kennung - hier symbo ¬ lisch als „ID" gezeigt - umgesetzt. Eine Automatisierungslösung mit einer Vielzahl darin verwendeter Bausteine 10 wird auf diese Weise in eine der Anzahl der verwendeten Bausteine 10 entsprechende Anzahl von Code ¬ blöcken 28 umgewandelt und jeder Codeblock 28 stellt einen vom Prozessor 20 direkt ausführbaren Befehl dar.

Die oben erwähnte Ausnahme besteht darin, dass einzelne Bau ¬ steine 10 an ihren Eingängen auch mit einer Konstanten versorgt werden können, zum Beispiel einem Baustein zur Imple- mentation einer Multiplikation, der an einem seiner Eingänge mit einem festen Multiplikationsfaktor versorgt wird. Bei einem solchen Eingangsparameter wird der jeweilige Zahlenwert direkt in den Codeblock 28 eingetragen. Anstelle einer Adresse/Referenz umfasst der Codeblock 28 dann die jeweilige Kon- stante als Zahlenwert. Die einzelnen von einem Codeblock 28 umfassten Daten sind dabei so codiert, dass direkt angegebene Zahlenwerte und Adressen/Referenzen unterscheidbar sind.

Zur unmittelbaren Realisierung der Funktionalität des jewei- ligen Bausteins 10 mittels des Prozessors 20 umfasst dieser für jeden Bausteintyp eine eigene Funktionseinheit 30, 32, 34 (FIG 2). Jede Funktionseinheit 30-34 umfasst jeweils zumin ¬ dest eine logische oder arithmetische Operation in festver ¬ drahteter Form. Bei einer Ausführung eines auf einen Baustein 10 in Form eines UND-Gatters zurückgehenden Codeblocks 28 wird zum Beispiel eine erste Funktionseinheit 30 des Prozes ¬ sors 20 aktiv. Bei einer Ausführung eines auf einen Baustein 10 in Form eines Zählers oder dergleichen zurückgehenden Codeblocks 28 wird zum Beispiel eine zweite Funktionseinheit 32 aktiv und bei einer Ausführung eines auf einen Baustein 10 in Form eines Addierers zurückgehenden Codeblocks 28 wird zum Beispiel eine dritte Funktionseinheit 34 aktiv, usw.

Grundsätzlich ist dabei auch möglich, dass eine Funktionsein- heit 30-34 eine oder mehrere Standardoperationen (nicht gezeigt) nutzt, die auf dem Prozessor 20 genauso wie eine Funk ¬ tionseinheit 30-34 realisiert sind, so dass auf diese Weise bei komplexen Funktionalitäten solche Standardoperationen mehreren Funktionseinheiten 30-34 zur Verfügung stehen. Der Prozessor 20 umfasst also ggf. zusätzlich zu den Funktions ¬ einheiten 30-34 auch logische und/oder arithmetische Standardoperationen in festverdrahteter Form. Bei einer Ausführung eines einem Codeblock 28 entsprechenden Prozessorbefehls wird die jeweilige Funktionseinheit 30, 32, 34 mittels zumindest eines von dem Prozessor 20 umfassten Multiplexers 36 mit den gemäß der Projektierung vorgesehenen Ein- und Ausgängen 12, 14 versorgt, nämlich den in dem jewei- ligen Codeblock 28 eindeutig bezeichneten, zugeordneten Prozessorregistern 24 (vgl. FIG 3) . Dafür sind jeder Funktionseinheit 30, 32, 34 eine Mehrzahl von hier kurz und entspre ¬ chend der üblichen Terminologie als Akkus 40 bezeichnete Speicherzellen (Akkuregister) zugeordnet. Die Akkus 40 fun- gieren als Zwischenschicht zwischen den Prozessorregistern 24 und den Funktionseinheiten 30-34 und zwar ähnlich wie in einem Stapelspeicher (stack) angelegte lokale Variable eines Computerprogramms . Mittels des Multiplexers 36 werden die in dem Codeblock 28 spezifizierten Daten, also entweder die Inhalte der dort re- ferenzierten Prozessorregister 24 oder die dort eingetragenen Konstanten, in die Akkus 40 der jeweiligen Funktionseinheit 30-34 geladen. Damit stehen unmittelbar alle zur „Berechnung" des zugrunde liegenden Bausteins 10 notwendigen Daten zur

Verfügung und die Ausführung des Bausteins 10 reduziert sich auf einen Prozessorzyklus. Der dabei ermittelte Ausgangswert wird in Akku 40 geschrieben und mittels des Multiplexers 36 oder eines weiteren Multiplexers 38 zurück in das im Code- block 28 spezifizierte Prozessorregister 24 geschrieben, nämlich dasjenige Prozessorregister 24, das bei der ursprünglichen Umsetzung des zugrunde liegenden Bausteins 10 als Reprä ¬ sentant des Ausgangs 14 ausgewählt wurde (vgl. FIG 3) . Bei der Ausführung der Funktionalität des Bausteins 10 gemäß FIG 1 steht also nach der Versorgung der Akkus 40 mit den entsprechenden Inhalten gemäß dem Codeblock 28 und der anschließenden Aktivierung der jeweiligen Funktionseinheit 30- 34 des Prozessors 20 unmittelbar das Ergebnis der Ausführung (hier das Ergebnis der UND-Verknüpfung) in dem dem jeweiligen Ausgang 14 zugeordneten Prozessorregister 24 zur Verfügung.

Wenn ein Eingang 12 eines einem Baustein 10 in Signalfluss- richtung folgenden Bausteins 10 (Folgebaustein) mit einem Ausgang 14 eines in Signalflussrichtung vorangehenden Bausteins 10 (Vorgängerbaustein) verbunden wird, so erhält der Eingang 12 des Folgebausteins 10 im Rahmen der Umsetzung mittels der Entwicklungsumgebung 16 die Adresse, ggf. die daten- typbehaftete Adresse, des Ausgangs 14 des Vorgängerbausteins 10. Am Beispiel des in FIG 1 gezeigten UND-Gatters mit „AI .0 = E1.0 & El.l" und eines weiteren UND-Gatters (nicht gezeigt) mit „A5.2 = AI .0 & E8.0" bedeutet dies, dass der Eingang 12 „A1.0" des Folgebausteins 10 die Adresse des Ausgangs 14 „A1.0" des in FIG 1 gezeigten Vorgängerbausteins 10 erhält, hier also zum Beispiel die Adresse „#42" (FIG 3) .

Bei einer besonderen Ausführungsform des Prozessors 20 ist vorgesehen, dass unterschiedliche Prozessorregister 24 zur Verfügung stehen und dass diese datentypspezifisch gruppiert sind. Bei einer solchen datentypspezifischen Gruppierung unterscheiden sich die Prozessorregister 24 zum Beispiel in ihrer Bitbreite. Demgemäß können zum Beispiel binäre, also 1- Bit breite Prozessorregister 24 sowie Prozessorregister 24 entsprechend üblicher Datentypen (byte - 8-Bit; word - 16- Bit; real,longint - 32/64-Bit, usw.) zur Verfügung stehen.

Die Darstellung in FIG 4 zeigt die bisher erläuterten Einzelheiten in einer zusammengefassten Form. Mittels einer Ent- wicklungsumgebung 16 wird eine Automatisierungslösung erstellt. Das Erstellen der Automatisierungslösung umfasst eine Verwendung einer Mehrzahl von Bausteinen 10. Jeder Baustein 10 wird mittels einer von der Entwicklungsumgebung 16 umfass- ten Softwarefunktionalität in einen Codeblock 28 umgewandelt. Die Automatisierungslösung ist dann eine Ablaufliste 42 mit jeweils einem Codeblock 28 für jeden verwendeten Baustein 10. Die Ablaufliste 42 wird zyklisch ausgeführt. Dabei greift der Prozessor 20 des zur Ausführung der Automatisierungslösung bestimmten Automatisierungsgeräts 18 sukzessive auf jeweils einen Codeblock 28 zu und führt diesen in der oben beschriebenen Art und Weise aus. Jeder Codeblock 28 entspricht dabei einem Prozessorbefehl. Mit dem Einlesen des Prozessorbefehls wird der Multiplexer 36 oder werden die Multiplexer 36, 38 durch die Typkennung 26 am Anfang des Codeblocks 28 so geschaltet, dass die im Codeblock 28 referenzierten Prozessorregister 24 oder die im Codeblock 28 spezifizierten Daten mit der typspezifischen (Bausteintyp- spezifischen) Operationslogik der aufgrund der Typkennung 26 ausgewählten Funktionseinheit 30-34 des Prozessors 20 verbun ¬ den werden.

Obwohl die Erfindung im Detail durch das Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch das oder die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Einzelne im Vordergrund stehende Aspekte der hier eingereich ¬ ten Beschreibung lassen sich damit kurz wie folgt zusammenfassen: Es werden ein Verfahren zum Betrieb eines Automatisierungsgeräts 18, welches einen Prozessor 20 zur direkten Ausführung von Funktionsbausteinen 10 umfasst, und eine zur Verwendung im Rahmen des Verfahrens geeignete sowie eine nach dem Verfahren arbeitende Vorrichtung, nämlich ein Prozessor bzw. ein Automatisierungsgerät 18 mit einem solchen Prozessor 20, angegeben, wobei ein mittels einer Entwicklungsumgebung 16 als Bestandteil einer Automatisierungslösung ausgewählter Funktionsbaustein 10 mittels der Entwicklungsumgebung 16 in jeweils einen Codeblock 28 umgewandelt wird, wobei der Code ¬ block 28 eine Typkennung 26 entsprechend der Art des jeweili ¬ gen Funktionsbausteins 10 umfasst, wobei Ein- und Ausgänge 12, 14 des jeweiligen Funktionsbausteins 10 in dem Codeblock 28 in gleichzeitig verwendbare Prozessorregister 24 abgebil ¬ det werden, wobei zur Ausführung der Automatisierungslösung eine Mehrzahl von Codeblöcken 28 durch Einlesen jeweils eines Codeblocks 28 durch den Prozessor 20 und eine anschließende Ausführung des Codeblocks 28 abgearbeitet wird, wobei die Ausführung des Codeblocks 28 eine Auswahl einer Funktionseinheit 30-34 aus einer Mehrzahl von vom Prozessor 20 umfassten Funktionseinheiten 30-34 anhand der Typkennung 26 des Codeblocks 28 sowie eine Aktivierung der ausgewählten Funktions- einheit 30-34 mit den im Codeblock 28 spezifizierten Prozessorregistern 24 umfasst.

Der Vorteil des hier beschriebenen Ansatzes besteht vor allem darin, dass bisher eine Ausführung einer Bausteinfunktion die Abarbeitung einer Vielzahl von Prozessorbefehlen auf einem zielsystemspezifischen Standardprozessor umfasst, während sich jetzt eine Bausteinfunktion auf einen Prozessorbefehl reduziert. Damit werden die Vorteile der beiden eingangs skizzierten bisherigen Ansätze vereinigt. Wie bei einer

Interpreterlösung wird bei dem hier vorgestellten Ansatz kein spezieller Compiler benötigt. Darüber hinaus ist die Flexibi ¬ lität des Ansatzes und die Möglichkeit, Änderungen durchzu ¬ führen, vergleichbar mit der bisherigen Interpreterlösung. Wie bei der Compilerlösung ergibt sich eine - im Vergleich zur Interpreterlösung - deutlich erhöhte Ausführungsgeschwindigkeit. Tatsächlich liegt die mit dem hier vorgestellten Ansatz erreichbare Ausführungsgeschwindigkeit teilweise noch deutlich über der mit der Compilerlösung erreichbaren Ausführungsgeschwindigkeit, denn eine Bausteinfunktion ist auf ei- nen einzigen Prozessorbefehl reduziert. Schließlich wäre eine Qualifizierung für einen sogenannten Fail-Safe-Einsatz erheblich billiger, da kein unterlagertes Betriebssystem, kein Compiler und keine Software, welche die Bausteine implemen ¬ tiert, und kein Standardprozessor mehr zu berücksichtigen sind, zum Beispiel bei einer vorangehenden Zertifizierung, mittels derer die Eignung der vorgenannten Komponenten für den Fail-Safe- Einsatz festgestellt und dokumentiert wird.

Bei einer praktischen Erprobung des hier vorgestellten Ansat- zes in Form einer VHDL-Prototypimplementierung des Prozessors 20 auf dem FPGA einer Baugruppe (I/O-Baugruppe) eines Automa ¬ tisierungsgeräts 18 wurden die Ausführungszeiten des Prozes ¬ sors 20 mit denen eines in der Sprache C geschriebenen Interpreters für einen Standardprozessor für die gleiche Ablauf- liste 42 verglichen. Dabei war bei gleicher Taktfrequenz eine Geschwindigkeitssteigerung um einen Faktor der Größenordnung 100 zu beobachten. Der hier vorgestellte Ansatz eignet sich besonders für den Einsatz in I /O-Baugruppen, die über einen FPGA-Baustein verfügen, da der Prozessor 20 als VHDL-Modul implementierbar ist und somit leicht in diese Umgebung portierbar ist.

Bezugszeichenliste

10 Baustein

12 Eingang

14 Ausgang

16 Entwicklungsumgebung

18 Automatisierungsgerät

20 Prozessor

22 ProzessorregisterSpeicherbereich

24 Prozessorregister

26 Typkennung

28 Codeblock

30 Funktionseinheit

32 Funktionseinheit

34 Funktionseinheit

36 Multiplexer

38 Multiplexer

40 Akku/Akkuregister

42 Ablaufliste