Method for updating a control program of an automation system, data migration including program states of the control program
Patent Information
- Application Number
- CN202580020539.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-11-11
- Filing Date
- 2025-10-29
- Publication Date
- 2026-10-27
AI Technical Summary
在这个背景下,可能发生无效中间状态
[0180]作为替代方案或另外,可以为各个A数据元素或B数据元素的相应数据结构定义迁移函数。
Smart Images

Figure CN122996404A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method for updating the control program of an automation system while simultaneously migrating data describing the program state of the control program.
[0002] This patent application claims priority to German patent application 10 2024 132 902.5, the disclosure of which is incorporated herein by reference. Background Technology
[0003] In automation technology, the slave stations of an automation system are typically controlled and accessed by the system's controller through the cyclic execution of the corresponding control program. During the cycle of controlling the corresponding slave station according to the control instructions of the control program, the controller records and stores information describing the state of the automation system and the control program (hereinafter referred to as program state).
[0004] The so-called program state includes all the complete information necessary to represent the state of the automation system and control program. For example, program state may include variables, functions, databases, or other objects used in the control program.
[0005] In addition, program status can include information about slave stations of the automation system or about processes running within the automation system.
[0006] After a control cycle is completed, this program state can be recreated, allowing the current state of the automation system and control program to be reproduced at any time. The program state is the content of the corresponding global memory area.
[0007] During the execution of the control program's cycle, the memory can be modified (potentially multiple times). With each memory modification, the state of the automation system and the control program may change. In this context, 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.
[0008] When the control program is executed again in a subsequent control cycle, it can access the data stored in the program state during the previous cycle, and thus enable the controller of the automation system to continue in the next cycle based on the state of the automation system from the previous control cycle.
[0009] During the continuous operation of an automated system, there are often situations where it is necessary to readjust various parameters or modify or adjust the process in order to achieve or ensure the optimized operation of the automated system.
[0010] In this context, it is often necessary to replace the currently running control program with a newer version that incorporates the necessary adjustments.
[0011] To avoid restarting the automation system after a replacement and instead continue operating the automation system in its current state, the current version of the control program must be able to access information about the program's state, which describes the state of the control program and the automation system at the time of the last executed control cycle.
[0012] This is the only way to ensure that the automation system can continue to be controlled based on its current state by executing the current and saved version of the control program, thereby avoiding a complete restart of the automation system.
[0013] Therefore, it is necessary to adapt the program state information to the current version of the control program and the changes made thereto, so that after successful adaptation, the current control program can access the previously saved program state information and control the automation system in the current state. Summary of the Invention
[0014] Therefore, the object of the present invention is to provide an improved method for updating the control program of an automation system while simultaneously transmitting the current program state.
[0015] This objective is achieved by the method according to the independent claim. Preferred embodiments are indicated in the dependent claims.
[0016] In one aspect of the invention, a method is provided for updating a control program by migrating data representing the program state of a control program of an automation system, wherein the controller of the automation system includes a control program A and a control program B, wherein control program A is executed to control the automation system, and control program B is a version of control program A, wherein the program state of control program A is stored in an A memory area of the controller, and the program state of control program B is stored in a B memory area, wherein the program state A is stored in the form of an A data structure including multiple A data elements, and the program state B is stored in the form of a B data structure including multiple B data elements, wherein the A data elements represent components of control program A, and wherein the B data elements represent components of control program B, wherein the A data elements of the program state A include values of the components of control program A, and wherein the values of the data elements of the program state A represent the current state of the automation system controlled by executing control program A, the method comprising:
[0017] In the migration step, a migration algorithm is used to perform data migration from program state A to program state B. In the data migration, the value of the corresponding component of the A control program stored in the A data element of program state A is mapped to the B data element of program state B representing the corresponding component of program B. And the A control program continues to be executed during the execution of the migration step.
[0018] In the identification step, a transfer algorithm is used to identify at least one A data element with an adjusted value in the A program state, wherein at least one adjusted value of the at least one identified A data element is adjusted by the execution of the A control program during the execution of the transfer step; and
[0019] In the partial migration step, a migration algorithm is used to perform partial data migration, wherein in the partial data migration, at least one adjusted value of at least one A data element is mapped to a B data element of a B program state associated with the A data element.
[0020] This can achieve the following technical advantages: providing an improved method for updating the control program of an automation system, including data migration of the program state of the control program.
[0021] In a scenario where control program A of an automation system is replaced by control program B of the automation system for controlling the automation system, control programs A and B are derived from each other through at least one adaptation process, which ensures that while executing control program A for controlling the automation system, the state of control program A can be mapped to the state of control program B.
[0022] Control program B may be generated from control program A through adaptation, or vice versa. Therefore, these two control programs represent different versions of the control program and share common characteristics.
[0023] To migrate information from state A of control program A to state B of control program B, it is not necessary to pause or terminate the execution of control program A, which is used to control the automation system. Instead, the data migration between control program A and its state can be performed simultaneously.
[0024] To this end, the migration is first performed by mapping the value of the A data element of the entire A program state to the corresponding B data element of the B program state of the B control program associated with the A data element of the A program state.
[0025] Because control program A continues to run to control the automation system during the execution of the migration step, adjustments to the state of program A may occur during the execution of the migration step (i.e., during the data migration of the values of data elements of program A in the current state of program A).
[0026] The execution of control program A can lead to an adjustment of the value of program A's state stored in data element A, because during the execution of control program A and the corresponding controlled automation process, the modified values of components of control program A are written to program A's state.
[0027] The A data element in the A program state represents the components of the A control program, such as variables, functions, databases, or other elements required to execute the A control program.
[0028] Therefore, the corresponding value of the A data element in the A program state represents the value of the components (i.e., variables, functions, or other elements) of the A control program, and reflects the current state of the automated system or automated process controlled by executing the A control program.
[0029] When the A control program is executed and the automation system is controlled (e.g., by reading sensor values and / or controlling actuator units), the current state of the controlled automation system is adjusted accordingly by writing new values of the components of the A control program into the A program state.
[0030] The adjustment of the current state of the automation system is reflected by the corresponding adjustment of the A program state, in which the value of the A data element of the A program state is adjusted accordingly.
[0031] By executing control procedure A during the execution of the migration step, the value of data element A in program state can be adjusted relative to the value of data element B mapped to program state B during the data migration when the migration step is executed.
[0032] In this context, adjusting the value of an A data element in program state A involves rewriting the value into the corresponding A data element in program state A at least during the execution of data migration in program state A.
[0033] The rewritten value is interpreted accordingly as the adjusted value. An adjusted value can cause an actual change to the corresponding value. However, an adjusted value can also be equal to the older value of the corresponding A data element.
[0034] Because data migration is performed simultaneously by executing the migration step and executing the A control procedure, it is now possible that after the migration step is completed, that is, after the values of the A data elements in the A procedure state are fully mapped to the B data elements in the B procedure state, the individual values of each A data element have been adjusted.
[0035] This could cause the value of a B data element mapped to the B program state during the migration step to no longer perfectly match the adjusted value stored in the A data element in the A program state.
[0036] Therefore, data migration from program A state of control program A to program B state of control program B based solely on the execution of migration steps may be incomplete, because after the migration steps are completed, the current value of program A state may not match the value of program B state.
[0037] To address this issue, the migration algorithm used for data migration first performs an identification step. In this step, at least one A data element of program state A is identified, the value of which is adjusted relative to the value of a corresponding associated B data element mapped to program state B by the migration algorithm during the migration step, and is adjusted by executing the A control program during the execution of the migration step.
[0038] Therefore, in the identification step, after the migration step is executed, the A data element of program A state that was written with a value again during the execution of the data migration is identified.
[0039] Therefore, after the migration step is completed, the corresponding A data element may contain a value that is different from the value of the B data element that is mapped to the B program state associated with the A data element through the execution of the migration step.
[0040] Therefore, the identification step identifies A data elements of program state A that may cause program state A to deviate from program state B generated by the execution of the migration step after the execution of the migration step.
[0041] After the migration algorithm identifies an A data element with an adjusted value during the identification step, the migration algorithm then performs a partial migration step, wherein at least the adjusted value of the A data element identified in the identification step is migrated and mapped to a B data element of the B program state associated with the identified A data element.
[0042] Therefore, the execution of partial migration steps allows for a significant improvement in data migration from the state of program A in control program A to the state of program B in control program B.
[0043] The execution of control procedure A may continue during the execution of the identification step and / or during the execution of a portion of the migration step.
[0044] According to the implementation plan, in some migration steps, only at least one adjusted value of at least one identified A data element is migrated.
[0045] This can achieve the following technical advantages: it can further improve the data migration from program state A to program state B.
[0046] For this purpose, in some migration steps, only the adjusted values of the A data elements identified by the migration algorithm in the identification step are migrated and mapped to the B data elements of the B program state associated with the identified A data elements.
[0047] According to the present invention, the time required to perform the migration step or part of the migration step is directly related to the value of the A data element to be migrated or the number of adjusted values of the A data element.
[0048] In the migration step, a complete migration of program state A is performed. During this process, all values of data elements in program state A that exist in program state B and / or provide corresponding associated data elements in program state B are migrated.
[0049] Since control program B is based on control program A, control program B can include all components of control program A. Therefore, for each data element of the state of program A, the corresponding state of program B can include the corresponding data element of program B.
[0050] In this case, during the migration step, each value of each A data element in program state A is migrated and mapped to the corresponding B data element in program state B.
[0051] Depending on the execution of the B control program, for some A data elements in the A program state, there may not be corresponding B data elements in the B program state.
[0052] In the migration step, the value of the data element of program A that corresponds to the data element of program B in program B state is migrated.
[0053] If, in a partial migration step, only the adjusted values of data elements A identified in the identification step are migrated and mapped to the corresponding data elements B, the time required to perform the partial migration step can be significantly shorter than the time required to perform the full migration step to migrate the state of program A.
[0054] Depending on the execution of the A control program and the state of the automated system to be controlled, executing the A control program during the migration step can adjust different values of different numbers of A data elements.
[0055] In extreme cases, during the execution of the migration step, all values of all A data elements in the A program state can be adjusted, or the value of any A data element in the A program state can be left unchanged.
[0056] In fact, during the execution of the migration step, the values of a certain number of A data elements are adjusted, the number being greater than 0 and less than the total number of all A data elements in the A program state.
[0057] If, during the execution of the migration step, all values of all A data elements in program state A are adjusted, and correspondingly, in the identification step, all A data elements in program state A that have corresponding associated B data elements in program state B are identified, then in the partial migration step, a full migration of program state A is required, corresponding to the migration in the migration step.
[0058] If, during the execution of the migration step, the value of any A data element of the A program state is not adjusted by the execution of the A control program, then correspondingly, no A data element of the A program state is identified in the identification step.
[0059] Therefore, in some migration steps, the adjusted values of data elements A in program A state are not migrated and mapped to the corresponding data elements B in program B state. In this case, the data migration will be completed as the partial migration steps are executed.
[0060] If, during the execution of the migration step, the execution of the A control program adjusts the values of a certain number of A data elements, and the number is greater than zero and less than the total number of all A data elements in the A program state, then only these A data elements are identified in the identification step.
[0061] In some migration steps, a certain number of values of a certain number of A data elements are migrated and mapped to corresponding B data elements. The number of values is significantly smaller than the total number of all A data elements in program state A that have corresponding B data elements in program state B.
[0062] Therefore, the execution time of some migration steps is shorter than the execution time of the migration steps themselves.
[0063] When the A control program is executed simultaneously using a migration algorithm during the execution of the identification step and the partial migration step, the shorter execution time of the partial migration step allows for the assignment of adjusted values to a smaller number of A data elements by executing the A control program during the execution of the identification step and the partial migration step.
[0064] Therefore, by performing partial migration steps, the difference between the states of program A and program B can be reduced compared to the difference between the states of program A and program B after the execution of partial migration steps.
[0065] Depending on the execution duration of the partial migration steps, it can be ensured that during the execution of the identification step and the partial migration steps, there will be no further adjustment of the values of the A data elements in the A program state due to the concurrent execution of the A control program.
[0066] In this scenario, the data migration will be completed after some migration steps are finished, because after the partial migration steps are completed, the state of program A will match the state of program B.
[0067] Mapping the value and / or adjusted value of data element A to the corresponding data element B to which it is assigned can involve changing how the corresponding value or adjusted value is presented. For example, an integer value can be represented as a floating-point value.
[0068] According to the implementation plan, the method further includes:
[0069] In the schedule determination step, the migration schedule from program state A to program state B is determined using a migration algorithm based on predefined schedule criteria.
[0070] This can achieve the following technical advantages: it can further improve the data migration from program state A to program state B.
[0071] For this purpose, migration progress is checked after some migration steps have been performed. Based on the migration progress, the success of the data migrations that have been performed can be assessed.
[0072] Considering the migration schedule, any additional steps required to successfully complete the data migration may be taken.
[0073] The purpose of data migration is to completely map program state A to program state B. In this context, complete mapping means that the value of data element A in program state A, which has a corresponding data element B in program state B, is mapped to the corresponding data element B in program state B.
[0074] According to the implementation plan, if the progress standard exceeds the first predefined threshold but is lower than the second predefined threshold, which is different from the first predefined threshold, the identification step and the partial migration step are repeated.
[0075] This allows for technological advantages that enable further improvements in data migration.
[0076] The schedule metric represents the numerical value of the match between the state of program A and the state of program B achieved through data migration.
[0077] As an alternative or alternative, a schedule metric can represent a numerical value indicating the approximation or distance between the state of program A and the state of program B achieved through data migration.
[0078] By considering the migration schedule in the form of schedule standards, some migration steps can be iteratively executed according to the determined schedule standards.
[0079] As described above, since the A control program is executed simultaneously during the identification step and the partial migration step, the execution time of the partial migration step is correspondingly shorter. A small number of A data elements in the A program state are assigned adjusted values. In the partial migration step, it is possible to migrate and map the continuously decreasing adjusted values of the corresponding A data elements to the corresponding B data elements.
[0080] This, in turn, leads to a further reduction in the execution time required to perform some migration steps.
[0081] By repeatedly executing the identification and partial migration steps, the execution time of each partial migration step can be further shortened. This allows the data migration to be interpreted as successful, either by not assigning adjusted values to other A data elements through the execution of the A control program, or by reducing the number of A data elements with adjusted values to a level where the result can be interpreted as successful data migration, due to the short execution time of the partial migration steps.
[0082] By repeatedly executing the identification step and partial migration steps according to the migration progress, the state of the migrated B program can be gradually approximated to the state of the A program of the concurrently executed A control program by continuously reducing the execution time required to execute the partial migration steps.
[0083] Therefore, data migration can be completed successfully without interrupting the execution of control program A.
[0084] According to the implementation plan, the method further includes:
[0085] In the migration completion step, if the progress standard reaches or falls below a predefined first threshold, the migration algorithm is used to complete the data migration and / or partial data migration from program state A to program state B.
[0086] This allows for technological advantages that enable further improvements in data migration.
[0087] Therefore, after the execution of some migration steps, if the progress criterion reaches or falls below the first predefined threshold, the data migration or partial migration can be successfully completed.
[0088] Therefore, a schedule criterion reaching or falling below a first predefined threshold is interpreted as a match between program A state and program B state achieved through migration.
[0089] By appropriately setting a first predefined threshold, and taking into account progress criteria after performing partial migration steps multiple times, a clear standard for the successful completion of data migration can be established (depending on the situation).
[0090] According to the implementation plan, the method further includes:
[0091] In the migration termination step, if the progress criterion reaches or exceeds a second predefined threshold, the data migration and / or partial data migration from program state A to program state B is terminated using a migration algorithm.
[0092] This allows for technological advantages that enable further improvements to data migration. In this context, reaching or exceeding a predefined second threshold is interpreted as data migration failure.
[0093] For example, if during the execution of the identification step and the partial migration step, the execution of the A control program assigns adjusted values to so many A data elements that the execution time of the partial migration step to be executed later does not decrease significantly and may even increase, then the iterative execution of the partial migration step cannot achieve a B program state that approximates the A program state that is constantly changing due to the synchronous execution of the A control program.
[0094] In this situation, continuing to iterate through partial migration steps may not lead to any improvement in the convergence of program B's state toward program A's state.
[0095] Unnecessary use of computing power can be avoided by terminating data migrations that fail to successfully align the state of program B with that of program A during concurrent execution of program A.
[0096] According to the implementation plan, the method further includes:
[0097] In the interruption step, if the progress criterion reaches or exceeds the second predefined threshold, the execution of the A control program is interrupted and an execution interruption of the A control program is generated, wherein the identification step and a partial migration step are performed during the interruption of the execution of the A control program.
[0098] This allows for the technical advantage of enabling further improvements to the data migration process. Here, as an alternative to terminating the data migration, the execution of control procedure A is interrupted if the schedule criterion reaches or exceeds a predefined second threshold.
[0099] When control procedure A is interrupted, data migration continues by re-executing the identification and partial migration steps.
[0100] Since no further adjustment of the values of A data elements in the A program state occurs when the execution of the A control program is interrupted, the data migration can be completed by re-executing some migration steps, and the B program state can be aligned with the A program state.
[0101] Although this requires accepting the interruption of the execution of the A control program, successful data migration can still be achieved.
[0102] In this scenario, the schedule criterion reaching or exceeding a predefined second threshold is equivalent to executing the A control procedure concurrently during the execution of a partial migration step. This results in so many A data elements being assigned adjusted values that it is impossible to significantly reduce the execution time of subsequent partial migration steps, and therefore it is impossible to achieve convergence from the B program state to the A program state through iterative execution of partial migration steps.
[0103] According to the implementation plan, the schedule criterion is defined as the number of A data elements with adjusted values in the A program state, and / or as the change in the number of A data elements with adjusted values in the A program state between time-sequential migration steps and / or partial migration steps.
[0104] This enables the following technical advantages: the schedule standard enables a clearly defined schedule for data migration.
[0105] By defining the progress criterion as the number of A data elements whose values have been adjusted by executing A control procedures during the identification and partial migration steps, a clear indication of the progress of data migration can be provided.
[0106] If, during the execution of a partial migration step, a small number of A data elements are assigned adjusted values, or no A data elements are adjusted accordingly, the data migration continues.
[0107] Therefore, the predefined first threshold can be defined as the corresponding small number of adjusted A data elements intended to correspond to a successful A data migration.
[0108] Therefore, during the execution of the identification step and some migration steps, a large number of A data elements are assigned adjusted values that will be identified as data migration degradation.
[0109] Therefore, the predefined second threshold is equivalent to a large number of adjusted A data elements.
[0110] As an alternative or additional method, the schedule criterion may be equivalent to the change in the number of A data elements assigned an adjusted value during the execution of at least two consecutive partial migration steps.
[0111] If, for two consecutive partial migration steps, the number of A data elements assigned an adjusted value decreases during the execution of these two consecutive partial migration steps, this is equivalent to positive progress in the data migration.
[0112] On the other hand, if the number does not change or increase during the sequential execution of multiple partial migration steps, this is equivalent to negative progress or degradation of the data migration.
[0113] In this context, the predefined first threshold of the schedule standard is equivalent to the reduction in the number of A data elements assigned an adjusted value during the execution of multiple partial migration steps.
[0114] On the other hand, the predefined second threshold is equivalent to the number of A data elements assigned to the adjusted value remaining constant or increasing during the execution of multiple sequential partial migration steps.
[0115] According to the implementation plan, the schedule determination steps include:
[0116] In the counting determination step, the number of A data elements with adjusted values in the A program state is determined after the partial migration step, and / or the change in the number of A data elements with adjusted values in the A program state is determined after the data migration step and after the partial migration step or after two consecutively executed partial migration steps.
[0117] This allows for the technical advantage of precisely considering the schedule criteria used to assess migration progress.
[0118] In the implementation plan, the schedule criterion is defined as the execution time of a partial migration step, and / or as a change in the execution time of temporally consecutive partial migration steps.
[0119] This allows for the following technical advantages: using the execution time required to perform partial migration steps as a schedule criterion allows for precise determination of migration progress.
[0120] Positive migration progress can be equated to short execution times for some migration steps, while negative migration progress or degradation can be equated to long execution times for some migration steps.
[0121] As described above, the execution time of some migration steps is equivalent to the number of adjusted A data elements to be migrated. Therefore, a smaller number of adjusted A data elements to be migrated results in a shorter execution time, while a correspondingly larger number of A data elements to be migrated results in a correspondingly longer execution time.
[0122] Therefore, the first predefined threshold can be equivalent to low execution time, while the second predefined threshold can be equivalent to the corresponding high execution time.
[0123] As an alternative or alternative, the schedule criterion can be equivalent to the change in the execution time of multiple sequentially executed partial migration steps.
[0124] If the execution time of the sequential partial migration steps is reduced, this is equivalent to a reduction in the number of A data elements whose values are migrated in each partial migration step.
[0125] Therefore, the reduced execution time of sequential partial migration steps allows the state of program B to progressively approximate the state of program A during the iterative execution of partial migration steps. This is equivalent to the positive progress of data migration.
[0126] Therefore, the first predefined threshold of the schedule criterion can be equated to a reduction in execution time.
[0127] On the other hand, if the execution time of the sequential partial migration steps stagnates or increases, it is impossible to reduce the number of A data elements to be migrated by iteratively executing partial migration steps, and it is impossible to adjust the state of program B to the state of program A by further executing additional partial migration steps.
[0128] Therefore, a predefined second threshold can be equivalent to a pause or increase in execution time.
[0129] The progress criterion used to determine migration progress can change between sequentially occurring partial migration steps. For example, for a partial migration step, the progress criterion could be defined as the number of changed data elements A; and for subsequent partial migration steps, the progress criterion could be defined as the change in the execution duration of the partial migration step. This will involve corresponding adjustments to the thresholds used.
[0130] According to the implementation plan, the schedule determination steps include:
[0131] In the duration determination step, the execution duration of a partial migration step is determined by the time measurement module, and / or the execution duration of the migration step and the partial migration step, or the change in the execution duration of two partial migration steps executed sequentially in time, is determined.
[0132] This offers the following technical advantages: by using a time measurement module to measure the execution duration, the migration progress of the data migration can be clearly determined.
[0133] According to the implementation plan, the identification steps include:
[0134] In the read step, a migration algorithm is used to read the write information, wherein the write information at least indicates an A data element with an adjusted value.
[0135] This enables the following technical advantages: by reading the written information via the migration algorithm, data element A whose value has been adjusted during the execution of the migration step or during the execution of the previous migration step can be uniquely identified.
[0136] According to the implementation plan, during the execution of the A control program, the write function writes to the write information, wherein by writing to the write information, the write function marks the A program state in the write information and adjusts the value of the A data element by executing the A control program during the execution of the migration step and / or identification step and / or partial migration step.
[0137] This allows for the following technical advantages: the write function enables continuous updates of the write information during the execution of program A.
[0138] In doing so, while executing the A control program, the write function writes the A data element whose value was adjusted during the execution of the A control program into the write information.
[0139] Once the value of a component of control program A is changed through the execution of control program A and the corresponding value of the A data element representing the component in the state of program A is adjusted, the corresponding information is written to the function and stored in the write information.
[0140] Therefore, for A data elements that have been assigned adjusted values through the execution of the A control program, the written information is always up-to-date. By reading the written information, the migration algorithm can immediately identify A data elements with adjusted values.
[0141] According to the implementation plan, the write information is generated by the write function during the execution of the migration step.
[0142] This allows for the following technical advantages: the written information includes information related to the migration algorithm.
[0143] For the migration algorithm, only adjustments to the values of data elements A during or after the execution of the migration step are relevant. Since write information is generated only during the execution of the migration step, adjustments to the values of data elements A in the A program state, which occur continuously during the execution of the A control program but will be performed before the migration step and are therefore irrelevant to the data migration, are not considered.
[0144] If no data migration is performed, the write function does not need to process the write information. This saves computational and memory resources.
[0145] According to the implementation plan, the write function continuously writes to the write information. Once the value of the corresponding A data element in the A program state is adjusted by the execution of the A control program, the write function marks the A data element in the write information.
[0146] This provides the following technical advantages: because the write function continuously writes to the write information during the execution of the A control program during the migration step or part of the migration step, the write information is always up-to-date with respect to the adjusted value of the A data element in the A program state.
[0147] Once an adjusted value is assigned to an A data element in program state A during the execution of a migration step or part of a migration step, the write function stores the corresponding information in the write information, based on which the corresponding A data element can be identified.
[0148] This allows the migration algorithm to identify, at any time, the A data element whose value was assigned an updated value during the execution of one of the migration steps or partial migration steps by reading the write information.
[0149] According to the implementation plan, during the cyclic execution of control program A according to the execution cycle, the write function writes to the write information at a predefined write time, wherein the predefined write time includes times from the following list: the start of the execution cycle, the end of the execution cycle, the defined time within the execution cycle, or during the execution pause between execution cycles.
[0150] This offers the following technical advantages: by allowing the write function to write the information at a predefined time, the handling of the write function can be simplified.
[0151] If, while adjusting the value of data element A in program A's state, the write function continuously writes corresponding information to the write function, and the migration algorithm only reads the written information after the previous migration step or part of the migration step is completed, then the written information may include many adjustments that will ultimately never be read by the migration algorithm.
[0152] For example, during the execution of a migration step or part of a migration step, an adjusted value can be assigned multiple times to a specific A data element through the execution of the A control program. Therefore, the corresponding information is transmitted or overwritten multiple times by the write function.
[0153] However, if the migration algorithm reads the write information at a predefined time, it cannot detect multiple overwrites of information about repeatedly adjusted data elements A in the write information. Instead, the migration algorithm only sees the latest version of the write information.
[0154] By writing information at predefined times, it is possible to reduce or avoid multiple overwritings of information within the writing process.
[0155] According to the implementation plan, after the migration algorithm reads the written information, the information read from the written information is marked as read, or it is deleted.
[0156] This can achieve the following technical advantages: when the identification step is performed multiple times and information is read and written multiple times in subsequent identification steps, it prevents the migration algorithm from re-identifying data element A that has been identified by the migration algorithm in the previous identification step, while the value of the corresponding data element A has not been readjusted.
[0157] By marking information as already read or by deleting information that has already been read by the migration algorithm in the previous identification step (i.e., in the previous read of writing information), it can be ensured that when the migration algorithm performs identification steps multiple times, it only reads relevant information during the read of writing information.
[0158] This prevents data element A from being identified multiple times during multiple executions of the identification step, and therefore prevents the corresponding value from being migrated multiple times during multiple executions of a partial migration step without the corresponding value being adjusted multiple times.
[0159] According to the implementation plan, the write information is in the form of a list, in which the write information lists the name and / or memory address of the A data element with the adjusted value in the A memory region.
[0160] This enables the following technical advantages: by listing the name and / or memory address of the corresponding A data element with the adjusted value in the write information, the migration algorithm can uniquely identify the corresponding A data element.
[0161] According to the implementation scheme, the write information is configured as a bit sequence, wherein the bit sequence indicates the A data element memory region of the A program state with an adjusted value for the A data element.
[0162] This provides the following technical advantages: by configuring the write information as a bit sequence, wherein A data elements with adjusted values are identified in the form of A data element memory regions within the corresponding A data element of the A program state, the write information can be provided with technically simple configuration.
[0163] By specifying an A data element memory region in which the corresponding A data element is stored, it becomes possible to explicitly identify A data elements with adjusted values.
[0164] In the implementation scheme, the storage area for A data elements displaying an A data element with an adjusted value is configured as a contiguous storage area, and in addition to the memory address of the A data element with the adjusted value, it also includes at least one memory address of another A data element without an adjusted value in the A memory area, wherein in partial data migration, the unadjusted value of the first A data element and the adjusted value of the first A data element arranged in the A data element storage area of the corresponding indicated A data element are migrated.
[0165] This allows for the technical advantage of simplifying the identification process and some migration steps.
[0166] For this purpose, the memory area for identifying A data elements with adjusted values specified in the write information is not reduced to the memory area for the corresponding A data element.
[0167] Instead, a memory region containing multiple A data elements is specified. By reducing the resolution of the memory region through which A data elements with adjusted values are identified, the handling of migration in the partial migration step of the identified A data elements is simplified.
[0168] The migration algorithm directly migrates contiguous memory regions containing multiple A data elements, rather than identifying A data elements individually.
[0169] According to the implementation scheme, a first write information and a second write information are generated in memory region A and / or memory region B, wherein the migration algorithm simultaneously reads the first write information and identifies A data elements marked therein with adjusted values, and the write function marks A data elements having values adjusted by executing A control program during the reading of the first write information and / or the execution of partial migration steps.
[0170] This enables the following technical advantages: by considering the first and second write information, the first write information can be written simultaneously via a write function and the second write information can be read via a migration algorithm.
[0171] Therefore, even during the read operation of the migration algorithm, information about data element A with adjusted values can be updated by the write function at any time.
[0172] The write information provides information about the A data element that was adjusted during the execution of the most recent migration step or part of the migration step and the associated identification step.
[0173] In this context, the written information can be configured as data units readable by the migration algorithm, such as files or readable storage areas.
[0174] According to the implementation plan, when the identification step and partial migration step are executed multiple times, the writing function alternately writes to the first write information and the second write information, and the migration algorithm alternately reads the corresponding other one of the first write information and the second write information.
[0175] This enables the following technical advantages: by alternating between writing to one of the first or second write information in the write function and reading out the other second or first write information through the migration algorithm, the migration algorithm can always obtain current information about the A data element with the adjusted value from the corresponding first (or second) write information, and can identify the corresponding A data element through this information.
[0176] In particular, when the A control program is executed cyclically, the execution cycle can cause the write function to write to the first write information in one execution cycle, while the migration algorithm reads the second write information, and in subsequent execution cycles, the write function writes to the second write information, while the migration algorithm reads the first write information.
[0177] In the implementation, the migration algorithm includes multiple migration functions, each configured to read the value of an A data element of program state A and / or the adjusted value of the A data element and write it to a B data element of program state B associated with the corresponding A data element, and wherein in some migration steps, only the migration function intended by the migration algorithm for migrating the A data element identified in the identification step is executed.
[0178] This can achieve the following technical advantages: the migration function of the migration algorithm allows for unique migration by executing the corresponding migration function, that is, mapping the value of data element A to the corresponding data element B of program state B.
[0179] In this context, a migration function can be configured or restricted to reading only certain A data elements and writing the corresponding read values to the associated B data elements. A migration function can be defined for each A data element.
[0180] As an alternative or alternative, a migration function can be defined for the corresponding data structure of each A data element or B data element.
[0181] By decomposing the function algorithm into individual transition functions, the program state A can be quickly and explicitly transitioned to the program state B by mapping the corresponding values of data elements A to their associated data elements B.
[0182] Executing various transfer functions in the order of execution allows for efficient execution of transfer functions and thus allows for efficient data migration.
[0183] According to the implementation plan, the migration functions of the migration algorithm are executed sequentially according to the execution order, wherein the execution of the migration function used to migrate A data elements that were not identified in the identification step is skipped in the execution order.
[0184] This allows for the following technical advantages: by skipping the transfer function that is not needed in each case, only the A data elements identified in the identification step are read out and the corresponding adjusted values of the transfer data elements are transferred.
[0185] By skipping the transfer functions intended for data elements or data structures that are not identified in the identification step of the execution sequence, it is ensured that only the transfer functions intended for migrating the corresponding identified A data elements are executed during the execution of the transfer algorithm.
[0186] Therefore, unnecessary migrations can be prevented for values that have not been adjusted and therefore do not require migration.
[0187] According to the implementation plan, the identification step and the partial migration step will be automatically performed immediately after the migration step is completed or immediately after the partial migration step that is executed immediately before it is completed.
[0188] This can achieve the following technical advantages: by automatically and immediately executing the identification step and partial migration step after the migration step is completed or after the previously executed partial migration step is completed, the execution of the migration algorithm can be accelerated.
[0189] Therefore, the migration algorithm will not wait for a request to execute another migration step after the migration step or a previous migration step has been completed.
[0190] Conversely, the identification step is performed immediately after the migration step or the previous part of the migration step is completed, followed by the partial migration step.
[0191] If no new A data element with an adjusted value is identified in the identification step, that is, if the A data element is not marked as having an adjusted value in the write information, then the data migration is complete.
[0192] However, if a new A data element with an adjusted value is identified during the automatically executed identification step, i.e., 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 criteria by performing additional partial migration steps, terminating the data migration, or interrupting the execution of the A control program.
[0193] According to the implementation plan, the identification step and partial migration step are performed during the cyclic execution of the A control program, starting from a predefined execution time within the execution cycle, where the predefined execution time is a time from the following list: the start of the execution cycle, the end of the execution cycle, and predefined times within the execution cycle.
[0194] This allows for the following technical advantages: by performing the identification and partial migration steps at predefined execution times, better control over data migration in terms of time can be achieved, and the data migration can be adapted to the execution of other processes.
[0195] In particular, when the A control program is executed cyclically according to the execution cycle, the execution of some migration steps can be scheduled according to the corresponding execution time.
[0196] This can be particularly advantageous when the write function writes to the write information to mark that data element A with an adjusted value also occurs at a predetermined time.
[0197] Therefore, by appropriately selecting the corresponding execution time and using the write function, the execution of the identification step can be synchronized with the writing of information into the write information.
[0198] According to the implementation plan, during the cyclical execution of control program A according to the execution cycle, migration steps and / or partial migration steps are executed during execution pauses or during multiple execution pauses between time-continuous execution cycles.
[0199] This achieves the following technical advantages: by performing migration steps and / or partial migration steps during pauses between execution cycles of the A control program, it can be ensured that the values of A data elements are not further adjusted during the execution of migration steps and / or partial migration steps within the pauses between execution cycles.
[0200] This can reduce the number of partial migration steps required to align the state of program B with the state of program A, because performing at least some partial migration steps during pauses between execution cycles can improve migration progress, since no additional adjusted values for other A data elements to be migrated are generated during the partial migration steps performed within the execution pause.
[0201] According to one aspect, a method for operating an automated system is provided, the method comprising:
[0202] In the first control step, control program A is executed and the automation system is controlled according to control program A;
[0203] In the data migration execution step, data migration from program A state of control program A to program B state of control program B is performed by executing the method according to any of the foregoing implementation schemes; and
[0204] In the second control step, after the data migration is complete, the B control program is executed to control the automation system.
[0205] This provides a technical advantage by offering an improved method for operating automated systems, which enables complete data migration from the state of control program A to the state of control program B while control program A is being executed concurrently.
[0206] After the data migration is successfully completed according to the above-described embodiment of the data migration method of the present invention, the execution of control program A is then terminated, and control program B is executed based on the migrated state of program B, thereby controlling the automation system. Attached Figure Description
[0207] The invention will be described in more detail with reference to the accompanying drawings, in which:
[0208] Figure 1 A schematic depiction of an automated system according to an implementation plan is shown.
[0209] Figure 2 A schematic depiction of data migration from program A state of control program A to program B state of control program B in an automation system according to an implementation scheme is shown.
[0210] Figure 3This is yet another schematic depiction of the data migration from program A state of control program A to program B state of control program B in an automated system according to yet another implementation scheme.
[0211] Figure 4 This is yet another schematic depiction of the data migration from program A state of control program A to program B state of control program B in an automation system according to yet another embodiment.
[0212] Figure 5 This is a flowchart of a method for updating the control program of an automated system according to the implementation plan;
[0213] Figure 6 This is yet another flowchart of a method for updating control programs of an automated system, according to yet another implementation scheme;
[0214] Figure 7 This is yet another flowchart of a method for updating control programs in an automated system, according to yet another implementation scheme;
[0215] Figure 8 This is yet another flowchart of a method for updating the control program of an automated system, according to yet another implementation scheme; and
[0216] Figure 9 It is a flowchart of a method for operating an automated system according to the implementation plan.
[0217] In the following text, the same reference numerals may be used for elements that have the same function. Depending on the circumstances, these elements may not be described again for each figure. However, in all embodiments, these elements with the same function may be provided accordingly. Detailed Implementation
[0218] Figure 1 A schematic depiction of an automated system 300 according to an implementation scheme is shown.
[0219] In the depicted embodiment, the automation system 300 includes a controller 301, a fieldbus system 303 connected to the controller, and a plurality of field devices 305 connected to the fieldbus system 303.
[0220] Controller 301 includes a memory region SP. The memory region SP further includes a memory region A SPA and a memory region B SPB.
[0221] According to the present invention, the automation system 300 includes a control program A and a control program B. Control program B is configured as a version of control program A and is derived from control program A through appropriate adaptation. Alternatively, control program B can also serve as the basis for control program A, which is further derived from control program B through corresponding adaptation.
[0222] Control program A and control program B are used to control the automation system 300 and the automation process that can be executed by the automation system 300, respectively.
[0223] In the depicted embodiment, control program A is stored in memory region A SPA, and control program B is stored in memory region B SPB. Alternatively, control program A and / or control program B may be stored in different regions of memory region SP of controller 301 and may be executed by controller 301.
[0224] According to the present invention, the A program state PA of control program A is stored in the A memory area SPA. Correspondingly, the B program state PB of control program B is stored in the B memory area SPB.
[0225] Program state PA is formed sequentially based on data structure DSA and stored in multiple data elements DA of data structure DSA. Correspondingly, program state PB is formed sequentially based on data structure DSB and stored in multiple data elements DB of data structure DSB.
[0226] For the purposes of this application, program state PA (A) and program state PB (B) can be understood as values representing the state of an automated process controlled according to control program A or control program B. Program state A includes the value of data element DA (A).
[0227] The corresponding values are the numerical values of variables, functions, and other components in program A. Similarly, program B state PB includes multiple values of data element DB in program B, which in turn represent the numerical values of components in program B.
[0228] Data element DA and data element DB represent memory regions in data structure DSA assigned to program state PA (A) and data structure DSB assigned to program state PB (B).
[0229] Data structure A (DSA) and data structure B (DSB) each represent a data type. According to the data type, the values of data element DA (A) and data element DB (B) are stored in memory respectively.
[0230] The A data structure DSA of program state PA is defined by the structure and components of program A, and the B data structure DSB of program state PB is defined by the structure and components of program B.
[0231] The A data element in program state PA represents the component that controls program A. The B data element in program state PB correspondingly represents the component that controls program B.
[0232] When control program A is executed by controller 301 to control automation system 300, the components of control program A (such as variables or other elements required for program execution) are assigned values accordingly.
[0233] The values of each component are the numerical values required to perform the calculation operations of control program A.
[0234] During the execution of control program A, these values of the components of control program A are stored in the corresponding A data element of program state PA. Therefore, program state PA represents the current state of the execution of control program A, and thus represents the current state of the automation process being executed by automation system 300.
[0235] During the execution of control program A, the values in the A data elements stored in the A program state PA are updated with the corresponding adjusted values according to the execution of control program A.
[0236] The adjusted value of data element A is the current value of the corresponding component of control program A during the corresponding execution period of control program A.
[0237] As already mentioned, the actual data structure of program state A will not change due to the execution of control program A. Only the values of the individual data elements stored in program state PA will be adjusted according to the execution of control program A.
[0238] This invention provides a method for data migration, wherein the A program state PA of control program A is mapped to the B program state PB of control program B.
[0239] During data migration, the B program state PB is stored according to a data structure that includes individual B data elements. However, each B data element of the B program state PB may not contain the completely up-to-date value of the A program state PA of the A control program A.
[0240] Conversely, during data migration, the B data elements of program state PB primarily contain initial values that are generally meaningless for the actual control of the automation system 300. For B data elements representing components newly introduced in program B and for which there is no corresponding A data element in program A, however, the initial values can be used as starting values for executing program B.
[0241] By using an appropriately embodied migration algorithm ALG, the value of the A data element of the current operating state PA of the automation system 300 controlled by executing control program A is mapped to the corresponding B data element of the B program state PB of control program B during data migration.
[0242] Control program B is derived from control program A by modification, and therefore includes components corresponding to those in control program A.
[0243] Therefore, program state PB of B includes B data elements corresponding to A data element A, which represents program state PA of control program A.
[0244] During the data migration process, the current value of the A data element in program state PA is mapped to the B data element in program state PB corresponding to the corresponding A data element.
[0245] After the migration is successful, the current value of the A data element of program state PA, which represents the current operating state of the automation system 300, is mapped to the corresponding B data element of program state PB.
[0246] Therefore, program state PB similarly represents the current operating state of automation system 300.
[0247] After the data migration is successful, the execution of control program A can be stopped, and control program B can be executed instead to control the automation system 300.
[0248] Therefore, the automation system 300 can be controlled by executing control program B based on the current operating state of the automation system 300 after successful data migration, thereby achieving seamless control of the automation system 300.
[0249] According to the present invention, the data migration from program state PA to program state PB described herein is performed during the simultaneous execution of control program A.
[0250] During the data migration, the automation system 300 continues to be controlled by executing control program A.
[0251] Figure 2 A schematic depiction of the data migration from program A state PA of control program A to program B state PB of control program B of an automation system 300 according to an embodiment is shown.
[0252] Figure 2 The steps of the data migration method according to the present invention are illustrated graphically.
[0253] Figure 2The timeline of data migration from program state PA (A) to program state PB (B) is shown.
[0254] To describe the various steps involved in the data migration from program state PA to program state PB, five different time points (time point t1, time point t2, time point t3, time point t4, and time point t5) are used. Figure 2 The time series in.
[0255] The time series proceeds from the first time point t1 along the direction of the drawn arrow to the fifth time point t5.
[0256] The time points from the first time point t1 to the fourth time point t4 are grouped into time intervals a), during which migration steps are performed.
[0257] Time point t5 represents time interval b), during which some migration steps are performed.
[0258] Figure 2 It 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 each time point from the first time point t1 to the fifth time point t5.
[0259] Column 3) represents the different states of program state PA stored in memory region SPA of A, corresponding to five time points (first time point t1 to fifth time point t5).
[0260] Column 4) represents the execution of control program A at the indicated time points (from the first time point t1 to the fifth time point t5), while the execution of the migration algorithm ALG and the associated data migration from program A state PA to program B state PB are also performed.
[0261] Column 5) shows the time series of write instructions SI, which can be used to identify data element DA whose value has been changed or adjusted by the execution of control program A.
[0262] Figure 2 based on Figure 1 The implementation scheme is shown. However, for clarity, only a portion of the automation system 300 is explicitly shown.
[0263] exist Figure 2 The diagram shows controller 301, specifically memory regions SP, A memory region SPA, and B memory region SPB. Program state PA is stored in memory region SPA, while program state PB is stored in memory region SPB.
[0264] In the simplified implementation shown, the A program state PA includes four A data elements DA: the first data element DA-1, the second A data element DA-2, the third A data element DA-3, and the fourth A data element DA-4.
[0265] Similarly, the B program state PB includes four B data elements DB: the first B data element DB-1, the second B data element DB-2, the third B data element DB-3, and the fourth B data element DB-4.
[0266] In the illustrated implementation, the first B data element DB-1, the second B data element DB-2, the third B data element DB-3, and the fourth B data element DB-4 correspond to the corresponding indices of the first A data element DA-1, the second A data element DA-2, the third A data element DA-3, and the fourth A data element DA-4.
[0267] As depicted, the data migration from program state PA to program state PB begins at a first time point t1. At the first time point t1, the corresponding value XA is stored in A data element DA, which represents the current value of a component of control program A represented by the corresponding A data element DA and reflects the current operating state of the automation system 300 controlled by executing control program A.
[0268] For this purpose, the first A data element DA-1 includes the first value XA-1. The second A data element DA-2 includes the second value XA-2. The third A data element DA-3 includes the third value XA-3. The fourth A data element DA-4 includes the fourth value XA-4.
[0269] The value XA of data element A represents the current operating status of automation system 300.
[0270] At the first time point t1, data migration has not yet been performed, and the current value XA of data element A has not been mapped to the corresponding data element DB of program state PB of program B.
[0271] At the first time point t1, data element DB of type B is assigned an initial value.
[0272] The first B data element DB-1 includes a first initial value I-1. The second B data element DB-2 includes a second initial value I-2. The third B data element DB-3 includes a third initial value I-3. The fourth B data element DB-4 includes a fourth initial value I-4.
[0273] The first initial value I-1, the second initial value I-2, the third initial value I-3, and the fourth initial value I-4 are used to assign initial values to data elements DB in B in case they cannot be overwritten during migration.
[0274] This is not the case in the implementation shown here, and the first initial value I-1, the second initial value I-2, the third initial value I-3, or the fourth initial value I-4 are not related to the operation state or the execution of the B control program B.
[0275] Between the first time point t1 and the second time point t2, a portion of the A control program A is executed based on the value XA of data element DA of A.
[0276] In the illustrated embodiment, the execution of control program A is performed according to execution cycle CC. In the illustrated embodiment, during the time interval a) between the first time point t1 and the third time point t3, the execution of control program A is provided by the first execution cycle CC-1. During the time interval a) between the third time point t3 and the fourth time point t4, the second execution cycle CC-2 is executed.
[0277] Between the first time point t1 and the second time point t2, at least a portion of the A control program A is executed, causing the first value XA-1 of the first A data element DA-1 to be adjusted to the first adjusted value YA-1.
[0278] The adjustment of the first A data element DA-1 is arbitrarily selected in the case shown, and the adjustment is only used to illustrate the steps of the process.
[0279] While executing control program A, the data migration from program A state PA to program B state PB begins.
[0280] For this purpose, in the depicted embodiment, the first transition function MIG-1 of the transition algorithm ALG is executed between the first time point t1 and the second time point t2. In the depicted embodiment, the first transition 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.
[0281] Between the subsequent time point t2 and the third time point t3, the second migration function MIG-2 is executed, and the second value XA-2 of the second A data element DA-2 is written to the corresponding second B data element DB-2.
[0282] Meanwhile, between the second time point t2 and the third time point t3, control program A continues to execute in the first execution cycle CC-1. By executing control program A, the second value XA-2 of the second A data element DA-2 becomes the second adjusted value YA-2.
[0283] Between the first time point t1 and the second time point t2, the first adjusted value YA-1 of the first A data element DA-1 obtained by executing the A control program A at the first time point t1 is written into the first A data element DA-1 of the A program state PA.
[0284] Between the third time point t3 and the fourth time point t4, the 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.
[0285] Meanwhile, between the second time point t2 and the third time point 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.
[0286] Between the third time point t3 and the fourth time point t4, the 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.
[0287] This completes the migration step according to the method of the present invention, and each B data element DB of the B program state PB corresponding to the corresponding A data element DA of the A program state PA is provided with the corresponding first value XA-1, second value XA-2, third value XA-3 and fourth value XA-4 of the corresponding A program state PA.
[0288] Between the third time point t3 and the fourth time point t4, by executing control program A, the fourth value XA-4 of the fourth A data element DA-4 is adjusted to the fourth adjusted value YA-4, and the corresponding fourth adjusted value YA-4 is written into the fourth A data element DA-4 of program state PA.
[0289] In the depicted implementation, program state A PA and program state B PB include the same number of data elements, and for each A data element DA of program state A PA, a corresponding B data element DB of program state B PB is provided. This is merely an example.
[0290] Different numbers of data elements can also be provided in program state PA and / or program state PB, such that not every A data element DA has a corresponding B data element DB, or not every B data element DB has a corresponding A data element DA.
[0291] After the migration step is completed, in the illustrated implementation, each B data element DB is assigned a corresponding first value XA-1, second value XA-2, third value XA-3, and fourth value XA-4 to the A program state PA through the migration step. However, the simultaneous execution of the A control program A still results in a change in the A program state PA relative to the B program state PB mapped by the data migration.
[0292] In the described implementation, program state PB of procedure B includes a first value XA-1, a second value XA-2, a third value XA-3, and a fourth value XA-4. In contrast, program state PA of procedure A includes a first adjusted value YA-1, a second adjusted value YA-2, a third value XA-3, and a fourth adjusted value YA-4.
[0293] Therefore, the data migration achieved through the migration step was unsuccessful because after the migration step was completed, the state PB of program B was different from the state PA of program A.
[0294] According to the present invention, the identification step is then performed using the ALG transition algorithm. In the identification step, the A data element DA of the A program state PA is determined, wherein the first value XA-1, the second value XA-2, the third value XA-3, and the fourth value XA-4 are adjusted to the first adjusted value YA-1, the second adjusted value YA-2, and the fourth adjusted value YA-4 during the execution of the transition step.
[0295] According to the described implementation scheme, in the identification step, the transfer 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, wherein the first value XA-1, the second value XA-2, and the fourth value XA-4 are adjusted to the first adjusted value YA-1, the second adjusted value YA-2, and the fourth adjusted value YA-4 during the execution of the transfer step.
[0296] According to the present invention, after the migration algorithm ALG identifies an A data element DA having a first adjusted value YA-1, a second adjusted value YA-2, and a fourth adjusted value YA-4, at least one partial migration step is performed.
[0297] In some migration steps, at least the first adjusted value YA-1, the second adjusted value YA-2, and the fourth adjusted value YA-4 of data element DA identified in the identification step will be migrated, mapped, or transferred to the corresponding data element DB.
[0298] Figure 2 The partial migration steps during the time interval b) between the fourth time point t4 and the fifth time point t5 are described. 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 steps 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, write the second adjusted value YA-2 of the second A data element DA-2 to the corresponding associated second B data element DB-2, and write the fourth adjusted value YA-4 of the fourth A data element DA-4 to the associated fourth B data element DB-4 of the B program state PB.
[0299] In the illustrated implementation, the partial migration step migrates only the first adjusted value YA-1, the second adjusted value YA-2, and the fourth adjusted 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.
[0300] Alternatively, the first value XA-1, the second value XA-2, the third value XA-3, and the fourth value XA-4 of the unrecognized A data element DA can also be migrated in some migration steps.
[0301] Figure 2 No further execution of control procedure A is shown during the partial migration step performed in time interval b).
[0302] This is done primarily for the purpose of simplifying the description. According to the present invention, control program A continues to execute with the aid of the migration algorithm ALG while performing some migration steps.
[0303] Similar to the above description, the parallel execution of control program A and the corresponding partial migration steps may lead to further deviations between program A state PA and program B state PB, as represented by the execution of migration steps and partial migration steps.
[0304] However, executing control program A during the execution of a partial migration step does not necessarily cause changes to 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. This allows the corresponding generated program B state PB to match program A state PA after the partial migration step is completed.
[0305] In this scenario, the data migration from program state PA to program state PB can be successfully completed.
[0306] According to the implementation plan, after the completion of some migration steps in time period b), the migration progress is considered in terms of schedule criteria to evaluate subsequent methodological steps.
[0307] For example, progress criteria may include the number of A data elements DA that are marked with adjusted values and identified in the identification step after the completion of a partial migration step.
[0308] As an alternative or additional method, the number of identified A data elements (DA) can be defined between migration steps and partial migration steps or between two consecutive partial migration steps.
[0309] As an alternative or additional method, the schedule criterion may be defined as the execution time required to perform a migration step or a partial migration step, or as the change in execution time between two consecutive partial migration steps or between a migration step and a subsequent partial migration step.
[0310] According to the implementation plan, if the progress standard exceeds a predefined first threshold but falls below a predefined second threshold, the identification step and part of the migration step can now be repeated.
[0311] On the other hand, if the progress standard is lower than or reaches the first predefined threshold, the data migration can be considered successful and completed accordingly.
[0312] On the other hand, if the schedule criteria exceed or reach a second predefined threshold, the data migration can be interpreted as unsuccessful and terminated accordingly.
[0313] Alternatively, the execution of control procedure A can be interrupted after a second predefined threshold is reached or exceeded, and the identification step and part of the migration step can be repeated during the interruption of control procedure A.
[0314] The execution interruption of control program A mainly occurs between two consecutive execution cycles.
[0315] The first predefined threshold represents the threshold for positive progress or improvement in data migration, while the second predefined threshold represents the threshold for negative progress or degradation in data migration.
[0316] The first predefined threshold can be equivalent to a small number of identified A data elements (DA), or equivalent to a short execution time for the corresponding migration steps.
[0317] The second predefined threshold can be equivalent to a large number of identified A data elements DA, or equivalent to a long execution time for the corresponding migration step.
[0318] Therefore, the second predefined threshold can be equivalent to the number of identified A data elements DA remaining constant or increasing between two consecutive partial migration steps, or equivalent to the execution time of the corresponding temporally consecutive partial migration steps remaining constant or increasing.
[0319] After the migration step and / or the most recently executed partial migration step, the first predefined threshold and / or the second predefined threshold can be adjusted.
[0320] Specifically, the threshold can be adjusted by referring to the progress of some migration steps performed earlier. In the case of positive progress (i.e., the number of adjusted data elements decreases and / or the execution duration of some migration steps decreases), the threshold can be adjusted downward, i.e., adjusted to a smaller value.
[0321] In the case of negative progress (that is, an increase in the number of adjusted data elements and / or execution time), the threshold can be adjusted to a higher value accordingly.
[0322] Therefore, the first predefined threshold can be equivalent to a corresponding predefined reduction rate of the number of identified A data elements DA or a predefined reduction in the execution time of some migration steps.
[0323] Alternatively, the first predefined threshold can also be equivalent to the fact that even after the corresponding partial migration step is completed, no A data element DA with the adjusted value YA is identified, and therefore, after the corresponding partial migration step is completed, the B program state PB corresponds to the A program state PA.
[0324] On the other hand, the second predefined threshold can be equivalent to the fact that no change in execution duration is detected between two consecutive partial migration steps.
[0325] In the illustrated implementation, identification of an A data element DA provided with an adjusted value YA is achieved by reading and writing information SI, the value of which is adjusted during the execution of a migration step or a partial migration step.
[0326] In the described implementation, the write function FUNC marks the A data element DA in the write information SI as having its value XA adjusted to the adjusted value YA during the execution of the migration step.
[0327] In the described implementation, the write function FUNC writes the name and / or memory address of the A data element DA, which is adjusted to the corresponding adjusted value YA, into the write information SI during the execution of the migration step by simultaneously executing the A control program A.
[0328] Alternatively, the memory region storing the corresponding A data element DA can be listed in the write information SI.
[0329] Therefore, during the first execution cycle CC-1, the write function FUNC writes the first A data element DA-1 and the second A data element DA-2 into the write information SI. During the second execution cycle CC-2, the write function FUNC further marks the fourth A data element DA-4 in the write information SI.
[0330] By reading from the correspondingly generated write information SI, 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.
[0331] Therefore, in some migration steps, the migration algorithm ALG can cause the migration of the first adjusted value YA-1 of data element A DA-1, the second adjusted value YA-2 of data element A DA-2, and the fourth adjusted value YA-4 of data element A DA-4.
[0332] In the illustrated implementation, the write function FUNC writes the corresponding A data element DA with the adjusted value to the write information SI. Once the value XA of A data element DA is adjusted to the adjusted value YA through the execution of the A control program, the corresponding A data element DA is marked by the write function FUNC or written to the write information SI.
[0333] Alternatively, the write function FUNC can write the corresponding A data elements DA to the write information SI or mark them therein at a predefined time.
[0334] For example, a predefined time point may include the start or end of the corresponding execution cycle CC, or a predefined time point within the execution cycle CC.
[0335] In the illustrated implementation, after the migration step is completed between the fourth time point t4 and the fifth time point t5, the recognition step and subsequent partial migration steps are immediately executed by the migration algorithm ALG.
[0336] Alternatively, the identification step and some migration steps can be performed at a predefined execution time.
[0337] For example, these predefined execution times may include the start or end of execution cycle CC and / or predefined time points within the execution cycle CC of control program A.
[0338] The write time of the write function FUNC writing the corresponding A data element DA to the write information SI and the read time of the migration algorithm ALG reading information from the write information SI can be coordinated so that the read time occurs after the write time.
[0339] According to the implementation plan, when the identification step and subsequent partial migration step are repeatedly performed, and information is repeatedly read from the written information SI by means of the migration algorithm ALG, if the written information SI is read at an earlier time, the information that has been read during the earlier identification step can be marked as read or deleted from the written information SI.
[0340] This ensures that when the write information SI is read by the migration algorithm ALG, the migration algorithm ALG only reads information from the write information SI that it has not read at any previous time.
[0341] According to the described implementation scheme, the execution of the first transfer function MIG-1, the second transfer function MIG-2, the third transfer function MIG-3, and the fourth transfer function MIG-4 of the transfer algorithm ALG is performed in a specific execution order. If, in a partial transfer step, only the adjusted value YA of the corresponding A data element DA is transferred, then only the transfer function MIG used to transfer the corresponding A data element DA is executed. Therefore, the execution of other transfer functions is skipped.
[0342] In the illustrated implementation, the third A data element DA-3 does not have an adjusted value YA, and therefore is not listed in the write information SI, and is therefore not migrated again in some migration steps.
[0343] Therefore, the execution of the third migration function MIG-3, which is used to migrate the value of the third A data element DA-3, is skipped in the execution sequence.
[0344] In the given example, during a partial migration step, control program A continues execution in the second execution cycle CC-2 shown.
[0345] In the illustrated implementation, the write information SI is presented in list format.
[0346] According to the implementation plan, the migration step and / or the identification step and / or the partial migration step (or, in the case of multiple executions, multiple identification steps and multiple partial migration steps) can each be executed during the pause between the execution cycles CC of control program A.
[0347] Figure 3 This is yet another schematic depiction of the data migration from program A state PA of control program A to program B state PB of control program B of an automation system 300 according to yet another embodiment.
[0348] The implementation scheme shown is based on Figure 2 The implementation scheme is described herein and includes all the methods and steps described therein. Figure 3 Structure and Figure 2 Similarly. However, Figure 3 To improve the readability of the diagrams, they are depicted in a simplified form.
[0349] In the illustrated implementation, the write information SI is configured in the form of a bit sequence. The A data element DA, identified by the write function FUNC in the write information SI, is thus identified in the form of the A data element memory region SDA, where the A data element is stored in the A program state PA.
[0350] A data element DA can also extend across multiple A data element memory regions SDA. In this case, multiple A data element memory regions SDA are listed in the memory information SI to identify the corresponding A data element DA.
[0351] Therefore, column 3) shows that the A data element DA of program state PA is stored in the corresponding A data element memory area SDA. The first A data element DA-1 is assigned to the first A data element memory area SDA-1.
[0352] The second A data element DA-2 is assigned to the second A data element memory area SDA-2. In contrast, the third A data element DA-3 and the fourth A data element DA-4 are jointly assigned to the third A data element memory area SDA-3.
[0353] and Figure 2 The method steps are similar, simultaneously performing data migration via the execution of the migration algorithm ALG and executing the A control program A.
[0354] Between the second time point t2 and the third time point t3, the third value XA-3 of the third A data element DA-3 is adjusted to the corresponding third adjusted value YA-3 by executing the A control program A.
[0355] Therefore, the write function FUNC marks the third A data element DA-3 in the write information SI as an A data element DA that has been provided with a third adjusted value YA-3.
[0356] In the illustrated implementation, the third A data element DA-3 is marked in the write information SI by specifying the corresponding A data element memory region SDA to which the third A data element DA-3 is assigned in the A program state PA.
[0357] Therefore, the write function FUNC specifies in the write information SI that the third A data element DA-3 is assigned to the third A data element memory region SDA-3.
[0358] During the time interval b) between the identification step and the partial migration step performed by the migration algorithm ALG, the migration algorithm ALG reads and writes information SI during the identification step.
[0359] Therefore, the migration algorithm ALG identifies the third A data element DA-3, which has been assigned the third adjusted value YA-3, via the third A data element memory region SDA-3 specified in the write information SI.
[0360] However, since the fourth A data element DA-4 is also assigned to the memory region SDA-3 of the third A data element, in part of the migration steps, 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 A data element DA-4.
[0361] By identifying A data element DA in the write information SI via the A data element memory region SDA, the migration algorithm ALG can identify contiguous memory regions and multiple associated A data elements DA.
[0362] Therefore, migration based on write information SI can involve multiple A data elements DA, as shown in the example, and not all of these multiple A data elements need to be assigned an adjusted value YA.
[0363] However, by specifying the A data element memory region SDA in the write information SI, each A data element DA can also be identified and migrated accordingly, such as... Figure 3 As shown in the case of the first A data element DA-1 and the second A data element DA-2.
[0364] A data element DA can also extend across multiple A data element memory regions SDA. In this case, for the corresponding A data element DA, all occupied A data element memory regions SDA can be listed.
[0365] Figure 4 This is yet another schematic depiction of the data migration from program A state PA of control program A to program B state PB of control program B of an automation system 300 according to yet another embodiment.
[0366] Figure 4 The implementation plan is again based on Figure 2 The implementation scheme is described herein and includes all the features described therein.
[0367] and Figure 2 compared to, Figure 4 It is shown in a greatly simplified form. However, this is not intended to constitute a limitation on the illustrated embodiment, but merely due to the simplification of the figures.
[0368] In the illustrated embodiment, the controller 301 includes first write information SI-1 and second write information SI-2. The first write information SI-1 and the second write information SI-2 are formed in separate memory regions SP and can be used as independent components.
[0369] In the described implementation, the first write information SI-1 and the second write information SI-2 are used to simultaneously write information by the write function FUNC and read information by the migration algorithm ALG.
[0370] Therefore, in the described implementation, in the first execution cycle CC-1, the write function FUNC writes the corresponding information into the first write information SI-1, and the migration algorithm ALG reads the previously written information from the second write information SI-2.
[0371] In the subsequent second execution cycle CC-2, the write function FUNC writes the corresponding information into the second write information SI-2, and the migration algorithm ALG reads the information written by the write function FUNC in the previous first execution cycle CC-1 from the first write information SI-1.
[0372] By alternately reading and writing the first written information SI-1 and the second written information SI-2, the migration algorithm ALG can read information simultaneously and the write function FUNC can write new information.
[0373] Figure 5 A flowchart of a method 100 for updating the control program of an automation system 300 according to an embodiment is shown.
[0374] In order to update the control program of the automation system by migrating the program state data of the control program, the migration algorithm ALG first performs data migration from program state PA to program state PB in migration step 101.
[0375] In data migration, the value XA stored in the A data element of program state PA is mapped to the B data element DB of program state PB associated with the corresponding A data element DA.
[0376] During the execution of migration step 101, control program A continues to run.
[0377] Subsequently, in identification step 103, the migration algorithm ALG identifies at least one A data element DA of the A program state PA with an adjusted value YA.
[0378] During the execution of migration step 101, at least one adjusted value YA of at least one identified A data element DA is adjusted by executing A control procedure A.
[0379] Subsequently, in partial migration step 105, partial data migration is performed by the migration algorithm ALG. In partial data migration, at least one adjusted value YA of 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.
[0380] Figure 6 Another flowchart of a method 100 for updating the control program of an automation system 300 according to yet another embodiment is shown.
[0381] Figure 6 The implementation plan in the document is based on Figure 5 The implementation scheme is described herein and includes all the methods and steps described therein.
[0382] In the illustrated implementation, the migration algorithm ALG first determines the migration schedule based on predefined schedule criteria in the schedule determination step 107.
[0383] If the progress criterion is determined to exceed the first predefined threshold but fall below the second predefined threshold, then repeat identification step 103 and partial migration step 105.
[0384] The identification step 103 and the partial migration step 105 can be performed iteratively, and the repeated execution continues as long as the progress criterion is determined in the progress determination step 107 to continue to exceed the first predefined threshold and fall below the second predefined threshold.
[0385] However, if the schedule determination step 107 determines that the schedule criterion reaches or falls below a predefined first threshold, then in the migration completion step 109, the data migration from program state PA to program state PB of program B is successfully completed.
[0386] However, if the schedule criterion is determined to have reached or exceeded the second predefined threshold in the schedule determination step 107, the data migration can be terminated as a failure in the migration termination step 111.
[0387] Alternatively, in interruption step 113, if the schedule criterion is determined to have reached or exceeded the second predefined threshold in schedule determination step 107, the execution of control program A can be interrupted, and identification step 103 and partial migration step 105 can be repeated.
[0388] Figure 7 Another flowchart of a method 100 for updating the control program of an automation system 300 according to yet another embodiment is shown.
[0389] Figure 7 The implementation plan in the document is based on Figure 6 The implementation scheme is described herein and includes all the methods and steps described therein.
[0390] In the illustrated implementation, the progress criterion can be defined as the number of A data elements DA that have been marked as having been assigned an adjusted value YA after partial migration step 105 is completed.
[0391] As an alternative or additional method, the progress criterion can be defined as the change in the number of marked A data elements DA after two consecutive partial migration steps 105 have been performed.
[0392] Therefore, the progress determination step 107 includes a count determination step 115, wherein the count of A data element DA that has been marked as having been assigned an adjusted value YA is determined after the corresponding partial migration step 105 is performed.
[0393] Therefore, in the counting determination step 115, the change in the corresponding number of A data elements DA used in the continuous part migration step 105 can be determined.
[0394] As an alternative or additional method, the schedule criterion may be defined as the execution duration of a partial migration step 105, or as a change in the execution duration of consecutive partial migration steps 105.
[0395] Therefore, in the duration determination step 117, the duration required to perform various partial migration steps 105 can be measured by the time measurement module.
[0396] Therefore, the time measurement module can determine the change in the execution duration of the sequentially executed partial migration steps 105.
[0397] Figure 8 Another flowchart of a method 100 for updating the control program of an automation system 300 according to yet another embodiment is shown.
[0398] Figure 8 The implementation plan in the document is based on Figure 7 The implementation scheme is described herein and includes all the methods and steps described therein.
[0399] In the illustrated embodiment, in order to identify an A data element DA with an adjusted value YA by means of the migration algorithm ALG in identification step 103, the write information SI, in which the A data element DA with the adjusted value YA is marked, is read in read step 119.
[0400] Figure 9 A flowchart of a method 200 for operating an automated system 300 according to yet another embodiment is shown.
[0401] In order to operate the automation system 200, control program A is executed in the first control step 201, and the automation system 300 is controlled accordingly based on control program A.
[0402] In data migration execution step 203, data migration from program state PA to program state PB is then performed according to the method 100 of the present invention.
[0403] In the second control step 205, after the data migration is successfully completed, the execution of control program A is terminated, and control program B is executed based on the migrated program B state PB.
[0404] List of reference numerals
[0405] 100 methods
[0406] 101 Migration Steps
[0407] 103 Identification Steps
[0408] 105 Partial Migration Steps
[0409] 107. Schedule Determination Steps
[0410] 109 Migration Completion Steps
[0411] 111 Migration Termination Steps
[0412] 113 Interruption Step
[0413] 115 Counting Determination Steps
[0414] 117 Duration Determination Steps
[0415] 119 Reading Steps
[0416] 200 methods
[0417] 201 First Control Step
[0418] 203 Data Migration Execution Steps
[0419] 205 Second Control Step
[0420] 300 Automation System
[0421] 301 Controller
[0422] 303 Fieldbus System
[0423] 305 Field Device
[0424] AA control program
[0425] BB control program
[0426] PA A Program Status
[0427] PB B program status
[0428] SP memory area
[0429] SPA A memory region
[0430] SPB B memory area
[0431] DSA A Data Structure
[0432] DSB B Data Structure
[0433] DA A data element
[0434] DA-1 First A Data Element
[0435] DA-2 Second A Data Element
[0436] DA-3 Third A Data Element
[0437] DA-4 Fourth A Data Element
[0438] DB B data elements
[0439] DB-1 First B Data Element
[0440] DB-2 Second B Data Element
[0441] DB-3 Third B Data Element
[0442] DB-4 Fourth B Data Element
[0443] The value of data element XA
[0444] The value of the first A data element XA-1
[0445] The value of the second data element A in XA-2
[0446] XA-3 The value of the third A data element
[0447] The value of the fourth A data element in XA-4
[0448] Adjusted value of YA A data element
[0449] YA-1 Adjusted value of the first A data element
[0450] YA-2 Adjusted value of the second A data element
[0451] YA-3 Adjusted value of the third A data element
[0452] YA-4 Adjusted value of the fourth A data element
[0453] SI write information
[0454] SI-1 First Write Information
[0455] SI-2 Second Write Information
[0456] SDA A Data Element Storage Area
[0457] SDA-1 First A Data Element Memory Area
[0458] SDA-2 Second A Data Element Memory Area
[0459] SDA-3 Third A Data Element Memory Area
[0460] MIG transfer function
[0461] MIG-1 First Transfer Function
[0462] MIG-2 Second Transfer Function
[0463] MIG-3 Third Transfer Function
[0464] MIG-4 Fourth Transfer Function
[0465] CC execution cycle
[0466] CC-1 First Execution Cycle
[0467] CC-2 Second Execution Cycle
[0468] I-1 First Initial Value
[0469] I-2 Second Initialization Value
[0470] I-3 Third Initial Value
[0471] I-4 Fourth Initialization Value
[0472] ALG migration algorithm
[0473] FUNC write function
[0474] t time
[0475] t1 time point
[0476] t2 time point
[0477] t3 time point
[0478] t4 time point
[0479] t5 time point
Claims
1. A method (100) for updating a control program of an automation system, including a program state of the control program, wherein a controller (301) of the automation system (300) includes 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 the A program state (PA) of the A control program (A) is stored in an A memory region (SPA) of the controller (301), wherein the B program state (PB) of the B control program (B) is stored in a B memory region (SPB), wherein the A program state includes a plurality of A... The method includes storing data elements (DA) in the form of an A data structure (DSA), wherein the B program state (PB) is stored in the form of a B data structure (DSB) including multiple B data elements (DB), wherein the A data element (DA) represents a component of the A control program (A), wherein the B data element (DB) represents a component of the B control program (B), wherein the A data element (DA) of the A program state (PA) includes a value (XA) of the component of the A control program (A), wherein the value (XA) of the data element (DA) of the A program state (PA) maps to the current state of the automation system (300) controlled by executing the A control program (A), the method comprising: In the migration step (101), a migration algorithm (ALG) is used to perform data migration from the A program state (PA) to the B program state (PB), wherein in the data migration, the value (XA) of the corresponding component of the A control program (A) stored in the A data element (DA) of the A program state (PA) is mapped to the B data element (DB) of the B program state (PB) representing the corresponding component of the B control program (B), and wherein the A control program (A) continues to be executed during the execution of the migration step (101); In the identification step (103), at least one A data element (DA) of the A program state (PA) with an adjusted value (YA) is identified by means of the migration algorithm (ALG), wherein the at least one adjusted value (YA) of the at least one identified A data element (DA) is adjusted by the execution of the A control program (A) during the execution of the migration step (101); and In the partial migration step (105), a partial data migration is performed using the migration algorithm (ALG), wherein in the partial data migration, the at least one adjusted value (YA) of the at least one A data element (DA) is mapped to the B data element (DB) of the B program state (PB) associated with the A data element (DA).
2. The method (100) according to claim 1, wherein in the partial migration step (105), only the at least one adjusted value (YA) of the at least one identified A data element (DA) is migrated.
3. The method (100) according to claim 1 or 2, further comprising: In the schedule determination step (107), the migration schedule from program state A (PA) to program state B (PB) is determined by means of the migration algorithm (ALG) according to a predefined schedule criterion.
4. The method (100) according to claim 3, wherein if the progress criterion exceeds a first predefined threshold and is lower than a second predefined threshold different from the first predefined threshold, the identification step (103) and the partial migration step (105) are repeated.
5. The method (100) according to claim 3 or 4, further comprising: In the migration completion step (109), if the progress standard reaches or falls below the predefined first threshold, the data migration from program state A (PA) to program state B (PB) and / or the partial data migration is completed by means of the migration algorithm (ALG).
6. The method (100) according to any one of claims 3 to 5, further comprising: In the migration termination step (111), if the progress criterion reaches or exceeds the second predefined threshold, the data migration from program state A (PA) to program state B (PB) and / or the partial data migration is terminated by means of the migration algorithm (ALG).
7. The method (100) according to any one of claims 3 to 4, further comprising: In the interruption step (113), if the progress criterion reaches or exceeds the second predefined threshold, the execution of the A control program (A) is interrupted and an execution interruption of the A control program (A) is generated, wherein the identification step (103) and the partial migration step (105) are performed during the interruption of the execution of the A control program (A).
8. The method (100) according to any one of claims 3 to 7, wherein the progress criterion is defined as the number of A data elements (DA) with adjusted values (YA) in the A program state (PA), and / or is defined as the change of the number of A data elements (DA) with adjusted values (YA) in the A program state (PA) between time-sequential migration steps (101) and / or partial migration steps (105).
9. The method (100) according to claim 8, wherein the progress determination step (107) comprises: In the counting determination step (115), the number of A data elements (DA) with adjusted values (YA) in the A program state (PA) is determined after the partial migration step (105), and / or the change in the number of A data elements (DA) with adjusted values (YA) in the A program state (PA) is determined after the data migration step is performed and after the partial migration step (105) is performed or after two consecutively performed partial migration steps (105).
10. The method (100) according to any one of claims 3 to 9, wherein the progress criterion is defined as the execution duration of the execution of the partial migration step (105), and / or is defined as a change in the execution duration of the execution of the temporally continuous partial migration steps (105).
11. The method (100) of claim 10, wherein the progress determination step (107) comprises: In the duration determination step (117), the execution time of the partial migration step (105) is determined by means of a time measurement module, and / or the change in the execution time of the execution of the migration step (101) and the partial migration step (105) or two partial migration steps (105) executed sequentially in time is determined.
12. The method (100) according to any one of the preceding claims, wherein the identification step (103) comprises: In the read-out step (119), the write information (SI) is read out using the migration algorithm (ALG), wherein the write information (SI) indicates at least the A data element (DA) having an adjusted value.
13. The method (100) according to claim 12, wherein during the execution of the A control program (A), a write function (FUNC) writes to the write information (SI), and wherein by writing to the write information (SI), the A data element (DA) of the A program state (PA) is marked in the write information (SI) by means of the write function (FUNC), the value (XA) of the A data element has been adjusted to an adjusted value (YA) by executing 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. The method (100) of claim 13, wherein the write information (SI) is generated by the write function (FUNC) when the migration step (101) is performed.
15. The method (100) according to claim 13 or 14, wherein the write function (FUNC) continuously writes to the write information (SI), and wherein once the value (XA) of the corresponding A data element (DA) in the A program state (PA) is adjusted to the adjusted value (YA) by the execution of the A control program (A), the write function (FUNC) marks the A data element (DA) in the write information (SI).
16. The method (100) according to any one of claims 13 to 15, wherein during the cyclic execution of the A control program (A) in an execution cycle (CC), the write function (FUNC) writes to the write information (SI) at a predefined write time, and wherein the predefined write time includes times from the following list: the start of the execution cycle (CC), the end of the execution cycle (CC), the defined time within the execution cycle (CC), and the execution pause period between execution cycles (CC).
17. The method (100) according to any one of claims 12 to 16, wherein after reading the write information (SI) by means of the migration algorithm (ALG), the read information from the write information (SI) is marked as read or deleted.
18. The method (100) according to any one of claims 12 to 17, wherein the write information (SI) is in the form of a list, and wherein the write information (SI) lists the name and / or memory address of the A data element (DA) with the adjusted value (YA) of the A program state (PA) in the A memory region (SPA).
19. The method (100) according to any one of claims 12 to 18, wherein the write information (SI) is in the form of a bit sequence, and wherein the bit sequence indicates an A data element memory region (SDA) of the A program state (PA) having an adjusted value (YA) for the A data element (DA).
20. The method (100) of claim 19, wherein in each case, the A data element memory region (SDA) indicated for an A data element (DA) having an adjusted value (YA) is configured as a contiguous memory region, and in addition to the memory address of the A data element (DA) having the adjusted value (YA), at least one memory address in the A memory region (SPA) of another A data element (DA) having an unadjusted value (XA) of the A program state (PA) is included, and wherein in the partial data migration, the value (XA) and / or the adjusted value (YA) of the A data element (DA) arranged in the corresponding displayed A data element memory region (SDA) is migrated.
21. The method (100) according to any one of claims 12 to 20, wherein a first write information (SI1) and a second write information (SI2) are generated in the A memory region (SPA) and / or the B memory region (SPB), and wherein the migration algorithm (ALG) simultaneously reads the first write information (SI1) and identifies an A data element (DA) marked therein having an adjusted value (YA), and the write function (FUNC) marks the A data element (DA) having a value (YA) adjusted by executing the A control program (A) during the execution of the first write information (SI1) and / or the partial migration step (105).
22. The method (100) according to claim 21, wherein after multiple executions of the identification step (103) and the partial migration step (105), the write function (FUNC) alternately writes to the first write information (SI1) and the second write information (SI2), and the migration algorithm (ALG) alternately reads out the corresponding other of the first write information (SI1) and the second write information (SI2).
23. The method (100) according to any one of the preceding claims, wherein the migration algorithm (ALG) comprises a plurality of migration functions (MIGs), wherein each of the migration functions (MIGs) is configured to read the value (XA) and / or the adjusted value (YA) of the A data element (DA) of the A program state (PA) and write it into the B data element (DB) of the B program state (PB) associated with the corresponding A data element (DA), and wherein in the partial migration step (105), only the migration function (MIG) intended by the migration algorithm (ALG) for migrating the A data element (DA) identified in the identification step (103) is executed.
24. The method (100) of claim 23, wherein the migration function (MIG) of the migration algorithm (ALG) is executed sequentially according to the execution order, and wherein the execution of the migration function (MIG) for migrating A data elements (DA) not identified in the identification step (103) is skipped in the execution sequence.
25. The method (100) according to any one of the preceding claims, wherein the identification step (103) and the partial migration step (105) are automatically executed immediately after the completion of the migration step (101) or immediately before the completion of the partial migration step (105).
26. The method (100) according to any one of the preceding claims, wherein the identification step (103) and the partial migration step (105) are performed from a predefined execution time during the cyclic execution of the A control program (A) in an execution cycle (CC), and wherein the predefined execution time is a time from the following list: the start of the execution cycle (CC), the end of the execution cycle (CC), and a predefined time within the execution cycle (CC).
27. The method (100) according to any one of the preceding claims, wherein the migration step (101) and / or the partial migration step (105) are performed during the cyclic execution of the A control program (A), during an execution pause, or during a plurality of execution pauses between consecutive execution cycles.
28. A method (200) for operating an automated system (300): In the first control step (201), control program A (A) is executed and the automation system (300) is controlled according to control program A (A). In the data migration execution step (203), the data migration from the A program state (PA) of the A control program (A) to the B program state (PB) of the B control program (B) is performed by executing the method according to any one of claims 1 to 27; and In the second control step (205), the B control program (B) is executed after the data migration is completed to control the automation system (300).