WO2023164841A1 - Workflow execution method and apparatus, and storage medium and program product - Google Patents

Workflow execution method and apparatus, and storage medium and program product Download PDF

Info

Publication number
WO2023164841A1
WO2023164841A1 PCT/CN2022/078844 CN2022078844W WO2023164841A1 WO 2023164841 A1 WO2023164841 A1 WO 2023164841A1 CN 2022078844 W CN2022078844 W CN 2022078844W WO 2023164841 A1 WO2023164841 A1 WO 2023164841A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
workflow
execution
function block
conditional
Prior art date
Application number
PCT/CN2022/078844
Other languages
French (fr)
Chinese (zh)
Inventor
周振华
汪艇
Original Assignee
西门子股份公司
西门子(中国)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 西门子股份公司, 西门子(中国)有限公司 filed Critical 西门子股份公司
Priority to PCT/CN2022/078844 priority Critical patent/WO2023164841A1/en
Publication of WO2023164841A1 publication Critical patent/WO2023164841A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

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.
  • the embodiment of the present invention logically converts the behavior tree represented by the workflow in the language format into the workflow topology structure processed by node link compilation, so as to facilitate the execution of the workflow by the device.
  • the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
  • the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
  • a second conditional jump node is added, the second conditional jump node is based on As determined by the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node is also based on the The execution order of the sequential execution part is linked to a fourth function block node; wherein at the second condition jump node: when the second preset condition is satisfied, the fourth function block is executed based on the execution order A node; when the preset condition is not satisfied, jump to the third function block node.
  • a first conditional jump node is added, and the first conditional jump node is based on As determined by the loop execution structure, the first conditional jump node contains a first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also based on the The execution sequence of the sequential execution part is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when When the first preset condition is not satisfied, execute the second function block node based on the execution sequence;
  • the conversion of the workflow in the markup language format into a workflow topology implemented in node link assembly includes:
  • a conversion module configured to convert the workflow in the markup language format into a workflow topology implemented in node link assembly
  • An execution module configured to execute the workflow topology.
  • the embodiment of the present invention converts the behavior tree logic represented by the workflow in the language format into a workflow topology structure after node link assembly processing, so as to facilitate the execution of the workflow by the underlying devices.
  • the conversion module is configured to determine the sequential execution structure and the loop execution structure contained in the workflow in the markup language format; determine the sequential execution of the workflow topology based on the sequential execution structure part, the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the loop execution structure in the markup language format
  • add a first conditional jump node the first conditional jump node is determined based on the loop execution structure, and the first conditional jump node contains the first preset conditional and linked to the first function block node before the first position, the first conditional jump node is also linked to a second function block node based on the execution order of the sequential execution part, wherein in the first conditional At the jump node: when the first preset condition is satisfied, jump to the first function block node; when the first preset condition is not satisfied, execute the first function block node based on the execution order Two function block nodes.
  • the conversion module is configured to determine the parallel execution structure contained in the workflow in the markup language format; in the sequential execution part, the parallel execution structure in the markup language At the third position of the position of the workflow in the format, add at least one parallel execution part, the at least one parallel execution part converges to the parallel sink node of the sequential execution part, and the parallel sink node also executes based on the sequence
  • the execution order of the part is linked to the fifth function block node;
  • the parallel sink node is a logical AND node or a logical OR node, wherein when all the parallel execution parts converged to the logical AND node are executed, the fifth function block node is executed A function block node: when at least one parallel execution part of all parallel execution parts converged to the logical OR node has been executed, execute the fifth function block node.
  • the embodiment of the present invention also implements node link assembly processing for parallel logic.
  • the embodiment of the present invention can quickly provide a workflow in markup language format, realize a reverse interpretation, and solve the technical problem that the workflow topology after node link assembly processing is difficult to restore to the workflow in markup language format.
  • 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.
  • 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.
  • 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. 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. 8 is an exemplary flowchart of a workflow execution method provided by an embodiment of the present application.
  • FIG. 9A is a first schematic diagram of a workflow topology implemented by node link assembly 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.
  • 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:
  • 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 described 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 they can be used to control the main flow of the workflow in this embodiment 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:
  • Sequence node which can have one or more sub-nodes, and will trigger routing to each sub-node in sequence according to the workflow sequence.
  • Reactive sequence node which has the same function as the sequence node, but will continuously check the trigger conditions.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Step S12 in response to the construction operation of the behavior tree, generate a behavior tree corresponding to a workflow, and the logical nodes in the behavior tree are instantiated as operations of 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.
  • 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 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 node will be transferred to the corresponding data block for real-time 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.
  • 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 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 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, logical 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.
  • 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.
  • 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.
  • 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 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 may further provide 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 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 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.
  • 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.
  • Basic elements of a node link assembly can include:
  • 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.
  • 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 the workflow in markup language format, wherein the workflow in markup language format is generated based on the behavior tree construction operation performed by the user on the graphical user interface.
  • 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 Figure 2B to Figure 2S , or it can be obtained by FIG. 2T-FIG. 2Y or FIG. 7A-FIG. 7C are examples obtained by analyzing the behavior tree constructed by presenting function block nodes in the form of a type diagram.
  • Step 802 Convert the workflow in markup language format into a workflow topology implemented in node-link assembly.
  • the sequence of machine instructions is executed in the device's runtime to execute the workflow.
  • the first conditional jump node contains the first preset condition and is linked to the first position Before the first function block node, the first condition jump node is also linked to the second function block node based on the execution sequence of the sequential execution part, wherein at the first condition jump node: when the first preset condition is satisfied, Jump to the first function block node; when the first preset condition is not satisfied, execute the second function block node based on the execution order.
  • the reverse logic flow can be realized through the conditional jump node, which facilitates the realization of various loop logics that jump forward (for example, while, Repeat, or Retry, etc. can be realized).
  • step 802 converting the workflow in markup language format into a workflow topology implemented in node link assembly includes: determining the sequential execution structure and conditional execution structure included in the workflow in markup language format;
  • the sequential execution structure determines the sequential execution part of the workflow topology, and the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the conditional execution structure in the markup language format
  • add a second conditional jump node the second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and is linked to the second position
  • the second condition jump node is also linked to the fourth function block node based on the execution sequence of the sequential execution part; wherein at the second condition jump node: when the second preset condition is satisfied, Executing the fourth function block node based on the execution order; jumping to the third function block node when the preset condition is
  • converting the workflow in markup language format into a workflow topology implemented in node link assembly in step 802 includes: converting the workflow in markup language format into a workflow topology implemented in node link assembly includes : Determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, and the sequential execution part includes the function block nodes in the sequential execution structure and links between function block nodes; in the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in markup language format, add a first conditional jump node, the first conditional jump node is Determined based on the loop execution structure, the first conditional jump node contains the first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also linked to the first function block node based on the execution sequence of the sequential execution part Two function block nodes, where at the first condition jump node: when the first preset
  • the method 800 further includes: when the first conditional jump node or the second conditional jump node jumps to a logical AND node, adding an empty node before the logical AND node, and jumping the conditional jump node Go to an empty node, where an empty node is used to indicate no operation, linked to a logical AND node based on the execution order of the sequential execution part. Therefore, by automatically setting empty nodes, it is ensured that there is at least one function block node between the conditional jump node and the logical AND node, thereby avoiding logic errors.
  • FIG. 9A is a first schematic diagram of a workflow topology implemented by node link assembly provided by an embodiment of the present application.
  • JMPC may be linked to function block FB2 via reverse logic flow 902 , or to function block FB4 via forward logic flow 901 . in:
  • FIG. 9D is a topological structure diagram of a workflow with a parallel execution mechanism implemented by node link assembly provided by the embodiment of the present application.
  • the converted workflow topology includes start node S1 and jump node S3.
  • the workflow topology also includes nodes between the start node S1 and the jump node S3, which are executed sequentially based on the direction of the arrow (including multiple function blocks and conditional jump nodes J3, conditional jump nodes J4, parallel sink nodes A1, parallel sink node A2 and empty node L).
  • the jump node S3 is used to unconditionally jump to the function block 98 .
  • the parallel sink node A1 When the parallel sink node A1 is implemented as a logical AND node: the first parallel execution structure, the second parallel execution structure and the main road (the main road is also regarded as a parallel execution structure) are all executed, then the parallel sink node A1 is executed. next sequential node.
  • the parallel sink node A1 When the parallel sink node A1 is implemented as a logical OR node: when one of the first parallel execution structure, the second parallel execution structure, and the trunk road (the trunk road is also regarded as a parallel execution structure) is executed, the parallel sink node is executed The next sequential node of A1.
  • the node link assembly interpreter automatically adds an empty node L1 at the nearest adjacent position before the parallel sink node A2, and transfers the conditional jump node J4 Jump to the empty node L1, where the empty node L1 is used to indicate not to execute the operation, and the empty node L1 is linked to the parallel sink node A2 based on the execution sequence of the sequential execution part.
  • FIG. 10 is an exemplary structural diagram of a workflow execution device provided by various embodiments of the present application.
  • the workflow execution device 700 includes: an acquisition module 701, configured to acquire a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface; a conversion module 702, configured to convert the workflow in the markup language format into a workflow topology implemented in node link assembly; an execution module 703, configured to execute the workflow topology.
  • the conversion module 702 is configured to determine the sequence execution structure and the loop execution structure contained in the workflow in the markup language format; determine the sequence execution part of the workflow topology based on the sequence execution structure, and the sequence execution part includes the sequence The function block nodes in the execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the first position of the loop execution structure in the workflow in markup language format, add a first conditional jump node, The first conditional jump node is determined based on the loop execution structure.
  • the first conditional jump node contains the first preset condition and is linked to the first function block node before the first position.
  • the first conditional jump node is also based on sequential execution Part of the execution sequence is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is met, jump to the first function block node; when the first preset condition is not met , the second function block node is executed based on the execution order.
  • the conversion module 702 is used to determine the sequential execution structure and the conditional execution structure contained in the workflow in the markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, and the sequential execution part includes the sequence Execute the function block nodes in the structure and the links between the function block nodes; in the sequential execution part, at the second position corresponding to the position of the conditional execution structure in the workflow in markup language format, add a second conditional jump node, The second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and is linked to the third function block node after the second position, and the second conditional jump node is also based on sequential execution The execution order of the part is linked to the fourth function block node; wherein at the second condition jump node: when the second preset condition is met, execute the fourth function block node based on the execution order; when the preset condition is not met , jump to the third function block node.
  • the conversion module 702 is used to determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in the markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, the sequence The execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in markup language format, add the first condition Jump node, the first condition jump node is determined based on the loop execution structure, the first condition jump node contains the first preset condition and is linked to the first function block node before the first position, the first condition jump node Also link to the second function block node based on the execution sequence of the sequential execution part, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when the first preset When the condition is not met, the second function block node is executed based on the execution order; in the sequential execution part, at the second position corresponding
  • the conversion module 702 is configured to add an empty node before the logical AND node when the first conditional jump node or the second conditional jump node jumps to the logical AND node, and jump the conditional jump node Go to an empty node, where an empty node is used to indicate no operation, linked to a logical AND node based on the execution order of the sequential execution part.
  • it also includes a reverse interpretation module 704, which is used for associating and storing the workflow in markup language format and the workflow topology; receiving the reverse interpretation request of the workflow adapted to the requested workflow topology; responding Inversely interpret requests and provide workflows in markup language format based on associative storage.
  • a reverse interpretation module 704 which is used for associating and storing the workflow in markup language format and the workflow topology; receiving the reverse interpretation request of the workflow adapted to the requested workflow topology; responding Inversely interpret requests and provide workflows in markup language format based on associative storage.
  • the embodiment of the present application also provides a computer-readable storage medium, on which computer-readable codes are stored, and when the computer-readable codes are executed by the processor, the processor executes the aforementioned workflow execution method.
  • an embodiment of the present application further provides 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 processing The controller executes the steps in the workflow execution method in the embodiment 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.
  • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Disclosed in the embodiments of the present application are a workflow execution method and apparatus, and a storage medium and a program product. The method comprises: acquiring a workflow in a markup language format, wherein the workflow in the markup language format is generated on the basis of a behavior tree construction operation that is performed by a user on a graphical user interface; converting the workflow in the markup language format into a workflow topology structure that is realized by means of node link assembling; and executing the workflow topology structure. In the embodiments of the present application, the workflow logic execution is realized, and the execution of a circular logic of jumping forward and a conditional logic of jumping backward is facilitated. Automatically setting a blank node ensures that there is at least one function block node between a conditional jump node and a logic AND node, thereby avoiding logical errors.

Description

工作流执行方法、装置、存储介质及程序产品Workflow execution method, device, storage medium and program product 技术领域technical field
本申请实施例涉及工业技术领域,尤其涉及一种工作流执行方法、装置、存储介质及程序产品。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.
背景技术Background technique
工作流可以简单地定义为对一系列操作过程的描述。工作流广泛应用于自动化系统、人工智能、机器人等领域。例如,自动化系统中的一条产品分拣线的工作流可以简单地描述为启动、拍照、分类并将产品移动到目标位置。在人工智能领域的模型部署工作流可以描述为数据收集、数据标注、模型训练和模型部署。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.
但目前这些工作流只有文本描述,如果用户想要执行这样的工作流,需要遵循文本描述,并且可能使用多种工程工具,然这些工具几乎互不相关,提供了完全不同的用户操作行为,这既是对用户的挑战,也会由于开发周期长而大大增加成本,降低效率,限制灵活性。例如,在人工智能领域,用户需要使用一个工具进行数据采集,手动或使用其他工具进行数据标注,编写python脚本进行模型训练,还需要部署工具进行部署。But at present, these workflows only have text descriptions. If users want to execute such workflows, they need to follow the text descriptions and may use a variety of engineering tools. However, these tools are almost irrelevant and provide completely different user operation behaviors. It is not only a challenge to users, but also greatly increases costs, reduces efficiency, and limits flexibility due to the long development cycle. For example, in the field of artificial intelligence, users need to use a tool for data collection, manually or use other tools for data labeling, write python scripts for model training, and deploy tools for deployment.
为此,本领域内技术人员还在致力于寻找其他的工作流解决方案。For this reason, those skilled in the art are still working on finding other workflow solutions.
发明内容Contents of the invention
本申请实施例提供一种工作流执行方法、装置、存储介质及程序产品。Embodiments of the present application provide a workflow execution method, device, storage medium, and program product.
第一方面,本发明实施方式提出一种工作流执行方法。该方法包括:In the first aspect, the embodiment of the present invention proposes a workflow execution method. The method includes:
获取标记语言格式的工作流,其中所述标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的;Acquiring a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface;
将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构;converting the workflow in the markup language format into a workflow topology implemented in Node Link Assembly;
执行所述工作流拓扑结构。Execute the workflow topology.
可见,本发明实施方式将表征为语言格式的工作流的行为树逻辑转换为节点链接汇编处理后的工作流拓扑结构,便于设备执行工作流。It can be seen that the embodiment of the present invention logically converts the behavior tree represented by the workflow in the language format into the workflow topology structure processed by node link compilation, so as to facilitate the execution of the workflow by the device.
在一个实施方式中,将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:In one embodiment, converting the workflow in the markup language format into a workflow topology implemented in node link assembly includes:
确定包含在所述标记语言格式的工作流中的顺序执行结构和循环执行结构;determining a sequential execution structure and a loop execution structure included in the workflow in the markup language format;
基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点。In the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in the markup language format, a first conditional jump node is added, and the first conditional jump node is based on As determined by the loop execution structure, the first conditional jump node contains a first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also based on the The execution sequence of the sequential execution part is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when When the first preset condition is not satisfied, execute the second function block node based on the execution sequence.
因此,本发明实施方式通过条件跳转节点可以实现反向逻辑流,便于实现各种往前跳跃的循环逻辑。Therefore, in the embodiment of the present invention, the reverse logic flow can be realized through the conditional jump node, which facilitates the realization of various forward jumping loop logics.
在一个实施方式中,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:In one embodiment, the conversion of the workflow in the markup language format into a workflow topology implemented in node link assembly includes:
确定包含在所述标记语言格式的工作流中的顺序执行结构和条件执行结构;determining a sequential execution structure and a conditional execution structure to be included in the workflow in the markup language format;
基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, a second conditional jump node is added, the second conditional jump node is based on As determined by the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node is also based on the The execution order of the sequential execution part is linked to a fourth function block node; wherein at the second condition jump node: when the second preset condition is satisfied, the fourth function block is executed based on the execution order A node; when the preset condition is not satisfied, jump to the third function block node.
因此,本发明实施方式通过条件跳转节点可以实现正向逻辑流,便于实现各种往后跳跃的条件逻辑。Therefore, in the embodiment of the present invention, the forward logic flow can be realized through the conditional jump node, which facilitates the realization of various backward jumping conditional logics.
在一个实施方式中,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:In one embodiment, the conversion of the workflow in the markup language format into a workflow topology implemented in node link assembly includes:
确定包含在所述标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;determining a sequential execution structure, a loop execution structure, and a conditional execution structure included in the workflow in the markup language format;
基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点;In the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in the markup language format, a first conditional jump node is added, and the first conditional jump node is based on As determined by the loop execution structure, the first conditional jump node contains a first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also based on the The execution sequence of the sequential execution part is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when When the first preset condition is not satisfied, execute the second function block node based on the execution sequence;
在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, a second conditional jump node is added, the second conditional jump node is based on As determined by the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node is also based on the The execution order of the sequential execution part is linked to a fourth function block node; wherein at the second condition jump node: when the second preset condition is satisfied, the fourth function block is executed based on the execution order A node; when the preset condition is not satisfied, jump to the third function block node.
因此,本发明实施方式通过多个条件跳转节点分别实现正向逻辑流和反向逻辑流,便于实现各种往前跳跃的循环逻辑以及各种往后跳跃的条件逻辑。Therefore, in the embodiment of the present invention, the forward logic flow and the reverse logic flow are realized respectively through a plurality of conditional jump nodes, which facilitates the realization of various forward jumping loop logics and various backward jumping conditional logics.
在一个实施方式中,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:In one embodiment, the conversion of the workflow in the markup language format into a workflow topology implemented in node link assembly includes:
确定包含在所述标记语言格式的工作流中的并行执行结构;determining a parallel execution structure to be included in the workflow in the markup language format;
在所述顺序执行部分中、对应于所述并行执行结构在所述标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,所述至少一个并行执行部分汇聚到所述顺序执行部分的并行汇聚节点上,所述并行汇聚节点还基于所述顺序执行部分的执行顺序链接到第五功能块节点;所述并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到所述逻辑与节点的所有并行执行部分都执行完毕时,执行所述第五功能块节点;当汇聚到所述逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行所述第五功能块节点。At a third position in the sequential execution part corresponding to the position of the parallel execution structure in the workflow in the markup language format, at least one parallel execution part is added, the at least one parallel execution part converges to the On the parallel sink node of the sequential execution part, the parallel sink node is also linked to the fifth function block node based on the execution order of the sequential execution part; the parallel sink node is a logical AND node or a logical OR node, wherein when converged to Execute the fifth function block node when all the parallel execution parts of the logical AND node are executed; when at least one parallel execution part of all the parallel execution parts converged to the logical OR node is executed, execute the fifth function block node Describe the fifth function block node.
可见,本发明实施方式还实现了针对并行逻辑的节点链接汇编处理。It can be seen that the embodiment of the present invention also implements node link assembly processing for parallel logic.
在一个实施方式中,还包括:In one embodiment, also include:
当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节点时,在所述逻辑与节点之前添加空节点,并将所述条件跳转节点跳转到所述空节点上,其中所述空节点用于指示不执行操作,所述空节点基于所述顺序执行部分的执行顺序链接到所述逻辑与节点。When the first conditional jump node or the second conditional jump node jumps to a logical AND node, an empty node is added before the logical AND node, and the conditional jump node is jumped to the empty node, Wherein the empty node is used to indicate not to perform an operation, and the empty node is linked to the logical AND node based on the execution order of the sequential execution part.
因此,通过自动设置空节点,保证了条件跳转节点与逻辑与节点之间至少存在一个功能块节点,从而避免了逻辑错误。Therefore, by automatically setting empty nodes, it is ensured that there is at least one function block node between the conditional jump node and the logic AND node, thereby avoiding logic errors.
在一个实施方式中,还包括:关联存储所述标记语言格式的工作流和所述工作流拓扑结构;接收适配于请求所述工作流拓扑结构的工作流的反向解释请求;响应于所述反向解释请求,基于所述关联存储提供所述标记语言格式的工作流。In one embodiment, further comprising: associating and storing the workflow in the markup language format and the workflow topology; receiving a reverse interpretation request adapted to the workflow requesting the workflow topology; responding to the The reverse interpretation request is provided, and the workflow in the markup language format is provided based on the associated storage.
可见,本发明实施方式还可以快速提供标记语言格式的工作流,实现了一种反向解释,解决了节点链接汇编处理后的工作流拓扑结构难以恢复到标记语言格式的工作流的技术问题。It can be seen that the embodiment of the present invention can quickly provide a workflow in markup language format, realize a reverse interpretation, and solve the technical problem that the workflow topology after node link assembly processing is difficult to restore to the workflow in markup language format.
第二方面,本发明实施方式提出工作流执行装置。该装置包括:In the second aspect, the embodiment of the present invention provides a workflow execution device. The unit includes:
获取模块,用于获取标记语言格式的工作流,其中所述标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的;An acquisition module, configured to acquire a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface;
转换模块,用于将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构;A conversion module, configured to convert the workflow in the markup language format into a workflow topology implemented in node link assembly;
执行模块,用于执行所述工作流拓扑结构。An execution module, configured to execute the workflow topology.
可见,本发明实施方式将表征为语言格式的工作流的行为树逻辑,转换为节点链接汇编处理后的工作流拓扑结构,便于底层设备执行工作流。It can be seen that the embodiment of the present invention converts the behavior tree logic represented by the workflow in the language format into a workflow topology structure after node link assembly processing, so as to facilitate the execution of the workflow by the underlying devices.
在一个实施方式中,所述转换模块,用于确定包含在所述标记语言格式的工作流中的顺序执行结构和循环执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点。In one embodiment, the conversion module is configured to determine the sequential execution structure and the loop execution structure contained in the workflow in the markup language format; determine the sequential execution of the workflow topology based on the sequential execution structure part, the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the loop execution structure in the markup language format At the first position of the workflow position, add a first conditional jump node, the first conditional jump node is determined based on the loop execution structure, and the first conditional jump node contains the first preset conditional and linked to the first function block node before the first position, the first conditional jump node is also linked to a second function block node based on the execution order of the sequential execution part, wherein in the first conditional At the jump node: when the first preset condition is satisfied, jump to the first function block node; when the first preset condition is not satisfied, execute the first function block node based on the execution order Two function block nodes.
因此,本发明实施方式通过条件跳转节点可以实现反向逻辑流,便于实现各种往前跳跃的循环逻辑。Therefore, in the embodiment of the present invention, the reverse logic flow can be realized through the conditional jump node, which facilitates the realization of various forward jumping loop logics.
在一个实施方式中,所述转换模块,用于确定包含在所述标记语言格式的工作流中的顺序执行结构和条件执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之 间的链接;在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In one embodiment, the conversion module is configured to determine the sequential execution structure and the conditional execution structure contained in the workflow in the markup language format; determine the sequential execution of the workflow topology based on the sequential execution structure part, the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the conditional execution structure in the markup language format At the second position of the position of the workflow, add a second conditional jump node, the second conditional jump node is determined based on the conditional execution structure, and the second conditional jump node contains a second preset condition and linked to the third function block node after the second position, the second condition jump node is also linked to the fourth function block node based on the execution order of the sequential execution part; wherein in the second condition At the jump node: when the second preset condition is satisfied, execute the fourth function block node based on the execution sequence; when the preset condition is not satisfied, jump to the third function block node.
因此,本发明实施方式通过条件跳转节点可以实现正向逻辑流,便于实现各种往后跳跃的条件逻辑。Therefore, in the embodiment of the present invention, the forward logic flow can be realized through the conditional jump node, which facilitates the realization of various backward jumping conditional logics.
在一个实施方式中,所述转换模块,用于确定包含在所述标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点;在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In one embodiment, the conversion module is configured to determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in the markup language format; determine the workflow topology based on the sequential execution structure The sequential execution part of the structure, the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the loop execution structure in the At the first position of the workflow in the markup language format, add a first conditional jump node, the first conditional jump node is determined based on the loop execution structure, and the first conditional jump node includes The first preset condition is linked to the first function block node before the first position, and the first conditional jump node is also linked to the second function block node based on the execution order of the sequential execution part, wherein at the At the first condition jump node: when the first preset condition is met, jump to the first function block node; when the first preset condition is not met, based on the execution sequence Executing the second function block node; in the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, adding a second conditional jump node, the The second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, the first The second conditional jump node is also linked to the fourth function block node based on the execution sequence of the sequential execution part; wherein at the second conditional jump node: when the second preset condition is satisfied, based on the The execution sequence executes the fourth function block node; when the preset condition is not satisfied, jump to the third function block node.
因此,本发明实施方式通过多个条件跳转节点分别实现正向逻辑流和反向逻辑流,便于实现各种往前跳跃的循环逻辑以及各种往后跳跃的条件逻辑。Therefore, in the embodiment of the present invention, the forward logic flow and the reverse logic flow are realized respectively through a plurality of conditional jump nodes, which facilitates the realization of various forward jumping loop logics and various backward jumping conditional logics.
在一个实施方式中,所述转换模块,用于确定包含在所述标记语言格式的工作流中的并行执行结构;在所述顺序执行部分中、对应于所述并行执行结构在所述标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,所述至少一个并行执行部分汇聚到所述顺序执行部分的并行汇聚节点上,所述并行汇聚节点还基于所述顺序执行 部分的执行顺序链接到第五功能块节点;所述并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到所述逻辑与节点的所有并行执行部分都执行完毕时,执行所述第五功能块节点;当汇聚到所述逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行所述第五功能块节点。In one embodiment, the conversion module is configured to determine the parallel execution structure contained in the workflow in the markup language format; in the sequential execution part, the parallel execution structure in the markup language At the third position of the position of the workflow in the format, add at least one parallel execution part, the at least one parallel execution part converges to the parallel sink node of the sequential execution part, and the parallel sink node also executes based on the sequence The execution order of the part is linked to the fifth function block node; the parallel sink node is a logical AND node or a logical OR node, wherein when all the parallel execution parts converged to the logical AND node are executed, the fifth function block node is executed A function block node: when at least one parallel execution part of all parallel execution parts converged to the logical OR node has been executed, execute the fifth function block node.
可见,本发明实施方式还实现了针对并行逻辑的节点链接汇编处理。It can be seen that the embodiment of the present invention also implements node link assembly processing for parallel logic.
在一个实施方式中,所述转换模块,用于当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节点时,在所述逻辑与节点之前添加空节点,并将所述条件跳转节点跳转到所述空节点上,其中所述空节点用于指示不执行操作,所述空节点基于所述顺序执行部分的执行顺序链接到所述逻辑与节点。In one embodiment, the conversion module is configured to add an empty node before the logical AND node when the first conditional jump node or the second conditional jump node jumps to the logical AND node, and convert the The conditional jump node jumps to the empty node, wherein the empty node is used to indicate that no operation is performed, and the empty node is linked to the logical AND node based on the execution sequence of the sequential execution part.
因此,通过自动设置空节点,保证了条件跳转节点与逻辑与节点之间至少存在一个功能块节点,从而避免了逻辑错误。Therefore, by automatically setting empty nodes, it is ensured that there is at least one function block node between the conditional jump node and the logic AND node, thereby avoiding logic errors.
在一个实施方式中,还包括:In one embodiment, also include:
反向解释模块,用于关联存储所述标记语言格式的工作流和所述工作流拓扑结构;接收适配于请求所述工作流拓扑结构的工作流的反向解释请求;响应于所述反向解释请求,基于所述关联存储提供所述标记语言格式的工作流。The reverse interpretation module is used to associate and store the workflow in the markup language format and the workflow topology; receive a reverse interpretation request adapted to the workflow requesting the workflow topology; respond to the reverse A workflow in the markup language format is provided based on the associative store to an interpretation request.
可见,本发明实施方式还可以快速提供标记语言格式的工作流,实现了一种反向解释,解决了节点链接汇编处理后的工作流拓扑结构难以恢复到标记语言格式的工作流的技术问题。It can be seen that the embodiment of the present invention can quickly provide a workflow in markup language format, realize a reverse interpretation, and solve the technical problem that the workflow topology after node link assembly processing is difficult to restore to the workflow in markup language format.
第三方面,本发明实施方式提出一种工作流执行装置,包括:至少一个存储器,被配置为存储计算机可读代码;至少一个处理器,被配置为调用所述计算机可读代码,执行如上任一种所述的工作流执行方法中的步骤。In a third aspect, 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.
第四方面,本发明实施方式提出一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如上任一种所述的工作流执行方法中的步骤。In a fourth aspect, 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.
第五方面,本发明实施方式提出一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行根据如上任一种所述的工作流执行方法中的步骤。In the fifth aspect, 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.
附图说明Description of drawings
图1A为本申请各实施例提供的工作流创建方法的示例性流程图。FIG. 1A is an exemplary flow chart of workflow creation methods provided by various embodiments of the present application.
图1B为本申请一个例子中的一个资源知识图谱的示例图。FIG. 1B is an example diagram of a resource knowledge graph in an example of the present application.
图1C为本申请一个例子中为各资源节点关联了功能块节点的示例图。FIG. 1C is an example diagram in which resource nodes are associated with function block nodes in an example of the present application.
图2A为本申请一个例子中创建的行为树的示意图。FIG. 2A is a schematic diagram of a behavior tree created in an example of the present application.
图2B至图2S分别为本申请一个例子中创建的部分行为树的示意图。FIG. 2B to FIG. 2S are respectively schematic diagrams of partial behavior trees created in an example of the present application.
图2T为本申请一个例子中基于功能块类型图的功能块节点构建行为树的示例。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至图2X分别为本申请一个例子中隐藏或显示数据输入端口或数据输出端口的示意图。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.
图2Y为本申请一个例子中为行为树中的四个功能块节点分别添加了数据块以及在各个数据块中显示相应数据的示意图。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.
图3为本申请一个实施例提供的工作流创建系统的示例性结构图。Fig. 3 is an exemplary structural diagram of a workflow creation system provided by an embodiment of the present application.
图4A~4D为本申请各实施例提供的工作流创建系统的示意图。4A-4D are schematic diagrams of workflow creation systems provided by various embodiments of the present application.
图4E为OT域低代码开发平台100在工业自动化领域的一个应用场景图。FIG. 4E is a diagram of an application scenario of the OT domain low-code development platform 100 in the field of industrial automation.
图5为本申请实施例提供的工作流创建系统的硬件实现的示意图。FIG. 5 is a schematic diagram of hardware implementation of the workflow creation system provided by the embodiment of the present application.
图6为本申请各实施例提供的工作流控制方法的示例性流程图。FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application.
图7A为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第一示意图。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.
图7B为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第二示意图。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.
图7C为本申请各实施例提供的、具有折叠形态的FBTD逻辑合成器的低代码范例的示意图。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.
图8为本申请实施例提供的工作流执行方法的示范性流程图。FIG. 8 is an exemplary flowchart of a workflow execution method provided by an embodiment of the present application.
图9A为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第一示意图。FIG. 9A is a first schematic diagram of a workflow topology implemented by node link assembly provided by an embodiment of the present application.
图9B为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第二示意图。FIG. 9B is a second schematic diagram of a workflow topology implemented by node link assembly provided by the embodiment of the present application.
图9C为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第三示意图。FIG. 9C is a third schematic diagram of the workflow topology implemented by node link assembly provided by the embodiment of the present application.
图9D为本申请实施例提供的、以节点链接汇编实现的具有并行执行机构的工作流拓扑结构图。FIG. 9D is a topological structure diagram of a workflow with a parallel execution mechanism implemented by node link assembly provided by the embodiment of the present application.
图10为本申请各实施例提供的工作流执行装置的示范性结构图。FIG. 10 is an exemplary structural diagram of a workflow execution device provided by various embodiments of the present application.
图11为本申请各实施例提供的、具有存储器-处理器架构的工作流执行装置的示范性结构图。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.
其中,附图标记如下:Wherein, the reference signs are as follows:
Figure PCTCN2022078844-appb-000001
Figure PCTCN2022078844-appb-000001
Figure PCTCN2022078844-appb-000002
Figure PCTCN2022078844-appb-000002
Figure PCTCN2022078844-appb-000003
Figure PCTCN2022078844-appb-000003
Figure PCTCN2022078844-appb-000004
Figure PCTCN2022078844-appb-000004
具体实施方式Detailed ways
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本申请实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。The subject matter described herein will now be discussed with reference to example implementations. It should be understood that the discussion of these implementations is only to enable those skilled in the art to better understand and realize the subject matter described herein, and is not intended to limit the protection scope, applicability or examples set forth in the claims. Changes may be made to the function and arrangement of the discussed elements without departing from the protection scope of the content of the embodiments of the present application. Various examples may omit, substitute, or add various procedures or components as needed. For example, the methods described may be performed in an order different from that described, and various steps may be added, omitted, or combined. In addition, features described with respect to some examples may also be combined in other examples.
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。As used herein, 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.
下面结合附图对本申请实施例进行详细说明。Embodiments of the present application will be described in detail below in conjunction with the accompanying drawings.
图1A示出了本申请实施例提供的一种工作流创建方法的示例性流程图。如图1A所示,该方法可包括如下步骤: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:
步骤S11,接收用户在图形用户界面上基于预先设置的行为树节点进行的行为树(behavior tree)的构建操作。Step S11, receiving a behavior tree construction operation performed by the user on the graphical user interface based on the preset behavior tree nodes.
本实施例中,一个行为树用于表征一个工作流,所述工作流用于定义一个工作单元要执 行的操作,例如,它可以表示工作单元内的分布式进程。具体实现时,这里的工作流还可细分为主工作流和子工作流。主工作流用于限定开始、结束以及触发整个工作单元流程的其他流控制。主工作流是整个流程的入口,其链接到至少一个子工作流。子工作流通常为主要工作流,每个子工作流对应一个子流程,用于实现具体的业务操作。In this embodiment, 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. During specific implementation, 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.
其中,工作单元(Workcell)可以为能够实现一个相对完整和独立的控制流程和操作的系统或设备等资源的组合。本实施例中,以工作单元为基本单位进行工作流创建,更符合工业控制的特点,可提高开发的集成度,并降低开发的复杂度。例如,以工业技术领域为例,工作单元可以根据实际的工业场景定义,比如:可以定义一个工序对应一个工作单元,或者也可以定义工序中的一个工站为一个工作单元,又或者也可以定义工站中的一个工位对应一个工作单元等,不同的工作单元的工艺流程不同。Wherein, a work cell (Workcell) may be a combination of resources such as systems or devices capable of implementing a relatively complete and independent control process and operation. In this embodiment, 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. For example, taking the field of industrial technology as an example, 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. You can use the component editor to provide users with an intuitive and visual behavior tree editor. With the 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.
本实施例中,行为树节点可包括:流控制节点和功能块节点,等等。下面对其分别进行详细描述。In this embodiment, the behavior tree nodes may include: flow control nodes, function block nodes, and so on. Each of them will be described in detail below.
一、流控制节点1. Flow control node
流控制节点用于实现工作流中的逻辑控制,其通常独立于工作单元中的特定业务操作。通过流控制节点,用户可以根据自己的需求创建各种工作流。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.
具体实现时,流控制节点可包括:主控制节点、合成器(compositor)节点(也可称为聚合器节点或逻辑控制节点)以及条件节点等。或者,流控制节点也可包括:主控制节点、合成器节点以及条件节点中的一个或任意组合。下面分别对其进行简单说明。During specific implementation, 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. Alternatively, 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 described below.
1、主控制节点1. Master control node
主控制节点可包括:开始(Start)节点、结束(End)节点、转到(Goto)节点、关键(Anchor)节点、停止(Stop)节点、中止(Abort)节点中的部分或全部。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 they can be used to control the main flow of the workflow in this embodiment and can be linked to the state machine of the workflow. Wherein, 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. In addition, 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).
2、合成器节点2. Synthesizer node
合成器节点用于实现工作流中的逻辑控制。合成器节点可包括:顺序(Se,Sequence)节点、反应性顺序(RSe,Reactive Sequence)节点、并行(Pa,Parallel)节点、工艺内质量控制(IPQ,In-Process QC)节点、优先级(Pr,Priority(Fallback))节点、反应性优先级(RPr,Reactive Priority(Fallback))节点、是否条件判断(ITE,If-Then-Else)节点、以及多分支选择(Sw,Switch)节点中的部分或全部。Compositor nodes are used to implement logic control in workflows. 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:
1)顺序节点,该节点可以有一到多个子节点,会按照工作流的顺序依次触发路由到各个子节点。1) Sequence node, which can have one or more sub-nodes, and will trigger routing to each sub-node in sequence according to the workflow sequence.
2)反应性顺序节点,功能同顺序节点,但是会持续检查触发条件。2) Reactive sequence node, which has the same function as the sequence node, but will continuously check the trigger conditions.
3)并行节点,该节点可以有一到多个子节点,由上至下顺序启动,并在多进程或多线程中同时执行所有子节点。3) 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.
4)工艺内质量控制节点,是由质量工程师对一部分工艺步骤做质量检验,如果检验失败就执行异常处理流程,如果成功就继续。4) 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.
5)优先级节点:按照优先级依次执行各个子分支,如果上一个执行失败就执行下一个,任一分支执行成功就通过。5) 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.
6)反应性优先级节点:功能同优先级节点,但是会持续检查触发条件。6) Reactive priority node: The function is the same as the priority node, but the trigger condition will be continuously checked.
7)是否条件判断节点:检查触发表达式,如果为真执行真分支,如果为假执行假分支。7) Whether condition judgment node: check the trigger expression, if it is true, execute the true branch, if it is false, execute the false branch.
8)多分支选择节点:检查触发表达式,并根据不同条件执行不同分支,都不满足执行默认(default)分支。8) 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.
通常情况下,顺序节点和并行节点可驱动工作流中的大部分逻辑。Typically, sequential and parallel nodes drive most of the logic in a workflow.
3、条件(C,Condition)节点3. Condition (C, Condition) node
条件节点通常为行为树中检查表达式的基本逻辑元素,用于执行条件判断,返回判断结果。其根据条件是否成立返回成功或失败。条件节点从不返回运行状态。The 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.
此外,在其他实施方式中,条件节点也可包括在功能块节点之内。或者,条件节点也可单独作为一类节点。In addition, in other implementation manners, a conditional node may also be included in a function block node. Alternatively, conditional nodes can also be used as a single type of node.
二、功能块(FB,Function Block)节点2. Function block (FB, Function Block) 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.
本实施例中,功能块节点包括逻辑节点,此外还可以包括一些特定类型的功能块节点,例如可包括手动(Manual)节点、动态(Dynamic)节点、延迟(Delay)节点、以及空闲(Empty(idle))节点中的部分或全部。其中,动态节点用于在运行时动态注入节点实例。手动节点表示人工步骤,在获取确认信号前停止在当前节点,获取确认信号后退出。延迟节点表示在延时指定时间后退出当前节点。空闲结点表示不执行任何操作,占位符,可以被任意功能块节点替换。其中,每个逻辑节点可对应一个操作模板,每个操作模板预先定义至少一类资源(如协作机器人类或PLC类等设备类)能够执行的操作,例如,所述操作可包括:动作、方法或技能。In this embodiment, 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. Among them, 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. Wherein, each logical node may correspond to an operation template, and 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. For example, the operations may include: actions, methods or skills.
具体实现时,每个操作模板可由接口部分和实现部分组成。其中实现部分可以是一个应用程序(例如,容器化应用程序),其中包含功能代码和运行依赖项。该应用程序可独立运行,并通过特定的网络通信接口对外公开。接口部分可以是以图形元素呈现的逻辑节点,即其与其他行为树节点一样,可以在图形用户界面中进行拖放、连接和配置。具体实现时,每个逻辑节点可有一个参数面板,用于配置逻辑节点的参数,例如输入和输出参数。当然,这些输入输出参数也可以预先设置有默认值。During specific implementation, 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 outside world 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. During specific implementation, 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. When executing a logical node in the Behavior Tree, the user-configured input for the logical node is read and transferred to the implementation part of the action template, the corresponding application. After completing a specific operation such as model transformation, the result of the operation such as the transformed model will be converted back to the output of the logical node.
本实施例中,每个操作模板的接口部分和实现部分可单独存储。例如,节点库中可只存储接口部分即逻辑节点,其实现部分可存储在一节点服务模块中,本实施例中可称该节点服务模块为运行时(Runtime)。节点服务模块可位于一服务器中或者也可以位于本地。In this embodiment, the interface part and implementation part of each operation template can be stored separately. For example, only the interface part, that is, the logical node, may be stored in the node library, and 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.
可选地,上述逻辑节点遵循与主控制器的运行时交互的信息模型。这样,实现了OT域工作流与各种OT设备的主控制器之间的通信的标准化。Optionally, the above-mentioned logical nodes follow an information model for runtime interaction with the main controller. In this way, the standardization of communication between the OT domain workflow and the main controllers of various OT devices is realized.
此外,考虑到一功能块节点所对应的业务操作可能由不同的主体执行,例如可以是具体的某个物理设备,也可以是某个人员,还可能是其它的虚拟化名词资源,为描述方便,本文中将这些物理设备、人员、虚拟化名词资源等统称为资源,这些资源通常指现场能够执行工作流的作为各操作主体的资源。In addition, considering that the business operations corresponding to a function block node may be performed by different subjects, such as a specific physical device, a person, or other virtualized noun resources, for the convenience of description , 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.
具体实现时,可将作为操作执行主体的资源作为功能块节点的一个普通配置参数在创建 行为树时对所需的功能块节点进行相应的资源配置;或者,在创建功能块节点时就为功能块节点配置好作为操作执行主体的资源,这样创建行为树时便无需再对所需的功能块节点进行资源配置。又或者,为了方便对资源的管理,这些资源也可以资源节点的形式表示,且这些资源节点可以资源知识图谱的形式进行存储。所述资源知识图谱包括:各个资源节点,以及表示资源节点间关系的连线。例如,图1B中示出了一个例子中的一个资源知识图谱的示例图。如图1B所示,该资源知识图谱为一个工厂资源知识图谱,即描述了一工厂的真实系统组态。该工厂(F,Factory)节点具有工控机(IPC)节点,工控机(IPC)节点具有协作机器人(CR,Cooperative Robot)节点、PLC节点和条码扫描器(BCS,Bar Code Scanner)节点。其中,协作机器人(CR,Cooperative Robot)节点具有夹爪(CJ,Clamping Jaw)节点、力矩扳手(TW,Torque Wrench)节点和摄像头(CA,Camera)节点;PLC节点具有按钮(B,Button)节点和LED报警灯节点。当然,有些应用中,某类设备如协作机器人可能不止一个,则该类设备的各个设备可通过标号或型号等加以区分,此处不再一一赘述。In the specific implementation, 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. Or, in order to facilitate the management of resources, 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. 1B , 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, and 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. Among them, 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. Of course, in some applications, 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.
每个功能块节点可通过关联一个资源节点,将该功能块节点实例化为对应资源的操作。例如,某逻辑节点可通过关联一设备资源节点实例化为对应设备的操作。具体实现时,可为功能块节点设置一个资源头(Header),功能块节点所关联的资源会显示在该资源头中。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. For example, a logical node can be instantiated as an operation of a corresponding device by associating a device resource node. During specific implementation, a resource header (Header) may be set for the function block node, and resources associated with the function block node will be displayed in the resource header.
具体关联过程可有多种不同的实现方式。例如,可预先为每个资源节点关联对应的功能块节点,这样创建行为树时便直接拉取关联有对应资源的功能块节点即可,无需再临时配置。例如,图1C中示出了一个例子中为各资源节点关联了功能块节点的示例图。如图1C所示,针对图1B所示的资源知识图谱中示出的资源,分别关联有对应的功能块节点。其中,工控机(IPC)节点关联有按按钮(PB,Press Button)节点和在屏幕上显示对话框(DDB,Display Dialog Box on Screen)节点;协作机器人(CR,Cooperative Robot)节点关联有线性移动(LM,Linear Move)节点和关节移动(SM,Shutdown Mobile)节点;PLC节点关联有读I/O(RIO,Read I/O)节点和写I/O(WIO,Write I/O)节点;条码扫描器(BCS,Bar Code Scanner)节点关联有扫条码(SBC,Scan Bar Code)节点;夹爪(CJ,Clamping Jaw)节点关联有打开(O,Open)节点和抓取(Gr,Grab)节点;力矩扳手(TW,Torque Wrench)节点关联有拧(T,Twist)节点;摄像头(CA,Camera)节点关联有注册(R,Register)节点、标定(Cb,Calibration)节点、拍照(TP,Take Photo)节点、物体识别(OR,Object Recognition)节点;按钮(B,Button)节点关联有按按钮(PB,Press Button)节点;LED报警灯节点关联有开关打开(SO,Switch On)节点和开关关闭(SF,Switch Off)节点。The specific association process may be implemented in many different manners. For example, 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. For example, 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. Among them, 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, Register) node, calibration (Cb, Calibration) node, camera (TP, Take Photo) node, object recognition (OR, Object Recognition) node; button (B, Button) node is associated with button (PB, Press Button) node; LED alarm light node is associated with switch open (SO, Switch On) node and Switch off (SF, Switch Off) node.
或者,也可以不为功能块节点预先关联资源节点,而是在创建行为树时再为所需的功能块节点关联对应的资源节点。Alternatively, 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.
又或者,还可以同时存在预先关联有资源节点的功能块节点(可称为专用功能块节点)和未关联有资源节点的功能块节点(可称为通用功能块节点)。因为通用功能块节点虽然没有关联现场资源,但并不影响包括该功能块节点的行为树对应的工作流的模拟仿真。例如,可能某个协作机器人还没有采购,为了验证可实施性,可预先采用对应的通用功能块节点进行仿真,在确定具有可实施性时,再着手采购即可。Alternatively, there may also be 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). Because although the common function block node is not associated with on-site resources, it does not affect the simulation of the workflow corresponding to the behavior tree including the function block node. For example, a collaborative robot may not be purchased yet. In order to verify the feasibility, the corresponding general function block node can be used for simulation in advance. When it is confirmed that it is feasible, it can be purchased.
此外,本实施例中还可进一步包括如下的装饰器节点:In addition, this embodiment may further include the following decorator nodes:
三、装饰器节点3. Decorator node
装饰器节点主要用于装饰由合成器节点驱动的功能块节点,例如,可用于决定是否可以执行行为树中的分支甚至单个节点。可包括:重复(Rp,Repeat)节点、重试(Rt,Retry)节点、一次性(OS,One-Shot)节点、超时(TO,Timeout)节点、定时器(Tm,Timer)节点、取反(Iv,Inverter)节点、强制运行(FR,Force Run)节点、强制成功(FO,Force OK)节点、强制失败(FF,Force Failed)节点、以及监视(G,Guard)节点中的部分或全部。下面对其中的部分装饰器节点进行简要说明: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. Can include: repeat (Rp, Repeat) node, retry (Rt, Retry) node, one-time (OS, One-Shot) node, timeout (TO, Timeout) node, timer (Tm, Timer) node, negation (Iv, Inverter) node, forced operation (FR, Force Run) node, forced success (FO, Force OK) node, forced failure (FF, Force Failed) node, and some or all of monitoring (G, Guard) nodes . The following is a brief description of some of the decorator nodes:
1)取反节点,其可以有一个子节点,用于对子节点取反。若子节点失败,则返回成功;若子节点成功则返回失败。1) 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.
2)强制成功节点,其可以有一个子节点(如功能块节点),不论其子节点是否成功,该节点将始终返回成功。2) Mandatory success node, which can have a child node (such as a function block node), no matter whether its child node is successful or not, the node will always return success.
3)强制失败节点,其可以有一个子节点(如功能块节点),不论其子节点是否成功,该节点将始终返回失败。3) 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.
4)重复节点,其可以有一个子节点(如功能块节点),可重复执行其子节点固定次数。4) 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.
5)重试节点,其可以有一个子节点(如功能块节点),可触发其子节点最多N次,如果其子节点返回失败,则重试且次数减一,当重试次数为零时,返回成功;如果子节点返回成功,则中断循环,并且也返回成功。其中,N为正整数。5) 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. Wherein, N is a positive integer.
6)一次性节点,其可以有一个子节点,表示在工作流中其子节点只执行一次,在重启工作流前不再执行。6) 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.
7)超时节点,其可以有一个子节点,用于对其子节点(如功能块节点)的执行时间进行计时,当超过指定时间后退出执行(哪怕没有执行完)。7) 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).
8)定时器节点,其可以有一个子节点,在达到指定时间后,执行其子节点(如功能块节点)。8) 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.
9)强制运行节点,其可以有一个子节点,不论其子节点(如功能块节点)是否执行完毕, 都会强制返回正在运行状态。9) Forcibly run the node, which can have a child node, regardless of whether its child node (such as a function block node) is executed or not, it will be forced to return to the running state.
10)监视节点,其可以有至少一个子节点,用于监视其所有子节点的状态。当任意一个子节点执行错误时,即报错。当全部子节点都正常时,才返回正常。10) 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.
在其他实施方式中,装饰器节点也可以包含在流控制节点之内。即流控制节点可包括:主控制节点、合成器节点、装饰器节点中的全部或部分。In other implementations, 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.
本实施例中,各行为树节点可以图标的形式列举在图形用户界面上,用户可通过选择、拖拽图标添加到画布上的方式来确定创建工作流所需要的节点,进一步地,还可对节点进行必要的参数配置,如资源配置和/或输入输出参数配置。其中,若一个工作单元要执行的操作,即所需工作流中定义的操作不止一项,则对应该工作流的行为树可包括多个功能块节点,按照操作的顺序和相互关系,可设置对应的流控制节点,通过对所拖拽的节点进行相应的排放连接最终生成对应工作流的行为树。即所述行为树构建操作包括对行为树节点的添加及连线操作。进一步地,还可包括为所添加的功能块节点关联资源的操作。此外,还可包括:对行为树节点的输入输出参数的配置操作。In this embodiment, 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. Among them, if there is more than one operation to be performed by a work unit, that is, more than one operation defined in the required workflow, the behavior tree corresponding to the workflow can include multiple function block nodes. For the corresponding flow control node, 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.
步骤S12,响应于所述行为树的构建操作,生成对应一工作流的行为树,所述行为树中的逻辑节点被实例化为对应设备的操作。Step S12, in response to the construction operation of the behavior tree, generate a behavior tree corresponding to a workflow, and the logical nodes in the behavior tree are instantiated as operations of corresponding equipment.
本实施例中,可响应于所述行为树的构建操作,将各个行为树节点实例化,并建立各个实例化的行为树节点之间的连接关系。例如,通过执行本步骤,可将所添加的逻辑节点实例化为对应设备的操作。然后基于所述实例化的行为树节点之间的连接关系,生成对应一工作流的行为树。In this embodiment, 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.
具体实现时,上述行为树节点可存储在节点库中。此外,对于类似的应用场景,为了避免重复构建行为树的人力、时间等的浪费,对于用户已构建完成最好是已调试或运行成功的对应工作流或对应子工作流的行为树(或未实例化的行为树框架)作为一个工作流节点或子工作流节点进行存储。相应地,节点库中可进一步包括工作流(WF,WorkFlow)节点和子工作流(SWF,SubWorkFlow)节点。当用户需要构建类似的行为树时或构建包括该工作流或子工作流的行为树时,可选取对应的工作流节点或子工作流节点并对其进行必要的配置以得到用于实现所需工作流的行为树。During specific implementation, the aforementioned behavior tree nodes may be stored in a node library. In addition, for similar application scenarios, in order to avoid the waste of manpower and time for repeatedly building behavior trees, it is best for the user to build a behavior tree corresponding to a workflow or a corresponding sub-workflow that has been debugged or successfully run (or not The instantiated behavior tree framework) is stored as a workflow node or sub-workflow node. Correspondingly, the node library may further include a workflow (WF, WorkFlow) node and a sub-workflow (SWF, SubWorkFlow) node. When the user needs to build a similar behavior tree or build a behavior tree including the workflow or sub-workflow, he can select the corresponding workflow node or sub-workflow node and perform necessary configurations to obtain the required A behavior tree for a workflow.
图2A中示出了一个例子中构建质检生产线工作单元的行为树的示意图。图2B至图2S分别示出了一个例子中构建的部分行为树的示意图。上述表征工作流的行为树的构建过程中,功能块节点可以理解为以标签图的形式呈现,并且这种基于功能块标签图的行为树的构建需要流控制节点甚至以及装饰器节点的参与。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. In the process of constructing the behavior tree representing the workflow described above, 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.
此外,本发明实施例中还提供一种基于功能块类型图的行为树构建方法,该方法中,功能块节点以类型图的形式呈现。实际应用中,这两种行为树构建方法(也就是,基于功能块类型图的行为树构建方法和以标签图呈现功能块节点的的行为树的构建方法)可以共存,并且采用其中一种方式进行行为树构建时,另外一种方式也被同步构建。例如,当基于功能块类型图顺序连接两个功能块节点时,则同步构建基于功能块标签图的行为树时,会自动添加一个顺序节点,并为该顺序节点由上到下添加所述两个功能块节点。In addition, an embodiment of the present invention also provides a method for constructing a behavior tree based on a function block type diagram. In the method, the function block nodes are presented in the form of a type diagram. In practical applications, 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) can coexist, and one of them can be used When building behavior trees, 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.
基于功能块类型图的行为树构建方法可包括如下步骤(1)和步骤(2)。其中:The behavior tree construction method based on the function block type diagram may include the following steps (1) and (2). in:
步骤(1):接收用户在图形用户界面上基于功能块类型图进行的功能块节点的添加及连线操作。本申请中,类型图和标签图可以理解为是同一功能块节点的两种呈现方式,其功能都是用于实现一个对应的业务操作。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. In this application, 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.
图2T中示出了一个例子中基于功能块类型图的功能块节点构建行为树的示例。该示例中,示出了两个功能块节点F1、F2。如图2T所示,功能块类型图可包括: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. In this example, two function block nodes F1, F2 are shown. As shown in Figure 2T, the functional block type diagram may include:
1)用于指示业务操作的类型的功能块名称201。例如,螺丝紧固、图像采集、录制视频、视觉向导等。具体实现时,可在将功能块节点从节点库拖动到画布上时,默认功能块名称将由功能块定义的默认名称加上实例编号生成,图2U中以功能块节点中的逻辑节点为例,名称采用“逻辑节点1”和“逻辑节点2”来表示。功能块名称是可编辑的,但在当前的全局工作流中应该是唯一的。1) A function block name 201 used to indicate the type of business operation. For example, screw fastening, image capture, video recording, visual guidance, etc. In specific implementation, when dragging a function block node from the node library to the canvas, the default function block name will be generated by adding the default name of the function block definition plus the instance number. In Figure 2U, 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.
2)用于指示执行业务操作的资源的功能块头202。例如,执行螺丝紧固的资源为力矩扳手,执行图像采集的资源为监控器,执行录制视频的资源为监控器,执行视觉向导的资源为摄像头等。通常情况下,逻辑节点的功能块头202一般为物理资源,如图2U中所示的“物理节点1”和“物理节点2”。如前所述,功能块头202所指示的资源可以是预先关联的,也可以是在添加该功能块节点后通过资源配置完成对应资源的关联。2) The function block header 202 used to indicate the resource for executing the business operation. For example, the resource for tightening screws is a torque wrench, the resource for image collection is a monitor, the resource for video recording is a monitor, and the resource for visual guidance is a camera. Normally, 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. As mentioned above, 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.
3)用于触发链路连接的链路输入端口203和链路输出端口204。本实施例中,功能块节点的连线操作可包括:在两个功能块节点F1和F2之间的链路输出端口204和链路输入端口203之间的连线操作。通过该连线操作,在两个功能块节点F1和F2之间建立了链路连接205。本示例中的链路连接205为用于指示工作流运行过程的单向连接,例如,可指示两个功能块节点的执行顺序,即先执行左边的功能块节点F1再执行右边的功能块节点F2。3) A link input port 203 and a link output port 204 for triggering link connections. In this embodiment, the 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. Through this wiring operation, 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.
具体实现时,为了避免点选误差,提高功能块节点连线的灵敏度,在链路输入端口203的设定范围内具有一个敏感区206,这里称为第一敏感区,用于在该第一敏感区内接收到用户的点选及连线操作时,将连线端点定位到所述链路输入端口203上。同理,在链路输出端 口204的设定范围内也可具有一个敏感区(图中未示出),这里称为第二敏感区,用于在该第二敏感区内接收到用户的点选及连线操作时,将连线端点定位到所述链路输出端口204上。During specific implementation, in order to avoid click errors and improve the sensitivity of the connection of function block nodes, there is a sensitive area 206 within the setting range of the link input port 203, which is called the first sensitive area here, and is used to When the user's click and connection operations are received in the sensitive area, the connection endpoint is positioned on the link input port 203 . Similarly, there may also be a sensitive area (not shown in the figure) within the setting range of the link output port 204, which is referred to as the second sensitive area herein, and is used to receive the user's point in the second sensitive area. During the selection and connection operation, the connection endpoint is positioned on the link output port 204.
此外,本实施例中,响应于两个功能块节点F1和F2之间的链路输出端口204和链路输入端口203之间的连线操作,可进一步为相互连接的功能块节点F1和F2生成用于指示各功能块节点执行顺序的指令标签207,并将所述指令标签207标识在所述功能块节点F1和F2的功能块类型图上。如图中所示的1和2。此外,该指令标签205还可用于作为跳转指令的索引,以及作为说明文档的章节索引。In addition, in this embodiment, 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, the interconnected 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. In addition, the instruction tag 205 can also be used as an index of jump instructions and as a chapter index of the documentation.
4)用于表示所有数据输入端口的集合的输入数据组块208和用于表示所有数据输出端口的集合的输出数据组块209。本实施例中,可将功能块节点的数据输入端口的数量标识在输入数据组块208上,如功能块节点F1的输入数据组块208上的5和功能块节点F2的输入数据组块208上的2,如果数据输入端口的数量为零,则可以隐藏该输入数据组块208。同理可将功能块节点的数据输出端口的数量标识在输出数据组块209上,如功能块节点F1的输出数据组块209上的3和功能块节点F2的输出数据组块209上的1,如果数据输出端口的数量为零,则可以隐藏该输出数据组块209。本实施例中,如图2U至2X所示,通过点击所述输入数据组块208可展开或隐藏所述功能块节点的各个数据输入端口。通过点击所述输出数据组块209可展开或隐藏所述功能块节点的各个数据输出端口。其中,2U中示出了通过点击隐藏逻辑节点2的数据输入端口的示意图,2V中示出了通过点击隐藏逻辑节点1的数据输出端口的示意图,图2W中示出了同时显示各个数据输入端口和各个数据输出端口的示意图,图2X中示出了同时隐藏各个数据输入端口和各个数据输出端口的示意图。4) 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. In this embodiment, 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. Similarly, 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. In this embodiment, as shown in FIGS. 2U to 2X , 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 . Among them, 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, and FIG. 2W shows that each data input port is displayed simultaneously. and a schematic diagram of each data output port, FIG. 2X shows a schematic diagram of simultaneously hiding each data input port and each data output port.
5)用于触发数据传输的数据输入端口210和数据输出端口211。本实施例中,功能块节点的连线操作还可包括:在两个功能块节点F1和F2的对应数据之间的数据输出端口211和数据输入端口210之间的连线操作。通过该连线操作,在两个功能块节点F1和F2之间建立了数据连接212。本示例中的数据连接212用于指示两个功能块节点F1和F2之间的数据传输。如图2U所示,在功能块节点F1的输出数据1的数据输出端口211与功能块节点F2的输入数据2的数据输入端口210之间建立有数据连接212,即表示功能块节点F1的输出数据1作为功能块节点F2的输入数据2。具体实现时,与链路输入/输出端口相类似,为了避免点选误差,提高功能块节点连线的灵敏度,在数据输入端口210的设定范围内也可具有一个敏感区(图中未示出),这里称为第三敏感区,用于在该第三敏感区内接收到用户的点选及连线操作时,将连线端点定位到所述数据输入端口210上。同理,在数据输出端口211的设定范围内也可具有一个敏感区(图中未示出),这里称为第四敏感区,用于在该第四敏感区内接收 到用户的点选及连线操作时,将连线端点定位到所述数据输出端口211上。5) Data input port 210 and data output port 211 for triggering data transmission. In this embodiment, the 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. Through this wiring operation, 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. As shown in Figure 2U, 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. During specific implementation, similar to the link input/output port, in order to avoid point selection errors and improve the sensitivity of the connection of function block nodes, a sensitive area (not shown in the figure) 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. Similarly, 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. And during the connection operation, the connection endpoint is positioned on the data output port 211 .
6)功能块图标213,具体地,该功能块图标213可以为矢量图标213,用于形象化地表示功能块节点的业务操作。当然,在其他实施方式中,功能块图标213也可以省略。6) 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. Of course, in other implementation manners, the function block icons 213 may also be omitted.
7)用于承载上述各组成部分的功能块主体214。本实施例中,功能块节点的添加操作可包括:对功能块主体214的拖拽操作。7) Function block main body 214 for carrying the above components. In this embodiment, the adding operation of the function block node may include: dragging and dropping the function block main body 214 .
步骤(2):响应于所述功能块节点的添加及连线操作,构建对应一工作流的行为树。Step (2): In response to the addition and connection operations of the function block nodes, construct a behavior tree corresponding to a workflow.
在步骤(2)中,响应于所述功能块节点的添加及连线操作,可同步构建S12A中包括流控制节点和基于功能块标签图的功能块节点的行为树;同理,步骤S12A中,构建包括流控制节点和基于功能块标签图的功能块节点的行为树时,也可同步构建S12B中的基于所述功能块类型图的行为树。并且这两种行为树构建界面可根据用户的选择进行切换。例如,可根据用户对基于所述功能块类型图的行为树或基于功能块标签图的行为树的点选操作,对所述基于所述功能块类型图的行为树或基于功能块标签图的行为树进行切换显示。In 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.
进一步地,在其他实施方式中,无论是基于标签图形式的功能块节点还是基于类型图形式的功能块节点进行行为树的创建,均可以进一步为所述行为树中的至少一个功能块节点中的每个功能块节点添加并连接至少一个数据块。其中,每个数据块用于呈现与之连接的功能块节点的业务操作中的对应数据。数据块的类型可包括数据对、数据表、图像、视频和图表等中的部分或全部。Further, in other embodiments, no matter whether the behavior tree is created based on the function block node in the form of label diagram or the function block node in the form of type diagram, 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. Wherein, 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.
图2Y示出了本申请一个例子中为行为树中的四个功能块节点分别添加了数据块以及在各个数据块中显示相应数据的示意图。该例子中,以基于功能块类型图的行为树创建界面为例,如图2Y所示,本示例中,关联有监视器的录制生产视频的功能块节点添加有类型为实时视频数据(Live Data-Video)的数据块;关联有力矩扳手的螺丝紧固的功能块节点添加有类型为实时文本数据(Live Data-Text)的数据块和类型为实时图表数据(Live Data-Chart)的数据块;关联有监控器的机器人图像采集的功能块节点添加有类型为实时图像数据(Live Data-Image)的数据块;关联有摄像头的机器视觉向导的功能块节点添加有类型为实时视频数据(Live Data-Video)的数据块。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. In this example, take the behavior tree creation interface based on the function block type diagram as an example, as shown in Figure 2Y, in this example, 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.
如图2Y所示,每个数据块可包括用于指示数据块的类型的数据块标签215和具有用于呈现具体数据的显示区域的数据块体216。其中,数据块标签215可以是一个可拖动的标签,例如可以移动到画布中的任何位置。数据块体216的显示区域的大小可调,用于实时显示来自数据层的不同类型的数据。在每个数据块与对应的功能块节点之间建立有监控链路217,一个功能块可以映射到多个数据块。当工作流被执行时例如在运行时中执行时,功能块节点 对应的监控和输出数据将传输到对应的数据块以实时显示。As shown in FIG. 2Y, 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. Wherein, 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 node will be transferred to the corresponding data block for real-time display.
本实施例中的数据块为低代码数据块,其与其他SCADA和仪表板系统的区别在于:本实施例中的低代码数据块也是低代码元素,其可作为行为树的一部分,且其所有属性都可以在低代码逻辑中管理。其中,低代码数据块中的数据源来自于数据层,其可在运行时或云执行引擎中通过数据层提供的接口获取数据。数据源可以是时间序列数据库、RDBMS或NoSQL。低代码数据块是一个灵活的可扩展可适配的系统,可以适用于任何可以关联物理设备的功能块节点。总之,用于实现数据监控的数据块可以认为是数据层的可视化界面。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. Among them, 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.
进一步地,在其他实施方式中,无论是基于标签图形式的功能块节点还是基于类型图形式的功能块节点进行行为树的创建,均可以进一步为所述行为树中的至少一个功能块节点中的每个功能块节点添加并连接至少一个数据块。其中,每个数据块用于呈现与之连接的功能块节点的业务操作中的对应数据。数据块的类型可包括数据对、数据表、图像、视频和图表等中的部分或全部。Further, in other embodiments, no matter whether the behavior tree is created based on the function block node in the form of label diagram or the function block node in the form of type diagram, 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. Wherein, 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.
图2Y示出了本申请一个例子中为行为树中的四个功能块节点分别添加了数据块以及在各个数据块中显示相应数据的示意图。该例子中,以基于功能块类型图的行为树创建界面为例,如图2Y所示,本示例中,关联有监视器的录制生产视频的功能块节点添加有类型为实时视频数据(Live Data-Video)的数据块;关联有力矩扳手的螺丝紧固的功能块节点添加有类型为实时文本数据(Live Data-Text)的数据块和类型为实时图表数据(Live Data-Chart)的数据块;关联有监控器的机器人图像采集的功能块节点添加有类型为实时图像数据(Live Data-Image)的数据块;关联有摄像头的机器视觉向导的功能块节点添加有类型为实时视频数据(Live Data-Video)的数据块。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. In this example, take the behavior tree creation interface based on the function block type diagram as an example, as shown in Figure 2Y, in this example, 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.
如图2Y所示,每个数据块可包括用于指示数据块的类型的数据块标签215和具有用于呈现具体数据的显示区域的数据块体216。其中,数据块标签215可以是一个可拖动的标签,例如可以移动到画布中的任何位置。数据块体216的显示区域的大小可调,用于实时显示来自数据层的不同类型的数据。在每个数据块与对应的功能块节点之间建立有监控链路217,一个功能块可以映射到多个数据块。当工作流被执行时例如在运行时中执行时,功能块节点对应的监控和输出数据将传输到对应的数据块以实时显示。As shown in FIG. 2Y, 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. Wherein, 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.
本实施例中的数据块为低代码数据块,其与其他SCADA和仪表板系统的区别在于:本实施例中的低代码数据块也是低代码元素,其可作为行为树的一部分,且其所有属性都可以在低代码逻辑中管理。其中,低代码数据块中的数据源来自于数据层,其可在运行时或云执行引擎中通过数据层提供的接口获取数据。数据源可以是时间序列数据库、RDBMS或NoSQL。 低代码数据块是一个灵活的可扩展可适配的系统,可以适用于任何可以关联物理设备的功能块节点。总之,用于实现数据监控的数据块可以认为是数据层的可视化界面。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. Among them, 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.
此外,在其他实施方式中,该实施例可如图1中的虚线部分所示,进一步包括下述步骤S13。In addition, in other implementation manners, this embodiment may further include the following step S13 as shown by the dotted line in FIG. 1 .
步骤S13,对所述行为树进行解析,将所述行为树对应的工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个资源按照所述工作流执行操作。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.
具体实现时,该工作单元可具有一个主控制器,此时,运行时可位于该工作单元的主控制器上。相应地,资源中的设备资源可连接到该主控制器上,由该主控制器根据运行时的工作流控制与之连接的设备资源执行相应的操作;资源中的人力资源等可直接根据运行时的工作流提示执行相应的操作。In a specific implementation, the work unit may have a main controller, and in this case, the runtime may be located on the work unit's main controller. Correspondingly, 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.
本实施例中,行为树可以Markup标记语言例如XML(可扩展标记语言)来存储,并且可被XML Schema(XSD)原型来校验,以验证该行为树的XML格式是正确的。对所述行为树进行解析后可得到以节点链接汇编的形式表示的工作流,之后将该工作流编译并下载到对应的工作单元的主控制器的运行时上即可。In this embodiment, 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. After parsing the behavior tree, a workflow expressed in the form of node link assembly can be obtained, and then the workflow can be compiled and downloaded to the runtime of the main controller of the corresponding working unit.
此外,根据Gartner的定义,OT域通常指运营技术(Operational Technology,OT),其集合了硬件和软件,通过直接地监视和/或控制物理设备(称为OT设备),检测或触发企业中过程的变化或发生的事件。OT利用计算机监视或改变诸如工业控制系统(Industrial Control System,ICS)的物理状态。其中,工业控制系统是基于计算机实现的设施、系统和设备,用于远程监视和/或控制关键的工业过程,实现物理功能。“OT”这个词的叫法用于将工业控制系统和传统的信息技术(Information Technology,IT)系统在技术实现和功能上加以区分。In addition, according to Gartner's definition, 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). Among them, 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.
目前,市场上存在诸多IT低代码开发工具或平台。其中,部分工具针对物联网的使用场景,面向有经验的IT工程师,而OT工程师和初级IT工程师则难以理解其范式。而部分工具更适用于IT域低代码开发的使用场景,不能很好地适用于OT域。At present, there are many IT low-code development tools or platforms on the market. Among them, some tools are aimed at the use scenarios of the Internet of Things and are aimed at experienced IT engineers, while OT engineers and junior IT engineers have difficulty understanding their paradigms. Some tools are more suitable for low-code development scenarios in the IT domain, but not well suited for the OT domain.
本实施例中的上述工作流创建方法可以用于此OT域,作为一种OT域低代码开发方法。具体地,图1A所示工作流创建方法可以在OT域例如一OT域低代码开发平台上予以实现,相应地,所述工作流可以为OT域工作流;所述工作单元可以为OT域内的工作单元;所述设备可以为OT设备。这里,OT设备可包括但不限于:物联网(Internet of Things,IoT)设备、可编程逻辑控制器(Programmable Logic Controller,PLC)、机器人(Robotics)、人工过程(Manual Process)、工控机(Industrial Personal Computer,IPC)等。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. Specifically, the workflow creation method shown in FIG. 1A can be implemented in an OT domain, such as an OT domain low-code development platform. Correspondingly, 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. Here, 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.
此外,本申请实施例中,考虑到目前IT域、OT域融合在企业数字化转型过程中变得日趋重要。为了将IT域、OT域融合为ITOT系统,目前一个亟待解决的问题是企业如何采用 易于理解、而不是IT域编程的方式来收集OT域的数据并控制OT域过程。In addition, in the embodiment of the present application, it is considered that the integration of the IT domain and the OT domain is becoming increasingly important in the process of enterprise digital transformation. In order to integrate the IT domain and the OT domain into an ITOT system, an urgent problem to be solved at present is how to collect data in the OT domain and control the process of the OT domain in a way that is easy to understand instead of programming in the IT domain.
本实施例中的上述工作流创建方法可以用于此ITOT系统,作为一种可与IT域融合的OT域低代码开发方法。同样,图1A所示工作流创建方法可以在OT域例如一OT域低代码开发平台上予以实现,相应地,所述工作流可以为OT域工作流;所述工作单元可以为OT域内的工作单元。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. Similarly, 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域、OT域融合,可在图1A所示工作流创建方法的基础上,进一步包括:基于所述行为树生成一个微服务,以使得一IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。具体实现时,所述IT设备可直接调用或通过一个知识中台调用所述微服务。In addition, in order to realize the integration of the IT domain and the OT domain, on the basis of the workflow creation method shown in Figure 1A, 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. During specific implementation, the IT equipment can call the microservice directly or through a knowledge center.
在基于所述行为树生成一个微服务时,可基于所述行为树生成所述微服务的API。其中,所述API中的处理过程包括所述OT域工作流中各个操作,所述API的输入参数为所述OT域工作流的的输入端口获取的参数,所述API的输出参数为所述OT域工作流的输出端口输出的参数。When generating a microservice based on the behavior tree, an API of the microservice may be generated based on the behavior tree. Wherein, 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, and the output parameter of the API is the Parameters output by the output port of the OT domain workflow.
若要实现IT域能够调用微服务,则需要IT域能够获取微服务的信息。具体实现的方式包括但不限于以下两种:To realize that the IT domain can call the microservice, the IT domain needs to be able to obtain the information of the microservice. The specific implementation methods include but are not limited to the following two:
方式一、method one,
在方式一中,OT域的代码开发人员可将生成的各微服务的名称和IP地址通知IT域的代码开发人员,这样,IT域的代码开发人员在开发过程中可直接将各微服务的信息写入代码中,从而实现IT设备对微服务的调用。方式一比较适合微服务数量较少的场景。In method 1, 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.
方式二、Method two,
在方式二中,可采用注册、发现机制。即在所述知识中台上注册各微服务,以使得一IT域代码开发工具实现IT设备通过所述知识中台发现已连接的所述微服务。具体实现时,可利用一IT域代码开发工具通过代码开发实现IT域设备通过知识中台发现已连接的微服务。而完成微服务注册的装置可以是OT域微服务生成器或一个第三方装置。该第三方装置可以视为OT域低代码开发平台的一部分,或者在知识中台中实现。方式二比较适合微服务数量较多的场景。In mode 2, registration and discovery mechanisms can be used. That is, 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. In the specific implementation, 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设备可包括但不限于:制造运营管理(Manufacturing Operation Management,MOM)系统、制造执行系统(manufacturing execution system,MES)、企业资源计划(Enterprise Resource Planning,ERP)系统、企业服务总线(Enterprise Service Bus,ERP)、产品生命周期管理(Product Lifecycle Management,PLM)系统等。In this embodiment, 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.
本实施例中,由于IT域代码开发工具可通过编程实现IT设备通过一个知识中台调用微 服务而触发工作单元的主控制器的运行时执行OT域工作流,从而实现了IT域的代码开发平台对OT域流程的控制,即实现了IT域和OT域的融合。这里,微服务是OT域微服务生成器基于OT域行为树自动生成的,无需IT域的代码开发工具理解OT域工作流的细节,仅需获取微服务的标识(比如:名称)和IP地址即可,无需IT域的开发人员了解OT域设备和控制流程,容易实现和理解。In this embodiment, because 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. Here, 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.
本申请实施例可适用的领域包括但不限于:工业自动化(Industrial Automation),物流(Logistics),实验室(Laboratory),船舶电气(Maritime),智能电网(Smart Grid),电动汽车基础设施(Electric Vehicle Infrastructure),电动汽车(Electric Vehicle),楼宇自动化(Building Automation),智慧城市(Smart City),污水处理(Water Treatment),垃圾回收(Garbage Recycling)和智慧农业(Smart Farm)等。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. For the details not disclosed in the system embodiment of the present invention, please refer to the corresponding description in the method embodiment of the present invention. Here I won't repeat them one by one.
图3示出了本申请实施例中一种工作流创建系统的结构示意图。如图3所示,该系统可包括:节点库110、图形界面模块120和编辑处理模块130。Fig. 3 shows a schematic structural diagram of a workflow creation system in the embodiment of the present application. As shown in FIG. 3 , the system may include: a node library 110 , a graphical interface module 120 and an editing processing module 130 .
其中,节点库110中设置有用于构建行为树的行为树节点;所述行为树节点可包括:流控制节点和功能块节点。其中,一个行为树用于表征一个工作流,所述工作流用于定义一个工作单元要执行的操作。所述流控制节点用于实现工作流中的逻辑控制;所述功能块节点用于实现工作流中的业务操作,功能块节点可包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类资源如设备能够执行的操作,所述操作包括:动作、方法或技能。Wherein, 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. Wherein, 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.
在一个实施方式中,所述资源以资源节点的形式表示,且所有资源节点以资源知识图谱的形式关联存储;所述资源知识图谱包括:各个资源节点,以及表示资源节点间关系的连线。相应地,本实施例中可进一步包括:资源库150,用于以资源知识图谱的形式存储各个资源,每个资源能够执行至少一种业务操作。In one embodiment, 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. Correspondingly, 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.
在一个实施方式中,所述流控制节点可包括:主控制节点、逻辑控制节点和条件节点中的部分或全部;所述主控制节点可包括:开始节点、结束节点、转到节点、关键节点、停止节点、中止节点中的部分或全部。所述逻辑控制节点包括:顺序节点、反应性顺序节点、并行节点、工艺内质量控制节点、优先级节点、反应性优先级节点、是否条件判断节点、以及多分支选择节点中的部分或全部。In one embodiment, the flow control node may include: some or all of the main control node, logical 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.
在一个实施方式中,所述功能块节点还可进一步包括:手动节点、动态节点、延迟节点、以及空闲节点中的部分或全部。In one embodiment, the function block nodes may further include: some or all of manual nodes, dynamic nodes, delay nodes, and idle nodes.
在一个实施方式中,所述行为树节点进一步包括:装饰器节点,其可包括:重复节点、重试节点、一次性节点、超时节点、定时器节点、取反节点、强制运行节点、强制成功节点、强制失败节点、以及监视节点中的部分或全部。In one embodiment, 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.
在一个实施方式中,所述节点库110中的部分或全部功能块节点分别绑定有执行所述功能块节点对应的业务操作的资源。In one embodiment, 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.
图形界面模块120被配置为提供用户基于所述节点库中的行为树节点进行行为树构建的图形用户界面GUI。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.
其中,各行为树节点可以图标的形式列举在图形用户界面GUI上。Wherein, each behavior tree node can be listed on the graphical user interface GUI in the form of an icon.
编辑处理模块130被配置为响应于所述行为树的构建操作,生成对应一工作流的行为树,所述行为树中的逻辑节点被实例化为对应资源如设备的操作。具体实现时,编辑处理模块130可响应于所述行为树的构建操作,将各个行为树节点实例化,并建立各个实例化的行为树节点之间的连接关系;基于所述实例化的行为树节点之间的连接关系,生成对应一工作流的行为树。其中,实例化的功能块节点中的部分或全部关联有执行对应业务操作的资源。例如,通过该操作,逻辑节点被实例化为对应资源如设备的操作。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. During specific implementation, 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. Wherein, 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.
本实施例中,各行为树节点可以图标的形式列举在图形用户界面上,用户可通过选择、拖拽图标到画布上的方式来确定创建工作流所需要的节点,进一步地,还可对节点进行必要的参数配置,如资源配置和/或输入输出参数配置。其中,若一个工作单元要执行的操作,即所需工作流中定义的操作不止一项,则对应该工作流的行为树可包括多个逻辑节点,按照操作的顺序和相互关系,可设置对应的流控制节点,通过对所拖拽的节点进行相应的排放连接最终生成对应工作流的行为树。In this embodiment, 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. Among them, if there is more than one operation to be performed by a work unit, that is, more than one operation is defined in the required workflow, 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.
在一个实施方式中,所述构建操作可包括:添加功能块节点操作以及为所添加的功能块节点关联资源的操作。In one embodiment, 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.
与图1A所示方法相对应,本实施例中的工作流创建系统可进一步包括:解析部署模块140,其被配置为解析所述行为树,将所述行为树对应的工作流部署到对应的工作单元的主控制器的运行时上,以使得连接到该主控制器上的所述工作单元中的各个资源按照所述工作流执行操作。Corresponding to the method shown in FIG. 1A, 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.
图4A示出了本申请实施例提供的一种OT域低代码开发平台100,该平台100可用于实现图3所示的工作流创建系统。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 .
如前所述,目前还没有一种适用于OT域的低代码开发工具和平台。图4A所示的平台 100中,由于预先定义了各类OT设备能够执行操作的操作模板(可视为提供了OT域的能力),并基于操作模板构造了对应的逻辑节点,同时设置了用于构建OT域工作流的其他行为树节点,因此可以方便且快捷地创建对应OT域工作流的行为树,实现了适用于OT域的低代码开发。开发工程师无需对各类OT设备有深入的理解,即能实现OT域开发。As mentioned earlier, there is currently no single low-code development tool and platform suitable for the OT domain. In 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.
具体地,如图4A所示,OT域低代码开发平台100可包括:Specifically, as shown in FIG. 4A, the OT domain low-code development platform 100 may include:
一个OT域低代码开发工具10,该OT域低代码开发工具10可被配置为实现图3所示工作流创建系统中的图形界面模块120和编辑处理模块130,进一步地,还可实现图3所示工作流创建系统中的解析部署模块140。图3所示工作流创建系统中的节点库110可存储在一存储器上。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.
进一步地,如图4B所示,OT域低代码开发平台100还可包括上述工作单元的主控制器的运行时30。OT域低代码开发工具10可将生成的行为树对应的OT域工作流部署到工作单元的主控制器的运行时30上,以使得连接到该主控制器上的该工作单元中的各个OT设备按照OT域工作流执行操作。本实施例中的运行时30是一个解释器驱动的运行时系统,用于执行工作流并管理必要的相关流程。其基于一个拥有良好开源社区的解释器,例如,可基于Python和Google V8解释器,因此生态系统很容易建立,并且可以轻松扩展以使用其他解释器。针对连接有数据块的行为树,所述运行时可进一步将执行业务操作过程中获取的对应数据提供给对应的数据块进行显示。具体实现时,运行时30可将执行业务操作过程中获取的对应数据直接提供给对应的数据块进行显示或通过第三方设备提供给对应的数据块进行显示。本实施例中,所述运行时可预先利用标准的现场总线和设备协议接入现场总线和设备。具体实现时,该工作单元可具有一个主控制器,此时,运行时30可位于该工作单元的主控制器上。资源中的设备资源可连接到该主控制器上,由该主控制器根据运行时的工作流控制与之连接的设备资源执行相应的操作;资源中的人力资源等可直接根据运行时的工作流提示执行相应的操作。Further, as shown in FIG. 4B , 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. For the behavior tree connected with the data block, the runtime may further provide corresponding data obtained during the execution of the business operation to the corresponding data block for display. During specific implementation, 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. In this embodiment, the standard field bus and device protocols can be used in advance to access the field bus and devices during the runtime. In a specific implementation, 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.
图4A和图4B所示的OT域低代码开发平台100的组成仅涉及OT域。但IT域与OT域融合对于企业数字化转型已经变得越来越重要。需要实现的是企业如何采用一种易懂且非IT编程的方式来控制OT域的流程。图4C所示的OT域低代码开发平台100解决了如何通过IT域的代码开发平台300来控制OT域的流程。如图4C所示,OT域低代码开发平台100在图4B所示的结构基础上,还可进一步包括一个OT域微服务生成器20,其可基于OT域行为树生成微服务40。这样,IT域代码开发工具301即可通过编程实现IT设备通过一个知识中台200调用微服务40而触发工作单元的主控制器的运行时30执行OT域工作流。从而实现了IT域的代码开发平台300对OT域流程的控制,即实现了IT域和OT域的融合。这里,微服 务40是OT域微服务生成器20基于OT域行为树自动生成的,无需IT域的代码开发工具301理解OT域工作流的细节,仅需获取微服务40的标识(比如:名称)和IP地址即可,无需IT域的开发人员了解OT域设备和控制流程,容易实现和理解。The composition of the OT domain low-code development platform 100 shown in FIG. 4A and FIG. 4B only involves the OT domain. However, 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. As shown in FIG. 4C , on the basis of the structure shown in FIG. 4B , 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. In this way, 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. In this way, 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. Here, 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.
若要实现IT域能够调用微服务40,则需要IT域能够获取微服务40的信息。与图1A所示方法相对应,其可实现的方式包括但不限于以下两种:To realize that the IT domain can call the microservice 40 , it is required that the IT domain can obtain the information of the microservice 40 . Corresponding to the method shown in Figure 1A, its possible implementation methods include but are not limited to the following two:
方式一、method one,
在方式一中,OT域的代码开发人员可将生成的各微服务40的名称和IP地址通知IT域的代码开发人员,这样,IT域的代码开发人员在开发过程中可直接将各微服务40的信息写入代码中,从而实现IT设备对微服务40的调用。方式一比较适合微服务数量较少的场景。In mode 1, 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.
方式二、Method two,
在方式二中,可采用注册、发现机制。其中,可在知识中台200上注册各微服务40,这样IT域代码开发工具301则可通过代码开发实现IT域设备通过知识中台200发现已连接的微服务40。而完成微服务40注册的装置可以使OT域微服务生成器20或如图4D所示的一个第三方装置50。该第三方装置50可以视为OT域低代码开发平台100的一部分,或者在知识中台200中实现。方式二比较适合微服务数量较多的场景。通过在知识中台上注册微服务,更加有效地实现了IT设备对微服务的调用,加强了OT域和IT域的融合。In mode 2, registration and discovery mechanisms can be used. Among them, 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.
可选地,OT域微服务生成器20可基于OT域行为树生成微服务40的API,其中,API中的处理过程可包括OT域工作流中各个功能块的操作,API的输入参数为OT域工作流的的输入端口获取的参数,API的输出参数为OT域工作流的输出端口输出的参数。Optionally, 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.
本申请实施例提供的OT域低代码开发平台100在工业自动化领域的一个应用场景如图4E所示。低代码开发工具10在用户的操作下生成对应OT域工作流的行为树,该OT域工作流定义了图4E右侧所示的作为一个工作单元的生产线要执行的操作。基于该行为树生成对应的工作流发布到运行时30,以便由运行时30控制完成所述工作单元的生产线操作;同时可基于该行为树由微服务生成器20生成对应的微服务并注册到知识中台200,这样IT域的代码开发工具301便可通过知识中台200调用对应的微服务。用户可如图4E左下角GUI中所示通过拖拽编辑包括功能块节点在内的各个节点实现对OT域行为树的编辑,比如:首先通过知识中台200从数据库&服务器处获取所需的数据(比如:工件加工参数),控制整个工作单元的运行。这里的工作单元为一个生产线,生产线上包括机器、传送带、机械臂、人、PLC、AGB等。具体实现时,IT域的代码开发工具301也可和低代码开发工具10位于同一硬件设备上,例如同一台电脑上。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 . Based on the behavior tree, 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. As shown in the GUI in the lower left corner of Figure 4E, 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. During specific implementation, 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.
图5示出了本申请实施例提供的又一种工作流创建系统的结构示意图。如图5所示,该 系统可用于实施图1A中所示的方法,或实现图3中所示的工作流创建系统,或实现图4A至图4D中任一项所述的工作流创建系统,即OT域低代码开发平台100。其中,前述的OT域低代码开发工具10、OT域微服务生成器20、运行时30、第三方装置60均可实现为单独的各个硬件设备,比如:服务器、工作站、单片机或处理芯片。或者,这些装置在同一台硬件设备上实现,其作为软件程序存储在至少一个存储器中,通过至少一个处理器的调用来实现前述的OT域低代码开发方法。其中,节点库110和生成的各个微服务40可存储在至少一个存储器中。FIG. 5 shows a schematic structural diagram of another workflow creation system provided by the embodiment of the present application. As shown in Fig. 5, 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. Among them, 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. Alternatively, 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. Wherein, the node library 110 and each generated microservice 40 may be stored in at least one memory.
如图5所示,该系统可包括:至少一个存储器51、至少一个处理器52和至少一个显示器53。此外,还可以包括一些其它组件,例如通信端口(图5中未示出)等。这些组件通过总线54进行通信。As shown in FIG. 5 , the system may include: at least one memory 51 , at least one processor 52 and at least one display 53 . In addition, 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 .
其中,至少一个存储器51用于存储计算机程序。至少一个存储器51可包括计算机可读介质,例如随机存取存储器(RAM)。此外,至少一个存储器51还可存储操作系统等。操作系统包括但不限于:Android操作系统、Symbian操作系统、Windows操作系统、Linux操作系统等等。上述计算机存储程序可包括如下程序模块:节点库110、图形界面模块120、编辑处理模块130、解析部署模块140,可选地,还可包括OT域微服务生成器20、运行时30、第三方装置50。Among them, 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). In addition, 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.
至少一个处理器52用于调用至少一个存储器51中存储的计算机程序,执行本申请实施例中所述的工作流创建方法。至少一个处理器52可以为微处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、状态机等。其可通过所述通信端口进行数据的接收和发送。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.
至少一个显示器53用于显示图像用户界面。At least one display 53 is used to display a graphical user interface.
具体地,至少一个处理器52用于调用至少一个存储器51中存储的计算机程序使所述系统执行上述任一实施方式中的工作流创建方法中的操作。此外,通信接口用于实现与其他设备之间的通信,比如与知识中台200之间通信。Specifically, 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. In addition, the communication interface is used to implement communication with other devices, such as communication with the knowledge center 200 .
本申请实施例中,用于实现图形界面模块120、编辑处理模块130和解析部署模块140的OT域低代码开发工具10可以为轻量级的基于web的应用程序,可在工业现场(比如边缘设备或本地服务器)上实现,也可在云端(诸如AWS的公共云或诸如OpenStack的私有云)上实现。其可视化的工程范式源于功能块类型图(Function Block Typed Diagram,FBTD)。OT域微服务生成器20可使用现代的翻译编程语言来生成诸如RESTful或RPC的标准API。运行时30可简单地实现OT域工作流,并基于开源社区(比如Python)的生态系统提供开放性。运行时30可部署在诸如单板计算机(Single Board Computer,SBC)的嵌入式IoT设备 上。In the embodiment of the present application, 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). 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).
应当提及的是,本申请实施例可以包括具有不同于图5所示架构的装置。上述架构仅仅是示例性的,用于解释本申请实施例提供的工作流构建方法。It should be mentioned that 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.
此外,本申请实施例还提供一种IT域OT域融合系统,即ITOT系统,其可包括IT设备和本申请任一实施方式中的工作流创建系统。此外,还可进一步包括:如图4C和图4D所示的IT域的代码开发平台300。In addition, 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. In addition, it may further include: a code development platform 300 in the IT domain as shown in FIG. 4C and FIG. 4D .
本发明实施方式还提出了利用具有功能块类型图逻辑的低代码范式(FBTD,Function Block Typed Diagram)的合成器节点以控制工作流的技术方案。图6为本申请各实施例提供的工作流控制方法的示例性流程图。The embodiment of the present invention also proposes a technical solution of using a synthesizer node with a low-code paradigm (FBTD, Function Block Typed Diagram) to control the workflow. FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application.
如图6所示,该方法600包括:As shown in FIG. 6, the method 600 includes:
步骤601:基于用户在图形用户界面上的操作,确定合成器节点的类型,合成器节点包含适配于开始执行合成器节点的开始块、适配于结束执行合成器节点的结束块以及布置在开始块和所述结束块之间的复数条工作链路。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.
步骤602:基于合成器节点的类型,从复数条工作链路中确定出目的工作链路。Step 602: Based on the type of the combiner node, determine the target working link from the plurality of working links.
步骤603:基于目的工作链路,控制工作流的逻辑,其中工作流是基于包含合成器节点的行为树生成的。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.
合成器节点总是与开始块和结束块成对出现。起始块有一个可选的输入端口,以提供合成器表达式,从而可以根据合成器表达式选择目标工作链路。比如,根据合成器表达式的值选择目标工作链路,或基于合成器表达式限定的工作链路选择规则选择目标工作链路。结束块有一个称为结束逻辑值的可选的输入端口,并行类型的合成器节点使用结束逻辑值来确定它是逻辑与(AND)还是逻辑或(OR)。一组合成器对块可以包含两个或多个工作链路(即分支)。可选地,数据值块(DVB,Data Value Block)被附加到合成器对块中的每个工作链路之前,表示对应的工作链路的合成器表达式的触发值。在一个实施方式中,数据值块可以为对应的工作链路基于合成器表达式所生成的、用于选择对应工作链路的值。在另一个实施方式中,数据值块也可以是用于选择对应的工作链路的条件,其中该条件与基于合成器表达式所生成的值相关。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). Optionally, 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. In one embodiment, 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. In another embodiment, 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.
在一个实施方式中,复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作。In one embodiment, 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.
在一个实施方式中,所述基于用户在图形用户界面上的操作,确定合成器节点的类型包括:基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识 的合成器节点。In one embodiment, 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.
在以语义方式对类型进行标识的合成器节点中,在合成器节点的具有可视效果的图标中,以文字方式直接标识出合成器节点的类型。In the synthesizer node that identifies the type in a semantic manner, 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.
在呈现样式对类型进行标识的合成器节点中,利用不同的呈现样式对合成器节点的类型进行相应的标识,比如,在合成器节点的图标中,利用组成图标的不同的线型(比如,实线、虚线、间隔线等方式)对合成器节点的类型进行相应的标识。In the synthesizer node whose type is identified by the presentation style, 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.
在一个实施方式中,还包括:接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。In one embodiment, 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 an OT device.
在一个实施方式中,该方法还包括:基于所述行为树生成微服务,以使得IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。In one embodiment, 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 .
下面对采用不同类型的合成器节点实现对工作流的灵活控制进行示范性说明。The following demonstrates the implementation of flexible control of the workflow by using different types of synthesizer nodes.
图7A为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第一示意图。在图7A中,合成器节点70包括开始块71、结束块72以及布置在开始块71、结束块72之间的3条工作链路。第一条工作链路包括执行功能块节点73、第二条工作链路包括执行功能块节点74、第三条工作链路包括执行功能块节点75。开始块71可以包含用于提供合成表达式76的输入端;结束块72可以包含用于提供结束逻辑值77的输入端。每个功能块节点73、功能块节点74和功能块节点75,分别具有各自的数据值块。功能块节点73的数据值块78、功能块节点74的数据值块79和功能块节点75的数据值块80,可以布置在各自的对应的功能块节点之前。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. In FIG. 7A , 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 , and 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.
取决于合成器节点70的不同类型,可以实现从复数条工作链路中确定出目的工作链路的不同方式,因此实现了针对工作流的灵活控制。Depending on the different types of combiner nodes 70, different ways of determining the destination working link from the plurality of working links can be implemented, thus realizing flexible control for the workflow.
在一个实施方式中,合成器节点70的类型为并行选择(Pa,Parallel);从所述复数条工作链路中确定出目的工作链路包括:将复数条工作链路中的每条工作链路,都确定为目的工作链路,并开始执行目的工作链路;该方法还包括:经由结束块的输入端接收结束逻辑值;其中当结束逻辑值为逻辑与时,在复数条工作链路都执行完毕时,经由结束块结束执行所述 合成器节点;当结束逻辑值为逻辑或时,在复数条工作链路中出现至少一条工作链路执行完毕时,经由结束块结束执行所述合成器节点。In one embodiment, 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.
具体地,在图7A中,在合成器节点70的类型为并行选择时,无需为合成器节点70提供合成表达式76,相应地无需生成合成数据值块78~80,而且需要为合成器节点70提供结束逻辑值77。此时,第一条工作链路、第二条工作链路和第三条工作链路都被确定为目的工作链路。而且,第一条工作链路、第二条工作链路和第三条工作链路被分别执行(即同步执行功能块节点73、功能块节点74和功能块节点75),其中基于结束逻辑值77的值,确定何时停止执行合成器节点70。其中:当被提供的结束逻辑值77的值为逻辑与时,在第一条工作链路、第二条工作链路和第三条工作链路都执行完毕时,经由结束块72结束执行合成器节点70;当结束逻辑值77的值为逻辑或时,在第一条工作链路、第二条工作链路和第三条工作链路中出现至少一条工作链路执行完毕时,经由结束块72结束执行合成器节点70。Specifically, in FIG. 7A , 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 . At this time, the first working link, the second working link and the third working link are all determined as the target working links. Moreover, the first working link, the second working link and the third working link are executed respectively (i.e. synchronously executing function block node 73, function block node 74 and function block node 75), wherein based on the end logic value The value of 77 determines when to stop executing the compositor node 70. Wherein: when 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 .
在一个实施方式中,合成器节点的类型为多分支选择(SW,Switch),该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:确定每条工作链路被选中时的数据值块;基于所述合成表达式的计算结果,从所述复数条工作链路中选择符合对应的数据值块的目的工作链路。In one embodiment, 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.
具体地,在图7A中,在合成器节点70的类型为多分支选择时,需要提供合成表达式76,相应地需要基于合成表达式76生成或人工提供合成数据值块78~80,但是无需提供结束逻辑值77。比如,假定数据值块为用于选择对应的工作链路的条件,其中数据值块78为:“温度大于30度且小于50度”;数据值块79为:“温度大于50度”;数据值块80为:“温度小30度”。那么,基于合成表达式生成的具体温度,可以选择对应于数值块的具体分支。比如,当生成的温度为20度时,则选择对应于数据值块80的第三条工作链路。Specifically, in FIG. 7A , when the type of the combiner node 70 is 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. For example, assume that 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.
在一个实施方式中,合成器节点的类型为是否条件判断(ITE,If-Then-Else),该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式,所述合成表达式的结果包含逻辑真值或逻辑假值;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述合成表达式的结果为逻辑真值或逻辑假值,从所述复数条工作链路中确定对应的目的工作链路。In one embodiment, 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.
在这里,基于合成表达式生成的逻辑值为真或假,选择出预先设定的、对应于逻辑值的工作链路。Here, based on the logical value generated by the composite expression being true or false, a preset working link corresponding to the logical value is selected.
具体地,在图7A中,在合成器节点70的类型为是否条件判断时,需要提供可以生成逻辑值为真(Ture)或假(False)的合成表达式76,假定第一条工作链路对应于真,第二条工作链路对应于假。那么,当合成表达式76的值为真时,则选择并执行作为目的工作链路的第一条工作链路;当合成表达式76的值为假时,则选择并执行作为目的工作链路的第二条工作 链路。在一个实施方式中,所述合成器节点的类型为优先级(Pr,Priority(Fallback)),该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述合成表达式计算每条工作链路的数据值块;基于每条工作链路的数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序,从所述复数条工作链路中确定所述目的工作链路。数据值块可以为对应的工作链路基于合成器表达式所生成的、用于选择对应工作链路的值。也就是,基于合成器表达式生成的数据值块78、数据值块79和数据值块80可能并不相同(比如,各个执行链路的参数差异),此时基于每条工作链路的数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序,从所述复数条工作链路中确定所述目的工作链路,其中基于预先设定,数据值块的排序结果可以为从大到小排序或者从小到大排序,等等。举例,在图7A中,在合成器节点70的类型为优先级时,需要提供合成表达式76。假定第一条链路基于该合成表达式76生成的数据值块为15;假定第一条链路基于该合成表达式76生成的数据值块78为18,第二条链路基于该合成表达式76生成的数据值块79为20;第三条链路基于该合成表达式76生成的数据值块80为25。按照数据值块的大小顺序确定工作链路的优先级顺序,可见第三条链路具有最大的优先级(因为第三条链路的数据值块80在数据值块中最大),从而确定第三条链路为目的工作链路,并执行作为目的工作链路的第三条链路。Specifically, in FIG. 7A, when the type of combiner node 70 is a conditional judgment, it is necessary to provide a combination expression 76 that can generate a logical value of True (Ture) or False (False), assuming that the first working link corresponds to true and the second working link corresponds to false. Then, when the value of composite expression 76 is true, then select and execute the first working link as the destination working link; when the value of composite expression 76 is false, then select and execute as the destination working link The second working link of . In one embodiment, the type of the synthesizer node is priority (Pr, Priority (Fallback)), 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. That is, 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 According to the sorting result of the value block, 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. Assume that 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. Determine the priority sequence of the working link according to the size order of the data value block, it can be seen that the third link has the highest priority (because the data value block 80 of the third link is the largest in the data value block), thereby determining the first Three links are the destination working links, and the third link as the destination working link is executed.
在一个实施方式中,所述合成器节点的类型为反应性优先级(RPr,Reactive Priority(Fallback)),该方法还包括:经由所述开始块的输入端接收第一合成表达式和第二合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述第一合成表达式计算每条工作链路的第一数据值块;基于所述第二合成表达式计算每条工作链路的第二数据值块;基于所述复数条工作链路的第一数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序和每条工作链路的第二数据值块,从所述复数条工作链路中确定所述目的工作链路。In one embodiment, 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.
在图7A中,在合成器节点的具有可视效果的图标中,可以通过文字方式直接标识出合成器节点的类型(比如,在开始块71、结束块72的方框中以文字形式标识出类型)。图7B为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第二示意图。在图7B中,利用具有特定形状的间隔线简略地标识开始块71和结束块72,从而既可以直观标识合成器节点的类型,还可以节约画布的展示资源。In 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. In FIG. 7B , 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.
在一个实施方式中,在所述图形用户界面上的折叠框中,以折叠方式展示所述合成器节点,其中所述折叠框包括第一展示区域,所述第一展示区域适配于展示所述合成器节点的当前展示工作链路以及隐藏除当前展示工作链路之外的工作链路。在一个实施方式中,所述折叠框还包括第二展示区域、第三展示区域和切换控件;其中所述第二展示区域适配于展示所述当前展示工作链路的数据值块;所述第三展示区域适配于展示所述当前展示工作链路的标签;所述切换控件适配于在所述复数条工作链路中切换所述当前展示工作链路。In one embodiment, 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. In one embodiment, 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.
图7C为本申请各实施例提供的、具有折叠形态的FBTD逻辑的合成器的低代码范例的示意图。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.
在图7C中,折叠框90中包含第一展示区域88、第二展示区域83和第三展示区域81,其中第一展示区域88中展示有当前展示工作链路,该当前展示工作链路包含功能块节点85和功能块节点86。第二展示区域83中展示当前展示工作链路的数据值块。第三展示区域81中展示当前展示工作链路的标签。折叠框90中还包含在所述复数条工作链路中切换所述当前展示工作链路的切换控件84(比如,箭头形状)。第一展示区域88优选为可拉伸的,可以基于包含在其中的当前展示工作链路的长度进行拉伸。可见,折叠合成器是另一种类型的FBTD合成器低代码范例。合成器表达式结果的数据值块可以在标题行的新列中。而且,有左右箭头按钮可以在不同的分支之间切换。当前分支的数据值块将显示在数据值块列中。同时,合成器当前分支的当前标签将显示在工作指令标签索引块中。折叠合成器的大小可针对不同数量的功能块进行拉伸,这种范式提供了一种在低代码画布的有限区域中显示复杂逻辑的便捷方式。In FIG. 7C, 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. As you can see, 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.
本发明实施方式还提出了一种工作流执行方法,通过将标记语言格式的工作流进行解析后得到以节点链接汇编(Node Link Assembly,NLA)的形式表示的工作流,之后将该工作流编译并下载到对应的工作单元的主控制器的运行时上,即可执行工作流。节点链接汇编实施为一种通用的、运行时执行引擎逻辑汇编语言,优选用于执行基于事件的低代码工作流。The embodiment of the present invention also proposes a workflow execution method. After parsing the workflow in markup language format, the workflow expressed in the form of Node Link Assembly (NLA) is obtained, and then the workflow is compiled. And download 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:
(1)、节点链路结构(1), node link structure
节点链接结构是循环有向图数据结构的基本类型。大多数基于事件的低代码基于节点链路结构,例如IEC61499标准。本发明实施方式优选使用基于事件的行为树,因此将行为树解释到节点链接结构有利于执行。节点链接结构可以看作是低代码的汇编语言。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.
(2)、条件跳转节点(2), conditional jump node
条件跳转是节点链接汇编的解释器添加的单个节点,用于将基于事件的行为树转换 为以节点链接汇编的形式表示的工作流。条件跳转节点的功能是:当条件(通常是一个表达式)被满足时,跳转到被链接指定的任何地方。在汇编语言中,它是流控制需要的节点,并作为执行元素引入,以支持低代码解释。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.
(3)、反向逻辑流和向后向量(3), reverse logical flow and backward vector
反向逻辑流是一种基本的通用逻辑,它可以支持行为树或其他编程语言的所有反向逻辑。行为树低代码中的Loop(Repeat)或Retry等是反向逻辑流,可以被转换为加上反向事件跳转的条件跳转节点。跳过的功能块是反向向量的一部分。反向逻辑流和向后向量提供了一种元方法以将逻辑描述为节点链接汇编。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.
(4)、正向逻辑流和正向向量(4), forward logic flow and forward vector
正向逻辑流是一种基本的通用逻辑,可以支持行为树或其他编程语言的所有正向逻辑。行为树低代码中的条件/超时是正向逻辑流,可以转换为加上正向事件跳转的条件跳转节点。跳过的功能块是前向向量的一部分。正向逻辑流和正向向量提供了一种元方法以将逻辑描述为节点链接汇编。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.
(5)、嵌套和跳转(Goto)逻辑(5), nesting and jump (Goto) logic
后向向量和前向向量是逻辑完备性的,可以表示所有逻辑,比如复合逻辑(如If-Then-Else和Swtich-Case-Default)和其他行为树逻辑(如Fallback或Guard)。节点链接汇编的逻辑可以是低代码工作流的一部分,该工作流还包括顺序、并行和流控制节点(例如开始、结束和转到)。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).
(6)、空节点(6), empty node
空节点是一个没有实际功能的空功能块。它由节点链接汇编的解释器自动生成,用于内化和跳转目标的跳转逻辑。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.
图8为本申请实施例提供的工作流执行方法的示范性流程图。如图8所示,该方法800包括: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:
步骤801:获取标记语言格式的工作流,其中标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的。Step 801: Obtain the workflow in markup language format, wherein the workflow in markup language format is generated based on the behavior tree construction operation performed by the user on the graphical user interface.
在这里,标记语言格式的工作流可以是对以图2B~图2S为实例的、以标签图的形式呈现功能块节点的方式而构建的行为树的解析操作而得到的,还可以是对以图2T~图2Y或图7A~图7C为实例的、以类型图的形式呈现功能块节点而构建的行为树的解析操作而得到的。Here, 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 Figure 2B to Figure 2S , or it can be obtained by FIG. 2T-FIG. 2Y or FIG. 7A-FIG. 7C are examples obtained by analyzing the behavior tree constructed by presenting function block nodes in the form of a type diagram.
步骤802:将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构。Step 802: Convert the workflow in markup language format into a workflow topology implemented in node-link assembly.
在这里,以节点链接汇编实现的工作流拓扑结构,可以表征为通过节点链接汇编处 理的汇编过程而将语言格式的工作流转换成的机器指令序列。Here, the workflow topology implemented by node-link assembly can be characterized as the sequence of machine instructions converted from the workflow in language format by the assembly process of node-link assembly.
步骤803:执行工作流拓扑结构。Step 803: Execute the workflow topology.
比如,在设备的运行时中执行该机器指令序列,从而执行工作流。For example, the sequence of machine instructions is executed in the device's runtime to execute the workflow.
在一个实施方式中,步骤802中将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:确定包含在标记语言格式的工作流中的顺序执行结构和循环执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接;在顺序执行部分中、对应于循环执行结构在标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,第一条件跳转节点是基于循环执行结构确定的,第一条件跳转节点包含第一预设条件且链接到第一位置之前的第一功能块节点,第一条件跳转节点还基于顺序执行部分的执行顺序链接到第二功能块节点,其中在第一条件跳转节点处:当第一预设条件获得满足时,跳转到第一功能块节点;当第一预设条件不获得满足时,基于执行顺序执行第二功能块节点。可见,本发明实施方式通过条件跳转节点可以实现反向逻辑流,便于实现各种往前跳跃(比如,可以实现While、Repeat或Retry等)的循环逻辑。In one embodiment, in step 802, converting the workflow in markup language format into a workflow topology structure realized by node link assembly includes: determining the sequential execution structure and the loop execution structure included in the workflow in markup language format; The sequential execution structure determines the sequential execution part of the workflow topology, and the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the loop execution structure in the markup language format At the first position of the workflow position, add the first conditional jump node. The first conditional jump node is determined based on the loop execution structure. The first conditional jump node contains the first preset condition and is linked to the first position Before the first function block node, the first condition jump node is also linked to the second function block node based on the execution sequence of the sequential execution part, wherein at the first condition jump node: when the first preset condition is satisfied, Jump to the first function block node; when the first preset condition is not satisfied, execute the second function block node based on the execution order. It can be seen that in the embodiment of the present invention, the reverse logic flow can be realized through the conditional jump node, which facilitates the realization of various loop logics that jump forward (for example, while, Repeat, or Retry, etc. can be realized).
在一个实施方式中,步骤802中将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:确定包含在标记语言格式的工作流中的顺序执行结构和条件执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接;在顺序执行部分中、对应于条件执行结构在标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,第二条件跳转节点是基于条件执行结构确定的,第二条件跳转节点包含第二预设条件且链接到第二位置之后的第三功能块节点,第二条件跳转节点还基于顺序执行部分的执行顺序链接到第四功能块节点;其中在第二条件跳转节点处:当第二预设条件获得满足时,基于执行顺序执行第四功能块节点;当预设条件不获得满足时,跳转到第三功能块节点。因此,本发明实施方式通过条件跳转节点可以实现正向逻辑流,便于实现各种往后跳跃(比如,可以实现Condition或超时(timeout)等)的条件逻辑。In one embodiment, in step 802, converting the workflow in markup language format into a workflow topology implemented in node link assembly includes: determining the sequential execution structure and conditional execution structure included in the workflow in markup language format; The sequential execution structure determines the sequential execution part of the workflow topology, and the sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the conditional execution structure in the markup language format At the second position of the workflow position, add a second conditional jump node, the second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and is linked to the second position After the third function block node, the second condition jump node is also linked to the fourth function block node based on the execution sequence of the sequential execution part; wherein at the second condition jump node: when the second preset condition is satisfied, Executing the fourth function block node based on the execution order; jumping to the third function block node when the preset condition is not satisfied. Therefore, in the embodiment of the present invention, the forward logic flow can be realized through the conditional jump node, which facilitates the realization of various conditional logics for backward jumping (for example, Condition or timeout, etc.).
在一个实施方式中,步骤802中将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:确定包含在标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接;在顺序执行部分中、对应于循环执行结构在标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点, 第一条件跳转节点是基于循环执行结构确定的,第一条件跳转节点包含第一预设条件且链接到第一位置之前的第一功能块节点,第一条件跳转节点还基于顺序执行部分的执行顺序链接到第二功能块节点,其中在第一条件跳转节点处:当第一预设条件获得满足时,跳转到第一功能块节点;当第一预设条件不获得满足时,基于执行顺序执行第二功能块节点;在顺序执行部分中、对应于条件执行结构在标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,第二条件跳转节点是基于条件执行结构确定的,第二条件跳转节点包含第二预设条件且链接到第二位置之后的第三功能块节点,第二条件跳转节点还基于顺序执行部分的执行顺序链接到第四功能块节点;其中在第二条件跳转节点处:当第二预设条件获得满足时,基于执行顺序执行第四功能块节点;当预设条件不获得满足时,跳转到第三功能块节点。因此,本发明实施方式通过多个条件跳转节点分别实现正向逻辑流和反向逻辑流,便于实现各种往前跳跃的循环逻辑以及各种往后跳跃的条件逻辑。In one embodiment, converting the workflow in markup language format into a workflow topology implemented in node link assembly in step 802 includes: converting the workflow in markup language format into a workflow topology implemented in node link assembly includes : Determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, and the sequential execution part includes the function block nodes in the sequential execution structure and links between function block nodes; in the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in markup language format, add a first conditional jump node, the first conditional jump node is Determined based on the loop execution structure, the first conditional jump node contains the first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also linked to the first function block node based on the execution sequence of the sequential execution part Two function block nodes, where at the first condition jump node: when the first preset condition is met, jump to the first function block node; when the first preset condition is not met, execute the first function block node based on the execution sequence Two function block nodes; in the sequential execution part, at the second position corresponding to the position of the conditional execution structure in the workflow in markup language format, add a second conditional jump node, the second conditional jump node is based on the conditional execution structure Determined, the second conditional jump node contains the second preset condition and is linked to the third function block node after the second position, and the second conditional jump node is also linked to the fourth function block node based on the execution sequence of the sequential execution part ; Wherein at the second condition jump node: when the second preset condition is met, execute the fourth function block node based on the execution order; when the preset condition is not met, jump to the third function block node. Therefore, in the embodiment of the present invention, the forward logic flow and the reverse logic flow are realized respectively through a plurality of conditional jump nodes, which facilitates the realization of various forward jumping loop logics and various backward jumping conditional logics.
在一个实施方式中,步骤802中将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构包括:确定包含在标记语言格式的工作流中的并行执行结构;在顺序执行部分中、对应于并行执行结构在标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,至少一个并行执行部分汇聚到顺序执行部分的并行汇聚节点上,并行汇聚节点还基于顺序执行部分的执行顺序链接到第五功能块节点;并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到逻辑与节点的所有并行执行部分都执行完毕时,执行第五功能块节点;当汇聚到逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行第五功能块节点。可见,本发明实施方式还实现了针对并行逻辑的节点链接汇编处理。In one embodiment, in step 802, converting the workflow in markup language format into a workflow topology implemented in node link assembly includes: determining the parallel execution structure included in the workflow in markup language format; , corresponding to the third position of the workflow in the markup language format of the parallel execution structure, add at least one parallel execution part, at least one parallel execution part converges to the parallel sink node of the sequential execution part, and the parallel sink node is also based on the sequence The execution order of the execution part is linked to the fifth function block node; the parallel sink node is a logic AND node or a logic OR node, wherein when all parallel execution parts converged to the logic AND node are executed, the fifth function block node is executed; when The fifth function block node is executed when at least one parallel execution part of all the parallel execution parts converged to the logical OR node has been executed. It can be seen that the embodiment of the present invention also implements node link assembly processing for parallel logic.
在一个实施方式中,该方法800还包括:当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节点时,在逻辑与节点之前添加空节点,并将条件跳转节点跳转到空节点上,其中空节点用于指示不执行操作,空节点基于顺序执行部分的执行顺序链接到逻辑与节点。因此,通过自动设置空节点,保证了条件跳转节点与逻辑与节点至少存在一个功能块节点,从而避免了逻辑错误。In one embodiment, the method 800 further includes: when the first conditional jump node or the second conditional jump node jumps to a logical AND node, adding an empty node before the logical AND node, and jumping the conditional jump node Go to an empty node, where an empty node is used to indicate no operation, linked to a logical AND node based on the execution order of the sequential execution part. Therefore, by automatically setting empty nodes, it is ensured that there is at least one function block node between the conditional jump node and the logical AND node, thereby avoiding logic errors.
目前,节点链接汇编处理的主要问题包括:很难恢复到基于事件的行为树。为了解决这个问题,当调用节点链接汇编解释器时,进一步存储原始的基于行为树的工作流信息,并将其作为反向解释和上载的输入。在一个实施方式中,该方法800还包括:关联存储标记语言格式的工作流和工作流拓扑结构;接收适配于请求工作流拓扑结构的工作流的反向解释请求;响应于反向解释请求,基于关联存储提供标记语言格式的工作流。可见,本发明实施方式还可以快速提供标记语言格式的工作流,实现了一种反向解释, 解决了节点链接汇编处理后的工作流拓扑结构难以恢复到标记语言格式的工作流的技术问题。Currently, the main problems with node link assembly processing include: It is difficult to revert to event-based behavior trees. To solve this problem, when the node link assembly interpreter is invoked, the original behavior tree-based workflow information is further stored and used as an input for reverse interpretation and uploading. In one embodiment, the method 800 further includes: associating and storing the workflow in markup language format and the workflow topology; receiving a reverse interpretation request of a workflow adapted to the requested workflow topology; responding to the reverse interpretation request , which provides workflows in markup language format based on associative storage. It can be seen that the embodiment of the present invention can quickly provide a workflow in markup language format, realize a reverse interpretation, and solve the technical problem that the workflow topology after node link assembly processing is difficult to restore to the workflow in markup language format.
图9A为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第一示意图。FIG. 9A is a first schematic diagram of a workflow topology implemented by node link assembly provided by an embodiment of the present application.
在图9A中,在标记语言格式的工作流中指示其包含的顺序执行结构中,包括顺序执行的功能块FB1、功能块FB2、功能块FB3和功能块FB4。而且,在功能块FB2和功能块FB3之间,可以具有循环执行结构或条件执行结构。In FIG. 9A , in the sequential execution structure indicated in the workflow in the markup language format, the sequentially executed function block FB1 , function block FB2 , function block FB3 and function block FB4 are included. Furthermore, a loop execution structure or a conditional execution structure may be provided between the function block FB2 and the function block FB3.
经过节点链接汇编后,转换出的工作流拓扑结构包含功能块FB1、功能块FB2、功能块FB3、功能块FB4以及基于执行顺序确定的各个功能块之间的链接。而且,在功能块FB2和功能块FB3之间,还以条件跳转节点(JMPC)表征该循环执行结构或条件执行结构,该JMPC具有预定条件903。After node link compilation, the converted workflow topology includes function block FB1, function block FB2, function block FB3, function block FB4 and the links between each function block determined based on the execution sequence. Moreover, between the function block FB2 and the function block FB3 , the loop execution structure or the conditional execution structure is also characterized by a conditional jump node (JMPC), which has a predetermined condition 903 .
二选一地,JMPC可以经由反向逻辑流902链接到功能块FB2,或经由正向逻辑流901链接到功能块FB4。其中:Alternatively, JMPC may be linked to function block FB2 via reverse logic flow 902 , or to function block FB4 via forward logic flow 901 . in:
(1)、当JMPC经由反向逻辑流902链接到功能块FB2时:当运行到JMPC后,如果判断预定条件903得不到满足,则从JMPC顺序执行到功能块FB3,如果判断预定条件903得到满足时,则从JMPC返回到功能块FB2。(1), when JMPC is linked to function block FB2 via reverse logic flow 902: after running to JMPC, if judgment predetermined condition 903 does not get satisfied, then execute to function block FB3 from JMPC sequence, if judgment predetermined condition 903 When it is satisfied, return to function block FB2 from JMPC.
(2)、当JMPC经由正向逻辑流901链接到功能块FB4时:当运行到JMPC后,如果判断预定条件903得到满足,则从JMPC顺序执行到功能块FB3,如果判断预定条件903得不到满足时,则从JMPC跳跃到功能块FB4。(2), when JMPC is linked to function block FB4 via forward logical flow 901: after running to JMPC, if judge predetermined condition 903 to be satisfied, then execute to function block FB3 from JMPC order, if judge predetermined condition 903 must not When it is satisfied, jump from JMPC to function block FB4.
在本发明实施方式中,JMPC可以在预定条件903得到满足时执行跳转,还可以在预定条件903得不到满足时执行跳转。In the embodiment of the present invention, the JMPC may perform a jump when the predetermined condition 903 is satisfied, and may also perform a jump when the predetermined condition 903 is not satisfied.
图9B为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第二示意图。FIG. 9B is a second schematic diagram of a workflow topology implemented by node link assembly provided by the embodiment of the present application.
转换出的工作流拓扑结构包含开始节点S1和结束节点S2,还包含开始节点S1和结束节点S2之间的、基于箭头方向顺序执行的节点(包括多个功能块以及第一条件跳转节点J1、第二条件跳转节点J2)。第一条件跳转节点J1既基于顺序链接到功能块FB5,还基于反向逻辑耦合到功能块FB2。第二条件跳转节点J2既基于顺序链接到功能块FB7,还基于正向逻辑耦合到功能块FB9。The converted workflow topology structure includes the start node S1 and the end node S2, and also includes the nodes between the start node S1 and the end node S2, which are executed sequentially based on the direction of the arrow (including multiple function blocks and the first conditional jump node J1 , the second conditional jump node J2). The first conditional jump node J1 is not only linked to the function block FB5 based on the order, but also coupled to the function block FB2 based on the reverse logic. The second conditional jump node J2 is not only linked to the function block FB7 based on sequence, but also coupled to the function block FB9 based on forward logic.
当基于顺序执行到第一条件跳转节点J1后,如果第一条件跳转节点J1的条件92得到满足,跳转到第一条件跳转节点J1链接到的功能块FB2,如果第一条件跳转节点J1的条件92得不到满足时,基于箭头所示的执行顺序执行功能块FB5。When the first conditional jump node J1 is executed based on the sequence, if the condition 92 of the first conditional jump node J1 is satisfied, jump to the function block FB2 linked to the first conditional jump node J1, if the first conditional jump node J1 is linked to the function block FB2, if the first conditional jump node J1 is When the condition 92 of the transfer node J1 is not satisfied, the function block FB5 is executed based on the execution sequence shown by the arrow.
当基于顺序执行到第二条件跳转节点J2后,如果第二条件跳转节点J2的条件93得到满足,基于箭头所示的执行顺序执行功能块FB7,如果第二条件跳转节点J1的条件93 得不到满足时,跳转到功能块FB9。After the second conditional jump node J2 is executed based on the sequence, if the condition 93 of the second conditional jump node J2 is satisfied, the function block FB7 is executed based on the execution sequence shown by the arrow, and if the condition of the second conditional jump node J1 93 If not satisfied, jump to function block FB9.
图9C为本申请实施例提供的以节点链接汇编实现的工作流拓扑结构的第三示意图。FIG. 9C is a third schematic diagram of the workflow topology implemented by node link assembly provided by the embodiment of the present application.
转换出的工作流拓扑结构包含开始节点S1和跳转节点S3,还包含开始节点S1和跳转节点S3之间的、基于箭头方向顺序执行的节点(包括多个功能块以及第一条件跳转节点J1、第二条件跳转节点J2)。跳转节点S3用于无条件跳转到功能块FB1。第一条件跳转节点J1既基于顺序链接到功能块FB5,还基于反向逻辑耦合到功能块FB2。第二条件跳转节点J2既基于顺序链接到功能块FB7,还基于正向逻辑耦合到功能块FB9。The converted workflow topology includes the start node S1 and the jump node S3, and also includes the nodes between the start node S1 and the jump node S3, which are executed in sequence based on the direction of the arrow (including multiple function blocks and the first conditional jump node J1, the second conditional jump node J2). The jump node S3 is used to unconditionally jump to the function block FB1. The first conditional jump node J1 is not only linked to the function block FB5 based on the order, but also coupled to the function block FB2 based on the reverse logic. The second conditional jump node J2 is not only linked to the function block FB7 based on sequence, but also coupled to the function block FB9 based on forward logic.
当基于顺序执行到第一条件跳转节点J1后,如果第一条件跳转节点J1的条件92得到满足,跳转到功能块FB2,如果第一条件跳转节点J1的条件92得不到满足时,基于箭头所示的执行顺序执行功能块FB5。After the first conditional jump node J1 is executed based on the order, if the condition 92 of the first conditional jump node J1 is met, jump to the function block FB2, if the first conditional jump node J1’s condition 92 is not satisfied , the function block FB5 is executed based on the execution sequence shown by the arrow.
当基于顺序执行到第二条件跳转节点J2后,如果第二条件跳转节点J2的条件93得到满足,基于箭头所示的执行顺序执行功能块FB7,如果第二条件跳转节点J1的条件93得不到满足时,跳转到功能块FB9。After the second conditional jump node J2 is executed based on the sequence, if the condition 93 of the second conditional jump node J2 is satisfied, the function block FB7 is executed based on the execution sequence shown by the arrow, and if the condition of the second conditional jump node J1 When 93 is not satisfied, jump to function block FB9.
当基于顺序执行到跳转节点S3时,跳转到功能块FB1。When the sequence-based execution reaches the jump node S3, it jumps to the function block FB1.
可见,基于跳转节点S3实现了循环执行工作流逻辑。It can be seen that the loop execution workflow logic is realized based on the jump node S3.
图9D为本申请实施例提供的、以节点链接汇编实现的具有并行执行机构的工作流拓扑结构图。FIG. 9D is a topological structure diagram of a workflow with a parallel execution mechanism implemented by node link assembly provided by the embodiment of the present application.
转换出的工作流拓扑结构包含开始节点S1和跳转节点S3。工作流拓扑结构还包含开始节点S1和跳转节点S3之间的、基于箭头方向顺序执行的节点(包括多个功能块以及条件跳转节点J3、条件跳转节点J4、并行汇聚节点A1、并行汇聚节点A2和空节点L)。跳转节点S3用于无条件跳转到功能块98。The converted workflow topology includes start node S1 and jump node S3. The workflow topology also includes nodes between the start node S1 and the jump node S3, which are executed sequentially based on the direction of the arrow (including multiple function blocks and conditional jump nodes J3, conditional jump nodes J4, parallel sink nodes A1, parallel sink node A2 and empty node L). The jump node S3 is used to unconditionally jump to the function block 98 .
执行完功能块98后,除了包含条件跳转节点J3的主干路(图中最上面一行箭头所示的执行方向)之外,还具有自功能块94开始到功能块95的第一并行执行结构。该第一并行执行结构执行完毕功能块94后,进一步具有自功能块96开始到功能块97结束的第二并行执行结构。第一并行执行结构、第二并行执行结构和主干路最终汇聚于并行汇聚节点A1。After executing function block 98, in addition to including the trunk road of conditional jump node J3 (execution direction shown by the top row of arrows in the figure), there is also a first parallel execution structure from function block 94 to function block 95 . After the first parallel execution structure executes the function block 94, it further has a second parallel execution structure starting from the function block 96 and ending with the function block 97. The first parallel execution structure, the second parallel execution structure and the main road finally converge at the parallel sink node A1.
当并行汇聚节点A1实施为逻辑与节点时:第一并行执行结构、第二并行执行结构和主干路(主干路也视为一种并行执行结构)都执行完毕时,才执行并行汇聚节点A1的下一顺序节点。当并行汇聚节点A1实施为逻辑或节点时:第一并行执行结构、第二并行执行结构和主干路(主干路也视为一种并行执行结构)中有一路执行完毕时,即执行并行汇聚节点A1的下一顺序节点。When the parallel sink node A1 is implemented as a logical AND node: the first parallel execution structure, the second parallel execution structure and the main road (the main road is also regarded as a parallel execution structure) are all executed, then the parallel sink node A1 is executed. next sequential node. When the parallel sink node A1 is implemented as a logical OR node: when one of the first parallel execution structure, the second parallel execution structure, and the trunk road (the trunk road is also regarded as a parallel execution structure) is executed, the parallel sink node is executed The next sequential node of A1.
当条件跳转节点J4跳跃到实施为逻辑与节点的并行汇聚节点A2时,节点链接汇编 解释器自动在并行汇聚节点A2之前的、最邻近位置处添加空节点L1,并将条件跳转节点J4跳转到空节点L1上,其中空节点L1用于指示不执行操作,空节点L1基于顺序执行部分的执行顺序链接到并行汇聚节点A2。When the conditional jump node J4 jumps to the parallel sink node A2 implemented as a logical AND node, the node link assembly interpreter automatically adds an empty node L1 at the nearest adjacent position before the parallel sink node A2, and transfers the conditional jump node J4 Jump to the empty node L1, where the empty node L1 is used to indicate not to execute the operation, and the empty node L1 is linked to the parallel sink node A2 based on the execution sequence of the sequential execution part.
可见,通过自动设置空节点,保证了条件跳转节点与逻辑与节点之间至少存在一个功能块节点,从而避免了逻辑错误。It can be seen that by automatically setting empty nodes, it is ensured that there is at least one function block node between the conditional jump node and the logic AND node, thereby avoiding logic errors.
图10为本申请各实施例提供的工作流执行装置的示范性结构图。工作流执行装置700包括:获取模块701,用于获取标记语言格式的工作流,其中标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的;转换模块702,用于将标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构;执行模块703,用于执行工作流拓扑结构。FIG. 10 is an exemplary structural diagram of a workflow execution device provided by various embodiments of the present application. The workflow execution device 700 includes: an acquisition module 701, configured to acquire a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface; a conversion module 702, configured to convert the workflow in the markup language format into a workflow topology implemented in node link assembly; an execution module 703, configured to execute the workflow topology.
在一个实施方式中,转换模块702,用于确定包含在标记语言格式的工作流中的顺序执行结构和循环执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接;在顺序执行部分中、对应于循环执行结构在标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,第一条件跳转节点是基于循环执行结构确定的,第一条件跳转节点包含第一预设条件且链接到第一位置之前的第一功能块节点,第一条件跳转节点还基于顺序执行部分的执行顺序链接到第二功能块节点,其中在第一条件跳转节点处:当第一预设条件获得满足时,跳转到第一功能块节点;当第一预设条件不获得满足时,基于执行顺序执行第二功能块节点。In one embodiment, the conversion module 702 is configured to determine the sequence execution structure and the loop execution structure contained in the workflow in the markup language format; determine the sequence execution part of the workflow topology based on the sequence execution structure, and the sequence execution part includes the sequence The function block nodes in the execution structure and the links between the function block nodes; in the sequential execution part, corresponding to the first position of the loop execution structure in the workflow in markup language format, add a first conditional jump node, The first conditional jump node is determined based on the loop execution structure. The first conditional jump node contains the first preset condition and is linked to the first function block node before the first position. The first conditional jump node is also based on sequential execution Part of the execution sequence is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is met, jump to the first function block node; when the first preset condition is not met , the second function block node is executed based on the execution order.
在一个实施方式中,转换模块702,用于确定包含在标记语言格式的工作流中的顺序执行结构和条件执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接;在顺序执行部分中、对应于条件执行结构在标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,第二条件跳转节点是基于条件执行结构确定的,第二条件跳转节点包含第二预设条件且链接到第二位置之后的第三功能块节点,第二条件跳转节点还基于顺序执行部分的执行顺序链接到第四功能块节点;其中在第二条件跳转节点处:当第二预设条件获得满足时,基于执行顺序执行第四功能块节点;当预设条件不获得满足时,跳转到第三功能块节点。In one embodiment, the conversion module 702 is used to determine the sequential execution structure and the conditional execution structure contained in the workflow in the markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, and the sequential execution part includes the sequence Execute the function block nodes in the structure and the links between the function block nodes; in the sequential execution part, at the second position corresponding to the position of the conditional execution structure in the workflow in markup language format, add a second conditional jump node, The second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and is linked to the third function block node after the second position, and the second conditional jump node is also based on sequential execution The execution order of the part is linked to the fourth function block node; wherein at the second condition jump node: when the second preset condition is met, execute the fourth function block node based on the execution order; when the preset condition is not met , jump to the third function block node.
在一个实施方式中,转换模块702,用于确定包含在标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;基于顺序执行结构确定工作流拓扑结构的顺序执行部分,顺序执行部分包括顺序执行结构中的功能块节点以及功能块节点之间的链接; 在顺序执行部分中、对应于循环执行结构在标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,第一条件跳转节点是基于循环执行结构确定的,第一条件跳转节点包含第一预设条件且链接到第一位置之前的第一功能块节点,第一条件跳转节点还基于顺序执行部分的执行顺序链接到第二功能块节点,其中在第一条件跳转节点处:当第一预设条件获得满足时,跳转到第一功能块节点;当第一预设条件不获得满足时,基于执行顺序执行第二功能块节点;在顺序执行部分中、对应于条件执行结构在标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,第二条件跳转节点是基于条件执行结构确定的,第二条件跳转节点包含第二预设条件且链接到第二位置之后的第三功能块节点,第二条件跳转节点还基于顺序执行部分的执行顺序链接到第四功能块节点;其中在第二条件跳转节点处:当第二预设条件获得满足时,基于执行顺序执行第四功能块节点;当预设条件不获得满足时,跳转到第三功能块节点。In one embodiment, the conversion module 702 is used to determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in the markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, the sequence The execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in markup language format, add the first condition Jump node, the first condition jump node is determined based on the loop execution structure, the first condition jump node contains the first preset condition and is linked to the first function block node before the first position, the first condition jump node Also link to the second function block node based on the execution sequence of the sequential execution part, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when the first preset When the condition is not met, the second function block node is executed based on the execution order; in the sequential execution part, at the second position corresponding to the position of the conditional execution structure in the workflow in markup language format, a second conditional jump node is added, The second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and is linked to the third function block node after the second position, and the second conditional jump node is also based on sequential execution The execution order of the part is linked to the fourth function block node; wherein at the second condition jump node: when the second preset condition is met, execute the fourth function block node based on the execution order; when the preset condition is not met , jump to the third function block node.
在一个实施方式中,转换模块702,用于确定包含在标记语言格式的工作流中的并行执行结构;在顺序执行部分中、对应于并行执行结构在标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,至少一个并行执行部分汇聚到顺序执行部分的并行汇聚节点上,并行汇聚节点还基于顺序执行部分的执行顺序链接到第五功能块节点;并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到逻辑与节点的所有并行执行部分都执行完毕时,执行第五功能块节点;当汇聚到逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行第五功能块节点。In one embodiment, the conversion module 702 is configured to determine the parallel execution structure included in the workflow in the markup language format; in the sequential execution part, the third corresponding to the position of the parallel execution structure in the workflow in the markup language format position, add at least one parallel execution part, at least one parallel execution part converges to the parallel sink node of the sequential execution part, and the parallel sink node is also linked to the fifth function block node based on the execution sequence of the sequential execution part; the parallel sink node is logic AND node or logical OR node, wherein when all the parallel execution parts converged to the logical AND node are executed, the fifth function block node is executed; when at least one parallel execution part is executed in all the parallel execution parts converged to the logical OR node When finished, the fifth function block node is executed.
在一个实施方式中,转换模块702,用于当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节点时,在逻辑与节点之前添加空节点,并将条件跳转节点跳转到空节点上,其中空节点用于指示不执行操作,空节点基于顺序执行部分的执行顺序链接到逻辑与节点。In one embodiment, the conversion module 702 is configured to add an empty node before the logical AND node when the first conditional jump node or the second conditional jump node jumps to the logical AND node, and jump the conditional jump node Go to an empty node, where an empty node is used to indicate no operation, linked to a logical AND node based on the execution order of the sequential execution part.
在一个实施方式中,还包括反向解释模块704,用于关联存储标记语言格式的工作流和工作流拓扑结构;接收适配于请求工作流拓扑结构的工作流的反向解释请求;响应于反向解释请求,基于关联存储提供标记语言格式的工作流。In one embodiment, it also includes a reverse interpretation module 704, which is used for associating and storing the workflow in markup language format and the workflow topology; receiving the reverse interpretation request of the workflow adapted to the requested workflow topology; responding Inversely interpret requests and provide workflows in markup language format based on associative storage.
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机可读代码,计算机可读代码在被处理器执行时,使处理器执行前述的工作流执行方法。另外,本申请实施例还提供一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行本申请实施例中的工作流执行方法中的步骤。In addition, the embodiment of the present application also provides a computer-readable storage medium, on which computer-readable codes are stored, and when the computer-readable codes are executed by the processor, the processor executes the aforementioned workflow execution method. In addition, an embodiment of the present application further provides 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 processing The controller executes the steps in the workflow execution method in the embodiment of the present application.
图11为本申请各实施例提供的、具有存储器-处理器架构的工作流执行装置的示范性结 构图。工作流执行装置500包括:至少一个存储器501和至少一个处理器502。至少一个处理器502用于调用至少一个存储器501中存储的计算机程序,执行本申请实施例中所述的工作流执行方法。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.
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的计算机可读代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的计算机可读代码。此外,还可以通过基于计算机可读代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的计算机可读代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于计算机可读代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。本实施例中,计算机可读介质的实施例包括但不限于软盘、CD-ROM、磁盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、存储器芯片、ROM、RAM、ASIC、配置的处理器、全光介质、所有磁带或其他磁性介质,或计算机处理器可以从中读取指令的任何其他介质。此外,各种其它形式的计算机可读介质可以向计算机发送或携带指令,包括路由器、专用或公用网络、或其它有线和无线传输设备或信道,例如可以由通信网络从服务器计算机上或云上下载计算机可读指令。指令可以包括任何计算机编程语言的代码,包括C、C++、C语言、Visual Basic、java和JavaScript。Specifically, 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. In addition, 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. It is also possible to write the computer-readable code read from the storage medium into a memory provided in an expansion board inserted into the computer or in a memory provided in an expansion unit connected to the computer, and then based on the computer-readable code The instruction causes the CPU installed on the expansion board or the expansion unit to perform some or all of the actual operations, so as to realize the functions of any one of the above-mentioned embodiments. In this embodiment, 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. In addition, 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.
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。It should be noted that not all the steps and modules in the above processes and system structure diagrams are necessary, and some steps or modules can be ignored according to actual needs. The execution order of each step is not fixed and can be adjusted as required. The system structures described in the above embodiments may be physical structures or logical structures, that is, some modules may be realized by the same physical entity, or some modules may be realized by multiple physical entities, or may be realized by multiple Certain components in individual devices are implemented together.
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the scope of the present invention. within the scope of protection.

Claims (17)

  1. 工作流执行方法(800),其特征在于,包括:The workflow execution method (800), is characterized by comprising:
    获取标记语言格式的工作流,其中所述标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的(801);Obtaining a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface (801);
    将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构(802);Converting the workflow in the markup language format into a workflow topology implemented in Node Link Assembly (802);
    执行所述工作流拓扑结构(803)。The workflow topology is executed (803).
  2. 根据权利要求1所述的工作流执行方法(800),其特征在于,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构(802)包括:The workflow execution method (800) according to claim 1, characterized in that said converting the workflow in markup language format into a workflow topology (802) realized by node link assembly comprises:
    确定包含在所述标记语言格式的工作流中的顺序执行结构和循环执行结构;determining a sequential execution structure and a loop execution structure included in the workflow in the markup language format;
    基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
    在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点。In the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in the markup language format, a first conditional jump node is added, and the first conditional jump node is based on As determined by the loop execution structure, the first conditional jump node contains a first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also based on the The execution sequence of the sequential execution part is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when When the first preset condition is not satisfied, execute the second function block node based on the execution sequence.
  3. 根据权利要求1所述的工作流执行方法(800),其特征在于,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构(802)包括:The workflow execution method (800) according to claim 1, characterized in that said converting the workflow in markup language format into a workflow topology (802) realized by node link assembly comprises:
    确定包含在所述标记语言格式的工作流中的顺序执行结构和条件执行结构;determining a sequential execution structure and a conditional execution structure to be included in the workflow in the markup language format;
    基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
    在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, a second conditional jump node is added, the second conditional jump node is based on As determined by the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node is also based on the The execution order of the sequential execution part is linked to a fourth function block node; wherein at the second condition jump node: when the second preset condition is satisfied, the fourth function block is executed based on the execution order A node; when the preset condition is not satisfied, jump to the third function block node.
  4. 根据权利要求1所述的工作流执行方法(800),其特征在于,所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构(802)包括:The workflow execution method (800) according to claim 1, characterized in that said converting the workflow in markup language format into a workflow topology (802) realized by node link assembly comprises:
    确定包含在所述标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;determining a sequential execution structure, a loop execution structure, and a conditional execution structure included in the workflow in the markup language format;
    基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;determining a sequential execution part of the workflow topology based on the sequential execution structure, the sequential execution part including function block nodes in the sequential execution structure and links between the function block nodes;
    在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点;In the sequential execution part, at the first position corresponding to the position of the loop execution structure in the workflow in the markup language format, a first conditional jump node is added, and the first conditional jump node is based on As determined by the loop execution structure, the first conditional jump node contains a first preset condition and is linked to the first function block node before the first position, and the first conditional jump node is also based on the The execution sequence of the sequential execution part is linked to the second function block node, wherein at the first condition jump node: when the first preset condition is satisfied, jump to the first function block node; when When the first preset condition is not satisfied, execute the second function block node based on the execution sequence;
    在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。In the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, a second conditional jump node is added, the second conditional jump node is based on As determined by the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node is also based on the The execution order of the sequential execution part is linked to a fourth function block node; wherein at the second condition jump node: when the second preset condition is satisfied, the fourth function block is executed based on the execution order A node; when the preset condition is not satisfied, jump to the third function block node.
  5. 根据权利要求1-4中任一项所述的工作流执行方法(800),其特征在于,The workflow execution method (800) according to any one of claims 1-4, characterized in that,
    所述将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构(802)包括:The converting the workflow in the markup language format into a workflow topology implemented in node link assembly (802) includes:
    确定包含在所述标记语言格式的工作流中的并行执行结构;determining a parallel execution structure to be included in the workflow in the markup language format;
    在所述顺序执行部分中、对应于所述并行执行结构在所述标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,所述至少一个并行执行部分汇聚到所述顺序执行部分的并行汇聚节点上,所述并行汇聚节点还基于所述顺序执行部分的执行顺序链接到第五功能块节点;所述并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到所述逻辑与节点的所有并行执行部分都执行完毕时,执行所述第五功能块节点;当汇聚到所述逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行所述第五功能块节点。At a third position in the sequential execution part corresponding to the position of the parallel execution structure in the workflow in the markup language format, at least one parallel execution part is added, the at least one parallel execution part converges to the On the parallel sink node of the sequential execution part, the parallel sink node is also linked to the fifth function block node based on the execution order of the sequential execution part; the parallel sink node is a logical AND node or a logical OR node, wherein when converged to Execute the fifth function block node when all the parallel execution parts of the logical AND node are executed; when at least one parallel execution part of all the parallel execution parts converged to the logical OR node is executed, execute the fifth function block node Describe the fifth function block node.
  6. 根据权利要求5所述的工作流执行方法(800),其特征在于,还包括:The workflow execution method (800) according to claim 5, further comprising:
    当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节点时,在所述逻辑与节点之 前添加空节点,并将所述条件跳转节点跳转到所述空节点上,其中所述空节点用于指示不执行操作,所述空节点基于所述顺序执行部分的执行顺序链接到所述逻辑与节点。When the first conditional jump node or the second conditional jump node jumps to a logical AND node, an empty node is added before the logical AND node, and the conditional jump node is jumped to the empty node, Wherein the empty node is used to indicate not to perform an operation, and the empty node is linked to the logical AND node based on the execution order of the sequential execution part.
  7. 根据权利要求1-4中任一项所述的工作流执行方法(800),其特征在于,还包括:The workflow execution method (800) according to any one of claims 1-4, further comprising:
    关联存储所述标记语言格式的工作流和所述工作流拓扑结构;associatively storing the workflow in markup language format and the workflow topology;
    接收适配于请求所述工作流拓扑结构的工作流的反向解释请求;receiving a reverse interpretation request adapted to a workflow requesting said workflow topology;
    响应于所述反向解释请求,基于所述关联存储提供所述标记语言格式的工作流。In response to the reverse interpretation request, the workflow in markup language format is provided based on the associative store.
  8. 工作流执行装置(700),其特征在于,包括:The workflow execution device (700), is characterized in that it includes:
    获取模块(701),用于获取标记语言格式的工作流,其中所述标记语言格式的工作流是基于用户在图形用户界面上进行的、行为树的构建操作而生成的;An acquisition module (701), configured to acquire a workflow in a markup language format, wherein the workflow in a markup language format is generated based on a behavior tree construction operation performed by a user on a graphical user interface;
    转换模块(702),用于将所述标记语言格式的工作流转换为以节点链接汇编实现的工作流拓扑结构;A conversion module (702), configured to convert the workflow in markup language format into a workflow topology implemented in node link assembly;
    执行模块(703),用于执行所述工作流拓扑结构。An execution module (703), configured to execute the workflow topology.
  9. 根据权利要求8所述的工作流执行装置(700),其特征在于,The workflow execution device (700) according to claim 8, characterized in that,
    所述转换模块(702),用于确定包含在所述标记语言格式的工作流中的顺序执行结构和循环执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点。The conversion module (702), configured to determine the sequence execution structure and the loop execution structure contained in the workflow in the markup language format; determine the sequence execution part of the workflow topology based on the sequence execution structure, the The sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, the workflow corresponding to the loop execution structure in the markup language format At the first position of the position, add a first conditional jump node, the first conditional jump node is determined based on the loop execution structure, the first conditional jump node contains the first preset condition and link to a first function block node before the first location, the first conditional jump node is also linked to a second function block node based on the execution order of the sequential execution part, wherein at the first conditional jump node Where: when the first preset condition is satisfied, jump to the first function block node; when the first preset condition is not satisfied, execute the second function block based on the execution sequence node.
  10. 根据权利要求8所述的工作流执行装置(700),其特征在于,The workflow execution device (700) according to claim 8, characterized in that,
    所述转换模块(702),用于确定包含在所述标记语言格式的工作流中的顺序执行结构和条件执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块 节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。The conversion module (702), configured to determine the sequential execution structure and the conditional execution structure contained in the workflow in the markup language format; determine the sequential execution part of the workflow topology based on the sequential execution structure, the The sequential execution part includes the function block nodes in the sequential execution structure and the links between the function block nodes; in the sequential execution part, the workflow corresponding to the conditional execution structure in the markup language format At the second position of the position, add a second conditional jump node, the second conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains the second preset condition and links To the third function block node after the second position, the second conditional jump node is also linked to the fourth function block node based on the execution order of the sequential execution part; wherein at the second conditional jump node Where: when the second preset condition is satisfied, execute the fourth function block node based on the execution order; when the preset condition is not satisfied, jump to the third function block node.
  11. 根据权利要求8所述的工作流执行装置(700),其特征在于,The workflow execution device (700) according to claim 8, characterized in that,
    所述转换模块(702),用于确定包含在所述标记语言格式的工作流中的顺序执行结构、循环执行结构和条件执行结构;基于所述顺序执行结构确定所述工作流拓扑结构的顺序执行部分,所述顺序执行部分包括所述顺序执行结构中的功能块节点以及所述功能块节点之间的链接;在所述顺序执行部分中、对应于所述循环执行结构在所述标记语言格式的工作流的位置的第一位置处,添加第一条件跳转节点,所述第一条件跳转节点是基于所述循环执行结构确定的,所述第一条件跳转节点包含第一预设条件且链接到所述第一位置之前的第一功能块节点,所述第一条件跳转节点还基于所述顺序执行部分的执行顺序链接到第二功能块节点,其中在所述第一条件跳转节点处:当所述第一预设条件获得满足时,跳转到所述第一功能块节点;当所述第一预设条件不获得满足时,基于所述执行顺序执行所述第二功能块节点;在所述顺序执行部分中、对应于所述条件执行结构在所述标记语言格式的工作流的位置的第二位置处,添加第二条件跳转节点,所述第二条件跳转节点是基于所述条件执行结构确定的,所述第二条件跳转节点包含第二预设条件且链接到所述第二位置之后的第三功能块节点,所述第二条件跳转节点还基于所述顺序执行部分的执行顺序链接到第四功能块节点;其中在所述第二条件跳转节点处:当所述第二预设条件获得满足时,基于所述执行顺序执行所述第四功能块节点;当所述预设条件不获得满足时,跳转到所述第三功能块节点。The conversion module (702), configured to determine the sequential execution structure, loop execution structure and conditional execution structure contained in the workflow in the markup language format; determine the order of the workflow topology based on the sequential execution structure Execution part, the sequential execution part includes function block nodes in the sequential execution structure and links between the function block nodes; in the sequential execution part, corresponding to the loop execution structure in the markup language At the first position of the workflow in the format, a first conditional jump node is added, the first conditional jump node is determined based on the loop execution structure, and the first conditional jump node contains the first preset conditional and linked to a first function block node before the first position, the first conditional jump node is also linked to a second function block node based on the execution order of the sequential execution part, wherein at the first At the condition jump node: when the first preset condition is satisfied, jump to the first function block node; when the first preset condition is not satisfied, execute the A second function block node; in the sequential execution part, at a second position corresponding to the position of the conditional execution structure in the workflow in the markup language format, add a second conditional jump node, the second A conditional jump node is determined based on the conditional execution structure, the second conditional jump node contains a second preset condition and is linked to a third function block node after the second position, and the second conditional jump node The jump node is also linked to the fourth function block node based on the execution sequence of the sequential execution part; wherein at the second condition jump node: when the second preset condition is satisfied, the execution sequence is executed based on the execution sequence The fourth function block node; when the preset condition is not satisfied, jump to the third function block node.
  12. 根据权利要求8-11中任一项所述的工作流执行装置(700),其特征在于,The workflow execution device (700) according to any one of claims 8-11, characterized in that,
    所述转换模块(702),用于确定包含在所述标记语言格式的工作流中的并行执行结构;在所述顺序执行部分中、对应于所述并行执行结构在所述标记语言格式的工作流的位置的第三位置处,添加至少一个并行执行部分,所述至少一个并行执行部分汇聚到所述顺序执行部分的并行汇聚节点上,所述并行汇聚节点还基于所述顺序执行部分的执行顺序链接到第五功能块节点;所述并行汇聚节点为逻辑与节点或逻辑或节点,其中当汇聚到所述逻辑与节点的所有并行执行部分都执行完毕时,执行所述第五功能块节点;当汇聚到所述逻辑或节点的所有并行执行部分中有至少一个并行执行部分执行完毕时,执行所述第五功能块节点。The conversion module (702), configured to determine the parallel execution structure contained in the workflow in the markup language format; in the sequential execution part, the work corresponding to the parallel execution structure in the markup language format At a third position of the position of the flow, at least one parallel execution part is added, the at least one parallel execution part converges on the parallel sink node of the sequential execution part, and the parallel sink node is also based on the execution of the sequential execution part Sequentially linked to a fifth function block node; the parallel sink node is a logic AND node or a logic OR node, wherein when all parallel execution parts converged to the logic AND node are executed, the fifth function block node is executed ; Execute the fifth function block node when at least one parallel execution part of all parallel execution parts converged to the logic or node has been executed.
  13. 根据权利要求12所述的工作流执行装置(700),其特征在于,The workflow execution device (700) according to claim 12, characterized in that,
    所述转换模块(702),用于当第一条件跳转节点或第二条件跳转节点跳转到逻辑与节 点时,在所述逻辑与节点之前添加空节点,并将所述条件跳转节点跳转到所述空节点上,其中所述空节点用于指示不执行操作,所述空节点基于所述顺序执行部分的执行顺序链接到所述逻辑与节点。The conversion module (702), configured to add an empty node before the logical AND node when the first conditional jump node or the second conditional jump node jumps to the logical AND node, and jump the conditional node The node jumps to the empty node, wherein the empty node is used to indicate that no operation is performed, and the empty node is linked to the logical AND node based on the execution sequence of the sequential execution part.
  14. 根据权利要求8-11中任一项所述的工作流执行装置(700),其特征在于,还包括:The workflow execution device (700) according to any one of claims 8-11, further comprising:
    反向解释模块(704),用于关联存储所述标记语言格式的工作流和所述工作流拓扑结构;接收适配于请求所述工作流拓扑结构的工作流的反向解释请求;响应于所述反向解释请求,基于所述关联存储提供所述标记语言格式的工作流。A reverse interpretation module (704), configured to associate and store the workflow in the markup language format and the workflow topology; receive a reverse interpretation request adapted to the workflow requesting the workflow topology; respond to The reverse interpretation request provides the workflow in markup language format based on the associated storage.
  15. 一种工作流执行装置(500),其特征在于,包括:A workflow execution device (500), characterized by comprising:
    至少一个存储器(501),被配置为存储计算机可读代码;at least one memory (501) configured to store computer readable code;
    至少一个处理器(502),被配置为调用所述计算机可读代码,执行如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。At least one processor (502) configured to call the computer-readable code to execute the steps in the workflow execution method (800) according to any one of claims 1-7.
  16. 一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。A computer-readable medium, characterized in that computer-readable instructions are stored on the computer-readable medium, and when the computer-readable instructions are executed by a processor, the processor executes the method according to claims 1-7. The workflow execution method (800) of any one of the steps in.
  17. 一种计算机程序产品,其特征在于,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行根据如权利要求1~7中任一项所述的工作流执行方法(800)中的步骤。A computer program product tangibly stored on a computer-readable medium and comprising computer-readable instructions which, when executed, cause at least one processor to perform the The steps in the workflow execution method (800) according to any one of claims 1-7.
PCT/CN2022/078844 2022-03-02 2022-03-02 Workflow execution method and apparatus, and storage medium and program product WO2023164841A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/078844 WO2023164841A1 (en) 2022-03-02 2022-03-02 Workflow execution method and apparatus, and storage medium and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/078844 WO2023164841A1 (en) 2022-03-02 2022-03-02 Workflow execution method and apparatus, and storage medium and program product

Publications (1)

Publication Number Publication Date
WO2023164841A1 true WO2023164841A1 (en) 2023-09-07

Family

ID=87882819

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/078844 WO2023164841A1 (en) 2022-03-02 2022-03-02 Workflow execution method and apparatus, and storage medium and program product

Country Status (1)

Country Link
WO (1) WO2023164841A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389569A (en) * 2023-10-26 2024-01-12 重庆猪哥亮科技有限责任公司 Program interpretation execution method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007125629A (en) * 2005-11-01 2007-05-24 Sony Corp Robot device and motion control method
CN110497412A (en) * 2019-08-26 2019-11-26 中科新松有限公司 Robot graphic programming interactive system based on webpage and mobile terminal
CN113515272A (en) * 2020-04-09 2021-10-19 深圳轩科华智能科技有限公司 Visual programming method and system
EP3926422A1 (en) * 2020-06-17 2021-12-22 Siemens Aktiengesellschaft Method for programming at least one machine in an industrial automation system
WO2022000293A1 (en) * 2020-06-30 2022-01-06 西门子(中国)有限公司 Graphical programming method, processor, and terminal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007125629A (en) * 2005-11-01 2007-05-24 Sony Corp Robot device and motion control method
CN110497412A (en) * 2019-08-26 2019-11-26 中科新松有限公司 Robot graphic programming interactive system based on webpage and mobile terminal
CN113515272A (en) * 2020-04-09 2021-10-19 深圳轩科华智能科技有限公司 Visual programming method and system
EP3926422A1 (en) * 2020-06-17 2021-12-22 Siemens Aktiengesellschaft Method for programming at least one machine in an industrial automation system
WO2022000293A1 (en) * 2020-06-30 2022-01-06 西门子(中国)有限公司 Graphical programming method, processor, and terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389569A (en) * 2023-10-26 2024-01-12 重庆猪哥亮科技有限责任公司 Program interpretation execution method

Similar Documents

Publication Publication Date Title
WO2023071075A1 (en) Method and system for constructing machine learning model automated production line
AU2022202972A1 (en) Tools and methods for real-time dataflow programming language
CN106775632B (en) High-performance geographic information processing method and system with flexibly-expandable business process
US7590680B2 (en) Extensible robotic framework and robot modeling
WO2023142062A1 (en) Workflow generation method and system, and medium and program product
WO2023004805A1 (en) Workflow modeling implementation system and method, and storage medium
CN111736821B (en) Visual modeling analysis method, system, computer device and readable storage medium
CN106021816A (en) Method for achieving distributed system behavior simulated analysis tool based on behavior tree
CN112130812B (en) Analysis model construction method and system based on data stream mixed arrangement
WO2023164841A1 (en) Workflow execution method and apparatus, and storage medium and program product
CN112148926A (en) Graph data stream processing method, processing device and storage medium
Brabra et al. Model-driven orchestration for cloud resources
WO2023142079A1 (en) Workflow creation method and system, medium and program product
CN112667221A (en) Deep learning model construction method and system for developing IDE (integrated development environment) based on deep learning
CN115794106A (en) Method and system for analyzing configuration of binary protocol data of rail transit
WO2023004806A1 (en) Device deployment method for ai model, system, and storage medium
KR20080035427A (en) A system and method for generating the business process which mapped the logical process and the physical process
Van Mierlo et al. A multi-paradigm approach for modelling service interactions in model-driven engineering processes
WO2023142076A1 (en) Workflow control method, apparatus and system, and medium and program product
WO2023142061A1 (en) Workflow generation method, device and system, medium, and program product
Schüller et al. Composing complex and hybrid AI solutions
WO2023164835A1 (en) Workflow execution method and apparatus, storage medium, and program product
WO2023142066A1 (en) Workflow construction and monitoring method and system, and medium and program product
WO2023142078A1 (en) Workflow construction method and system, medium, and program product
WO2023142077A1 (en) Workflow generation method, device and system, medium, and program product

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: 22929292

Country of ref document: EP

Kind code of ref document: A1