WO2003083650A2 - Device and method for automatically generating automation software - Google Patents

Device and method for automatically generating automation software Download PDF

Info

Publication number
WO2003083650A2
WO2003083650A2 PCT/DE2003/001091 DE0301091W WO03083650A2 WO 2003083650 A2 WO2003083650 A2 WO 2003083650A2 DE 0301091 W DE0301091 W DE 0301091W WO 03083650 A2 WO03083650 A2 WO 03083650A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
software
generator
knowledge
automation
Prior art date
Application number
PCT/DE2003/001091
Other languages
German (de)
French (fr)
Other versions
WO2003083650A3 (en
Inventor
Werner HÖFLER
Michael Tiegelkamp
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP03717166A priority Critical patent/EP1490758A2/en
Priority to JP2003581008A priority patent/JP2005527893A/en
Publication of WO2003083650A2 publication Critical patent/WO2003083650A2/en
Publication of WO2003083650A3 publication Critical patent/WO2003083650A3/en
Priority to US10/956,074 priority patent/US20050188351A1/en

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.

Abstract

The invention relates to a device and a method for automatically generating automatic software, comprising a generator (10) containing at least one software generator (11) and one project generator (12). A development environment (14) can be generated by the software generator (11) by using preset or predetermined first data, such as planning data (17), program knowledge (18) and administration knowledge (19), and control software (15) can be generated using the development environment (14) by means of the project generator (12), using preset or predetermined second data, such as planning data (17), experimental data (20) and hardware knowledge (21).

Description

Beschreibungdescription
Einrichtung und Verfahren zur automatischen Generierung von AutomatlsierungsSoftwareSetup and method for the automatic generation of automation software
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 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.
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. DerIn the older German patent application 102 06 691, a method for using at least one service held in a memory of a computer by a user is specified. The provision of software that corresponds to the specifications of the user is referred to as a service. The
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.User logs on to an administrative entity monitoring access to the service and specifies the desired service. The management unit then 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.
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.In the older German patent application 102 09 640, a method for generating an automation program from an HMI program (HMI = "human machine interface") is specified by means of a generator, the generator recognizing structures of the HMI program and converting them into structures of the automation program.
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.The invention consists in simplifying the processes involved in the creation of automation software. Such a simplification of the processes for the creation of automation software is achieved with a device as specified in claim 1. For this purpose, 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. Such a simplification is also achieved with a corresponding method as defined in claim 7.
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.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. However, 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. With the help of 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. In addition, there is a trend towards the use of standardized interfaces. These allow e.g. B. further processing of CAD data in such a way that all of them are combined in one on the basis of the CAD data and on the basis of library formations linked to individual data records of such CAD data automation technical process components such as motors, valves, limit switches, etc. can be determined. Based on predetermined or predefinable rules, 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 Automatisierungsgerat by criteria such as processing power and storage can be selected automatically.
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.In contrast, automation software is created today with commercially available, commonly used standard development environments. Such 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. According to the invention, for the automatic generation of automation software or parts, such as structures in particular, the generation of an individual development environment is first provided, and subsequently the generation of control software using the individually generated development environment.
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.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).
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.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.
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.Advantageous embodiments of the invention are the subject of the dependent claims. According to this, it is provided that 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.
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.An exemplary embodiment of the invention is explained in more detail below with reference to the drawing. Corresponding objects or elements are provided with the same reference symbols in all figures.
Darin zeigenShow in it
FIG 1 eine schematische Darstellung eines Generators zur automatischen Generierung von Automatisierungssoftware mit den dazu erforderlichen Daten,1 shows a schematic representation of a generator for the automatic generation of automation software with the data required for this,
FIG 2 einzelne Verfahrensschritte bei der automatischen Generierung von Automatisierungssoftware und2 individual process steps in the automatic generation of automation software and
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.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.
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).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, not shown, 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).
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) .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. 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 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.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 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. 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 possibly 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. 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.
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.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. Using the planning data 17, such as, in particular, description of tasks and problems, if appropriate In connection with data on 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 extensive the structures determined 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 in the event of a later revision of which operations at a specific point in the control software 15 are to be provided.
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 BitThe 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) 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.(Digital I / O) are available, special field devices are only available 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. 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.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 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.
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.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 neueThe experience data 20 are continuously updated, because each generated control software 16 delivers new ones
Erfahrungsdaten 20, die für nachfolgende Projekte nutzlich sein können.Experience data 20 that can be useful for subsequent projects.
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.Individual program instructions in the control software 15 relate to a control of the automation hardware. In order to correctly control the automation hardware or individual automation components of the automation sierungshardware, such as. To ensure, for example, input / output modules for taking up data from the technical process or for transmitting control information to the technical process, 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.
Die automatische Generierung der Konfiguration 16 durch den Anlagenkonfigurator 13 erfolgt unter Verwendung dritterThe automatic generation of the configuration 16 by the system configurator 13 takes place using third parties
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 .Data such as B. Hardware knowledge 21. When the control software 16 is generated, the type and scope of the required automation hardware result. Then z. B. known about what performance, z. B. with regard to processing speed or storage capacity, a central automation device must have. It can thus be determined on the basis of catalog data belonging to the 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 have to be connected to each other via a fieldbus. Based on 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 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.After all these steps, 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. 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 to the respective data. Such changes naturally only have an impact on the automatically generated automation software if the changes relate to data that was or can be used in the automatic generation. Overall, there 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 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.
Ein zweiter Verfahrensschritt 23 umfasst das automatischeA second method step 23 comprises the automatic one
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.Generating 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 the control software 15 and possibly the Transfer configuration 16 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 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.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 more comprehensive 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 automatically generated. Where possible, 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.
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.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 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 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 .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. Using predeterminable or predefined first data, software generator 11 generates development environment 14. Using predefinable or predefined second data and using development environment 14, project generator 12 generates control software 15. Finally, system configurator 13 generates configuration 16 on the basis of predefined or predefinable third data the respective automation hardware.
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 .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.
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.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 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.
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 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.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.
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 abrufbareThe 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. The format of such identifiers preferably follows existing or emerging standards. So z. B. the W3C (WWW Consortium; WWW = World Wide Web) WebServices, i.e. offered or available on the Internet
Dienstleistungen, bezuglich des Nachrichtenformats und -aus- tauschs, im Hinblick auf Directory-Services zur Speicherung von Dienstbeschreibungen (UDDI) sowie einer Sprache zur Dienstbeschreibung (WSDL) spezifiziert.Services, with regard to the message format and exchange, specified with regard to directory services for storing service descriptions (UDDI) and a language for service description (WSDL).
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 to identify and assign the first, second and third data.
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.So z. B. Within the planning data 17 data for previous projects can be assigned 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.
Ein weiteres Beispiel für die Verwendung standardisierter Kennungen zu Identifizierung und Zuordnung von Daten undAnother example of the use of standardized identifiers for identifying and assigning data and
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.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.
Kennungen der oben genannten Art können sich z. B. auf Branche, Anwendungsgebiet, Produkt, - Fertigungsprinzip (Forderband, Rohrleitungen, ... )Identifiers of the type mentioned above can e.g. B. on industry, field of application, product, manufacturing principle (conveyor belt, piping, ...)
Projektstrukturierung (technologisch, Funktional, CPU orientiert, ... )Project structuring (technological, functional, CPU-oriented, ...)
Programmiersprache bzw. Programmiermethode (ablaufoπentiert, contmuous, Kontaktplan, Funktionsplan) - Regelalgorithmus, Regelparameter,Programming language or programming method (process-oriented, contmuous, ladder diagram, function diagram) - control algorithm, control parameters,
Teilprozesse (Forderbandsteuerung, rühren, heizen, pressen, biegen, etc.)Sub-processes (conveyor belt control, stirring, heating, pressing, bending, etc.)
- etc. beziehen.- etc. related.
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.All required data are made available to the generator 10 via standard interfaces and standard networks As an example, reference is made to the expandable declaration language ebXML. ebXML is intended for handling business processes on the Internet. There are specifications for message formats and exchange, a registry and repository service as well as templates for certain business-specific objects and processes. The basis of the message transport for web services as well as for ebXML in the meantime is the Simple Object Access Protocol (SOAP), an XML-based protocol for RPC or message-oriented communication, which is typically encapsulated in HTTP and ensures reliable message exchange.
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.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).
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.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 fem-modular structure of the software and the individual components, which allows their combination via predefined interfaces.
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, ...)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 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, ...)
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.Finally, 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. 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 lasst sich die Erfindung kurz wie folgt darstellen:The invention can thus be briefly represented as follows:
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. 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 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

Patentansprüche claims
1. Einrichtung zur automatischen Generierung von Automatisierungssoftware mit einem zumindest einen Softwaregenerator (11) und einen Projektgenerator (12) umfassenden Generator ( 10) ,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),
- 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- 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)
- 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.- 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 Verwaltungs- wissen (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 comprise 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 Automati- sierungssoftware unter Verwendung eines zumindest einen Softwaregenerator (11) und einen Projektgenerator (12) umfassenden Generators (10),7. Method for the automatic generation of automation software using a generator (10) comprising at least one software generator (11) and one project generator (12),
- 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- 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)
- 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.- whereby the project generator (12) generates a 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 Anlagen- konfigurator (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) based on predeterminable or predetermined third data, such as in particular hardware knowledge (21), a configuration (16) Automation hardware is determined and, if necessary, implemented.
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 comprises 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.
PCT/DE2003/001091 2002-04-02 2003-04-02 Device and method for automatically generating automation software WO2003083650A2 (en)

Priority Applications (3)

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

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/956,074 Continuation US20050188351A1 (en) 2002-04-02 2004-10-04 Device and method for automatically generating automation software

Publications (2)

Publication Number Publication Date
WO2003083650A2 true WO2003083650A2 (en) 2003-10-09
WO2003083650A3 WO2003083650A3 (en) 2004-06-17

Family

ID=28051037

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2003/001091 WO2003083650A2 (en) 2002-04-02 2003-04-02 Device and method for automatically generating 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021212165A1 (en) * 2020-04-25 2021-10-28 Music Goran Method for programming a plant control system

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
DE102017212499A1 (en) * 2017-07-20 2019-01-24 Siemens Aktiengesellschaft Control method and control device for operating a rail vehicle
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

Citations (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
US6053951A (en) * 1997-07-10 2000-04-25 National Instruments Corporation Man/machine interface graphical code generation wizard for automatically creating MMI graphical programs
EP1004960A2 (en) * 1998-11-23 2000-05-31 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

Patent Citations (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
US6053951A (en) * 1997-07-10 2000-04-25 National Instruments Corporation Man/machine interface graphical code generation wizard for automatically creating MMI graphical programs
EP1004960A2 (en) * 1998-11-23 2000-05-31 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021212165A1 (en) * 2020-04-25 2021-10-28 Music Goran Method for programming a plant control system

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102008019040B4 (en) Method and control device for controlling an automation system
EP2051150B1 (en) Method for automatic modification of a program
DE10049025B4 (en) Process control system, method for configuring a process control system
EP2758872B1 (en) Method for generating and handling applications for components of a distributed control system and engineering system for implementing the process
DE112005001044T5 (en) Service-oriented architecture for process control
EP3616365B1 (en) Method for operating a field device
EP2182418A2 (en) Method and device for accessing a function module of an automation system
CA2511443A1 (en) Dynamic schema for unified plant model
DE102007058609A1 (en) Object e.g. main object, installation method for e.g. fill level measuring device, involves installing new objects for field devices, and eliminating earlier installation and objects assigned to earlier installation when not necessary
DE102005053332A1 (en) Method for operating a field device of automation technology with special functionalities
EP1658538B1 (en) Method for producing software modules for field appliances used in the process automation technique
WO2003083650A2 (en) Device and method for automatically generating automation software
EP1634130B1 (en) Device and method for programming and/or executing programs for industrial automation systems
US20050188351A1 (en) Device and method for automatically generating automation software
WO2004006032A1 (en) Method for selecting and/or producing automation hardware
EP3571555B1 (en) Method for operating an engineering system for an industrial process automation system and control program
EP1137972A2 (en) Automation system for solving a technical-process task and corresponding method
EP1653308B1 (en) Method and apparatus for providing and storing information
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
WO2019057559A1 (en) Method and data processing device for the computer-supported providing of information, available in the form of computer code, for a process module, and computer program product for carrying out the method
EP3557341A1 (en) Method and administration device for optimizing an industrial process
WO2003026208A2 (en) Data processing unit, resource controller and method for remote control of resources by means of generically-coded resource description data
EP1454201A1 (en) Engineering and automation system
EP2224296A1 (en) Method for providing functions in an automation system, control program and automation system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP US

AL Designated countries for regional patents

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 LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2003581008

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2003717166

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10956074

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20038077671

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003717166

Country of ref document: EP