EP1998240B1 - Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung - Google Patents

Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung Download PDF

Info

Publication number
EP1998240B1
EP1998240B1 EP07010728.9A EP07010728A EP1998240B1 EP 1998240 B1 EP1998240 B1 EP 1998240B1 EP 07010728 A EP07010728 A EP 07010728A EP 1998240 B1 EP1998240 B1 EP 1998240B1
Authority
EP
European Patent Office
Prior art keywords
program
controller
link
module
software
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.)
Active
Application number
EP07010728.9A
Other languages
English (en)
French (fr)
Other versions
EP1998240A1 (de
Inventor
Peter Becker
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 EP07010728.9A priority Critical patent/EP1998240B1/de
Publication of EP1998240A1 publication Critical patent/EP1998240A1/de
Application granted granted Critical
Publication of EP1998240B1 publication Critical patent/EP1998240B1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13153Modification, change of program in real time
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the invention relates to a cyclically operating control according to the preamble of claim 1, in particular a programmable logic controller, with a memory in which software modules can be stored, which contain a user program and which during the functional sequence of the controller by means of a load commands in the memory loadable and after loading by means of a single-chain command in the functional sequence of the controller are einkettbar. Furthermore, the invention relates to a method according to the preamble of claim 8, for chaining a user program having software modules in the functional sequence of a controller, in particular a programmable logic controller in which the software modules are first loaded into a load memory and then by means of a Single-chain commands are chained into the functional sequence of the controller. Moreover, the invention relates to a computer program product for operating a controller.
  • software components are understood to mean not only those which have a user program, but also those which contain user data or so-called instance data including system data. That is, software modules, for example, in programmable logic controllers program blocks, which have, for example, a function code and / or a function block, or data blocks, instance data blocks or system data blocks.
  • Cyclically operating controls in particular programmable logic controllers, are adequate in the prior art are known and used today in large numbers, for example, in plant and mechanical engineering as well as in manufacturing or process engineering as well as in traffic control as process control. They regularly have a central module as well as peripheral modules predominantly designed as input or output modules.
  • the central module can be used to store a user program that controls the relevant process.
  • the user program is regularly modular and has the function modules forming the program modules.
  • the function blocks are cycled, whereby the process control is performed.
  • the central unit regularly has operation blocks which can be called up by means of an event defined as an alarm, for example, or at predetermined times.
  • an operation block is called, the control leaves its cyclic sequence and initially processes the program part present in the operation block, which can be a user program (software module), with event data being transferred to the operation block when the operation block is started, in this operation block or, by corresponding programming, in other, for example, cyclically processed function blocks are processed.
  • the control continues its cyclical function sequence at the point where it left it.
  • the changed or new software block is first written to a load memory of the central module by means of a load command.
  • a single-link command causes the software module to be copied from the load memory into a main memory of the central module, in which the other software components are located.
  • the changed or new software module is in the working memory, it is integrated in the next cycle through the so-called cycle control point, that is the starting point of the user program in the functional sequence of the controller, which means that he now now according to its arrangement in the functional sequence of the controller is cyclically traversed and executed.
  • Program parts are deleted, in the consequences of which system instances are to be deleted, as for example with alarm blocks If this is the case, the user program lacks the event that certain program parts were deleted in order, for example, to delete the corresponding system instances from an assignment list.
  • a controller according to the preamble of claim 1 is known in which the user program can be changed online.
  • copies are made by means of a control console of program segments to be changed of the user program and loaded into a copy area of the memory.
  • the program segments can be changed using the control panel.
  • the control console After the change, it is possible by means of the operating console to cause the changed program segments to be executed by the control program instead of the unchanged original program segments. If it turns out that the changes can be accepted, the control console can be used to have the original program segments replaced by the changed program segments. Information on the circumstances of the integration of the changed program segments in the program flow can not be found in the publication.
  • a single-chain operation module which contains a user program, by means of which the Einkettung the software modules in the functional sequence of the controller is controllable, that is, the Einkettung done by means of a user Einkett program part, is in an advantageous manner ensures that the chaining of the software components is no longer unconditional, but can be made dependent on conditions. Since the conditions can be written as a user program, they can be easily adapted to the process to be controlled. In particular, the Einkettung can be made dependent on current process parameters or the current status of the controller.
  • a loading command is first transmitted to the central module of the controller by means of a programming device or an engineering system, whereby the software component to be chained is loaded into a load memory. Then a single-chain command is transmitted to the central module of the controller.
  • the single-chain command starts a single-chain operation module which contains a user program by means of which the chaining-in of the relevant software module into the functional sequence of the controller is controlled.
  • the single-chain operation module is provided with data relating to the software component to be chained in, such as block type, module name or number, and addresses.
  • the single-chain operation component can contain conditions as a function of which the chaining-in of the software component to be chained in takes place. Due to the conditions, it may, for example, be the case that the relevant software module is chained into the functional sequence of the controller during the next run of the user program through the cycle checkpoint or the link is made at a different time. The chaining is carried out by means of the user program by calling (activating or starting) the user single-chain program section. However, due to the conditions, it may also result that the relevant software module is not yet chained in at first.
  • the user is thus enabled to chain a group of software modules when all the software components of this group are available. Theoretically, it is possible to chain an unlimited number of software building blocks simultaneously. Furthermore, the user is able to copy current process data into the new software module in a targeted manner to the correct program positions, for example, before a control function is processed, and then to chain the new software module, whereupon he substitutes the previous software module in the functional sequence of the control.
  • Another example is a targeted initialization processing of software components after chaining.
  • software components can also be removed from the functional sequence of the controller.
  • the user program can be used to determine the location and the time at which the relevant software module is to be deleted. This can be used, for example, when a product series is terminated and a new one begins. System instances can also be deleted at the right time.
  • lower-level controllers can also be incorporated into the functional sequence of the controller.
  • the user program present in the single-chain operation block can be used to determine when and where a software block is deleted or chained in and which current process value in these software modules are to be written or written in these.
  • the sole figure shows a functional diagram of a controller according to the invention.
  • a cyclically operating controller 1 designed as a programmable logic controller has a load memory 1a, a working memory 1b and an operating system 1c.
  • the user program is stored, which has a first software component 2, a second software component 3 and a third software component 4.
  • the software modules 2, 3, 4 are cyclically run through, that is, processed, which is represented by the circular arrow 7.
  • the process to be controlled by the controller 1 is controlled.
  • Starting point of the user program is the so-called cycle control point 7a.
  • the user program is in a defined basic state.
  • a modified second software module 3 ' is first loaded into the load memory 1a. This is done by means of a load command a transmitted from a programming device 8a or an engineering system 8b to the operating system 1c.
  • the operating system 1c is a first operating system function module 5. If the first operating system function block 5 receives the load command a, he causes the Transmission b of the modified second functional module 3 'in the load memory 1a.
  • a single-chain command c is transmitted from the programming device 8a or engineering system 8b to the operating system 1c.
  • the operating system 1c has a second operating system function module 6 which receives the single-chain command c. Due to the single-chain command c, a copy 3 "of the modified second software module 3 'is loaded into the main memory 1b.
  • a single-chain operation block 9 which is located in the main memory 1b, is started.
  • a single-chain command d is sent from the second operating system function block 6 to the single-chain operation block 9.
  • the single-chain Operation module 9 the block type, the block number and the address of the software block to be chained 3 transmitted.
  • the Einkett operation module 9 contains the Einkett command from the first operating system function module 5, which is why the Einkett operation module 9 must then contain a program part, by means of which the geskettende software module 3 'from the load memory 1a in the working memory 1b can be copied.
  • the code command or the single-chain command comes from the user program.
  • the user program for example, it can be found out by polling whether an interlinkage should take place and which software components are available for chaining.
  • the single-chain operation component 9 contains a user-chaining program by means of which the chaining-in of the copy 3 "of the modified second software component 3 'into the program sequence 7 is controlled.
  • the user-chain-in program it is possible, on the basis of queries or commands contained in the user-in-a-chain program, to link the modified second software module 3 "into the program sequence 7 at a time specified by the user
  • the user has to determine whether or when and under which conditions the modified second software module 3 "is chained into the program sequence 7. Due to the user chaining program, it is possible to inhibit (firstly) the chunking of the modified second software package 3 ", to perform it the next time cycle checkpoint 7a is executed, or to perform it at a predetermined other time (eg, immediately) the program sequence 7 then need not be at the cycle control point 7a.
  • the single-chain operation module 9 sends a corresponding message e to the second operating system function This then causes by means of a Einkett command f the Einkettung the modified second software module 3 "in the program flow 7 at the next pass of the cycle control point 7a.
  • the Einkettung can be done in a conventional manner by means of an exchange of the addresses of the second software module 3 and the modified second software module 3 ".
  • the single-chain operation block 9 sends a corresponding other message e to the second operating system function This takes the Einkettung the modified second software module 3 "in the program flow 7 then not before. That is, the corresponding f command is not executed.
  • the user-Einkett-program assumes the Einkettung the modified second software module 3 "in the program flow 7. If later, as a result of execution of the user Einkett program the modified second software module 3" in the program sequence 7 is to be chained , this is caused by the user-Einkett program. Since parts of the user-Einkett program can also be in the software modules 2, 3, 4, the Einkettung of Modified second software module 3 "in the program flow 7, for example, by means of a corresponding command h of the first software module 2 are made.
  • lower-level controllers 11 can also be connected to the central module 1c.
  • the lower-level controllers 11 can be processed by means of the single-chain operation module 9. For example, data can be transmitted to the lower-level controllers 11 or read out of the subordinate controllers 11.
  • the single-chain operation module 9 can cause the lower-level controllers 11 to be stopped by means of a command i and restarted at a given time by means of a command k. This makes it possible to chain software modules 3 "into the program sequence 7, which have a data exchange with the subordinate controllers 11.

Description

  • Die Erfindung betrifft eine zyklisch arbeitende Steuerung nach dem Oberbegriff des Anspruchs 1, insbesondere eine speicherprogrammierbare Steuerung, mit einem Speicher, in welchen Software-Bausteine speicherbar sind, welche ein Anwenderprogramm enthalten und welche während des Funktionsablaufs der Steuerung mittels eines Lade-Kommandos in den Speicher ladbar und nach dem Laden mittels eines Einkett-Kommandos in den Funktionsablauf der Steuerung einkettbar sind. Des Weiteren betrifft die Erfindung ein Verfahren nach dem Oberbegriff des Anspruchs 8, zum Einketten von ein Anwenderprogramm aufweisenden Software-Bausteinen in den Funktionsablauf einer Steuerung, insbesondere einer speicherprogrammierbaren Steuerung, bei dem die Software-Bausteine zunächst in einen Ladespeicher geladen werden und anschließend mittels eines Einkett-Kommandos in den Funktionsablauf der Steuerung eingekettet werden. Darüber hinaus betrifft die Erfindung ein Computerprogrammprodukt zum Betreiben einer Steuerung.
  • Unter Software-Bausteinen werden im Sinne der Erfindung nicht nur solche verstanden, welche ein Anwenderprogramm aufweisen, sondern auch solche, welche Anwenderdaten oder so genannte Instanzdaten einschließlich Systemdaten enthalten. Das heißt, Software-Bausteine können beispielsweise bei speicherprogrammierbaren Steuerungen Programmbausteine, welche beispielsweise einen Funktionscode und/oder einen Funktionsblock aufweisen, oder Datenbausteine, Instanz-Datenbausteine oder Systemdatenbausteine sein.
  • Zyklisch arbeitende Steuerungen, insbesondere speicherprogrammierbare Steuerungen, sind im Stand der Technik hinlänglich bekannt und werden heute in großer Zahl beispielsweise im Anlagen- und Maschinenbau sowie in der Fertigungs- oder Verfahrenstechnik ebenso wie in der Verkehrsleittechnik als Prozesssteuerung eingesetzt. Sie weisen regelmäßig eine Zentralbaugruppe sowie überwiegend als Eingabe- oder Ausgabebaugruppen ausgebildete Peripheriebaugruppen auf.
  • In der Zentralbaugruppe lässt sich ein Anwenderprogramm speichern, mittels dem der betreffende Prozess gesteuert wird. Das Anwenderprogramm ist regelmäßig modular aufgebaut und weist die Programmmodule bildenden Funktionsbausteine auf. Beim Funktionsablauf der Steuerung, dem so genannten RUN-Zustand, werden die Funktionsbausteine zyklisch durchlaufen, wodurch die Prozesssteuerung durchgeführt wird. Neben den Funktionsbausteinen weist die Zentraleinheit regelmäßig noch Operationsbausteine auf, welche mittels eines beispielsweise als Alarm definierten Ereignisses oder zu vorgegebenen Zeitpunkten aufgerufen werden können. Beim Aufruf eines Operationsbausteins verlässt die Steuerung ihren zyklischen Ablauf und arbeitet zunächst den im Operationsbaustein vorhandenen Programmteil ab, welcher ein Anwenderprogramm (Software-Baustein) sein kann, wobei beim Start des Operationsbausteins an den Operationsbaustein Ereignisdaten übergeben werden, die in diesem Operationsbaustein oder, durch entsprechende Programmierung, in anderen, beispielsweise zyklisch bearbeiteten Funktionsbausteinen bearbeitet werden. Nach Abarbeitung des Operationsbausteins setzt die Steuerung ihren zyklischen Funktionsablauf an der Stelle fort, an der sie ihn verlassen hat.
  • Häufig ist es erforderlich, dass Operationsbausteine, Funktionsbausteine oder ebenfalls die Steuerung betreffende Datenbausteine während des Funktionsablaufs dem Steuerungsprogramm hinzugefügt, gelöscht oder geändert werden müssen. So können Programmänderungen während des Funktionsablaufs der Steuerung beispielsweise erforderlich sein, um Optimierungen vorzunehmen oder den Produktionsablauf beispielsweise bei einem Rezeptwechsel zu ändern. Hierzu wird mittels eines Programmiergeräts oder eines Engineering-Systems ein entsprechendes Kommando an die Zentralbaugruppe übermittelt.
  • Zur Änderung oder Einfügung eines Software-Bausteins (Operationsbaustein, Funktionsbaustein, Datenbaustein) wird der geänderte oder neue Software-Baustein zunächst mittels eines Lade-Kommandos in einen Ladespeicher der Zentralbaugruppe geschrieben. Nachdem sich der Software-Baustein in dem Ladespeicher befindet, wird mittels eines Einkett-Kommandos bewirkt, dass der Software-Baustein von dem Ladespeicher in einen Arbeitsspeicher der Zentralbaugruppe, in dem sich auch die übrigen Software-Bausteine befinden, kopiert wird. Befindet sich der geänderte oder neue Software-Baustein im Arbeitsspeicher, wird er beim nächsten Durchlauf durch den so genannten Zykluskontrollpunkt, das heißt den Startpunkt des Anwenderprogramms, in den Funktionsablauf der Steuerung eingebunden, was heißt, dass er nunmehr entsprechend seiner Anordnung im Funktionsablauf der Steuerung zyklisch durchlaufen und ausgeführt wird.
  • Durch die Einkettung des geänderten beziehungsweise neuen Software-Bausteins am Zykluskontrollpunkt wird erreicht, dass ohne Kenntnis der Programmlogik sichergestellt werden kann, dass alle Programmabschnitte abgeschlossen und damit alle Abhängigkeiten zwischen den Programmabschnitten aufgelöst sind. Dennoch ist die unbedingte Einkettung der Software-Bausteine am Zykluskontrollpunkt nicht zufrieden stellend, da hierdurch einer Vielzahl von Problemen, die durch Änderungen von Software-Bausteinen im Betriebszustand RUN entstehen können, nicht Rechnung getragen wird.
  • So kann es in Abhängigkeit eines Prozesses, der durch ein Software-Bausteine aufweisendes Anwenderprogramm gesteuert werden soll, beispielsweise erforderlich sein, dass die durch eine Einkettung eines geänderten oder neuen Software-Bausteins in das Anwenderprogramm hervorgerufene Programmänderung koordiniert werden muss. Beispielsweise kann es erforderlich sein, dass mehrere geänderte oder neue Software-Bausteine gleichzeitig in den Funktionsablauf der Steuerung eingekettet werden müssen. Dies ist beispielsweise bei einer Produktänderung (Rezeptwechsel) einer Anlage notwendig. Des Weiteren kann es bei einem die Funktion eines Reglers ausführenden Software-Baustein erforderlich sein, die Reglerdaten des aktuellen Prozesszustandes in den neuen Software-Baustein zu übernehmen, um hierdurch beim Einketten des neuen Software-Bausteins eine Stoßfreiheit zu erreichen. Des Weiteren kann es erforderlich sein, dass Systeminstanzen, welche nach einer Programmänderung nicht mehr bearbeitet werden, mit der Programmänderung freigegeben werden müssen. Darüber hinaus kann es für eine Programmänderung erforderlich sein, dass unterlagerte Steuerungen angehalten und nach der Programmänderung wieder gestartet werden müssen.
  • Die vorstehenden beispielhaft genannten Probleme müssen heute individuell meist mit großem kommunikationstechnischem Aufwand gelöst werden. So werden beispielsweise zur Aktivierung von geänderten Programmsequenzen mit einem Programmiergerät oder einem Engineering-System Variablen beschrieben, die im Anwenderprogramm ständig gepollt werden, um die geänderten Programmsequenzen wirksam werden lassen zu können. Um in einem geänderten Instanz-Datenbaustein aktuelle Prozesswerte zu integrieren, müssen die Werte beispielsweise aus dem bisherigen Instanz-Datenbaustein geladen und in den neuen Instanz-Datenbaustein kopiert werden. Anschließend muss die Instanz und der zugehörige Programmbaustein koordiniert auf der speicherprogrammierbaren Steuerung zum Ablauf gebracht werden. Eine programmiertechnische Lösung ist zudem sehr schwierig, da der betreffende Programmteil sowie die betreffenden Daten ausgetauscht werden müssen und die Daten an die neue Instanz mit aktuellen Prozesswerten anzupassen sind.
  • Werden Programmteile gelöscht, in deren Folgen Systeminstanzen zu löschen sind, wie dies beispielsweise bei Alarm-Bausteinen der Fall ist, fehlt dem Anwenderprogramm das Ereignis, dass bestimmte Programmteile gelöscht wurden, um beispielsweise aus einer Zuordnungsliste die entsprechenden Systeminstanzen zu löschen.
  • Aus der US-A-3 969 723 ist eine Steuerung gemäß dem Oberbegriff des Anspruchs 1 bekannt, bei welcher das Anwenderprogramm online geändert werden kann. Hierzu werden mittels einer Bedienkonsole von zu ändernden Programmsegmenten des Anwenderprogramms Kopien erstellt und in einen Kopie-Bereich des Speichers geladen. In dem Kopie-Bereich lassen sich die Programmsegmente mittels der Bedienkonsole ändern. Nach der Änderung kann mittels der Bedienkonsole veranlasst werden, dass die geänderten Programmsegmente anstelle der unveränderten ursprünglichen Programmsegmente vom Steuerungsprogramm ausgeführt werden. Sofern sich hierbei ergibt, dass die Änderungen übernommen werden können, kann mittels der Bedienkonsole veranlasst werden, dass die ursprünglichen Programmsegmente durch die geänderten Programmsegmente ersetzt werden. Angaben über die Umstände der Einbindung der geänderten Programmsegmente in den Programmablauf lassen sich der Druckschrift nicht entnehmen.
  • Es ist Aufgabe der Erfindung, eine eingangs genannte Steuerung beziehungsweise ein eingangs genanntes Verfahren derart auszubilden, dass die Einkettung von Software-Bausteinen in den Funktionsablauf einer Steuerung problemloser erfolgt.
  • Die Lösung dieser Aufgabe ergibt sich aus den Merkmalen des kennzeichnenden Teils des Anspruchs 1 sowie des Anspruchs 8. Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
  • Dadurch, dass ein Einkett-Operations-Baustein vorhanden ist, welcher ein Anwenderprogramm enthält, mittels dem die Einkettung der Software-Bausteine in den Funktionsablauf der Steuerung steuerbar ist, das heißt die Einkettung mittels eines Anwender-Einkett-Programmteils erfolgt, wird in vorteilhafter Weise erreicht, dass die Einkettung der Software-Bausteine nicht mehr bedingungslos erfolgt, sondern von Bedingungen abhängig gemacht werden kann. Da die Bedingungen als Anwenderprogramm geschrieben werden können, lassen sie sich problemlos an den zu steuernden Prozess anpassen. Insbesondere kann die Einkettung von aktuellen Prozessparametern oder dem aktuellen Status der Steuerung abhängig gemacht werden.
  • Soll ein Software-Baustein in den Funktionsablauf einer Steuerung eingekettet werden, wird mittels eines Programmiergeräts oder eines Engineering-Systems zunächst ein LadeKommando an die Zentralbaugruppe der Steuerung übertragen, wodurch der einzukettende Software-Baustein in einen Ladespeicher geladen wird. Danach wird ein Einkett-Kommando an die Zentralbaugruppe der Steuerung übertragen. Durch das Einkett-Kommando wird ein Einkett-Operations-Baustein gestartet, welcher ein Anwenderprogramm enthält, mittels dem die Einkettung des betreffenden Software-Bausteins in den Funktionsablauf der Steuerung gesteuert wird. Mittels des Anwenderprogramms können neben der Ausführung von vom Anwender vorgegebenen Befehlen, welche auch in den Software-Bausteinen enthalten sein können, auch Betriebssystem-Funktionen zur Ausführung aufgerufen werden.
  • In vorteilhafter Weise werden dem Einkett-Operations-Baustein beim Start den einzukettenden Software-Baustein betreffende Daten wie Bausteintyp, Bausteinname oder -nummer sowie Adressen übergeben. Hierdurch erhält der Einkett-Operations-Baustein alle den einzukettenden Software-Baustein betreffenden Daten, welche von dem im Einkett-Operations-Baustein vorhandenen Anwenderprogramm bearbeitet werden können. Das heißt, vor dem Einketten des betreffenden Software-Bausteins in den Funktionsablauf der Steuerung wird das im Einkett-OperationsBaustein vorhandene Anwenderprogramm ausgeführt, wodurch der Anwender in der Lage ist, eine kontrollierte Einkettung des betreffenden Software-Bausteins vorzunehmen.
  • In vorteilhafter Weise kann der Einkett-Operations-Baustein Bedingungen enthalten, in Abhängigkeit welcher die Einkettung des einzukettenden Software-Bausteins erfolgt. Aufgrund der Bedingungen kann sich beispielsweise ergeben, dass der betreffende Software-Baustein beim nächsten Durchlauf des Anwenderprogramms durch den Zykluskontrollpunkt in den Funktionsablauf der Steuerung eingekettet wird oder die Einkettung zu einem anderen Zeitpunkt vorgenommen. Die Einkettung erfolgt mittels des Anwenderprogramms durch Aufruf (Aktivierung beziehungsweise Start) des Anwender-Einkett-Programmteils. Aufgrund der Bedingungen kann sich aber auch ergeben, dass der betreffende Software-Baustein zunächst noch nicht eingekettet wird.
  • Der Anwender wird somit in die Lage versetzt, eine Gruppe von Software-Bausteinen dann einzuketten, wenn alle Software-Bausteine dieser Gruppe bereitstehen. Theoretisch ist es möglich, eine unbegrenzte Anzahl von Software-Bausteinen gleichzeitig einzuketten. Des Weiteren ist der Anwender in der Lage, gezielt an den richtigen Programmstellen, beispielsweise vor einer Bearbeitung einer Regelfunktion, aktuelle Prozessdaten in den neuen Software-Baustein zu kopieren und anschließend den neuen Software-Baustein einzuketten, woraufhin er dann anstelle des bisherigen Software-Bausteins im Funktionsablauf der Steuerung durchlaufen wird.
  • Ein weiteres Beispiel ist eine gezielte Initialisierungsbearbeitung von Software-Bausteinen nach dem Einketten.
  • Bei einer vorteilhaften Ausführungsform der Erfindung ist vorgesehen, mittels des Einkett-Operations-Bausteins Daten des einzukettenden Software-Bausteins auszulesen und/oder zu ändern, wobei hierzu Betriebssystemfunktionen verwendet werden können.
  • In gleicher Weise, wie das Einketten von Software-Bausteinen durch ein Anwenderprogramm gesteuert werden kann, können auch Software-Bausteine aus dem Funktionsablauf der Steuerung entfernt werden. Mittels des Anwenderprogramms können der Ort und der Zeitpunkt, zu dem der betreffende Software-Baustein gelöscht werden soll, bestimmt werden. Dies kann beispielsweise dann Anwendung finden, wenn eine Produktserie beendet wird und eine neue beginnt. Auch Systeminstanzen können dann gezielt zum richtigen Zeitpunkt gelöscht werden.
  • Ebenso wie es mittels der vorliegenden Erfindung möglich ist, Software-Bausteine in den Funktionsablauf einer Steuerung einzuketten, lassen sich auch unterlagerte Steuerungen in den Funktionsablauf der Steuerung eingliedern.
  • Wenngleich es mittels der vorliegenden Erfindung in vorteilhafter Weise insbesondere möglich ist, Software-Bausteine während des Funktionsablaufs der Steuerung in den Funktionsablauf der Steuerung einzuketten, so ist es aber auch möglich, die Einkettung eines Software-Bausteins im angehaltenen Zustand der Steuerung, das heißt im Betriebszustand STOP, vorzunehmen. Dies ist insbesondere dann erforderlich, wenn Systemdatenbausteine eingekettet werden sollen, welche nur im Zustand STOP geladen werden können.
  • Mittels der vorliegenden Erfindung ist es möglich, das Laden, Einketten und Löschen von Software-Bausteinen mit dem Funktionsablauf der Steuerung zu synchronisieren. Durch das im Einkett-Operations-Baustein vorhandene Anwenderprogramm kann bestimmt werden, wann und wo ein Software-Baustein gelöscht oder eingekettet wird und welche aktuellen Prözesswerte in diesen Software-Bausteinen stehen oder in diese geschrieben werden sollen.
  • Weitere Einzelheiten, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung eines besonderen Ausführungsbeispiels unter Bezugnahme auf die Zeichnung.
  • Es zeigt die einzige Figur ein Funktionsschema einer erfindungsgemäßen Steuerung.
  • Wie der Figur entnommen werden kann, weist eine als speicherprogrammierbare Steuerung ausgebildete zyklisch arbeitende Steuerung 1 einen Ladespeicher 1a, einen Arbeitsspeicher 1b und ein Betriebssystem 1c auf.
  • Im Arbeitsspeicher 1b ist das Anwenderprogramm abgelegt, welches einen ersten Software-Baustein 2, einen zweiten Software-Baustein 3 und einen dritten Software-Baustein 4 aufweist. Die Software-Bausteine 2, 3, 4 werden zyklisch durchlaufen, das heißt abgearbeitet, was durch den kreisförmigen Pfeil 7 dargestellt ist. Mittels des Anwenderprogramms wird der mittels der Steuerung 1 zu steuernde Prozess gesteuert. Startpunkt des Anwenderprogramms ist der so genannte Zykluskontrollpunkt 7a. Im Zykluskontrollpunkt 7a befindet sich das Anwenderprogramm in einem definierten Grundzustand.
  • Soll beispielsweise der zweite Software-Baustein 3 modifiziert werden, wird ein modifizierter zweiter Software-Baustein 3' zunächst in den Ladespeicher 1a geladen. Dies geschieht mittels eines von einem Programmiergerät 8a oder einem Engineering-System 8b an das Betriebssystem 1c übermittelten Lade-Kommandos a.
  • Im Betriebssystem 1c befindet sich ein erster Betriebssystem-Funktions-Baustein 5. Empfängt der erste Betriebssystem-Funktions-Baustein 5 das Ladekommando a, veranlasst er die Übertragung b des modifizierten zweiten Funktions-Bausteins 3' in den Ladespeicher 1a.
  • Nachdem sich der modifizierte zweite Software-Baustein 3' im Ladespeicher 1a befindet, wird von dem Programmiergerät 8a beziehungsweise Engineering-System 8b an das Betriebssystem 1c ein Einkett-Kommando c übermittelt.
  • Zur Durchführung der Einkettung des modifizierten zweiten Software-Bausteins 3' in den Programmablauf 7 der Steuerung 1 weist das Betriebssystem 1c einen zweiten Betriebssystem-Funktions-Baustein 6 auf, der das Einkett-Kommando c empfängt. Aufgrund des Einkett-Kommandos c wird eine Kopie 3" des modifizierten zweiten Software-Bausteins 3' in den Arbeitsspeicher 1b geladen.
  • Der bisher beschriebene Aufbau beziehungsweise Funktionsablauf entspricht dem Aufbau beziehungsweise dem Funktionsablauf einer herkömmlichen speicherprogrammierbaren Steuerung, weshalb hierauf an dieser Stelle nicht näher eingegangen wird.
  • Im Gegensatz zu der Funktionsweise einer herkömmlichen speicherprogrammierbaren Steuerung, bei der die Einkettung der sich im Arbeitsspeicher befindlichen Kopie 3" des modifizierten zweiten Software-Bausteins 3' in den Programmablauf 7 beim nächsten Durchlauf des Zykluskontrollpunkts 7a erfolgt, wird bei der vorliegenden Erfindung mittels des zweiten Betriebssystem-Funktions-Bausteins 6 ein Einkett-OperationsBaustein 9, welcher sich im Arbeitsspeicher 1b befindet, gestartet. Hierzu wird vom zweiten Betriebssystem-FunktionsBaustein 6 an den Einkett-Operations-Baustein 9 ein Einkett-Befehl d gesendet. Des Weiteren werden dem Einkett-Operations-Baustein 9 der Baustein-Typ, die Baustein-Nummer und die Adresse des einzukettenden Software-Bausteins 3 übermittelt.
  • Es ist aber auch möglich, dass der Einkett-Vorgang bereits unmittelbar durch das Ladekommando a eingeleitet wird. Dann enthält der Einkett-Operations-Baustein 9 das Einkett-Kommando vom ersten Betriebssystem-Funktions-Baustein 5, weshalb der Einkett-Operations-Baustein 9 dann einen Programmteil enthalten muss, mittels dem der einzukettende Software-Baustein 3' aus dem Ladespeicher 1a in den Arbeitsspeicher 1b kopiert werden kann.
  • Des Weiteren ist es möglich, dass das Code-Kommando beziehungsweise das Einkett-Kommando aus dem Anwenderprogramm kommen. Im Anwenderprogramm kann beispielsweise durch Pollen herausgefunden werden, ob eine Einkettung erfolgen soll und welche Software-Bausteine zum Einketten bereitstehen.
  • Im Einkett-Operations-Baustein 9 ist ein Anwender-Einkett-Programm enthalten, mittels dem die Einkettung der Kopie 3" des modifizierten zweiten Software-Bausteins 3' in den Programmablauf 7 gesteuert wird.
  • Mittels des Anwender-Einkett-Programms lässt sich aufgrund von im Anwender-Einkett-Programm enthaltenen Abfragen oder Befehlen erreichen, dass die Einkettung des modifizierten zweiten Software-Bausteins 3" in den Programmablauf 7 zu einem vom Anwender festgelegten Zeitpunkt erfolgt. Das heißt, der Anwender hat es in der Hand zu bestimmen, ob beziehungsweise wann und unter welchen Voraussetzungen der modifizierte zweite Software-Baustein 3" in den Programmablauf 7 eingekettet wird. Aufgrund des Anwender-Einkett-Programms ist es möglich, die Einkettung des modifizierten zweiten Software-Bausteins 3" (zunächst) zu unterbinden, sie beim nächsten Durchlaufen des Zykluskontrollpunkts 7a vorzunehmen oder sie zu einem vorbestimmten anderen Zeitpunkt (beispielsweise sofort) vorzunehmen, wobei sich der Programmablauf 7 dann nicht am Zykluskontrollpunkt 7a befinden muss.
  • Soll als Ergebnis der Abarbeitung des Anwender-Einkett-Programms der modifizierte zweite Software-Baustein 3" beim nächsten Durchlauf des Zykluskontrollpunktes 7a in den Programmablauf 7 eingekettet werden, sendet der Einkett-Operations-Baustein 9 eine entsprechende Meldung e an den zweiten Betriebssystem-Funktions-Baustein 6. Dieser veranlasst dann mittels eines Einkett-Befehls f die Einkettung des modifizierten zweiten Software-Bausteins 3" in den Programmablauf 7 beim nächsten Durchlauf des Zykluskontrollpunkts 7a. Die Einkettung kann auf herkömmliche Weise mittels eines Austauschs der Adressen des zweiten Software-Bausteins 3 und des modifizierten zweiten Software-Bausteins 3" geschehen.
  • Soll als Ergebnis der Abarbeitung des Anwender-Einkett-Programms der modifizierte zweite Software-Baustein 3" sofort in den Programmablauf 7 eingekettet werden, wird dies vom Einkett-Operations-Baustein 9 mittels eines entsprechenden Befehls g vorgenommen.
  • Soll aufgrund des Ergebnisses der Abarbeitung des Anwender-Einkett-Programms der modifizierte zweite Software-Baustein 3" nicht oder zu einem späteren Zeitpunkt in den Programmablauf 7 eingekettet werden, sendet der Einkett-OperationsBaustein 9 eine entsprechende andere Meldung e an den zweiten Betriebssystem-Funktions-Baustein 6. Dieser nimmt die Einkettung des modifizierten zweiten Software-Bausteins 3" in den Programmablauf 7 dann nicht vor. Das heißt, der entsprechende Befehl f wird nicht ausgeführt.
  • Stattdessen übernimmt das Anwender-Einkett-Programm die Einkettung des modifizierten zweiten Software-Bausteins 3" in den Programmablauf 7. Wenn später als Ergebnis der Ausführung des Anwender-Einkett-Programms der modifizierte zweite Software-Baustein 3" in den Programmablauf 7 eingekettet werden soll, wird dies von dem Anwender-Einkett-Programm veranlasst. Da Teile des Anwender-Einkett-Programms auch in den Software-Bausteinen 2, 3, 4 stehen können, kann die Einkettung des modifizierten zweiten Software-Bausteins 3" in den Programmablauf 7 beispielsweise mittels eines entsprechenden Befehls h des ersten Software-Bausteins 2 vorgenommen werden.
  • Über einen Kommunikations-Bus 10 können mit der Zentralbaugruppe 1c auch unterlagerte Steuerungen 11 verbunden sein. Die unterlagerten Steuerungen 11 lassen sich mittels des Einkett-Operations-Bausteins 9 bearbeiten. So können beispielsweise Daten an die unterlagerten Steuerungen 11 übermittelt oder aus den unterlagerten Steuerungen 11 ausgelesen werden. Insbesondere kann der Einkett-Operations-Baustein 9 veranlassen, dass mittels eines Befehls i die unterlagerten Steuerungen 11 angehalten werden und zu gegebener Zeit mittels eines Befehls k wieder gestartet werden. Hierdurch ist es möglich, Software-Bausteine 3" in den Programmablauf 7 einzuketten, die mit den unterlagerten Steuerungen 11 einen Datenaustausch haben.

Claims (10)

  1. Zyklisch arbeitende Steuerung (1), insbesondere speicherprogrammierbare Steuerung, mit einem Speicher (1b), in welchen Software-Bausteine (2, 3, 4, 3', 3'') eines Anwenderprogramms speicherbar sind, und welche während des Programmablaufs (7) der Steuerung (1) mittels eines Lade-Kommandos (a) in den Speicher ladbar und nach dem Laden mittels eines Einkett-Kommandos (c) in den Programmablauf (7) der Steuerung (1) einkettbar sind, dadurch gekennzeichnet, dass ein Einkett-Operations-Baustein (9) im Arbeitsspeicher (16) vorhanden ist, welcher ein Anwender-Einkett-Programm enthält, mittels dem die Einkettung der Software-Bausteine (3'') in den Programmablauf (7) der Steuerung (1) steuerbar ist,
    und dass der Einkett-Operations-Baustein (9) Bedingungen enthält, in Abhängigkeit welcher die Einkettung des einzukettenden Software-Bausteins (3") erfolgt.
  2. Steuerung nach Anspruch 1, dadurch gekennzeichnet, dass der Einkett-Operations-Baustein (9) mittels des Einkett-Kommandos (c) startbar ist.
  3. Steuerung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die den einzukettenden Software-Baustein (3") betreffenden Daten wie Bausteintyp, Bausteinname oder -nummer sowie Adressen mittels des Einkett-Kommandos (c) dem Einkett-Operations-Baustein (9) übermittelt werden.
  4. Steuerung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass mittels des Einkett-Operations-Bausteins (9) Daten des einzukettenden Software-Bausteins (3'') auslesbar und/oder änderbar sind.
  5. Steuerung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass wenigstens eine unterlagerte Steuerung (11) vorhanden ist, welche mittels des Einkett-Operations-Bausteins (9) bearbeitbar ist.
  6. Steuerung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Einkett-Operations-Baustein (9) auch bei nicht durchgeführtem Funktionsablauf (7) der Steuerung (1) abarbeitbar ist.
  7. Verfahren zum Einketten von Software-Bausteinen (3, 4, 5, 3', 3'') eines Anwenderprogramms in den Programmablauf (7) einer Steuerung (1), insbesondere einer speicherprogrammierbaren Steuerung, bei dem die Software-Bausteine (3') zunächst in einen Ladespeicher (la) geladen werden und anschließend mittels eines Einkett-Kommandos (c) in den Programmablauf (7) der Steuerung (1) eingekettet werden, dadurch gekennzeichnet, dass die Einkettung mittels eines Anwender-Einkett-Programms eines Einkett-Operations-Bausteins (9) erfolgt, mittels dem die Einkettung der Software-Bausteine (3'') in den Programmablauf (7) der Steuerung (1) steuerbar ist, und
    dass die Einkettung des einzukettenden Software-Bausteins (3") erst nach Erfüllung von im Anwender-Einkett-Programm enthaltenen Bedingungen erfolgt.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Einkett-Programmteil mittels des Einkett-Kommandos gestartet wird.
  9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass der Einkett-Programmteil den einzukettenden Software-Baustein (3'') bearbeiten kann.
  10. Computerprogrammprodukt zum Betreiben einer Steuerung (1), welches Programmcodesequenzen aufweist, die bei Ausführung in einer Steuerung gemäß einem der Ansprüche 1 bis 6 ein Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf (7) der Steuerung (1), insbesondere nach einem der Ansprüche 7 bis 9, ausführen.
EP07010728.9A 2007-05-30 2007-05-30 Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung Active EP1998240B1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP07010728.9A EP1998240B1 (de) 2007-05-30 2007-05-30 Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP07010728.9A EP1998240B1 (de) 2007-05-30 2007-05-30 Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung

Publications (2)

Publication Number Publication Date
EP1998240A1 EP1998240A1 (de) 2008-12-03
EP1998240B1 true EP1998240B1 (de) 2013-05-15

Family

ID=38537373

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07010728.9A Active EP1998240B1 (de) 2007-05-30 2007-05-30 Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung

Country Status (1)

Country Link
EP (1) EP1998240B1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5747584B2 (ja) * 2011-03-15 2015-07-15 オムロン株式会社 制御装置およびシステムプログラム
US9377769B2 (en) 2011-03-15 2016-06-28 Omron Corporation Control apparatus for updating a user program while processing is being performed and recording medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3969723A (en) * 1974-07-03 1976-07-13 General Electric Company On-line modification of computer programs
JP3594035B2 (ja) * 2003-03-13 2004-11-24 オムロン株式会社 制御装置、cpuユニット、プログラマブルコントローラのユーザプログラム編集方法、及びオンラインエディットされる際のプログラマブルコントローラの処理方法

Also Published As

Publication number Publication date
EP1998240A1 (de) 2008-12-03

Similar Documents

Publication Publication Date Title
EP2453326B1 (de) Verfahren und System zur Bedienung einer Maschine aus der Automatisierungstechnik
DE10254010A1 (de) Verfahren und Datennetzwerk zur automatischen Konfiguration einer Parametrieroberfläche von Werkzeugmaschinen oder Produktionsmaschinen
EP1662381A1 (de) Engineeringsystem mit automatischer Generierung von Instanzvorlagen
EP2732347B1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
DE10144788A1 (de) Verfahren und Vorrichtung zur sicheren hochperformanten Aufzeichnung von Prozessdaten bei numerisch gesteuerten industriellen Bearbeitungsmaschinen
EP1998240B1 (de) Zyklisch arbeitende Steuerung sowie Verfahren zum Einketten von Software-Bausteinen in den Funktionsablauf einer Steuerung
EP2422248A1 (de) System und verfahren zum verteilen von projektdaten einer sicherheitssteuerung einer automatisierten anlage auf die steuerungskomponenten
DE102018111930A1 (de) Verfahren zum Bearbeiten eines Softwareprojekts
EP2216696B1 (de) Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls
EP0801340A1 (de) Verfahren und Vorrichtung zur Steuerung einer Werkzeugmaschine, insbesondere einer Funkenerosionsmaschine
EP1950635B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
EP2126643B1 (de) Verfahren zum austausch von strukturkomponenten für ein automatisierungssystem
EP2018604B1 (de) Verfahren zum betreiben eines steuergeräts
EP3285162A1 (de) Verfahren zum projektieren eines projektes sowie anordnung zur durchführung des verfahrens
EP3973363B1 (de) Computerimplementiertes verfahren zur rechnergestützten erzeugung eines ausführbaren steuerungsprogramms zur steuerung und/oder regelung eines technischen prozesses
EP1947536B1 (de) Verfahren zur Konfigurationsänderung eines laufenden Automatisierungsgerätes
DE102007045602A1 (de) Programmiersystem
EP1179428B1 (de) Verfahren und Vorrichtung zum Abarbeiten von Verfahrensschritten
EP1331534A2 (de) Automatisierungssystem und Verfahren zur Erzeugung einer Dokumentation
EP1226473A2 (de) Zustandssteuerung von technischen systemen
EP1183577A1 (de) Verfahren zur erzeugung eines steuerbausteins und steuerbaustein
EP3948449B1 (de) Verfahren und engineering-system zur änderung eines programms einer industriellen automatisierungskomponente
DE102021133935A1 (de) Technik zur Parametrierung und/oder Konfiguration für eine auf einer speicherprogrammierbaren Steuerung basierenden Vorrichtung
DE102018123410A1 (de) Verfahren und Vorrichtung zur Überwachung einer Motorsteuerung
EP2075693A1 (de) Automatisierungsgerät und Verfahren zur Aktualisierung von Daten eines Automatisierungsgeräts

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080312

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

AKX Designation fees paid

Designated state(s): DE FR GB IT

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

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

Owner name: SIEMENS AKTIENGESELLSCHAFT

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 FR GB IT

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 502007011742

Country of ref document: DE

Effective date: 20130711

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: 20140218

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 502007011742

Country of ref document: DE

Effective date: 20140218

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 10

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 11

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 12

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

Ref country code: IT

Payment date: 20230523

Year of fee payment: 17

Ref country code: FR

Payment date: 20230515

Year of fee payment: 17

Ref country code: DE

Payment date: 20220620

Year of fee payment: 17

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

Ref country code: GB

Payment date: 20230605

Year of fee payment: 17