The present disclosure relates to industrial processes. Various embodiments of the teachings herein include workflow control methods, apparatus, and/or systems, and computer-readable storage media and computer program products.
A workflow can be simply defined as to describe a series of operational processes. Workflows are widely used in automation systems, artificial intelligence, robotics, and other fields. For example, the workflow of a product sorting line in an automation system can be simply described as starting, taking pictures, classifying, and moving the product to a target location. The workflow of model deployment in artificial intelligence can be described as data collection, data annotation, model training, and model deployment.
However, currently these workflows only have textual descriptions. If users want to execute such workflows, they need to follow the textual descriptions and may use multiple engineering tools, which are almost unrelated to each other. As a result, completely different user operation behaviors are provided. This is not only a challenge to the users, but also greatly increases costs, reduces efficiency, and limits flexibility due to long development cycles. For example, in the field of artificial intelligence, the users need to use a tool for data collection, manually or use other tools for data annotation, write python scripts for model training, and deploy tools for deployment.
Therefore, those skilled in the art are still working on finding other workflow solutions.
Various embodiments of the teachings herein include a workflow control method (600), comprising: determining a type of a compositor node on the basis of an operation performed on a graphical user interface by a user, wherein the compositor node comprises a start block suitable for starting execution of the compositor node, an end block suitable for ending execution of the compositor node, and a plurality of working links arranged between the start block and the end block (601); determining a target working link from the plurality of working links on the basis of the type of the compositor node (602); and controlling logic of a workflow on the basis of the target working link, wherein the workflow is generated on the basis of a behavior tree comprising the compositor node (603).
In some embodiments, at least one working link of the plurality of working links comprises a function block node, and the function block node is configured to implement a service operation in the workflow.
In some embodiments, the determining type of a compositor node on the basis of an operation performed on a graphical user interface by a user (602) comprises: determining type of the compositor node on the basis of a selection operation performed on the graphical user interface comprising a node library by the user, the node library comprising: a compositor node for identifying the type in a semantic manner or a compositor node for identifying the type in a presentation manner.
In some embodiments, the workflow control method (600) further comprises: receiving a behavior tree construction operation performed on the graphical user interface by the user, wherein the construction operation comprises an addition and connection operation of a behavior tree node, and the behavior tree node comprises the compositor node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node comprises: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation comprising: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, wherein the workflow is an OT domain workflow, and the device is an OT device.
In some embodiments, the workflow control method (600) further comprises generating a micro-service on the basis of the behavior tree, so that an IT device executes the OT domain workflow when calling the micro-service to trigger runtime of a main controller of the work cell.
In some embodiments, the type of the compositor node is Parallel; the determining a target working link from the plurality of working links (602) comprises: determining each working link of the plurality of working links as the target working link; and the method further comprises: receiving an end logic value through an input end of the end block, wherein when the end logic value is a logic AND, and the plurality of working links are executed completely, ending execution of the compositor node through the end block; and when the end logic value is a logic OR, and at least one working link of the plurality of working links is executed completely, ending execution of the compositor node through the end block.
In some embodiments, the type of the compositor node is Switch, and the method further comprises: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the plurality of working links (602) comprises: determining a data value block when each working link is selected; and selecting a target working link conforming to the corresponding data value block from the plurality of working links on the basis of a computation result of the composition expression.
In some embodiments, the type of the compositor node is If-Then-Else, and the method further comprises: receiving a preset composition expression through an input end of the start block, a result of the composition expression comprising a logic true value or a logic false value; and the determining a target working link from the plurality of working links (602) comprises: determining a corresponding target working link from the plurality of working links on the basis of the result of the composition expression being the logic true value or the logic false value.
In some embodiments, the type of the compositor node is Priority, and the method further comprises: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the plurality of working links (602) comprises: computing a data value block of each working link on the basis of the composition expression; determining a priority rank of the plurality of working links on the basis of a ranking result of the data value block of each working link; and determining the target working link from the plurality of working links on the basis of the priority rank.
In some embodiments, the type of the compositor node is Reactive Priority, and the method further comprises: receiving a first composition expression and a second composition expression through an input end of the start block; and the determining a target working link from the plurality of working links (602) comprises: computing a first data value block of each working link on the basis of the first composition expression; computing a second data value block of each working link on the basis of the second composition expression; determining a priority rank of the plurality of working links on the basis of a ranking result of the first data value blocks of the plurality of working links; and determining the target working link from the plurality of working links on the basis of the priority rank and the second data value block of each working link.
In some embodiments, the workflow control method (600) further comprises displaying the compositor node in a folding mode in a folding frame (90) on the graphical user interface, wherein the folding frame (90) comprises a first display area (88), and the first display area (88) is suitable for displaying a currently displayed working link of the compositor node and hiding working links except the currently displayed working link.
In some embodiments, the folding frame (90) further comprises a second display area (83), a third display area (81) and a switch control (84); the second display area (83) is i suitable for displaying a data value block of the currently displayed working link; the third display area (81) is suitable for displaying a label of the currently displayed working link; and the switch control (84) is suitable for switching the currently displayed working link among the plurality of working links.
As another example, some embodiments include a workflow control apparatus (800), comprising: a first determination module (801) configured to determine type of a compositor node on the basis of an operation performed on a graphical user interface by a user, wherein the compositor node comprises a start block suitable for starting execution of the compositor node, an end block suitable for ending execution of the compositor node, and a plurality of working links arranged between the start block and the end block; a second determination module (802) configured to determine a target working link from the plurality of working links on the basis of the type of the compositor node; and a control module (803) configured to control logic of a workflow on the basis of the target working link, wherein the workflow is generated on the basis of a behavior tree comprising the compositor node.
In some embodiments, the first determination module (801) is configured to determine the type of the compositor node on the basis of a selection operation performed on the graphical user interface comprising a node library by the user, the node library comprising: a compositor node for identifying the type in a semantic manner or a compositor node for identifying the type in a presentation manner.
In some embodiments, at least one working link of the plurality of working links comprises a function block node, and the function block node is configured to implement a service operation in the workflow; the first determination module (801) is configured to receive a behavior tree construction operation performed on the graphical user interface by the user, wherein the construction operation comprises an addition and connection operation of a behavior tree node, and the behavior tree node comprises the compositor node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node comprises: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation comprising: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, wherein the workflow is an OT domain workflow, and the device is an OT device.
As another example, some embodiments include a workflow control system, comprising: at least one memory (51) configured to store computer-readable codes; and at least one processor (52) configured to call the computer-readable codes and execute one or more of the workflow control methods described herein.
As another example, some embodiments include a computer-readable medium, storing computer-readable instructions thereon, when executed by a processor, the computer-readable instructions causing the processor to execute one or more of the workflow control methods described herein.
As another example, some embodiments include a computer program product, stored on a computer-readable medium in a tangible manner and comprising computer-readable instructions, when executed, the computer-readable instructions causing at least one processor to execute one or more of the workflow control methods described herein.
In the figures, reference numerals are as follows:
Various embodiments of the teachings of the present disclosure includes workflow control methods and systems, computer-readable storage media, and computer program products. For example, some embodiments include a workflow control method comprising: determining type of a synthesizer node on the basis of an operation performed on a graphical user interface by a user, where the synthesizer node includes a start block suitable for starting execution of the synthesizer node, an end block suitable for ending execution of the synthesizer node, and multiple working links arranged between the start block and the end block; determining a target working link from the multiple working links on the basis of the type of the synthesizer node; and controlling logic of a workflow on the basis of the target working link, where the workflow is generated on the basis of a behavior tree including the synthesizer node. Therefore, various types of synthesizer nodes are introduced, so as to be applied to flexibly controlling the workflow.
In some embodiments, at least one working link of the multiple working links includes a function block node, and the function block node is configured to implement a service operation in the workflow. Therefore, the working link of the synthesizer node can include the function block node, thereby improving the control capability of the function block node.
In some embodiments, the determining type of a synthesizer node on the basis of an operation performed on a graphical user interface by a user includes: determining the type of the synthesizer node on the basis of the operation performed on the graphical user interface including a node library by the user, the node library including: a synthesizer node for identifying the type in a semantic manner or a synthesizer node for identifying the type in a presentation manner. Therefore, the type of the synthesizer node can be identified in the semantic manner or the presentation manner, the identification difficulty of the synthesizer node can be reduced, and canvas resources can be saved.
In some embodiments, the method further includes: receiving a behavior tree construction operation performed on the graphical user interface by the user, where the construction operation includes an addition and connection operation of a behavior tree node, and the behavior tree node includes the synthesizer node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node includes: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation including: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, where the workflow is an OT domain workflow, and the device is an OT device. Therefore, the synthesizer node can be applied to the workflow control method of an OT domain.
In some embodiments, the method further includes: generating a micro-service on the basis of the behavior tree, so that an IT device executes the OT domain workflow when calling the micro-service to trigger runtime of a main controller of the work cell. Therefore, mutual fusion of the IT domain and the OT domain can be realized in a micro-service mode.
In some embodiments, the type of the synthesizer node is Parallel; the determining a target working link from the multiple working links includes: determining each working link of the multiple working links as the target working link; and the method further includes: receiving an end logic value through an input end of the end block, where when the end logic value is a logic AND, and the multiple working links are executed completely, ending execution of the synthesizer node through the end block; and when the end logic value is a logic OR, and at least one working link of the multiple working links is executed completely, ending execution of the synthesizer node through the end block. Therefore, the synthesizer node may have a parallel capability.
In some embodiments, the type of the synthesizer node is Switch, and the method further includes: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: determining a data value block when each working link is selected; and selecting a target working link conforming to the corresponding data value block from the multiple working links on the basis of a computation result of the composition expression. Therefore, the synthesizer node may have a switch capability.
In some embodiments, the type of the synthesizer node is If-Then-Else, and the method further includes: receiving a preset composition expression through an input end of the start block, a result of the composition expression including a logic true value or a logic false value; and the determining a target working link from the multiple working links a includes: determining corresponding target working link from the multiple working links on the basis of the result of the composition expression being the logic true value or the logic false value. Therefore, the synthesizer node may have an If-Then-Else capability.
In some embodiments, the type of the synthesizer node is Priority, and the method further includes: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: computing a data value block of each working link on the basis of the composition expression; determining a priority rank of the multiple working links on the basis of a ranking result of the data value block of each working link; and determining the target working link from the multiple working links on the basis of the priority rank. Therefore, the synthesizer node may have a priority capability.
In some embodiments, the type of the synthesizer node is Reactive Priority, and the method further includes: receiving a first composition expression and a second composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: computing a first data value block of each working link on the basis of the first composition expression; computing a second data value block of each working link on the basis of the second composition expression; determining a priority rank of the multiple working links on the basis of a ranking result of the first data value blocks of the multiple working links; and determining the target working link from the multiple working links on the basis of the priority rank and the second data value block of each working link. Therefore, the synthesizer node may have a reactive priority capability.
In some embodiments, the method includes: displaying the synthesizer node in a folding mode in a folding frame on the graphical user interface, where the folding frame includes a first display area, and the first display area is suitable for displaying a currently displayed working link of the synthesizer node and hiding working links except the currently displayed working link. Therefore, the synthesizer node may have a folded structure, which can save the canvas resources.
In some embodiments, the folding frame further includes a second display area, a third display area and a switch control; the second display area is suitable for displaying a data value block of the currently displayed working link; the third display area is suitable for displaying a label of the currently displayed working link; and the switch control is suitable for switching the currently displayed working link among the multiple working links. Therefore, the synthesizer node having the folded structure can flexibly switch the currently displayed working link and flexibly display the label of the working link.
Some embodiments of the teachings herein include a workflow control apparatus, including: a first determination module configured to determine a type of a synthesizer node on the basis of an operation performed on a graphical user interface by a user, where the synthesizer node includes a start block suitable for starting execution of the synthesizer node, an end block suitable for ending execution of the synthesizer node, and multiple working links arranged between the start block and the end block; a second determination module configured to determine a target working link from the multiple working links on the basis of the type of the synthesizer node; and a control module configured to control logic of a workflow on the basis of the target working link, where the workflow is generated on the basis of a behavior tree including the synthesizer node. Therefore, various types of synthesizer nodes are introduced, so as to be applied to flexibly controlling the workflow.
In some embodiments, the first determination module is configured to determine the type of the synthesizer node on the basis of a selection operation performed on the graphical user interface including a node library by the user, the node library including: a synthesizer node for identifying the type in a semantic manner or a synthesizer node for identifying the type in a presentation manner. Therefore, the type of the synthesizer node can be identified in the semantic manner or the presentation manner, the identification difficulty of the synthesizer node can be reduced, and canvas resources can be saved.
In some embodiments, at least one working link of the multiple working links includes a function block node, and the function block node is configured to implement a service operation in the workflow; the first determination module is configured to receive a behavior tree construction operation performed on the graphical user interface by the user, where the construction operation includes an addition and connection operation of a behavior tree node, and the behavior tree node includes the synthesizer node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node includes: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation including: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, where the workflow is an OT domain workflow, and the device is an OT device. Therefore, the synthesizer node can be applied to the workflow control process of an OT domain.
Some embodiments include a workflow control system, including: at least one memory configured to store computer-readable codes; and at least one processor configured to call the computer-readable codes and execute any one of the steps in the workflow control method.
Some embodiments include a computer-readable medium, storing computer-readable instructions thereon, when executed by a processor, the computer-readable instructions causing the processor to execute any of the workflow control methods described herein.
Some embodiments include a computer program product, stored on a computer-readable medium in a tangible manner and including computer-readable instructions, when executed, the computer-readable instructions causing at least one processor to execute one or more of the workflow control methods described herein.
Discussion of the various embodiments herein is merely intended to make a person skilled in the art better understand and implement the subject described in this specification and is not intended to limit the protection scope of the claims, the applicability, or examples. Changes may be made to the functions and arrangements of the discussed elements without departing from the protection scope of the content of the embodiments of the present application. Various processes or components may be omitted, replaced, or added in examples according to requirements. For example, the described method may be performed according to a sequence different from the sequence described herein, and steps may be added, omitted, or combined. In addition, features described in some examples may also be combined in other examples.
As used in this specification, the term “include” and variants thereof represent open terms, and means “include but is not limited to”. The term “based on” represents “at least partially based on”. The terms “one embodiment” and “an embodiment” represent “at least one embodiment”. The term “another embodiment” represents “at least one another embodiment”. The terms “first”, “second”, and the like may represent different objects or the same object. Other definitions may be included explicitly or implicitly in the following. Unless otherwise clearly specified, the definition of one term is consistent in the entire specification.
S11: A behavior tree construction operation performed by the user on a graphical user interface on the basis of a preset behavior tree node is received. One behavior tree represents one workflow, and the workflow defines an operation to be executed by one work cell, for example, it may represent a distributed process in the work cell. During implementation, the workflow herein can be subdivided into a main workflow and sub workflows. The main workflow is used for limiting starting, ending and triggering other flow control of the whole work cell process. The main workflow is an entrance of the whole process and is linked to at least one sub workflow. The sub workflows are usually major workflows, and each sub workflow corresponds to one sub-flow and is used for implementing a specific service operation.
The work cell can be a combination of resources such as a system or device that can implement a relatively complete and independent control process and operation. In this embodiment, the workflow is created by taking the work cell as a basic unit, so that the characteristics of industrial control are better met, the development integration level can be improved, and the development complexity is reduced. For example, taking the industrial technical field as an example, the work cell can be defined according to an actual industrial scenario, for example, one process can be defined to correspond to one work cell, or one workstation in the process can be defined to be one work cell, or one station in the workstation can be defined to correspond to one work cell, and the process flows of different work cells are different.
The behavior tree is a formal graphical modeling mode. The behavior tree is widely applied to various artificial types of intelligent decisions. Most logics are set according to rules, so that the judgment on behaviors is similar to a tree having multiple judgment branches. The behavior of the behavior tree is the leaf nodes and is a behavior logic to be executed truly. Through the behavior tree mode, clearly defined symbols can be adopted to clearly represent related requirements of a software integration system. The structure of the behavior tree is organized in a tree form, each node has a printed node type, and different functions are carried in cooperation with related parameters. An intuitive and visual behavior tree editor can be provided for a user in a component editor mode. By using the behavior tree editor, the user can quickly edit the behavior tree. For example, after the behavior tree editor is started, a new behavior tree can be established, then a behavior tree node type is selected into the behavior tree, and attributes of behavior tree nodes forming the behavior tree can be edited.
The behavior tree nodes can include: the flow control nodes, the function block nodes and the like. The detailed description is shown as follows.
The flow control node is configured to implement logic control over the workflows and is generally independent of specific service operation in the work cell. Through the flow control node, the user can create various workflows according to own requirements. During implementation, the flow control node can include: a main control node, a compositor node (also called an aggregator node or a logic control node), a condition node and the like. Alternatively, the flow control node can include: one or any combination of the main control node, the compositor node and the condition node. A brief description is provided below.
The main control node can include: part or all of a start node, an end node, a goto node, an anchor node, a stop node, and an abort node. The main control node in this embodiment is not a standard behavior tree element, but it can be configured to control the main process of the workflow and can be linked to a state machine of the workflow in this embodiment. The start node is mandatory, and one of the end node or the goto node can be mandatory. The main control node is mainly configured to define the start and end of the workflow. In addition, other element nodes can control the state machine (such as abort and top) or label key process steps (such as anchor node) that can be skipped.
The compositor node is configured to implement logic control over the workflow. The compositor node can include: part or all of an Se (Sequence) node, an RSe (Reactive Sequence) node, a Pa (Parallel) node, an IPQ (In-Process QC) node, a Pr (Priority (Fallback)) node, an RPr (Reactive Priority (Fallback)) node, an ITE (If-Then-Else) node, and an Sw (Switch) node. The compositor node can define how to execute branches in the behavior tree and is configured to implement branch logic control and the like in a workflow. For example, typical compositor nodes are simply described as follows:
1) Se node: it may have one or more child nodes and can sequentially trigger routes to each child node according to the sequence of the workflow.
2) RSe node: it has the same function as that of the Se node, but will continuously check a trigger condition.
3) Pa node: it may have one or more child nodes, which are started in sequence from top to bottom, and all the child nodes are executed in multiprocess or multithreading at the same time.
4) IPQ node: it refers to that a quality engineer performs quality inspection on a part of process steps, executes an abnormal processing flow if the inspection fails, and continues if the inspection succeeds.
5) Pr node: the sub-branches are executed in sequence according to priorities, the next sub-branch will be executed if the previous execution fails, and it passes when the execution of any branch is successful.
6) RPr node: it has the same function as that of the Pr node, but will continuously check the trigger condition.
7) If-Then-Else node: a trigger expression is checked, and if it is true, a true branch will be executed; and if it is a false, a false branch will be executed.
8) Sw node: the trigger expression is checked, different branches are executed according to different conditions, and if all are not met, a default branches will be executed.
Generally, the Se node and the Pa node can drive most logic in the workflow.
The C node is generally a basic logic element for checking the expression in the behavior tree and is configured to execute condition judgment and return a judgment result. It returns to success or failure on the basis of whether the condition is met. The C node never returns to the running state. In addition, in other embodiments, the C node may also be included in the function block node. In some embodiments, the C node may also be independently used as a class of nodes.
The FB node is configured to execute a command to implement a service operation in the workflow. Generally, if the operation is correctly completed, it returns to success; and if the operation fails, it returns to failure. When the operation is being carried out, it returns to the running state. The FB node includes a logic node and may also include some specific types of FB nodes, for example, part or all of a manual node, a dynamic node, a delay node and an empty (idle) node may be included. The dynamic node is configured to dynamically inject a node instance during operation.
The manual node represents a manual step, and it stops at the current node before acquiring a confirmation signal, and exits after acquiring the confirmation signal. The delay node represents exiting the current node after delaying for a specified time. The empty (idle) node represents not executing any operation, and a placeholder can be replaced by any FB node. Each logic node can correspond to an operation template, and each operation template pre-defines at least one type of operation executable by resources (such as cooperative robots or PLC-type devices), for example, the operation can include: an action, a method or a skill.
During implementation, each operation template can be composed of an interface part and an implementation part. The implementation part may be an application (e.g., a containerized application) which includes function codes and operation dependency items. The application can run independently and is disclosed to the outside through a specific network communication interface. The interface part can be a logic node presented in a graphical element, namely, it can be dragged and dropped, connected and configured in the graphical user interface like other behavior tree nodes. During implementation, each logic node can be provided with a parameter panel used for configuring parameters of the logic node, such as input and output parameters. Definitely, the input and output parameters can also be preset with default values.
Each logic node can be independently configured and executed. When the logic node in the behavior tree is executed, the input configured by the user for the logic node is read and transmitted to the implementation part of the operation template, namely the corresponding application program. After a specific operation such as model conversion is completed, the operation result such as the converted model is converted back to the output of the logic node. The interface part and the implementation part of each operation template can be independently stored. For example, only the interface part, namely the logic node, can be stored in the node library, the implementation part of the node library can be stored in the node service module, and the node service module can be called runtime in this embodiment. The node service module can be located in a server or can also be located locally.
In some embodiments, the logic node follows an information model interacted with a main controller during operation. Therefore, the standardization of communication between the OT domain workflow and the main controllers of various OT devices is realized. In addition, because the service operation corresponding to one FB node may be executed by different subjects, for example, it may be a specific physical device, may be a certain person, and may also be other virtual noun resources. To facilitate description, the physical devices, personnel, virtual noun resources and the like are collectively called as resources, and the resources generally refer to resources which can execute the workflow on site and serve as operation subjects.
During implementation, the resources serving as the operation execution subjects can serve as a common configuration parameter of the FB node, and corresponding resource configuration is carried out on the needed FB node when creating the behavior tree; or, when creating the FB node, the resources serving as the operation execution subjects are configured for the FB node, and therefore resource configuration does not need to be carried out on the needed FB node when creating the behavior tree. Alternatively, to facilitate management of resources, the resources can be represented in a form of resource nodes, and the resource nodes can be stored in a form of a resource knowledge graph. The resource knowledge graph includes: each resource node, and a connecting line representing the relationship between the resource nodes.
For example,
Each FB node can be instantiated into an operation of a corresponding resource by associating with a resource node. For example, a certain logic node can be instantiated into operation of a corresponding device by associating with a device resource node. During implementation, a header can be set for the FB node, and the resource associated with the FB node can be displayed in the header.
The specific association process may be implemented in different modes. For example, each resource node can be associated with a corresponding FB node in advance, so that when creating the behavior tree, the FB node associated with the corresponding resource can be directly pulled, and temporary configuration is not needed. For example,
In some embodiments, the resource nodes are not associated with the FB nodes in advance, and corresponding resource nodes are associated with the needed FB nodes when creating the behavior tree.
In some embodiments, the FB nodes associated with the resource nodes in advance (can be called as special FB nodes) and the FB nodes not associated with the resource nodes (can be called as universal function block nodes) can exist at the same time. Although the universal FB nodes are not associated with field resources, analog simulation of workflows corresponding to the behavior tree including the FB nodes is not affected. For example, a certain CR is not purchased yet, and to verify the feasibility, the corresponding universal FB nodes can be adopted in advance for simulation, and when it is determined that it has feasibility, purchase can be performed.
In addition, it can further include the following decorator nodes:
The decorator nodes are mainly configured to decorate the FB nodes driven by the compositor nodes, for example, the decorator nodes can be configured to determine whether branches in the behavior tree or even a single node can be executed or not. The decorator nodes can include: part or all of an Rp (Repeat) node, an Rt (Retry) node, an OS (One-Shot) node, a TO (Timeout) node, a Tm (Timer) node, an Iv (Inverter) node, an FR (Force Run) node, an FO (Force OK) node, an FF (Force Failed) node and a G (Guard) node. Some decorator nodes are briefly described as follows:
1) Iv node: it may have a child node and is configured to invert the child node. If the child node fails, it returns to success; and if the child node is successful, it returns to failure.
2) FO node: it may have a child node (such as an FB node), and the node always returns to success no matter whether the child node is successful or not.
3) FF node: it may have a child node (such as an FB node), and the node always returns to failure no matter whether the child node is successful or not.
4) Rp node: it may have a child node (such as an FB node), and the child node can be repeatedly executed for a fixed number of times.
5) Rt node: it may have a child node (such as an FB node), and the child node can be triggered for N times at most; if the child node returns to failure, the retry is carried out and the number of times is subtracted by one, and when the number of times of retry is zero, it returns to success; and if the child node returns to success, the loop is interrupted, and it also returns to success. N is a positive integer.
6) OS node: it may have a child node, which represents that the child node is executed only once in the workflow and is not executed before the workflow is restarted.
7) TO node: it may have a child node and is configured to count the execution time of the child node (such as an FB node), and it exits execution (even if the execution is not completed) after the specified time is exceeded.
8) Tm node: it may have a child node, and the child node (such as an FB node) is executed after the specified time is reached.
9) FR node: it may have a child node, and it will be forced to return to the running state no matter whether the child node (such as an FB node) is executed or not.
10) G node: it may have at least one child node configured to guard the state of all the child nodes. When any child node is executed in an error, it reports an error. When all child nodes are normal, it returns to normal.
In some embodiments, the decorator node can also be included in the flow control node. That is, the flow control node can include: all or part of the main control node, the compositor node and the decorator node. Each behavior tree node can be listed on the graphical user interface in a form of an icon, and the user can determine the node required to create the workflow by selecting, dragging and adding the icon to the canvas, and further, the node can be subjected to necessary parameter configuration, such as resource configuration and/or input/output parameter configuration. If an operation to be performed by the work cell, that is, the operation defined in the required workflow is more than one, the behavior tree corresponding to the workflow can include multiple FB nodes, the corresponding flow control nodes can be set according to the sequence and correlation of the operations, and the behavior tree corresponding to the workflow can be finally generated by performing corresponding arrangement and connection on the dragged nodes. That is, the behavior tree construction operation includes adding and connecting the behavior tree nodes. Further, the method includes an operation of associating resources for the added FB nodes. In addition, the method further includes: an operation of configuring input/output parameters for the behavior tree nodes.
Step S12: In response to the behavior tree construction operation, the behavior tree corresponding to the workflow is generated, the logic nodes in the behavior tree being instantiated into operations of the corresponding device. In response to the behavior tree construction operation, each behavior tree node can be instantiated, and a connection relationship between the instantiated behavior tree nodes is established. For example, by executing this step, the added logic node can be instantiated as the operation of the corresponding device. Then the behavior tree corresponding to a workflow is generated on the basis of the connection relationship between the instantiated behavior tree nodes.
During implementation, the behavior tree nodes can be stored in the node library. In addition, for similar application scenarios, to avoid waste of manpower, time and the like for repeatedly constructing the behavior tree, a behavior tree (or a non-instantiated behavior tree framework) corresponding to a workflow or a corresponding subworkflow which is constructed by the user and is preferably debugged or successfully operated is stored as a workflow node or a subworkflow node. Correspondingly, the node library can further include a WF (WorkFlow) node, and an SWF (SubWorkFlow) node. When the user needs to construct a similar behavior tree or construct a behavior tree including the WF or the SWF, a corresponding WF node or SWF node can be selected and necessarily configured so as to obtain a behavior tree for realizing the required WF.
Step S13: The behavior tree is analyzed, and the workflow corresponding to the behavior tree is deployed to runtime of the corresponding work cell, so that each resource in the work cell executes the operation according to the workflow. During implementation, the work cell can be provided with a main controller, and in this case, it can be on the main controller of the work cell during running. Correspondingly, the device resource of the resources can be connected to the main controller, and the main controller controls the connected device resource to execute corresponding operations according to the workflow during running; and human resources and the like in the resources can directly execute corresponding operations according to the workflow prompt during running.
The behavior tree can be stored in a Markup language such as XML (Extensive Markup Language), and can be verified by an XML Schema (XSD) prototype to verify that the XML format of the behavior tree is correct. After the behavior tree is analyzed, a workflow represented in “a node link assembly” form can be obtained, and then the workflow is compiled and downloaded to the runtime of the main controller of the corresponding work cell.
According to the definition of the Gartner, the OT domain generally refers to an operation technology (OT), which integrates hardware and software, and detects or triggers the change or the event of the process in an enterprise by directly monitoring and/or controlling a physical device (called OT device). The OT monitors or changes the physical state of an industrial control system (ICS) with a computer. The industrial control system is a facility, a system and a device implemented on the basis of the computer and is used for remotely monitoring and/or controlling a key industrial process, so as to realize a physical function. The “OT” is used for distinguishing the industrial control a system from traditional information technology (IT) system in technical implementation and function.
At present, there are multiple IT low-code development tools or platforms in the market. Part of the tools are oriented to the use scenario of the Internet of Things as well as the experienced IT engineers, and OT engineers and primary IT engineers are difficult to understand the paradigms of the tools. Part of the tools are more applicable to the use scenario of IT domain low-code development and cannot be well applicable to the OT domain.
The workflow creation methods described herein can be used for the OT domain and serves as an OT domain low-code development method. Specifically, the workflow creation method shown in
Considering that the integration of the IT domain and OT domain is becoming increasingly important in the process of digital transformation of enterprises, to integrate the IT domain and OT domain into an ITOT system, a problem that needs to be solved urgently is how enterprises can collect OT domain data and control OT domain processes in a way that is easy to understand rather than IT domain programming.
The workflow creation methods described herein can be used for this ITOT system and serves as an OT domain low-code development method in which IT domain can be fused. Similarly, the workflow creation method shown in
During generating the micro-service on the basis of the behavior tree, APE of the micro-service can be generated on the basis of the behavior tree, and the processing process in the API includes each operation in the OT domain workflow, input parameters of the API are parameters acquired by an input port of the OT domain workflow, and output parameters of the API are parameters outputted by an output port of the OT domain workflow. If the IT domain needs to call the micro-service, the IT domain needs to acquire the information of the micro-service. The implementation modes include but are not limited to the following two modes:
In the Mode I, a code developer of the OT domain can notify the code developer of the IT domain of the generated name and IP address of each generated micro-service, so that the code developer of the IT domain can directly write the information of each micro-service into the code in the development process, thereby realizing the calling of the IT device to the micro-service. The Mode I is relatively suitable for scenarios with a small number of micro-services.
In the Mode II, a registration and discovery mechanism can be adopted. That is, each micro-service is registered on the knowledge middle platform, so that an IT domain code development tool enables the IT device to discover the connected micro-service through the knowledge middle platform. During implementation, the IT domain code development tool can be utilized to enable the IT domain device to discover the connected micro-services through code development using the knowledge middle platform. An apparatus which completes the micro-service registration can be an OT domain micro-service generator or a third-party apparatus. The third-party apparatus can be regarded as a part of the OT domain low-code development platform, or is implemented in the knowledge middle platform. The Mode II is relatively suitable for scenarios with a large number of micro-services.
The IT devices can include but are not limited to: a manufacturing operation management (MOM) system, a Manufacturing Execution System (MES), an enterprise resource planning (ERP) system, an enterprise service bus (ERP), a product lifecycle management (PLM) system and the like. Because the IT domain code development tool can perform programming to realize that the IT device executes the OT domain workflow when calling the micro-service to trigger the runtime of the main controller of the work cell through the knowledge middle platform, so that the IT domain code development platform can control the OT domain process, that is, the fusion of the IT domain and the OT domain is realized. The micro-service is automatically generated by the OT domain micro-service generator on the basis of the OT domain behavior tree, the IT domain code development tool does not need to understand the details of the OT domain workflow, only the identifier (such as name) and the IP address of the micro-service need to be obtained, and the developers of the IT domain do not need to know OT domain device and control process, and therefore, implementation and understanding are easy.
The fields to which the embodiments of the present application are applicable include but are not limited to: industrial automation, logistics, laboratory, maritime, smart grid, electric vehicle infrastructure, electric vehicle, building automation, smart city, water treatment, garbage recycling, smart farm, and the like.
The workflow creation methods incorporating teachings of the present disclosure are described in detail above, and a workflow creation system will be described in detail below. The workflow creation system can be used to implement one or more of the workflow creation methods described herein. For details not disclosed in detail in the system embodiments, please refer to the corresponding description in the method embodiments, which will not be repeated here.
Behavior tree nodes for constructing behavior trees are arranged in the node library 110; and the behavior tree nodes can include: flow control nodes and function block nodes. One behavior tree represents one workflow, and the workflow defines an operation to be executed by one work cell. The flow control nodes are configured to implement logic control over the workflow; the function block nodes are configured to implement a service operation in the workflow, and the function block nodes can include: logic nodes, each logic node corresponding to one operation template, each operation template pre-defining at least one type of resources such as operation executable by a device, and the operation can include: an action, a method or a skill.
In some embodiments, the resources are represented in a form of resource nodes, and all the resource nodes are stored in an associated manner in a form of a resource knowledge graph; The resource knowledge graph includes: each resource node, and a connecting line representing the relationship between the resource nodes. Correspondingly, in this embodiment, the system can further include: a resource library 150 configured to store each resource in the form of the resource knowledge graph, and each resource can execute at least one service operation.
In some embodiments, the flow control nodes can include: part or all of main control nodes, logic control nodes and a condition nodes; the main control nodes can include: part or all of a start node, an end node, a goto node, an anchor node, a stop node, and an abort node. The logic control nodes include: part or all of an Se node, an RSe node, a Pa node, an IPQ node, a Pr node, an RPr node, an ITE node, and an Sw node.
In some embodiments, the function block nodes can further include: part or all of a manual node, a dynamic node, a delay node and an empty (idle) node.
In some embodiments, the behavior tree nodes further include: decorator nodes which can include: part or all of an Rp node, an Rt node, an OS node, a TO node, a Tm node, an Iv node, an FR node, an FO node, an FF node and a G node.
In some embodiments, part or all of the function block nodes in the node library 110 are respectively bound with resources for executing service operations corresponding to the function block nodes.
The graphical interface module 120 is configured to provide a graphical user interface (GUI) for a user to construct a behavior tree on the basis of the behavior tree nodes in the node library. Each behavior tree node can be listed on the graphical user interface (GUI) in a form of an icon.
The editing processing module 130 is configured to: in response to the behavior tree construction operation, generate the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding device. During implementation, the editing processing module 130 can be configured to: in response to the behavior tree construction operation, instantiate each behavior tree node, and establish a connection relationship between the instantiated behavior tree nodes; and generate the behavior tree corresponding to a workflow on the basis of the connection relationship between the instantiated behavior tree nodes. Part or all of the instantiated function block nodes are associated with resources for executing corresponding service operations. For example, through the operation, the logic node is instantiated into an operation corresponding to the resource such as the device.
Each behavior tree node can be listed on the graphical user interface in a form of an icon, and the user can determine the node required to create the workflow by selecting, dragging the icon to the canvas, and further, the node can be subjected to necessary parameter configuration, such as resource configuration and/or input/output parameter configuration. If an operation to be performed by the work cell, that is, the operation defined in the required workflow is more than one, the behavior tree corresponding to the workflow can include multiple logic nodes, the corresponding flow control nodes can be set according to the sequence and correlation of the operations, and the behavior tree corresponding to the workflow can be finally generated by performing corresponding arrangement and connection on the dragged nodes.
In some embodiments, the construction operation can include: the operation of adding a function block node and the operation of associating resources for the added function block node. Corresponding to the method shown in
In some embodiments, as shown in
Further, as shown in
The synthesis of the OT domain low-code development platform 100 shown in
As shown in
If the IT domain needs to call the micro-service 40, the IT domain needs to acquire the information of the micro-service 40.
Corresponding to the method shown in
In the Mode I, a code developer of the OT domain can notify the code developer of the IT domain of the generated name and IP address of each generated micro-service 40, so that the code developer of the IT domain can directly write the information of each micro-service 40 into the code in the development process, thereby realizing the calling of the IT device to the micro-service 40. The Mode I is relatively suitable for scenarios with a small number of micro-services.
In the Mode II, a registration and discovery mechanism can be adopted. Each micro-service 40 can be registered on the knowledge middle platform 200, so that an IT domain code development tool 301 enables the IT domain device to discover the connected micro-service 40 through the knowledge middle platform 200 by code development. An apparatus which completes the micro-service 40 registration can be an OT domain micro-service generator 20 or a third-party apparatus 50 as shown in
In some embodiments, the OT domain micro-service generator 20 can generate an API of the micro-service 40 on the basis of the OT domain behavior tree, the processing process in the API can include the operation of each function block in the OT domain workflow, the input parameters of the API are parameters acquired by an input port of the OT domain workflow, and the output parameters of the API are parameters outputted by an output port of the OT domain workflow.
An application scenario of the OT domain low-code development platform 100 provided by the embodiments of the present application in the field of industrial automation is shown as
The corresponding workflow is generated on the basis of the behavior tree and published to the runtime 30, so that the production line operation of the work cell is controlled and completed through the runtime 30. Moreover, the micro-service generator 20 generates a corresponding micro-service on the basis of the behavior tree and registers the micro-service to the knowledge middle platform 200, so that the IT domain code development tool 301 can call the corresponding micro-service through the knowledge middle platform 200. The user can edit the OT domain behavior tree by dragging and editing each node including the function block nodes as shown in the GUI at the lower left of
As shown in
The at least one memory 51 stores a computer program. The at least one memory 51 can include a computer-readable medium, such as a Random Access Memory (RAM). In addition, the at least one memory 51 can also store an operating system and the like. The operating system includes but is not limited to: an Android operating system, a Symbian operating system, a Windows operating system, a Linux operating system and the like. The computer-storage program can include the following program modules: the node library 110, the graphical interface module 120, the editing processing module 130 and the analysis deployment module 140, and optionally can also include the OT micro-service generator 20, the runtime 30 and the third-party apparatus 50.
At least one processor 52 is configured to call the computer program stored in the at least one memory 51 to execute the workflow creation method described in the embodiment of the present application. The at least one processor 52 can be a microprocessor, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a central processing unit (CPU), a graphics processing unit (GPU), a state machine and the like. The at least one processor can receive and send data through the communication port.
The at least one display 53 is configured to display the image/graphic user interface.
In some embodiments, the at least one processor 52 is configured to call the computer program stored in at least one memory 51 to enable the system to execute one or more of the workflow creation methods described herein. In addition, the communication interface is configured to realize communication with other devices, such as communication with the knowledge middle platform 200.
In some embodiments, the OT domain low-code development tool 10 is configured to implement the graphical interface module 120, the editing processing module 130 and the analysis deployment module 140 can be a lightweight web-based application, can be implemented on an industrial field (such as an edge device or a local server), and can also be implemented on a cloud (such as public cloud of AWS or private cloud of OpenStack). The visual engineering paradigm is derived from a function block typed diagram (FBTD). The OT domain micro-service generator 20 can generate a standard API such as RESTful or RPC by a modern translation programming language. The OT domain workflow can be simply implemented during operation 30, and the openness is provided on the basis of an open source community (such as Python) based ecological system. The runtime 30 can be deployed on an embedded IoT device such as a single board computer (SBC).
The embodiments of the present disclosure can include an apparatus with an architecture different from that shown in
Some embodiments include a technical solution for controlling the workflow by the compositor node of a low-code paradigm with function block typed diagram logic (FBTD).
step 601: determining a type of a compositor node on the basis of an operation performed on a graphical user interface by a user, where the compositor node includes a start block suitable for starting execution of the compositor node, an end block suitable for ending execution of the compositor node, and multiple working links arranged between the start block and the end block;
step 602: determining a target working link from the multiple working links on the basis of the type of the compositor node; and
step 603: controlling logic of a workflow on the basis of the target working link, where the workflow is generated on the basis of a behavior tree including the compositor node.
The compositor node always appears in pairs with the start block and the end block. The start block has an optional input port to provide a compositor expression, so that the target working link can be selected according to the compositor expression. For example, the target working link is selected according to the value of the compositor expression, or the target working link is selected on the basis of a working link selection rule defined by the compositor expression. The end block has an optional input port called an end logic value, and the compositor node of a parallel type uses the end logic value to determine whether it is an AND or an OR. A set of compositor pair blocks may include two or more working links (i.e., branches). Optionally, before a data value block (DVB) is attached to each working link of the compositor pair blocks, it represents a trigger value of the compositor expression of the corresponding working link. In one embodiment, the data value block may be a value generated for the corresponding working link on the basis of the compositor expression for selecting the corresponding working link. In another embodiment, the data value block may also be a condition for selecting the corresponding working link, and the condition is related to the value generated on the basis of the compositor expression.
In some embodiments, at least one working link of the multiple working links include a function block node, and the function block node is configured to implement a service operation in the workflow.
In some embodiments, the determining a type of a compositor node on the basis of an operation performed on a graphical user interface by a user includes: determining the type of the compositor node on the basis of a selection operation performed on the graphical user interface including a node library by the user, the node library including: a compositor node for identifying the type in a semantic manner or a compositor node for identifying the type in a presentation manner.
In the compositor node for identifying the type in the semantic manner, the type of the compositor node is directly identified in a text mode in an icon, with a visual effect, of the compositor node.
In the compositor node for identifying the type in the presentation manner, the type of the compositor node is correspondingly identified by different presentation modes, for example, in the icon of the compositor node, the type of the compositor node is correspondingly identified by different line types (such as solid lines, dotted lines and interval lines) forming the icon.
In some embodiments, the method further includes: receiving a behavior tree construction operation performed on the graphical user interface by the user, where the construction operation includes an addition and connection operation of a behavior tree node, and the behavior tree node includes the compositor node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node includes: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation including: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, where the workflow is an OT domain workflow, and the device is an OT device.
In some embodiments, the method further includes: generating a micro-service on the basis of the behavior tree, so that an IT device executes the OT domain workflow when calling the micro-service to trigger runtime of a main controller of the work cell. Below is an exemplary explanation of using different types of compositor nodes to implement flexible control over the workflows.
Different modes of determining the target working link from the multiple working links can be implemented depending on different types of the compositor node 70, and therefore flexible control over the workflow is implemented.
In some embodiments, the type of the compositor node 70 is parallel selection (Pa, Parallel); the determining a target working link from the multiple working links includes: determining each working link of the multiple working links as the target working link, and starting to execute the target working link; and the method further includes: receiving an end logic value through the input end of an end block, where when the end logic value is a logic AND, and the multiple working links are executed completely, ending execution of the compositor node through the end block; and when the end logic value is a logic OR, and at least one working link of the multiple working links is executed, ending execution of the compositor node through the end block.
In
In some embodiments, the type of the compositor node is SW (Switch), and the method further includes: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: determining a data value block when each working link is selected; and selecting a target working link conforming to the corresponding data value block from the multiple working links on the basis of a computation result of the composition expression.
In
In some embodiments, the type of the compositor node is ITE (If-Then-Else), and the method further includes: receiving a preset composition expression through an input end of the start block, a result of the composition expression including a logic true value or a logic false value; and the determining a target working link from the multiple working links includes: determining a corresponding target working link from the multiple working links on the basis of the result of the composition expression being the logic true value or the logic false value.
The preset working link corresponding to the logic value is selected on the basis of that the logic value generated by the composition expression is true or false. In
In some embodiments, the type of the compositor node is Pr (Priority (Fallback)), and the method further includes: receiving a preset composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: computing a data value block of each working link on the basis of the composition expression; determining a priority rank of the multiple working links on the basis of a ranking result of the data value block of each working link; and determining the target working link from the multiple working links on the basis of the priority rank. The data value block can be a value which is generated by the corresponding working link on the basis of the compositor expression and configured to select the corresponding working link. That is, the data value block 78, the data value block 79 and the data value block 80 generated on the basis of the compositor expression may be different (for example, the parameter difference of all execution links), and in this case, the priority rank of the working links is determined on the basis of the sorting result of the data value block of each working link; and the target working link is determined from the multiple working links on the basis of the priority rank, and the sorting result of the data value blocks can be sorted from large to small or from small to large on the basis of presetting.
For example, in
In some embodiments, the type of the compositor node is RPr (Reactive Priority (Fallback)), and the method further includes: receiving a first composition expression and a second composition expression through an input end of the start block; and the determining a target working link from the multiple working links includes: computing a first data value block of each working link on the basis of the first composition expression; computing a second data value block of each working link on the basis of the second composition expression; determining a priority rank of the multiple working links on the basis of a ranking result of the first data value blocks of the multiple working links; and determining the target working link from the multiple working links on the basis of the priority rank and the second data value block of each working link.
In
The compositor node is easy to understand but is only applied to a limited number of branches. Therefore, a new compositor node paradigm is introduced in the embodiment of the present application, which can support a large number of branches. The folding compositor has the function similar to that of a common compositor, but supports folding.
In some embodiments, the compositor node is displayed in a folding mode in a folding frame on the graphical user interface, and the folding frame includes a first display area which is suitable for displaying a currently displayed working link of the compositor node and hiding working links except the currently displayed working link. In some embodiments, the folding frame further includes a second display area, a third display area and a switch control; the second display area is suitable for displaying a data value block of the currently displayed working link; the third display area is suitable for displaying a label of the currently displayed working link; and the switch control is suitable for switching the currently displayed working link among the multiple working links.
The first display area 88 may be stretchable and can be stretched on the basis of the length of the currently displayed working link contained in the first display area. Therefore, the folding compositor is another type of FBTD compositor low-code paradigm. The data value block of the compositor expression result can be in a new column of the header row. Moreover, a left arrow button and a right arrow button can be switched between different branches. The data value block of the current branch is displayed in the data value block column. Moreover, the current label of the current branch of the compositor is displayed in a work instruction label index block. The size of the folding compositor can be stretched for different numbers of function blocks, and this paradigm provides a convenient mode for displaying complex logic in a limited area of the low-code canvas.
In some embodiments, the first determination module 801 is configured to determine the type of the compositor node on the basis of a selection operation performed on the graphical user interface including a node library by the user, the node library including: a compositor node for identifying the type in a semantic manner or a compositor node for identifying the type in a presentation manner.
In some embodiments, at least one working link of the multiple working links includes a function block node, and the function block node is configured to implement a service operation in the workflow; the first determination module 801 is configured to receive a behavior tree construction operation performed on the graphical user interface by the user, where the construction operation includes an addition and connection operation of a behavior tree node, and the behavior tree node includes the compositor node and the function block node; the behavior tree is used for representing the workflow, and the workflow is used for defining an operation to be executed by a work cell; and the function block node includes: logic nodes, each logic node corresponding to an operation template, each operation template pre-defining at least one type of operation executable by a device, and the operation including: an action, a method or a skill; in response to the behavior tree construction operation, generating the behavior tree corresponding to the workflow, the logic nodes in the behavior tree being instantiated into operations of the corresponding devices; analyzing the behavior tree to acquire the workflow; and deploying the workflow to runtime of the corresponding work cell, so that each device in the work cell executes the operation according to the workflow, where the workflow is an OT domain workflow, and the device is an OT device.
In some embodiments, a computer-readable storage medium stores computer-readable codes thereon, when executed by a processor, the computer-readable codes causing the processor to execute the workflow construction method and the workflow control method above. In some embodiments, a computer program product is stored on a tangible computer-readable medium and including computer-readable instructions, when executed, the computer-readable instructions causing at least one processor to execute the steps in the workflow creation method and the workflow control method in the embodiments of the present application.
In some embodiments, include a workflow creation system which is provided with a system structure similar to that in
In some embodiments, a system or an apparatus provided with a storage medium can be provided, the computer-readable codes for realizing the functions of any implementation mode of the embodiment are stored on the storage medium, and a computer (or a CPU or an MPU) of the system or the apparatus reads and executes the computer-readable codes stored in the storage medium. In addition, an operating system and the like operated on the computer can complete partial or all actual operations through instructions on the basis of the computer-readable codes. The computer-readable codes read from the storage medium can also be written into a memory arranged in an expansion board inserted into the computer or written into a memory arranged in an expansion unit connected with the computer, and then the CPU and the like arranged on the expansion board or the expansion unit execute partial or all actual operations on the basis of the instructions of the computer-readable codes, thereby realizing the functions of any one of the implementation modes above.
The embodiments of the computer-readable medium includes but is not limited to a floppy disk, a CD-ROM, a magnetic disk, an optical disk (such as a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, a DVD-R, and a DVD+RW), a memory chip, an ROM, an RAM, an ASIC, a configured processor, an all-optical medium, all magnetic tapes or other magnetic media, or any other medium from which the computer processor can read instructions. In addition, various other forms of computer-readable media can transmit or carry instructions to a computer, including a router, a private or public network, or other wired and wireless transmission devices or channels, for example, the computer-readable instructions can be downloaded from a server computer or cloud by a communication network. The instructions can include codes of any computer programming language, including C, C++, C language, Visual Basic, java and JavaScript.
Not all steps and modules in the above processes and system structure diagrams are necessary, and some steps or modules can be ignored according to actual needs. The execution order of each step is not fixed and can be adjusted as needed. The system structure described in the above embodiments can be a physical structure or a logical structure, that is, some modules may be implemented by the same physical entity, or some modules may be implemented by multiple physical entities or may be jointly implemented by certain components in multiple independent devices.
The foregoing descriptions are merely example embodiments of the teachings of the present disclosure but are not intended to limit thereof. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present disclosure shall fall within the protection scope thereof.
Various embodiments include a workflow control method. An example includes: determining a type of a compositor node on the basis of an operation performed on a GUI by a user, wherein the compositor node comprises a start block to start execution of the compositor node, an end block to end execution of the compositor node, and a plurality of working links arranged between the start block and the end block; determining a target working link from the plurality of working links based at least in part on the type of the compositor node; and controlling logic of a workflow based on the target working link, wherein the workflow is generated on the basis of a behavior tree comprising the compositor node.
This application is a U.S. National Stage Application of International Application No. PCT/CN2022/075083 filed Jan. 29, 2022, which designates the United States of America, the contents of which are hereby incorporated by reference in their entirety.
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/CN2022/075083 | 1/29/2022 | WO |