WO2023164835A1 - 工作流执行方法、装置、存储介质及程序产品 - Google Patents
工作流执行方法、装置、存储介质及程序产品 Download PDFInfo
- Publication number
- WO2023164835A1 WO2023164835A1 PCT/CN2022/078819 CN2022078819W WO2023164835A1 WO 2023164835 A1 WO2023164835 A1 WO 2023164835A1 CN 2022078819 W CN2022078819 W CN 2022078819W WO 2023164835 A1 WO2023164835 A1 WO 2023164835A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- function block
- workflow
- node
- idempotent
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Definitions
- the embodiments of the present application relate to the field of industrial technology, and in particular, to a workflow execution method, device, storage medium, and program product.
- Workflow can be simply defined as a description of a series of operations. Workflow is widely used in automation systems, artificial intelligence, robotics and other fields. For example, the workflow of a product sorting line in an automated system can be simply described as starting, taking pictures, sorting and moving the products to the target location.
- the model deployment workflow in the field of artificial intelligence can be described as data collection, data labeling, model training, and model deployment.
- Embodiments of the present application provide a workflow execution method, device, storage medium, and program product.
- the embodiment of the present invention proposes a workflow execution method.
- the method includes:
- auxiliary process adapted to provide resources for the workflow based on the configuration information, wherein the auxiliary process is adapted to carry a persistent connection with the resource
- a function block process adapted to execute a function block in said workflow, wherein said function block process is adapted to carry a first idempotent short connection with said helper process and/or a second idempotent short connection with said resource An idempotent short connection, wherein the auxiliary process is decoupled from the function block process.
- the method further includes:
- the auxiliary process is enabled to establish the persistent connection.
- the auxiliary process establishes a persistent connection, which improves the overall running speed of the workflow.
- the method further includes:
- the auxiliary process is enabled to disconnect the long connection.
- the auxiliary process disconnects the long connection, thereby saving connection resources.
- the function block process when the function block process needs to access the resource, the function block process is enabled to establish the first idempotent short connection, and the auxiliary function is called through the first idempotent short connection. process to access the resource via the long connection, or enable the function block process to establish the second idempotent short connection to access the resource via the second idempotent short connection.
- the function block can access resources through the first idempotent short connection and long connection, or directly through the second idempotent short connection, and there are various implementation modes.
- the function block process when the function block process needs to end access to the resource, the function block process is enabled to end the first idempotent short connection and/or end the second idempotent short connection.
- the function block can also save connection resources by terminating idempotent short connections when accessing resources is terminated.
- the function block process invokes the persistent connection via an interoperable invoker
- the resources include at least one of the following:
- the method further includes:
- the function block process can also have real-time operation capability.
- the embodiment of the present invention provides a workflow execution device.
- the unit includes:
- An acquisition module configured to acquire workflow and configuration information, wherein the workflow is generated based on the behavior tree construction operation performed by the user on the graphical user interface;
- a configuration module configured to configure an auxiliary process adapted to provide resources for the workflow based on the configuration information, wherein the auxiliary process is adapted to carry a persistent connection with the resource;
- a generation module configured to generate a function block process adapted to execute a function block in the workflow, wherein the function block process is adapted to bear the first idempotent short connection with the auxiliary process and/or with the A second idempotent short connection of the resource, wherein the auxiliary process is decoupled from the function block process.
- the generating module is further configured to enable the auxiliary process to establish the persistent connection when the start node in the workflow is executed.
- the auxiliary process establishes a persistent connection, which improves the overall running speed of the workflow.
- the generating module is further configured to enable the auxiliary process to disconnect the long connection when an end node in the workflow is executed.
- the auxiliary process disconnects the long connection, thereby saving connection resources.
- the generating module is further configured to enable the function block process to establish the first idempotent short connection when the function block process needs to access the resource, via the first The idempotent short connection invokes the auxiliary process to access the resource via the long connection, or enables the function block process to establish the second idempotent short connection to access the resource via the second idempotent short connection resource.
- the function block can access resources through the first idempotent short connection and long connection, or directly through the second idempotent short connection, and there are various implementation modes.
- the generating module is further configured to enable the function block process to end the first idempotent short connection and/or end the Describe the second idempotent short connection.
- the function block can also save connection resources by terminating idempotent short connections when accessing resources is terminated.
- the function block process invokes the persistent connection via an interoperable invoker
- the resources include at least one of the following:
- the generation module is further configured to generate a real-time operation process adapted to be called by the function block process based on the configuration information, wherein the real-time operation process is adapted to bearer and the resource long connection and provide real-time operation capability based on the resource; when the function block process needs to be provided with real-time operation capability, enable the function block process to establish a third idempotent short connection, via the third idempotent The short connection invokes the real-time operation process to obtain the real-time operation capability.
- the function block process can also have real-time operation capability.
- the embodiment of the present invention proposes a workflow execution device, including: at least one memory configured to store computer-readable codes; at least one processor configured to invoke the computer-readable codes to execute the above-mentioned A step in the workflow execution method.
- the embodiment of the present invention provides a computer-readable medium, wherein computer-readable instructions are stored on the computer-readable medium, and when the computer-readable instructions are executed by a processor, the The processor executes the steps in any one of the workflow execution methods described above.
- the embodiment of the present invention proposes a computer program product, the computer program product is tangibly stored on a computer-readable medium and includes computer-readable instructions, and when executed, the computer-readable instructions cause at least one The processor executes the steps in any one of the workflow execution methods described above.
- FIG. 1A is an exemplary flow chart of workflow creation methods provided by various embodiments of the present application.
- FIG. 1B is an example diagram of a resource knowledge graph in an example of the present application.
- FIG. 1C is an example diagram in which resource nodes are associated with function block nodes in an example of the present application.
- FIG. 2A is a schematic diagram of a behavior tree created in an example of the present application.
- FIG. 2B to FIG. 2S are respectively schematic diagrams of partial behavior trees created in an example of the present application.
- FIG. 2T is an example of building a behavior tree based on the function block nodes of the function block type diagram in an example of the present application.
- 2U to 2X are schematic diagrams of hiding or displaying data input ports or data output ports in an example of the present application, respectively.
- FIG. 2Y is a schematic diagram of adding data blocks to four function block nodes in the behavior tree and displaying corresponding data in each data block in an example of the present application.
- Fig. 3 is an exemplary structural diagram of a workflow creation system provided by an embodiment of the present application.
- 4A-4D are schematic diagrams of workflow creation systems provided by various embodiments of the present application.
- FIG. 4E is a diagram of an application scenario of the OT domain low-code development platform 100 in the field of industrial automation.
- FIG. 5 is a schematic diagram of hardware implementation of the workflow creation system provided by the embodiment of the present application.
- FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application.
- FIG. 7A is a first schematic diagram of a low-code example of an FBTD logic synthesizer provided by various embodiments of the present application.
- FIG. 7B is a second schematic diagram of a low-code example of the FBTD logic synthesizer provided by various embodiments of the present application.
- FIG. 7C is a schematic diagram of a low-code example of a folded FBTD logic synthesizer provided by various embodiments of the present application.
- FIG. 8 is an exemplary flowchart of a workflow execution method provided by an embodiment of the present application.
- FIG. 9 is an exemplary schematic diagram of a workflow execution process provided by an embodiment of the present application.
- FIG. 10 is an exemplary structural diagram of a workflow execution device provided by various embodiments of the present application.
- FIG. 11 is an exemplary structural diagram of a workflow execution device with a memory-processor architecture provided by various embodiments of the present application.
- 902 real-time registration 903 real-time callback 904 Start a short connection 905 end short connection 906 reset 907 Idempotent short connection 908 Hard drive short connection 910 caller 911 Interoperability FB1 ⁇ FB6 function block 921 ⁇ 926 function block process 927 real-time operation process 928 hardware monitoring process 929 memory process 930 hardware driver 931, 940 initialization 932 Hardware-driven long connection 933, 942 reset 941 Hardware monitoring long connection 950 real-time operation short processing 700 Workflow Execution Device 701 get module 702 configuration module 703 build module 500 Workflow Execution Device 501 memory 502 processor
- the term “comprising” and its variants represent open terms meaning “including but not limited to”.
- the term “based on” means “based at least in part on”.
- the terms “one embodiment” and “an embodiment” mean “at least one embodiment.”
- the term “another embodiment” means “at least one other embodiment.”
- the terms “first”, “second”, etc. may refer to different or the same object. The following may include other definitions, either express or implied. Unless the context clearly indicates otherwise, the definition of a term is consistent throughout the specification.
- FIG. 1A shows an exemplary flow chart of a method for creating a workflow provided by an embodiment of the present application. As shown in Figure 1A, the method may include the following steps:
- Step S11 receiving a behavior tree construction operation performed by the user on the graphical user interface based on the preset behavior tree nodes.
- a behavior tree is used to represent a workflow, and the workflow is used to define operations to be performed by a work unit, for example, it may represent a distributed process within a work unit.
- the workflow here can also be subdivided into main workflow and sub-workflow.
- the main workflow is used to define the start, end, and other flow controls that trigger the flow of the entire unit of work.
- the main workflow is the entry point of the entire process, which is linked to at least one sub-workflow.
- Sub-workflows are usually main workflows, and each sub-workflow corresponds to a sub-process for implementing specific business operations.
- a work cell may be a combination of resources such as systems or devices capable of implementing a relatively complete and independent control process and operation.
- the workflow is created with the work unit as the basic unit, which is more in line with the characteristics of industrial control, can improve the integration degree of development, and reduce the complexity of development.
- the work unit can be defined according to the actual industrial scene, for example: you can define a process corresponding to a work unit, or you can define a work station in the process as a work unit, or you can also define A station in the workstation corresponds to a work unit, etc. Different work units have different technological processes.
- Behavior trees are a formalized graphical modeling approach. Behavior trees are widely used for intelligent decision-making in various artificial types. Since most of the logic is set according to the rules, the judgment of behavior is like a tree with many judgment branches. The behavior of the behavior tree is on the leaf node, which is the behavior logic to be executed. Execute each judgment branch from top to bottom, execute to the leaf node, and return the final judgment to the successful behavior node for logical execution, so as to realize the decision. This is the basic principle of the behavior tree. Through the behavior tree approach, well-defined symbols can be used to clearly express the relevant requirements of the software integration system. The structure of the behavior tree is organized in the form of a tree, each node has a corresponding node type, and carries different functions with related parameters.
- Behavior Tree Editor users can quickly edit behavior trees. For example, after starting the Behavior Tree Editor, you can create a new Behavior Tree, and then select the Behavior Tree node type to enter the Behavior Tree, where you can also edit the properties of the Behavior Tree nodes that make up the Behavior Tree.
- the behavior tree nodes may include: flow control nodes, function block nodes, and so on. Each of them will be described in detail below.
- Flow control nodes are used to implement logical control in workflows, which are usually independent of specific business operations in work units. Through flow control nodes, users can create various workflows according to their needs.
- the flow control node may include: a main control node, a compositor node (also called an aggregator node or a logic control node), and a condition node.
- the flow control node may also include: one or any combination of a main control node, a synthesizer node and a condition node. They are briefly explained below.
- the main control node may include: some 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 nodes in this embodiment are not standard behavior tree elements, but in this embodiment they can be used to control the main flow of the workflow and can be linked to the state machine of the workflow.
- the start node is mandatory, and one of the end node or the go-to node can also be mandatory.
- the main control node is mainly used to define the start and end of the workflow.
- other element nodes can control the state machine (such as abort and stop) or mark the key process steps that can be jumped (such as critical nodes).
- the synthesizer node can include: sequence (Se, Sequence) node, reactive sequence (RSe, Reactive Sequence) node, parallel (Pa, Parallel) node, process quality control (IPQ, In-Process QC) node, priority ( Pr, Priority (Fallback)) node, reactive priority (RPr, Reactive Priority (Fallback)) node, whether conditional judgment (ITE, If-Then-Else) node, and multi-branch selection (Sw, Switch) node some or all.
- Compositor nodes define how branches are executed in the Behavior Tree, are used to implement branching logic control in workflows, and more. For example, here's a brief description of a typical synthesizer node:
- Sequential node which can have one or more sub-nodes, will trigger routing to each sub-node in sequence according to the workflow order.
- Reactive sequence node which has the same function as the sequence node, but will continuously check the trigger conditions.
- Parallel node which can have one or more sub-nodes, starts up sequentially from top to bottom, and executes all sub-nodes in multi-process or multi-thread simultaneously.
- the quality control node in the process is that the quality engineer performs quality inspection on a part of the process steps. If the inspection fails, the exception handling process will be executed, and if it succeeds, it will continue.
- Priority node Execute each sub-branch in order according to the priority. If the previous execution fails, the next one will be executed, and any branch will pass if the execution is successful.
- Reactive priority node The function is the same as the priority node, but the trigger condition will be continuously checked.
- condition judgment node check the trigger expression, if it is true, execute the true branch, if it is false, execute the false branch.
- Multi-branch selection node check the trigger expression, and execute different branches according to different conditions, all of which are not satisfied to execute the default (default) branch.
- condition node is usually the basic logical element of the check expression in the behavior tree, which is used to execute the condition judgment and return the judgment result. It returns success or failure depending on whether the condition is true.
- Conditional nodes never return a running state.
- conditional node may also be included in a function block node.
- conditional nodes can also be used as a single type of node.
- Function block nodes are used to execute commands and implement business operations in the workflow. Typically, success is returned if the operation completed correctly, and failure is returned if the operation failed. Returns running while the operation is in progress.
- the function block nodes include logic nodes, and may also include some specific types of function block nodes, such as manual (Manual) nodes, dynamic (Dynamic) nodes, delay (Delay) nodes, and idle (Empty ( idle)) some or all of the nodes.
- dynamic node is used to dynamically inject node instance at runtime.
- the manual node represents a manual step, stop at the current node before obtaining the confirmation signal, and exit after obtaining the confirmation signal.
- Delay node means to exit the current node after a specified time delay.
- An idle node means no operation is performed, a placeholder, and can be replaced by any function block node.
- each logical node may correspond to an operation template
- each operation template predefines operations that at least one type of resource (such as a collaborative robot or a device such as a PLC) can perform.
- the operations may include: actions, methods or skills.
- each operation template may consist of an interface part and an implementation part.
- the implementation part can be an application (for example, a containerized application) that contains functional code and runtime dependencies.
- the application program can run independently and be exposed to the public through a specific network communication interface.
- the interface part may be a logical node presented as a graphical element, that is, it can be dragged and dropped, connected and configured in a graphical user interface like other behavior tree nodes.
- each logical node may have a parameter panel for configuring parameters of the logical node, such as input and output parameters. Of course, these input and output parameters can also be preset with default values.
- Each logical node can be configured and executed individually.
- the user-configured input for the logical node is read and transferred to the implementation part of the action template, the corresponding application.
- the result of the operation such as the transformed model will be converted back to the output of the logical node.
- the interface part and implementation part of each operation template can be stored separately.
- the interface part that is, the logical node
- its implementation part may be stored in a node service module, which may be called a runtime (Runtime) in this embodiment.
- the node service module can be located in a server or locally.
- the above-mentioned logical nodes follow an information model for runtime interaction with the main controller.
- the standardization of communication between the OT domain workflow and the main controllers of various OT devices is realized.
- these physical devices, personnel, and virtualized noun resources are collectively referred to as resources in this article, and these resources usually refer to resources that can execute workflows on site as the main body of each operation.
- the resource as the main body of operation can be used as a common configuration parameter of the function block node to configure the corresponding resource for the required function block node when creating the behavior tree; or, when creating the function block node, set the function Block nodes are configured with resources as the subject of operation execution, so that when creating a behavior tree, it is not necessary to configure resources for the required function block nodes.
- these resources can also be represented in the form of resource nodes, and these resource nodes can be stored in the form of resource knowledge graphs.
- the resource knowledge graph includes: various resource nodes, and connections representing relationships among resource nodes. For example, an example diagram of a resource knowledge graph in an example is shown in FIG. 1B . As shown in FIG.
- the resource knowledge graph is a factory resource knowledge graph, which describes the real system configuration of a factory.
- the factory (F, Factory) node has an industrial computer (IPC) node
- the industrial computer (IPC) node has a collaborative robot (CR, Cooperative Robot) node, a PLC node and a bar code scanner (BCS, Bar Code Scanner) node.
- the collaborative robot (CR, Cooperative Robot) node has a gripper (CJ, Clamping Jaw) node, a torque wrench (TW, Torque Wrench) node and a camera (CA, Camera) node
- the PLC node has a button (B, Button) node and LED warning light nodes.
- there may be more than one type of equipment such as a collaborative robot, and each equipment of this type of equipment can be distinguished by a label or model, which will not be repeated here.
- Each function block node can be associated with a resource node, and the function block node can be instantiated as an operation of the corresponding resource.
- a logical node can be instantiated as an operation of a corresponding device by associating a device resource node.
- a resource header (Header) can be set for the function block node, and the resources associated with the function block node will be displayed in the resource header.
- each resource node can be associated with a corresponding function block node in advance, so that when creating a behavior tree, the function block node associated with the corresponding resource can be directly pulled, and there is no need for temporary configuration.
- FIG. 1C shows an example diagram in which each resource node is associated with a function block node. As shown in FIG. 1C , for the resources shown in the resource knowledge graph shown in FIG. 1B , corresponding function block nodes are respectively associated.
- the industrial computer (IPC) node is associated with a button (PB, Press Button) node and a dialog box (DDB, Display Dialog Box on Screen) node;
- the collaborative robot (CR, Cooperative Robot) node is associated with a linear movement (LM, Linear Move) nodes and joint movement (SM, Shutdown Mobile) nodes;
- PLC nodes are associated with read I/O (RIO, Read I/O) nodes and write I/O (WIO, Write I/O) nodes;
- the bar code scanner (BCS, Bar Code Scanner) node is associated with the scanning bar code (SBC, Scan Bar Code) node;
- the clamping jaw (CJ, Clamping Jaw) node is associated with the open (O, Open) node and the grabbing (Gr, Grab) node Node;
- torque wrench (TW, Torque Wrench) node is associated with twist (T, Twist) node;
- camera (CA, Camera) node is associated with registration (R
- resource nodes may not be pre-associated with function block nodes, but corresponding resource nodes may be associated with required function block nodes when the behavior tree is created.
- function block nodes associated with resource nodes (which may be called dedicated function block nodes) and function block nodes not associated with resource nodes (which may be called general function block nodes).
- resource nodes which may be called dedicated function block nodes
- function block nodes not associated with resource nodes which may be called general function block nodes.
- this embodiment may further include the following decorator nodes:
- Decorator nodes are mainly used to decorate function block nodes driven by compositor nodes, for example, can be used to decide whether a branch or even a single node in a behavior tree can be executed.
- Negative node which can have a child node, used to negate the child node. If the child node fails, it returns success; if the child node succeeds, it returns failure.
- a mandatory failure node which can have a child node (such as a function block node), regardless of whether its child node is successful or not, the node will always return failure.
- a repeated node which may have a child node (such as a function block node), can repeatedly execute its child node for a fixed number of times.
- a retry node which can have a child node (such as a function block node), can trigger its child node up to N times, if its child node returns failure, retry and the number of times will be reduced by one, when the number of retries is zero , returns success; if the child node returns success, break the loop and also return success.
- N is a positive integer.
- a one-time node which may have a child node, means that its child node is only executed once in the workflow, and will not be executed until the workflow is restarted.
- a timeout node which may have a child node, which is used to time the execution time of its child nodes (such as function block nodes), and exit execution when the specified time exceeds (even if the execution is not completed).
- a timer node which may have a child node, executes its child node (such as a function block node) after the specified time is reached.
- a monitoring node which may have at least one child node, and is used to monitor the status of all its child nodes. When any child node executes incorrectly, an error will be reported. When all child nodes are normal, it returns normal.
- a decorator node may also be contained within a flow control node. That is, flow control nodes may include: all or part of main control nodes, synthesizer nodes, and decorator nodes.
- each behavior tree node can be listed on the graphical user interface in the form of an icon, and the user can determine the node needed to create a workflow by selecting and dragging the icon to add to the canvas.
- the node performs necessary parameter configuration, such as resource configuration and/or input and output parameter configuration.
- the behavior tree corresponding to the workflow can include multiple function block nodes.
- the behavior tree of the corresponding workflow is finally generated by performing corresponding discharge connections on the dragged nodes. That is, the behavior tree construction operation includes adding and connecting nodes of the behavior tree. Further, an operation of associating resources for the added function block nodes may also be included. In addition, it may also include: configuration operations on the input and output parameters of the behavior tree nodes.
- Step S12 in response to the construction operation of the behavior tree, a behavior tree corresponding to a workflow is generated, and the logical nodes in the behavior tree are instantiated as operations of the corresponding equipment.
- each behavior tree node may be instantiated in response to the construction operation of the behavior tree, and a connection relationship between each instantiated behavior tree node may be established. For example, by performing this step, the added logical node can be instantiated as an operation of the corresponding device. Then, based on the connection relationship between the instantiated behavior tree nodes, a behavior tree corresponding to a workflow is generated.
- the aforementioned behavior tree nodes may be stored in a node library.
- the node library may further include a workflow (WF, WorkFlow) node and a sub-workflow (SWF, SubWorkFlow) node.
- FIG. 2A shows a schematic diagram of constructing a behavior tree of a work unit of a quality inspection production line in an example.
- FIG. 2B to FIG. 2S respectively show schematic diagrams of partial behavior trees constructed in an example.
- the function block nodes can be understood as presented in the form of a label graph, and the construction of this behavior tree based on the function block label graph requires the participation of flow control nodes and even decorator nodes.
- an embodiment of the present invention also provides a method for constructing a behavior tree based on a function block type diagram.
- the function block nodes are presented in the form of a type diagram.
- these two behavior tree construction methods that is, the behavior tree construction method based on the function block type diagram and the behavior tree construction method that presents the function block nodes in the label diagram
- another method is also built synchronously. For example, when two function block nodes are sequentially connected based on the function block type graph, when synchronously constructing a behavior tree based on the function block label graph, a sequence node will be automatically added, and the sequence node will be added from top to bottom.
- a function block node when two function block nodes are sequentially connected based on the function block type graph, when synchronously constructing a behavior tree based on the function block label graph, a sequence node will be automatically added, and the sequence node will be added from top to bottom.
- the behavior tree construction method based on the function block type diagram may include the following steps (1) and (2). in:
- Step (1) receiving the addition and connection operations of function block nodes performed by the user on the graphical user interface based on the function block type diagram.
- the type diagram and the label diagram can be understood as two presentation modes of the same function block node, and their functions are both used to realize a corresponding business operation.
- FIG. 2T shows an example of constructing a behavior tree based on the function block nodes of the function block type graph in an example.
- two function block nodes F1, F2 are shown.
- the functional block type diagram may include:
- a function block name 201 used to indicate the type of business operation. For example, screw fastening, image capture, video recording, visual guidance, etc.
- the default function block name will be generated by adding the default name of the function block definition plus the instance number.
- the logical node in the function block node is taken as an example , the names are represented by "logical node 1" and "logical node 2".
- Function block names are editable, but should be unique within the current global workflow.
- the function block header 202 used to indicate the resource for executing the business operation is a torque wrench
- the resource for image collection is a monitor
- the resource for video recording is a monitor
- the resource for visual guidance is a camera.
- the functional block header 202 of a logical node is generally a physical resource, such as "physical node 1" and "physical node 2" as shown in FIG. 2U.
- the resource indicated by the function block header 202 may be pre-associated, or the corresponding resource may be associated through resource configuration after the function block node is added.
- connection operation of the function block nodes may include: a connection operation between the link output port 204 and the link input port 203 between the two function block nodes F1 and F2.
- a link connection 205 is established between the two function block nodes F1 and F2.
- the link connection 205 in this example is a one-way connection used to indicate the running process of the workflow. For example, it can indicate the execution order of the two function block nodes, that is, the function block node F1 on the left is executed first, and then the function block node on the right is executed. F2.
- the connection endpoint is positioned on the link input port 203 .
- the first sensitive area which is called the first sensitive area here
- the second sensitive area which is referred to as the second sensitive area herein, and is used to receive the user's point in the second sensitive area.
- the connection endpoint is positioned on the link output port 204.
- the interconnected function block nodes F1 and F2 in response to the connection operation between the link output port 204 and the link input port 203 between the two function block nodes F1 and F2, can be further An instruction label 207 for indicating the execution order of each function block node is generated, and the instruction label 207 is marked on the function block type diagram of the function block nodes F1 and F2. 1 and 2 as shown in the picture.
- the instruction tag 205 can also be used as an index of jump instructions and as a chapter index of the documentation.
- Input data chunk 208 for representing the set of all data input ports and output data chunk 209 for representing the set of all data output ports.
- the number of data input ports of the function block node can be marked on the input data block 208, such as 5 on the input data block 208 of the function block node F1 and the input data block 208 of the function block node F2 2 above, if the number of data input ports is zero, the input data chunk 208 can be hidden.
- the number of data output ports of the function block node can be marked on the output data block 209, such as 3 on the output data block 209 of the function block node F1 and 1 on the output data block 209 of the function block node F2 , if the number of data output ports is zero, the output data chunk 209 can be hidden.
- each data input port of the function block node can be expanded or hidden by clicking on the input data block 208.
- Each data output port of the function block node can be expanded or hidden by clicking on the output data block 209 .
- 2U shows a schematic diagram of hiding the data input port of logical node 2 by clicking
- 2V shows a schematic diagram of hiding the data output port of logical node 1 by clicking
- FIG. 2W shows that each data input port is displayed simultaneously.
- FIG. 2X shows a schematic diagram of simultaneously hiding each data input port and each data output port.
- connection operation of the function block nodes may also include: a connection operation between the data output port 211 and the data input port 210 between the corresponding data of the two function block nodes F1 and F2.
- a data connection 212 is established between the two function block nodes F1 and F2.
- Data connection 212 in this example is used to indicate data transmission between two function block nodes F1 and F2.
- a data connection 212 is established between the data output port 211 of the output data 1 of the function block node F1 and the data input port 210 of the input data 2 of the function block node F2, which means that the output of the function block node F1 Data 1 is used as input data 2 of the function block node F2.
- a sensitive area can also be provided within the set range of the data input port 210 output), which is referred to as the third sensitive area here, and is used to locate the connection end point on the data input port 210 when the user's click and connection operations are received in the third sensitive area.
- the third sensitive area there may also be a sensitive area (not shown in the figure) within the setting range of the data output port 211, which is referred to as the fourth sensitive area here, and is used to receive the user's click in the fourth sensitive area.
- the connection endpoint is positioned on the data output port 211 .
- the function block icon 213, specifically, the function block icon 213 may be a vector icon 213, which is used to visually represent the service operation of the function block node.
- the function block icons 213 may also be omitted.
- Function block main body 214 for carrying the above components.
- the adding operation of the function block node may include: dragging and dropping the function block main body 214 .
- Step (2) In response to the addition and connection operations of the function block nodes, construct a behavior tree corresponding to a workflow.
- step (2) in response to the addition of the function block node and the connection operation, the behavior tree including the flow control node and the function block node based on the function block label graph in S12A can be constructed synchronously; similarly, in step S12A , when constructing the behavior tree including the flow control node and the function block node based on the function block label diagram, the behavior tree based on the function block type diagram in S12B may also be constructed synchronously. And the two behavior tree construction interfaces can be switched according to the user's choice. For example, according to the user's click operation on the behavior tree based on the function block type diagram or the behavior tree based on the function block label diagram, the behavior tree based on the function block type diagram or the function block label diagram based The Behavior Tree toggles the display.
- At least one of the function block nodes in the behavior tree can be further Add and connect at least one data block to each function block node.
- each data block is used to present the corresponding data in the business operation of the function block node connected to it.
- the types of data blocks can include some or all of data pairs, data tables, images, videos, charts, etc.
- FIG. 2Y shows a schematic diagram of adding data blocks to four function block nodes in the behavior tree and displaying corresponding data in each data block in an example of the present application.
- the function block node associated with the monitor to record the production video is added with a type of real-time video data (Live Data -Video) data block;
- the function block node associated with the screw fastening of the torque wrench is added with a data block of type Live Data-Text and a data block of type Live Data-Chart ;
- the function block node of the robot image acquisition associated with the monitor is added with a data block of type Live Data-Image;
- the function block node of the machine vision guide associated with a camera is added with a type of Live Video Data (Live Data-Video) data block.
- each data block may include a data block label 215 for indicating the type of data block and a data block body 216 having a display area for presenting specific data.
- the data block label 215 can be a draggable label, for example, can be moved to any position in the canvas.
- the size of the display area of the data block 216 is adjustable, and is used to display different types of data from the data layer in real time.
- a monitoring link 217 is established between each data block and the corresponding function block node, and one function block can be mapped to multiple data blocks. When the workflow is executed, for example, at runtime, the monitoring and output data corresponding to the function block nodes will be transmitted to the corresponding data blocks for real-time display.
- the data block in this embodiment is a low-code data block, which is different from other SCADA and dashboard systems in that the low-code data block in this embodiment is also a low-code element, which can be used as a part of the behavior tree, and all of its Properties can all be managed in low-code logic.
- the data source in the low-code data block comes from the data layer, which can obtain data through the interface provided by the data layer at runtime or in the cloud execution engine.
- the data source can be a time series database, RDBMS or NoSQL.
- Low-code data block is a flexible, scalable and adaptable system that can be applied to any functional block node that can be associated with physical devices. In short, the data blocks used to implement data monitoring can be considered as the visual interface of the data layer.
- At least one of the function block nodes in the behavior tree can be further Add and connect at least one data block to each function block node.
- each data block is used to present the corresponding data in the business operation of the function block node connected to it.
- the types of data blocks can include some or all of data pairs, data tables, images, videos, charts, etc.
- FIG. 2Y shows a schematic diagram of adding data blocks to four function block nodes in the behavior tree and displaying corresponding data in each data block in an example of the present application.
- the function block node associated with the monitor to record the production video is added with a type of real-time video data (Live Data -Video) data block;
- the function block node associated with the screw fastening of the torque wrench is added with a data block of type Live Data-Text and a data block of type Live Data-Chart ;
- the function block node of the robot image acquisition associated with the monitor is added with a data block of type Live Data-Image;
- the function block node of the machine vision guide associated with a camera is added with a type of Live Video Data (Live Data-Video) data block.
- each data block may include a data block label 215 for indicating the type of data block and a data block body 216 having a display area for presenting specific data.
- the data block label 215 can be a draggable label, for example, can be moved to any position in the canvas.
- the size of the display area of the data block 216 is adjustable, and is used to display different types of data from the data layer in real time.
- a monitoring link 217 is established between each data block and the corresponding function block node, and one function block can be mapped to multiple data blocks. When the workflow is executed, for example, at runtime, the monitoring and output data corresponding to the function block nodes will be transmitted to the corresponding data blocks for real-time display.
- the data block in this embodiment is a low-code data block, which is different from other SCADA and dashboard systems in that the low-code data block in this embodiment is also a low-code element, which can be used as a part of the behavior tree, and all of its Properties can all be managed in low-code logic.
- the data source in the low-code data block comes from the data layer, which can obtain data through the interface provided by the data layer at runtime or in the cloud execution engine.
- the data source can be a time series database, RDBMS or NoSQL.
- Low-code data block is a flexible, scalable and adaptable system that can be applied to any functional block node that can be associated with physical devices. In short, the data blocks used to implement data monitoring can be considered as the visual interface of the data layer.
- this embodiment may further include the following step S13 as shown by the dotted line in FIG. 1 .
- Step S13 analyzing the behavior tree, and deploying the workflow corresponding to the behavior tree to the runtime of the corresponding work unit, so that each resource in the work unit performs operations according to the workflow.
- the work unit may have a main controller, and in this case, the runtime may be located on the work unit's main controller.
- the equipment resources in the resources can be connected to the main controller, and the main controller can control the equipment resources connected to it to perform corresponding operations according to the runtime workflow; the human resources in the resources can be directly based on the running The workflow at the time prompts you to perform the appropriate action.
- the behavior tree can be stored in a Markup markup language such as XML (Extensible Markup Language), and can be verified by an XML Schema (XSD) prototype to verify that the XML format of the behavior tree is correct.
- XML Extensible Markup Language
- XSD XML Schema
- the OT domain usually refers to operational technology (Operational Technology, OT), which integrates hardware and software, and detects or triggers processes in the enterprise by directly monitoring and/or controlling physical devices (called OT devices). changes or events.
- OT utilizes computers to monitor or change physical conditions such as industrial control systems (Industrial Control System, ICS).
- ICS Industrial Control System
- the industrial control system is based on computer-implemented facilities, systems, and equipment for remote monitoring and/or control of key industrial processes to achieve physical functions.
- the word "OT” is used to distinguish industrial control systems from traditional information technology (Information Technology, IT) systems in terms of technical implementation and functions.
- the above workflow creation method in this embodiment can be used in this OT domain as a low-code development method in the OT domain.
- the workflow creation method shown in FIG. 1A can be implemented in an OT domain, such as an OT domain low-code development platform.
- the workflow can be an OT domain workflow; the work unit can be an OT domain workflow.
- a working unit; the device may be an OT device.
- OT devices may include, but are not limited to: Internet of Things (IoT) devices, Programmable Logic Controllers (PLC), Robotics, Manual Process, Industrial Computers (Industrial Personal Computer, IPC) and so on.
- the above-mentioned workflow creation method in this embodiment can be used in this ITOT system as a low-code development method in the OT domain that can be integrated with the IT domain.
- the workflow creation method shown in Figure 1A can be implemented on an OT domain such as an OT domain low-code development platform, and correspondingly, the workflow can be an OT domain workflow; the work unit can be a work in the OT domain unit.
- it may further include: generating a microservice based on the behavior tree, so that an IT device can call the microservice
- the runtime execution of the master controller of the work unit is triggered to execute the OT domain workflow.
- the IT equipment can call the microservice directly or through a knowledge center.
- an API of the microservice may be generated based on the behavior tree.
- the processing procedure in the API includes each operation in the OT domain workflow
- the input parameter of the API is the parameter obtained from the input port of the OT domain workflow
- the output parameter of the API is the Parameters output by the output port of the OT domain workflow.
- the specific implementation methods include but are not limited to the following two:
- the code developers in the OT domain can notify the code developers in the IT domain of the names and IP addresses of the generated microservices. In this way, the code developers in the IT domain can directly assign the The information is written into the code, so that the IT equipment can call the microservice.
- Method 1 is more suitable for scenarios with a small number of microservices.
- each microservice is registered on the knowledge center platform, so that an IT domain code development tool realizes that IT equipment discovers the connected microservices through the knowledge center platform.
- an IT domain code development tool can be used to realize the connected microservices discovered by the IT domain equipment through the knowledge center through code development.
- the device that completes microservice registration can be an OT domain microservice generator or a third-party device.
- the third-party device can be regarded as a part of the OT domain low-code development platform, or implemented in the knowledge center platform.
- Method 2 is more suitable for scenarios with a large number of microservices.
- IT equipment may include, but not limited to: Manufacturing Operation Management (MOM) system, Manufacturing Execution System (MES), Enterprise Resource Planning (Enterprise Resource Planning, ERP) system, enterprise service Bus (Enterprise Service Bus, ERP), Product Lifecycle Management (Product Lifecycle Management, PLM) system, etc.
- MOM Manufacturing Operation Management
- MES Manufacturing Execution System
- ERP Enterprise Resource Planning
- ERP enterprise Resource Planning
- ERP enterprise Service Bus
- PLM Product Lifecycle Management
- the IT domain code development tool can be programmed to realize that IT equipment invokes microservices through a knowledge platform to trigger the runtime execution of the OT domain workflow of the main controller of the work unit, thereby realizing the code development of the IT domain
- the platform controls the process of the OT domain, which realizes the integration of the IT domain and the OT domain.
- the microservice is automatically generated by the OT domain microservice generator based on the OT domain behavior tree. It is not necessary for the code development tools of the IT domain to understand the details of the OT domain workflow. It only needs to obtain the identification (such as: name) and IP address of the microservice That is, developers in the IT domain do not need to understand OT domain devices and control processes, and are easy to implement and understand.
- the applicable fields of the embodiments of the present application include but are not limited to: Industrial Automation, Logistics, Laboratory, Maritime, Smart Grid, Electric Vehicle Infrastructure Vehicle Infrastructure), Electric Vehicle, Building Automation, Smart City, Water Treatment, Garbage Recycling and Smart Farm, etc.
- the workflow creation method in the embodiment of the present application has been described in detail above, and the workflow creation system in the embodiment of the present application will be described in detail below.
- the workflow creation system in the embodiment of the present application can be used to implement the workflow creation method in the embodiment of the present application.
- Fig. 3 shows a schematic structural diagram of a workflow creation system in the embodiment of the present application.
- the system may include: a node library 110, a graphical interface module 120 and an editing processing module 130.
- the node library 110 is provided with behavior tree nodes for constructing behavior trees; the behavior tree nodes may include: flow control nodes and function block nodes.
- a behavior tree is used to represent a workflow, and the workflow is used to define an operation to be performed by a work unit.
- the flow control node is used to realize the logic control in the workflow;
- the function block node is used to realize the business operation in the workflow, and
- the function block node may include: logic nodes, each logic node corresponds to an operation template, each The operation template predefines at least one type of operations that can be performed by resources such as equipment, and the operations include actions, methods or skills.
- the resources are represented in the form of resource nodes, and all resource nodes are associated and stored in the form of a resource knowledge graph; the resource knowledge graph includes: each resource node, and a connection representing the relationship between the resource nodes.
- this embodiment may further include: a resource library 150, configured to store various resources in the form of a resource knowledge graph, and each resource can perform at least one business operation.
- the flow control node may include: some or all of the main control node, logic control node and condition node; the main control node may include: a start node, an end node, a go node, a key node , stop node, abort some or all of the nodes.
- the logic control nodes include: some or all of sequence nodes, reactive sequence nodes, parallel nodes, intra-process quality control nodes, priority nodes, reactive priority nodes, condition judgment nodes, and multi-branch selection nodes.
- the function block nodes may further include: some or all of manual nodes, dynamic nodes, delay nodes, and idle nodes.
- the behavior tree node further includes: a decorator node, which may include: a repeat node, a retry node, a one-off node, a timeout node, a timer node, a negate node, a forced run node, and a forced success Some or all of nodes, force-fail nodes, and monitor nodes.
- a decorator node which may include: a repeat node, a retry node, a one-off node, a timeout node, a timer node, a negate node, a forced run node, and a forced success
- some or all of the function block nodes in the node library 110 are respectively bound with resources for executing the service operations corresponding to the function block nodes.
- the graphical interface module 120 is configured to provide a graphical user interface GUI for the user to construct a behavior tree based on the behavior tree nodes in the node library.
- each behavior tree node can be listed on the graphical user interface GUI in the form of an icon.
- the editing processing module 130 is configured to generate a behavior tree corresponding to a workflow in response to the construction operation of the behavior tree, and the logical nodes in the behavior tree are instantiated as operations corresponding to resources such as equipment.
- the editing processing module 130 can respond to the construction operation of the behavior tree, instantiate each behavior tree node, and establish the connection relationship between each instantiated behavior tree node; based on the instantiated behavior tree
- the connection relationship between nodes generates a behavior tree corresponding to a workflow.
- some or all of the instantiated function block nodes are associated with resources for executing corresponding business operations. For example, through this operation, a logical node is instantiated as an operation corresponding to a resource such as a device.
- each behavior tree node can be listed on the graphical user interface in the form of an icon, and the user can determine the node needed to create a workflow by selecting and dragging the icon onto the canvas, and further, the node can also be Perform necessary parameter configuration, such as resource configuration and/or input/output parameter configuration.
- the behavior tree corresponding to the workflow can include multiple logical nodes, and the corresponding The flow control node, through the corresponding discharge connection of the dragged nodes, finally generates the behavior tree corresponding to the workflow.
- the construction operation may include: an operation of adding a function block node and an operation of associating resources with the added function block node.
- the workflow creation system in this embodiment may further include: a parsing and deployment module 140 configured to parse the behavior tree, and deploy the workflow corresponding to the behavior tree to the corresponding The running time of the main controller of the work unit, so that each resource in the work unit connected to the main controller performs operations according to the workflow.
- FIG. 4A shows an OT domain low-code development platform 100 provided by an embodiment of the present application, and the platform 100 can be used to implement the workflow creation system shown in FIG. 3 .
- the platform 100 shown in FIG. 4A since the operation templates that various types of OT devices can perform operations are pre-defined (which can be regarded as providing the capability of the OT domain), and the corresponding logical nodes are constructed based on the operation templates. It is used to construct other behavior tree nodes of OT domain workflow, so it can conveniently and quickly create a behavior tree corresponding to OT domain workflow, realizing low-code development suitable for OT domain. Development engineers can realize OT domain development without having a deep understanding of various OT devices.
- the OT domain low-code development platform 100 may include:
- An OT domain low-code development tool 10 the OT domain low-code development tool 10 can be configured to implement the graphical interface module 120 and the editing processing module 130 in the workflow creation system shown in FIG.
- the parse deployment module 140 in the workflow creation system is shown.
- the node library 110 in the workflow creation system shown in FIG. 3 can be stored in a memory.
- the OT domain low-code development platform 100 may also include the runtime 30 of the main controller of the above-mentioned working unit.
- the OT domain low-code development tool 10 can deploy the OT domain workflow corresponding to the generated behavior tree to the runtime 30 of the main controller of the work unit, so that each OT in the work unit connected to the main controller
- the device performs operations according to the OT domain workflow.
- the runtime 30 in this embodiment is an interpreter-driven runtime system for executing workflow and managing necessary related processes. It's based on an interpreter with a good open source community, such as the Python and Google V8 interpreters, so the ecosystem is easy to build and can be easily extended to use other interpreters.
- the runtime can further provide the corresponding data obtained during the execution of the business operation to the corresponding data block for display.
- the runtime 30 may directly provide the corresponding data obtained during the execution of the service operation to the corresponding data block for display, or provide the corresponding data block for display through a third-party device.
- the standard field bus and device protocols can be used in advance to access the field bus and devices during the runtime.
- the working unit may have a main controller, and at this time, the runtime 30 may be located on the main controller of the working unit.
- the equipment resources in the resources can be connected to the main controller, and the main controller can control the equipment resources connected to it to perform corresponding operations according to the runtime workflow; the human resources in the resources can be directly based on the runtime work
- the stream prompts to perform the corresponding action.
- the composition of the OT domain low-code development platform 100 shown in FIG. 4A and FIG. 4B only involves the OT domain.
- the integration of the IT domain and the OT domain has become increasingly important for the digital transformation of enterprises. What needs to be realized is how the enterprise can control the process of the OT domain in an understandable and non-IT programming way.
- the OT domain low-code development platform 100 shown in FIG. 4C solves how to control the flow of the OT domain through the code development platform 300 of the IT domain.
- the OT domain low-code development platform 100 may further include an OT domain microservice generator 20 , which can generate microservices 40 based on the OT domain behavior tree.
- the IT domain code development tool 301 can be programmed to enable the IT device to call the microservice 40 through a knowledge center 200 to trigger the runtime 30 of the main controller of the work unit to execute the OT domain workflow.
- the code development platform 300 of the IT domain can control the process of the OT domain, that is, the integration of the IT domain and the OT domain is realized.
- the microservice 40 is automatically generated by the OT domain microservice generator 20 based on the OT domain behavior tree. It is not necessary for the code development tool 301 in the IT domain to understand the details of the OT domain workflow. It only needs to obtain the identification of the microservice 40 (for example: name ) and IP address, it is not necessary for IT domain developers to understand OT domain devices and control processes, and it is easy to implement and understand.
- the code developers in the OT domain can notify the code developers in the IT domain of the names and IP addresses of the generated microservices 40, so that the code developers in the IT domain can directly assign the microservices 40 to The information of 40 is written into the code, so as to implement the call of the IT equipment to the microservice 40.
- Method 1 is more suitable for scenarios with a small number of microservices.
- each microservice 40 can be registered on the knowledge center 200 , so that the IT domain code development tool 301 can realize the connected microservice 40 through the knowledge center 200 by the IT domain equipment through code development.
- the device for completing the registration of the microservice 40 may be the OT domain microservice generator 20 or a third-party device 50 as shown in FIG. 4D .
- the third-party device 50 can be regarded as a part of the low-code development platform 100 in the OT domain, or implemented in the knowledge center 200 .
- Method 2 is more suitable for scenarios with a large number of microservices. By registering microservices on the knowledge center platform, it is more effective to realize the calling of microservices by IT equipment, and strengthen the integration of OT domain and IT domain.
- the OT domain microservice generator 20 can generate the API of the microservice 40 based on the OT domain behavior tree, wherein, the processing procedure in the API can include the operation of each functional block in the OT domain workflow, and the input parameter of the API is OT
- the parameters obtained by the input port of the domain workflow, and the output parameters of the API are the parameters output by the output port of the OT domain workflow.
- FIG. 4E An application scenario of the OT domain low-code development platform 100 provided in the embodiment of the present application in the field of industrial automation is shown in FIG. 4E .
- the low-code development tool 10 generates a behavior tree corresponding to the OT domain workflow under the operation of the user, and the OT domain workflow defines the operations to be performed by the production line as a work unit shown on the right side of FIG. 4E .
- the corresponding workflow is generated and published to the runtime 30, so that the runtime 30 controls the completion of the production line operation of the work unit; at the same time, the corresponding microservice can be generated by the microservice generator 20 based on the behavior tree and registered in The knowledge center 200, so that the code development tool 301 in the IT domain can call the corresponding microservice through the knowledge center 200.
- the user can edit each node including the function block node by dragging and dropping to edit the behavior tree of the OT domain. Data (for example: workpiece processing parameters), control the operation of the entire work unit.
- the working unit here is a production line, which includes machines, conveyor belts, robotic arms, people, PLC, AGB, etc.
- the code development tool 301 of the IT domain can also be located on the same hardware device as the low-code development tool 10 , for example, on the same computer.
- FIG. 5 shows a schematic structural diagram of another workflow creation system provided by the embodiment of the present application.
- the system can be used to implement the method shown in Fig. 1A, or realize the workflow creation system shown in Fig. 3, or realize the workflow creation system described in any one of Fig. 4A to Fig. 4D , that is, the low-code development platform 100 in the OT domain.
- the aforementioned OT domain low-code development tool 10, OT domain microservice generator 20, runtime 30, and third-party device 60 can all be implemented as individual hardware devices, such as servers, workstations, single-chip microcomputers or processing chips.
- these devices are implemented on the same hardware device, which is stored in at least one memory as a software program, and is called by at least one processor to implement the aforementioned OT domain low-code development method.
- the node library 110 and each generated microservice 40 may be stored in at least one memory.
- the system may include: at least one memory 51 , at least one processor 52 and at least one display 53 .
- some other components may also be included, such as a communication port (not shown in FIG. 5 ) and the like. These components communicate via bus 54 .
- At least one memory 51 is used to store computer programs.
- At least one memory 51 may include computer readable media such as random access memory (RAM).
- at least one memory 51 can also store an operating system and the like.
- the operating system includes but is not limited to: Android operating system, Symbian operating system, Windows operating system, Linux operating system and so on.
- the above computer stored program may include the following program modules: node library 110, graphical interface module 120, editing and processing module 130, parsing and deployment module 140, optionally, may also include OT domain microservice generator 20, runtime 30, third-party device 50.
- At least one processor 52 is configured to invoke a computer program stored in at least one memory 51 to execute the workflow creation method described in the embodiment of the present application.
- At least one processor 52 may 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, or the like. It can receive and send data through the communication port.
- ASIC application specific integrated circuit
- DSP digital signal processor
- CPU central processing unit
- GPU graphics processing unit
- state machine or the like. It can receive and send data through the communication port.
- At least one display 53 is used to display a graphical user interface.
- At least one processor 52 is configured to invoke a computer program stored in at least one memory 51 to enable the system to execute the operations in the workflow creation method in any of the foregoing implementation manners.
- the communication interface is used to implement communication with other devices, such as communication with the knowledge center 200 .
- the OT domain low-code development tool 10 used to realize the graphical interface module 120, the editing processing module 130 and the parsing and deployment module 140 can be a lightweight web-based application program, which can be used in industrial sites (such as edge device or local server), or in the cloud (public cloud such as AWS or private cloud such as OpenStack). Its visual engineering paradigm is derived from Function Block Typed Diagram (FBTD).
- FBTD Function Block Typed Diagram
- the OT domain microservice generator 20 can use modern translation programming languages to generate standard APIs such as RESTful or RPC.
- Runtime 30 can easily implement OT domain workflow and provide openness based on the ecosystem of open source communities (such as Python).
- the runtime 30 can be deployed on an embedded IoT device such as a single board computer (Single Board Computer, SBC).
- the embodiment of the present application may include an apparatus having an architecture different from that shown in FIG. 5 .
- the above architecture is only exemplary, and is used to explain the workflow construction method provided by the embodiment of the present application.
- the embodiment of the present application also provides an IT domain OT domain integration system, that is, an ITOT system, which may include IT equipment and the workflow creation system in any implementation manner of the present application.
- an ITOT system which may include IT equipment and the workflow creation system in any implementation manner of the present application.
- it may further include: a code development platform 300 in the IT domain as shown in FIG. 4C and FIG. 4D .
- FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application. As shown in FIG. 6, the method 600 includes:
- Step 601 Determine the type of synthesizer node based on the user's operation on the graphical user interface.
- the synthesizer node includes a start block adapted to start executing the synthesizer node, an end block adapted to end the execution of the synthesizer node, and arranged in A plurality of working links between the start block and the end block.
- Step 602 Based on the type of the combiner node, determine the target working link from the plurality of working links.
- Step 603 Based on the purpose work link, control the logic of the workflow, wherein the workflow is generated based on the behavior tree including the combiner node.
- Synthesizer nodes are always paired with a start block and an end block.
- the start block has an optional input port to provide a synthesizer expression so that the target working link can be selected based on the synthesizer expression. For example, the target working link is selected according to the value of the combiner expression, or the target working link is selected based on the working link selection rule defined by the combiner expression.
- the end block has an optional input port called the end logical value, which is used by parallel type synthesizer nodes to determine whether it is a logical AND (AND) or a logical OR (OR).
- a set of synthesizer pair blocks can contain two or more working links (ie branches).
- a Data Value Block (DVB, Data Value Block) is attached before each working link in the synthesizer pair block, representing the trigger value of the synthesizer expression of the corresponding working link.
- the data value block may be a value generated by the corresponding working link based on a synthesizer expression and used to select the corresponding working link.
- the block of data values may also be a condition for selecting a corresponding working link, wherein the condition is related to a value generated based on a synthesizer expression.
- At least one working link in the plurality of working links includes a function block node, and the function block node is used to realize the service operation in the workflow.
- the determining the type of the synthesizer node based on the user's operation on the graphical user interface includes: determining the type of the synthesizer node based on the user's selection operation on the graphical user interface containing the node library,
- the node library includes: a synthesizer node that identifies types in a semantic manner or a synthesizer node that identifies types in a presentation style.
- the type of the synthesizer node is directly identified in a textual manner in the icon of the synthesizer node that has a visual effect.
- different presentation styles are used to identify the type of the synthesizer node accordingly, for example, in the icon of the synthesizer node, different line types (for example, Solid line, dotted line, spaced line, etc.) to identify the type of synthesizer node accordingly.
- it also includes: receiving the user's construction operation of the behavior tree on the graphical user interface; wherein, the construction operation includes the addition and connection operation of the behavior tree node, and the behavior tree node Including the synthesizer node and the function block node; the behavior tree is used to characterize the workflow, and the workflow is used to define the operation to be performed by a work unit; the function block node includes: a logic node, each Each logical node corresponds to an operation template, and each operation template predefines at least one type of operation that can be performed by a device, and the operation includes: action, method or skill; in response to the construction operation of the behavior tree, generate a corresponding workflow The behavior tree, wherein the logical nodes in the behavior tree are instantiated as the operation of the corresponding device; the behavior tree is parsed to obtain the workflow; the workflow is deployed to the corresponding work unit At runtime, each device in the work unit performs operations according to the workflow; wherein the workflow is an OT domain workflow; and the device is
- the method further includes: generating a microservice based on the behavior tree, so that the IT device triggers the runtime of the main controller of the work unit to execute the OT domain workflow by invoking the microservice .
- FIG. 7A is a first schematic diagram of a low-code example of an FBTD logic synthesizer provided by various embodiments of the present application.
- the synthesizer node 70 includes a start block 71 , an end block 72 and 3 working links arranged between the start block 71 and the end block 72 .
- the first working link includes the executive function block node 73
- the second working link includes the executive function block node 74
- the third working link includes the executive function block node 75 .
- the start block 71 may contain an input for providing a composite expression 76
- the end block 72 may contain an input for providing an end logical value 77 .
- Each function block node 73 , function block node 74 and function block node 75 has its own data value block.
- the data value block 78 of the function block node 73, the data value block 79 of the function block node 74 and the data value block 80 of the function block node 75 may be arranged before the respective corresponding function block nodes.
- the type of combiner node 70 is parallel selection (Pa, Parallel); Determining the destination working link from the plurality of working links includes: combining each working link in the plurality of working links All roads are determined as the target working link, and start to execute the target working link; the method also includes: receiving the end logic value through the input terminal of the end block; wherein when the end logic value is logic and, the plurality of working links When all executions are completed, the execution of the synthesizer node is terminated through the end block; when the end logic value is logical or, when at least one of the multiple working links appears to be executed, the execution of the synthesis is terminated through the end block server node.
- the synthesizer node 70 when the type of synthesizer node 70 is parallel selection, there is no need to provide the synthesizer node 70 with a synthesized expression 76, correspondingly there is no need to generate synthesized data value blocks 78-80, and it is necessary for the synthesizer node 70 provides an end logical value 77 .
- the first working link, the second working link and the third working link are all determined as the target working links.
- the first working link, the second working link and the third working link are executed respectively (i.e.
- the value of 77 determines when to stop executing the compositor node 70.
- the value of the end logical value 77 provided is logic AND, when the first working link, the second working link and the third working link are all executed, the execution of the synthesis is ended via the ending block 72 Device node 70; when the value of the end logic value 77 is logical or, at least one working link in the first working link, the second working link and the third working link occurs when the execution is completed, via the end Block 72 ends execution of combiner node 70 .
- the type of the synthesizer node is multi-branch selection (SW, Switch), and the method further includes: receiving a preset synthesis expression through the input terminal of the start block; Determining the target working link in the working link includes: determining the data value block when each working link is selected; based on the calculation result of the composite expression, selecting the corresponding data value from the plurality of working links The destination working link of the value block.
- SW multi-branch selection
- a combined expression 76 needs to be provided, and correspondingly, the combined data value blocks 78-80 need to be generated or manually provided based on the combined expression 76, but there is no need to An end logical value of 77 is provided.
- the data value block is a condition for selecting a corresponding working link, wherein the data value block 78 is: "the temperature is greater than 30 degrees and less than 50 degrees"; the data value block 79 is: “the temperature is greater than 50 degrees”; the data The value block 80 is: “the temperature is 30 degrees lower”. Then, based on the specific temperature generated by the composite expression, the specific branch corresponding to the numerical block can be selected. For example, when the generated temperature is 20 degrees, the third working link corresponding to the data value block 80 is selected.
- the type of the synthesizer node is a conditional judgment (ITE, If-Then-Else)
- the method further includes: receiving a preset synthesis expression via the input terminal of the start block, the synthesis The result of the expression contains a logical true value or a logical false value; the determining the target working link from the plurality of working links includes: based on the result of the composite expression being a logical true value or a logical false value, from A corresponding destination working link is determined among the plurality of working links.
- a preset working link corresponding to the logical value is selected.
- the method further includes: receiving a preset synthesis expression via the input terminal of the start block; Determining the target working link among the plurality of working links includes: calculating the data value block of each working link based on the composite expression; based on the sorting result of the data value block of each working link, determining the A priority order of the plurality of working links; based on the priority order, the target working link is determined from the plurality of working links.
- the data value block may be a value generated by the corresponding working link based on the synthesizer expression and used to select the corresponding working link.
- the data value block 78, data value block 79, and data value block 80 generated based on the synthesizer expression may be different (for example, the parameter difference of each execution link), at this time based on the data of each working link
- the priority order of the plurality of working links is determined; based on the priority order, the target working link is determined from the plurality of working links, wherein based on the preset, the data
- the sorting result of the value block can be sorted from largest to smallest or from smallest to largest, and so on. For example, in FIG. 7A , when the type of the combiner node 70 is priority, a combination expression 76 needs to be provided.
- the data value block generated by the first link based on the composite expression 76 is 15; assume that the data value block 78 generated by the first link based on the composite expression 76 is 18, and the second link is based on the composite expression The data value block 79 generated by the expression 76 is 20; the data value block 80 generated by the third link based on the composite expression 76 is 25.
- the type of the synthesizer node is Reactive Priority (RPr, Reactive Priority (Fallback)
- the method further includes: receiving the first synthesized expression and the second synthesized expression via the input of the start block Composite expression; determining the target working link from the plurality of working links includes: calculating the first data value block of each working link based on the first composite expression; based on the second composite The expression calculates the second data value block of each working link; based on the sorting result of the first data value block of the plurality of working links, the priority order of the plurality of working links is determined; based on the priority determining the target working link from the plurality of working links according to the level order and the second data value block of each working link.
- RPr Reactive Priority
- Fallback Reactive Priority
- FIG. 7A in the icon with visual effects of the synthesizer node, the type of the synthesizer node can be directly identified by text (for example, in the box of the start block 71 and the end block 72, the type of the synthesizer node can be identified in text form type).
- FIG. 7B is a second schematic diagram of a low-code example of the FBTD logic synthesizer provided by various embodiments of the present application.
- the start block 71 and the end block 72 are briefly identified by spaced lines with specific shapes, so that the types of synthesizer nodes can be visually identified and the display resources of the canvas can be saved.
- the synthesizer node described above is easy to understand, but only works with a limited number of branches. Therefore, the embodiment of the present invention also introduces a new synthesizer node paradigm, which can support a large number of branches.
- the folded synthesizer has similar functionality to the normal synthesizer, but supports folding.
- the synthesizer node is displayed in a folded manner in a collapsible box on the graphical user interface, wherein the collapsible frame includes a first display area adapted to display the The currently displayed working links of the above-mentioned synthesizer nodes and hide the working links except the currently displayed working links.
- the folding box further includes a second display area, a third display area, and a switching control; wherein the second display area is adapted to display the data value blocks of the currently displayed working link; the The third display area is adapted to display the label of the currently displayed working link; the switching control is adapted to switch the currently displayed working link among the plurality of working links.
- FIG. 7C is a schematic diagram of a low-code example of a synthesizer with folded FBTD logic provided by various embodiments of the present application.
- the first display area 88, the second display area 83, and the third display area 81 are included in the folding frame 90, wherein the first display area 88 displays a current display working link, and the current display working link includes Function block node 85 and function block node 86 .
- the data value blocks of the currently displayed working link are displayed in the second display area 83 .
- the label of the currently displayed working link is displayed in the third display area 81 .
- the folding box 90 also includes a switching control 84 (for example, in the shape of an arrow) for switching the currently displayed working link among the plurality of working links.
- the first display area 88 is preferably stretchable based on the length of the currently displayed active link contained therein.
- folding synthesizers are another type of low-code paradigm for FBTD synthesizers. Data value blocks for synthesizer expression results can be in a new column in the header row. Also, there are left and right arrow buttons to switch between different branches. The data value block for the current branch is displayed in the Data Value Block column. At the same time, the current label of the current branch of the compositor will be displayed in the work order label index block. The size of the folded synthesizer can be stretched for different numbers of functional blocks, and this paradigm provides a convenient way to display complex logic in a limited area of the low-code canvas.
- the embodiment of the present invention also proposes a workflow execution method.
- the workflow expressed in the form of Node Link Assembly NLA
- NLA Node Link Assembly
- the expressed workflow is compiled and downloaded to the runtime of the main controller of the corresponding work unit, and then the workflow can be executed.
- Node-linked assembly is implemented as a general-purpose, runtime execution engine logic assembly language, preferably for executing event-based low-code workflows.
- Basic elements of a node link assembly can include:
- a node-link structure is the basic type of cyclic directed graph data structure. Most event-based low-codes are based on node-link structures, such as the IEC61499 standard. Embodiments of the present invention preferably use an event-based behavior tree, so interpreting the behavior tree into a node-link structure facilitates execution.
- the node-link structure can be seen as a low-code assembly language.
- a conditional jump is a single node added by the NodeLinkAssembly's interpreter to convert an event-based behavior tree into a workflow expressed in NodeLinkAssembly.
- the function of the conditional jump node is: when the condition (usually an expression) is met, jump to any place specified by the link. In assembly language, it is a node needed for flow control and introduced as an execution element to support low-code interpretation.
- Reverse logic flow is a basic generic logic that can support behavior trees or all reverse logic in other programming languages.
- Loop (Repeat) or Retry in the behavior tree low code is a reverse logic flow, which can be converted into a conditional jump node with reverse event jump.
- the skipped function blocks are part of the reverse vector.
- Reverse logic flow and backward vectors provide a metamethod to describe logic as a node-linked assembly.
- Forward logic flow is a basic general logic that can support behavior trees or all forward logic in other programming languages.
- the condition/timeout in the behavior tree low code is a forward logic flow, which can be converted into a conditional jump node with a forward event jump.
- the skipped functional blocks are part of the forward vector.
- Forward Logic Flow and Forward Vector provide a metamethod to describe logic as a node-link assembly.
- Backward vectors and forward vectors are logically complete and can represent all logic, such as compound logic (such as If-Then-Else and Switch-Case-Default) and other behavior tree logic (such as Fallback or Guard).
- Logic assembled by node linking can be part of a low-code workflow that also includes sequential, parallel, and flow control nodes (such as start, end, and goto).
- An empty node is an empty function block with no actual function. It is automatically generated by the interpreter of node link assembly for internalization and jump logic for jump targets.
- FIG. 8 is an exemplary flowchart of a workflow execution method provided by an embodiment of the present application. As shown in Figure 8, the method 800 includes:
- Step 801 Obtain workflow and configuration information, wherein the workflow is generated based on the behavior tree construction operation performed by the user on the graphical user interface.
- the workflow can be implemented as a workflow characterized by a workflow topology structure obtained by converting a workflow in a markup language format through node link assembly.
- the workflow in the markup language format can be obtained by parsing the behavior tree constructed by presenting function block nodes in the form of a label graph, as shown in Fig. 2B to Fig. 2S , or by 2T to FIG. 2Y or FIG. 7A to FIG. 7C are examples, which are obtained through the parsing operation of the behavior tree constructed by presenting the function block nodes in the form of a type diagram.
- Step 802 Based on the configuration information, configure an auxiliary process adapted to provide resources for the workflow, wherein the auxiliary process is adapted to bear a long connection (Long Connection) with resources.
- a long connection Long Connection
- the number of auxiliary processes can be one or more.
- Worker processes are used to provide resources to workflows.
- Configuration information can be used to configure worker processes that provide resources to workflows.
- configuration information may include resource attribute information (for example: hardware parameters of resources, execution time of resources, etc.).
- the configuration information can be obtained based on the resource knowledge map, and the configuration information can also be obtained based on the interactive operation with the user on the graphical user interface.
- the resource information can also generate a real-time operation process for providing real-time operation capability.
- Step 803 Generate a function block process adapted to execute the function block in the workflow, wherein the function block process is adapted to bear the first idempotent short connection (Idempotent Short Connection) with the auxiliary process and/or the second connection with the resource Idempotent short connections, where the helper process is decoupled from the function block process.
- the characteristic of the idempotent short connection is that the impact of any number of executions is the same as that of one execution.
- coupling refers to dependencies between objects. The higher the coupling between objects, the higher the maintenance cost. Objects should therefore be designed to minimize the coupling between classes and components.
- the meaning of decoupling the auxiliary process from the function block process includes: the auxiliary process and the function block process are independent of each other and do not depend on each other.
- Method 800 may be performed by the runtime of a unit of work to which the workflow is deployed.
- a worker unit may have a master controller, and in this case, the runtime may reside on the master controller of the worker unit.
- the workflow can be an OT domain workflow; the work unit can be a work unit in the OT domain.
- the runtime is the execution engine and orchestration of workflows.
- the runtime can be not a single piece of software, but a system of all the necessary runtime software subsystems that can be deployed into a target PC or session border controller (SBC).
- SBC session border controller
- the runtime can be an interpreter-driven runtime system that executes the workflow and manages the necessary related processes.
- the work unit may have a main controller, and in this case, the runtime may be located on the work unit's main controller.
- the equipment resources in the resources can be connected to the main controller, and the main controller can control the equipment resources connected to it to perform corresponding operations according to the runtime workflow; the human resources in the resources can be directly based on the runtime work
- the stream prompts to perform the corresponding action.
- the embodiment of the present invention proposes a runtime mode for decoupling event-based non-real-time workflow from real-time control logic with long connections. It can be seen that, by decoupling the auxiliary process and the function block process in the embodiment of the present invention, real-time control logic can be realized based on the speed-limited workflow.
- the runtime architecture implementing the control logic isolation principle may include:
- each function block in the workflow is executed in a separate process, which is used to isolate different programming language implementations. Therefore, each function block process will only host idempotent short connections.
- a short connection means that the function block process will not maintain a long connection with any physical node (hardware device).
- the function block process performs operations on the target device, it will start and end connections within the function block process itself (the process will terminate when the function block process finishes executing).
- Idempotent means: the segment connections of each function block process will not save any state, and have the same execution environment every time.
- the auxiliary process is separated from the runtime and will not be managed by the runtime. It is possible to set up a decoupled process manager to manage all auxiliary processes and facilitate end-user deployment.
- the decoupling process includes real-time operation process and long connection process, and it also contains other user-defined processes, such as software processes or services.
- Real-time operations are specific operations that require very high performance and strictly real-time execution. It usually needs to be limited to millisecond execution time. Since event-based runtimes are not real-time systems, real-time operations should be decoupled into a single process and not controlled by event-based runtime workflow orchestration.
- the function block process only manages registers and callback hooks.
- Some hardware devices need to stay online. In this case, a long-lived connection to the device is required.
- the runtime will use the decoupled process manager to start and manage persistent connections decoupled from the function block process.
- Function block processes will only have interface-level connections for long-connected processes.
- control isolation caller is used to exchange data between the function block process and other decoupled processes.
- the runtime requires the control isolation invoked by message interoperability (the wrapper layer for any message broker) to exchange messages.
- Control-isolation callers can support publish/subscribe patterns or other customizable OS-independent cross-process messaging systems.
- the method 800 further includes: when executing the start node in the workflow, enabling the auxiliary process to establish a persistent connection. Therefore, when the workflow starts to execute, the auxiliary process establishes a persistent connection, which improves the overall running speed of the workflow.
- the method 800 further includes: enabling the auxiliary process to disconnect the persistent connection when the end node in the workflow is executed. Therefore, when the execution of the workflow is finished, the auxiliary process disconnects the long connection, thereby saving connection resources.
- the function block process when the function block process needs to access resources, enable the function block process to establish a first idempotent short connection, call the auxiliary process through the first idempotent short connection to access resources through the long connection, or enable the function block The process establishes a second idempotent short connection to access the resource via the second idempotent short connection. It can be seen that the function block can access resources through the first idempotent short connection and long connection, or directly through the second idempotent short connection, and there are various implementation modes.
- the function block process when the function block process needs to end accessing resources, the function block process is enabled to end the first idempotent short connection and/or end the second idempotent short connection. Therefore, the function block can also save connection resources by terminating idempotent short connections when accessing resources is terminated.
- the function block process invokes the long connection via an interoperable caller;
- the resource includes at least one of the following: hardware detection data; software running in memory; hardware driver. Therefore, data can be easily exchanged between the function block process and the auxiliary process through the invoker, and based on interoperability, the ability of different computer systems, networks, operating systems and application programs to work together and share information can be realized.
- the method 800 further includes: generating a real-time operation process adapted to be called by the function block process based on the configuration information, wherein the real-time operation process is adapted to bear the persistent connection with the resource and provide resource-based real-time operation capability;
- the enable function block process establishes a third idempotent short connection, and calls the real-time operation process through the third idempotent short connection to obtain real-time operation capability. Therefore, by generating a real-time operation process, the function block process can also have real-time operation capability.
- FIG. 9 is an exemplary schematic diagram of workflow execution provided by the embodiment of the present application.
- the function blocks in the workflow include FB1 to FB6 , and the execution sequence of the function blocks is shown in the link arrows between the function blocks FB1 to FB6 in FIG. 9 .
- the workflow is executed at runtime, separate processes corresponding to each function block are generated, that is, respective function block processes 921-926 respectively corresponding to FB1-FB6 are generated.
- the execution sequence of the function block processes 921-926 is shown in the link arrows between the function blocks FB1-FB6 in Fig. 9, that is, the function block process 921 is executed first, then the function block process 922... and finally the function block process 926 is executed.
- the auxiliary processes specifically include a hardware monitoring process 928 , a memory process 929 and a hardware driver process 930 .
- the auxiliary process has been pre-started by the main runtime process.
- the resource attributes of the auxiliary process started by the main runtime process can be configured based on the configuration information.
- configure the hardware monitoring process 928 based on the sensors connected to the long connection; based on the number of hardware drivers included in the configuration information and the type of the hardware driver, configure the hardware driver process
- the 930 is based on the hardware driver to which the long-lived connection is connected.
- a designated auxiliary process may also be started based on the configuration information.
- the configuration information also includes an identification of the designated auxiliary process, and the auxiliary process corresponding to the identification is started based on the configuration information.
- the configuration information includes the identification of the hardware monitoring process 928 and the number and type of sensors. The runtime first starts the hardware monitoring process 928 based on the configuration information, and then configures the sensors that the hardware monitoring process 928 is connected to based on the persistent connection based on the sensor number and sensor type contained in the configuration information.
- the workflow also includes a start (Start) node in the first execution sequence of the workflow and an end (End) node in the last execution sequence of the workflow.
- the hardware monitoring process 928 When running to start node, perform overall initialization operation 901 (including: hardware monitoring process 928 initialization 931 monitored hardware (such as temperature sensor, humidity sensor, etc.) and hardware driver process 930 initialization 931 driven hardware) . Then, the hardware monitoring process 928, the memory process 929 and the hardware driver process 930 respectively establish long connections with their respective resources. Wherein: the hardware monitoring process 928 establishes a long connection 941 with the monitored hardware; the memory process 929 establishes a long connection 943 with the running program in the memory; the hardware driver process 930 establishes a long connection 932 with the driver of the driven hardware.
- hardware monitoring process 928 establishes a long connection 941 with the monitored hardware
- the memory process 929 establishes a long connection 943 with the running program in the memory
- the hardware driver process 930 establishes a long connection 932 with the driver of the driven hardware.
- function block processes 921 to 926 are executed in sequence during runtime, and the following function block processes are executed after the previous function block processes are executed.
- function block processes 922 to 926 are connected to respective auxiliary processes via respective invokers 910 .
- each invoker 910 further includes interoperability 911 .
- the function block process During the execution of each function block process, when the internal execution logic of the function block process determines that access to resources is required, the function block process establishes an idempotent short connection, so that the auxiliary process can be called through the idempotent short connection, so that the auxiliary process can A persistent connection to a resource accesses the resource. For example, taking the function block process 923 as an example, when the function block process 923 needs to obtain sensor data, the function block process 923 executes the process of starting short connection 904 to start an idempotent short connection with the hardware monitoring process 928 .
- the function block process 923 accesses the hardware monitoring process 928 through the invoker 910 with interoperability 911 based on the idempotent short connection, and the hardware monitoring process 928 provides the sensor data acquired via the hardware monitoring long connection 941 between the sensor and the sensor to the function Block process 923. Then, the function block process 923 executes the process of disconnecting the short connection 905 to disconnect the idempotent short connection with the hardware monitoring process 928 .
- the function block process may establish an idempotent short connection to directly access the resource.
- the function block process 926 when the function block process 926 needs to access the hardware driver, the function block process 926 performs an operation of starting a short connection to start an idempotent short connection with the hardware driver. After the idempotent short connection between the function block process 926 and the hardware driver is established, the function block process 926 can access the hardware driver. After the function block process 926 finishes accessing the hardware driver, the function block process 923 performs the operation of disconnecting the short connection, so as to disconnect the idempotent short connection with the hardware driver.
- the real-time operation process 927 adapted to be called by the function block process 921 can be generated based on the configuration information, wherein the real-time operation process 927 has a long connection with resources, and has the real-time operation capability of realizing the real-time operation short process 950 based on resources.
- the function block process 921 executes the start short connection process to start the idempotent short connection with the real-time operation process 927 .
- the function block process 921 registers 902 to the real-time operation short process 950 in real time, and the real-time operation short process 950 provides the processing result generated based on the long connection with the resource to the function block process 921 through the real-time callback 903 . Then, the function block process 921 executes the process of disconnecting the short connection to disconnect the idempotent short connection with the real-time operation process 927 .
- FIG. 10 is an exemplary structural diagram of a workflow execution device provided by various embodiments of the present application.
- Workflow execution device 700 includes:
- the obtaining module 701 is used to obtain workflow and configuration information, wherein the workflow is generated based on the behavior tree construction operation performed by the user on the graphical user interface; the configuration module 702 is used to adapt the configuration information based on the configuration information. Configure the auxiliary process that provides resources for the workflow, wherein the auxiliary process is adapted to bear the long connection with the resource; the generation module 703 is used to generate a function block process adapted to execute the function block in the workflow, wherein the function block process Adapted to host a first idempotent short connection to an auxiliary process and/or a second idempotent short connection to a resource, wherein the auxiliary process is decoupled from the function block process.
- the generation module 703 is further configured to enable the auxiliary process to establish a persistent connection when the start node in the workflow is executed. In one embodiment, the generation module 703 is further configured to enable the auxiliary process to disconnect the long connection when the end node in the workflow is executed. In one embodiment, the generation module 703 is further configured to enable the function block process to establish a first idempotent short connection when the function block process needs to access resources, and to call the auxiliary process via the first idempotent short connection to access via the long connection resources, or enable the function block process to establish a second idempotent short connection to access resources via the second idempotent short connection.
- the generating module 703 is further configured to enable the function block process to end the first idempotent short connection and/or end the second idempotent short connection when the function block process needs to end access to resources.
- the function block process invokes the long connection via an interoperable caller; the resources include at least one of the following: hardware detection data; software running in memory; hardware drivers, and so on.
- the generation module 703 is further configured to generate a real-time operation process adapted to be called by a function block process based on the configuration information, wherein the real-time operation process is adapted to carry a long connection with a resource and provide resource-based real-time operation Capability; when the function block process needs to be provided with real-time operation capability, enable the function block process to establish a third idempotent short connection, and call the real-time operation process through the third idempotent short connection to obtain real-time operation capability.
- FIG. 11 is an exemplary structural diagram of a workflow execution device with a memory-processor architecture provided by various embodiments of the present application.
- the workflow execution apparatus 500 includes: at least one memory 501 and at least one processor 502 .
- At least one processor 502 is configured to invoke a computer program stored in at least one memory 501 to execute the workflow execution method described in the embodiment of the present application.
- a system or device equipped with a storage medium may be provided, on which computer-readable codes for realizing the functions of any implementation manner in the above-mentioned embodiments are stored, and the computer (or CPU or The MPU) reads and executes the computer readable codes stored in the storage medium.
- the computer or CPU or The MPU
- some or all of the actual operations can also be completed by an operating system or the like operating on the computer through instructions based on computer readable codes.
- examples of computer-readable media include, but are not limited to, floppy disks, CD-ROMs, magnetic disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW , DVD+RW), memory chips, ROM, RAM, ASIC, configured processor, all-optical media, all tape or other magnetic media, or any other media from which a computer processor can read instructions.
- various other forms of computer-readable media can transmit or carry instructions to the computer, including routers, private or public networks, or other wired and wireless transmission devices or channels, such as downloading from a server computer or cloud by a communication network computer readable instructions. Instructions may include code in any computer programming language, including C, C++, C++, Visual Basic, java, and JavaScript.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
| S11~S13 | 工作流创建方法中的步骤 |
| 110 | 节点库 |
| 120 | 图形界面模块 |
| 130 | 编辑处理模块 |
| 140 | 解析部署模块 |
| 100 | OT域低代码开发平台 |
| 10 | OT域低代码开发工具 |
| 20 | OT域微服务生成器 |
| 30 | 工作单元的主控制器上的运行时 |
| 40 | 微服务 |
| 50 | 第三方装置 |
| 200 | 知识中台 |
| 201 | 功能块名称 |
| 202 | 功能块头 |
| 203 | 链路输入端口 |
| 204 | 链路输出端口 |
| 205 | 链路连接 |
| 206 | 敏感区 |
| 207 | 指令标签 |
| 208 | 输入数据组块 |
| 209 | 输出数据组块 |
| 210 | 数据输入端口 |
| 211 | 数据输出端口 |
| 212 | 数据连接 |
| 213 | 功能块图标 |
| 214 | 功能块主体 |
| 215 | 数据块标签 |
| 216 | 数据块体 |
| 217 | 监控链路 |
| 300 | IT域的代码开发平台 |
| 301 | IT域的代码开发工具 |
| 51 | 至少一个存储器 |
| 52 | 至少一个处理器 |
| 53 | 至少一个显示器 |
| 54 | 总线 |
| 600 | 工作流控制方法 |
| 601~603 | 步骤 |
| 70 | 合成器节点 |
| 71 | 开始块 |
| 72 | 结束块 |
| 73~75 | 功能块节点 |
| 76 | 合成表达式 |
| 77 | 结束逻辑值 |
| 78~80 | 数据值块 |
| 81 | 第三展示区域 |
| 82 | 折叠合成器的类型标识 |
| 83 | 第二展示区域 |
| 84 | 切换控件 |
| 85~86 | 功能块节点 |
| 87 | 合成表达式 |
| 88 | 第一展示区域 |
| 90 | 折叠框 |
| 800 | 工作流执行方法 |
| 801~803 | 步骤 |
| 901 | 整体初始化 |
| 902 | 实时注册 |
| 903 | 实时回调 |
| 904 | 启动短连接 |
| 905 | 结束短连接 |
| 906 | 重置 |
| 907 | 幂等短连接 |
| 908 | 硬件驱动器短连接 |
| 910 | 调用器 |
| 911 | 互操作性 |
| FB1~FB6 | 功能块 |
| 921~926 | 功能块进程 |
| 927 | 实时操作进程 |
| 928 | 硬件监测进程 |
| 929 | 内存进程 |
| 930 | 硬件驱动进程 |
| 931、940 | 初始化 |
| 932 | 硬件驱动长连接 |
| 933、942 | 重置 |
| 941 | 硬件监测长连接 |
| 950 | 实时操作短处理 |
| 700 | 工作流执行装置 |
| 701 | 获取模块 |
| 702 | 配置模块 |
| 703 | 生成模块 |
| 500 | 工作流执行装置 |
| 501 | 存储器 |
| 502 | 处理器 |
Claims (17)
- 工作流的执行方法(800),其特征在于,包括:获取工作流和配置信息,其中所述工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的(801);基于所述配置信息,对适配于为所述工作流提供资源的辅助进程进行配置,其中所述辅助进程适配于承载与所述资源的长连接(802);生成适配于执行所述工作流中的功能块的功能块进程,其中所述功能块进程适配于承载与所述辅助进程的第一幂等短连接和/或与所述资源的第二幂等短连接,其中所述辅助进程与所述功能块进程解耦(803)。
- 根据权利要求1所述的工作流的执行方法(800),其特征在于,所述方法(800)还包括:当执行所述工作流中的开始节点时,使能所述辅助进程建立所述长连接。
- 根据权利要求1所述的工作流的执行方法(800),其特征在于,所述方法(800)还包括:当执行所述工作流中的结束节点时,使能所述辅助进程断开所述长连接。
- 根据权利要求1所述的工作流的执行方法(800),其特征在于,当所述功能块进程需要访问所述资源时,使能所述功能块进程建立所述第一幂等短连接,经由所述第一幂等短连接调用所述辅助进程以经由所述长连接访问所述资源,或使能所述功能块进程建立所述第二幂等短连接以经由所述第二幂等短连接访问所述资源。
- 根据权利要求1所述的工作流的执行方法(800),其特征在于,当所述功能块进程需要结束访问所述资源时,使能所述功能块进程结束所述第一幂等短连接和/或结束所述第二幂等短连接。
- 根据权利要求1-5中任一项所述的工作流的执行方法(800),其特征在于,所述功能块进程经由具有互操作性的调用器调用所述长连接;所述资源包括下列中的至少一个:硬件检测数据;内存中运行的软件;硬件驱动程序。
- 根据权利要求1-5中任一项所述的工作流的执行方法(800),其特征在于,所述方法(800)还包括:基于所述配置信息生成适配于被所述功能块进程调用的实时操作进程,其中所述实时操作进程适配于承载与所述资源的长连接且提供基于所述资源的实时操作能力;当所述功能块进程需要被提供实时操作能力时,使能所述功能块进程建立第三幂等短连接,经由所述第三幂等短连接调用所述实时操作进程以获取所述实时操作能力。
- 工作流的执行装置(700),其特征在于,包括:获取模块(701),用于获取工作流和配置信息,其中所述工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的;配置模块(702),用于基于所述配置信息,对适配于为所述工作流提供资源的辅助进程进行配置,其中所述辅助进程适配于承载与所述资源的长连接;生成模块(703),用于生成适配于执行所述工作流中的功能块的功能块进程,其中所述功能块进程适配于承载与所述辅助进程的第一幂等短连接和/或与所述资源的第二幂等短连接,其中所述辅助进程与所述功能块进程解耦。
- 根据权利要求8所述的工作流的执行装置(700),其特征在于,所述生成模块(703),还用于当执行所述工作流中的开始节点时,使能所述辅助进程建立所述长连接。
- 根据权利要求8所述的工作流的执行装置(700),其特征在于,所述生成模块(703),还用于当执行所述工作流中的结束节点时,使能所述辅助进程断开所述长连接。
- 根据权利要求8所述的工作流的执行装置(700),其特征在于,所述生成模块(703),还用于当所述功能块进程需要访问所述资源时,使能所述功能块进程建立所述第一幂等短连接,经由所述第一幂等短连接调用所述辅助进程以经由所述长连接访问所述资源,或使能所述功能块进程建立所述第二幂等短连接以经由所述第二幂等短连接访问所述资源。
- 根据权利要求8所述的工作流的执行装置(700),其特征在于,所述生成模块(703),还用于当所述功能块进程需要结束访问所述资源时,使能所述功能块进程结束所述第一幂等短连接和/或结束所述第二幂等短连接。
- 根据权利要求8-12中任一项所述的工作流的执行装置(700),其特征在于,所述功能块进程经由具有互操作性的调用器调用所述长连接;所述资源包括下列中的至少一个:硬件检测数据;内存中运行的软件;硬件驱动程序。
- 根据权利要求8-12中任一项所述的工作流的执行装置(700),其特征在于,所述生成模块(703),还用于基于所述配置信息生成适配于被所述功能块进程调用的实时操作进程,其中所述实时操作进程适配于承载与所述资源的长连接且提供基于所述资源的实时操作能力;当所述功能块进程需要被提供实时操作能力时,使能所述功能块进程建立第三幂等短连接,经由所述第三幂等短连接调用所述实时操作进程以获取所述实时操作能力。
- 一种工作流执行装置(500),其特征在于,包括:至少一个存储器(501),被配置为存储计算机可读代码;至少一个处理器(502),被配置为调用所述计算机可读代码,执行如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。
- 一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。
- 一种计算机程序产品,其特征在于,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行根据如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202280089260.3A CN118556392A (zh) | 2022-03-02 | 2022-03-02 | 工作流执行方法、装置、存储介质及程序产品 |
| EP22929286.7A EP4465614A4 (en) | 2022-03-02 | 2022-03-02 | WORKFLOW EXECUTION METHOD AND APPARATUS, STORAGE MEDIUM AND PROGRAM PRODUCT |
| PCT/CN2022/078819 WO2023164835A1 (zh) | 2022-03-02 | 2022-03-02 | 工作流执行方法、装置、存储介质及程序产品 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2022/078819 WO2023164835A1 (zh) | 2022-03-02 | 2022-03-02 | 工作流执行方法、装置、存储介质及程序产品 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023164835A1 true WO2023164835A1 (zh) | 2023-09-07 |
Family
ID=87882792
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/078819 Ceased WO2023164835A1 (zh) | 2022-03-02 | 2022-03-02 | 工作流执行方法、装置、存储介质及程序产品 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4465614A4 (zh) |
| CN (1) | CN118556392A (zh) |
| WO (1) | WO2023164835A1 (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN201813401U (zh) * | 2010-09-16 | 2011-04-27 | 北京开心人信息技术有限公司 | 一种读取缓存数据的系统 |
| CN106131110A (zh) * | 2015-06-20 | 2016-11-16 | 浙江网新合同能源管理有限公司 | 一种基于物联网的联动方法 |
| EP3926422A1 (en) * | 2020-06-17 | 2021-12-22 | Siemens Aktiengesellschaft | Method for programming at least one machine in an industrial automation system |
| WO2022000293A1 (zh) * | 2020-06-30 | 2022-01-06 | 西门子(中国)有限公司 | 图形化编程方法和处理器、终端 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8571745B2 (en) * | 2008-04-10 | 2013-10-29 | Robert Todd Pack | Advanced behavior engine |
| US11088926B2 (en) * | 2017-09-01 | 2021-08-10 | Futurewei Technologies, Inc. | Instantiation of cloud-hosted functions based on call to function graph |
-
2022
- 2022-03-02 EP EP22929286.7A patent/EP4465614A4/en active Pending
- 2022-03-02 WO PCT/CN2022/078819 patent/WO2023164835A1/zh not_active Ceased
- 2022-03-02 CN CN202280089260.3A patent/CN118556392A/zh active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN201813401U (zh) * | 2010-09-16 | 2011-04-27 | 北京开心人信息技术有限公司 | 一种读取缓存数据的系统 |
| CN106131110A (zh) * | 2015-06-20 | 2016-11-16 | 浙江网新合同能源管理有限公司 | 一种基于物联网的联动方法 |
| EP3926422A1 (en) * | 2020-06-17 | 2021-12-22 | Siemens Aktiengesellschaft | Method for programming at least one machine in an industrial automation system |
| WO2022000293A1 (zh) * | 2020-06-30 | 2022-01-06 | 西门子(中国)有限公司 | 图形化编程方法和处理器、终端 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4465614A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118556392A (zh) | 2024-08-27 |
| EP4465614A4 (en) | 2025-06-11 |
| EP4465614A1 (en) | 2024-11-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4459525A1 (en) | Workflow generation method and system, and medium and program product | |
| WO2023164841A1 (zh) | 工作流执行方法、装置、存储介质及程序产品 | |
| CN105117346A (zh) | 虚拟化平台的分布式系统自动化测试方法及系统 | |
| EP4459398A1 (en) | Workflow generation method, device and system, medium, and program product | |
| US20250103189A1 (en) | Workflow Control Method, Apparatus and System, and Medium and Program Product | |
| Fend et al. | CPSAML: A language and code generation framework for digital twin based monitoring of mobile cyber-physical systems | |
| US20250130545A1 (en) | Workflow Construction Methods and Systems | |
| EP4462299A1 (en) | Dynamic workflow implementation method and system, medium, and program product | |
| WO2023142079A1 (zh) | 工作流创建方法、系统、介质及程序产品 | |
| CN120528838A (zh) | 一种基于中间件和接口定义的无人载具群协同测试系统与方法 | |
| CN116107730A (zh) | 流程控制方法、装置及设备 | |
| EP4465614A1 (en) | Workflow execution method and apparatus, storage medium, and program product | |
| EP4459470A1 (en) | Workflow generation method, device and system, medium, and program product | |
| EP4455956A1 (en) | Workflow construction and monitoring method and system, and medium and program product | |
| US20250181402A1 (en) | Workflow Execution Methods and Systems | |
| CN115756419B (zh) | 异构算法模型处理系统、方法、设备及介质 | |
| CN122064331A (zh) | 一种支持ai集成的物联网消息流程编排方法 | |
| US20250292034A1 (en) | Conversion Method and Apparatus for Natural Language Sentence | |
| Yu et al. | The implementation of IEC60870-5-104 based on UML statechart and Qt state machine framework | |
| WO2023142075A1 (zh) | 工作流创建方法、装置、平台和计算机可读介质 | |
| CN121832912A (zh) | 基于ai大模型的任务处理方法、设备及存储介质 | |
| CN118093389A (zh) | 流程模型处理方法、装置、设备和介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22929286 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280089260.3 Country of ref document: CN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022929286 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2022929286 Country of ref document: EP Effective date: 20240813 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |