EP2051150A1 - Method for automatic modification of a program and automation system - Google Patents

Method for automatic modification of a program and automation system Download PDF

Info

Publication number
EP2051150A1
EP2051150A1 EP07020255A EP07020255A EP2051150A1 EP 2051150 A1 EP2051150 A1 EP 2051150A1 EP 07020255 A EP07020255 A EP 07020255A EP 07020255 A EP07020255 A EP 07020255A EP 2051150 A1 EP2051150 A1 EP 2051150A1
Authority
EP
European Patent Office
Prior art keywords
program
automation system
date
program code
code object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP07020255A
Other languages
German (de)
French (fr)
Other versions
EP2051150B1 (en
Inventor
Johannes Extra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE502007006736T priority Critical patent/DE502007006736D1/en
Priority to EP07020255A priority patent/EP2051150B1/en
Priority to US12/287,483 priority patent/US8245215B2/en
Priority to JP2008265393A priority patent/JP2009099150A/en
Priority to CNA2008101679279A priority patent/CN101414160A/en
Publication of EP2051150A1 publication Critical patent/EP2051150A1/en
Application granted granted Critical
Publication of EP2051150B1 publication Critical patent/EP2051150B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23324Separate update program onboard

Definitions

  • the invention relates to a method for automatically modifying a program of an automation system. It further relates to an automation system with an automatically modifiable program and to a computer program with program code instructions for implementing a method for automatic modification of the program of the automation system and a computer program product with such a computer program.
  • Automation system encompasses all devices or devices, in addition to e.g. Controllers such as programmable logic controllers, process computers, (industrial) computers and the like also drive controllers, frequency converters and the like, as used to control, regulate and / or monitor technological processes e.g. be used or be used for forming or transporting material, energy or information, etc., in particular by means of suitable technical devices, such. Sensors or actuators, energy is spent or converted.
  • Controllers such as programmable logic controllers, process computers, (industrial) computers and the like also drive controllers, frequency converters and the like, as used to control, regulate and / or monitor technological processes e.g. be used or be used for forming or transporting material, energy or information, etc., in particular by means of suitable technical devices, such.
  • Sensors or actuators energy is spent or converted.
  • a user of the automation system is usually active.
  • the user uses a hardware or software "tool", by means of which he transmits a firmware and / or a program of the automation system in the automation system, in particular the firmware and / or software.
  • an installation necessary between the previous and the updated software / firmware, so z.
  • an application located on a server remote from the automation system establishes a communicative connection to the automation system.
  • the application checks the firmware and / or software of the automation system and, if necessary, transmits a more up-to-date firmware and / or software to the automation system. This is activated after the transfer from the application to the automation system.
  • a disadvantage of this well-known method is that an activity "from the outside" is necessary for the modification, so for example, a user must be active or an application on the remote server.
  • the automation system or its firmware and / or software is dependent on a user or a specific server.
  • an automation system e.g. B. a firmware components comprehensive program, in particular control program and the like
  • a method for automatically modifying a program of the automation system as defined in the independent claim 1.
  • a program component which, for.
  • a non-volatile memory e.g. B. an EPROM, EEPROM, buffered RAM, a memory card, hard disk and the like deposited or stored
  • a selection means for example a software and / or hardware selection means, such.
  • a selection program As a selection program, a selection routine, a subroutine or the like, on the basis of the first date in at least one database deposited or storable data object, in particular a data object with program code data - hereinafter referred to as program code object - selected and the program of the automation system by means of the program code object at least partially modified by integrating the program code object into the program. This ensures that the modification is automatically initiated and performed by the automation system itself.
  • the identification means can be realized for example as software.
  • Another object is to provide a particularly suitable for carrying out the method automation system. This object is achieved with an automation system as defined in independent claim 11.
  • the program comprises at least firmware components, wherein by means of an identification means assigned to the automation system a to a firmware component as Program component related first date is determined and wherein the program is at least partially modified by means of the program code object by the program code object is integrated as a firmware component in the program.
  • This ensures a simple modification and / or updating of the program, in particular by means of the firmware component.
  • the database is assigned to at least one server, wherein the server can be located remotely from the automation system or can be an integral part of the automation system or of another automation system.
  • z. B. simplifies the storage of program code objects.
  • the database can be easily extended, supplemented, enlarged, moved and the like; also a modular structure of the database of exchangeable subdatabases is possible.
  • the database can be an integral part of the server or it can be communicatively connected to this wired or wireless. In this case refers to line here and below z. B. on a cable, a conductor and / or the like and without a lead z. B. on a radio link, a wireless LAN, Bluetooth, infrared, laser, wireless firewire and the like.
  • the server and the automation system can also be communicatively connected or connectable with each other by line or line.
  • server and automation system for example, directly or indirectly, for. B. by means of the Internet, be connected.
  • multiple automation systems may access a server, such as forming a network in a star configuration, or may be provided with a ring configuration, a line configuration, or a combination of star, ring, and / or line configuration, including maintenance and / or updating The like simplifies and thus contributes to a cost reduction.
  • the selection means, the identification means or the selection and the identification means are executed as program components, that is to say as components of the program of the automation system, which may need to be updated.
  • program components that is to say as components of the program of the automation system, which may need to be updated.
  • at least one of these means can be implemented as at least one external component, that is to say not the program-associated component, which has access to the program or at least to components of the program.
  • selection means and / or identification means may be implemented as hardware.
  • At least one on the program component ie z.
  • the firmware component, related second date and at least one based on the selected program code object third date compared, for example by means of a comparator, and the program depending on a result of the comparison, at least partially modified.
  • This z. B. second and third date a version number, a creation date, a modification date, a reference number, a combination of these and / or the like. This ensures that the selected program code object ensures an update, enhancement, extension, change, or other desired modification of the program.
  • a program component in particular a firmware component, as which the program code object is integrated into the program, is more current than a corresponding program component already present in the automation system, that is, e.g. an update / upgrade or downgrade is performed.
  • the second date can be removed or determined from the program.
  • the third date may be off the program code object can be removed or determined.
  • the second, third, or both data may be a version number, a creation date, a modification date, a reference number, a program name, a lot size, a lot identification, or the like, or a combination thereof.
  • Removable means here and below that, for example, at least one date from the program (second date) or the program code object (third date) is directly usable or z. B. based on an algorithm or the like from the program or from at least part of the program can be determined.
  • At least one date can be stored externally, ie not in the program, or can be stored, and used directly as the second or third date or indirectly as the input value for the algorithm. This ensures a good changeability of the second and / or third date, which results in an improved adaptability of the method to a further development of the automation system or the automation technology.
  • the first date may include a version number, a creation date, a modification date, a reference number, a program name, a lot identification (eg, a lot name or the like), a lot size, a hardware identification such as a board id (identification), a processor Id and / or a MAC address (Media Access Control), and / or the like, and further, the first date corresponding to the second date, so the second date, for example, from the first date can be determined or identical with this.
  • the method by means of an initialization agent, which z. B. may be executed as a software and / or hardware component, in connection with an initialization of the program, a program completion, a program interruption, a program break or the like called and / or executed.
  • an initialization of the program is here, for example, an activation of the Program, z.
  • the initialization means can check whether the method for automatic change can be carried out, that is, whether the program code object can be integrated into the program. Alternatively, such a check can be initiated and / or controlled by the initialization means.
  • the program can only in a non-volatile memory, so z.
  • a non-volatile memory so z.
  • EEPROM electrically erasable programmable read-only memory
  • buffered RAM a memory card, hard disk or the like
  • firmware components include.
  • z a simple, comfortable and cost changeability, z.
  • the program in particular the firmware and / or the firmware components guaranteed.
  • the automation system and the server comprise at least one well-known interface for the communicative connection of the automation system to the server.
  • At least one program code object can be stored or stored in the database so that one or more than one stored program code object is selected on the basis of the first date and transmitted to the automation system, where it is then activated in a timely or decoupled manner from the transmission (be activated).
  • the or each program code object in the first database can, for.
  • one or more additional (s) program code object (s) be assigned, which, for example, for a correct executability of the program code object after its integration into the program or for executability of the program altogether necessary or desired, or which additional functions for the program code object to be integrated.
  • the selection means and / or identification means may, for. B. in a second database, which is assigned to the automation system or an integral part of the automation system, be deposited or stored. This ensures easy changeability or exchangeability of selection means and / or identification means by replacing the second database with another second database.
  • the second date and the third date may for example be compared by a hardware or software comparison means. This can generate a signal depending on the result of the comparison, which enables the modification of the program.
  • the modification can also be decoupled in time from the activation.
  • the first date and / or the second date from the program and / or the third date from the program code object by means of at least one first determination component of the program, ie z. B. a subroutine of the program, from the program itself or from data stored for the program, and / or determined.
  • the advantage of the invention and its embodiments is thus in particular that an activity with respect to the automatic modification, z. B. an initiation and / or execution of the automatic modification of a program to be updated in an automation system (in particular of the at least one firmware component comprising program) from the automation system or the program itself. It is therefore in particular no activity "from the outside", ie z. B. from a user and / or an external server with an application software needed.
  • the application software of the server would be necessary here for establishing a connection to the automation system, starting from the server. It would accomplish a check of the timeliness of the firmware component, the program and the like and, for example, transmit a more up-to-date firmware component or a more up-to-date program to the programmable controller.
  • the application software of the server would activate the transmitted firmware or the transmitted program in the automation system.
  • Program code objects which z.
  • As required for production data include, for example, automatically or by the user in connection with a time at which this production is to take place on the server (and / or in the server associated database) deposited.
  • the automation system "searches" permanently or at intervals for "suitable” program code objects and automatically loads them from the server or from the database. These program code objects can then be activated automatically.
  • At least one data object stored in the database can represent a datum or related dataset related to a production process or, in its embodiment, can comprise such data as a program code object.
  • the date or the record describes, for example, a lot size, lot identification, an identification of a program to be processed, a tool identification, temperature, speed and the like.
  • production-process-relevant data can be stored in a "central location" for an automation system or a group of automation systems in a simple and cost-effective manner, where they are available to the automation system (s) for "retrieval".
  • the automation system Since the automation system checks permanently or at intervals as to whether data or data records are stored for it, the automation system quickly has the data to be used in each case, which provides high flexibility in production control and rapid adaptability to changed production conditions, educts, products, to be produced quantities, tools, production processes and the like. For example, it may be that a production step is carried out at a temperature T1 by means of the automation system. However, if it turns out that its efficiency can be increased by performing it at a changed temperature T2, then a data or program code object comprising this temperature (T2) can easily and quickly be stored in the database associated with the server. This is "found" by the automation system there on the basis of a check carried out by the automation system to check the data / data records stored in the database, and integrated into the program so that the production step is now carried out at the changed temperature T2.
  • the automation device comprises the program which sets up a communication connection to the server associated with the first database or initiates or controls the setup, it is not necessary, for example B. unlock an electronic protective measure, such. B. a firewall, which protects the automation device against unauthorized access.
  • B. a firewall
  • z. As an authentication and / or authorization "outside” accessing users, application software in the server, a software or hardware "tool” not necessary, which u, a. increased ease of use of the automation system.
  • FIG. 1 schematically shows an automation system 10 with an automatically modifiable program 12.
  • the program 12 includes at least one firmware component 14a.
  • further firmware components 14b and / or at least one program component 16a may be included.
  • a first date 18a, 18b is related to the firmware component 14a, 14b and / or may, for. B. for the firmware component 14a, 14b stored in a database, not shown.
  • An identification means 20 assigned to the automation system 10 determines a first date 18a, 18b associated with the firmware component 14a, 14b.
  • the automation system 10 and a remotely located from this server 22 communicate while wired or wirelessly via a communication link 23, z. B. using known per se interfaces 24a, 24b.
  • a database 26 is accessed, in which program code objects 28a, 28b are stored.
  • This access is provided by a, the automation system 10 associated selection means 30, which as hardware or software or a combination thereof.
  • a program code object 28a, 28b, 28c is selected by the selection means 30.
  • the program code object 28a, 28b, 28c selected by the selection means 30 is transmitted to the automation system 10.
  • An integration means 34 of the automation system 10 integrates the selected program code object 28a, 28b, 28c into the program 12.
  • the selected program code object 28a, 28b, 28c is integrated in the program 12, in particular as a firmware component 14a, 14b.
  • Other program code objects 28a, 28b, 28c may also be integrated into the program 12 as a program component 16a, 16b.
  • the integration of the program code object 28a, 28b, 28c into the program 12 serves to modify the program 12 and can take place, for example, during the transmission of the program code object 28a, 28b, 28c into the automation system 10 or following the transfer.
  • the integration can be carried out, for example, in connection with an initialization, a termination, an interruption, a pause, a sequence of the program 12 or the like.
  • the integration means 34 checks whether the automatic modification can be carried out without affecting a program sequence.
  • the integration means 34 z Example by means of the program 12, the automation system 10 or by means of a signal (not shown) which is generated by an associated with the program 12 or the automation system initialization means 34 a, are controlled, ie z. B. triggered, interrupted, stopped and the like.
  • Identification means 20, selection means 30 and / or integration means 34 may be software and / or hardware be executed and z.
  • B. be an integral part of the automation system 10, here, for example, in particular the program 12 associated components such.
  • FIG. 2 1 shows a schematic representation of the method according to the invention for the automatic modification of the program 12.
  • the first date 18a which is related to the firmware component 14a, 14b and / or stored for it, is first determined by the identification means 20.
  • a data base 26 (see FIG FIG. 1 ) stored program code object 28a by means of the selection means 30.
  • a determined from the program 12 and / or deposited for this program 12 second date 36 is compared with a determined from the program code object 28a and / or stored for this third date 38, z.
  • Example by means of a comparator 40 which may be designed as soft and / or hardware.
  • the second date 36 for example, be identical to the first date 18a or be determinable from this, z. B. by means of an algorithm. If the comparison shows that a selection criterion 42 for the program code object 28a is satisfied, ie z.
  • the program code object 28a is more current than the firmware component 14a, 14b (in FIG FIG. 1 shown)
  • the integration of the program code object 28a takes place in the program 12.
  • the program code object 28a is first transferred to the automation system 10. Together with the transmission to the automation system 10, the modification of the program 12, which is carried out, for example, by means of the integration means 34 (as in FIG FIG. 1 shown) accomplished.
  • FIG. 3 shows a schematic representation of a communication network 44 together with the method as in FIG. 2 shown.
  • the first date 18a is determined.
  • the automation system 10 establishes a communicative connection 23 with the server 22.
  • selection means 30 in FIG. 1 is shown
  • Program code object 28b selected from a number of program code objects 28a, 28b, 28c and transmitted to the automation system 10 via the server 22 and the communicative connection 23, here communication network 44.
  • it is checked whether the program code object 28b is more current than the program component 16a, 16b.
  • the program code object 28b is used, in particular, as a firmware component 14a, 14b (in FIG FIG. 1 shown) integrated.
  • the program 12 can be modified during, before or after a runtime.
  • it can be ensured by means of the initialization means 34a that the program 12, parts of the program 12 or a sequence thereof at an integration time of the program code object 28a, 28b, 28c into the program 12 is not impaired, so that for example one from the automation system 10 or components the automation system 10 executed automation process is not disturbed and / or canceled.
  • a method for automatic modification of a program 12 of an automation system 10 is specified, wherein a first data item 18a, 18b determined by means of an identification means 20 assigned to the automation system 10 is determined on a program component 16a, 16b of the program 12 in which a program code object 28a, 28b, 28c deposited in at least one database 26 is selected by means of a selection means 30 on the basis of the first date 18a, 18b, and wherein the program 12 is at least partially modified by means of the program code object 28a, 28b, 28c, in that the program code object 28a, 28b, 28c is integrated into the program 12, as well as an automation system 10 comprising in particular at least firmware components 14a, 14b, automatically after the Method modifiable program 12, with an associated identification means 20 for determining a program component 16a, 16b, in particular a firmware component 14a, 14b, related first date 18a, 18b, with a selection means 30 for selecting a stored in at least one database 26 or deposited program code object

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The method involves determining an item of data (18a) e.g. version number, related to a program component of an automatically modifiable program (12) using an identificator assigned to an automation system (10), and selecting program code objects (28a-28c) stored in a database using a selector based on the item of the data. The program is modified by using the program code objects that are integrated into the program, where the selector and the identificator are program components of the program. The database is assigned to a server (22) that is arranged remotely from the automation system. Independent claims are also included for the following: (1) an automation system comprising an identificator for determining an item of data related to a program component (2) a computer readable medium having a set of instructions for performing a method for automatically modifying a program of an automation system.

Description

Die Erfindung betrifft ein Verfahren zur automatischen Modifikation eines Programms eines Automatisierungssystems. Sie bezieht sich weiterhin auf ein Automatisierungssystem mit einem automatisch modifizierbaren Programm sowie auf ein Computerprogramm mit Programmcodeanweisungen zur Implementierung eines Verfahrens zur automatischen Modifikation des Programms des Automatisierungssystems und ein Computerprogrammprodukt mit einem solchen Computerprogramm.The invention relates to a method for automatically modifying a program of an automation system. It further relates to an automation system with an automatically modifiable program and to a computer program with program code instructions for implementing a method for automatic modification of the program of the automation system and a computer program product with such a computer program.

Verfahren zur Modifikation von Firmware und/oder Software von Automatisierungssystemen sind allgemein bekannt. Der Begriff Automatisierungssystem umfasst dabei sämtliche Geräte oder Einrichtungen, also neben z.B. Steuerungen, wie speicherprogrammierbaren Steuerungen, Prozessrechnern, (Industrie-) Computern und dergleichen auch Antriebssteuerungen, Frequenzumrichter und Ähnliches, wie sie zur Steuerung, Regelung und/oder Überwachung technologischer Prozesse z.B. zum Umformen oder Transportieren von Material, Energie oder Information etc. eingesetzt werden oder einsetzbar sind, wobei insbesondere über geeignete technische Einrichtungen, wie z.B. Sensoren oder Aktoren, Energie aufgewandt oder gewandelt wird.Methods for modifying firmware and / or software of automation systems are well known. The term automation system encompasses all devices or devices, in addition to e.g. Controllers such as programmable logic controllers, process computers, (industrial) computers and the like also drive controllers, frequency converters and the like, as used to control, regulate and / or monitor technological processes e.g. be used or be used for forming or transporting material, energy or information, etc., in particular by means of suitable technical devices, such. Sensors or actuators, energy is spent or converted.

Bei einer Initiation einer solchen Modifikation, also z. B. einem Update oder Upgrade, wird in der Regel ein Anwender des Automatisierungssystems aktiv. Der Anwender bedient sich dabei eines Hardware- oder Software-"Werkzeuges", mittels welchem er eine Firmware und/oder ein Programm des Automatisierungssystems in das Automatisierungssystem, insbesondere die Firmware und/oder Software, überträgt. Zusätzlich ist eine wiederum durch den Anwender ausgelöste Wirksamschaltung zwischen der bisherigen und der aktualisierten Soft-/Firmware, also z. B. eine Installation, notwendig. zwischen der bisherigen und der aktualisierten Soft-/Firmware, also z. B. eine Installation, notwendig.In an initiation of such a modification, ie z. As an update or upgrade, a user of the automation system is usually active. The user uses a hardware or software "tool", by means of which he transmits a firmware and / or a program of the automation system in the automation system, in particular the firmware and / or software. In addition, an activated by the user effective circuit between the previous and the updated software / firmware, so z. As an installation necessary. between the previous and the updated software / firmware, so z. As an installation necessary.

Bei einer automatisierten Alternative zu einer solchen Modifikation stellt eine sich auf einem entfernt von dem Automatisierungssystem angeordneten Server befindende Anwendung eine kommunikative Verbindung zum Automatisierungssystem her. Die Anwendung überprüft die Firmware und/oder Software des Automatisierungssystems und überträgt gegebenenfalls eine aktuellere Firm- und/oder Software in das Automatisierungssystem. Diese wird nach der Übertragung von der Anwendung auf dem Automatisierungssystem wirksam geschaltet.In an automated alternative to such a modification, an application located on a server remote from the automation system establishes a communicative connection to the automation system. The application checks the firmware and / or software of the automation system and, if necessary, transmits a more up-to-date firmware and / or software to the automation system. This is activated after the transfer from the application to the automation system.

Nachteilig bei diesem allgemein bekannten Verfahren ist jedoch, dass eine Aktivität "von außen" für die Modifikation notwendig ist, also beispielsweise ein Anwender tätig werden muss oder eine Anwendung auf dem entfernt angeordneten Server. Dabei ist also das Automatisierungssystem bzw. dessen Firm- und/oder Software von einem Nutzer bzw. von einem spezifischen Server abhängig.A disadvantage of this well-known method, however, is that an activity "from the outside" is necessary for the modification, so for example, a user must be active or an application on the remote server. Thus, the automation system or its firmware and / or software is dependent on a user or a specific server.

Eine Aufgabe der Erfindung besteht somit darin, ein verbessertes Verfahren zur automatischen Modifikation eines Programms eines Automatisierungssystems, z. B. eines Firmwarekomponenten umfassenden Programms, insbesondere Steuerungsprogramms und dergleichen, anzugeben, bei welchem das Automatisierungssystem unabhängig von einer Anwendung auf einem Server und/oder einer Nutzeraktion ist. Eine weitere Aufgabe besteht darin zu ermöglichen, dass das Programm des Automatisierungssystems während seiner Laufzeit modifiziert wird.It is therefore an object of the invention to provide an improved method for automatically modifying a program of an automation system, e.g. B. a firmware components comprehensive program, in particular control program and the like, specify, in which the automation system is independent of an application on a server and / or a user action. Another object is to allow the program of the automation system to be modified during its runtime.

Diese Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren zur automatischen Modifikation eines Programms des Automatisierungssystems, wie es in dem unabhängigen Anspruch 1 definiert ist. Dazu ist vorgesehen, dass mittels eines dem Automatisierungssystem zugeordneten Identifikationsmittels ein auf eine Programmkomponente, welche z. B. in einem nichtflüchtigen Speicher, z. B. einem EPROM, EEPROM, gepufferten RAM, einer Speicherkarte, Festplatte und dergleichen hinterlegt oder hinterlegbar ist, bezogenes erstes Datum ermittelt wird. Mittels eines Auswahlmittels, beispielsweise eines Software- und/oder Hardware-Auswahlmittels, wie z. B. eines Auswahlprogramms, einer Auswahlroutine, einer Subroutine oder dergleichen, wird auf Basis des ersten Datums ein in zumindest einer Datenbasis hinterlegtes oder hinterlegbares Datenobjekt, insbesondere ein Datenobjekt mit Programmcodedaten - im Folgenden als Programmcodeobjekt bezeichnet - ausgewählt und das Programm des Automatisierungssystems mittels des Programmcodeobjekts zumindest teilweise modifiziert, indem das Programmcodeobjekt in das Programm integriert wird. Hierdurch wird gewährleistet, dass die Modifikation automatisch vom Automatisierungssystem selbst initiiert und durchgeführt wird. Das Identifikationsmittel kann beispielsweise als Software realisiert sein.This object is achieved by a method for automatically modifying a program of the automation system, as defined in the independent claim 1. For this purpose, it is provided that by means of an automation system associated with the identification means on a program component, which, for. In a non-volatile memory, e.g. B. an EPROM, EEPROM, buffered RAM, a memory card, hard disk and the like deposited or stored, referred first date is determined. By means of a selection means, for example a software and / or hardware selection means, such. As a selection program, a selection routine, a subroutine or the like, on the basis of the first date in at least one database deposited or storable data object, in particular a data object with program code data - hereinafter referred to as program code object - selected and the program of the automation system by means of the program code object at least partially modified by integrating the program code object into the program. This ensures that the modification is automatically initiated and performed by the automation system itself. The identification means can be realized for example as software.

Eine weitere Aufgabe ist ein zur Durchführung des Verfahrens besonders geeignetes Automatisierungssystem anzugeben. Diese Aufgabe wird mit einem Automatisierungssystem gelöst, wie es im unabhängigen Anspruch 11 definiert ist.Another object is to provide a particularly suitable for carrying out the method automation system. This object is achieved with an automation system as defined in independent claim 11.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. Dabei verwendete Rückbeziehungen weisen auf die weitere Ausbildung des Gegenstandes des Hauptanspruches durch die Merkmale des jeweiligen Unteranspruches hin; sie sind nicht als ein Verzicht auf die Erzielung eines selbständigen, gegenständlichen Schutzes für die Merkmalskombinationen der rückbezogenen Unteransprüche zu verstehen. Des Weiteren ist im Hinblick auf eine Auslegung der Ansprüche bei einer näheren Konkretisierung eines Merkmals in einem nachgeordneten Anspruch davon auszugehen, dass eine derartige Beschränkung in den jeweils vorangehenden Ansprüchen nicht vorhanden ist.Advantageous embodiments of the invention are the subject of the dependent claims. This used backlinks point to the further development of the subject matter of the main claim by the features of the respective subclaim; they should not be construed as a waiver of obtaining independent, objective protection for the feature combinations of the dependent claims. Furthermore, with a view to an interpretation of the claims in a closer specification of a feature in a subordinate claim, it is to be assumed that such a restriction does not exist in the respective preceding claims.

Bevorzugt umfasst das Programm zumindest Firmwarekomponenten, wobei mittels eines dem Automatisierungssystem zugeordneten Identifikationsmittels ein auf eine Firmwarekomponente als Programmkomponente bezogenes erstes Datum ermittelt wird und wobei das Programm mittels des Programmcodeobjekts zumindest teilweise modifiziert wird, indem das Programmcodeobjekt als Firmwarekomponente in das Programm integriert wird. Hierdurch wird eine einfache Modifizierung und/oder Aktualisierung des Programms, insbesondere mittels der Firmwarekomponente, gewährleistet.Preferably, the program comprises at least firmware components, wherein by means of an identification means assigned to the automation system a to a firmware component as Program component related first date is determined and wherein the program is at least partially modified by means of the program code object by the program code object is integrated as a firmware component in the program. This ensures a simple modification and / or updating of the program, in particular by means of the firmware component.

In einer bevorzugten Ausführungsform ist die Datenbasis zumindest einem Server zugeordnet, wobei der Server entfernt vom Automatisierungssystem angeordnet oder ein integraler Bestandteil des Automatisierungssystems oder eines weiteren Automatisierungssystems sein kann.In a preferred embodiment, the database is assigned to at least one server, wherein the server can be located remotely from the automation system or can be an integral part of the automation system or of another automation system.

Bei einem entfernt vom Automatisierungssystem angeordneten Server ist z. B. ein Hinterlegen von Programmcodeobjekten vereinfacht. Zudem kann die Datenbasis auf einfache Art erweitert, ergänzt, vergrößert, verschoben und dergleichen werden; auch ein modularer Aufbau der Datenbasis aus austauschbaren Subdatenbasen ist möglich. Die Datenbasis kann dabei integraler Bestandteil des Servers sein oder sie kann mit diesem leitungsgebunden oder leitungslos kommunikativ verbunden sein. Dabei bezieht sich leitungsgebunden hier und im Folgenden z. B. auf ein Kabel, einen Leiter und/oder dergleichen und leitungslos z. B. auf eine Richtfunkstrecke, ein W-LAN (wireless lan), Bluetooth, Infrarot, Laser, wireless Firewire und dergleichen. Der Server und das Automatisierungssystem können dabei ebenfalls leitungsgebunden oder leitungslos kommunikativ miteinander verbunden oder verbindbar sein. Zudem können Server und Automatisierungssystem beispielsweise direkt oder indirekt, z. B. mittels des Internets, verbunden sein. Zudem können mehrere Automatisierungssysteme auf einen Server zugreifen und so beispielsweise ein Netzwerk in einer Sternkonfiguration bilden oder es kann eine Ringkonfiguration, eine Linienkonfiguration oder eine Kombination aus Stern-, Ring- und/oder Linienkonfiguration vorgesehen sein, was eine Wartung und/oder Aktualisierung oder dergleichen vereinfacht und somit zu einer Kostenreduktion beiträgt.In a remote from the automation system server is z. B. simplifies the storage of program code objects. In addition, the database can be easily extended, supplemented, enlarged, moved and the like; also a modular structure of the database of exchangeable subdatabases is possible. The database can be an integral part of the server or it can be communicatively connected to this wired or wireless. In this case refers to line here and below z. B. on a cable, a conductor and / or the like and without a lead z. B. on a radio link, a wireless LAN, Bluetooth, infrared, laser, wireless firewire and the like. In this case, the server and the automation system can also be communicatively connected or connectable with each other by line or line. In addition, server and automation system, for example, directly or indirectly, for. B. by means of the Internet, be connected. In addition, multiple automation systems may access a server, such as forming a network in a star configuration, or may be provided with a ring configuration, a line configuration, or a combination of star, ring, and / or line configuration, including maintenance and / or updating The like simplifies and thus contributes to a cost reduction.

Besonders bevorzugt sind das Auswahlmittel, das Identifikationsmittel oder das Auswahl- und das Identifikationsmittel als Programmkomponenten, also als Bestandteile des gegebenenfalls zu aktualisierenden Programms des Automatisierungssystems, ausgeführt. Hierdurch wird eine hohe Flexibilität z. B. durch eine einfache Änderbarkeit, z. B. Update- und/oder Upgradefähigkeit, gewährleistet. Alternativ kann zumindest eines dieser Mittel als zumindest eine externe, also nicht dem Programm zugeordnete Komponente ausgeführt sein, welche Zugriff auf das Programm oder zumindest auf Komponenten des Programms hat. Zudem oder alternativ können Auswahlmittel und/oder Identifikationsmittel als Hardware ausgeführt sein.Particularly preferably, the selection means, the identification means or the selection and the identification means are executed as program components, that is to say as components of the program of the automation system, which may need to be updated. As a result, a high flexibility z. B. by a simple changeability, z. B. update and / or upgrade capability guaranteed. Alternatively, at least one of these means can be implemented as at least one external component, that is to say not the program-associated component, which has access to the program or at least to components of the program. Additionally or alternatively, selection means and / or identification means may be implemented as hardware.

Bevorzugt werden zumindest ein auf die Programmkomponente, also z. B. die Firmwarekomponente, bezogenes zweites Datum und zumindest ein auf das ausgewählte Programmcodeobjekt bezogenes drittes Datum verglichen, beispielsweise mittels eines Vergleichers, und das Programm in Abhängigkeit von einem Ergebnis des Vergleichs zumindest teilweise modifiziert. Dabei können z. B. zweites und drittes Datum eine Versionsnummer, ein Erstellungsdatum, ein Änderungsdatum, eine Referenznummer, eine Kombination aus diesen und/oder dergleichen sein. Hierdurch wird sichergestellt, dass das ausgewählte Programmcodeobjekt eine Aktualisierung, eine Verbesserung, eine Erweiterung, eine Änderung oder eine sonstige gewünschte Modifikation des Programms gewährleistet. Somit kann gewährleistet werden, dass eine Programmkomponente, insbesondere eine Firmwarekomponente, als welche das Programmcodeobjekt in das Programm integriert wird, aktueller ist als eine bereits im Automatisierungssystem vorhandene, korrespondierende Programmkomponente, dass also z.B. ein Update/Upgrade oder Downgrade ausgeführt wird.At least one on the program component, ie z. Example, the firmware component, related second date and at least one based on the selected program code object third date compared, for example by means of a comparator, and the program depending on a result of the comparison, at least partially modified. This z. B. second and third date a version number, a creation date, a modification date, a reference number, a combination of these and / or the like. This ensures that the selected program code object ensures an update, enhancement, extension, change, or other desired modification of the program. Thus, it can be ensured that a program component, in particular a firmware component, as which the program code object is integrated into the program, is more current than a corresponding program component already present in the automation system, that is, e.g. an update / upgrade or downgrade is performed.

Besonders bevorzugt ist das zweite Datum aus dem Programm entnehmbar oder ermittelbar. Zudem kann das dritte Datum aus dem Programmcodeobjekt entnehmbar oder ermittelbar sein. Bei dem zweiten, dem dritten, oder beiden Daten kann es sich dabei um eine Versionsnummer, ein Erstellungsdatum, ein Änderungsdatum, eine Referenznummer, einen Programmnamen, eine Losgröße, eine Losidentifikation oder dergleichen oder eine Kombination daraus handeln. Entnehmbar meint hier und im Folgenden, dass beispielsweise zumindest ein Datum aus dem Programm (zweites Datum) oder dem Programmcodeobjekt (drittes Datum) direkt verwendbar ist oder z. B. auf Basis eines Algorithmus oder dergleichen aus dem Programm oder aus zumindest einem Teil des Programms ermittelbar ist. Zudem oder alternativ kann zumindest ein Datum extern, also nicht im Programm, hinterlegt oder hinterlegbar sein, und direkt als zweites oder drittes Datum oder indirekt als Eingangswert für den Algorithmus Verwendung finden. Hierdurch wird eine gute Änderbarkeit von zweitem und/oder drittem Datum gewährleistet, woraus sich eine verbesserte Adaptierbarkeit des Verfahrens an eine Weiterentwicklung des Automatisierungssystems oder der Automatisierungstechnologie ergibt.Particularly preferably, the second date can be removed or determined from the program. In addition, the third date may be off the program code object can be removed or determined. The second, third, or both data may be a version number, a creation date, a modification date, a reference number, a program name, a lot size, a lot identification, or the like, or a combination thereof. Removable means here and below that, for example, at least one date from the program (second date) or the program code object (third date) is directly usable or z. B. based on an algorithm or the like from the program or from at least part of the program can be determined. In addition or alternatively, at least one date can be stored externally, ie not in the program, or can be stored, and used directly as the second or third date or indirectly as the input value for the algorithm. This ensures a good changeability of the second and / or third date, which results in an improved adaptability of the method to a further development of the automation system or the automation technology.

Zudem oder alternativ kann das erste Datum eine Versionsnummer, ein Erstellungsdatum, ein Änderungsdatum, eine Referenznummer, ein Programmname, eine Losidentifikation (z. B. ein Losname oder dergleichen), eine Losgröße, eine Hardwareidentifikation, wie beispielsweise eine Board Id (Identification), eine Prozessor Id und/oder eine MAC Adresse (Media Access Control), und/oder dergleichen sein, und weiterhin kann das erste Datum mit dem zweiten Datum korrespondieren, also das zweite Datum beispielsweise aus dem ersten Datum ermittelbar oder mit diesem identisch sein.Additionally or alternatively, the first date may include a version number, a creation date, a modification date, a reference number, a program name, a lot identification (eg, a lot name or the like), a lot size, a hardware identification such as a board id (identification), a processor Id and / or a MAC address (Media Access Control), and / or the like, and further, the first date corresponding to the second date, so the second date, for example, from the first date can be determined or identical with this.

Bevorzugt wird das Verfahren mittels eines Initialisierungsmittels, welches z. B. als eine Software- und/oder Hardwarekomponente ausgeführt sein kann, im Zusammenhang mit einer Initialisierung des Programms, einem Programmabschluss, einer Programmunterbrechung, einer Programmpause oder dergleichen aufgerufen und/oder ausgeführt. Als Initialisierung des Programms wird hier beispielsweise eine Aktivierung des Programms, z. B. während eines "Hochfahrens" des Automatisierungssystems oder dergleichen, bezeichnet. Zudem kann das Initialisierungsmittel dabei prüfen, ob das Verfahren zur automatischen Änderung durchgeführt werden kann, also ob das Programmcodeobjekt in das Programm integriert werden kann. Alternativ kann eine solche Prüfung durch das Initialisierungsmittel initiierbar und/oder steuerbar sein. Somit wird sichergestellt, dass beispielsweise während einer Laufzeit des Programms nur solche Programmkomponenten, insbesondere Firmwarekomponenten, geändert werden, durch deren Austausch ein durch das Programm gesteuerter Automatisierungsprozess nicht gestört, gehindert, unterbrochen oder sonst wie beeinträchtigt wird. Eine Wirksamschaltung aktualisierter Programmkomponenten, insbesondere Firmwarekomponenten, durch deren Integration in das Programm kann zeitlich von der Einspielung, also der Übertragung, entkoppelt sein. Dabei kann das Programmcodeobjekt in einer Datenbasis vorgehalten werden, bis die Prüfung mittels des Initialisierungsmittels ergeben hat, dass die Wirksamschaltung durchgeführt werden kann, ohne den Betrieb des Automatisierungssystems zu beeinträchtigen.Preferably, the method by means of an initialization agent, which z. B. may be executed as a software and / or hardware component, in connection with an initialization of the program, a program completion, a program interruption, a program break or the like called and / or executed. As an initialization of the program is here, for example, an activation of the Program, z. During a "boot up" of the automation system or the like. In addition, the initialization means can check whether the method for automatic change can be carried out, that is, whether the program code object can be integrated into the program. Alternatively, such a check can be initiated and / or controlled by the initialization means. This ensures that, for example, during a runtime of the program, only those program components, in particular firmware components, are changed, by the exchange of which an automation process controlled by the program is not disturbed, hindered, interrupted or otherwise impaired. An effective circuit of updated program components, in particular firmware components, by their integration into the program can be temporally decoupled from the recording, so the transmission. In this case, the program code object can be kept in a database until the check by means of the initialization means has shown that the activation circuit can be carried out without impairing the operation of the automation system.

Das Programm kann ausschließlich in einem nicht flüchtigen Speicher, also z. B. einem EPROM, EEPROM, gepufferten RAM, einer Speicherkarte, Festplatte oder dergleichen hinterlegte oder hinterlegbare Firmwarekomponenten umfassen. Hierdurch wird eine einfache, komfortable und kostengünstige Änderbarkeit, z. B. ein Update oder Upgrade, des Programms, insbesondere der Firmware und/oder der Firmwarekomponenten, gewährleistet.The program can only in a non-volatile memory, so z. As an EPROM, EEPROM, buffered RAM, a memory card, hard disk or the like deposited or stored firmware components include. As a result, a simple, comfortable and cost changeability, z. As an update or upgrade, the program, in particular the firmware and / or the firmware components guaranteed.

Bezüglich des Automatisierungssystems ist bevorzugt vorgesehen, dass das Automatisierungssystem und der Server zumindest eine allgemein bekannte Schnittstelle zur kommunikativen Verbindung des Automatisierungssystems mit dem Server umfassen.With regard to the automation system, it is preferably provided that the automation system and the server comprise at least one well-known interface for the communicative connection of the automation system to the server.

Für das oder jedes erste Datum kann in der Datenbasis zumindest ein Programmcodeobjekt hinterlegt oder hinterlegbar sein, so dass auf Basis des ersten Datums ein oder mehr als ein hinterlegtes Programmcodeobjekt ausgewählt und in das Automatisierungssystem übertragen werden, wo sie dann zeitnah oder von der Übertragung entkoppelt wirksamgeschaltet (aktivgeschaltet) werden.For the or each first date, at least one program code object can be stored or stored in the database so that one or more than one stored program code object is selected on the basis of the first date and transmitted to the automation system, where it is then activated in a timely or decoupled manner from the transmission (be activated).

Dem oder jedem Programmcodeobjekt in der ersten Datenbasis können dabei, z. B. in einer Referenztabelle, ein oder mehrere zusätzliche(s) Programmcodeobjekt(e) zugeordnet sein, welche beispielsweise für eine korrekte Ausführbarkeit des Programmcodeobjekts nach dessen Integration in das Programm oder für eine Ausführbarkeit des Programms insgesamt notwendig oder gewünscht sind, oder welche zusätzliche Funktionen für das zu integrierende Programmcodeobjekt umfassen. Hierdurch wird beispielsweise erreicht, dass bei einer Integration von Programmcodeobjekten, die zusätzliche Funktionalität erfordern, diese von dem Integrationsvorgang gleich mit erfasst werden.The or each program code object in the first database can, for. For example, in a reference table, one or more additional (s) program code object (s) be assigned, which, for example, for a correct executability of the program code object after its integration into the program or for executability of the program altogether necessary or desired, or which additional functions for the program code object to be integrated. As a result, it is achieved, for example, that with the integration of program code objects which require additional functionality, they are also included in the integration process.

Das Auswahlmittel und/oder Identifikationsmittel kann z. B. in einer zweiten Datenbasis, welche dem Automatisierungssystem zugeordnet oder ein integraler Bestandteil des Automatisierungssystems ist, hinterlegt oder hinterlegbar sein. Hierdurch wird eine einfache Änderbarkeit oder Austauschbarkeit von Auswahlmittel und/oder Identifikationsmittel durch ein Ersetzen der zweiten Datenbasis durch eine andere zweite Datenbasis gewährleistet.The selection means and / or identification means may, for. B. in a second database, which is assigned to the automation system or an integral part of the automation system, be deposited or stored. This ensures easy changeability or exchangeability of selection means and / or identification means by replacing the second database with another second database.

Das zweite Datum und das dritte Datum können beispielsweise von einem in Hard- oder Software ausgeführten Vergleichsmittel verglichen werden. Dieses kann in Abhängigkeit vom Ergebnis des Vergleichs ein Signal erzeugen, welches die Modifikation des Programms freischaltet. Dabei kann die Modifikation auch zeitlich von der Freischaltung entkoppelt sein. Beispielsweise kann das erste Datum und/oder das zweite Datum aus dem Programm und/oder das dritte Datum aus dem Programmcodeobjekt mittels zumindest einer ersten Bestimmungskomponente des Programms, also z. B. einem Unterprogramm des Programms, aus dem Programm selber oder aus für das Programm hinterlegten Daten, entnommen und/oder ermittelt werden.The second date and the third date may for example be compared by a hardware or software comparison means. This can generate a signal depending on the result of the comparison, which enables the modification of the program. The modification can also be decoupled in time from the activation. For example, the first date and / or the second date from the program and / or the third date from the program code object by means of at least one first determination component of the program, ie z. B. a subroutine of the program, from the program itself or from data stored for the program, and / or determined.

Der Vorteil der Erfindung und ihrer Ausgestaltungen besteht somit insbesondere darin, dass eine Aktivität bezüglich der automatischen Modifikation, z. B. eine Initiation und/oder Ausführung der automatischen Modifikation, eines in einem Automatisierungssystem zu aktualisierenden Programms (insbesondere des zumindest eine Firmwarekomponente umfassenden Programms) von dem Automatisierungssystem oder dem Programm selbst ausgeht. Es ist somit insbesondere keine Aktivität "von außen", also z. B. von einem Benutzer und/oder einem externen Server mit einer Anwendungssoftware, nötig. Die Anwendungssoftware des Servers wäre hier für einen Aufbau einer Verbindung zum Automatisierungssystem, ausgehend vom Server, nötig. Sie würde eine Prüfung einer Aktualität der Firmwarekomponente, des Programms und dergleichen bewerkstelligen und beispielsweise eine aktuellere Firmwarekomponente oder ein aktuelleres Programm in das Automatisierungsgerät übertragen. Zudem würde die Anwendungssoftware des Servers die übertragene Firmware oder das übertragene Programm im Automatisierungssystem wirksam schalten.The advantage of the invention and its embodiments is thus in particular that an activity with respect to the automatic modification, z. B. an initiation and / or execution of the automatic modification of a program to be updated in an automation system (in particular of the at least one firmware component comprising program) from the automation system or the program itself. It is therefore in particular no activity "from the outside", ie z. B. from a user and / or an external server with an application software needed. The application software of the server would be necessary here for establishing a connection to the automation system, starting from the server. It would accomplish a check of the timeliness of the firmware component, the program and the like and, for example, transmit a more up-to-date firmware component or a more up-to-date program to the programmable controller. In addition, the application software of the server would activate the transmitted firmware or the transmitted program in the automation system.

Ein weiterer Vorteil der Erfindung und ihrer Ausgestaltungen ist zudem, dass beispielsweise verschiedenartige Produktionen durch eine Maschine mit einem oder mehreren Automatisierungssystemen möglich sind. Programmcodeobjekte, welche z. B. zur Produktion erforderliche Daten umfassen, werden dabei beispielsweise automatisch oder durch den Anwender im Zusammenhang mit einem Zeitpunkt, zu dem diese Produktion stattfinden soll, auf dem Server (und/oder in der dem Server zugeordneten Datenbasis) hinterlegt. Das Automatisierungssystem "sucht" permanent oder in zeitlichen Abständen nach "passenden" Programmcodeobjekten und lädt diese automatisch von dem Server oder aus der Datenbasis. Diese Programmcodeobjekte können dann zudem automatisch aktiviert werden.Another advantage of the invention and its embodiments is also that, for example, different types of productions are possible by a machine with one or more automation systems. Program code objects, which z. As required for production data include, for example, automatically or by the user in connection with a time at which this production is to take place on the server (and / or in the server associated database) deposited. The automation system "searches" permanently or at intervals for "suitable" program code objects and automatically loads them from the server or from the database. These program code objects can then be activated automatically.

Dabei kann zumindest ein in der Datenbasis hinterlegtes Datenobjekt ein auf einen Produktionsvorgang bezogenes Datum oder bezogenen Datensatz darstellen oder in seiner Ausprägung als Programmcodeobjekt solche Daten umfassen. Das Datum oder der Datensatz beschreibt dabei beispielsweise eine Losgröße, Losidentifikation, eine Identifikation eines abzuarbeitenden Programms, eine Werkzeugidentifikation, Temperatur, Geschwindigkeit und dergleichen. Somit können an einer "zentralen Stelle" für ein Automatisierungssystem oder eine Gruppe von Automatisierungssystemen produktionsprozess-relevante Daten auf einfache und kostengünstige Art und Weise hinterlegt werden, wo sie dem oder den Automatisierungssystem(en) zum "Abruf" bereitstehen. Da das Automatisierungssystem permanent oder in zeitlichen Abständen überprüft, ob Daten oder Datensätze für es hinterlegt sind, stehen dem Automatisierungssystem schnell die jeweils zu verwendenden Daten zur Verfügung, was eine hohe Flexibilität bei einer Produktionssteuerung und eine schnelle Anpassbarkeit an veränderte Produktionsbedingungen, Edukte, Produkte, zu produzierende Mengen, Werkzeuge, Produktionsabläufe und dergleichen bedingt. So kann es beispielsweise sein, dass ein Produktionsschritt bei einer Temperatur T1 mittels des Automatisierungssystems durchgeführt wird. Wenn sich jedoch herausstellt, dass dessen Effizienz dadurch steigerbar ist, dass dieser bei einer geänderten Temperatur T2 durchgeführt wird, so kann einfach und schnell ein diese Temperatur (T2) umfassendes Daten- oder Programmcodeobjekt in der dem Server zugeordneten Datenbank hinterlegt werden. Dieses wird dort vom Automatisierungssystem aufgrund einer vom Automatisierungssystem durchgeführten Überprüfung der in der Datenbasis hinterlegten Daten/Datensätze "gefunden", heruntergeladen und in das Programm integriert, so dass der Produktionsschritt nun bei der veränderten Temperatur T2 durchgeführt wird.In this case, at least one data object stored in the database can represent a datum or related dataset related to a production process or, in its embodiment, can comprise such data as a program code object. The date or the record describes, for example, a lot size, lot identification, an identification of a program to be processed, a tool identification, temperature, speed and the like. Thus, production-process-relevant data can be stored in a "central location" for an automation system or a group of automation systems in a simple and cost-effective manner, where they are available to the automation system (s) for "retrieval". Since the automation system checks permanently or at intervals as to whether data or data records are stored for it, the automation system quickly has the data to be used in each case, which provides high flexibility in production control and rapid adaptability to changed production conditions, educts, products, to be produced quantities, tools, production processes and the like. For example, it may be that a production step is carried out at a temperature T1 by means of the automation system. However, if it turns out that its efficiency can be increased by performing it at a changed temperature T2, then a data or program code object comprising this temperature (T2) can easily and quickly be stored in the database associated with the server. This is "found" by the automation system there on the basis of a check carried out by the automation system to check the data / data records stored in the database, and integrated into the program so that the production step is now carried out at the changed temperature T2.

Des Weiteren wird durch die Erfindung und ihre Ausgestaltungen zudem ein einfaches Einspielen einer anderen Version, z. B. einer Firmware/von Firmwarekomponenten, Projekt(en), Programm(en) und dergleichen ermöglicht. Zudem kann beispielsweise zwischen zwei Produktionskonfigurationen zumindest eine Wartungskonfiguration einspielbar und aktivierbar sein.Furthermore, by the invention and its embodiments also a simple importing another version, for. Firmware / firmware components, project (s), Program (s) and the like allows. In addition, for example, at least one maintenance configuration can be insertable and activatable between two production configurations.

Da in der vorliegenden Erfindung das Automatisierungsgerät das Programm umfasst, welches eine Kommunikationsverbindung zu dem mit der ersten Datenbasis assoziierten Server aufbaut oder den Aufbau initiiert oder steuert, ist es nicht nötig z. B. eine elektronische Schutzmaßnahme freizuschalten, wie z. B. eine Firewall, welche das Automatisierungsgerät vor unbefugtem Zugriff schützt. Zudem ist z. B. eine Authentifizierung und/oder Autorisierung "von außen" zugreifender Anwender, Anwendungssoftware im Server, eines Software- oder Hardware-"Werkzeugs" nicht notwendig, wodurch sich u, a. ein Bedienkomfort des Automatisierungssystems erhöht.In the present invention, since the automation device comprises the program which sets up a communication connection to the server associated with the first database or initiates or controls the setup, it is not necessary, for example B. unlock an electronic protective measure, such. B. a firewall, which protects the automation device against unauthorized access. In addition, z. As an authentication and / or authorization "outside" accessing users, application software in the server, a software or hardware "tool" not necessary, which u, a. increased ease of use of the automation system.

Da zudem eine einfache Erweiterung der ersten Datenbasis, z. B. um weitere Speicherkomponenten, einfach und preiswert möglich ist, kann eine große Zahl von Programmcodeobjekten an einer zentralen Stelle vorgehalten werden, was eine weitere Vereinfachung und eine Kostenreduzierung mit sich bringt.In addition, since a simple extension of the first database, z. B. to further memory components, simple and inexpensive, a large number of program code objects can be kept in a central location, which brings a further simplification and cost reduction.

Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnung näher erläutert. Einander entsprechende Gegenstände oder Elemente sind in allen Figuren mit den gleichen Bezugszeichen versehen.An embodiment of the invention will be explained in more detail with reference to the drawing. Corresponding objects or elements are provided in all figures with the same reference numerals.

Das oder jedes Ausführungsbeispiel ist nicht als Einschränkung der Erfindung zu verstehen. Vielmehr sind im Rahmen der vorliegenden Offenbarung zahlreiche Abänderungen und Modifikationen möglich, insbesondere solche Varianten und Kombinationen, die zum Beispiel durch Kombination oder Abwandlung von einzelnen in Verbindung mit den im allgemeinen oder speziellen Beschreibungsteil beschriebenen sowie in den Ansprüchen und/oder der Zeichnung enthaltenen Merkmalen bzw. Elementen oder Verfahrensschritten für den Fachmann im Hinblick auf die Lösung der Aufgabe entnehmbar sind und durch kombinierbare Merkmale zu einem neuen Gegenstand oder zu neuen Verfahrensschritten bzw. Verfahrensschrittfolgen führen.The or each embodiment is not to be understood as limiting the invention. Rather, numerous modifications and variations are possible within the scope of the present disclosure, in particular those variants and combinations, for example, by combination or modification of individual features described in the general or specific description part as well as in the claims and / or the drawing Elements or method steps for the expert with regard to the solution of the problem can be removed and by combinable features lead to a new object or to new process steps or process steps.

Darin zeigen

FIG 1
eine schematische Darstellung eines erfindungsgemäßen Automatisierungssystems mit einem automatisch modifizierbaren Programm,
FIG 2
eine schematische Darstellung eines erfindungsgemäßen Verfahrens zur automatischen Modifikation eines Programms eines Automatisierungssystems und
FIG 3
eine schematische Darstellung eines Kommunikationsnetzes zusammen mit dem Verfahren wie in FIG 2 dargestellt, mit Auswahl, Übertragung und Wirksamschaltung eines Programmcodeobjekts.
Show in it
FIG. 1
a schematic representation of an automation system according to the invention with an automatically modifiable program,
FIG. 2
a schematic representation of a method according to the invention for the automatic modification of a program of an automation system and
FIG. 3
a schematic representation of a communication network together with the method as in FIG. 2 represented with selection, transmission and activation of a program code object.

FIG 1 zeigt schematisch ein Automatisierungssystem 10 mit einem automatisch modifizierbaren Programm 12. Dabei umfasst das Programm 12 zumindest eine Firmwarekomponente 14a. Gegebenenfalls können jedoch weitere Firmwarekomponenten 14b und/oder zumindest eine Programmkomponente 16a umfasst sein. Ein erstes Datum 18a, 18b ist dabei auf die Firmwarekomponente 14a, 14b bezogen und/oder kann z. B. für die Firmwarekomponente 14a, 14b in einer nicht dargestellten Datenbank hinterlegt sein. Ein dem Automatisierungssystem 10 zugeordnetes Identifikationsmittel 20 ermittelt ein der Firmwarekomponente 14a, 14b zugehöriges erstes Datum 18a, 18b. Das Automatisierungssystem 10 und ein entfernt von diesem angeordneter Server 22 kommunizieren dabei leitungsgebunden oder leitungslos über eine Kommunikationsverbindung 23, z. B. unter Verwendung an sich bekannter Schnittstellen 24a, 24b. Über den Server 22 wird dabei auf eine Datenbasis 26 zugegriffen, in welcher Programmcodeobjekte 28a, 28b, hinterlegt sind. Dieser Zugriff erfolgt von einem, dem Automatisierungssystem 10 zugeordneten Auswahlmittel 30, welches als Hard- oder Software oder eine Kombination daraus ausgeführt sein kann. Auf Basis des mittels des Identifikationsmittels 20 ermittelten ersten Datums 18a, 18b wird von dem Auswahlmittel 30 ein Programmcodeobjekt 28a, 28b, 28c ausgewählt. Für jedes Programmcodeobjekt 28a, 28b, 28c ist ein dem ersten Datum 18a, 18b entsprechendes oder ein mit diesem ersten Datum 18a, 18b korrespondierendes Datum - viertes Datum 32a, 32b - ermittelbar oder hinterlegt. Das mittels des Auswahlmittels 30 ausgewählte Programmcodeobjekt 28a, 28b, 28c wird in das Automatisierungssystem 10 übertragen. Ein Integrationsmittel 34 des Automatisierungssystems 10 integriert das ausgewählte Programmcodeobjekt 28a, 28b, 28c in das Programm 12. Dabei wird das ausgewählte Programmcodeobjekt 28a, 28b, 28c insbesondere als Firmwarekomponente 14a, 14b in das Programm 12 integriert. Andere Programmcodeobjekte 28a, 28b, 28c können auch als eine Programmkomponente 16a, 16b in das Programm 12 integriert werden. Die Integration des Programmcodeobjekts 28a, 28b, 28c in das Programm 12 dient dabei der Modifikation des Programms 12 und kann beispielsweise während der Übertragung des Programmcodeobjekts 28a, 28b, 28c in das Automatisierungssystem 10 oder im Anschluss an das Übertragen erfolgen. Dabei kann, wenn die Integration im Anschluss an das Übertragen in das Automatisierungssystem 10 erfolgt, das Integrieren beispielsweise im Zusammenhang mit einer Initialisierung, einem Abschluss, einer Unterbrechung, einer Pause, einem Ablauf des Programms 12 oder dergleichen erfolgen. Dabei überprüft das Integrationsmittel 34, ob die automatische Modifikation ohne eine Beeinträchtigung eines Programmablaufs durchgeführt werden kann. Alternativ kann das Integrationsmittel 34 z. B. mittels des Programms 12, des Automatisierungssystems 10 oder mittels eines Signals (nicht dargestellt), welches von einem mit dem Programm 12 oder dem Automatisierungssystem assoziierten Initialisierungsmittel 34a erzeugt wird, gesteuert werden, also z. B. getriggert, unterbrochen, beendet und dergleichen. FIG. 1 schematically shows an automation system 10 with an automatically modifiable program 12. In this case, the program 12 includes at least one firmware component 14a. Optionally, however, further firmware components 14b and / or at least one program component 16a may be included. A first date 18a, 18b is related to the firmware component 14a, 14b and / or may, for. B. for the firmware component 14a, 14b stored in a database, not shown. An identification means 20 assigned to the automation system 10 determines a first date 18a, 18b associated with the firmware component 14a, 14b. The automation system 10 and a remotely located from this server 22 communicate while wired or wirelessly via a communication link 23, z. B. using known per se interfaces 24a, 24b. Via the server 22, a database 26 is accessed, in which program code objects 28a, 28b are stored. This access is provided by a, the automation system 10 associated selection means 30, which as hardware or software or a combination thereof. On the basis of the first date 18a, 18b determined by means of the identification means 20, a program code object 28a, 28b, 28c is selected by the selection means 30. For each program code object 28a, 28b, 28c, a date corresponding to the first date 18a, 18b or a date corresponding to this first date 18a, 18b-fourth date 32a, 32b-can be determined or stored. The program code object 28a, 28b, 28c selected by the selection means 30 is transmitted to the automation system 10. An integration means 34 of the automation system 10 integrates the selected program code object 28a, 28b, 28c into the program 12. In this case, the selected program code object 28a, 28b, 28c is integrated in the program 12, in particular as a firmware component 14a, 14b. Other program code objects 28a, 28b, 28c may also be integrated into the program 12 as a program component 16a, 16b. The integration of the program code object 28a, 28b, 28c into the program 12 serves to modify the program 12 and can take place, for example, during the transmission of the program code object 28a, 28b, 28c into the automation system 10 or following the transfer. In this case, if the integration takes place following the transfer to the automation system 10, the integration can be carried out, for example, in connection with an initialization, a termination, an interruption, a pause, a sequence of the program 12 or the like. In this case, the integration means 34 checks whether the automatic modification can be carried out without affecting a program sequence. Alternatively, the integration means 34 z. Example by means of the program 12, the automation system 10 or by means of a signal (not shown) which is generated by an associated with the program 12 or the automation system initialization means 34 a, are controlled, ie z. B. triggered, interrupted, stopped and the like.

Identifikationsmittel 20, Auswahlmittel 30 und/oder Integrationsmittel 34 können als Software und/oder als Hardware ausgeführt sein und z. B. ein integraler Bestandteil des Automatisierungssystems 10 sein, hier beispielsweise insbesondere dem Programm 12 zugeordnete Bestandteile, wie z. B. Unterprogramme, Programmkomponenten und dergleichen.Identification means 20, selection means 30 and / or integration means 34 may be software and / or hardware be executed and z. B. be an integral part of the automation system 10, here, for example, in particular the program 12 associated components such. B. subroutines, program components and the like.

FIG 2 zeigt eine schematische Darstellung des erfindungsgemäßen Verfahrens zur automatischen Modifikation des Programms 12. Dabei wird zunächst das auf die Firmwarekomponente 14a, 14b bezogene und/oder für diese hinterlegte erste Datum 18a vom Identifikationsmittel 20 ermittelt. Auf Basis diesen ersten Datums 18a wird ein in der Datenbasis 26 (siehe FIG 1) hinterlegtes Programmcodeobjekt 28a mittels des Auswahlmittels 30 ausgewählt. Ein aus dem Programm 12 ermitteltes und/oder für dieses Programm 12 hinterlegtes zweites Datum 36 wird mit einem aus dem Programmcodeobjekt 28a ermittelten und/oder für dieses hinterlegten dritten Datum 38 verglichen, z. B. mittels eines Vergleichers 40, welcher als Soft-und/oder Hardware ausgeführt sein kann. Dabei kann das zweite Datum 36 beispielsweise identisch mit dem ersten Datum 18a sein oder aus diesem ermittelbar sein, z. B. mittels eines Algorithmus. Wenn der Vergleich ergibt, dass ein Auswahlkriterium 42 für das Programmcodeobjekt 28a erfüllt ist, also z. B. das Programmcodeobjekt 28a aktueller ist als die Firmwarekomponente 14a, 14b (in FIG 1 dargestellt), so erfolgt die Integration des Programmcodeobjekts 28a in das Programm 12. Hierzu wird zunächst das Programmcodeobjekt 28a in das Automatisierungssystem 10 übertragen. Zusammen mit der Übertragung zum Automatisierungssystem 10 erfolgt die Modifikation des Programms 12, welche beispielsweise mittels des Integrationsmittels 34 (wie in FIG 1 dargestellt) bewerkstelligt wird. FIG. 2 1 shows a schematic representation of the method according to the invention for the automatic modification of the program 12. In this case, the first date 18a, which is related to the firmware component 14a, 14b and / or stored for it, is first determined by the identification means 20. Based on this first date 18a, a data base 26 (see FIG FIG. 1 ) stored program code object 28a by means of the selection means 30. A determined from the program 12 and / or deposited for this program 12 second date 36 is compared with a determined from the program code object 28a and / or stored for this third date 38, z. Example by means of a comparator 40, which may be designed as soft and / or hardware. In this case, the second date 36, for example, be identical to the first date 18a or be determinable from this, z. B. by means of an algorithm. If the comparison shows that a selection criterion 42 for the program code object 28a is satisfied, ie z. For example, the program code object 28a is more current than the firmware component 14a, 14b (in FIG FIG. 1 shown), the integration of the program code object 28a takes place in the program 12. For this purpose, the program code object 28a is first transferred to the automation system 10. Together with the transmission to the automation system 10, the modification of the program 12, which is carried out, for example, by means of the integration means 34 (as in FIG FIG. 1 shown) accomplished.

FIG 3 zeigt eine schematische Darstellung eines Kommunikationsnetzes 44 zusammen mit dem Verfahren wie in FIG 2 dargestellt. Im Automatisierungssystem 10 wird das erste Datum 18a ermittelt. Das Automatisierungssystem 10 stellt eine kommunikative Verbindung 23 mit dem Server 22 her. Mittels des Auswahlmittels 30 (in FIG 1 dargestellt) wird sodann ein Programmcodeobjekt 28b aus einer Anzahl von Programmcodeobjekten 28a, 28b, 28c ausgewählt und über den Server 22 und die kommunikative Verbindung 23, hier Kommunikationsnetz 44, in das Automatisierungssystem 10 übertragen. Bei der Auswahl oder im Zusammenhang mit der Übertragung des Programmcodeobjekts 28b wird überprüft, ob das Programmcodeobjekt 28b aktueller als die Programmkomponente 16a, 16b ist. Im Anschluss an die Überprüfung wird, wenn die Überprüfung ergeben hat, dass das Programmcodeobjekt 28b aktueller ist, dieses in das Programm 12 integriert und somit das Programm 12 modifiziert. Hierbei wird das Programmcodeobjekt 28b insbesondere als Firmwarekomponente 14a, 14b (in FIG 1 dargestellt) integriert. Dabei kann das Programm 12 während, vor oder nach einer Laufzeit modifiziert werden. Dabei kann mittels des Initialisierungsmittels 34a sichergestellt sein, dass das Programm 12, Teile des Programms 12 oder ein Ablauf davon zu einem Integrationszeitpunkt des Programmcodeobjekts 28a, 28b, 28c in das Programm 12 nicht beeinträchtigt wird, so dass beispielsweise ein vom Automatisierungssystem 10 oder von Bestandteilen des Automatisierungssystems 10 ausgeführter Automatisierungsvorgang nicht gestört und/oder abgebrochen wird. FIG. 3 shows a schematic representation of a communication network 44 together with the method as in FIG. 2 shown. In the automation system 10, the first date 18a is determined. The automation system 10 establishes a communicative connection 23 with the server 22. By means of selection means 30 (in FIG. 1 is shown) then Program code object 28b selected from a number of program code objects 28a, 28b, 28c and transmitted to the automation system 10 via the server 22 and the communicative connection 23, here communication network 44. Upon selection or in connection with the transmission of the program code object 28b, it is checked whether the program code object 28b is more current than the program component 16a, 16b. Following the check, if the check has revealed that the program code object 28b is more up-to-date, it is integrated into the program 12, thus modifying the program 12. In this case, the program code object 28b is used, in particular, as a firmware component 14a, 14b (in FIG FIG. 1 shown) integrated. In this case, the program 12 can be modified during, before or after a runtime. In this case, it can be ensured by means of the initialization means 34a that the program 12, parts of the program 12 or a sequence thereof at an integration time of the program code object 28a, 28b, 28c into the program 12 is not impaired, so that for example one from the automation system 10 or components the automation system 10 executed automation process is not disturbed and / or canceled.

Damit lässt sich die Erfindung kurz wie folgt darstellen: Angegeben wird ein Verfahren zur automatischen Modifikation eines Programms 12 eines Automatisierungssystems 10, wobei mittels eines dem Automatisierungssystem 10 zugeordneten Identifikationsmittels 20 ein auf eine Programmkomponente 16a, 16b des Programms 12 bezogenes erstes Datum 18ä, 18b ermittelt wird, wobei mittels eines Auswahlmittels 30 auf Basis des ersten Datums 18a, 18b ein in zumindest einer Datenbasis 26 hinterlegtes oder hinterlegbares Programmcodeobjekt 28a, 28b, 28c ausgewählt wird und wobei das Programm 12 mittels des Programmcodeobjekts 28a, 28b, 28c zumindest teilweise modifiziert wird, indem das Programmcodeobjekt 28a, 28b, 28c in das Programm 12 integriert wird, sowie ein Automatisierungssystem 10 mit einem insbesondere zumindest Firmwarekomponenten 14a, 14b umfassenden, automatisch nach dem Verfahren modifizierbaren Programm 12, mit einem zugeordneten Identifikationsmittel 20 zur Ermittlung eines auf eine Programmkomponente 16a, 16b, insbesondere eine Firmwarekomponente 14a, 14b, bezogenen ersten Datums 18a, 18b, mit einem Auswahlmittel 30 zur Auswahl eines in zumindest einer Datenbasis 26 hinterlegten oder hinterlegbaren Programmcodeobjekts 28a, 28b, 28c auf Basis des ersten Datums 18a, 18b und einem Integrationsmittel 34 zur Integration des Programmcodeobjekts 28a, 28b, 28c, insbesondere als Firmwarekomponente 14a, 14b, in das Programm 12 und schließlich ein Computerprogramm mit durch einen Computer ausführbaren Programmcodeanweisungen zur Implementierung eines solchen Verfahrens und ein Computerprogrammprodukt, insbesondere Speichermedium, mit einem solchen Computerprogramm.The invention is described briefly as follows: A method for automatic modification of a program 12 of an automation system 10 is specified, wherein a first data item 18a, 18b determined by means of an identification means 20 assigned to the automation system 10 is determined on a program component 16a, 16b of the program 12 in which a program code object 28a, 28b, 28c deposited in at least one database 26 is selected by means of a selection means 30 on the basis of the first date 18a, 18b, and wherein the program 12 is at least partially modified by means of the program code object 28a, 28b, 28c, in that the program code object 28a, 28b, 28c is integrated into the program 12, as well as an automation system 10 comprising in particular at least firmware components 14a, 14b, automatically after the Method modifiable program 12, with an associated identification means 20 for determining a program component 16a, 16b, in particular a firmware component 14a, 14b, related first date 18a, 18b, with a selection means 30 for selecting a stored in at least one database 26 or deposited program code object 28a, 28b, 28c on the basis of the first date 18a, 18b and an integration means 34 for integration of the program code object 28a, 28b, 28c, in particular as a firmware component 14a, 14b, in the program 12 and finally a computer program with computer executable program code instructions for implementation of such a method and a computer program product, in particular storage medium, with such a computer program.

Claims (13)

Verfahren zur automatischen Modifikation eines Programms (12) eines Automatisierungssystems (10),
wobei mittels eines dem Automatisierungssystem (10) zugeordneten Identifikationsmittels (20) ein auf eine Programmkomponente (16a, 16b) des Programms (12) bezogenes erstes Datum (18a, 18b) ermittelt wird,
wobei mittels eines Auswahlmittels (30) auf Basis des ersten Datums (18a, 18b) ein in zumindest einer Datenbasis (26) hinterlegtes oder hinterlegbares Programmcodeobjekt (28a, 28b, 28c) ausgewählt wird und
wobei das Programm (12) mittels des Programmcodeobjekts (28a, 28b, 28c) zumindest teilweise modifiziert wird, indem das Programmcodeobjekt (28a, 28b, 28c) in das Programm (12) integriert wird.
Method for automatically modifying a program (12) of an automation system (10),
wherein a first datum (18a, 18b) related to a program component (16a, 16b) of the program (12) is determined by means of an identification means (20) associated with the automation system (10),
wherein by means of a selection means (30) on the basis of the first date (18a, 18b) a in at least one database (26) deposited or storable program code object (28a, 28b, 28c) is selected, and
wherein the program (12) is at least partially modified by the program code object (28a, 28b, 28c) by integrating the program code object (28a, 28b, 28c) into the program (12).
Verfahren gemäß Anspruch 1 wobei das Programm zumindest Firmwarekomponenten (14a, 14b) umfasst
wobei mittels eines dem Automatisierungssystem (10) zugeordneten Identifikationsmittels (20) ein auf eine Firmwarekomponente (14a, 14b) als Programmkomponente (16a, 16b) bezogenes erstes Datum (18a, 18b) ermittelt wird und
wobei das Programm (12) mittels des Programmcodeobjekts (28a, 28b, 28c) zumindest teilweise modifiziert wird, indem das Programmcodeobjekt (28a, 28b, 28c) als Firmwarekomponente (14a, 14b) in das Programm (12) integriert wird.
Method according to claim 1, wherein the program comprises at least firmware components (14a, 14b)
wherein a first datum (18a, 18b) related to a firmware component (14a, 14b) as program component (16a, 16b) is determined by means of an identification means (20) associated with the automation system (10), and
wherein the program (12) is at least partially modified by the program code object (28a, 28b, 28c) by integrating the program code object (28a, 28b, 28c) as a firmware component (14a, 14b) into the program (12).
Verfahren gemäß Anspruch 1 oder 2,
wobei die Datenbasis (26) einem entfernt vom Automatisierungssystem (10) angeordneten Server (22) zugeordnet ist.
Method according to claim 1 or 2,
wherein the database (26) is associated with a remote from the automation system (10) server (22).
Verfahren gemäß einem der vorangehenden Ansprüche,
wobei das Auswahlmittel (30) und/oder das Identifikationsmittel (20) Programmkomponenten (16a, 16b) des Programms (12) sind bzw. ist.
Method according to one of the preceding claims,
wherein the selection means (30) and / or the identification means (20) are program components (16a, 16b) of the program (12).
Verfahren gemäß einem der vorangehenden Ansprüche,
wobei zumindest ein auf die Programmkomponente (16a, 16b) des Programms (12) bezogenes zweites Datum (36) und zumindest ein auf das ausgewählte Programmcodeobjekt (28a, 28b, 28c) bezogenes drittes Datum (38) verglichen werden und das Programm (12) in Abhängigkeit von einem Ergebnis des Vergleichs zumindest teilweise modifiziert wird.
Method according to one of the preceding claims,
wherein at least one second datum (36) related to the program component (16a, 16b) of the program (12) and at least one third datum (38) related to the selected program code object (28a, 28b, 28c) are compared and the program (12) is at least partially modified depending on a result of the comparison.
Verfahren gemäß Anspruch 5,
wobei das zweite Datum (36) aus dem Programm (12) und/oder das dritte Datum (38) aus dem Programmcodeobjekt (28a, 28b, 28c) entnehmbar oder ermittelbar sind bzw. ist.
Method according to claim 5,
wherein the second date (36) from the program (12) and / or the third date (38) from the program code object (28a, 28b, 28c) is or can be determined.
Verfahren gemäß Anspruch 5 oder 6,
wobei das zweite und/oder das dritte Datum (36, 38) eine Versionsnummer, ein Erstellungsdatum, ein Änderungsdatum und/oder eine Referenznummer sind bzw. ist.
Method according to claim 5 or 6,
wherein the second and / or the third date (36, 38) is a version number, a creation date, a modification date and / or a reference number.
Verfahren gemäß einem der vorangehenden Ansprüche,
wobei das erste Datum (18a, 18b) eine Versionsnummer, ein Erstellungsdatum, ein Änderungsdatum, eine Referenznummer und/oder eine Hardwareidentifikation sind bzw. ist.
Method according to one of the preceding claims,
wherein the first date (18a, 18b) is a version number, a creation date, a modification date, a reference number, and / or a hardware identification.
Verfahren gemäß einem der vorangehenden Ansprüche,
wobei mittels eines Initialisierungsmittels (34a) die automatische Änderung im Zusammenhang mit einer Initialisierung des Programms (12), einem Programmabschluss, einer Programmunterbrechung und/oder einer Programmpause aufgerufen wird und/oder wobei das Initialisierungsmittel (34a) prüft, ob die automatische Modifikation durchgeführt werden kann.
Method according to one of the preceding claims,
wherein by means of an initialization means (34a) the automatic change in connection with an initialization of the program (12), a program termination, a program interruption and / or a program pause is called and / or wherein the initialization means (34a) checks whether the automatic modification is performed can.
Verfahren gemäß einem der vorangehenden Ansprüche,
wobei das Programm (12) ausschließlich in einem nichtflüchtigen Speicher hinterlegte oder hinterlegbare Firmwarekomponenten (14a, 14b) umfasst.
Method according to one of the preceding claims,
wherein the program (12) exclusively comprises firmware components (14a, 14b) stored or storable in a non-volatile memory.
Automatisierungssystem (10) mit einem insbesondere zumindest Firmwarekomponenten (14a, 14b) umfassenden, automatisch gemäß einem der Ansprüche 1 bis 10 modifizierbaren Programm (12),
mit einem dem Automatisierungssystem (10) zugeordneten Identifikationsmittel (20) zur Ermittlung eines auf eine Programmkomponente (12), insbesondere eine Firmwarekomponente (14a, 14b), bezogenen ersten Datums (18a, 18b),
mit einem Auswahlmittel (30) zur Auswahl eines in zumindest einer Datenbasis (26) hinterlegten oder hinterlegbaren Programmcodeobjekts (28a, 28b, 28c) auf Basis des ersten Datums (18a, 18b), und einem Integrationsmittel (34) zur Integration des Programmcodeobjekts (28a, 28b, 28c) in das Programm (12), insbesondere als Firmwarekomponente (14a, 14b), zur Modifikation des Programms.
Automation system (10) comprising in particular a program (12) which can be modified automatically, in particular at least firmware components (14a, 14b), according to one of claims 1 to 10,
with an identification means (20) assigned to the automation system (10) for determining a first date (18a, 18b) relating to a program component (12), in particular a firmware component (14a, 14b),
with selection means (30) for selecting a program code object (28a, 28b, 28c) stored in at least one database (26) on the basis of the first date (18a, 18b), and integration means (34) for integrating the program code object (28a , 28b, 28c) in the program (12), in particular as a firmware component (14a, 14b), for modifying the program.
Computerprogramm mit durch einen Computer ausführbaren Programmcodeanweisungen zur Implementierung des Verfahrens nach einem der Ansprüche 1 bis 10 wenn das Computerprogramm auf einem Computer ausgeführt wird.Computer program with computer executable program code instructions for implementing the method according to one of claims 1 to 10 when the computer program is executed on a computer. Computerprogrammprodukt, insbesondere Speichermedium, mit einem durch einen Computer ausführbaren Computerprogramm gemäß Anspruch 12.Computer program product, in particular storage medium, having a computer-executable computer program according to claim 12.
EP07020255A 2007-10-16 2007-10-16 Method for automatic modification of a program Active EP2051150B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE502007006736T DE502007006736D1 (en) 2007-10-16 2007-10-16 Method for automatically modifying a program
EP07020255A EP2051150B1 (en) 2007-10-16 2007-10-16 Method for automatic modification of a program
US12/287,483 US8245215B2 (en) 2007-10-16 2008-10-09 Method for automatically modifying a program and automation system
JP2008265393A JP2009099150A (en) 2007-10-16 2008-10-14 Automatic system and automatic modification method for program
CNA2008101679279A CN101414160A (en) 2007-10-16 2008-10-16 Method for automatic modification of a program and automation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP07020255A EP2051150B1 (en) 2007-10-16 2007-10-16 Method for automatic modification of a program

Publications (2)

Publication Number Publication Date
EP2051150A1 true EP2051150A1 (en) 2009-04-22
EP2051150B1 EP2051150B1 (en) 2011-03-16

Family

ID=40334221

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07020255A Active EP2051150B1 (en) 2007-10-16 2007-10-16 Method for automatic modification of a program

Country Status (5)

Country Link
US (1) US8245215B2 (en)
EP (1) EP2051150B1 (en)
JP (1) JP2009099150A (en)
CN (1) CN101414160A (en)
DE (1) DE502007006736D1 (en)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129231B2 (en) 2009-04-24 2015-09-08 Rockwell Automation Technologies, Inc. Real time energy consumption analysis and reporting
US10013666B2 (en) 2009-04-24 2018-07-03 Rockwell Automation Technologies, Inc. Product lifecycle sustainability score tracking and indicia
US9406036B2 (en) 2009-04-24 2016-08-02 Rockwell Automation Technologies, Inc. Discrete energy assignments for manufacturing specifications
US8892540B2 (en) 2009-04-24 2014-11-18 Rockwell Automation Technologies, Inc. Dynamic sustainability search engine
US8321187B2 (en) 2009-04-24 2012-11-27 Rockwell Automation Technologies, Inc. Process simulation utilizing component-specific consumption data
US10223167B2 (en) * 2009-04-24 2019-03-05 Rockwell Automation Technologies, Inc. Discrete resource management
US20100312922A1 (en) * 2009-06-09 2010-12-09 Quantum Corporation System and method for identifying physical location of ethernet-connected media drives in a media library assembly
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9274518B2 (en) 2010-01-08 2016-03-01 Rockwell Automation Technologies, Inc. Industrial control energy object
US8738190B2 (en) * 2010-01-08 2014-05-27 Rockwell Automation Technologies, Inc. Industrial control energy object
US10733540B2 (en) 2010-05-26 2020-08-04 Automation Anywhere, Inc. Artificial intelligence and knowledge based automation enhancement
US10129213B2 (en) * 2010-05-26 2018-11-13 Automation Anywhere, Inc. System and method for compliance based automation
US10430180B2 (en) 2010-05-26 2019-10-01 Automation Anywhere, Inc. System and method for resilient automation upgrade
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
US20130116804A1 (en) * 2011-11-09 2013-05-09 Johannes Extra Method for automatically transferring a configuration of an automation device during replacement of an automation device
US8767348B1 (en) * 2013-03-07 2014-07-01 Tdk Corporation Thermally-assisted magnetic recording head including first and second cladding sections having different characteristics
US9842372B2 (en) 2013-03-15 2017-12-12 Rockwell Automation Technologies, Inc. Systems and methods for controlling assets using energy information determined with an organizational model of an industrial automation system
US9501804B2 (en) 2013-03-15 2016-11-22 Rockwell Automation Technologies, Inc. Multi-core processor for performing energy-related operations in an industrial automation system using energy information determined with an organizational model of the industrial automation system
US9423848B2 (en) 2013-03-15 2016-08-23 Rockwell Automation Technologies, Inc. Extensible energy management architecture
US9911163B2 (en) 2013-03-15 2018-03-06 Rockwell Automation Technologies, Inc. Systems and methods for determining energy information using an organizational model of an industrial automation system
US9798343B2 (en) 2014-11-25 2017-10-24 Rockwell Automation Technologies, Inc. Quantifying operating strategy energy usage
US9798306B2 (en) 2014-11-25 2017-10-24 Rockwell Automation Technologies, Inc. Energy usage auto-baseline for diagnostics and prognostics
US9785126B2 (en) 2014-11-25 2017-10-10 Rockwell Automation Technologies, Inc. Inferred energy usage and multiple levels of energy usage
US10467202B2 (en) 2017-07-21 2019-11-05 Bank Of America Corporation System for multi-release and parallel development of a database
US11775814B1 (en) 2019-07-31 2023-10-03 Automation Anywhere, Inc. Automated detection of controls in computer applications with region based detectors
US11693923B1 (en) 2018-05-13 2023-07-04 Automation Anywhere, Inc. Robotic process automation system with hybrid workflows
US11556362B2 (en) 2019-03-31 2023-01-17 Automation Anywhere, Inc. Robotic process automation system with device user impersonation
US11243803B2 (en) 2019-04-30 2022-02-08 Automation Anywhere, Inc. Platform agnostic robotic process automation
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
US11614731B2 (en) 2019-04-30 2023-03-28 Automation Anywhere, Inc. Zero footprint robotic process automation system
US11301224B1 (en) 2019-04-30 2022-04-12 Automation Anywhere, Inc. Robotic process automation system with a command action logic independent execution environment
US11481304B1 (en) 2019-12-22 2022-10-25 Automation Anywhere, Inc. User action generated process discovery
US10911546B1 (en) 2019-12-30 2021-02-02 Automation Anywhere, Inc. Robotic process automation with automated user login for multiple terminal server hosted user sessions
US11348353B2 (en) 2020-01-31 2022-05-31 Automation Anywhere, Inc. Document spatial layout feature extraction to simplify template classification
US11514154B1 (en) 2020-01-31 2022-11-29 Automation Anywhere, Inc. Automation of workloads involving applications employing multi-factor authentication
US11086614B1 (en) 2020-01-31 2021-08-10 Automation Anywhere, Inc. Robotic process automation system with distributed download
US11182178B1 (en) 2020-02-21 2021-11-23 Automation Anywhere, Inc. Detection of user interface controls via invariance guided sub-control learning
US11449028B2 (en) 2020-09-03 2022-09-20 Rockwell Automation Technologies, Inc. Industrial automation asset and control project analysis
US11294360B2 (en) 2020-09-09 2022-04-05 Rockwell Automation Technologies, Inc. Industrial automation project code development guidance and analysis
US11561517B2 (en) 2020-09-09 2023-01-24 Rockwell Automation Technologies, Inc. Industrial development hub vault and design tools
US11415969B2 (en) 2020-09-21 2022-08-16 Rockwell Automation Technologies, Inc. Connectivity to an industrial information hub
US11796983B2 (en) 2020-09-25 2023-10-24 Rockwell Automation Technologies, Inc. Data modeling and asset management using an industrial information hub
US11734061B2 (en) 2020-11-12 2023-08-22 Automation Anywhere, Inc. Automated software robot creation for robotic process automation
US11782734B2 (en) 2020-12-22 2023-10-10 Automation Anywhere, Inc. Method and system for text extraction from an application window for robotic process automation
US11968182B2 (en) 2021-07-29 2024-04-23 Automation Anywhere, Inc. Authentication of software robots with gateway proxy for access to cloud-based services
US11820020B2 (en) 2021-07-29 2023-11-21 Automation Anywhere, Inc. Robotic process automation supporting hierarchical representation of recordings

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000017749A1 (en) * 1998-09-24 2000-03-30 Ericsson Inc. Remote firmware upgrade
US20020067504A1 (en) * 2000-12-06 2002-06-06 Xerox Corporation Method and apparatus for automatic upgrade of a product's printer driver
US20030041127A1 (en) * 2001-08-27 2003-02-27 Turnbull Paul F. System and methods for the automatic discovery, notification and installation of firmware upgrades
US20040015952A1 (en) * 2001-04-18 2004-01-22 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
DE10234304A1 (en) * 2002-07-26 2004-02-19 Endress + Hauser Gmbh + Co. Kg Process for updating device descriptions for field devices in process automation technology
US6930785B1 (en) * 2000-03-17 2005-08-16 Hewlett-Packard Development Company, L.P. Automatic remote firmware upgrade
WO2006063616A1 (en) 2004-12-14 2006-06-22 Endress+Hauser Process Solutions Ag Method for updating a device driver of an operator's station for a field device used in process automation technology
DE102006005365A1 (en) * 2006-02-07 2007-08-16 Sick Ag Updating method for firmware of field devices e.g. measuring devices, involves connecting field devices to control unit by common data bus, where firmware is transmitted between all connected field devices by connecting one field device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485601A (en) * 1992-05-14 1996-01-16 Ching; Hugh Completely automated and self-generating software system
US5956513A (en) * 1997-08-07 1999-09-21 Mci Communications Corporation System and method for automated software build control
US6725260B1 (en) * 1998-09-11 2004-04-20 L.V. Partners, L.P. Method and apparatus for configuring configurable equipment with configuration information received from a remote location
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework
US6493871B1 (en) * 1999-09-16 2002-12-10 Microsoft Corporation Method and system for downloading updates for software installation
US6826581B2 (en) * 2000-12-06 2004-11-30 Intel Corporation Upgrading a device over a network by downloading results of command execution from script file
WO2003009136A1 (en) * 2001-07-16 2003-01-30 Yuqing Ren Embedded software update system
JP2003108380A (en) * 2001-09-27 2003-04-11 Murata Mach Ltd Terminal device and program thereof
US7631299B2 (en) * 2002-01-24 2009-12-08 Computer Sciences Corporation System for modifying software using reusable software components
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
US20060095903A1 (en) * 2004-09-25 2006-05-04 Cheam Chee P Upgrading a software component
US20070016900A1 (en) * 2005-07-12 2007-01-18 Caterpillar Inc. Service tool with separately updateable data file
US7818736B2 (en) * 2005-09-14 2010-10-19 International Business Machines Corporation Dynamic update mechanisms in operating systems
US8930684B2 (en) * 2005-10-26 2015-01-06 Hewlett-Packard Development Company, L.P. Adding a runtime service for firmware-based images for a device not known to an operating system
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US7661025B2 (en) * 2006-01-19 2010-02-09 Cisco Technoloy, Inc. Method of ensuring consistent configuration between processors running different versions of software
US20110023014A1 (en) * 2009-07-24 2011-01-27 Ensequence, Inc. Method and apparatus for modifying an executable application using in-memory object representation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000017749A1 (en) * 1998-09-24 2000-03-30 Ericsson Inc. Remote firmware upgrade
US6930785B1 (en) * 2000-03-17 2005-08-16 Hewlett-Packard Development Company, L.P. Automatic remote firmware upgrade
US20020067504A1 (en) * 2000-12-06 2002-06-06 Xerox Corporation Method and apparatus for automatic upgrade of a product's printer driver
US20040015952A1 (en) * 2001-04-18 2004-01-22 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US20030041127A1 (en) * 2001-08-27 2003-02-27 Turnbull Paul F. System and methods for the automatic discovery, notification and installation of firmware upgrades
DE10234304A1 (en) * 2002-07-26 2004-02-19 Endress + Hauser Gmbh + Co. Kg Process for updating device descriptions for field devices in process automation technology
WO2006063616A1 (en) 2004-12-14 2006-06-22 Endress+Hauser Process Solutions Ag Method for updating a device driver of an operator's station for a field device used in process automation technology
DE102006005365A1 (en) * 2006-02-07 2007-08-16 Sick Ag Updating method for firmware of field devices e.g. measuring devices, involves connecting field devices to control unit by common data bus, where firmware is transmitted between all connected field devices by connecting one field device

Also Published As

Publication number Publication date
EP2051150B1 (en) 2011-03-16
DE502007006736D1 (en) 2011-04-28
US20090100159A1 (en) 2009-04-16
JP2009099150A (en) 2009-05-07
US8245215B2 (en) 2012-08-14
CN101414160A (en) 2009-04-22

Similar Documents

Publication Publication Date Title
EP2051150B1 (en) Method for automatic modification of a program
EP1430369B1 (en) Dynamic access to automation resources
EP1714197B1 (en) Driver for field devices used in process automation technology
EP3692424B1 (en) Method for processing a software project
DE102007026602A1 (en) Device and method for checking the current software installation of field devices of a distributed system, in particular an automation system
EP2098928A1 (en) Method and device for programming and/or configuring a safety controller
EP3021179B1 (en) Method for connecting an embedded device to a control unit
WO2003058361A2 (en) Method for maintaining a production installation
EP3420426B1 (en) Device and method for adapting a numerical control system to a machine to be controlled
EP1643679B1 (en) Configuration of modules in automation systems
EP3623884A1 (en) Production or machine tool and method of operating a production or machine tool
EP3732608B1 (en) Method for the computer-aided parameterisation of a technical system
EP2367084A1 (en) Method for the configuration of a control device of an industrial automation device and components for an industrial automation device
DE102016123599A1 (en) Robot controller with function for communication with a programmable logic controller and communication system
EP2133763A1 (en) Method for operating an automation system
DE102008023873A1 (en) Drive system operating method, involves using buffer for exchanging data between drive component and drive regulation unit, initializing buffer by drive regulation unit, and temporizing initialization of buffer by control unit
WO2008077358A1 (en) Network of devices with an automation device and an operating device, and method for operating such a network of devices
DE102009005902A1 (en) Method for operating electrical device e.g. programming device, of communication system for processing electronic data, involves assigning data region to configuration data set through interface for processing by electrical device
EP3552063B1 (en) Method for automatically configuring functional units of an automation system
EP2965157B1 (en) Method and apparatus for operating a process and/or production installation
EP1524566B1 (en) Control method for production machine
EP3285162A1 (en) Method for projecting a project and arrangement for carrying out said method
EP3774268B1 (en) Method for providing an operating system of a machine controller
EP3724729B1 (en) Method for operating a machine tool by adapting a precompiled data model
EP1947540B1 (en) Method for backing up and restoring a state in an automation device

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

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

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

17P Request for examination filed

Effective date: 20091005

17Q First examination report despatched

Effective date: 20091029

AKX Designation fees paid

Designated state(s): DE

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RTI1 Title (correction)

Free format text: METHOD FOR AUTOMATIC MODIFICATION OF A PROGRAM

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE

REF Corresponds to:

Ref document number: 502007006736

Country of ref document: DE

Date of ref document: 20110428

Kind code of ref document: P

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 502007006736

Country of ref document: DE

Effective date: 20110428

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

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

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20111219

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 502007006736

Country of ref document: DE

Effective date: 20111219

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20230808

Year of fee payment: 17