DE10214553A1 - Device and method for the automatic generation of automation software - Google Patents

Device and method for the automatic generation of automation software

Info

Publication number
DE10214553A1
DE10214553A1 DE2002114553 DE10214553A DE10214553A1 DE 10214553 A1 DE10214553 A1 DE 10214553A1 DE 2002114553 DE2002114553 DE 2002114553 DE 10214553 A DE10214553 A DE 10214553A DE 10214553 A1 DE10214553 A1 DE 10214553A1
Authority
DE
Germany
Prior art keywords
data
software
generator
knowledge
automation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE2002114553
Other languages
German (de)
Inventor
Werner Hoefler
Michael Tiegelkamp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE2002114553 priority Critical patent/DE10214553A1/en
Priority to JP2003581008A priority patent/JP2005527893A/en
Priority to EP03717166A priority patent/EP1490758A2/en
Priority to CNB038077671A priority patent/CN100386722C/en
Priority to PCT/DE2003/001091 priority patent/WO2003083650A2/en
Publication of DE10214553A1 publication Critical patent/DE10214553A1/en
Priority to US10/956,074 priority patent/US20050188351A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Es wird eine Einrichtung und ein Verfahren zur automatischen Generierung von Automatisierungssoftware mit einem zumindest einen Softwaregenerator (11) und einen Projektgenerator (12) umfassenden Generator (10) angegeben, wobei mittels des Softwaregenerators (11) anhand von vorgebbaren oder vorgegebenen ersten Daten, wie insbesondere Planungsdaten (17), Programmwissen (18) und Verwaltungswissen (19) eine Entwicklungsumgebung (14) generierbar ist und unter Verwendung der Entwicklungsumgebung (14) mittels des Projektgenerators (12) anhand von vorgebbaren oder vorgegebenen zweiten Daten, wie insbesondere Planungsdaten (17), Erfahrungsdaten (20) und Hardwarewissen (21), eine Steuerungssoftware (15) generierbar ist.The invention relates to a device and a method for the automatic generation of automation software with a generator (10) comprising at least one software generator (11) and a project generator (12), the software generator (11) using predetermined or predetermined first data, such as in particular Planning data (17), program knowledge (18) and administrative knowledge (19) a development environment (14) can be generated and using the development environment (14) by means of the project generator (12) on the basis of predeterminable or predetermined second data, such as in particular planning data (17), Experience data (20) and hardware knowledge (21), a control software (15) can be generated.

Description

Die Erfindung bezieht sich auf eine Einrichtung zur automatischen Generierung von Automatisierungssoftware oder Teilen, wie insbesondere Strukturen und derselben. Sie bezieht sich weiter auf ein korrespondierendes Verfahren zur automatischen Generierung solcher Automatisierungssoftware. The invention relates to a device for automatic generation of automation software or parts, like especially structures and the like. It relates further on a corresponding method for automatic Generation of such automation software.

In der älteren deutschen Patentanmeldung 102 06 691 wird ein Verfahren zur Nutzung zumindest eines in einem Speicher eines Rechners vorgehaltenen Dienstes durch einen Nutzer angegeben. Als Dienst wird dabei das Bereitstellen einer den Spezifikationen des Nutzers entsprechenden Software bezeichnet. Der Nutzer meldet sich bei einer einen Zugang zu dem Dienst überwachenden Verwaltungseinheit an und spezifiziert den gewünschten Dienst. Darauf ermittelt die Verwaltungseinheit zum Abruf eines der Spezifikation entsprechenden Dienstes dazu erforderliche Einzelkomponenten und generiert aus diesen die Software. Darüber hinaus generiert die Verwaltungseinheit für jede erforderliche Einzelkomponente einen Eintrag in einem dem Nutzer zugeordneten Lizenzdatensatz einer Lizenzdatenbank. In the older German patent application 102 06 691 a Method for using at least one in a memory Computer provided service specified by a user. As a service, the provision of a Software corresponding to the specifications of the user. The User reports an access to the service monitoring administrative unit and specifies the desired service. The administrative unit then determines Calling up a service corresponding to the specification required individual components and generates the Software. In addition, the administrative unit generates for each required individual component one entry in one license data record assigned to the user License database.

In der älteren deutschen Patentmeldung 102 09 640 wird ein Verfahren zur Generierung eines Automatisierungsprogramms aus einem HMI-Programm (HMI = "human machine interface") mittels eines Generators angegeben, wobei der Generator Strukturen des HMI-Programms erkennt und in Strukturen des Automatisierungsprogramms umsetzt. In the older German patent application 102 09 640 a Process for generating an automation program an HMI program (HMI = "human machine interface") using of a generator specified, the generator structures of the HMI program recognizes and in structures of the Automation program implemented.

Der Erfindung besteht in der Vereinfachung der Abläufe bei der Erstellung von Automatisierungssoftware. The invention consists in simplifying the processes at the creation of automation software.

Eine solche Vereinfachung der Abläufe bei der Erstellung von Automatisierungssoftware wird mit einer Einrichtung, wie sie in Anspruchs 1 angegeben ist, erreicht. Dazu ist eine Einrichtung zur automatischen Generierung von Automatisierungssoftware mit einem zumindest einen Softwaregenerator und einen Projektgenerator umfassenden Generator vorgesehen, wobei mittels des Softwaregenerators anhand von vorgebbaren oder vorgegebenen ersten Daten, wie insbesondere Planungsdaten, Programmwissen und Verwaltungswissen eine Entwicklungsumgebung generierbar ist und wobei unter Verwendung der Entwicklungsumgebung mittels des Projektgenerators anhand von vorgebbaren oder vorgegebenen zweiten Daten, wie insbesondere Planungsdaten, Erfahrungsdaten und Hardwarewissen, eine Steuerungssoftware generierbar ist. Eine solche Vereinfachung wird gleichfalls mit einem korrespondierenden Verfahren, wie es in Anspruch 7 definiert ist, erreicht. Such a simplification of the processes when creating Automation software comes with a facility like this is specified in claim 1 achieved. There is one Device for the automatic generation of Automation software with at least one software generator and a generator comprising a project generator is provided, whereby by means of the software generator based on specifiable or predetermined first data, such as in particular Planning data, program knowledge and administrative knowledge Development environment can be generated and where using the Development environment using the project generator based on predeterminable or predefined second data, such as in particular Planning data, experience data and hardware knowledge, one Control software can be generated. Such a simplification is also using a corresponding method, such as it is defined in claim 7 achieved.

Die Erfindung geht von der Erkenntnis aus, dass sich Weiterentwicklungen an Software stets auf die Hinzufügung weiterer Leistungsmerkmale bezieht, mit denen der Anwender die eigentliche Aufgabe vermeintlich einfacher oder schneller lösen kann. Die Erfindung stellt jedoch die Aufgabe in den Vordergrund und sieht die automatische, zur Lösung der Aufgabe optimierte Generierung von Automatisierungssoftware vor. Dabei werden die derzeitigen Möglichkeiten beim Zugriff auf Daten verschiedenster Art ausgenutzt. Mit Hilfe leistungsfähiger Suchalgorithmen, wie sie zum Beispiel bei der Nutzung des Internets Verwendung finden, können umfangreiche Datenbestände in Bezug auf vorgegebene oder vorgebbare Schlüsseldaten, wie sie z. B. bei der Beschreibung der Aufgabe in Form von Schlüsselworten wie z. B. "Brauerei", "Stahlwalzwerk", etc. vorkommen, durchsucht werden. Daneben beobachtet man den Trend zur Verwendung standardisierter Schnittstellen. Diese erlauben z. B. eine Weiterverarbeitung von CAD-Daten in der Form, dass anhand der CAD-Daten und anhand von mit einzelnen Datensätzen solcher CAD-Daten verknüpften Bibliotheksinformationen sämtliche in einem zu automatisierenden technischen Prozess enthaltenen Komponenten wie Motoren, Ventile, Endschalter, etc. ermittelbar sind. Anhand von vorgegebenen oder vorgebbaren Regeln ist jede Komponente z. B. der Kategorie der Aktoren oder der Kategorie der Sensoren zuordenbar. Für jeden Aktor sind eine geeignete Anzahl von Ausgängen einer Automatisierungshardware und für jeden Sensor entsprechend eine geeignete Anzahl von Eingängen vorzusehen, so dass damit bereits in groben Zügen das zu bearbeitende Datenvolumen feststeht und insbesondere ein zentrales Automatisierungsgerät nach Kriterien wie Rechenleistung und Speicherkapazität automatisch ausgewählt werden kann. The invention is based on the knowledge that Further developments in software always due to the addition other features with which the user obtains the actual task supposedly easier or faster can solve. The invention, however, sets the object in Foreground and sees the automatic, to solve the Task optimized generation of automation software in front. The current options for access exploited on various types of data. With help powerful search algorithms, such as those used in the Use of the internet can be extensive Data stocks in relation to predefined or predefinable Key data such as B. in the description of Task in the form of keywords such as B. "Brewery", "Steel rolling mill", etc. occur, are searched. Besides one observes the trend towards the use of standardized Interfaces. These allow e.g. B. further processing of CAD data in the form that based on the CAD data and based on such CAD data with individual data sets linked library information all in one components contained in the automation technical process such as motors, valves, limit switches, etc. can be determined. Each is based on predefined or specifiable rules Component z. B. the category of actuators or the category assignable to the sensors. There are suitable ones for each actuator Number of outputs of an automation hardware and for each sensor has a suitable number of inputs to be provided, so that this is already in broad outline processing data volume is fixed and in particular a Central automation device based on criteria such as computing power and storage capacity can be selected automatically.

Demgegenüber wird Automatisierungssoftware heute mit käuflich erwerblichen, allgemein gebräuchlichen Standard-Entwicklungsumgebungen erstellt. Solche Standard-Entwicklungsumgebungen stellen gleichsam wie Konfektionsware eine Anzahl von Funktionen und Diensten zur Verfügung, ohne dabei individuelle Bedürfnisse einzelner Anwender berücksichtigen zu können. Gemäß der Erfindung ist zur automatischen Generierung von Automatisierungssoftware oder Teilen, wie insbesondere Strukturen, derselben zunächst eine Generierung einer individuellen Entwicklungsumgebung und nachfolgend unter Verwendung der individuell generierten Entwicklungsumgebung die Generierung einer Steuerungssoftware vorgesehen. In contrast, automation software is now available for purchase commercial, commonly used Standard development environments created. Such standard development environments make up a number of Features and services are available without sacrificing individual To be able to take the needs of individual users into account. According to the invention for the automatic generation of Automation software or parts, such as in particular Structures, first of all a generation of an individual Development environment and subsequently using the individually generated development environment the generation a control software provided.

Bei der Steuerungssoftware handelt es sich um diejenige Automatisierungssoftware, die einen konkreten technischen Prozess, z. B. eine Fertigungsstraße, wie ein Walzgerüst oder eine Folge von Bestückungsautomaten, steuert und/oder überwacht und schließt ggf. eine graphische Benutzerführung z. B. mittels eines Bedien- und Beobachtungssystems oder einer Mensch-Maschine-Schnittstelle (HMI) ein. The control software is the one Automation software that has a specific technical Process, e.g. B. a production line, such as a roll stand or a sequence of pick and place machines, controls and / or monitors and closes, if necessary, a graphical user guidance. B. by means of an operating and monitoring system or Human-machine interface (HMI).

Bei der individuellen Entwicklungsumgebung handelt es sich um die Zusammenstellung sämtlicher zur Generierung der Steuerungssoftware notwendiger Komponenten, wie Bibliotheken oder Bibliotheksbestandteilen oder deren Äquivalente, Treiber zur Ansteuerung bestimmter Prozess- oder Automatisierungskomponenten, wie Netzwerkverbindungen, Kommunikationsschnittstellen, etc. sowie ein Transformationsprogramm, das nach Art eines Compilers, Interpreters oder dgl. zum Generieren der auf einer Zielhardware ausführbaren Steuerungssoftware vorgesehen ist. The individual development environment is the compilation of all to generate the Control software of necessary components, such as libraries or Library components or their equivalents, drivers for Control of certain process or Automation components, such as network connections, Communication interfaces, etc. as well as a transformation program, which according to Art a compiler, interpreter or the like for generating the Control software executable on target hardware is provided.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. Danach ist vorgesehen, dass der Generator weiter einen Anlagenkonfigurator umfasst und dass mittels des Anlagenkonfigurators anhand von vorgebbaren oder vorgegebenen dritten Daten, wie insbesondere Hardwarewissen, eine Konfiguration einer Automatisierungshardware ermittelbar ist. Damit wird die automatische Erstellung von Automatisierungssoftware abgerundet, indem zunächst die Entwicklungsumgebung und unter deren Verwendung die eigentliche Steuerungssoftware generiert wird, die mit Verfügbarkeit der Konfiguration der Automatisierungshardware direkt zum Ablauf gebracht werden kann. Advantageous embodiments of the invention are the subject of subclaims. After that, it is provided that the generator further includes a system configurator and that by means of the System configurator based on predeterminable or specified third data, in particular hardware knowledge, a Configuration of an automation hardware can be determined. In order to is the automatic creation of automation software rounded off by first the development environment and under the use of which generates the actual control software which is available with the configuration of the Automation hardware can be run directly.

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. An exemplary embodiment of the invention is described below the drawing explained in more detail. Corresponding to each other Objects or elements are the same in all figures Provide reference numerals.

Darin zeigen Show in it

Fig. 1 eine schematische Darstellung eines Generators zur automatischen Generierung von Automatisierungssoftware mit den dazu erforderlichen Daten, Fig. 1 is a schematic representation of a generator for the automatic generation of automation software with the necessary data,

Fig. 2 einzelne Verfahrensschritte bei der automatischen Generierung von Automatisierungssoftware und Fig. 2 individual process steps in the automatic generation of automation software and

Fig. 3 ein Diagramm des Datenflusses bei der automatischen Generierung von Automatisierungssoftware. Fig. 3 is a diagram of the data flow in the automatic generation of automation software.

Fig. 1 zeigt in einer schematischen Übersicht einen Generator 10 mit einem Softwaregenerator 11, einen Projektgenerator 12 und einem Anlagenkonfigurator 13. Fig. 1 shows a schematic overview of a generator 10 with a software generator 11, a project generator 12 and a system configurator. 13

Der Softwaregenerator 11 ist zur Generierung einer Entwicklungsumgebung 14 und der Projektgenerator 12 zur Generierung einer Steuerungssoftware 15 vorgesehen. Der Anlagenkonfigurator 13 ist zur Ermittlung einer geeigneten Konfiguration 16 zum Betrieb der Steuerungssoftware 15 auf einer Automatisierungshardware vorgesehen. Bei der nicht dargestellten Automatisierungshardware handelt es sich um einzelne Automatisierungsgeräte, wie z. B. eine speicherprogrammierbare Steuerung oder einen Prozessrechner oder einen Verbund solcher Geräte, mit z. B. dezentralen Peripherieanschaltungen und/oder einem Leitrechner mit z. B. Produktplanungsfunktionalitäten. Ggf. nimmt der Anlagenkonfigurator 13 das Konfigurieren der Automatisierungshardware auch selbst vor, indem er die jeweilige Konfiguration 16, das heißt die Konfigurationsdaten, an die Automatisierungshardware übermittelt. Die Steuerungssoftware 15 steuert die Automatisierungshardware und steuert und/oder überwacht damit einen technischen Prozess (nicht dargestellt), wie z. B. eine Schweißstraße (Automobilproduktion oder dgl.) oder ein Walzgerüst (Stahlerzeugung). The software generator 11 is provided for generating a development environment 14 and the project generator 12 for generating a control software 15 . The system configurator 13 is provided for determining a suitable configuration 16 for operating the control software 15 on an automation hardware. The automation hardware, not shown, is individual automation devices, such as. B. a programmable logic controller or a process computer or a combination of such devices, with z. B. decentralized peripheral connections and / or a host computer with z. B. Product planning functionalities. Possibly. the system configurator 13 also configures the automation hardware itself by transmitting the respective configuration 16 , that is to say the configuration data, to the automation hardware. The control software 15 controls the automation hardware and thus controls and / or monitors a technical process (not shown), such as. B. a welding line (automobile production or the like.) Or a rolling stand (steel production).

Die Generierung der Entwicklungsumgebung 14 durch den Softwaregenerator 11 erfolgt anhand von vorgebbaren oder vorgegebenen ersten Daten, wie insbesondere Planungsdaten 17, Programmwissen 18 und Verwaltungswissen 19. Die Planungsdaten 17 umfassen Daten wie Konstruktionsdaten, wie sie z. B. von einem CAD-System verarbeitet oder bereit gestellt werden. Daneben oder zusätzlich umfassen die Planungsdaten 17 eine Aufgabenbeschreibung und/oder eine Problembeschreibung und/oder Daten zu vorhergehenden Projekten. Das Programmwissen 18 umfasst Daten zu Funktionen wie z. B. Leistungsumfang oder Verfügbarkeit, Strukturen, Versionen und/oder Abhängigkeiten, z. B. einzelner Funktionen untereinander. Das Verwaltungswissen 19 umfasst Daten für eine Nutzungsverwaltung, Daten für eine Abrechnung und/oder Daten für einen Aktualisierungsservice (Update). The development environment 14 is generated by the software generator 11 on the basis of predeterminable or predefined first data, such as in particular planning data 17 , program knowledge 18 and administrative knowledge 19 . The planning data 17 include data such as construction data, such as, for. B. processed or provided by a CAD system. In addition or in addition, the planning data 17 include a task description and / or a problem description and / or data on previous projects. The program knowledge 18 includes data on functions such as. B. scope of services or availability, structures, versions and / or dependencies, e.g. B. individual functions with each other. The administrative knowledge 19 includes data for usage management, data for billing and / or data for an update service (update).

Die jeweils zur Verfügung stehenden oder zur Verfügung gestellten ersten Daten werden mittels des Softwaregenerators 11 analysiert. Anhand z. B. der Konstruktionsdaten ist ermittelbar, dass im technischen Prozess z. B. frequenzgeregelte Antriebe vorhanden sind. Solche Antriebe erfordern spezielle Aktoren. Diese wiederum erfordern spezielle Software zu deren Ansteuerung. Die damit als erforderlich ermittelte Software ist eine notwendige Komponente der automatisch zu erstellenden Entwicklungsumgebung 14. Anhand der Aufgaben- oder Problembeschreibung, insbesondere in Verbindung mit Daten zu vorhergehenden Projekten, ist anhand von Teilaufgaben oder Teilproblemen, ggf. unter Berücksichtigung der jeweiligen Behandlung bei vorangehenden Projekten, ermittelbar, welche weiteren Komponenten für die Entwicklungsumgebung 14 notwendig sind. Für jede für die Entwicklungsumgebung 14 notwendige Komponente ist anhand des Programmwissens 18 ermittelbar, welche Komponenten, wie Softwaremodule, Bibliotheken oder dgl., für die Entwicklungsumgebung 14 erforderlich sind. Zu diesem Zweck wird z. B. auf Daten zum Funktionsumfang oder auf Daten zu Strukturen zurückgegriffen. Häufig macht eine für die Entwicklungsumgebung 14 erforderliche Komponente die Aufnahme weiterer Komponenten erforderlich, weil Abhängigkeiten, wie Importbeziehungen, zwischen der erforderlichen Komponente und der oder jeder weiteren Komponente bestehen. Zu diesem Zweck wird z. B. auf Daten zu Abhängigkeiten oder auf Daten zu Strukturen zurückgegriffen. Des Weiteren muss die Kompatibilität der in die Entwicklungsumgebung 14 eingehenden Komponenten gewährleistet sein. Dazu wird z. B. auf Daten zu Versionen und/oder Abhängigkeiten zurückgegriffen. Schließlich muss die Verfügbarkeit und ggf. die Aktualität der einzelnen erforderlichen Komponenten gewährleistet sein. Dazu ist ein Zugriff auf Daten zur Nutzungsverwaltung und/oder Daten für einen Aktualisierungsservice vorgesehen. Um die verwendeten Komponenten abrechnen oder deren Verwendung berechnen zu können ist ein Zugriff auf Abrechnungsdaten vorgesehen. Nach Berücksichtigung sämtlicher zur Verfügung stehender erster Daten steht schließlich eine individuell an die jeweilige Aufgabe oder Problemstellung angepasste Entwicklungsumgebung 14 zur Verfügung. The first data available or made available are analyzed by means of the software generator 11 . Using z. B. the design data can be determined that in the technical process z. B. frequency controlled drives are available. Such drives require special actuators. These in turn require special software to control them. The software thus determined to be necessary is a necessary component of the development environment 14 to be created automatically. On the basis of the task or problem description, in particular in connection with data on previous projects, it is possible to determine which further components are necessary for the development environment 14 on the basis of sub-tasks or sub-problems, possibly taking into account the respective treatment in previous projects. For each component required for the development environment 14, the program knowledge 18 can be used to determine which components, such as software modules, libraries or the like, are required for the development environment 14 . For this purpose, e.g. For example, data on the scope of functions or data on structures can be used. Often, a component required for the development environment 14 requires the inclusion of additional components because dependencies, such as import relationships, exist between the required component and the or each additional component. For this purpose, e.g. B. access to data on dependencies or data on structures. Furthermore, the compatibility of the components entering the development environment 14 must be ensured. For this, z. B. access to data on versions and / or dependencies. Finally, the availability and, if necessary, the timeliness of the individual required components must be guaranteed. For this purpose, access to data for usage management and / or data for an update service is provided. In order to be able to bill the components used or to calculate their use, access to billing data is provided. After taking into account all available first data, a development environment 14 that is individually adapted to the respective task or problem is finally available.

Die Generierung der Steuerungssoftware 15 durch den Projektgenerator 12 erfolgt unter Verwendung der Entwicklungsumgebung 14 anhand von vorgebbaren oder vorgegebenen zweiten Daten, wie insbesondere den Planungsdaten 17 sowie Erfahrungsdaten 20 und Hardwarewissen 21. Anhand der Planungsdaten 17, wie insbesondere Aufgaben- und Problembeschreibung, ggf. in Verbindung mit Daten zu vorhergehenden Projekten, lässt sich eine Struktur der Steuerungssoftware 15 im Hinblick auf erforderliche Funktionen und eine Reihenfolge zum Aufruf solcher Funktionen ermitteln. Je detaillierter z. B. die Daten zu vorhergehenden Projekten sind, desto umfassender können die ermittelten Strukturen mit Programmanweisungen gefüllt werden. Wenn eine automatische Generierung solcher Programmanweisungen nicht möglich ist, kann vorgesehen sein, dass die Strukturen zumindest mit Informationen, beispielsweise in Form von Kommentarzeilen, gefüllt werden, die einen Programmierer bei einer späteren Überarbeitung darüber informieren, welche Operationen an einer konkreten Stelle der Steuerungssoftware 15 vorzusehen sind. The control software 15 is generated by the project generator 12 using the development environment 14 on the basis of predeterminable or predefined second data, such as in particular the planning data 17 and experience data 20 and hardware knowledge 21 . Using the planning data 17 , such as, in particular, a description of the task and problem, possibly in conjunction with data relating to previous projects, a structure of the control software 15 can be determined with regard to required functions and a sequence for calling up such functions. The more detailed z. For example, if the data for previous projects are, the more extensively the determined structures can be filled with program instructions. If automatic generation of such program instructions is not possible, it can be provided that the structures are at least filled with information, for example in the form of comment lines, which inform a programmer when a revision is to be carried out about which operations to provide at a specific point in the control software 15 are.

Die Erfahrungsdaten 20 umfassen zum Beispiel Daten zu Experten- oder Branchenwissen. Solche Daten können auch aktuelle Trends berücksichtigen. Anhand dieser Daten kann zum Beispiel automatisch ermittelt werden, dass in kritischen Industrieumgebungen explosionsgeschützte Feldgeräte oder Feldgeräte mit einer besonderen Schutzart, z. B. IP65, vorzusehen sind. Solche Feldgeräte sind für die jeweiligen Anbieter im Vergleich zu Standard-Feldgeräten Sonderlösungen. Wenn Standard-Feldgeräte z. B. mit einer Kanalgranularität von 1 oder 2 Bit (Digital I/O) erhältlich sind, sind spezielle Feldgeräte nur in wenigen Konfigurationen, z. B. 8-Bit und 16-Bit (Digital I/O), verfügbar. Das heißt unter Berücksichtigung von Branchen- oder Expertenwissen kann sich eine andere Konfiguration der Feldgeräte ergeben, als dies ohne Berücksichtigung solcher Informationen der Fall wäre. Wenn ein oder mehrere spezielle Feldgeräte mit acht digitalen Ein-/Ausgabekanälen als erforderlich ermittelt werden, erfordert dies auch entsprechende Anpassungen für die diese Feldgeräte ansteuernde Steuerungssoftware 15. The experience data 20 include, for example, data on expert or industry knowledge. Such data can also take current trends into account. This data can be used to automatically determine, for example, that explosion-protected field devices or field devices with a special degree of protection, e.g. B. IP65, are to be provided. Such field devices are special solutions for the respective providers compared to standard field devices. If standard field devices e.g. B. with a channel granularity of 1 or 2 bits (digital I / O) are available, special field devices are only in a few configurations, e.g. B. 8-bit and 16-bit (digital I / O) available. This means that taking into account industry or expert knowledge, a different configuration of the field devices can result than would be the case without taking such information into account. If one or more special field devices with eight digital input / output channels are determined to be necessary, this also requires corresponding adaptations for the control software 15 which controls these field devices.

Des Weiteren oder alternativ können die Erfahrungsdaten 20 auch eine Herstellerbibliothek mit z. B. Musterlösungen umfassen. Anhand solcher Musterlösungen können automatisch generierte Strukturen der Steuerungssoftware 15 mit geeigneten Programmanweisungen gefüllt werden, um z. B. die korrekte Bedienung eines konkreten Feldgerätes zu gewährleisten. Furthermore or alternatively, the experience data 20 can also be a manufacturer library with e.g. B. Include sample solutions. On the basis of such model solutions, automatically generated structures of the control software 15 can be filled with suitable program instructions in order to, for example, B. to ensure the correct operation of a specific field device.

Schließlich können die Erfahrungsdaten 20 auch eine Erfahrungsdatenbank umfassen. Aus einer solchen Erfahrungsdatenbank können Informationen darüber entnommen werden, ob sich eine konkrete, ggf. auch automatisch generierte Automatisierungssoftware bei einem vergleichbaren Problem oder Teilproblem oder einer vergleichbaren Aufgabe oder Teilaufgabe als geeignet herausgestellt hat. Damit werden nach Art einer evolutionären Strategie geeignete Lösungen von ungeeigneten oder weniger geeigneten unterscheidbar. Für die jeweilige Steuerungssoftware 16 werden vorzugsweise als geeignet erkannte Lösungen auf deren Verwendbarkeit überprüft. Finally, the experience data 20 can also include an experience database. From such an experience database, information can be obtained as to whether a specific, possibly also automatically generated, automation software has proven to be suitable for a comparable problem or partial problem or a comparable task or partial task. In this way, suitable solutions can be distinguished from unsuitable or less suitable in the manner of an evolutionary strategy. For the respective control software 16 , solutions that are recognized as suitable are preferably checked for their usability.

Die Erfahrungsdaten 20 werden kontinuierlich aktualisiert, denn jede generierte Steuerungssoftware 16 liefert neue Erfahrungsdaten 20, die für nachfolgende Projekte nützlich sein können. The experience data 20 are updated continuously, because each generated control software 16 supplies new experience data 20 which can be useful for subsequent projects.

Einzelne Programmanweisungen in der Steuerungssoftware 15 beziehen sich auf eine Ansteuerung der Automatisierungshardware. Um eine korrekte Ansteuerung der Automatisierungshardware oder einzelner Automatisierungskomponenten der Automatisierungshardware, wie z. B. Ein-/Ausgabebaugruppen zum Aufnehmen von Daten aus dem technischen Prozess oder zum Übermitteln von Steuerinformationen an den technischen Prozess, zu gewährleisten, umfassen die zweiten Daten auch Hardwarewissen 21. Anhand des Hardwarewissens 21 ist z. B. ermittelbar, welche Maßnahmen zum Aktivieren eines bestimmten Ausgangs eines bestimmten Feldgerätes der Automatisierungshardware erforderlich sind. Damit lassen sich automatisch die entsprechenden Programmanweisungen für die Steuerungssoftware 15 generieren um z. B. den dritten Ausgang eines Feldgerätes zu aktivieren. Ein Feldgerät ist üblicherweise über einen Feldbus mit einem zentralen Automatisierungsgerät, wie einer speicherprogrammierbaren Steuerung, verbunden. Anhand des Hardwarewissens lassen sich automatisch für die Steuerungssoftware 15 auch diejenigen Programmanweisungen generieren, um das Übertragungsprotokoll für den jeweils eingesetzten Feldbus zu bedienen. Individual program instructions in the control software 15 relate to a control of the automation hardware. To correctly control the automation hardware or individual automation components of the automation hardware, such as. B. to ensure input / output modules for receiving data from the technical process or for transmitting control information to the technical process, the second data also include hardware knowledge 21 . Based on the hardware knowledge 21 , for. B. can be determined which measures are required to activate a specific output of a specific field device of the automation hardware. This can automatically generate the corresponding program instructions for the control software 15 to z. B. to activate the third output of a field device. A field device is usually connected via a fieldbus to a central automation device, such as a programmable logic controller. Based on the hardware knowledge, those program instructions can also be generated automatically for the control software 15 in order to operate the transmission protocol for the fieldbus used in each case.

Die automatische Generierung der Konfiguration 16 durch den Anlagenkonfigurator 13 erfolgt unter Verwendung dritter Daten, wie z. B. Hardwarewissen 21. Bei der Generierung der Steuerungssoftware 16 ergibt sich Art und Umfang der benötigten Automatisierungshardware. Danach ist z. B. bekannt, über welche Leistungsfähigkeit, z. B. im Hinblick auf Verarbeitungsgeschwindigkeit oder Speicherkapazität, ein zentrales Automatisierungsgerät verfügen muss. Damit ist anhand von zum Hardwarewissen 21 gehörenden, ggf. auch herstellerübergreifenden Katalogdaten ermittelbar, welches Automatisierungsgerät diese Anforderungen erfüllt. Nachdem auf diese Weise das konkrete Automatisierungsgerät ermittelt ist, ist anhand von weiterem Hardwarewissen 21 auch ermittelbar, wie und in welchem Umfang das Automatisierungsgerät konfigurierbar ist. Anhand der Erfordernisse der Steuerungssoftware 15 lässt sich die jeweils erforderliche Konfiguration 16 ermitteln und ggf. auch automatisch an das Automatisierungsgerät in passender Form übermitteln. Ähnlich ergibt sich aus Art um Umfang der benötigten Automatisierungshardware z. B. auch, ob und in welcher Form die einzelnen Automatisierungskomponenten untereinander durch einen Feldbus verbunden werden müssen. Aufgrund des anhand der Steuerungssoftware 15 ermittelbaren zu erwartenden Datenvolumens ergibt sich eine Datenübertragungsrate für den Feldbus. Die Datenübertragungsrate beeinflusst ggf. das verwendbare Protokoll. Die auf diese Weise ermittelten Konfigurationsdaten im Hinblick auf Protokoll und Datenübertragungsrate gehen ebenfalls in die Konfiguration 16 ein. Eine Übermittlung der Konfiguration 16 an die jeweiligen Komponenten der Automatisierungshardware umfasst dann auch das Konfigurieren jedes an den Feldbus angeschlossenen Automatisierungsgerätes. The automatic generation of the configuration 16 by the system configurator 13 takes place using third data, such as, for. B. Hardware knowledge 21 . When the control software 16 is generated, the type and scope of the automation hardware required result. Then z. B. known about what performance, z. B. in terms of processing speed or storage capacity, a central automation device must have. It can thus be ascertained on the basis of catalog data belonging to hardware knowledge 21 , possibly also across manufacturers, which automation device fulfills these requirements. After the specific automation device has been determined in this way, it can also be determined on the basis of further hardware knowledge 21 how and to what extent the automation device can be configured. Based on the requirements of the control software 15 , the configuration 16 required in each case can be determined and, if appropriate, also automatically transmitted to the automation device in a suitable form. Similar results from the type and scope of the required automation hardware. B. also whether and in what form the individual automation components must be connected to each other by a fieldbus. Due to the expected data volume that can be determined using the control software 15 , a data transmission rate for the fieldbus results. The data transfer rate may influence the protocol that can be used. The configuration data determined in this way with regard to protocol and data transmission rate also go into configuration 16 . A transmission of the configuration 16 to the respective components of the automation hardware then also includes the configuration of each automation device connected to the fieldbus.

Nach all diesen Schritten steht eine automatisch generierte Automatisierungssoftware zur Verfügung, die die Entwicklungsumgebung 14, die Steuerungssoftware 15 und ggf. die Konfiguration 16 umfasst. Die ersten Daten beeinflussen dabei die automatische Generierung der Entwicklungsumgebung 14. Die zweiten Daten und die Entwicklungsumgebung 14 beeinflussen die automatische Generierung der Steuerungssoftware 15. Die dritten Daten und die Steuerungssoftware 15 beeinflussen die automatische Generierung der Konfiguration 16. Damit wirkt sich also jede Änderung an den ersten Daten auf die Entwicklungsumgebung 14 und somit zumindest mittelbar auf die Steuerungssoftware 15 und die Konfiguration 16 aus. Entsprechend wirkt sich jede Änderung an den zweiten Daten auf die Steuerungssoftware 15 und zumindest mittelbar auf die Konfiguration 16 aus. Schließlich wirkt sich jede Änderung an den dritten Daten auf die Konfiguration 16 aus. Als Änderung der ersten, zweiten oder dritten Daten ist z. B. eine Änderung des Umfangs und/oder der Verfügbarkeit der jeweiligen Daten aber auch Aktualisierungen der jeweiligen Daten zu verstehen. Solche Änderungen haben selbstverständlich nur dann Auswirkungen auf die automatisch generierte Automatisierungssoftware, wenn die Änderungen sich auf solche Daten beziehen, die bei der automatischen Generierung verwendet wurden oder verwendbar sind. After all of these steps, automatically generated automation software is available, which includes the development environment 14 , the control software 15 and possibly the configuration 16 . The first data influence the automatic generation of the development environment 14 . The second data and the development environment 14 influence the automatic generation of the control software 15 . The third data and the control software 15 influence the automatic generation of the configuration 16 . Every change to the first data thus has an effect on the development environment 14 and thus at least indirectly on the control software 15 and the configuration 16 . Accordingly, any change in the second data affects the control software 15 and at least indirectly on the configuration 16 . Finally, any change to the third data affects configuration 16 . As a change in the first, second or third data z. B. to understand a change in the scope and / or the availability of the respective data but also updates of the respective data. Of course, such changes only affect the automatically generated automation software if the changes relate to data that was or can be used in the automatic generation.

Es ergibt sich insgesamt ein iterativer Prozess bei der automatischen Generierung von Automatisierungssoftware, der anhand von Fig. 2 veranschaulicht wird. Ein erster Verfahrensschritt 22 umfasst das Festlegen der verwendeten oder verwendbaren ersten, zweiten und dritten Daten. Dazu gehört eine manuelle Spezifikation von z. B. Planungsdaten 17 mit einer Beschreibung des zu automatisierenden technischen Prozesses. Ferner oder alternativ gehört dazu ein Import importierbarer Daten oder das Bereitstellen einer Möglichkeit zum Import solcher Daten. Schließlich kann der erste Verfahrensschritt 22 auch das Auswählen oder Festlegen einer Importschnittstelle umfassen, mittels derer erste, zweite oder dritte Daten importiert werden können. The overall result is an iterative process in the automatic generation of automation software, which is illustrated with reference to FIG. 2. A first method step 22 includes determining the first, second and third data used or usable. This includes a manual specification of e.g. B. Planning data 17 with a description of the technical process to be automated. Furthermore or alternatively, this includes importing importable data or providing an option for importing such data. Finally, the first method step 22 can also include the selection or definition of an import interface, by means of which the first, second or third data can be imported.

Ein zweiter Verfahrensschritt 23 umfasst das automatische Generieren der Entwicklungsumgebung 14, der Steuerungssoftware 15 und ggf. der Konfiguration 16. Ein dritter Verfahrensschritt 24 umfasst das Bearbeiten und Erweitern der Steuerungssoftware 15 mittels der Entwicklungsumgebung 14. In einem vierten Verfahrensschritt 25 wird die generierte Automatisierungssoftware, also die Steuerungssoftware 15 und ggf. die Konfiguration 16 zur Automatisierungshardware übertragen. A second method step 23 comprises the automatic generation of the development environment 14 , the control software 15 and possibly the configuration 16 . A third method step 24 involves editing and expanding the control software 15 by means of the development environment 14 . In a fourth method step 25 , the generated automation software, that is to say the control software 15 and possibly the configuration 16, is transmitted to the automation hardware.

Ein Anwender kann in jedem Verfahrensschritt 22-24 Änderungen vornehmen und darauf die automatische Generierung der Automatisierungssoftware erneut veranlassen. Der Anwender führt die einzelnen Verfahrensschritte sowie darin erforderliche Anpassungen oder Ergänzungen so oft durch, bis schließlich die fertige Automatisierungssoftware zur Verfügung steht. Je umfassender die ersten, zweiten und dritten Daten sind, desto detaillierter kann die Automatisierungssoftware automatisch durch den Generator 10 generiert werden. Nicht automatisch generierbare Komponenten oder Sequenzen der Automatisierungssoftware ergänzt der Anwender im dritten Verfahrensschritt 24. Dabei wird er nach Möglichkeit durch automatisch in die Steuerungssoftware 15 anstelle von nicht automatisch generierbaren Sequenzen eingefügte Kommentare unterstützt. Diese Kommentare enthalten Hinweise auf die Funktionalität der nicht automatisch generierbaren Sequenz und vorzugsweise Hinweise auf die dafür zu verwendenden Daten. A user can make changes in each process step 22-24 and then initiate the automatic generation of the automation software again. The user carries out the individual process steps as well as the necessary adjustments or additions until the finished automation software is finally available. The more extensive the first, second and third data are, the more detailed the automation software can be generated automatically by the generator 10 . In the third method step 24 , the user supplements components or sequences of the automation software that cannot be generated automatically. If possible, he is supported by comments that are automatically inserted into the control software 15 instead of sequences that cannot be generated automatically. These comments contain information on the functionality of the sequence that cannot be generated automatically and preferably information on the data to be used for it.

Der Generator 10 erzeugt eine individuell abgestimmte Automatisierungssoftware. Bei z. B. neuen Funktionen wird die erzeugte Automatisierungssoftware automatisch aktualisiert. Das heißt in der Entwicklungsumgebung 14 ist diese neue Funktion verfügbar, so dass sie ggf. auch Bestandteil der schließlich generierten Steuerungssoftware 15 wird. Für den Anwender entfallen damit Administrationsaufgaben für Software, Projekte und Bibliotheken. Als Zusatzinformation wird festgehalten, welche Daten, das heißt z. B. welche Funktionen, für die automatische Generierung der Automatisierungssoftware tatsächlich benötigt wurden. Damit können etwaige Lizenzgebühren konkret anhand der jeweils tatsächlich in Anspruch genommenen Leistung berechnet werden. Der Anbieter von Automatisierungssoftware, etwa ein Anbieter von Entwicklungsumgebungen zur Erstellung von Automatisierungssoftware, vermeidet die Notwendigkeit, diverse Softwarepakete mit jeweils unterschiedlichem Leistungs- und Funktionsumfang in noch dazu häufig verschiedenen Versionen vorhalten und unterstützen zu müssen, da die Automatisierungssoftware und damit auch die jeweilige Entwicklungsumgebung individuell entsprechend der konkreten Anforderungen des Anwenders generiert werden. The generator 10 generates individually tailored automation software. At z. B. new functions, the generated automation software is updated automatically. This means that this new function is available in the development environment 14 , so that it may also become part of the control software 15 that is ultimately generated. This eliminates administrative tasks for software, projects and libraries for the user. As additional information, it is recorded which data, that is, e.g. B. which functions were actually required for the automatic generation of the automation software. This means that any license fees can be calculated based on the service actually used. The provider of automation software, for example a provider of development environments for the creation of automation software, avoids the need to have to maintain and support various software packages with different performance and functional scope in often different versions, since the automation software and thus the respective development environment are individual generated according to the specific requirements of the user.

Fig. 3 zeigt ein Diagramm des Datenflusses bei der automatischen Generierung von Automatisierungssoftware. Ähnlich wie in Fig. 1 ist der Generator 10 mit Softwaregenerator 11, Projektgenerator 12 und Anlagenkonfigurator 13 im Zentrum dargestellt. Der Generator 10 verarbeitet Eingabedaten 26 und erzeugt Ausgabedaten 27. Zu den Eingabedaten 27 gehören die ersten, zweiten und dritten Daten. Zu den ersten Daten gehören wiederum die Planungsdaten 17, das Programmwissen 18 und Verwaltungswissen 19. Zu den zweiten Daten gehören die Planungsdaten 17, Erfahrungsdaten 20 und Hardwarewissen 21. Zu den dritten Daten gehört zumindest das Hardwarewissen 21. Fig. 3 shows a diagram of the data flow in the automatic generation of automation software. Similar to FIG. 1, the generator 10 is shown with software generator 11 , project generator 12 and plant configurator 13 in the center. The generator 10 processes input data 26 and generates output data 27 . The input data 27 include the first, second and third data. The first data in turn includes the planning data 17 , the program knowledge 18 and administrative knowledge 19 . The planning data 17 , experience data 20 and hardware knowledge 21 belong to the second data. The third data includes at least hardware knowledge 21 .

Anhand vorgebbarer oder vorgegebener erster Daten generiert der Softwaregenerator 11 die Entwicklungsumgebung 14. Anhand vorgebbarer oder vorgegebener zweiter Daten und unter Verwendung der Entwicklungsumgebung 14 generiert der Projektgenerators 12 die Steuerungssoftware 15. Der Anlagenkonfigurator 13 generiert schließlich anhand vorgegebener oder vorgebbarer dritter Daten die Konfiguration 16 der jeweiligen Automatisierungshardware. The software generator 11 generates the development environment 14 on the basis of predefinable or predefined first data. The project generator 12 generates the control software 15 on the basis of predeterminable or predefined second data and using the development environment 14 . The system configurator 13 finally generates the configuration 16 of the respective automation hardware on the basis of predefined or predefinable third data.

Die wesentliche Einflussmöglichkeit des Anwenders besteht einerseits in der Bereitstellung und Vervollständigung geeigneter erster, zweiter und dritter Daten und andererseits in Form einer Benutzereingabe 28, mit der der Anwender in jedem Verfahrensschritt 22-25 (Fig. 2) die automatische Generierung durch manuelle Ergänzungen oder Modifikationen beeinflussen kann. The essential influence of the user consists on the one hand in the provision and completion of suitable first, second and third data and on the other hand in the form of a user input 28 , with which the user generates the automatic generation through manual additions or modifications in each process step 22-25 ( FIG. 2) can influence.

Zur Verarbeitung der Eingabedaten 26 ist für den Generator 10 eine Vorverarbeitung 29 vorgesehen. Diese gewährleistet die Möglichkeit des Imports der ersten, zweiten oder dritten Daten indem entweder eine definierte Schnittstelle zum Zugriff auf diese Daten bedient wird oder indem die Daten in ein zur weiteren Verarbeitung z. B. durch den Softwaregenerator 11 oder den Projektgenerator 12 geeignetes Format konvertiert werden. For processing the input data 26 , preprocessing 29 is provided for the generator 10 . This ensures the possibility of importing the first, second or third data either by using a defined interface to access this data or by using the data in a for further processing. B. can be converted by the software generator 11 or the project generator 12 suitable format.

Des Weiteren berücksichtigt die Vorverarbeitung 29 auch vorgegebene oder vorgebbare und damit insbesondere veränderbare und erweiterbare Regeln einer nicht separat dargestellten Regeldatenbank. Mit Hilfe dieser Regeln, die je nach Bedarf automatisch ausgewählt und angewendet werden, ist eine Analyse und Auswertung der ersten, zweiten und dritten Daten möglich. Furthermore, the preprocessing 29 also takes into account predefined or predefinable and thus in particular changeable and expandable rules of a rule database which is not shown separately. With the help of these rules, which are automatically selected and applied as required, the first, second and third data can be analyzed and evaluated.

Eine dieser Regeln lautet z. B.: "Wenn dezentrale Feldgeräte vorgesehen oder erforderlich sind, ist eine Feldbusverbindung zwischen dem oder jedem dezentralen Feldgerät und einem zentralen Automatisierungsgerät vorzusehen." Weitere Regeln beziehen sich dann z. B. auf die Art der Feldbusverbindung z. B. im Hinblick auf den maximal erreichbaren Datendurchsatz. Andere Regeln können z. B. die Verwendung sicherheitsgerichteter Automatisierungskomponenten beeinflussen. Eine solche Regel könnte z. B. lauten: "Bei kontinuierlichen, insbesondere nicht unterbrechbaren Prozessen sind sicherheitsgerichtete oder fehlertolerante Automatisierungskomponenten vorzusehen". Eine solche Regel ist ein Beispiel für eine erweiterbare Regel, bei der der Anwender z. B. angeben kann, dass "ein chemischer Prozess zum Raffinieren von Rohöl ein solcher kontinuierlicher, nicht unterbrechbarer Prozess ist". Ob es sich beim jeweiligen technischen Prozess um einen zum Raffinieren von Rohöl handelt, ergibt sich anhand der ersten Daten, insbesondere anhand der Planungsdaten, z. B. anhand der Aufgaben- oder Problembeschreibung. One of these rules is e.g. For example: "If decentralized field devices A fieldbus connection is provided or required between the or each decentralized field device and one central automation device. "Further rules then refer to z. B. on the type of fieldbus connection z. B. with regard to the maximum achievable Data throughput. Other rules can e.g. B. the use influence safety-related automation components. A such a rule could e.g. B. read: "With continuous, in particular, are non-interruptible processes safety-related or fault-tolerant automation components Such a rule is an example of a expandable rule in which the user z. B. can specify that "a chemical process for refining crude oil such a continuous, uninterruptible process is ". Whether the respective technical process is a Refining crude oil results from the first Data, especially based on the planning data, e.g. B. based on the task or problem description.

Die automatische Verarbeitung der ersten, zweiten und dritten Daten, das Ermitteln untereinander bestehender Beziehungen, die Auswahl passender Regeln etc. wird erleichtert, wenn sämtliche Daten mit normierten Kennungen versehen und daran identifizierbar sind. Das Format solcher Kennungen folgt vorzugsweise bestehenden oder sich abzeichnenden Standards. So hat z. B. das W3C (WWW-Consortium; WWW = World Wide Web) WebServices, also im Internet angebotene oder abrufbare Dienstleistungen, bezüglich des Nachrichtenformats und -austauschs, im Hinblick auf Directory-Services zur Speicherung von Dienstbeschreibungen (UDDI) sowie einer Sprache zur Dienstbeschreibung (WSDL) spezifiziert. Automatic processing of the first, second and third Data, identifying existing relationships, the selection of suitable rules etc. is made easier if All data with standardized identifiers and attached to it are identifiable. The format of such identifiers follows preferably existing or emerging standards. So z. B. the W3C (WWW Consortium; WWW = World Wide Web) Web services, i.e. those offered or available on the Internet Services related to the message format and -exchange, with regard to directory services for storage of service descriptions (UDDI) and a language for Service description (WSDL) specified.

Solche Spezifikationen können auch für zur Identifikation und Zuordenbarkeit der ersten, zweiten und dritten Daten verwendet werden. Such specifications can also be used for identification and Assignment of the first, second and third data be used.

So können z. B. innerhalb der Planungsdaten 17 Daten zu vorhergehenden Projekten Kennungen zugeordnet werden, die Aufschluss darüber geben, mit welchen Softwarefunktionen einzelne Komponenten oder Sequenzen projektiert wurden. Kommt nun eine spätere Wiederverwendung solcher Komponenten oder Sequenzen für einen neue Steuerungssoftware 15 in Betracht, lässt sich anhand der Kennungen automatisch ermitteln, welche Funktionalität z. B. in der Entwicklungsumgebung 14 zur Handhabung der übernehmbaren Komponenten oder Sequenzen vorhanden sein muss. So z. B. Within the planning data 17 data for previous projects can be assigned identifiers that provide information about the software functions with which individual components or sequences were configured. If a later reuse of such components or sequences for a new control software 15 now comes into consideration, the identifiers can be used to automatically determine which functionality z. B. must be present in the development environment 14 for handling the transferable components or sequences.

Ein weiteres Beispiel für die Verwendung standardisierter Kennungen zu Identifizierung und Zuordnung von Daten und Informationen zur automatischen Generierung von Automatisierungssoftware bezieht sich auf Planungsdaten 17 und dort genauer auf Konstruktionsdaten, wie sie beispielsweise von einem CAD-Programm geliefert werden und Hardwarewissen 21, wie z. B. Katalogdaten. Wenn Konstruktionsdaten mit eindeutigen, informativen Kennungen z. B. zur Anwendung und Funktionalität einzelner Komponenten, wie z. B. Motoren, Ventilen, Sensoren wie Tastern oder Lichtschranken, etc. versehen sind, können Katalogdaten oder auch vorangehende Projekte nach korrespondierenden Eigenschaften durchsucht werden und darin eine zielgerichtete Auswahl getroffen werden. Another example of the use of standardized identifiers for identifying and assigning data and information for the automatic generation of automation software relates to planning data 17 and, more precisely, to design data, such as those supplied by a CAD program, and hardware knowledge 21 , such as, for example. B. Catalog data. If design data with clear, informative identifiers e.g. B. the application and functionality of individual components, such as. B. motors, valves, sensors such as buttons or light barriers, etc., catalog data or previous projects can be searched for corresponding properties and a targeted selection can be made.

Kennungen der oben genannten Art können sich z. B. auf

  • - Branche, Anwendungsgebiet, Produkt,
  • - Fertigungsprinzip (Förderband, Rohrleitungen, . . .)
  • - Projektstrukturierung (technologisch, Funktional, CPU orientiert, . . .)
  • - Programmiersprache bzw. Programmiermethode (ablauforientiert, continuous, Kontaktplan, Funktionsplan)
  • - Regelalgorithmus, Regelparameter,
  • - Teilprozesse (Förderbandsteuerung, rühren, heizen, pressen, biegen, etc.)
  • - etc.
beziehen. Identifiers of the type mentioned above can e.g. B. on
  • - industry, field of application, product,
  • - Production principle (conveyor belt, pipes,...)
  • - Project structuring (technological, functional, CPU-oriented,...)
  • - Programming language or programming method (process-oriented, continuous, ladder diagram, function diagram)
  • - control algorithm, control parameters,
  • - Sub-processes (conveyor belt control, stirring, heating, pressing, bending, etc.)
  • - Etc.
Respectively.

Alle benötigten Daten werden dem Generator 10 über Standardschnittstellen und Standardnetze zur Verfügung gestellt. All required data are made available to generator 10 via standard interfaces and standard networks.

Als Beispiel dafür wird auf die erweiterbare Deklarationssprache ebXML verwiesen. ebXML ist zur Abwicklung von Geschäftsprozessen im das Internet vorgesehen. Es existieren Spezifikationen zu Nachrichtenformaten und -austausch, einem Registry- und Repositorydienst sowie Schablonen für bestimmte geschäftsspezifische Objekte und Abläufe. Die Basis des Nachrichtentransports bei WebServices wie auch mittlerweile bei ebXML ist das Simple Object Access Protocol (SOAP), ein XML- basiertes Protokoll zur RPC- bzw. nachrichtenorientierten Kommunikation, das typischerweise in HTTP gekapselt ist und einen zuverlässigen Nachrichtenaustausch gewährleistet. An example of this is the expandable Declaration language referenced ebXML. ebXML is used to process Business processes provided on the Internet. It exists Message Format and Exchange Specifications, One Registry and repository service as well as templates for certain business-specific objects and processes. The basis of the Message transport at WebServices as now at ebXML is the Simple Object Access Protocol (SOAP), an XML based protocol for RPC or message oriented Communication that is typically encapsulated in HTTP and ensures a reliable exchange of messages.

Das W3C hat Web Services bezüglich des Nachrichtenformats und -austauschs, eines Directory-Services zur Speicherung von Dienstbeschreibungen (UDDI) sowie einer Sprache zur Dienstbeschreibung (WSDL) spezifiziert. The W3C has web services regarding the message format and -exchange, a directory service for storing Service descriptions (UDDI) and a language for Service description (WSDL) specified.

Nach einer Identifikation der für die Entwicklungsumgebung 14 und/oder für die Steuerungssoftware 15 als notwendig ermittelten Komponenten werden diese in den ersten, zweiten und dritten Daten gesucht und geeignete Komponenten zur Verwendung ausgewählt. Voraussetzung für die Verwendbarkeit ist eine feinmodulare Struktur der Software und der einzelnen Komponenten, der über vordefinierte Schnittstellen deren Kombination erlaubt. After identification of the components determined as necessary for the development environment 14 and / or for the control software 15 , these are searched for in the first, second and third data and suitable components are selected for use. A prerequisite for usability is a finely modular structure of the software and the individual components, which allows their combination via predefined interfaces.

Zur weiteren Generierung der Steuerungssoftware 15 wird in erster Linie auf vorhergehende Projekte innerhalb der Planungsdaten 17 zurückgegriffen. Die Auswahl unter einer Vielzahl vorangehender Projekte erfolgt im Hinblick auf eine möglichst weitgehende Übereinstimmung mit den jeweiligen konkreten Anforderungen. Aus vorangehenden Projekten übernehmbare Komponenten oder Sequenzen bilden eine Basis für die zu erstellende Automatisierungssoftware. Diese Basis wird mit als geeignet ermittelten Komponenten aus anderen zurückliegenden Projekten, Herstellerbibliotheken, Katalogen, etc. ergänzt. For the further generation of the control software 15 , previous projects within the planning data 17 are primarily used. The selection from a large number of previous projects takes place with a view to the greatest possible agreement with the respective specific requirements. Components or sequences that can be adopted from previous projects form the basis for the automation software to be created. This basis is supplemented with components from other past projects, manufacturer libraries, catalogs, etc. that have been determined to be suitable.

Die Steuerungssoftware 15 kann aus einzelnen, unabhängig voneinander generierbaren und ausführbaren Programmen bestehen. Zur gemeinsamen Steuerung eines technischen Prozesses ist regelmäßig eine Kommunikation zwischen solchen grundsätzlich unabhängigen Programmen erforderlich. Die möglichen Kommunikationswege zwischen einzelnen Programmen wird über die Planungsdaten 17 ermittelt und über Standardmechanismen etabliert (.net, Ethernet, . . .) The control software 15 can consist of individual programs that can be generated and executed independently of one another. Communication between such fundamentally independent programs is regularly required to jointly control a technical process. The possible communication paths between individual programs are determined via the planning data 17 and established via standard mechanisms (.net, Ethernet,...)

Der Generator 10 umfasst schließlich noch eine Protokolleinheit 30 zum Aufzeichnen der verwendeten Daten. Die aufgezeichneten Daten umfassen auch Daten zu der oder jeder verwendeten Softwarekomponente und ob diese Softwarekomponente bei der Generierung der Entwicklungsumgebung 14 oder bei der Generierung der Steuerungssoftware 15 verwendet wurde. Anhand dieser Daten kann nach Zugriff auf ein Verwaltungssystem 31, das z. B. auf einem zentralen, insbesondere über das Internet erreichbaren Server vorgehalten ist, eine Rechnung 32 für den Anwender unter Berücksichtigung der verwendeten Daten erstellt werden. The generator 10 finally also includes a protocol unit 30 for recording the data used. The recorded data also includes data on the or each software component used and whether this software component was used in the generation of the development environment 14 or in the generation of the control software 15 . On the basis of this data, after access to a management system 31 , which, for. B. is held on a central server, in particular accessible via the Internet, an invoice 32 can be created for the user, taking into account the data used.

Damit lässt sich die Erfindung kurz wie folgt darstellen:
Die Erfindung löst sich von starren Programmen und Bibliotheken und anschließender Eingabe von Daten zur Problemlösung. Statt dessen werden geeignete Daten oder ein Zugriff auf solche Daten bereit gestellt, mit denen eine automatische Generierung zunächst einer individuellen, auf das konkrete Automatisierungsproblem abgestellten Entwicklungsumgebung 14 und darauf unter deren Verwendung die automatische Generierung der eigentlichen Steuerungssoftware 15 erfolgt. Dabei werden die Möglichkeiten des Datenzugriffs über Internet und standardisierte Programm- oder Datenschnittstellen, wie z. B. XML, auf bisher noch lokal gehaltene Informationen von Planungstools oder dgl. und Bibliotheken oder bestehenden Projekten ausgenutzt. Die Rahmenbedingungen des jeweiligen Automatisierungsvorhabens bilden dabei den Ausgangspunkt für die einzelnen, automatisch zu generierenden Elemente der Automatisierungssoftware, wie das eigentliche Steuerprogramm 15, ggf. ein ergänzendes HMI-Programm und weiterhin ggf. eine Anlagenkonfiguration 16.
The invention can thus be briefly represented as follows:
The invention frees itself from rigid programs and libraries and subsequent input of data for problem solving. Instead, suitable data or access to such data is provided with which an automatic generation of an individual development environment 14 , which is geared to the specific automation problem, is carried out and then the automatic generation of the actual control software 15 using it. The possibilities of data access via the Internet and standardized program or data interfaces, such as. B. XML, used on information previously held locally by planning tools or the like. And libraries or existing projects. The framework conditions of the respective automation project form the starting point for the individual, automatically generated elements of the automation software, such as the actual control program 15 , possibly a supplementary HMI program and furthermore possibly a system configuration 16 .

Claims (12)

1. Einrichtung zur automatischen Generierung von Automatisierungssoftware mit einem zumindest einen Softwaregenerator (11) und einen Projektgenerator (12) umfassenden Generator (10),
wobei mittels des Softwaregenerators (11) anhand von vorgebbaren oder vorgegebenen ersten Daten, wie insbesondere Planungsdaten (17), Programmwissen (18) und Verwaltungswissen (19) eine Entwicklungsumgebung (14) generierbar ist und
wobei unter Verwendung der Entwicklungsumgebung (14) mittels des Projektgenerators (12) anhand von vorgebbaren oder vorgegebenen zweiten Daten, wie insbesondere Planungsdaten (17), Erfahrungsdaten (20) und Hardwarewissen (21), eine Steuerungssoftware (15) generierbar ist.
1. Device for the automatic generation of automation software with a generator ( 10 ) comprising at least one software generator ( 11 ) and a project generator ( 12 ),
wherein a development environment ( 14 ) can be generated by means of the software generator ( 11 ) on the basis of predeterminable or predetermined first data, such as in particular planning data ( 17 ), program knowledge ( 18 ) and administrative knowledge ( 19 ), and
A control software ( 15 ) can be generated using the development environment ( 14 ) by means of the project generator ( 12 ) on the basis of predeterminable or predetermined second data, such as in particular planning data ( 17 ), experience data ( 20 ) and hardware knowledge ( 21 ).
2. Einrichtung nach Anspruch 1, wobei der Generator (10) weiter einen Anlagenkonfigurator (13) umfasst und wobei mittels des Anlagenkonfigurators (13) anhand von vorgebbaren oder vorgegebenen dritten Daten, wie insbesondere Hardwarewissen (21), eine Konfiguration (16) einer Automatisierungshardware ermittelbar ist. 2. Device according to claim 1, wherein the generator ( 10 ) further comprises a system configurator ( 13 ) and wherein by means of the system configurator ( 13 ) based on predeterminable or predetermined third data, such as in particular hardware knowledge ( 21 ), a configuration ( 16 ) of an automation hardware can be determined. 3. Einrichtung nach Anspruch 1 oder 2, wobei die ersten Daten Planungsdaten (17), Programmwissen (18) und/oder Verwaltungswissen (19) umfassen. 3. Device according to claim 1 or 2, wherein the first data comprise planning data ( 17 ), program knowledge ( 18 ) and / or administrative knowledge ( 19 ). 4. Einrichtung nach Anspruch 1 oder 2, wobei die zweiten Daten Planungsdaten (17), Erfahrungsdaten (20) und/oder Hardwarewissen (21) umfassen. 4. Device according to claim 1 or 2, wherein the second data comprises planning data ( 17 ), experience data ( 20 ) and / or hardware knowledge ( 21 ). 5. Einrichtung nach Anspruch 1 oder 2, wobei die dritten Daten Hardwarewissen (21) umfassen. 5. Device according to claim 1 or 2, wherein the third data comprise hardware knowledge ( 21 ). 6. Einrichtung nach einem der vorangehenden Ansprüche, wobei die Steuerungssoftware (16) eine Mensch-Maschine-Schnittstelle umfasst. 6. Device according to one of the preceding claims, wherein the control software ( 16 ) comprises a human-machine interface. 7. Verfahren zur automatischen Generierung von Automatisierungssoftware unter Verwendung eines zumindest einen Softwaregenerator (11) und einen Projektgenerator (12) umfassenden Generators (10),
wobei der Softwaregenerator (11) anhand von vorgebbaren oder vorgegebenen ersten Daten, wie insbesondere Planungsdaten (17), Programmwissen (18) und Verwaltungswissen (19) eine Entwicklungsumgebung (14) generiert und
wobei der Projektgenerator (12) unter Verwendung der Entwicklungsumgebung (14) anhand von vorgebbaren oder vorgegebenen zweiten Daten, wie insbesondere Planungsdaten (17), Erfahrungsdaten (20) und Hardwarewissen (21), eine Steuerungssoftware (15) generiert.
7. Method for the automatic generation of automation software using a generator ( 10 ) comprising at least one software generator ( 11 ) and a project generator ( 12 ),
wherein the software generator ( 11 ) generates a development environment ( 14 ) on the basis of predeterminable or predefined first data, such as in particular planning data ( 17 ), program knowledge ( 18 ) and administrative knowledge ( 19 )
wherein the project generator ( 12 ) generates control software ( 15 ) using the development environment ( 14 ) on the basis of predeterminable or predefined second data, such as in particular planning data ( 17 ), experience data ( 20 ) and hardware knowledge ( 21 ).
8. Verfahren nach Anspruch 7, wobei der Generator (10) weiter einen Anlagenkonfigurator (13) umfasst und wobei der Anlagenkonfigurator (13) anhand von vorgebbaren oder vorgegebenen dritten Daten, wie insbesondere Hardwarewissen (21), eine Konfiguration (16) einer Automatisierungshardware ermittelt und ggf. vornimmt. 8. The method according to claim 7, wherein the generator ( 10 ) further comprises a system configurator ( 13 ) and wherein the system configurator ( 13 ) determines a configuration ( 16 ) of an automation hardware on the basis of predefinable or predetermined third data, such as in particular hardware knowledge ( 21 ) and if necessary. 9. Verfahren nach Anspruch 7 oder 8, wobei die ersten Daten Planungsdaten (17), Programmwissen (18) und/oder Verwaltungswissen (19) umfassen. 9. The method according to claim 7 or 8, wherein the first data comprises planning data ( 17 ), program knowledge ( 18 ) and / or administrative knowledge ( 19 ). 10. Verfahren nach Anspruch 7 oder 8, wobei die zweiten Daten Planungsdaten (17), Erfahrungsdaten (20) und/oder Hardwarewissen (21) umfassen. 10. The method according to claim 7 or 8, wherein the second data comprise planning data ( 17 ), experience data ( 20 ) and / or hardware knowledge ( 21 ). 11. Verfahren nach Anspruch 7 oder 8, wobei die dritten Daten Hardwarewissen (21) umfassen. 11. The method according to claim 7 or 8, wherein the third data comprise hardware knowledge ( 21 ). 12. Verfahren nach einem der Ansprüche 7 bis 11, wobei die Steuerungssoftware (16) eine Mensch-Maschine-Schnittstelle umfasst. 12. The method according to any one of claims 7 to 11, wherein the control software ( 16 ) comprises a human-machine interface.
DE2002114553 2002-04-02 2002-04-02 Device and method for the automatic generation of automation software Withdrawn DE10214553A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE2002114553 DE10214553A1 (en) 2002-04-02 2002-04-02 Device and method for the automatic generation of automation software
JP2003581008A JP2005527893A (en) 2002-04-02 2003-04-02 Apparatus and method for automatic generation of automation software
EP03717166A EP1490758A2 (en) 2002-04-02 2003-04-02 Device and method for automatically generating automation software
CNB038077671A CN100386722C (en) 2002-04-02 2003-04-02 Device and method for automatically generating automation software
PCT/DE2003/001091 WO2003083650A2 (en) 2002-04-02 2003-04-02 Device and method for automatically generating automation software
US10/956,074 US20050188351A1 (en) 2002-04-02 2004-10-04 Device and method for automatically generating automation software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002114553 DE10214553A1 (en) 2002-04-02 2002-04-02 Device and method for the automatic generation of automation software

Publications (1)

Publication Number Publication Date
DE10214553A1 true DE10214553A1 (en) 2003-10-16

Family

ID=28051037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002114553 Withdrawn DE10214553A1 (en) 2002-04-02 2002-04-02 Device and method for the automatic generation of automation software

Country Status (5)

Country Link
EP (1) EP1490758A2 (en)
JP (1) JP2005527893A (en)
CN (1) CN100386722C (en)
DE (1) DE10214553A1 (en)
WO (1) WO2003083650A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000815B2 (en) 2003-12-05 2011-08-16 Abb Research Ltd Method for the supplying and installation of device-specific functionalities and/or data for the field devices of a distributed system
DE102017212499A1 (en) * 2017-07-20 2019-01-24 Siemens Aktiengesellschaft Control method and control device for operating a rail vehicle

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930360A (en) * 2009-06-18 2010-12-29 杜波 Enterprise application software maker
CN102368216B (en) * 2011-10-20 2013-11-27 北京金和软件股份有限公司 Process implementation method based on automatic project building
CN104463396A (en) * 2013-09-25 2015-03-25 江苏智软信息科技有限公司 Efficient software development process management method
DE102015219841A1 (en) * 2015-10-13 2017-04-13 Robert Bosch Gmbh Method and device for updating a control unit
CN107423074B (en) * 2017-08-14 2020-07-07 上海迅显信息科技有限公司 System and method for creating cross-platform HMI application with universal components
JP6939644B2 (en) 2018-02-26 2021-09-22 オムロン株式会社 Process control device, manufacturing device, process control method, control program, and recording medium
US11891526B2 (en) 2019-09-12 2024-02-06 Johnson & Johnson Vision Care, Inc. Ink composition for cosmetic contact lenses
EP4139755A1 (en) * 2020-04-25 2023-03-01 Music, Goran Method for programming a plant control system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
EP1004960A3 (en) * 1998-11-23 2007-08-01 Siemens Aktiengesellschaft Method for storing application programs of an automation system
EP1122642A1 (en) * 1999-04-06 2001-08-08 Siemens Aktiengesellschaft Softwaremodules for an automationprogram with multiple use for different programmingtools

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000815B2 (en) 2003-12-05 2011-08-16 Abb Research Ltd Method for the supplying and installation of device-specific functionalities and/or data for the field devices of a distributed system
DE10357276B4 (en) * 2003-12-05 2012-02-23 Abb Research Ltd. System and method for the directed provision and installation of device-specific functionalities and / or information for the field devices of a distributed system
DE102017212499A1 (en) * 2017-07-20 2019-01-24 Siemens Aktiengesellschaft Control method and control device for operating a rail vehicle

Also Published As

Publication number Publication date
CN100386722C (en) 2008-05-07
WO2003083650A2 (en) 2003-10-09
EP1490758A2 (en) 2004-12-29
WO2003083650A3 (en) 2004-06-17
CN1647033A (en) 2005-07-27
JP2005527893A (en) 2005-09-15

Similar Documents

Publication Publication Date Title
DE102008019040B4 (en) Method and control device for controlling an automation system
EP2758872B1 (en) Method for generating and handling applications for components of a distributed control system and engineering system for implementing the process
EP2182418A2 (en) Method and device for accessing a function module of an automation system
EP3616365B1 (en) Method for operating a field device
DE112005001044T5 (en) Service-oriented architecture for process control
DE102007058606A1 (en) Method for integrating device objects into an object-based management system for field devices in automation technology
WO2015185328A1 (en) Computer-implemented method and signal sequence for a program for reusing software configurations that can be executed for software systems, and computer system, and a computer program with program code for carrying out the method
DE102016124348A1 (en) System and microservice for monitoring a process automation system
DE102007060990A1 (en) Method for generating an application-specific installation package of device objects
DE10214553A1 (en) Device and method for the automatic generation of automation software
EP1634130B1 (en) Device and method for programming and/or executing programs for industrial automation systems
AT412131B (en) AUTOMATION SYSTEM FOR SOLVING A PROCESS TECHNICAL TASK AND METHOD FOR THIS
EP3021179B1 (en) Method for connecting an embedded device to a control unit
DE112005002185B4 (en) Method for operating an automation device or device for carrying out the method
EP1653308B1 (en) Method and apparatus for providing and storing information
DE102007062395A1 (en) Automatic parameterizing method for field device i.e. modular four-wire field device, involves providing selection possibility to user when parameter values are transferred in accordance with parameterization implementation
EP3384353B1 (en) Method and system for optimizing the operation of at least one of a plurality of field devices from automation technology
WO2021148187A1 (en) Method for the configuration and parameterisation of field bus subscribers and engineering system
EP3204831B1 (en) Method for programming and configuring a device in a traceable manner
EP3557341A1 (en) Method and administration device for optimizing an industrial process
DE10142378A1 (en) Data processing system, resource control device and method for remote management of resources
EP1454201A1 (en) Engineering and automation system
EP2224296A1 (en) Method for providing functions in an automation system, control program and automation system
WO2018130320A1 (en) Method for automatically configuring functional units of an automation system, computer program having an implementation of the method, and device operating according to the method
DE102009017816A1 (en) Method for parameterizing operating units, involves providing technical manual in program-high level language required for controlling, where each technical manual has function and set of parameters

Legal Events

Date Code Title Description
8141 Disposal/no request for examination