Method, apparatus, device, and medium for generating workflow
The method and apparatus facilitate the creation of flexible, scalable workflows using function blocks and hierarchical bubbles, addressing the limitations of current low-code platforms in managing diverse industrial processes.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SIEMENS AG
- Filing Date
- 2024-11-28
- Publication Date
- 2026-06-04
AI Technical Summary
Current low-code automation platforms struggle with handling diverse industrial processes, lacking flexibility in defining complex workflows and requiring specialized knowledge to manage continuous and discrete manufacturing processes effectively.
A method and apparatus that utilize function blocks, tails, and hierarchical bubbles in an element library to create flexible workflows, allowing users to define stopping conditions and transitions intuitively, reducing the need for specialized knowledge and enabling scalable application scenarios.
Enables the creation of hybrid systems by organizing complex workflows into manageable, nested components, improving engineering flexibility and reducing the threshold for specialized knowledge, while supporting continuous and discrete processes.
Smart Images

Figure CN2024135332_04062026_PF_FP_ABST
Abstract
Description
Method, apparatus, device, and medium for generating workflowFIELD
[0001] The present disclosure relates to the technical field of industrial digitalization, in particular to a method, apparatus, device, and medium for generating workflow.BACKGROUND
[0002] At the core of industrial automation system are programmable logic controllers (PLCs) and other control devices that execute automation logic to manage various machines, equipment, and processes.
[0003] Traditionally, programming automation logic for industrial systems has required specialized knowledge and expertise in languages like ladder logic or function block diagrams. This approach, while powerful, can be time-consuming and error-prone, especially for complex systems. It also typically requires highly trained automation engineers to develop and maintain the control logic.
[0004] To address these challenges, there has been a shift towards more visual and intuitive methods for creating automation workflows. One such approach is the use of low-code or no-code platforms that allow users to create logic by connecting pre-defined function blocks. This enables less experienced users to rapidly develop automation logic by leveraging existing functions and defining their interconnections to meet specific project requirements.
[0005] However, current low-code solutions for industrial automation face limitations in handling the diverse needs of different types of processes. Continuous processes, such as those found in chemical plants or power generation, require logic that executes continuously. In contrast, batch or discrete manufacturing processes often need event-driven, step-wise execution of tasks. Existing platforms typically specialize in one paradigm or the other, making it challenging to develop hybrid systems or to reuse logic across different types of processes.
[0006] Furthermore, many current low-code automation platforms lack flexibility in defining complex workflows. They often constrain users to rigid, predefined interaction patterns between function blocks. This makes it difficult to implement adaptive behaviors based on changing operational conditions or to handle exceptions and error cases effectively.SUMMARY
[0007] Embodiments of the present disclosure propose a method, apparatus, device, and medium for generating workflow.
[0008] In a first aspect, there is provided a method for generating workflow, comprising:
[0009] storing preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the attached function block, and bubble represents hierarchical function blocks;
[0010] displaying the element library on a graphical user interface;
[0011] receiving a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble;
[0012] generating a workflow instance based on the constructed workflow corresponding to the construction operation.
[0013] The present disclosure provides function block, tail and bubble in the element library to users. The tail provides a more flexible way to define stopping conditions and transitions between function blocks / bubbles. The bubbles represent hierarchical function blocks / bubbles structure. This hierarchical structure allows for the organization of complex workflows into manageable, nested components. Therefore, there is no need to distinguish between self-completing procedure and continuous procedure. Threshold for specialized knowledge of engineer is reduced, flexibility of engineering is improved and a scalable application scenario is realized.
[0014] In an example, the method further comprising:
[0015] obtaining a Sequential Flow Chart representing state machines in automation engineering;
[0016] translating the Sequential Flow Chart into a workflow framework;
[0017] receiving a workflow construction operation performed by a user on the graphical user interface based on the element library and the workflow framework.
[0018] In an example, receiving a workflow construction operation performed by a user on the graphical user interface based on the element library comprising:
[0019] receiving user input to addition of multiple tails to be attached to one function block or bubble and priorities of the multiple tails;
[0020] executing the function block or bubble based on the priorities of the multiple tails.
[0021] In an example, the method further comprising:
[0022] detecting errors in the workflow instance;
[0023] receiving user input to handle the errors in the workflow instance.
[0024] In an example, the method further comprising:
[0025] deploying the workflow instance into runtime of a main controller of an industrial automation system;
[0026] executing operations according to the workflow instance.
[0027] In an example, the method further comprising:
[0028] receiving user input to modify the workflow during execution;
[0029] updating the workflow instance based on the user input;
[0030] continuing execution of the updated workflow instance.
[0031] In a second aspect, there is provided an apparatus for generating workflow, comprising:
[0032] a storing module, configured to store preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the function block, and bubble represents hierarchical function blocks;
[0033] a displaying module, configured to display the element library on a graphical user interface;
[0034] a receiving module, configured to receive a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble;
[0035] a generating module, configured to generate a workflow instance based on the constructed workflow corresponding to the construction operation.
[0036] In a third aspect, there is provided an electronic device comprising a processor and a memory, wherein an application program executable by the processor is stored in the memory for causing the processor to execute a method for identifying building block as described in any of the above.
[0037] In a fourth aspect, there is provided a computer-readable medium comprising computer-readable instructions stored thereon is provided, wherein the computer-readable instructions for executing a method for identifying building block as described in any of the above.
[0038] In a fifth aspect, there is provided a computer program product comprising a computer program, when the computer program is executed by a processor for executing a method for identifying building block as described in any of the above.BRIEF DESCRIPTION OF THE DRAWINGS
[0039] To make technical solutions of examples of the present disclosure clearer, accompanying drawings to be used in description of the examples will be simply introduced hereinafter. Obviously, the accompanying drawings to be described hereinafter are only some examples of the present disclosure. Those skilled in the art may obtain other drawings according to these accompanying drawings without creative labor.
[0040] Fig. 1 is an exemplary flowchart of a method for generating workflow according to an embodiment of the present disclosure.
[0041] Fig. 2 is an exemplary schematic diagram of function block, tail and bubble according to an embodiment of the present disclosure.
[0042] Fig. 3 is an exemplary schematic diagram of chemical reaction workflow in low-code presentation.
[0043] Fig. 4 is an exemplary schematic diagram of chemical reaction according to an embodiment of the present disclosure.
[0044] Fig. 5 is an exemplary schematic diagram of Pick &Place with AGV movement workflow in low-code presentation.
[0045] Fig. 6 is an exemplary schematic diagram of Pick &Place with AGV movement workflow according to an embodiment of the present disclosure.
[0046] Fig. 7 is an exemplary schematic diagram an apparatus for generating workflow according to an embodiment of the present disclosure.
[0047] Fig. 8 is an exemplary structural diagram of an electronic device according to an embodiment of the present disclosure.
[0048] List of reference numbers:
[0049] 100 method
[0050] 110-140 step
[0051] 401 initialization
[0052] 402 dose
[0053] 403 fill
[0054] 404 bubble
[0055] 405 timed stir
[0056] 406 timed press
[0057] 407 continuous temperature
[0058] 408 bubble
[0059] 409 drain
[0060] 410 continuous fill
[0061] 411 bubble
[0062] 412 extraction
[0063] 601 initialization
[0064] 602 home position
[0065] 603 update
[0066] 604 bubble
[0067] 605 AGV move to station
[0068] 606 take picture
[0069] 607 unload part
[0070] 608 place part
[0071] 609 bubble
[0072] 610 take picture
[0073] 611 pick part
[0074] 612 load part
[0075] 613 bubble
[0076] 700 Apparatus
[0077] 710 storing module
[0078] 720 displaying module
[0079] 730 receiving module
[0080] 740 generating module
[0081] 800 electronic device
[0082] 810 processor
[0083] 820 memoryDETAILED DESCRIPTION
[0084] To make the purpose, technical scheme, and advantages of the disclosure clearer, the following examples are given to further explain the disclosure in detail. Nouns and pronouns related to people in this patent application are not limited to specific gender.
[0085] To be concise and intuitive in description, the scheme of the disclosure is described below by describing several representative embodiments. Many details in the embodiments are only used to help understand the scheme of the disclosure. However, it is obvious that the technical scheme of the disclosure can be realized without being limited to these details. To avoid unnecessarily blurring the scheme of the disclosure, some embodiments are not described in detail, but only the framework is given. Hereinafter, "including" refers to "including but not limited to" , "according to. . . " refers to "at least according to. . ., but not limited to. . . " . When the number of an element is not specifically indicated below, it means that the element can be one or more, or can be understood as at least one.
[0086] The present disclosure proposes a method for generating workflow. Fig. 1 is an exemplary flowchart of a method 100 for generating workflow according to an embodiment of the present disclosure. As shown in Fig. 1, the method 100 comprise:
[0087] step 110, storing preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the attached function block, and bubble represents hierarchical function blocks;
[0088] The element library may be stored in a database system, which could be implemented on a server using database management software or as a distributed database in a cloud environment. The preset elements in element library includes function block, tail and bubble.
[0089] Function block represents some pieces of code that contain certain actions to be done within the workflow, such as specific operations or processes. In detail, one or more entry points are needed for a function block. Each entry point may contain a pre-condition checking to prevent the function being executed if the condition is not met. Additionally, an initialization part, which will be executed once when the function is triggered, may be included in an entry point. An entry point refers to one or more codes from the execution part which will be carried out continuously and repeatedly until the function block is being stopped. Lastly, there are codes in an optional exit part which will be executed once when the function is stopped.
[0090] Tail is attached to function block that define conditions for stopping the execution of the function block. In detail, tail includes a condition used for stopping the function block it attached. In other embodiments, tail may include at least one function block it points to (representing which function will be triggered after the attached function block is stopped) , parameters for the next function blocks and some tags for filtering and managing the tails. In some embodiments, if multiple tails are attached to one function block, priorities of checking the stop condition corresponding to the tails may be assigned.
[0091] Bubble represents hierarchical function blocks, allowing for the organization of complex workflows into manageable structures. Bubble is similar to the higher-level states from the hierarchical state machines. Nested bubbles are allowed as long as one bubble must be either fully inside or fully outside all other bubbles. There is no overlapping of the boundary bubbles. The monitoring conditions for the tails attached to the outer bubble have higher priorities than for the inner ones. When a monitoring condition is met, all function blocks and sub-level bubbles will be stopped. The user may select some sub-level entry points as default which will be triggered after the bubble was stopped (e.g., default idle state behavior) .
[0092] Tails, function blocks and bubbles can be managed as resource. For example, Tails, function blocks and bubbles can be configured, labeled, filtered, highlighted based on properties. From view of graphic user interface, tails can be concreted as links, function block can be concreted as node, and bubble can be concreted as closed area.
[0093] Fig. 2 is an exemplary schematic diagram of function block, tail and bubble according to an embodiment of the present disclosure. As shown in Fig. 2, Bubble J includes bubble I and function block FB A. Bubble I includes function block FB B, FB C and FB D. Tail G is attached to FB C and points to FB B. Tail H is attached to FB C and points to FB D. Tail F is attached to Bubble J and points to FB A. In this diagram, Tail G includes a condition used for stopping the FB C, and points to execution of FB B. Tail H includes a condition used for stopping the FB C, and points to execution of FB D. Tail F includes a condition used for stopping Bubble I (all function block including FB B, FB C and FB D is stopped) , and points to execution of FB A. Tail E includes a condition used for stopping FB A.
[0094] step 120, displaying the element library on a graphical user interface;
[0095] Graphical user interface provides users with an intuitive way to browse and select elements such as function block, tail and bubble from element library. The graphical user interface could be implemented as a web application running in a browser, a native application optimized for specific operating systems or industrial control panels.
[0096] step 130, receiving a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble;
[0097] During engineering, users can instantiate (e.g., via drag and drop) function blocks / bubbles from the element library. Some function blocks / bubbles may have pre-attached tails (default ending condition) , which is like self-completing procedures. Some function blocks / bubbles may not have pre-attached tails, which is like continuous procedures. Users can attach tails / monitoring conditions to function blocks / bubbles without pre-attached tails. In other embodiments, users can also attach additional tails to function blocks with pre-attached tails or utilize the monitoring condition from one pre-attached Tails. Users can wrap existing function blocks &bubbles with bubbles or move function blocks or bubbles to another hierarchy level of bubbles. Users can configure entry points of the function blocks or bubbles. Users can configure tags of tails. A tail should not penetrate a bubble. When coming to the entry points of sub-level function blocks or bubbles from outside the higher-level bubbles, the outer entry points should be triggered firstly, then the sub-level entry points.
[0098] step 140, generating a workflow instance based on the constructed workflow corresponding to the construction operation.
[0099] This step transforms the visually constructed workflow into an executable format. The generation process could involve compiling the workflow into optimized code for the target runtime environment, or creating an intermediate representation that can be interpreted by the execution engine.
[0100] The present disclosure provides function block, tail and bubble in the element library to users. The tail provides a more flexible way to define stopping conditions and transitions between function blocks / bubbles. The bubbles represent hierarchical function blocks / bubbles structure. This hierarchical structure allows for the organization of complex workflows into manageable, nested components. Therefore, there is no need to distinguish between self-completing procedure and continuous procedure. Threshold for specialized knowledge of engineer is reduced, flexibility of engineering is improved and a scalable application scenario is realized.
[0101] In some embodiments of the present disclosure, the method further comprising:
[0102] obtaining a Sequential Flow Chart representing state machines in automation engineering;
[0103] translating the Sequential Flow Chart into a workflow framework;
[0104] receiving a workflow construction operation performed by a user on the graphical user interface based on the element library and the workflow framework.
[0105] In detail, Sequential Flow Charts as defined in IEC 61131-3 can be used to represent state machines in automation engineering. Sequential Flow Chart can be translated into a workflow framework. Users can generate workflow based on the element library and the workflow framework. Therefore, there is no need for engineering from the very beginning, and the engineering efficiency is improved.
[0106] In some embodiments, users can also start from embodied behavior tree, statechart or other well-defined workflows. In this scenario, embodied behavior tree, statechart or other well-defined workflows can be translated automatically into a workflow framework. Users can generate workflow based on the element library and the workflow framework.
[0107] In this way, the concept is similar to state machine diagram that is commonly used in process description, which reduces communication effort with process engineer and the realization threshold with minimum change of mindset.
[0108] In some embodiments of the present disclosure, receiving a workflow construction operation performed by a user on the graphical user interface based on the element library comprising:
[0109] receiving user input to addition of multiple tails to be attached to one function block or bubble and priorities of the multiple tails;
[0110] executing the function block or bubble based on the priorities of the multiple tails.
[0111] In detail, multiple tails can be attached to one function block or bubble. Priorities of checking the stop condition corresponding to the tails may be assigned by users. The monitoring conditions for the tails attached to the outer bubble have higher priorities than for the inner ones.
[0112] In some embodiments of the present disclosure, the method further comprising:
[0113] deploying the workflow instance into runtime of a main controller of an industrial automation system;
[0114] executing operations according to the workflow instance.
[0115] In some embodiments of the present disclosure, the method further comprising:
[0116] receiving user input to modify the workflow during execution;
[0117] updating the workflow instance based on the user input;
[0118] continuing execution of the updated workflow instance.
[0119] For execution, one or more function blocks are selected to be active as soon as the workflow is started. The functions inside the active function blocks will be executed accordingly. In the meantime, all tails attached to active function blocks or bubbles will have their monitoring condition being checked in parallel. Once the one monitoring condition is met (starting from the highest priority) , the attached function block or all the function blocks inside the attached bubble of the tail will be stopped. Then, if the tail is pointing towards one or more entry points, these entry points will be triggered and the function blocks / bubbles with these entry points (if pre-condition is met) will be triggered / active now. There is no limitation on how many function blocks are active at any time. All the monitoring, stopping &triggering will be continuously updated following priorities individually when the workflow is running.
[0120] Fig. 3 is an exemplary schematic diagram of chemical reaction workflow in low-code presentation. As shown in Fig. 3, the chemical reaction workflow includes start, dose, fill, timed stir, timed press, continuous temperature, drain, continuous fill, complete extract and end. Wherein fill, continuous temperature and continuous fill are continuous procedure, and others are self-completing procedure. In this case, continuous procedure and self-completing procedure have to be distinguished, which makes it challenging to develop hybrid systems or to reuse logic across different types of processes.
[0121] Fig. 4 is an exemplary schematic diagram of chemical reaction according to an embodiment of the present disclosure. As shown in Fig. 4, bubble 404 contains function block 402 (dose) and function block 403 (fill) . Bubble 408 contains function block 406 (Timed press) and function block 407 (continuous temperature) . Bubble 411 contains function block 409 (drain) and function block 410 (continuous fill) . Tails are attached to functional block or bubble. Therefore, there is no need to distinguish between self-completing procedure and continuous procedure. Threshold for specialized knowledge of engineer is reduced, flexibility of engineering is improved and a scalable application scenario is realized.
[0122] In some embodiments of the present disclosure, the method further comprising:
[0123] detecting errors in the workflow instance;
[0124] receiving user input to handle the errors in the workflow instance.
[0125] Fig. 5 is an exemplary schematic diagram of Pick &Place with AGV movement workflow in low-code presentation. As shown in Fig. 5, the workflow includes start, AGV move to st12, move home, gripper initiation, OPCUA configuration, AGV move to st11, pick, move to place, place, move home and end.
[0126] Fig. 6 is an exemplary schematic diagram of Pick &Place with AGV movement workflow according to an embodiment of the present disclosure. As shown in Fig. 6, bubble 604 contains function block 603 (update OPCUA) . Bubble 609 contains function block 606 (take picture) , function block 607 (upload part) , function block 608 (place part) . Bubble 613 contains function block 610 (take picture) , function block 611 (pick part) , function block 612 (load part) . An error handling tail is attached to the bubble 609. The tail contains stop condition (error occurs) to monitor all function blocks or bubbles in the bubble 609. Once the condition is detected, the bubble 609 will be stopped and point to function block 606 to execute. Also, an error handling tail is attached to the bubble 613. The tail contains stop condition (error occurs) to monitor all function blocks or bubbles in the bubble 609. Once the condition is detected, the bubble 613 will be stopped and point to function block 610 to execute. In this way, it provides a more flexible way for users to engineer handling errors.
[0127] The present disclosure also proposes an apparatus for generating workflow. Fig. 7 is an exemplary schematic diagram an apparatus 700 for generating workflow according to an embodiment of the present disclosure. As shown in Fig. 7, the apparatus 700 comprises:
[0128] A storing module 710, configured to store preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the function block, and bubble represents hierarchical function blocks;
[0129] A displaying module 720, configured to display the element library on a graphical user interface;
[0130] A receiving module 730, configured to receive a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble;
[0131] A generating module 740, configured to generate a workflow instance based on the constructed workflow corresponding to the construction operation.
[0132] Embodiments of the present disclosure also propose an electronic device with a processor memory architecture. Fig. 8 is an exemplary structural diagram of an electronic device according to an embodiment of the present disclosure. As shown in Figure 8, electronic device 800 includes a processor 810, a memory 820, and a computer program stored on memory 820 that can run on processor 810. When the computer program is executed by processor 810, the method for identifying building block as described in either of the above is implemented. Among them, memory 820 can be implemented as various storage media such as electrically erasable programmable read-only memory (EEPROM) , flash memory, programmable program read-only memory (PROM) , etc. Processor 810 can be implemented to include one or more central processors or one or more field programmable gate arrays, wherein the field programmable gate array integrates one or more central processor cores. Specifically, the central processing unit or core can be implemented as a CPU, MCU, DSP, and so on.
[0133] It should be noted that not all steps and modules in the above processes and structural diagrams are necessary, and some steps or modules can be ignored according to actual needs. The execution sequence of each step is not fixed and can be adjusted as needed. The division of each module is only for the convenience of describing the functional division used. In actual implementation, a module can be divided into multiple modules, and the functions of multiple modules can also be implemented by the same module. These modules can be in the same device or different devices.
[0134] The hardware modules in each implementation can be implemented mechanically or electronically. For example, a hardware module can include specially designed permanent circuits or logic devices (such as dedicated processors, such as FPGA or ASIC) to complete specific operations. Hardware modules can also include programmable logic devices or circuits temporarily configured by software (such as general-purpose processors or other programmable processors) for performing specific operations. As for the specific use of mechanical methods, either dedicated permanent circuits or temporarily configured circuits (such as software configuration) to implement hardware modules, it can be determined based on cost and time considerations.
[0135] The above is only a preferred embodiment of the present disclosure and is not intended to limit the scope of protection of the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of this disclosure shall be included within the scope of protection of this disclosure.
[0136] Independent of the grammatical term usage, individuals with male, female or other gender identities are included within the term.
Claims
1.A method (100) for generating workflow, comprising:storing preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the attached function block, and bubble represents hierarchical function blocks (110) ;displaying the element library on a graphical user interface (120) ;receiving a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble (130) ;generating a workflow instance based on the constructed workflow corresponding to the construction operation (140) .2.The method (100) according to claim 1, the method (100) further comprising:obtaining a Sequential Flow Chart representing state machines in automation engineering;translating the Sequential Flow Chart into a workflow framework;receiving a workflow construction operation performed by a user on the graphical user interface based on the element library and the workflow framework.3.The method (100) according to claim 2, receiving a workflow construction operation performed by a user on the graphical user interface based on the element library comprising:receiving user input to addition of multiple tails to be attached to one function block or bubble and priorities of the multiple tails;executing the function block or bubble based on the priorities of the multiple tails.4.The method (100) according to claim 3, the method (100) further comprising:detecting errors in the workflow instance;receiving user input to handle the errors in the workflow instance.5.The method (100) according to claim 1, the method (100) further comprising:deploying the workflow instance into runtime of a main controller of an industrial automation system;executing operations according to the workflow instance.6.The method (100) according to claim 5, the method (100) further comprising:receiving user input to modify the workflow during execution;updating the workflow instance based on the user input;continuing execution of the updated workflow instance.7.An apparatus (700) for generating workflow, comprising:a storing module (710) , configured to store preset elements in element library, the elements comprising function block, tail and bubble; wherein tail is attached to a function block to stop the function block, and bubble represents hierarchical function blocks;a displaying module (720) , configured to display the element library on a graphical user interface;a receiving module (730) , configured to receive a workflow construction operation performed by a user on the graphical user interface based on the element library; wherein the construction operation comprises selection and connection of function block, tail and bubble;a generating module (740) , configured to generate a workflow instance based on the constructed workflow corresponding to the construction operation.8.An electronic device (800) , comprising a processor (810) and a memory (820) , wherein an application program executable by the processor (810) is stored in the memory (820) for causing the processor (810) to execute a method for identifying building block according to any one of claims 1-6.9.A computer-readable medium comprising computer-readable instructions stored thereon, wherein the computer-readable instructions for executing a method for identifying building block according to any one of claims 1-6.10.A computer program product comprising a computer program, upon the computer program is executed by a processor for executing a method for identifying building block according to any one of claims 1-6.