Method for updating a control program of an automation system, involving a data migration process for the program state of the control program
The method for data migration of program states in automation systems allows for updating control programs without interruption by using a migration algorithm that identifies and adjusts modified values, ensuring a seamless transition from an old to a new version of the control program.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- BECKHOFF AUTOMATION GMBH
- Filing Date
- 2025-10-29
- Publication Date
- 2026-05-15
AI Technical Summary
Existing automation systems require a method to update control programs while maintaining the current state of the system without a complete restart, ensuring seamless transition from an old version to a new version of the control program.
A method for data migration of the program state from an A-control program to a B-control program using a migration algorithm that allows simultaneous execution of the A-control program and partial data migration, identifying and adjusting only modified values during the process.
Enables the update of control programs without interrupting the automation system, ensuring the new program state accurately reflects the current system state by efficiently mapping and adjusting values, thus maintaining continuous operation.
Smart Images

Figure EP2025081262_15052026_PF_FP_ABST
Abstract
Description
[0001] Beckhoff Automation GmbH BIE 19.189-PC
[0002] title
[0003] Method for updating a control program of an automation system with data migration of a program state of the control program
[0004] Description
[0005] The invention relates to a method for updating a control program of an automation system with simultaneous migration of data describing a program state of the control program.
[0006] The patent application claims priority from German patent application 10 2024 132 902.5, the disclosure content of which is hereby incorporated by reference.
[0007] In automation technology, components of an automation system are typically controlled and read by a control unit of the automation system through the cyclical execution of a corresponding control program. During the cycles in which the respective components are controlled according to the respective control instructions of the control program, the control unit receives and stores information describing the state of the automation system and the control program (hereinafter referred to as program state).
[0008] A so-called program state comprises all the information necessary to represent the state of the automation system and the control program. A program state can include, for example, the variables, functions, databases, or other objects used in the control program.
[0009] Furthermore, the program state can include information regarding the participants of the automation system or regarding processes taking place in the automation system.
[0010] Such a program state can be recreated after the completion of a control cycle, so that the current state of the automation system and the control program can be displayed at any time. The program state is the content of a corresponding global memory area. Beckhoff Automation GmbH BIE 19.189-PC
[0011] During the execution of a control program cycle, the memory can be modified (possibly multiple times). With each memory modification, the state of the automation system and the control program can change. Invalid intermediate states may occur. At the end of the cycle, the program state is consistent and remains so until the start of the next execution cycle.
[0012] When the control program is executed again in a subsequent control cycle, the control program can access the data stored in the program state in a previous cycle and thus continue the control unit of the automation system in the following cycle based on the state of the automation system of the previous control cycle.
[0013] During the ongoing operation of an automation system, situations often arise in which various parameters need to be readjusted or processes need to be changed or adapted in order to achieve or ensure an optimized operation of the automation system.
[0014] In this context, it is often necessary during ongoing operations to replace a currently running tax program with a more up-to-date version that takes the necessary adjustments into account.
[0015] In order to avoid restarting the automation system after replacement and instead to continue operating the automation system in its current state, the current version of the control program must be able to access the program state information, which describes the state of the control program and the automation system at the time of the last executed control cycle.
[0016] Only in this way can it be ensured that, when the current and saved version of the control program is executed, the automation system can continue to be controlled from its current state, thus avoiding a complete restart of the automation system. Beckhoff Automation GmbH BIE 19.189-PC
[0017] 3
[0018] It is therefore necessary to adapt the program state information to the current version of the control program and the changes made therein, so that if the adaptation is successful, the current control program can access the information of the previously stored program state and control the automation system in its current state.
[0019] It is therefore an object of the invention to provide an improved method for updating a control program of an automation system with simultaneous transmission of a current program state.
[0020] The problem is solved by a method according to the independent claim. Preferred embodiments are specified in the dependent claims.
[0021] According to one aspect, a method for updating a control program of an automation system with data migration of a program state of the control program is provided, wherein a control unit of the automation system comprises an A-control program and a B-control program, wherein the A-control program is executed to control the automation system, wherein the B-control program is a version of the A-control program, wherein an A-program state of the A-control program is stored in an A-memory area of the control unit, wherein a B-program state of the B-control program is stored in a B-memory area, wherein the A-program state is stored in the form of an A-data structure comprising a plurality of A-data elements, wherein the B-program state is stored in the form of a B-data structure comprising a plurality of B-data elements, wherein the A-data elements represent components of the A-control program.wherein the B data elements represent components of the B control program, wherein the A data elements of the A program state comprise values of the components of the A control program, wherein the values of the data elements of the A program state represent a current state of the automation system controlled by the execution of the A control program, comprising:
[0022] Executing a data migration from program state A to program state B using a migration algorithm in a single migration step, whereby the data migration transfers the values of the respective components of the A control program stored in the A data elements of program state A to corresponding components of the B control program. Beckhoff Automation GmbH BIE 19.189-PC
[0023] 4. The B-data elements representing the B-program state are mapped, and the A-control program continues to be executed during the migration step;
[0024] Identifying at least one A-data element with a modified value of the A-program state by the migration algorithm in an identification step, wherein the at least one modified value of the at least one identified A-data element was modified by the execution of the A-control program during the execution of the migration step; and
[0025] Execution of a partial data migration by the migration algorithm in a partial migration step, wherein in the partial data migration the at least one adapted value of the at least one A data element is mapped into the B data element associated with the A data element of the B program state.
[0026] This allows for the technical advantage of providing an improved method for updating a control program of an automation system with data migration of a program state of the control program.
[0027] In a situation where an A-control program of the automation system is to be replaced by a B-control program of the automation system for controlling the automation system, wherein the A-control program and the B-control program have each resulted from each other through at least one adaptation process, it can be achieved that, simultaneously with an execution of the A-control program for controlling the automation system, an A-program state of the A-control program can be mapped into a B-program state of the B-control program.
[0028] The B tax program may have been created by modifying the A tax program, or vice versa. The two tax programs therefore represent different versions of the tax program and yet share similarities.
[0029] To migrate the information from the A-program state of the A-control program to the B-program state of the B-control program, the execution of the A-control program for controlling the automation system does not necessarily have to be stopped or terminated. Instead, simultaneous execution of the A-control program and the data migration of the A-program state is possible. Beckhoff Automation GmbH BIE 19.189-PC
[0030] 5
[0031] For this purpose, a migration is first performed by mapping the values of the A-data elements of the entire A-program state into the corresponding B-data elements of the B-program state of the B-control program that are associated with the A-data elements of the A-program state.
[0032] Since the A-control program continues to run to control the automation system during the execution of the migration step, adjustments to the A-program state can occur during the execution of the migration step, i.e., during the data migration of the values of the A-data elements of the current A-program state.
[0033] By executing the A-control program, adjustments to the values of the A-program state stored in the A-data elements can occur, by writing the changed values of the components of the A-control program into the A-program state during the execution of the A-control program and the correspondingly controlled automation process.
[0034] The A data elements of the A program state represent components of the A control program, such as variables, functions, databases, or other elements required for the execution of the A control program.
[0035] The corresponding values of the A data elements of the A program state thus represent values of the components of the A control program, i.e., the variables, functions or other elements, and reflect the current state of the automation system or automation process controlled by the execution of the A control program.
[0036] When the A-control program is executed and the automation system is controlled, for example by reading sensor values and / or controlling actuator units, the current state of the controlled automation system is adjusted accordingly by writing the new values of the components of the A-control program into the A-program state.
[0037] The adjustment of the current state of the automation system is reflected by a corresponding adjustment of the A-program state, in which the values of the A-data elements of the A-program state are adjusted accordingly. Beckhoff Automation GmbH BIE 19.189-PC
[0038] By executing the A control program during the execution of the migration step, adjustments can be made to the values of the A data elements of the A program state compared to the values that were mapped to the B data elements of the B program state during the data migration when the migration step was executed.
[0039] The adjustment of the values of the A data elements of the A program state includes at least that during the execution of the data migration of the A program state, values were written again into the respective A data elements of the A program state.
[0040] The rewritten values are interpreted accordingly as adjusted values. An actual change to the respective value may be caused by the adjusted value. However, the adjusted value may also be identical to the older value of the respective A data element.
[0041] Due to the simultaneous execution of the data migration by executing the migration step and the execution of the A control program, the situation can now arise that after completion of the migration step, i.e., after complete mapping of the values of the A data elements of the A program state into the B data elements of the B program state, individual values of individual A data elements have been adjusted.
[0042] This can result in the values mapped to the B data elements of the B program state during the migration step no longer fully matching the adjusted values stored in the A data elements of the A program state.
[0043] The data migration of the A-program state of the A-control program to the B-program state of the B-control program, based solely on the execution of the migration step, could therefore be incomplete, since after completion of the migration step the current values of the A-program state might not match the values of the B-program state.
[0044] To resolve this problem, the migration algorithm used to perform the data migration first executes an identification step. (Beckhoff Automation GmbH BIE 19.189-PC)
[0045] 7
[0046] In the identification step, at least one A-data element of the A-program state is identified, the value of which was adjusted during the execution of the migration step by the execution of the A-control program compared to the value that was mapped by the migration algorithm during the migration step into the correspondingly associated B-data element of the B-program state.
[0047] In the identification step, after the migration step has been executed, the A data elements of the A program state are identified into which values were written again during the execution of the data migration.
[0048] The respective A data elements may therefore, after completion of the migration step, have values that differ from the values that were mapped to the B data elements of the B program state associated with the A data elements by executing the migration step.
[0049] The identification step thus identifies the A-data elements of the A-program state that potentially cause a deviation of the A-program state after execution of the migration step from the B-program state generated by the execution of the migration step.
[0050] After the migration algorithm has identified the A data elements with adapted values in the identification step, the migration algorithm then migrates at least the adapted values of the A data elements identified in the identification step in a sub-migration step and maps them to the B data elements of the B program state associated with the identified A data elements.
[0051] By performing the partial migration step, a substantial improvement in the data migration from the A-program state of the A-control program to the B-program state of the B-control program can be achieved.
[0052] The execution of the A control program can continue during the execution of the identification step and / or during the execution of the partial migration step. Beckhoff Automation GmbH BIE 19.189-PC
[0053] 8
[0054] According to one embodiment, in the partial migration step only the at least one adapted value of the at least one identified A-data element is migrated.
[0055] This can achieve the technical advantage of further improving the data migration from program state A to program state B.
[0056] In the partial migration step, only the adapted values of the A-data elements identified by the migration algorithm in the identification step are migrated and mapped into the B-data elements of the B-program state associated with the identified A-data elements.
[0057] According to the invention, the time required to execute the migration step or partial migration step is directly related to the number of values of the A-data elements to be migrated or the number of adjusted values of the A-data elements.
[0058] In the migration step, a complete migration of the A program state is performed. This involves migrating all values of the A data elements of the A program state for which a corresponding associated B data element exists and / or is planned in the B program state.
[0059] Since the B control program is based on the A control program, the B control program can include all components of the A control program. The corresponding B program state can therefore include a corresponding B data element for each A data element of the A program state.
[0060] In such a case, during the migration step, each value of each A-data element of the A-program state would be migrated and mapped to the B-data element of the B-program state that corresponds to the A-data element of the A-program state.
[0061] Depending on the execution of the B control program, for some A data elements of the A program state, there may be no corresponding B data elements in the B program state.
[0062] In the migration step, the values of the A data elements of program state A are migrated for which a corresponding B data element exists in program state B. Beckhoff Automation GmbH BIE 19.189-PC
[0063] If, in the partial migration step, only the adapted values of the A-data elements identified in the identification step are migrated and mapped into corresponding B-data elements, the time required to execute the partial migration step can be substantially less than the time required to execute the migration step by performing the complete migration of the A-program state.
[0064] Depending on the execution of the A-control program, and depending on the state of the automation system to be controlled, a different number of values of a different number of A-data elements can be adjusted by executing the A-control program during the execution of the migration step.
[0065] In extreme cases, during the execution of the migration step, all values of all data A data elements of the A program state or no value of any A data element of the A program state may be adjusted.
[0066] In reality, during the execution of the migration step, values of a number of A-data elements are adjusted, which are greater than 0 and less than the total number of all A-data elements of the A-program state.
[0067] In the event that during the execution of the migration step all values of all A-data elements of the A-program state are adjusted and, accordingly, in the identification step all A-data elements of the A-program state are identified that have correspondingly associated B-data elements in the B-program state, then a complete migration of the A-program state corresponding to the migration in the migration step is required in the partial migration step.
[0068] If, during the execution of the migration step, no value of any A-data element of the A-program state is adjusted by the execution of the A-control program, then no A-data element of the A-program state will be identified in the identification step.
[0069] Accordingly, in the partial migration step, no adjusted value of an A-data element of the A-program state is migrated and mapped to the corresponding B-data element of the B-program state. In this case, the data migration would be completed with the execution of the partial migration step. Beckhoff Automation GmbH BIE 19.189-PC
[0070] 10
[0071] In the event that, during the execution of the migration step, values of a number of A-data elements are adjusted by executing the A-control program, which is greater than zero and less than the total number of all A-data elements of the A-program state, only these A-data elements are identified in the identification step.
[0072] In the partial migration step, a number of values from a number of A data elements are migrated and mapped into corresponding B data elements, which is substantially smaller than the total set of all A data elements of the A program state that have corresponding B data elements in the B program state.
[0073] The execution time of the partial migration step is therefore correspondingly shorter than the execution time of the migration step.
[0074] When the A control program is executed simultaneously during the execution of the identification step and the partial migration step by the migration algorithm, the shorter execution time of the partial migration step means that fewer A data elements are provided with appropriately adjusted values.
[0075] By executing the partial migration step, the difference between the A program state and the B program state after execution of the partial migration step can thus be reduced compared to the difference between the A program state and the B program state after execution of the migration step.
[0076] Depending on the execution duration of the partial migration step, it can be ensured that no further adjustments to the values of the A data elements of the A program state are generated during the execution of the identification step and the partial migration step by simultaneously executing the A control program.
[0077] In this case, the data migration would be complete after the partial migration step, since the A program state would then match the B program state. Beckhoff Automation GmbH BIE 19.189-PC
[0078] 11
[0079] Mapping the values and / or adjusted values of the A data elements to their respective B data elements can include changing the representation of the respective values or adjusted values. For example, integer values can be represented as float values.
[0080] According to one embodiment, the method further comprises:
[0081] Determining the migration progress of the migration from program state A to program state B according to a predefined progress criterion by the migration algorithm in a progress determination step.
[0082] This can achieve the technical advantage of further improving the data migration from program state A to program state B.
[0083] For this purpose, the migration progress is checked after the execution of each partial migration step. The success of the completed data migration can be evaluated based on this progress.
[0084] Taking into account the progress of the migration, any further steps that may be required for the successful completion of the data migration can be taken.
[0085] The goal of data migration is to completely map the A program state to the B program state. Complete mapping means that the values of the A data elements of the A program state, for which a corresponding B data element exists in the B program state, are mapped to the corresponding B data elements of the B program state.
[0086] According to one embodiment, the identification step and the partial migration step are repeated if the progress criterion exceeds a first predefined limit and falls below a second predefined limit that differs from the first predefined limit.
[0087] This offers the technical advantage of further improving data migration. Beckhoff Automation GmbH BIE 19.189-PC
[0088] 12
[0089] The progress criterion represents a numerical value for the degree of agreement between the A-program state and the B-program state achieved through data migration.
[0090] Alternatively or additionally, the progress criterion can represent a numerical value for an approach to or a distance from the agreement between the A-program state and the B-program state achieved through data migration.
[0091] By taking the migration progress into account in the form of the progress criterion, an iterative execution of the partial migration step can be carried out depending on the determined progress criterion.
[0092] As explained above, by shortening the execution time of the partial migration step through the simultaneous execution of the A control program during the execution of the identification step and the partial migration step, thus providing a smaller number of A data elements of the A program state with adapted values, it can be achieved that in the partial migration steps an ever-decreasing number of adapted values of the respective A data elements have to be migrated and mapped into the corresponding B data elements.
[0093] This in turn further reduces the execution time required to carry out the partial migration steps.
[0094] By repeatedly executing the identification and partial migration steps, the execution times of the individual partial migration steps can be further reduced. This ensures that, after the completion of a partial migration step, no further A-data elements are assigned adjusted values by the execution of the A-control program, or that the number of A-data elements with adjusted values is reduced to such an extent that this result can be interpreted as a successful data migration. In this case, the data migration can be completed.
[0095] By repeatedly executing the identification step and the partial migration step depending on the migration progress, the execution time required for the partial migration step can be continuously reduced (Beckhoff Automation GmbH BIE 19.189-PC).
[0096] 13
[0097] A gradual approximation of the migrated B-program state to the A-program state of the simultaneously executed A-control program can be achieved.
[0098] The data migration can therefore be successfully completed without interrupting the execution of the A tax program.
[0099] According to one embodiment, the method further comprises:
[0100] Completion of the data migration and / or partial data migration of the A program state to the B program state by the migration algorithm in a migration completion step, if the progress criterion reaches or falls below the predefined first threshold.
[0101] This can achieve the technical advantage of enabling further improvements in data migration.
[0102] The data migration or partial migration can therefore be successfully completed after executing a partial migration step if the progress criterion reaches or falls below the first predefined threshold.
[0103] The achievement or falling below of the first predefined limit value by the progress criterion is thus interpreted as the correspondence of the A program state with the B program state achieved through the migration.
[0104] By appropriately setting the first predefined limit value, a clear criterion for the successful completion of the data migration can be achieved, taking into account the progress criterion, after possibly multiple executions of the partial migration step.
[0105] According to one embodiment, the method further comprises:
[0106] Aborting the data migration and / or partial data migration from program state A to program state B by the migration algorithm in a migration abort step if the progress criterion reaches or exceeds the second predefined threshold. Beckhoff Automation GmbH BIE 19.189-PC
[0107] 14
[0108] This offers the technical advantage of enabling further improvements to data migration. Reaching and exceeding the predefined second threshold through the progress criterion is interpreted as a failure of the data migration.
[0109] For example, if during the execution of the identification step and partial migration step, so many A-data elements are provided with adjusted values by executing the A-control program that the execution times of the subsequently executed partial migration steps are not substantially reduced and may even be increased, then the iterative execution of the partial migration steps cannot approximate the B-program state achieved through migration to the A-program state, which is constantly changing due to the simultaneous execution of the A-control program.
[0110] In such a case, further iterative execution of the partial migration steps may not improve the approximation of the B program state to the A program state.
[0111] By aborting the data migration, which cannot lead to a successful match between the B program state and the A program state during simultaneous execution of the A control program, unnecessary use of computing capacity can be avoided.
[0112] According to one embodiment, the method further comprises:
[0113] Interrupting the execution of the A-control program and generating an execution interruption of the execution of the A-control program in an interruption step if the progress criterion reaches or exceeds the second predefined limit, wherein the identification step and the partial migration step are executed during the interruption of the execution of the A-control program.
[0114] This offers the technical advantage of enabling further improvements to data migration. As an alternative to aborting the data migration, the execution of the A-control program is interrupted if the progress criterion reaches or exceeds the predefined second threshold.
[0115] Data migration, through re-execution of the identification and partial migration steps, continues even if the A-control program is interrupted. Beckhoff Automation GmbH BIE 19.189-PC
[0116] 15
[0117] Since no further adjustments to the values of the A data elements of the A program state occur when the execution of the A control program is interrupted, the data migration can be completed by another execution of the partial migration step and the B program state can be brought into alignment with the A program state.
[0118] Although this requires an interruption in the execution of the A tax program, a successful data migration can still be achieved.
[0119] In this case, reaching or exceeding the predefined second limit value by the progress criterion is again equated with the fact that, through the simultaneous execution of the A control program during the execution of the partial migration step, so many A data elements are provided with adjusted values that a substantial reduction in the execution time of the following partial migration steps cannot be achieved, and thus no approximation of the B program state to the A program state can be achieved through the iterative execution of the partial migration steps.
[0120] According to one embodiment, the progress criterion is defined as a number of A-data elements with adapted values in the A-program state and / or as a change in the number of A-data elements with adapted values in the A-program state between successive migration steps and / or partial migration steps.
[0121] This offers the technical advantage that the progress criterion provides a clearly defined progress in data migration.
[0122] By defining the progress criterion as the number of A-data elements whose values were adjusted by the execution of the A-control program during the identification and partial migration steps, a clear progress of the data migration can be represented. Beckhoff Automation GmbH BIE 19.189-PC
[0123] 16
[0124] Data migration progresses if, during the execution of the partial migration steps, a sufficiently small number of A data elements are provided with adjusted values, or if no A data element is adjusted accordingly.
[0125] The predefined first limit can therefore be defined as a correspondingly small number of adapted A-data elements that should correspond to a successful A-data migration.
[0126] Accordingly, a high number of A-data elements that are assigned adjusted values during the execution of the identification step and partial migration step can be identified as a deterioration of the data migration.
[0127] The predefined second limit is accordingly equated with a high number of adapted A-data elements.
[0128] Alternatively or additionally, the progress criterion can be equated with a change in the number of A data elements that have been provided with adjusted values during the execution of at least two successive partial migration steps.
[0129] If the number of A data elements assigned adjusted values during the execution of two consecutive partial migration steps decreases, this is equivalent to positive progress in the data migration.
[0130] If, however, the number does not change or increases during the successive execution of several partial migration steps, this is equivalent to negative progress or a deterioration of the data migration.
[0131] The predefined first limit for the progress criterion is equated here with a reduction in the number of A-data elements that are provided with adjusted values during the execution of several partial migration steps.
[0132] The predefined second limit, however, is determined by whether the number of A-data elements remains constant or increases, as these elements are assigned appropriately adjusted values during the execution of several successive partial migration steps. Beckhoff Automation GmbH BIE 19.189-PC
[0133] 17
[0134] According to one embodiment, the progress determination step includes:
[0135] Determining the number of A data elements with adjusted values in the A program state after execution of the partial migration step and / or determining the change in the number of A data elements with adjusted values in the A program state after execution of the data migration step and after execution of the partial migration step or after execution of two consecutively executed partial migration steps in one count determination step.
[0136] This allows for the technical advantage of precisely considering the progress criterion to assess migration progress.
[0137] According to one embodiment, the progress criterion is defined as an execution duration of the execution of the partial migration step and / or as a change in the execution durations of the executions of temporally successive partial migration steps.
[0138] This allows for the technical advantage that the execution time required for the partial migration steps can be used as a progress criterion to precisely determine the migration progress.
[0139] Positive progress in the migration can be equated with a short execution time for the sub-migration steps, and negative progress or a deterioration of the migration can be equated with a longer execution time for the sub-migration steps.
[0140] As explained above, the execution time of the partial migration steps is directly proportional to the number of customized A-data elements to be migrated. A smaller number of customized A-data elements to be migrated therefore results in a shorter execution time, and a correspondingly larger number of A-data elements to be migrated results in a correspondingly longer execution time.
[0141] The first predefined limit value can be equated with a short execution time, while the second predefined limit value can be equated with a correspondingly long execution time. Beckhoff Automation GmbH BIE 19.189-PC
[0142] 18
[0143] Alternatively or additionally, the progress criterion can be equated with a change in the execution time of several successively executed partial migration steps.
[0144] If the execution time of the successively performed partial migration steps decreases, this is equivalent to a decrease in the number of A data elements whose values are migrated in the individual partial migration steps.
[0145] A decreasing execution time of the sequentially executed partial migration steps thus allows, with iterative execution of the partial migration steps, a gradual approximation of the B program state to the A program state. This is equivalent to positive progress in the data migration.
[0146] The first predefined limit for the progress criterion can accordingly be equated with a decreasing execution time.
[0147] If, however, the execution time of successively executed partial migration steps stagnates or increases, the number of A data elements to be migrated cannot be reduced by iteratively executing the partial migration steps, and an adaptation of the B program state to the A program state cannot be achieved by further executing additional partial migration steps.
[0148] The predefined second limit value can accordingly be equated with a stagnation or increase in execution times.
[0149] The progress criterion used to determine migration progress can be changed between successive sub-migration steps. For example, the progress criterion for one sub-migration step could be defined as the number of modified A-data elements, and for the subsequent sub-migration step, the progress criterion could be defined as the change in the execution durations of the sub-migration steps. This would require a corresponding adjustment of the threshold values used.
[0150] According to one embodiment, the progress determination step includes: Beckhoff Automation GmbH BIE 19.189-PC
[0151] 19
[0152] Determining the duration of the execution of the partial migration step and / or determining a change in the durations of the executions of the migration step and the partial migration step or the executions of two successively executed partial migration steps by a timing module in a duration determination step.
[0153] This allows for the technical advantage that the migration progress of the data migration can be clearly determined by measuring the execution durations using the timing module.
[0154] According to one embodiment, the identification step comprises:
[0155] Reading a write information by the migration algorithm in a read step, wherein at least the A data element with an adjusted value is displayed in the write information.
[0156] This allows for the technical advantage that by reading the write information through the migration algorithm, a unique identification of the A-data elements is possible, whose values were adjusted during the execution of the migration step or during the execution of a temporally preceding partial migration step.
[0157] According to one embodiment, during the execution of the A-control program, a write function writes to the write information, wherein by writing to the write information, the write function identifies A-data elements of the A-program state whose values were adapted by executing the A-control program during the execution of the migration step and / or the identification step and / or the partial migration step.
[0158] This allows the technical advantage that the write information can be constantly updated during the execution of the A-control program using the write function.
[0159] The write function writes the A data elements, whose values were adjusted during the execution of the A control program, into the write information simultaneously with the execution of the A control program. Beckhoff Automation GmbH BIE 19.189-PC
[0160] 20
[0161] As soon as a value of a component of the A control program is changed by executing the A control program and the corresponding value of the A data element representing the component in the A program state is adjusted, corresponding information is stored in the write information by the write function.
[0162] This ensures that the write information is constantly up-to-date with regard to the A-data elements that have been updated with adjusted values by executing the A-control program. By reading the write information, the migration algorithm can therefore directly identify the A-data elements with adjusted values.
[0163] According to one embodiment, the write information is generated by the write function when the migration step is executed.
[0164] This allows for the technical advantage that the write information includes the information relevant to the migration algorithm.
[0165] For the migration algorithm, only the adjustments to the values of the A data elements that were made during or after the migration step are relevant. Because the write information is only generated when the migration step is executed, adjustments to the values of the A data elements of the A program state, which occur continuously during the execution of the A control program but would be made before the migration step and are therefore irrelevant for data migration, are not taken into account.
[0166] If no data migration is performed, no write information needs to be processed by the write function. This saves processing power and storage capacity.
[0167] According to one embodiment, the write function continuously writes to the write information, wherein the write function marks the A-data elements in the write information as soon as the values of the respective A-data elements are adjusted in the A-program state by executing the A-control program.
[0168] This allows the technical advantage to be achieved by continuously writing the write function to the write information during the execution of the A- Beckhoff Automation GmbH BIE 19.189-PC
[0169] 21
[0170] During the execution of the migration step or sub-migration steps, the control program ensures that the write information is constantly updated with respect to the adjusted values of the A data elements of the A program state.
[0171] As soon as an A-data element of the A-program state is assigned a modified value during the execution of the migration step or one of the sub-migration steps, the write function stores corresponding information in the write information, on the basis of which the respective A-data element can be identified.
[0172] This allows the migration algorithm to identify, at any time, the A data elements that were assigned a modified value during the execution of the migration step or one of the sub-migration steps by reading the write information.
[0173] According to one embodiment, during a cyclic execution of the A-control program in execution cycles, the write function writes to the write information at predefined write times, wherein the predefined write times include times from the following list: beginning of the execution cycle, end of the execution cycle, defined time within the execution cycle, in an execution pause between execution cycles.
[0174] This offers the technical advantage that by writing the information at predefined times using the write function, the handling of the write function can be simplified.
[0175] If the write function continuously writes the corresponding information into the write information simultaneously with the adjustment of the values of the A data elements in the A program state, and the migration algorithm only reads the write information after completion of the previous migration step or sub-migration step, then many adjustments can be taken into account in the write information that are ultimately not read out by the migration algorithm.
[0176] For example, during the execution of the migration step or a sub-migration step, a specific A-data element can be modified by executing the A-control program. Beckhoff Automation GmbH BIE 19.189-PC
[0177] 22 grams can be assigned multiple times with adjusted values. The corresponding information is thus transferred or overwritten multiple times by the write function.
[0178] However, if the migration algorithm reads the write information at a predefined time, it will not detect multiple overwrites of the information in the write information regarding the repeatedly modified A data element. Instead, the migration algorithm only sees the latest version of the write information.
[0179] By writing the write information at predefined times, it is possible to reduce or avoid multiple overwriting of information within the write information.
[0180] According to one embodiment, after the migration algorithm has read the write information, the information read is marked as read or deleted.
[0181] This achieves the technical advantage of preventing the migration algorithm from re-identifying an A-data element already identified in a previous identification step when the identification step is executed multiple times and the write information is read multiple times, without the value of the respective A-data element being adjusted again in a subsequent identification step.
[0182] By marking or deleting information already read by the migration algorithm in a previous identification step, i.e., in a previous reading of the write information, it can be ensured that when the identification step is executed multiple times by the migration algorithm, only relevant information is read when the write information is read.
[0183] This prevents A-data elements from being identified multiple times when the identification step is executed multiple times and accordingly from being included in the multiple Beckhoff Automation GmbH BIE 19.189-PC entries.
[0184] 23
[0185] Executing the partial migration step results in the corresponding values being migrated multiple times without any multiple adjustments being made to the respective values.
[0186] According to one embodiment, the write information is designed in list form, wherein the write information lists names and / or memory addresses in the A memory area of the A data elements with adapted values of the A program state.
[0187] This allows the technical advantage that by listing the names and / or storage addresses of the respective A-data elements with adapted values in the write information, the respective A-data elements can be uniquely identified by the migration algorithm.
[0188] According to one embodiment, the write information is designed in the form of a bit sequence, wherein the bit sequence indicates A-data element memory areas of the A-data elements with adapted values of the A-program state.
[0189] This allows for the technical advantage that, by designing the write information as a bit sequence in which the A-data elements are identified with adapted values in the form of A-data element memory areas in the respective A-data elements in the A-program state, a technically simple design of the write information can be provided.
[0190] By specifying the A data element memory areas in which the respective A data elements are stored, a unique identification of the A data elements with adapted values is made possible.
[0191] According to one embodiment, the A-data element memory area displayed for an A-data element with an adapted value is configured as a contiguous memory area and, in addition to a memory address of the A-data element with an adapted value, includes at least one memory address of another A-data element without an adapted value of the A-program state in the A-memory area. During partial data migration, the unadapted value of the first A-data element and the adapted value of the first A-data element of the A-data elements arranged in the respective displayed A-data element memory area are migrated. Beckhoff Automation GmbH BIE 19.189-PC
[0192] 24
[0193] This offers the technical advantage of simplifying identification and partial migration steps.
[0194] For this purpose, the A data element memory areas specified in the write information for identifying the A data elements with adjusted values are not reduced to the memory areas of the respective A data elements.
[0195] Instead, memory areas are specified that encompass a plurality of A-data elements. By thus reducing the resolution of the memory areas over which the A-data elements with adapted values are identified, the handling of the migration in the partial migration steps of the identified A-data elements is simplified.
[0196] Instead of identifying the A data elements individually, the migration algorithm directly migrates contiguous memory areas containing multiple A data elements.
[0197] According to one embodiment, a first write information and a second write information are generated in the A memory area and / or in the B memory area, wherein simultaneously the migration algorithm reads the first write information and identifies A data elements marked therein with adapted values, and the write function marks the A data elements with values adapted by the execution of the A control program during the reading of the first write information and / or the execution of the partial migration step.
[0198] This allows the technical advantage that, by taking into account the first write information and the second write information, simultaneous writing of the write function and reading of a second write information is possible via the migration algorithm.
[0199] The write information can therefore be updated at any time with adjusted values via the write function, even when the migration algorithm is reading the data. Beckhoff Automation GmbH BIE 19.189-PC
[0200] 25
[0201] The write information provides the information of the A-data elements that were adapted during the execution of the last migration step or partial migration step and the associated identification step.
[0202] The write information can be in the form of a data unit that can be read by the migration algorithm, for example a file or a readable storage area.
[0203] According to one embodiment, when the identification step and partial migration step are executed multiple times, the write function alternately writes to the first write information and the second write information, and the migration algorithm alternately reads the other of the first and second write information.
[0204] This allows the technical advantage to be achieved that, by alternating between writing the write function to one of the first or second write information and reading the other second or first write information, the migration algorithm can always obtain the current information regarding the A-data elements with adapted values from the respective first (or second) write information and identify the corresponding A-data elements via this.
[0205] In particular, with cyclical execution of the A control program, the execution cycles can thus write the write function into the first write information in one execution cycle and the migration algorithm read the second write information, and in the following execution cycle write the write function into the second write information and the migration algorithm read the first write information.
[0206] According to one embodiment, the migration algorithm comprises a plurality of migration functions, each configured to read the values of the A-data elements and / or the adapted values of the A-data elements of the A-program state and write them to the respective B-data elements of the B-program state associated with the A-data elements, and wherein, in the partial migration step, only those migration functions of the migration algorithm provided for migrating the A-data elements identified in the identification step are executed. Beckhoff Automation GmbH BIE 19.189-PC
[0207] 26
[0208] This allows for the technical advantage that the migration functions of the migration algorithm enable a unique migration, i.e., mapping of the values of the A data elements to corresponding B data elements of the B program state, by executing the corresponding migration functions.
[0209] The migration functions can be configured or restricted to reading only specific A-data elements and writing the corresponding values to the associated B-data elements. The migration function can be defined for each individual A-data element.
[0210] Alternatively or additionally, the migration functions can be defined on the respective data structures of the individual A data elements or B data elements.
[0211] By dividing the functional algorithm into individual migration functions, a fast and unambiguous migration of the A program state to the B program state is enabled by mapping the respective values of the A data elements to the correspondingly associated B data elements.
[0212] By executing the various migration functions according to the execution order, efficient execution of the migration functions and thus efficient data migration is enabled.
[0213] According to one embodiment, the migration functions of the migration algorithm are executed sequentially according to an execution sequence, whereby the execution of the migration functions used to migrate A-data elements not identified in the identification step is skipped in the execution sequence.
[0214] This allows the technical advantage to be achieved by skipping the migration functions that are not required, ensuring that only the A-data elements identified in the identification step are read and the correspondingly adjusted values of the data element are migrated.
[0215] By skipping the migration functions intended for data elements or data structures that were not identified in the identification steps, it is possible to ensure that only the migration functions Beckhoff Automation GmbH BIE 19.189-PC are executed.
[0216] 27 during the execution of the migration algorithm, which is intended to migrate the respective identified A-data elements.
[0217] This avoids unnecessary migration of values that have not been adapted and therefore do not need to be migrated.
[0218] According to one embodiment, the identification step and partial migration step are automatically executed immediately after completion of the migration step or after completion of the partial migration step that was executed immediately beforehand.
[0219] This offers the technical advantage that by executing the identification step and the partial migration step automatically and immediately after completion of the migration step or after completion of a previously executed partial migration step, the execution of the migration algorithm can be accelerated.
[0220] The migration algorithm therefore does not wait for a request to execute further partial migration steps after completion of the migration step or a temporally preceding partial migration step.
[0221] Instead, after completion of the migration step or an earlier partial migration step, the identification step is executed immediately, followed by the subsequent partial migration step.
[0222] If no new A-data elements with adjusted values are identified in the identification step, i.e., if no A-data elements are marked as having adjusted values in the write information, then the data migration is subsequently completed.
[0223] In the automatically executed identification step, however, if new A-data elements with adjusted values are identified—that is, if the write information includes at least one A-data element marked as having an adjusted value—then the data migration continues according to the progress criterion by executing further partial migration steps, by aborting the data migration, or by interrupting the execution of the A-control program. Beckhoff Automation GmbH BIE 19.189-PC
[0224] 28
[0225] According to one embodiment, the identification step and partial migration step are executed in cyclic execution of the A control program in execution cycles starting from a predefined execution time, where the predefined execution time is a time from the following list: beginning of an execution cycle, end of an execution cycle, predefined time within an execution cycle.
[0226] This offers the technical advantage that by executing the identification step and the partial migration step at predefined execution times, the data migration can be better controlled in terms of timing and adapted to the execution of other processes.
[0227] Especially when the A-control program is executed cyclically in execution cycles, the execution of the partial migration steps can be scheduled for corresponding execution times.
[0228] This can be particularly advantageous if the writing to the write information by the write function for marking the A data elements with adjusted values also takes place at predetermined times.
[0229] The execution of the identification step can therefore be time-aligned by appropriately selecting the respective execution time to coincide with the writing of the information to the write information by the write function.
[0230] According to one embodiment, in a cyclic execution of the A-control program in execution cycles, the migration step and / or the partial migration step are executed during an execution pause or during several execution pauses between successive execution cycles.
[0231] This achieves the technical advantage that by executing the migration step and / or partial migration steps during pauses between execution cycles of the cyclic execution of the A-control program, no further adjustments to the values of the A-data elements can be made during the execution of the migration step and / or partial migration steps within the pauses between the execution cycles. Beckhoff Automation GmbH BIE 19.189-PC
[0232] 29
[0233] This may reduce the number of partial migration steps required to adapt the B program state to the A program state, since executing at least some partial migration steps during the pauses between execution cycles can improve migration progress, as no additional adapted values of further A data elements to be migrated are generated during the execution of the partial migration steps during the execution pauses.
[0234] One aspect is described in a procedure for operating an automation system, including:
[0235] Executing the A-control program and controlling the automation system according to the A-control program in a first control step;
[0236] Executing the data migration from the A-program state of the A-control program to the B-program state of the B-control program by executing the method according to one of the preceding embodiments in a data migration execution step; and
[0237] Executing the B control program to control the automation system after completion of the data migration in a second control step.
[0238] This allows the technical advantage of providing an improved method for operating an automation system, in which a complete data migration of an A-program state of an A-control program to a B-program state of a B-control program is enabled during simultaneous execution of the A-control program.
[0239] After successful completion of the data migration according to the embodiments of the inventive method for data migration described above, the execution of the A control program is subsequently terminated and the B control program is executed based on the migrated B program state in order to control the automation system.
[0240] The invention is explained in more detail with reference to the accompanying figures. These show:
[0241] Fig. 1 is a schematic representation of an automation system according to one embodiment; Beckhoff Automation GmbH BIE 19.189-PC
[0242] 30
[0243] Fig. 2 shows a schematic representation of a data migration from an A-program state of an A-control program to a B-program state of a B-control program of the automation system according to one embodiment;
[0244] Fig. 3 shows a further schematic representation of a data migration of an A-program state of an A-control program into a B-program state of a B-control program of the automation system according to a further embodiment;
[0245] Fig. 4 shows a further schematic representation of a data migration of an A-program state of an A-control program into a B-program state of a B-control program of the automation system according to a further embodiment;
[0246] Fig. 5 shows a flowchart of a method for updating a control program of an automation system according to one embodiment;
[0247] Fig. 6 shows another flowchart of the method for updating a control program of an automation system according to a further embodiment;
[0248] Fig. 7 shows another flowchart of the method for updating a control program of an automation system according to a further embodiment;
[0249] Fig. 8 shows another flowchart of the method for updating a control program of an automation system according to a further embodiment; and
[0250] Fig. 9 shows a flowchart of a method for operating an automation system according to one embodiment. Beckhoff Automation GmbH BIE 19.189-PC
[0251] 31
[0252] The same reference symbols can be used for elements with the same effect in the following. It may be unnecessary to describe these elements again for each figure. Nevertheless, these elements with the same effect can be provided accordingly in all embodiments.
[0253] Fig. 1 shows a schematic representation of an automation system 300 according to one embodiment.
[0254] In the embodiment shown, the automation system 300 comprises a control unit 301, a fieldbus system 303 connected to the control unit and a plurality of field devices 305 connected to the fieldbus system 303.
[0255] The control unit 301 includes a memory area SP. The memory area SP in turn includes an A memory area SPA and a B memory area SPB.
[0256] According to the invention, the automation system 300 comprises an A-control program A and a B-control program B. The B-control program B is designed as a version of the A-control program A and is derived from the A-control program through appropriate adaptation. Alternatively, the B-control program can also form the basis for the A-control program, which in turn is derived from the B-control program through appropriate adaptations.
[0257] Both the A-control program A and the B-control program B serve to control the automation system 300 or to control the automation processes that can be executed by the automation system 300.
[0258] In the embodiment shown, the A control program A is stored in the A memory area SPA and the B control program B is stored in the B memory area SPB. Alternatively, the A control program A and / or the B control program B can be stored in another area of the memory area SP of the control unit 301 and be executable by the control unit 301.
[0259] According to the invention, an A-program state PA of the A-control program A is stored in the A-memory area SPA. Correspondingly, a B-program state PB of the B-control program B is stored in the B-memory area SPB. Beckhoff Automation GmbH BIE 19.189-PC
[0260] 32
[0261] The A-program state PA is coherently structured according to an A-data structure DSA and stored in a plurality of A-data elements DA of the A-data structure DSA. Similarly, the B-program state PB is coherently structured according to a B-data structure DSB and stored in a plurality of B-data elements DB of the B-data structure DSB.
[0262] For the purposes of the application, the A-program state PA and the B-program state PB can be understood as values representing a state of the automation process controlled according to the A-control program or the B-control program. The A-program state here comprises values of the A-data elements DA.
[0263] The respective values here are numerical values of the variables, functions, and other components of the A control program. Similarly, the B program state PB comprises a plurality of values of the B data elements DB, which in turn represent numerical values of the components of the B control program.
[0264] The A data elements DA and B data elements DB represent memory areas in the A data structure DSA, which is assigned to the A program state PA, and the B data structure DSB, which is assigned to the B program state PB.
[0265] The A data structure DSA and the B data structure DSB each represent data types according to which the values of the A data elements DA and B data elements DB, respectively, are stored in memory.
[0266] The A data structure DSA of the A program state PA is defined by the structure and components of the A control program A, and the B data structure DSB of the B program state PB is defined by the structure and components of the B control program B.
[0267] The A data elements of program state PA represent the components of control program A. The B data elements of program state PB represent the components of control program B. Beckhoff Automation GmbH BIE 19.189-PC
[0268] 33
[0269] When the A control program A is executed by the control unit 301 to control the automation system 300, the components of the A control program A, for example variables or other elements required for the execution of the program, are accordingly assigned values.
[0270] The values of the individual components are the numerical values required to execute the calculations of the control program A.
[0271] During the execution of the A-control program A, these values of the components of the A-control program A are stored in the corresponding A-data elements of the A-program state PA. The A-program state PA thus represents the current state of the execution of the A-control program A and, consequently, the current state of the automation process being executed by the automation system 300.
[0272] During the execution of the A control program A, the values stored in the A data elements of the A program state PA are updated with adjusted values according to the execution of the A control program A.
[0273] The adjusted values of the A data elements are the current values of the respective components of the A control program A during the respective execution of the A control program A.
[0274] As already mentioned, the actual data structure of program state A is not changed by the execution of control program A. Only the values stored in the individual data elements of program state PA are adjusted according to the execution of control program A.
[0275] The present invention provides a method for data migration in which the A-program state PA of the A-control program A is mapped to the B-program state PB of the B-control program B.
[0276] At the time of data migration, the B-program state PB is stored according to a data structure, including the individual B-data elements. However, the individual B-data elements of the B-program state PB may not contain completely up-to-date values from the A-program state PA of the A-control program A. Beckhoff Automation GmbH BIE 19.189-PC
[0277] 34
[0278] Instead, the B data elements of the B program state PB primarily contain initial values at the time of data migration, which are usually irrelevant for the actual control of the automation system 300. However, for B data elements that represent newly introduced components in the B control program, and for which no corresponding A data elements exist in the A program state, the initial values can be used as starting values for the execution of the B control program.
[0279] By using a suitably trained migration algorithm ALG, the values of the A-data elements of the A-program state PA, which represents the current operating state through the execution of the A-control program A of the controlled automation system 300, are mapped in the data migration to the corresponding B-data elements of the B-program state PB of the B-control program B.
[0280] The B-control program B resulted from modifications of the A-control program A and therefore has components that correspond to the components of the A-control program A.
[0281] Accordingly, the B program state PB has B data elements that represent correspondences to A data elements A of the A program state PA of the A control program A.
[0282] In data migration, the current values of the A-data elements of the A-program state PA are mapped to the B-data elements of the P-program state PB that correspond to the respective A-data elements.
[0283] After successful migration, the current values of the A-data elements of the A-program state PA, which represent the current operating state of the automation system 300, are mapped to the corresponding B-data elements of the B-program state PB.
[0284] The B-program state PB thus analogously represents a current operating state of the automation system 300. Beckhoff Automation GmbH BIE 19.189-PC
[0285] 35
[0286] After successful data migration, the execution of control program A can be stopped and control program B can be executed instead to control the automation system 300.
[0287] After successful data migration, the control of the automation system 300 by executing the B control program B can thus be carried out on the current operating state of the automation system 300, so that seamless control of the automation system 300 can be achieved.
[0288] According to the invention, the described data migration of the A-program state PA to the B-program state PB is performed during the simultaneous execution of the A-control program A.
[0289] During the data migration, the automation system 300 continues to be controlled by executing the A control program A.
[0290] Fig. 2 shows a schematic representation of a data migration of an A-program state PA of an A-control program A into a B-program state PB of a B-control program B of the automation system 300 according to one embodiment.
[0291] Figure 2 graphically describes the steps of the data migration method according to the invention.
[0292] Figure 2 shows a time course of the data migration from program state A PA to program state B PB.
[0293] To explain the individual steps that are carried out for the data migration from the A-program state PA to the B-program state PB, the temporal sequence is shown in Figure 2 using five different points in time (a first point in time t1 , a second point in time t2 , a third point in time t3 , a fourth point in time t4 , a fifth point in time t5 ).
[0294] The time sequence runs from the first time t1 to the fifth time t5 along the arrow directions shown.
[0295] The time points, from the first time point t1 to the fourth time point t4, are grouped into a time range a) in which the migration step is executed. Beckhoff Automation GmbH BIE 19.189-PC
[0296] 36
[0297] Time t5 represents a time range b) in which a partial migration step is performed.
[0298] Figure 2 is further divided into five columns (1) to (5). Column 1 represents the B-program state PB stored in the B-memory area SPB. Column 2 represents the steps of the migration algorithm ALG executed at the various time points, from the first time point t1 to the fifth time point t5.
[0299] Column 3) represents the different states according to the five time points, first time t1 to fifth time t5, of the A-program state PA stored in the A-memory area SPA.
[0300] Column 4) represents the execution of the A-control program A, which is executed simultaneously with the execution of the migration algorithm ALG and the associated data migration of the A-program state PA to the B-program state PB at the times shown, first time t1 to fifth time t5.
[0301] Column 5) shows the time sequence of a write information Sl, by means of which an identification of the A data elements DA is made possible, whose values were changed or adjusted by the execution of the A control program A.
[0302] Figure 2 is based on the embodiment shown in Figure 1. However, for clarity, only parts of the automation system 300 are explicitly shown.
[0303] Figure 2 shows the A memory area SPA and the B memory area SPB of the control unit 301, in particular the memory area SP. The A program state PA is stored in the A memory area SPA, while the B program state PB is stored in the B memory area SPB.
[0304] In the simplified embodiment shown, the A-program state PA has four A-data elements DA: a first data element DA-1, a second A-data element DA-2, a third A-data element DA-3, and a fourth A-data element DA-4. Beckhoff Automation GmbH BIE 19.189-PC
[0305] 37
[0306] Accordingly, the B-program state PB has four B-data elements DB: a first B-data element DB-1, a second B-data element DB-2, a third B-data element DB-3, and a fourth B-data element DB-4.
[0307] In the embodiment shown, the first B-data element DB-1, second B-data element DB-2, third B-data element DB-3 and fourth B-data element DB-4 correspond to the respective indices of the first A-data element DA-1, second A-data element DA-2, third A-data element DA-3 and fourth A-data element DA-4.
[0308] In the representation shown, the data migration from the A-program state PA to the B-program state PB begins at the first time t1. At the first time t1, corresponding values XA are stored in the A-data elements DA, which represent the current values of the components of the A-control program A represented by the A-data elements DA and reflect the current operating state of the automation system 300 controlled by the execution of the A-control program A.
[0309] The first A-data element, DA-1, has a first value of XA-1. The second A-data element, DA-2, has a second value of XA-2. The third A-data element, DA-3, has a third value of XA-3. The fourth A-data element, DA-4, has a fourth value of XA-4.
[0310] The current operating state of the automation system 300 is represented by the XA values of the A data elements.
[0311] At the first time point t1, no data migration has yet been carried out and none of the current values XA of the A data elements have been mapped into the corresponding B data elements DB of the B program state PB.
[0312] At the first time point t1, the B data elements DB are provided with initial values.
[0313] The first B-data element, DB-1, has a first initial value of 1-1. The second B-data element, DB-2, has a second initial value of I-2. The third B-data element, DB-3, has a third initial value of I-3. The fourth B-data element, DB-4, has a fourth initial value of I-4. Beckhoff Automation GmbH BIE 19.189-PC
[0314] 38
[0315] The first initial value 1-1, second initial value I-2, third initial value I-3 and fourth initial value I-4 serve to provide the B data elements DB with initial values in case they cannot be overwritten during the migration.
[0316] This is not the case in the version shown here, and the first initial value 11, second initial value I2, third initial value I3 or fourth initial value I-4 do not represent any relevance for the representation of the operating state and the execution of the B control program B.
[0317] Between the first time point t1 and the second time point t2, a part of the A control program A is executed based on the values XA of the A data elements DA.
[0318] In the illustrated embodiment, the execution of the A control program A takes place in execution cycles CC. In the illustrated embodiment, the execution of the A control program A in the time range a) between the first time t1 and the third time t3 is given by a first execution cycle CC-1. In the time range a) between the third time t3 and the fourth time t4, a second execution cycle CC-2 is executed.
[0319] Between the first time t1 and the second time t2, by executing at least a part of the A control program A, an adjustment of the first value XA-1 of the first A data element DA-1 to a first adjusted value YA-1 is made.
[0320] The adjustment of the first A-data element DA-1 is arbitrary in the case shown and serves only to illustrate the procedural steps taken.
[0321] Simultaneously with the execution of the A control program A, the data migration from the A program state PA to the B program state PB starts.
[0322] For this purpose, in the illustrated embodiment, a first migration function MIG-1 of the migration algorithm ALG is executed between the first time point t1 and the second time point t2. In the illustrated embodiment, the first migration function MIG-1 writes the first value XA-1 of the first A data element DA-1 into the first B data element DB-1 of the B program state PB. Beckhoff Automation GmbH BIE 19.189-PC
[0323] 39
[0324] Between the subsequent time t2 and the third time t3, a second migration function MIG-2 is executed and the second value XA-2 of the second A data element DA-2 is written into the corresponding second B data element DB-2.
[0325] Simultaneously, between the second time point t2 and the third time point t3, the A-control program A continues to be executed in the first execution cycle CC-1. By executing the A-control program A, the second value XA-2 of the second A-data element DA-2 is changed to the second adjusted value YA-2.
[0326] Between the first time t1 and the second time t2, the value YA-1 of the first A data element DA-1, which was first adjusted at the first time t1 by executing the A control program A, is written into the first A data element DA-1 of the A program state PA.
[0327] Between the third time t3 and the fourth time t4, a third migration function MIG-3 of the migration algorithm ALG is executed and the third value XA-3 of the third A data element DA-3 is written into the corresponding third B data element DB-3 of the B program state PB.
[0328] Simultaneously, between the second time t2 and the third time t3, the second value YA-2, previously adjusted by executing the A control program A, is written into the second A data element DA-2 of the A program state PA.
[0329] Between the third time t3 and the fourth time t4, a fourth migration function MIG-4 of the migration algorithm ALG is executed and the fourth value XA-4 of the fourth A data element DA-4 is written into the corresponding fourth B data element DB-4 of the B program state PB.
[0330] The migration step of the inventive method is now complete, and each B-data element DB of the B-program state PB, which corresponds to a respective A-data element DA of the A-program state PA, is provided with a corresponding first value XA-1, second value XA-2, third value XA-3 to fourth value XA-4 of the respective A-program state PA. Beckhoff Automation GmbH BIE 19.189-PC
[0331] 40
[0332] Between the third time t3 and the fourth time t4, by executing the A control program A, the fourth value XA-4 of the fourth A data element DA-4 is adapted to the fourth adapted value YA-4 and the corresponding fourth adapted value YA-4 is written to the fourth A data element DA-4 of the A program state PA.
[0333] In the illustrated embodiment, the A-program state PA and the B-program state PB have the same number of data elements, and for each A-data element DA of the A-program state PA, there exists a corresponding B-data element DB of the B-program state PB. This is only an example.
[0334] There may also be different numbers of data elements in the A-program state PA and / or the B-program state PB, so that not every A-data element DA has a corresponding B-data element DB, or vice versa.
[0335] After completion of the migration step, by which, in the embodiment shown, each B data element DB was provided with a corresponding first value XA-1, second value XA-2, third value XA-3 to fourth value XA-4 of the A program state PA, the simultaneous execution of the A control program A, however, resulted in a change of the A program state PA compared to the B program state PB represented by the data migration.
[0336] In the illustrated embodiment, the B program state PB comprises the first value XA-1, the second value XA-2, the third value XA-3, and the fourth value XA-4. In contrast, the A program state PA comprises the first adapted value YA-1, the second adapted value YA-2, the third value XA-3, and the fourth adapted value YA-4.
[0337] The data migration caused by the migration step is therefore unsuccessful, since the B program state PB differs from the A program state PA after completion of the migration step.
[0338] According to the invention, an identification step is subsequently performed by the migration algorithm ALG. In the identification step, the A-data elements DA of the A-program state PA are determined, the first value of which is XA-1, the second value XA-2, and the third value XA-2. Beckhoff Automation GmbH BIE 19.189-PC
[0339] 41
[0340] Values XA-3 to XA-4 were adjusted during the execution of the migration step to the first adjusted value YA-1, second adjusted value YA-2, and fourth adjusted value YA-4.
[0341] According to the embodiment shown, the migration algorithm ALG identifies the first A-data element DA-1, the second A-data element DA-2 and the fourth A-data element DA-4 in the identification step, whose first value XA-1, second value XA-2, and fourth value XA-4 were adapted to the first adapted value YA-1, second adapted value YA-2 and fourth adapted value YA-4 during the execution of the migration step.
[0342] According to the invention, following the identification of the A-data elements DA with first adapted value YA-1, second adapted value YA-2, fourth adapted value YA-4 by the migration algorithm ALG, at least one partial migration step is carried out.
[0343] In the partial migration step, at least the first adapted value YA-1, second adapted value YA-2, fourth adapted value YA-4 of the A-data element DA identified in the identification step are migrated accordingly and mapped or transferred to the respective B-data elements DB.
[0344] Figure 2 illustrates the partial migration step in time domain b) between the fourth time point t4 and the fifth time point t5. Between the fourth time point t4 and the fifth time point t5, the first migration function MIG-1, the second migration function MIG-2, and the fourth migration function MIG-4 are executed in the partial migration step to write the first adjusted value YA-1 of the first A-data element DA-1 to the associated first B-data element DB-1, the second adjusted value YA-2 of the second A-data element DA-2 to the correspondingly associated second B-data element DB-2, and the fourth adjusted value YA-4 of the fourth A-data element DA4 to the associated fourth B-data element DB-4 of the B-program state PB.
[0345] In the illustrated embodiment, only the first adapted value YA-1, second adapted value YA-2, and fourth adapted value YA-4 of the previously identified first A-data element DA-1, second A-data element DA-2, and fourth A-data element DA-4 are migrated in the partial migration step. Beckhoff Automation GmbH BIE 19.189-PC
[0346] 42
[0347] Alternatively, in the partial migration step, the first value XA-1, the second value XA-2, the third value XA-3 and the fourth value XA-4 of unidentified A-data elements DA can also be migrated.
[0348] Figure 2 does not show any further execution of the A control program A during the execution of the partial migration step in time domain b).
[0349] This was done primarily to simplify the presentation. According to the invention, the A-control program A continues to be executed simultaneously with the execution of the partial migration step by the migration algorithm ALG.
[0350] The simultaneous execution of the A-control program A at the same time as the execution of the partial migration step can, analogous to the above described, lead to further deviations between the A-program state PA and the B-program state PB represented by the execution of the migration step and the partial migration step.
[0351] However, the execution of the A control program A during the execution of the partial migration step does not necessarily lead to changes in the first value XA-1 of the first A data element DA-1, the second value XA-2 of the second A data element DA-2, the third value XA-3 of the third A data element DA-3 and the fourth value XA-4 of the A data element DA-4, so that after completion of the partial migration step the correspondingly generated B program state PB can also match the A program state PA.
[0352] In such a case, the data migration from program state A PA to program state B PB could be successfully completed.
[0353] According to one embodiment, after completion of the partial migration step of time period b), migration progress is taken into account with reference to a progress criterion for the assessment of the following process steps.
[0354] The progress criterion can, for example, include the number of A-data elements (DA) that are marked as having adjusted values after completion of the partial migration step and are identified in the identification step. Beckhoff Automation GmbH BIE 19.189-PC
[0355] 43
[0356] Alternatively or additionally, the changes in the number of identified A-data elements (DA) can be defined between the migration step and the sub-migration step, or between two successive sub-migration steps.
[0357] Alternatively or additionally, the progress criterion can be defined as an execution time required to execute the migration step or sub-migration step, or as a change in the execution time between two successive sub-migration steps or between the migration step and the subsequent sub-migration step.
[0358] According to one embodiment, the identification step and the partial migration step can now be repeated if the progress criterion exceeds a predefined first limit and falls below a predefined second limit.
[0359] If, however, the progress criterion falls below or reaches the first predefined threshold, the data migration can be interpreted as successful and completed accordingly.
[0360] However, if the progress criterion exceeds or reaches the second predefined limit, the data migration can be interpreted as unsuccessful and aborted accordingly.
[0361] Alternatively, if the second predefined limit is reached or exceeded, the execution of the A control program A can be interrupted, and during the interruption of the execution of the A control program A, the identification step and the partial migration step can be repeated.
[0362] The interruption of the execution of the A control program A primarily occurs between two consecutive execution cycles.
[0363] The first predefined limit represents a threshold for positive progress or improvement in data migration, while the second predefined limit represents a threshold for negative progress or deterioration in data migration. Beckhoff Automation GmbH BIE 19.189-PC
[0364] 44
[0365] The first predefined limit can be equated with a low number of identified A-data elements DA or with a low execution time of the respective sub-migration step.
[0366] The second predefined limit can be equated with a correspondingly large number of identified A-data elements DA or a correspondingly long execution time of the respective sub-migration steps.
[0367] Accordingly, the second predefined limit can be equated with the fact that the number of identified A-data elements DA remains unchanged or increases between two successive partial migration steps, or that the execution time of the respective successive partial migration steps remains unchanged or increases.
[0368] The first predefined limit value and / or the second predefined limit value can be adjusted after execution of the migration step and / or the most recently executed sub-migration step.
[0369] In particular, the thresholds can be adjusted based on the progress of earlier partial migration steps. If progress is positive, i.e., if the number of data elements being adapted decreases and / or the execution time of the partial migration steps is reduced, the thresholds can be adjusted downwards, i.e., to smaller numerical values.
[0370] If progress is negative, i.e., if the number of adapted data elements and / or the execution time increases, the limits can be adjusted accordingly to higher numerical values.
[0371] Accordingly, the first predefined limit can be equated with a corresponding predefined reduction rate of the number of identified A-data elements DA or a predefined reduction in the execution times of the partial migration steps.
[0372] Alternatively, the first predefined limit value can also be equated with the fact that even after completion of the respective partial migration step, no A-data elements DA with adjusted values YA are identified, and thus after completion of the respective Beckhoff Automation GmbH BIE 19.189-PC
[0373] 45
[0374] Partial migration step: the B program state PB matches the A program state PA.
[0375] The second predefined limit, on the other hand, can be equated with the fact that no change is detected between the execution times of two successive partial migration steps.
[0376] In the embodiment shown, the identification of the A-data elements DA provided with adapted values YA, whose values were adapted during the execution of the migration step or partial migration step, is effected by reading a write information Sl.
[0377] In the embodiment shown, the A-data elements DA, whose values XA are adapted to adapted values YA during the execution of the migration step, are marked as such in the write information Sl by a write function FlINC.
[0378] In the embodiment shown, the write function FLINC thus writes the names and / or memory addresses of those A data elements DA into the write information Sl whose values XA were adapted to correspondingly adapted values YA during the execution of the migration step by the simultaneous execution of the A control program A.
[0379] Alternatively or additionally, flags of the memory areas in which the respective A data elements DA are stored can also be listed in the write information Sl.
[0380] Accordingly, during the first execution cycle CC-1, the write function FLINC writes the first A data element DA-1 and the second A data element DA-2 into the write information Sl. In the second execution cycle CC-2, the write function FLINC additionally marks the fourth A data element DA-4 in the write information Sl.
[0381] By reading the correspondingly generated write information Sl, the migration algorithm ALG identifies the first A-data element DA-1, the second A-data element DA-2, and the fourth A-data element DA-4 as A-data elements DA with adjusted values YA. Beckhoff Automation GmbH BIE 19.189-PC
[0382] 46
[0383] Accordingly, the migration algorithm ALG can, in the sub-migration step, effect the migration of the first adapted value YA-1 of the A-data element DA-1, the second adapted value YA-2 of the A-data element DA-2 and the fourth adapted value YA-4 of the A-data element DA-4.
[0384] In the illustrated embodiment, the write function FlINC writes the corresponding A-data elements DA, each with adapted values YA, into the write information Sl. As soon as a value XA of an A-data element DA is adapted to an adapted value YA by executing the A-control program, the corresponding A-data element DA is marked or written in the write information Sl by the write function FlINC.
[0385] Alternatively, the FLINC write function can write the corresponding A data elements DA into the write information Sl at predefined times or mark them in it.
[0386] The predefined times can include, for example, the beginning or end of the respective execution cycle CG, or a predefined time within the execution cycle CG.
[0387] In the embodiment shown, the identification step and the subsequent partial migration step are executed by the migration algorithm ALG immediately after completion of the migration step between the fourth time t4 and the fifth time t5.
[0388] Alternatively, the identification step and the partial migration step can be executed at predefined execution times.
[0389] These predefined execution times can include, for example, the beginning or end of an execution cycle CG and / or a time predefined within the execution cycle CG of the A control program A.
[0390] The write time at which the FLINC write function writes the respective A-data elements DA into the write information Sl, and the read time at which the migration- Beckhoff Automation GmbH BIE 19.189-PC
[0391] 47. The algorithm ALG, which reads the information from the write information SI, can be coordinated in such a way that the reading time is after the writing time.
[0392] According to one embodiment, if the identification step and the subsequent partial migration step are executed repeatedly, and if the information of the write information Sl is repeatedly read by the migration algorithm ALG, information already read in an earlier identification step can be marked as read or deleted from the write information Sl.
[0393] This ensures that when the migration algorithm ALG reads the write information Sl, it only reads information from the write information Sl that the migration algorithm ALG has not read at any previous time.
[0394] According to the illustrated embodiment, the execution of the first migration function MIG-1, second migration function MIG-2, third migration function MIG-3, and fourth migration function MIG-4 of the migration algorithm ALG is carried out in a specific execution sequence. If, in the sub-migration step, only the adapted values YA of the respective A-data elements DA are migrated, then only the migration functions MIG that serve to migrate the respective A-data elements DA are executed. The execution of the other migration functions is skipped accordingly.
[0395] In the embodiment shown, the third A-data element DA-3 does not have a customized value YA, is therefore not listed in the write information Sl and is therefore not migrated again in the partial migration step.
[0396] The execution of the third migration function MIG-3, which serves to migrate the values of the third A data element DA-3, is skipped accordingly in the execution order.
[0397] In the example given, during the partial migration step, the A control program continues to execute in the second execution cycle CC-2 shown. Beckhoff Automation GmbH BIE 19.189-PC
[0398] 48
[0399] In the embodiment shown, the writing information Sl is presented in list form.
[0400] According to one embodiment, the migration step and / or the identification step and / or the partial migration step, or, in the case of multiple executions, the identification steps and partial migration steps, can each be executed during execution pauses between the execution cycles CG of the execution of the A control program A.
[0401] Fig. 3 shows a further schematic representation of the data migration of the A-program state PA of the A-control program A to the B-program state PB of the B-control program B of the automation system 300 according to a further embodiment.
[0402] The embodiment shown is based on the embodiment in Figure 2 and includes all the process steps described therein. Figure 3 is structured analogously to Figure 2. However, Figure 3 is shown in a simplified form to improve readability.
[0403] In the illustrated embodiment, the write information Sl is designed in the form of a bit sequence. The A-data elements DA, identified in the write information Sl by the write function FUNG, are here represented as A-data element memory areas SDA, in which the A-data elements are stored in the A-program state PA.
[0404] An A-data element DA can also extend across multiple A-data element memory areas SDA. In such a case, the multiple A-data element memory areas SDA are listed in the memory information Sl to identify the respective A-data element DA.
[0405] Column 3 shows that the A-data elements DA of the A-program state PA are stored in corresponding A-data element memory areas SDA. The first A-data element DA-1 is assigned to a first A-data element memory area SDA-1.
[0406] The second A-data element DA-2 is assigned to a second A-data element memory area SDA-2. The third A-data element DA-3 and the fourth A-data element are assigned differently. Beckhoff Automation GmbH BIE 19.189-PC
[0407] 49
[0408] Data element DA-4 is assigned to a third A-data element memory area SDA-3.
[0409] Analogous to the process steps in Figure 2, the data migration is carried out simultaneously by executing the migration algorithm ALG and the A-control program A.
[0410] Between the second time t2 and the third time t3, the third value XA-3 of the third A data element DA-3 is adjusted to a correspondingly adjusted third value YA-3 by executing the A control program A.
[0411] Accordingly, the FlINC write function marks the third A-data element DA-3 in the write information Sl as an A-data element DA provided with a third adapted value YA-3.
[0412] In the embodiment shown, the third A-data element DA-3 is identified in the write information Sl by specifying the respective A-data element storage area SDA to which the third A-data element DA-3 is assigned in the A-program state PA.
[0413] Accordingly, the FLINC write function specifies the third A data element memory area SDA-3 in the write information Sl, to which the third A data element DA-3 is assigned.
[0414] In time period b), in which the identification step and the partial migration step are executed by the migration algorithm ALG, the write information Sl is read out by the migration algorithm ALG in the identification step.
[0415] Accordingly, the migration algorithm ALG identifies the third A data element DA-3, which is provided with the third adapted value YA-3, via the third A data element memory area SDA-3 specified in the write information Sl.
[0416] Since the third A-data element memory area SDA-3 is also assigned to the fourth A-data element DA-4, the migration algorithm ALG migrates both the third adjusted value YA-3 of the third A-data element DA-3 and the fourth value XA-4 of the fourth data element DA-4 in the sub-migration step. Beckhoff Automation GmbH BIE 19.189-PC
[0417] 50
[0418] By marking the A-data elements DA in the write information Sl via the A-data element storage areas SDA, contiguous storage areas and an associated plurality of A-data elements DA can be marked for the migration algorithm ALG.
[0419] The migration performed based on the information of the write information Sl can accordingly include a plurality of A data elements DA, which, as in the example shown, do not all have to be provided with adapted values YA.
[0420] However, by specifying the A data element memory areas SDA in the write information Sl, individual A data elements DA can also be identified and migrated accordingly, as shown in Figure 3 in the cases of the first A data element DA-1 and the second A data element DA-2.
[0421] An A-data element DA can also extend across multiple A-data element memory areas SDA. In such a case, all occupied A-data element memory areas SDA can be listed for the respective A-data element DA.
[0422] Fig. 4 shows a further schematic representation of the data migration of the A-program state PA of the A-control program A to the B-program state PB of the B-control program B of the automation system 300 according to a further embodiment.
[0423] The embodiment of Figure 4 is in turn based on the embodiment of Figure 2 and includes all the features described therein.
[0424] Figure 4 is greatly simplified compared to Figure 2. However, this is not intended to limit the embodiment shown, but is merely due to the simplification of the figure.
[0425] In the illustrated embodiment, the control unit 301 has a first write information SI-1 and a second write information SI-2. The first write information SI1 and the second write information SI-2 are stored in separate memory areas SP and can be used as independent components. Beckhoff Automation GmbH BIE 19.189-PC
[0426] 51
[0427] In the embodiment shown, the first write information SI-1 and the second write information SI-2 are used for simultaneous writing of the information by the write function FlINC and reading of the information by the migration algorithm ALG.
[0428] In the embodiment shown, in a first execution cycle CC-1, the write function FLINC writes the corresponding information into the first write information SI-1, and the migration algorithm ALG reads previously written information from the second storage information SI-2.
[0429] In the subsequent second execution cycle CC-2, the write information FLINC writes the respective information into the second write information SI-2, and the migration algorithm ALG reads the information written by the write function FUNC in the preceding first execution cycle CC-1 from the first write information SI-1.
[0430] By alternately reading and writing to and from the first write information SI1 and the second write information SI-2, information can be read simultaneously by the migration algorithm ALG and new information can be written by the write function FUNC.
[0431] Fig. 5 shows a flowchart of a method 100 for updating a control program of an automation system 300 according to an embodiment.
[0432] To update a control program of an automation system with data migration of a program state of the control program, the migration algorithm ALG first performs the data migration of the A-program state PA to the B-program state PB in a migration step 101.
[0433] In data migration, the values XA stored in the A data elements of the A program state PA are mapped to the B data elements DB of the B program state PB, which are associated with the A data elements DA.
[0434] The A control program continues to run during the execution of migration step 101. Beckhoff Automation GmbH BIE 19.189-PC
[0435] 52
[0436] Subsequently, in an identification step 103, the migration algorithm ALG identifies at least one A-data element DA with an adapted value YA of the A-program state PA.
[0437] The at least one adapted value YA of the at least one identified A data element DA was adapted by the execution of the A control program A during the execution of migration step 101.
[0438] Subsequently, the migration algorithm ALG performs a partial data migration in sub-migration step 105. In this partial data migration, at least one adapted value YA of the at least one identified A-data element DA is migrated and mapped to the corresponding B-data element DB of the B-program state PB.
[0439] Fig. 6 shows another flowchart of the method 100 for updating a control program of an automation system 300 according to a further embodiment.
[0440] The embodiment shown in Figure 6 is based on the embodiment shown in Figure 5 and includes all the process steps described therein.
[0441] In the embodiment shown, the migration algorithm ALG first determines the migration progress in a progress determination step 107 according to a predefined progress criterion.
[0442] If it is determined that the progress criterion exceeds the first predefined limit and falls below the second predefined limit, then identification step 103 and partial migration step 105 are executed again.
[0443] The repeated execution of identification step 103 and partial migration step 105 can be iterative and continue as long as progress determination step 107 shows that the progress criterion still exceeds the first predefined limit and falls below the second predefined limit. Beckhoff Automation GmbH BIE 19.189-PC
[0444] 53
[0445] If, however, progress determination step 107 determines that the progress criterion reaches or falls below the predefined first limit, then in migration completion step 109 the data migration of the A program state PA to the B program state PB is successfully completed.
[0446] However, if progress determination step 107 determines that the progress criterion reaches or exceeds the second predefined limit, the data migration can be aborted as failed in a migration abort step 111.
[0447] Alternatively, in an interruption step 113, the execution of the A control program A can be interrupted and the execution of the identification step 103 and the partial migration step 105 can be continued if, in the progress determination step 107, it is determined that the progress criterion reaches or exceeds the second predefined limit.
[0448] Fig. 7 shows another flowchart of the method 100 for updating a control program of an automation system 300 according to a further embodiment.
[0449] The embodiment shown in Figure 7 is based on the embodiment shown in Figure 6 and includes all the process steps described therein.
[0450] In the embodiment shown, the progress criterion can be defined as a number of A-data elements DA which, after completion of the partial migration step 105, are marked as having an adapted value YA.
[0451] Alternatively or additionally, the progress criterion can be defined as a change in the number of marked A data elements DA after two consecutive partial migration steps have been executed.
[0452] Accordingly, progress determination step 107 includes a count determination step 115, in which the number of A-data elements DA provided with adjusted values YA is determined after execution of the respective partial migration steps 105. Beckhoff Automation GmbH BIE 19.189-PC
[0453] 54
[0454] Accordingly, in count determination step 115, the changes in the corresponding numbers of the A data elements DA for successive partial migration steps 105 can be determined.
[0455] Alternatively or additionally, the progress criterion can be defined as an execution duration of the sub-migration steps 105 or as a change in the execution durations of successively executed sub-migration steps 105.
[0456] Accordingly, in a time duration determination step 117, the time durations required to execute the various sub-migration steps 105 can be measured by a time measurement module.
[0457] Accordingly, the timing module can be used to determine the changes in the execution durations of successive partial migration steps 105.
[0458] Fig. 8 shows another flowchart of the method 100 for updating a control program of an automation system 300 according to a further embodiment.
[0459] The embodiment shown in Figure 8 is based on the embodiment shown in Figure 7 and includes all the process steps described therein.
[0460] In the embodiment shown, to identify the A-data elements DA with adapted values YA in identification step 103, the migration algorithm ALG reads out the write information Sl in a readout step 119, in which the A-data elements DA with adapted values YA are marked.
[0461] Fig. 9 shows a flowchart of a method 200 for operating an automation system 300 according to a further embodiment.
[0462] To operate automation system 200, in a first control step 201, the A control program A is executed, and accordingly, automation system 300 is controlled according to the A control program A. Beckhoff Automation GmbH BIE 19.189-PC
[0463] 55
[0464] In a data migration execution step 203, the data migration from program state A PA to program state B PB is subsequently carried out according to the inventive method 100. In a second control step 205, after successful completion of the data migration, the execution of the control program A is terminated and the control program B is executed based on the migrated program state PB.
[0465] Beckhoff Automation GmbH BIE 19.189-PC
[0466] 56
[0467] Reference symbol list
[0468] 100 procedures
[0469] 101 Migration Step
[0470] 103 Identification step
[0471] 105 Partial migration step
[0472] 107 Progress Assessment Step
[0473] 109 Migration Completion Step
[0474] 111 Migration abort step
[0475] 113 Interruption step
[0476] 115 Quantity Determination Step
[0477] 117 Time duration determination step
[0478] 119 Selection step
[0479] 200 procedures
[0480] 201 first control step
[0481] 203 Data Migration Execution Step
[0482] 205 second control step
[0483] 300 automation systems
[0484] 301 Control unit
[0485] 303 Fieldbus system
[0486] 305 field devices
[0487] A A tax program
[0488] B B tax program
[0489] PA A program state
[0490] PB B-program state
[0491] SP memory area
[0492] SPA A storage area
[0493] SPB B memory area
[0494] DSA A- data structure
[0495] DSB B- Data structure
[0496] DA A data element
[0497] DA-1 first A data element
[0498] DA-2 second A-data element Beckhoff Automation GmbH BIE 19.189-PC
[0499] 57
[0500] DA-3 third A data element
[0501] DA-4 fourth A data element
[0502] DB B data element
[0503] DB-1 first B data element
[0504] DB-2 second B data element
[0505] DB-3 third B data element
[0506] DB-4 fourth B data element
[0507] XA value of an A data element
[0508] XA-1 value of the first A data element
[0509] XA-2 value of the second A data element
[0510] XA-3 value of the third A data element
[0511] XA-4 value of the fourth A data element
[0512] YA adjusted value of an A data element
[0513] YA-1 adjusted value of the first A data element
[0514] YA-2 adjusted value of the second A data element
[0515] YA-3 adjusted value of the third A data element
[0516] YA-4 adjusted value of the fourth A data element
[0517] SI writing information
[0518] SI-1 first writing information
[0519] Sl-2 second writing information
[0520] SDA A data element storage area
[0521] SDA-1 first A data element memory area
[0522] SDA-2 second A data element memory area
[0523] SDA-3 third A data element memory area
[0524] MIG migration function
[0525] MIG-1 first migration function
[0526] MIG-2 second migration function
[0527] MIG-3 third migration function
[0528] MIG-4 fourth migration function
[0529] CG execution cycle
[0530] CC-1 first execution cycle
[0531] CC-2 second execution cycle
[0532] 1-1 first initialization value
[0533] I-2 second initialization value
[0534] I-3 third initialization value
[0535] I-4 fourth initialization value Beckhoff Automation GmbH BIE 19.189-PC
[0536] ALG Migration Algorithm
[0537] FUNC write function t time t1 time point t2 time point t3 time point t4 time point t5 time point
Claims
Beckhoff Automation GmbH BIE 19.189-PC 59 Claims 1. Method (100) for updating a control program of an automation system with data migration of a program state of the control program, wherein a control unit (301) of the automation system (300) comprises an A-control program (A) and a B-control program (B), wherein the A-control program (A) is executed to control the automation system (300), wherein the B-control program (B) is a version of the A-control program (A), wherein an A-program state (PA) of the A-control program (A) is stored in an A-memory area (SPA) of the control unit (301), wherein a B-program state (PB) of the B-control program (B) is stored in a B-memory area (SPB), wherein the A-program state (PA) is stored in the form of an A-data structure (DSA) comprising a plurality of A-data elements (DA), and wherein the B-program state (PB) is stored in the form of a plurality of B-data elements (DB) are stored in a B-data structure (DSB),wherein the A data elements (DA) represent components of the A control program (A), wherein the B data elements (DB) represent components of the B control program (B), wherein the A data elements (DA) of the A program state (PA) comprise values (XA) of the components of the A control program (A), wherein the values (XA) of the A data elements (DA) of the A program state (PA) represent a current state of the automation system (300) controlled by the execution of the A control program (A), comprising: Performing a data migration of the A-program state (PA) to the B-program state (PB) by a migration algorithm (ALG) in a migration step (101), wherein in the data migration the values (XA) of the respective components of the A-control program (A) stored in the A-data elements (DA) of the A-program state (PA) are mapped to corresponding components of the B-control program (B) representing B-data elements (DB) of the B-program state (PB), and wherein the A-control program (A) continues to be executed during the execution of the migration step (101); Identifying at least one A-data element (DA) with a customized value (YA) of the A-program state (PA) by the migration algorithm (ALG) in an identification step (103), wherein the at least one customized value (YA) of the at least one identified A-data element (DA) is determined by the execution Beckhoff Automation GmbH BIE 19.189-PC 60 of the A-control program (A) was adapted during the execution of migration step (101); and Performing a partial data migration by the migration algorithm (ALG) in a partial migration step (105), wherein in the partial data migration the at least one adapted value (YA) of the at least one A data element (DA) is mapped into the B data element (DB) of the B program state (PB) associated with the A data element (DA).
2. Method (100) according to claim 1, wherein in the partial migration step (105) only the at least one adapted value (YA) of the at least one identified A-data element (DA) is migrated.
3. Method (100) according to claim 1 or 2, further comprising: Determining the migration progress of the migration from program state A (PA) to program state B (PB) according to a predefined progress criterion by the migration algorithm (ALG) in a progress determination step (107).
4. Method (100) according to claim 3, wherein the identification step (103) and the partial migration step (105) are repeated if the progress criterion exceeds a first predefined limit and falls below a second predefined limit different from the first predefined limit.
5. Method (100) according to claim 3 or 4, further comprising: Completion of the data migration and / or partial data migration of the A program state (PA) to the B program state (PB) by the migration algorithm (ALG) in a migration completion step (109) if the progress criterion reaches or falls below the predefined first threshold.
6. Method (100) according to any one of claims 3 to 5 above, further comprising: Aborting the data migration and / or partial data migration of the A program state (PA) to the B program state (PB) by the migration algorithm (ALG) in a migration abort step (111) if the progress criterion reaches or exceeds the second predefined limit. Beckhoff Automation GmbH BIE 19.189-PC 61 7. Method (100) according to any one of claims 3 to 4 above, further comprising: Interrupting the execution of the A control program (A) and generating an execution interruption of the execution of the A control program (A) in an interruption step (113) if the progress criterion reaches or exceeds the second predefined limit, wherein during the interruption of the execution of the A control program (A) the identification step (103) and the partial migration step (105) are executed.
8. Method (100) according to any one of the preceding claims 3 to 7, wherein the progress criterion is defined as a number of A-data elements (DA) with adapted values (YA) in the A-program state (PA) and / or as a change in the number of A-data elements (DA) with adapted values (YA) in the A-program state (PA) between successive migration steps (101) and / or partial migration steps (105).
9. Method (100) according to claim 8, wherein the progress determination step (107) comprises: Determine the number of A data elements (DA) with adjusted values (YA) in the A program state (PA) after execution of the partial migration step (105) and / or determine the change in the number of A data elements (DA) with adjusted values (YA) in the A program state (PA) after execution of the data migration step and after execution of the partial migration step (105) or after execution of two consecutively executed partial migration steps (105) in one count determination step (115).
10. Method (100) according to any one of the preceding claims 3 to 9, wherein the progress criterion is defined as an execution duration of the execution of the partial migration step (105) and / or as a change in the execution durations of the executions of successive partial migration steps (105).
11. Method (100) according to claim 10, wherein the progress determination step (107) comprises: Determining the duration of the execution of the partial migration step (105) and / or determining a change in the durations of the executions of the migration step (101) and the partial migration step (105) or of the executions of two temporally separated steps Beckhoff Automation GmbH BIE 19.189-PC 62 consecutive partial migration steps (105) by a time measurement module in a time duration determination step (117).
12. Method (100) according to any one of the preceding claims, wherein the identification step (103) comprises: Reading a write information (Sl) by the migration algorithm (ALG) in a read step (119), wherein at least the A data element (DA) with an adjusted value (YA) is displayed in the write information (Sl).
13. Method (100) according to claim 12, wherein during the execution of the A control program (A) a write function (Flinc) writes to the write information (Sl), and wherein by writing to the write information (Sl) the write function (Flinc) in the write information (Sl) A data elements (DA) of the A program state (PA) are characterized, the values (XA) of which were adapted to adapted values (YA) by execution of the A control program (A) during the execution of the migration step (101) and / or the identification step (103) and / or the partial migration step (105).
14. Method (100) according to claim 13, wherein the write information (Sl) is generated by the write function (FLINC) during execution of the migration step (101).
15. Method (100) according to claim 13 or 14, wherein the write function (FLINC) continuously writes to the write information (Sl), and wherein the write function (FLINC) identifies the A data elements (DA) in the write information (Sl) as soon as the values (XA) of the respective A data elements (DA) in the A program state (PA) are adapted to adapted values (YA) by executing the A control program (A).
16. Method (100) according to any one of the preceding claims 13 to 15, wherein, during a cyclic execution of the A control program (A) in execution cycles (CG), the write function (FLINC) writes to the write information (Sl) at predefined write times, and wherein the predefined write times include times from the following list: beginning of the execution cycle (CC), end of the execution cycle (CC), defined time within the execution cycle (CC), in an execution pause between execution cycles (CC). Beckhoff Automation GmbH BIE 19.189-PC 63 17. Method (100) according to any one of the preceding claims 12 to 16, wherein, after reading the write information (Sl) by the migration algorithm (ALG), the information read from the write information (Sl) is marked as read or deleted.
18. Method (100) according to any one of the preceding claims 12 to 17, wherein the write information (Sl) is in list form, and wherein the write information (Sl) lists names and / or memory addresses in the A memory area (SPA) of the A data elements (DA) with adapted values (YA) of the A program state (PA).
19. Method (100) according to any one of the preceding claims 12 to 18, wherein the write information (Sl) is designed in the form of a bit sequence, and wherein the bit sequence indicates A data element memory areas (SDA) of the A data elements (DA) with adapted values (YA) of the A program state (PA).
20. Method (100) according to claim 19, wherein the A-data element memory area (SDA) displayed for an A-data element (DA) with an adapted value (YA) is configured as a contiguous memory area and comprises, in addition to a memory address of the A-data element (DA) with an adapted value (YA), at least one memory address of a further A-data element (DA) with a non-adapted value (XA) of the A-program state (PA) in the A-memory area (SPA), and wherein in the partial data migration the values (XA) and / or adapted values (YA) of the A-data elements (DA) arranged in the respective displayed A-data element memory area (SDA) are migrated.
21. Method (100) according to any one of the preceding claims 12 to 20, wherein a first write information (SI1) and a second write information (SI2) are generated in the A memory area (SPA) and / or in the B memory area (SPB), and wherein simultaneously the migration algorithm (ALG) reads the first write information (SI1) and identifies A data elements (DA) characterized therein with adapted values (YA), and the write function (FUNC) identifies the A data elements (DA) with values (YA) adapted by the execution of the A control program (A) during the reading of the first write information (SI1) and / or the execution of the partial migration step (105). Beckhoff Automation GmbH BIE 19.189-PC 64 22. Method (100) according to claim 21, wherein, when the identification step (103) and partial migration step (105) are executed multiple times, the write function (FlINC) alternately writes to the first write information (SI1) and the second write information (SI2), and the migration algorithm (ALG) alternately reads the other of the first write information (SI1) and second write information (SI2).
23. Method (100) according to one of the preceding claims, wherein the migration algorithm (ALG) comprises a plurality of migration functions (MIG), wherein the migration functions (MIG) are each configured to read the values (XA) and / or the adapted values (YA) of the A-data elements (DA) of the A-program state (PA) and to write them to the B-data elements (DB) of the B-program state (PB) associated with the A-data elements (DA), and wherein in the sub-migration step (105) only the migration functions (MIG) of the migration algorithm (ALG) provided for the migration of the A-data elements (DA) identified in the identification step (103) are executed.
24. Method (100) according to claim 23, wherein the migration functions (MIG) of the migration algorithm (ALG) are executed sequentially according to an execution sequence, and wherein the execution of the migration functions (MIG) serving to migrate A-data elements (DA) not identified in the identification step (103) is skipped in the execution sequence.
25. Method (100) according to any of the preceding claims, wherein the identification step (103) and partial migration step (105) are automatically performed immediately after completion of the migration step (101) or after completion of the partial migration step (105) performed immediately prior.
26. Method (100) according to one of the preceding claims, wherein the identification step (103) and partial migration step (105) are executed cyclically in execution cycles (CC) of the A control program (A) from a predefined execution time, and wherein the predefined execution time is a time from the following list: beginning of an execution cycle (CC), end of an execution cycle (CC), predefined time within an execution cycle (CC). Beckhoff Automation GmbH BIE 19.189-PC 65 27. Method (100) according to one of the preceding claims, wherein, in a cyclic execution of the A-control program (A) in execution cycles, the migration step (101) and / or the partial migration step (105) are executed during an execution pause or during several execution pauses between successive execution cycles.
28. Method (200) for operating an automation system (300): Executing the A-control program (A) and controlling the automation system (300) according to the A-control program (A) in a first control step (201); performing the data migration of the A-program state (PA) of the A-control program (A) to the B-program state (PB) of the B-control program (B) by executing the method according to any one of the preceding claims 1 to 27 in a data migration execution step (203); and Execution of the B control program (B) to control the automation system (300) after completion of the data migration in a second control step (205).