EP1490758A2 - Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware - Google Patents

Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware

Info

Publication number
EP1490758A2
EP1490758A2 EP03717166A EP03717166A EP1490758A2 EP 1490758 A2 EP1490758 A2 EP 1490758A2 EP 03717166 A EP03717166 A EP 03717166A EP 03717166 A EP03717166 A EP 03717166A EP 1490758 A2 EP1490758 A2 EP 1490758A2
Authority
EP
European Patent Office
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
EP03717166A
Other languages
English (en)
French (fr)
Inventor
Werner HÖFLER
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
Publication of EP1490758A2 publication Critical patent/EP1490758A2/de
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

Definitions

  • the invention relates to a device for the automatic generation of automation software or parts, in particular structures and the like. It also relates to a corresponding method for the automatic generation of such automation software.
  • the management unit determines the individual components required to call up a service corresponding to the specification and generates the software from these. In addition, the management unit for each required individual component generates an entry in a license data record of a license database assigned to the user.
  • the invention consists in simplifying the processes involved in the creation of automation software.
  • a simplification of the processes for the creation of automation software is achieved with a device as specified in claim 1.
  • a one ⁇ direction for the automatic generation of automation software with at least one software generator and a project generator comprising generator is provided, wherein by means of the software generator based on predeterminable or predetermined first data, such as in particular planning data, program knowledge and management knowledge a development environment can be generated is and wherein using the development environment by means of the project generator on the basis of predeterminable or predefined second data, such as in particular planning data, experience data and hardware knowledge, a control software can be generated.
  • predeterminable or predetermined first data such as in particular planning data
  • program knowledge and management knowledge a development environment can be generated
  • second data such as in particular planning data, experience data and hardware knowledge
  • the invention is based on the knowledge that further developments in software always relate to the addition of further performance features with which the user can allegedly solve the actual task more easily or more quickly.
  • the invention puts the task in the foreground and provides for the automatic generation of automation software optimized for solving the task.
  • the current options for accessing data of all kinds are used.
  • powerful search algorithms such as those used when using the Internet
  • extensive databases with reference to predefined or predefinable key data, such as those found in B. in the description of the task in the form of keywords such as B. "brewery”, “steel rolling mill”, etc. occur.
  • each component is e.g. B. assignable to the category of actuators or the category of sensors. For each actuator a suitable number of exits an automation hardware and for each sensor corresponding to an appropriate number to be provided of inputs, so that this is fixed the working to be ⁇ data volume already broadly and in particular a cen- rales Automatmaschinesgerat by criteria such as processing power and storage can be selected automatically.
  • automation software is created today with commercially available, commonly used standard development environments.
  • standard development environments like ready-made goods, provide a number of functions and services without being able to take into account the individual needs of individual users.
  • the generation of an individual development environment is first provided, and subsequently the generation of control software using the individually generated development environment.
  • the control software is the automation software that uses a specific technical process, e.g. B. controls and / or monitors a production line, such as a rolling stand or a series of automatic pick and place machines, and possibly closes a graphical user guidance z. B. by means of an operator control and monitoring system or a human-machine interface (HMI).
  • a specific technical process e.g. B. controls and / or monitors a production line, such as a rolling stand or a series of automatic pick and place machines, and possibly closes a graphical user guidance z. B. by means of an operator control and monitoring system or a human-machine interface (HMI).
  • HMI human-machine interface
  • the individual development environment is the compilation of all the components necessary to generate the control software, 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 in the manner of a compiler, interpreter or the like. is provided for generating the control software that can be executed on a target hardware.
  • the generator further comprises a system configurator and that a configuration of an automation hardware can be determined by means of the system configurator on the basis of predeterminable or predefined third data, such as in particular hardware knowledge.
  • This rounds off the automatic creation of automation software by first generating the development environment and, using it, the actual control software, which can be run directly when the configuration of the automation hardware is available.
  • FIG. 1 shows a schematic representation of a generator for the automatic generation of automation software with the data required for this
  • FIG. 3 shows a diagram of the data flow in the automatic generation of automation software.
  • 1 shows a schematic overview of a generator 10 with a software generator 11, a project generator 12 and a system configurator 13.
  • 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 to determine a suitable configuration 16 for operating the control software 15 on an automation hardware.
  • the automation hardware is an individual automation device, 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).
  • the development environment 14 is generated by 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.
  • predeterminable or predetermined first data such as, in particular, planning data 17, program knowledge 18 and administrative knowledge 19.
  • 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).
  • the first data available or made available are analyzed by means of the software generator 11.
  • 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 determined as necessary is a necessary component of the development environment 14 to be created automatically.
  • the task or problem description in particular in connection with data on previous projects, can be determined on the basis of subtasks or sub-problems, possibly taking into account the respective treatment in previous projects Which other components are necessary 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.
  • data on the scope of functions or data on structures can be used.
  • 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.
  • dependencies such as import relationships
  • For this purpose e.g. B. access to data on dependencies or data on structures.
  • the compatibility of the components entering the development environment 14 must be ensured.
  • the availability and possibly the timeliness of the individual required components must be guaranteed.
  • access to data for usage management and / or data for an update service is provided.
  • To bill for the components used or their use In order to be able to calculate fertilizer, access to accounting 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.
  • the control software 15 is generated by the project generator 12 using the development environment 14 on the basis of predeterminable or predetermined second data, such as, in particular, the planning data 17 and experience data 20 and hardware knowledge 21.
  • the planning data 17 such as, in particular, description of tasks and problems, if appropriate
  • 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 extensive the structures determined can be filled with program instructions.
  • the structures are at least filled with information, for example in the form of comment lines, which inform a programmer in the event of a later revision of which operations at a specific point in the control software 15 are to be provided.
  • 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
  • the experience data 20 can also be a manufacturer library with e.g. B. Include sample solutions.
  • automatically generated structures of the control software 15 can be filled with suitable program instructions in order, for. B. to ensure correct operation of a specific field device.
  • 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.
  • the experience data 20 are continuously updated, because each generated control software 16 delivers new ones
  • Individual program instructions in the control software 15 relate to a control of the automation hardware.
  • the second data also include hardware knowledge.
  • 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.
  • 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.
  • an 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. This means that every change affects the first data on the development environment 14 and thus at least indirectly on the control software 15 and the configuration 16. Accordingly, any change to the second data has an effect on the control software 15 and at least indirectly on the configuration 16.
  • 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 to the respective data.
  • a first method step 22 includes the definition of 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.
  • a second method step 23 comprises the automatic one
  • a third method step 24 involves editing and expanding the control software 15 by means of the development environment 14.
  • a fourth method step 25 the generated automation software, that is the control software 15 and possibly the Transfer configuration 16 to the automation hardware.
  • 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 and the adjustments or additions required therein until the finished automation software is finally available.
  • the user supplements components or sequences of the automation software that cannot be automatically generated.
  • the user is supported by comments that are automatically inserted into the control software 15 instead of sequences that cannot be generated automatically. This Comments contain references to the functionality of the sequence that cannot be generated automatically and preferably references to the data to be used for this.
  • the generator 10 generates individually tailored automation software.
  • 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 maintain and support various software packages, each with a different range of functions and functions, in often different versions, since the automation software and thus also the respective one Development environment can be generated individually according to the specific requirements of the user.
  • FIG. 3 shows a diagram of the data flow in the automatic generation of automation software. Similar to FIG. 1, the generator 10 with software generator 11, project generator 12 and system configurator 13 is shown 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 second data includes the planning data 17, experience data 20 and hardware knowledge 21.
  • the third data includes at least the hardware knowledge 21.
  • software generator 11 uses predeterminable or predefined first data, software generator 11 generates development environment 14.
  • predefinable or predefined second data and using development environment 14, project generator 12 generates control software 15.
  • system configurator 13 generates configuration 16 on the basis of predefined or predefinable third data the respective automation hardware.
  • 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 influences the automatic generation by manual additions or modifications in each process step 22-25 (FIG. 2) can.
  • 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 for accessing 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.
  • 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.
  • One of these rules is e.g. For example: “If decentralized field devices are provided or required, a fieldbus connection between the or each decentralized field device and a central ral automation device. "Further rules then relate, for example, to the type of fieldbus connection, for example with regard to the maximum achievable data throughput. Other rules can influence the use of safety-related automation components, for example. Such a rule could For example: “In the case of continuous, in particular non-interruptible processes, safety-related or fault-tolerant automation components must be provided". Such a rule is an example of an extensible rule in which the user e.g. B. can indicate that "a chemical process for refining crude oil is such a continuous, uninterruptible process". Whether the respective technical process is one for refining crude oil is determined from the first data, in particular from the planning data , e.g. based on the task or problem description.
  • the automatic processing of the first, second and third data, the determination of existing relationships, the selection of suitable rules etc. is made easier if all the data are provided with standardized identifiers and can be identified there.
  • Such specifications can also be used to identify and assign the first, second and third data.
  • identifiers which provide information about which software functions are used individually. ne components or sequences have been 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.
  • Information on the automatic generation of automation software relates to planning data 17 and there more precisely to design data, such as that supplied by a CAD program, for example, and hardware knowledge 21, such as. B. Catalog data. If design data with clear, informative identifiers e.g. B. for 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.
  • Identifiers of the type mentioned above can e.g. B. on industry, field of application, product, manufacturing principle (conveyor belt, piping, ...)
  • Sub-processes (conveyor belt control, stirring, heating, pressing, bending, etc.)
  • ebXML expandable declaration language
  • ebXML is intended for handling business processes on the Internet.
  • message formats and exchange There are specifications for message formats and exchange, a registry and repository service as well as templates for certain business-specific objects and processes.
  • SOAP Simple Object Access Protocol
  • XML-based protocol for RPC or message-oriented communication, which is typically encapsulated in HTTP and ensures reliable message exchange.
  • the W3C has specified web services in terms of message format and exchange, a directory service for storing service descriptions (UDDI) and a language for service description (WSDL).
  • UDDI service descriptions
  • WSDL language for service description
  • a prerequisite for usability is a fem-modular structure of the software and the individual components, which allows their combination via predefined interfaces.
  • 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 taken 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.
  • the control software 15 can consist of individual programs that can be generated and executed independently of one another. In order to jointly control a technical process, communication between such programs, which are fundamentally independent, is required. The possible communication channels between individual programs are determined via the planning data 17 and established via standard mechanisms (.net, Ethernet, ...)
  • the generator 10 also includes a protocol 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.
  • 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.
  • 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 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 takes place using it.
  • 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.

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.

Description

Beschreibung
Einrichtung und Verfahren zur automatischen Generierung von AutomatlsierungsSoftware
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.
In der alteren 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 Spezifika- tionen des Nutzers entsprechenden Software bezeichnet. Der
Nutzer meldet sich bei einer einen Zugang zu dem Dienst überwachenden Verwaltungsemheit an und spezifiziert den gewünschten Dienst. Darauf ermittelt die Verwaltungsemheit zum Abruf eines der Spezifikation entsprechenden Dienstes dazu erforderliche Einzelkomponenten und generiert aus diesen die Software. Darüber hinaus generiert die Verwaltungsemheit für ηede erforderliche Einzelkomponente einen Eintrag in einem dem Nutzer zugeordneten Lizenzdatensatz einer Lizenzdatenbank.
In der alteren 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.
Der Erfindung besteht in der Vereinfachung der Ablaufe bei der Erstellung von Automatisierungssoftware. Eine solche Vereinfachung der Ablaufe bei der Erstellung von Automatisierungssoftware wird mit einer Einrichtung, wie sie in Anspruchs 1 angegeben ist, erreicht. Dazu ist eine Ein¬ richtung zur automatischen Generierung von Automatisierungs- Software 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 Entwick- lungsumgebung 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.
Die Erfindung geht von der Erkenntnis aus, dass sich Weiterentwicklungen an Software stets auf die Hmzufugung weite- rer Leistungsmerkmale bezieht, mit denen der Anwender die eigentliche Aufgabe vermeintlich einfacher oder schneller losen kann. Die Erfindung stellt jedoch die Aufgabe in den Vordergrund und sieht die automatische, zur Losung 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 Datenbestande in Bezug auf vorgegebene oder vorgebbare Schlusseldaten, wie sie z. B. bei der Beschreibung der Aufgabe in Form von Schlusselworten 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 Bibliotheks formationen samtliche 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 Ausgangen 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 be¬ arbeitende Datenvolumen feststeht und insbesondere ein zent- rales Automatisierungsgerat nach Kriterien wie Rechenleistung und Speicherkapazität automatisch ausgewählt werden kann.
Demgegenüber wird Automatisierungssoftware heute mit käuflich erwerblichen, allgemein gebräuchlichen Standard-Entwicklungs- Umgebungen erstellt. Solche Standard-Entwicklungsumgebungen stellen gleichsam wie Konfektionsware eine Anzahl von Funktionen und Diensten zur Verfugung, ohne dabei individuelle Bedurfnisse einzelner Anwender berücksichtigen zu können. Gemäß der Erfindung ist zur automatischen Generierung von Auto- matisierungssoftware 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.
Bei der Steuerungssoftware handelt es sich um diejenige Automatisierungssoftware, die einen konkreten technischen Prozess, z. B. eine Fertigungsstraße, wie ein Walzgerust oder eine Folge von Bestuckungsautomaten, steuert und/oder uber- wacht und schließt ggf. eine graphische Benutzerfuhrung z. B. mittels eines Bedien- und Beobachtungssystems oder einer Mensch-Maschine-Schnittsteile (HMI) ein.
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 ausfuhrbaren Steuerungssoftware vorgesehen ist.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteranspruche. 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.
Nachfolgend wird ein Ausfuhrungsbeispiel der Erfindung anhand der Zeichnung naher erläutert. Einander entsprechende Gegenstande oder Elemente sind in allen Figuren mit den gleichen Bezugszeichen versehen.
Darin zeigen
FIG 1 eine schematische Darstellung eines Generators zur automatischen Generierung von Automatisierungssoftware mit den dazu erforderlichen Daten,
FIG 2 einzelne Verfahrensschritte bei der automatischen Generierung von Automatisierungssoftware und
FIG 3 ein Diagramm des Datenflusses bei der automatischen Generierung von Automatisierungssoftware. FIG 1 zeigt in einer schematischen Übersicht einen Generator 10 mit einem Softwaregenerator 11, einen Projektgenerator 12 und einem Anlagenkonfigurator 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 Automatisie- rungshardware vorgesehen. Bei der nicht dargestellten Automatisierungshardware handelt es sich um einzelne Automatisie- rungsgerate, wie z. B. eine speicherprogrammierbare Steuerung oder einen Prozessrechner oder einen Verbund solcher Gerate, mit z. B. dezentralen Peripherieanschaltungen und/oder einem Leitrechner mit z. B. Produktplanungsfunktionalitaten. 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 Walzgerust (Stahlerzeugung).
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 zusatzlich 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 Aktuali- sierungsservice (Update) .
Die jeweils zur Verfugung stehenden oder zur Verfugung gestellten ersten Daten werden mittels des Softwaregenerators 11 analysiert. Anhand z. B. der Konstruktionsdaten ist er- mittelbar, 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 Aufgabenoder 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 ermit- telbar, 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 Verwen- düng berechnen zu können ist ein Zugriff auf Abrechnungsdaten vorgesehen. Nach Berücksichtigung samtlicher zur Verfugung stehender erster Daten steht schließlich eine individuell an die jeweilige Aufgabe oder Problemstellung angepasste Ent- Wicklungsumgebung 14 zur Verfugung.
Die Generierung der Steuerungssoftware 15 durch den Projektgenerator 12 erfolgt unter Verwendung der Entwicklungsumgebung 14 anhand von vorgebbaren oder vorgegebenen zweiten Da- ten, 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, lasst sich eine Struktur der Steuerungssoftware 15 im Hinblick auf er- forderliche 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 Programm- anweisungen 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 spateren Überarbeitung darüber informieren, welche Operationen an einer konkreten Stelle der Steuerungssoftware 15 vorzusehen sind.
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 explosionsgeschutzte Feldgerate oder Feldgerate mit einer besonderen Schutzart, z. B. IP65, vorzusehen sind. Solche Feldgerate sind für die jeweiligen Anbieter im Vergleich zu Standard-Feldgeraten Sonderlosungen. Wenn Standard-Feld- gerate z. B. mit einer Kanalgranularitat von 1 oder 2 Bit
(Digital I/O) erhaltlich sind, sind spezielle Feldgerate nur in wenigen Konfigurationen, z. B. 8-Bit und 16-Bιt (Digital I/O), verfugbar. Das heißt unter Berücksichtigung von Branchen- oder Expertenwissen kann sich eine andere Konfiguration der Feldgerate ergeben, als dies ohne Berücksichtigung solcher Informationen der Fall wäre. Wenn ein oder mehrere spe- zielle Feldgerate mit acht digitalen Ein-/Ausgabekanalen als erforderlich ermittelt werden, erfordert dies auch entsprechende Anpassungen für die diese Feldgerate ansteuernde Steuerungssoftware 15.
Des Weiteren oder alternativ können die Erfahrungsdaten 20 auch eine Herstellerbibliothek mit z. B. Musterlosungen umfassen. Anhand solcher Musterlosungen können automatisch generierte Strukturen der Steuerungssoftware 15 mit geeigneten Programmanweisungen gefüllt werden, um z . B. die kor- rekte Bedienung eines konkreten Feldgerates zu gewahrleisten.
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 Losungen von ungeeigneten oder weniger geeigneten unterscheidbar. Für die jeweilige Steuerungssoftware 16 werden vorzugsweise als geeignet erkannte Losungen auf deren Verwendbarkeit überprüft.
Die Erfahrungsdaten 20 werden kontinuierlich aktualisiert, denn jede generierte Steuerungssoftware 16 liefert neue
Erfahrungsdaten 20, die für nachfolgende Projekte nutzlich sein können.
Einzelne Programmanweisungen in der Steuerungssoftware 15 beziehen sich auf eine Ansteuerung der Automatisierungshardware. Um eine korrekte Ansteuerung der Automatisierungshard- ware oder einzelner Automatisierungskomponenten der Automati- sierungshardware, wie z. B. Eιn-/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 Hardware- wissen 21. Anhand des Hardwarewissens 21 ist z. B. ermittelbar, welche Maßnahmen zum Aktivieren eines bestimmten Ausgangs eines bestimmten Feldgerates der Automatisierungshardware erforderlich sind. Damit lassen sich automatisch die entsprechenden Programmanweisungen für die Steuerungssoftware 15 generieren um z. B. den dritten Ausgang eines Feldgerates zu aktivieren. Ein Feldgerat ist üblicherweise über einen Feldbus mit einem zentralen Automatisierungsgerat, wie einer speicherprogrammierbaren Steuerung, verbunden. Anhand des Hardwarewissens lassen sich automatisch für die Steuerungs- Software 15 auch diejenigen Programmanweisungen generieren, um das Ubertragungsprotokoll für den jeweils eingesetzten Feldbus zu bedienen.
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 benotigten Automatisierungshardware. Danach ist z. B. bekannt, über welche Leistungsfähigkeit, z. B. im Hinblick auf Verar- beitungsgeschwindigkeit oder Speicherkapazität, ein zentrales Automatisierungsgerat verfugen muss. Damit ist anhand von zum Hardwarewissen 21 gehörenden, ggf. auch herstellerubergrei- fenden Katalogdaten ermittelbar, welches Automatisierungsgerat diese Anforderungen erfüllt. Nachdem auf diese Weise das konkrete Automatisierungsgerat ermittelt ist, ist anhand von weiterem Hardwarewissen 21 auch ermittelbar, wie und in welchem Umfang das Automatisierungsgerat konfigurierbar ist. Anhand der Erfordernisse der Steuerungssoftware 15 lasst sich die jeweils erforderliche Konfiguration 16 ermitteln und ggf. auch automatisch an das Automatisierungsgerat in passender Form übermitteln. Ahnlich ergibt sich aus Art um Umfang der benotigten 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 Datenubertragungs- rate für den Feldbus. Die Datenübertragungsrate beemflusst 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 Auto- matisierungsgerates .
Nach all diesen Schritten steht eine automatisch generierte Automatisierungssoftware zur Verfugung, 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 Steue- rungssoftware 15 und die Konfiguration 16 aus. Entsprechend wirkt sich ede Ä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 Automatisierungssoft- wäre, wenn die Änderungen sich auf solche Daten beziehen, die bei der automatischen Generierung verwendet wurden oder verwendbar sind. 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 ver- wendbaren 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 Auswahlen oder Festlegen einer Importschnittstelle umfassen, mittels derer erste, zweite oder dritte Daten importiert werden können.
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.
Ein Anwender kann in jedem Verfahrensschritt 22-24 Änderungen vornehmen und darauf die automatische Generierung der Automatisierungssoftware erneut veranlassen. Der Anwender fuhrt die einzelnen Verfahrensschritte sowie darin erforderliche Anpassungen oder Ergänzungen so oft durch, bis schließlich die fertige Automatisierungssoftware zur Verfugung steht. Je umfassender d e 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 unterstutzt. Diese Kommentare enthalten Hinweise auf die Funktionalitat der nicht automatisch generierbaren Sequenz und vorzugsweise Hinweise auf die dafür zu verwendenden Daten.
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 verfugbar, 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 tatsach- lieh benotigt wurden. Damit können etwaige Lizenzgebuhren 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 Not- wendigkeit, diverse Softwarepakete mit jeweils unterschiedlichem Leistungs- und Funktionsumfang in noch dazu häufig verschiedenen Versionen vorhalten und unterstutzen zu müssen, da die Automatisierungssoftware und damit auch die jeweilige Entwicklungsumgebung individuell entsprechend der konkreten Anforderungen des Anwenders generiert werden.
FIG 3 zeigt ein Diagramm des Datenflusses bei der automatischen Generierung von Automatisierungssoftware. Ahnlich wie in FIG 1 ist der Generator 10 mit Softwaregenerator 11, Pro- jektgenerator 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. 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 Projektgene- rators 12 die Steuerungssoftware 15. Der Anlagenkonfigurator 13 generiert schließlich anhand vorgegebener oder vorgebbarer dritter Daten die Konfiguration 16 der jeweiligen Automatisierungshardware .
Die wesentliche Emflussmoglichkeit 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 .
Zur Verarbeitung der Eingabedaten 26 ist für den Generator 10 eine Vorverarbeitung 29 vorgesehen. Diese gewahrleistet 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.
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.
Eine dieser Regeln lautet z. B.: „Wenn dezentrale Feldgerate vorgesehen oder erforderlich sind, ist eine Feldbusverbindung zwischen dem oder jedem dezentralen Feldgerat und einem zent- ralen Automatisierungsgerat 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 sicherheits- gerichteter Automatisierungskomponenten beeinflussen. Eine solche Regel konnte z. B. lauten: „Bei kontinuierlichen, insbesondere nicht unterbrechbaren Prozessen sind sicherheits- gerichtete 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.
Die automatische Verarbeitung der ersten, zweiten und dritten Daten, das Ermitteln untereinander bestehender Beziehungen, die Auswahl passender Regeln etc. wird erleichtert, wenn samtliche 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, bezuglich des Nachrichtenformats und -aus- tauschs, im Hinblick auf Directory-Services zur Speicherung von Dienstbeschreibungen (UDDI) sowie einer Sprache zur Dienstbeschreibung (WSDL) spezifiziert.
Solche Spezifikationen können auch für zur Identifikation und Zuordenbarkeit der ersten, zweiten und dritten Daten verwendet werden.
So können z. B. innerhalb der Planungsdaten 17 Daten zu vorhergehenden Projekten Kennungen zugeordnet werden, die Auf- schluss darüber geben, mit welchen Softwarefunktionen einzel- ne Komponenten oder Sequenzen projektiert wurden. Kommt nun eine spatere Wiederverwendung solcher Komponenten oder Sequenzen für einen neue Steuerungssoftware 15 in Betracht, lasst sich anhand der Kennungen automatisch ermitteln, welche Funktionalitat z. B. in der Entwicklungsumgebung 14 zur Handhabung der ubernehmbaren Komponenten oder Sequenzen vorhanden sein muss.
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 Funktionalitat 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.
Kennungen der oben genannten Art können sich z. B. auf Branche, Anwendungsgebiet, Produkt, - Fertigungsprinzip (Forderband, Rohrleitungen, ... )
Projektstrukturierung (technologisch, Funktional, CPU orientiert, ... )
Programmiersprache bzw. Programmiermethode (ablaufoπentiert, contmuous, Kontaktplan, Funktionsplan) - Regelalgorithmus, Regelparameter,
Teilprozesse (Forderbandsteuerung, rühren, heizen, pressen, biegen, etc.)
- etc. beziehen.
Alle benotigten Daten werden dem Generator 10 über Stan- dardschnittstellen und Standardnetze zur Verfugung gestellt Als Beispiel dafür wird auf die erweiterbare Deklarations- sprache ebXML verwiesen. ebXML ist zur Abwicklung von Ge- schaftsprozessen im das Internet vorgesehen. Es existieren Spezifikationen zu Nachrichtenformaten und -austausch, einem Registry- und Repositorydienst sowie Schablonen für bestimmte geschaftsspezifische Objekte und Ablaufe. Die Basis des Nach- πchtentransports 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.
Das W3C hat Web Services bezuglich des Nachrichtenformats und -austauschs, eines Directory-Services zur Speicherung von Dienstbeschreibungen (UDDI) sowie einer Sprache zur Dienstbeschreibung (WSDL) spezifiziert.
Nach einer Identifikation der für die Entwicklungsumgebung 14 und/oder für die Steuerungssoftware 15 als notwendig ermit- telten 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 femmodulare Struktur der Software und der einzelnen Komponenten, der über vordefinierte Schnittstellen deren Kombination erlaubt.
Zur weiteren Generierung der Steuerungssoftware 15 wird m 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 ubernehm- bare 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 . Die Steuerungssoftware 15 kann aus einzelnen, unabhängig voneinander generierbaren und ausfuhrbaren Programmen bestehen. Zur gemeinsamen Steuerung eines technischen Prozesses ist regelmäßig eine Kommunikation zwischen solchen grundsatz- lieh unabhängigen Programmen erforderlich. Die möglichen Kommunikationswege zwischen einzelnen Programmen wird über die Planungsdaten 17 ermittelt und über Standardmechanismen etabliert ( .net, Ethernet, ...)
Der Generator 10 umfasst schließlich noch eine Protokolle - heit 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 er- stellt werden.
Damit lasst sich die Erfindung kurz wie folgt darstellen:
Die Erfindung lost sich von starren Programmen und Bibliotheken und anschließender Eingabe von Daten zur Problem- losung. 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 Generie- rung 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 Pro- jekten 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.

Claims

Patentansprüche
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.
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.
3. Einrichtung nach Anspruch 1 oder 2, wobei die ersten Daten Planungsdaten (17), Programmwissen (18) und/oder Verwaltungs- wissen (19) umfassen.
4. Einrichtung nach Anspruch 1 oder 2, wobei die zweiten Daten Planungsdaten (17), Erfahrungsdaten (20) und/oder Hardwarewissen (21) umfassen.
5. Einrichtung nach Anspruch 1 oder 2, wobei die dritten Daten Hardwarewissen (21) umfassen.
6. Einrichtung nach einem der vorangehenden Ansprüche, wobei die Steuerungssoftware (16) eine Mensch-Maschine-Schnittstelle umfasst.
7. Verfahren zur automatischen Generierung von Automati- sierungssoftware 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.
8. Verfahren nach Anspruch 7, wobei der Generator (10) weiter einen Anlagenkonfigurator (13) umfasst und wobei der Anlagen- konfigurator (13) anhand von vorgebbaren oder vorgegebenen dritten Daten, wie insbesondere Hardwarewissen (21), eine Konfiguration (16) einer Automatisierungshardware ermittelt und ggf. vornimmt.
9. Verfahren nach Anspruch 7 oder 8, wobei die ersten Daten Planungsdaten (17), Programmwissen (18) und/oder Verwaltungswissen (19) umfassen.
10. Verfahren nach Anspruch 7 oder 8, wobei die zweiten Daten Planungsdaten (17), Erfahrungsdaten (20) und/oder Hardwarewissen (21) umfassen.
11. Verfahren nach Anspruch 7 oder 8, wobei die dritten Daten Hardwarewissen (21) umfassen.
12. Verfahren nach einem der Ansprüche 7 bis 11, wobei die Steuerungssoftware (16) eine Mensch-Maschine-Schnittstelle umfasst .
EP03717166A 2002-04-02 2003-04-02 Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware Withdrawn EP1490758A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE2002114553 DE10214553A1 (de) 2002-04-02 2002-04-02 Einrichtung und Verfahren zur automatischen Generierung von Automatisierungssoftware
DE10214553 2002-04-02
PCT/DE2003/001091 WO2003083650A2 (de) 2002-04-02 2003-04-02 Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware

Publications (1)

Publication Number Publication Date
EP1490758A2 true EP1490758A2 (de) 2004-12-29

Family

ID=28051037

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03717166A Withdrawn EP1490758A2 (de) 2002-04-02 2003-04-02 Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware

Country Status (5)

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

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10357276B4 (de) 2003-12-05 2012-02-23 Abb Research Ltd. System und Verfahren zur gerichteten Bereitstellung und Installation von gerätespezifischen Funktionalitäten und/oder Informationen für die Feldgeräte eines verteilten Systems
CN101930360A (zh) * 2009-06-18 2010-12-29 杜波 企业应用软件制作器
CN102368216B (zh) * 2011-10-20 2013-11-27 北京金和软件股份有限公司 一种基于项目自动构造的流程实现方法
CN104463396A (zh) * 2013-09-25 2015-03-25 江苏智软信息科技有限公司 一种高效软件开发过程管理的方法
DE102015219841A1 (de) * 2015-10-13 2017-04-13 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren eines Steuergerätes
DE102017212499A1 (de) * 2017-07-20 2019-01-24 Siemens Aktiengesellschaft Steuerverfahren und Steuereinrichtung zum Betreiben eines Schienenfahrzeugs
CN107423074B (zh) * 2017-08-14 2020-07-07 上海迅显信息科技有限公司 一种创建具有通用组件的跨平台hmi应用的系统和方法
JP6939644B2 (ja) 2018-02-26 2021-09-22 オムロン株式会社 工程制御装置、製造装置、工程制御方法、制御プログラム、及び記録媒体
US11891526B2 (en) 2019-09-12 2024-02-06 Johnson & Johnson Vision Care, Inc. Ink composition for cosmetic contact lenses
US20230161331A1 (en) * 2020-04-25 2023-05-25 Goran Music 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 (de) * 1998-11-23 2007-08-01 Siemens Aktiengesellschaft Verfahren zur Ablage der Anwenderprogramme eines Automatisierungssystems
EP1122642A1 (de) * 1999-04-06 2001-08-08 Siemens Aktiengesellschaft Softwarekomponente für ein Automatisierungsprogramm mit Mehrfachnutzung für verschiedene Programmierwerkzeuge

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO03083650A3 *

Also Published As

Publication number Publication date
WO2003083650A2 (de) 2003-10-09
JP2005527893A (ja) 2005-09-15
WO2003083650A3 (de) 2004-06-17
CN1647033A (zh) 2005-07-27
CN100386722C (zh) 2008-05-07
DE10214553A1 (de) 2003-10-16

Similar Documents

Publication Publication Date Title
DE102008019040B4 (de) Verfahren und Steuergerät zur Steuerung eines Automatisierungssystems
EP2051150B1 (de) Verfahren zur automatischen Modifikation eines Programms
EP3616365B1 (de) Verfahren zum betreiben eines feldgeräts
EP2758872B1 (de) Verfahren zur generierung und handhabung von applikationen für komponenten eines verteilten steuerungssystems sowie engineering-system zur durchführung des verfahrens
DE112005001044T5 (de) Dienstorientierte Architektur für Prozesssteuerung
EP2182418A2 (de) Verfahren und Vorrichtung zum Zugreifen auf ein Funktionsmodul eines Automatiersierungssystems
DE102005053332A1 (de) Verfahren zum Betreiben eines Feldgerätes der Automatisierungstechnik mit Sonderfunktionalitäten
DE102007058609A1 (de) Verfahren zur Installation von Objekten für ein komponentenbasiertes Managementsystem für Feldgeräte der Automatisierungstechnik
WO2005033934A2 (de) Flexibler softwareupdate für automatisierungssysteme über internet
EP1658538B1 (de) Verfahren zum erzeugen von softwaremodulen für feldgeräte der prozessautomatisierungstechnik
EP1490758A2 (de) Einrichtung und verfahren zur automatischen generierung von automatisierungssoftware
EP1634130B1 (de) Vorrichtung und verfahren zur programmierung und/oder ausführung von programmen für industrielle automatisierungssysteme
US20050188351A1 (en) Device and method for automatically generating automation software
EP1518154A1 (de) Verfahren zur auswahl und/oder fertigung von automatisierungshardware
EP3571555B1 (de) Verfahren zum betrieb eines engineering-systems für ein industrielles prozessautomatisierungssystem und steuerungsprogramm
WO2000031597A2 (de) Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
EP1653308B1 (de) System und Verfahren zur Speicherung und Bereitstellung von Informationen
EP3855260B1 (de) Verfahren zur konfiguration und parametrierung von feldbusteilnehmern und engineeringsystem
EP3204831B1 (de) Verfahren zur nachverfolgbaren programmierung und konfigurierung eines geräts
EP4123396A1 (de) Technik zur realisierung einer visualisierung für eine automatisierungstechnische anlage mit einer speicherprogrammierbaren steuerung
WO2019057559A1 (de) Verfahren und datenverarbeitungsvorrichtung zum computerunterstützten bereitstellen einer in form von computercode vorliegenden information zu einem prozessmodul, sowie computerprogrammprodukt zur durchführung des verfahrens
EP3557341A1 (de) Verfahren und verwaltungseinrichtung zur optimierung eines industriellen prozesses
WO2003026208A2 (de) Datenverarbeitungsanlage, ressourcensteuergerät und verfahren zur fernverwaltung von ressourcen mittels generisch gekennzeichneten ressoucenbeschreibungsdaten
EP1454201A1 (de) Engineeringsystem und automatisierungssystem
EP2224296A1 (de) Verfahren zur Bereitstellung von Funktionen in einem Automatisierungssystem, Steuerungsprogramm und Automatisierungssystem

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20041001

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20050401

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS AKTIENGESELLSCHAFT

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SIEMENS AKTIENGESELLSCHAFT

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20141101