WO2023142076A1 - 工作流控制方法、装置、系统、介质及程序产品 - Google Patents

工作流控制方法、装置、系统、介质及程序产品 Download PDF

Info

Publication number
WO2023142076A1
WO2023142076A1 PCT/CN2022/075083 CN2022075083W WO2023142076A1 WO 2023142076 A1 WO2023142076 A1 WO 2023142076A1 CN 2022075083 W CN2022075083 W CN 2022075083W WO 2023142076 A1 WO2023142076 A1 WO 2023142076A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
workflow
synthesizer
working
behavior tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2022/075083
Other languages
English (en)
French (fr)
Inventor
周振华
朱骁洵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Ltd China
Siemens AG
Siemens Corp
Original Assignee
Siemens Ltd China
Siemens AG
Siemens Corp
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 Siemens Ltd China, Siemens AG, Siemens Corp filed Critical Siemens Ltd China
Priority to US18/834,082 priority Critical patent/US20250103189A1/en
Priority to PCT/CN2022/075083 priority patent/WO2023142076A1/zh
Priority to CN202280089265.6A priority patent/CN118556215A/zh
Priority to EP22922906.7A priority patent/EP4455814A4/en
Publication of WO2023142076A1 publication Critical patent/WO2023142076A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4188Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by CIM planning or realisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Definitions

  • the embodiments of the present application relate to the field of industrial technology, and in particular to a workflow control method, device, system, computer-readable storage medium, and computer program product.
  • Workflow can be simply defined as a description of a series of operations. Workflow is widely used in automation systems, artificial intelligence, robotics and other fields. For example, the workflow of a product sorting line in an automated system can be simply described as starting, taking pictures, sorting and moving the products to the target location.
  • the model deployment workflow in the field of artificial intelligence can be described as data collection, data labeling, model training, and model deployment.
  • Embodiments of the present application provide a workflow control method, system, computer-readable storage medium, and computer program product.
  • the embodiment of the present invention proposes a workflow control method, including:
  • a synthesizer node comprising a start block adapted to begin execution of the synthesizer node, an end block adapted to end execution of the synthesizer node based on user operations on the graphical user interface and a plurality of working links arranged between the start block and the end block; based on the type of the combiner node, determining a target working link from the plurality of working links; based on the purpose
  • the work link controls the logic of the workflow, wherein the workflow is generated based on the behavior tree containing the synthesizer node.
  • the embodiment of the present invention introduces multiple types of synthesizer nodes, which are suitable for flexible control of the workflow.
  • At least one working link of the plurality of working links includes a function block node, and the function block node is used to realize the service operation in the workflow.
  • the working link of the combiner node may include the function block node, so as to improve the control ability of the function block node.
  • the determining the type of the synthesizer node based on the user's operation on the graphical user interface includes:
  • synthesizer node Determining the type of synthesizer node based on said manipulation by the user on said graphical user interface comprising a node library comprising: synthesizer nodes that identify types in a semantic manner or that identify types in a presentation style The identified synthesizer node.
  • the embodiment of the present invention can identify the type of the synthesizer node in a semantic way or presentation style, which can reduce the difficulty of identifying the synthesizer node and save canvas resources.
  • 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 logical 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
  • synthesizer node in the embodiment of the present invention can be applied to the workflow control method of the OT domain.
  • 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 embodiment of the present invention can realize the integration of the IT domain and the OT domain through the microservice.
  • the type of the synthesizer node is parallel selection; the determining the target 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 destination working link; the method also includes: receiving an end logic value through the input terminal of the end block; wherein when the end logic value is a logic AND, the plurality of working links When all executions are completed, the execution of the synthesizer node is terminated via the end block; when the end logic value is logical or, at least one of the plurality of working links appears to be executed, via the end block The end block ends execution of the synthesizer node.
  • the embodiment of the present invention proposes a combiner node with parallel selection capability.
  • the type of the synthesizer node is multi-branch selection
  • the method further includes: receiving a preset synthesis expression through the input terminal of the start block; Determining the destination 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 block from the plurality of working links The destination working link.
  • the embodiment of the present invention proposes a combiner node with multi-branch selection capability.
  • the type of the synthesizer node is conditional judgment
  • the method further includes: receiving a preset synthesized expression via the input terminal of the start block, the result of the synthesized expression includes logical true value or a logical false value; said 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 the plurality of working links Determine the corresponding destination working link.
  • the embodiment of the present invention proposes a synthesizer node capable of judging whether or not conditions.
  • the type of the synthesizer node is priority
  • the method further includes: receiving a preset synthesis expression through the input terminal of the start block; Determining the target working link 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 priority of the plurality of working links Sequence: determining the target working link from the plurality of working links based on the priority order.
  • the embodiment of the present invention proposes a combiner node with priority capability.
  • the type of the synthesizer node is reactive priority
  • the method further comprises: receiving a first synthesized expression and a second synthesized expression via an input of the start block; Determining the target working link among the plurality of working links includes: calculating the first data value block of each working link based on the first composite expression; calculating the first data value block of each working link based on the second composite expression The second data value block; based on the sorting result of the first data value block of the plurality of working links, determine the priority order of the plurality of working links; based on the priority order and each working link The second data value block is used to determine the target working link from the plurality of working links.
  • the embodiment of the present invention proposes a synthesizer node with reactive priority capability.
  • the method includes: displaying the synthesizer node in a folded manner in a folding frame on the graphical user interface, wherein the folding frame includes a first display area, and the first display area is adapted to Displaying currently displayed working links of the synthesizer node and hiding working links other than the currently displayed working links.
  • the embodiment of the present invention proposes a compositor node with a folding structure, which can save canvas resources.
  • 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.
  • the embodiment of the present invention has a synthesizer node with a folded structure, which can also flexibly switch the label of the currently displayed working link and the flexibly displayed working link.
  • the embodiment of the present invention proposes a workflow control device, including:
  • the first determination module is configured to determine the type of the 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, adapted to end execution an end block of the combiner node and a plurality of working links arranged between the start block and the end block;
  • the second determination module is configured to determine a target working link from the plurality of working links based on the type of the combiner node;
  • the control module is configured to control the logic of the workflow based on the target working link, wherein the workflow is generated based on the behavior tree including the synthesizer node.
  • the embodiment of the present invention introduces multiple types of synthesizer nodes, which are suitable for flexible control of the workflow.
  • the first determination module is configured to determine the type of synthesizer node based on the user's selection operation on the graphical user interface containing a node library, wherein the node library contains: in a semantic manner A compositor node that identifies a type or a compositor node that identifies a type in rendering style.
  • the embodiment of the present invention can identify the type of the synthesizer node in a semantic way or presentation style, which can reduce the difficulty of identifying the synthesizer node and save canvas resources.
  • At least one of the plurality of working links includes a function block node, and the function block node is used to realize the business operation in the workflow;
  • the first determination module is configured to receive a construction operation of the behavior tree performed by the user on the graphical user interface; wherein the construction operation includes adding behavior tree nodes and connecting operations, and the behavior tree
  • the nodes include the synthesizer node and the function block node; the behavior tree is used to represent 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 logical node corresponds to an operation template, and each operation template predefines at least one type of operation that can be performed by equipment, and the operation includes: action, method or skill; in response to the construction operation of the behavior tree, generate the corresponding work
  • the behavior tree of the flow 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 In the runtime, each device in the work unit executes operations according to the workflow; wherein the workflow is an OT domain workflow; and the
  • synthesizer node in the embodiment of the present invention can be applied to the workflow control process of the OT domain.
  • the embodiment of the present invention proposes a workflow control system, including: at least one memory configured to store computer-readable codes; at least one processor configured to call the computer-readable codes to execute the above-mentioned A step in the workflow control method.
  • the embodiment of the present invention provides a computer-readable medium, where 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 following: Steps in any one of the workflow control methods described above.
  • the embodiment of the present invention proposes a computer program product, the computer program product is tangibly stored on a computer-readable medium and includes computer-readable instructions, and when executed, the computer-readable instructions cause at least one The processor executes the steps in any one of the workflow control methods described above.
  • FIG. 1A is an exemplary flow chart of workflow creation methods provided by various embodiments of the present application.
  • FIG. 1B is an example diagram of a resource knowledge graph in an example of the present application.
  • FIG. 1C is an example diagram in which resource nodes are associated with function block nodes in an example of the present application.
  • FIG. 2A is a schematic diagram of a behavior tree created in an example of the present application.
  • FIG. 2B to FIG. 2S are respectively schematic diagrams of partial behavior trees created in an example of the present application.
  • Fig. 3 is an exemplary structural diagram of a workflow creation system provided by an embodiment of the present application.
  • 4A-4D are schematic diagrams of workflow creation systems provided by various embodiments of the present application.
  • FIG. 4E is a diagram of an application scenario of the OT domain low-code development platform 100 in the field of industrial automation.
  • FIG. 5 is a schematic diagram of hardware implementation of the workflow creation system provided by the embodiment of the present application.
  • FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application.
  • FIG. 7A is a first schematic diagram of a low-code example of an FBTD logic synthesizer provided by various embodiments of the present application.
  • FIG. 7B is a second schematic diagram of a low-code example of the FBTD logic synthesizer provided by various embodiments of the present application.
  • FIG. 7C is a schematic diagram of a low-code example of a folded FBTD logic synthesizer provided by various embodiments of the present application.
  • FIG. 8 is an exemplary structural diagram of a workflow control device provided by various embodiments of the present application.
  • microservice 50 third party device 200 Knowledge Center 300 Code development platform for IT domain 301 Code Development Tools for the IT Domain 51 at least one memory 52 at least one processor 53 at least one monitor 54 bus 600 workflow control method 601 ⁇ 603 step 70 synthesizer node 71 start block 72 end block 73 ⁇ 75 function block node 76 composite expression 77 end boolean 78 ⁇ 80 data value block 81 The third display area 82 Type designation for folding synthesizers 83 Second display area 84 toggle control 85 ⁇ 86 function block node 87 composite expression 88 The first display area 90 folding box 800 workflow control device 801 first determination module 802 The second determination module 803 control module
  • the term “comprising” and its variants represent open terms meaning “including but not limited to”.
  • the term “based on” means “based at least in part on”.
  • the terms “one embodiment” and “an embodiment” mean “at least one embodiment.”
  • the term “another embodiment” means “at least one other embodiment.”
  • the terms “first”, “second”, etc. may refer to different or the same object. The following may include other definitions, either express or implied. Unless the context clearly indicates otherwise, the definition of a term is consistent throughout the specification.
  • FIG. 1A shows an exemplary flow chart of a method for creating a workflow provided by an embodiment of the present application. As shown in Figure 1A, the method may include the following steps:
  • Step S11 receiving a behavior tree construction operation performed by the user on the graphical user interface based on the preset behavior tree nodes.
  • a behavior tree is used to represent a workflow, and the workflow is used to define operations to be performed by a work unit, for example, it may represent a distributed process within a work unit.
  • the workflow here can also be subdivided into main workflow and sub-workflow.
  • the main workflow is used to define the start, end, and other flow controls that trigger the flow of the entire unit of work.
  • the main workflow is the entry point of the entire process, which is linked to at least one sub-workflow.
  • Sub-workflows are usually main workflows, and each sub-workflow corresponds to a sub-process for implementing specific business operations.
  • a work cell may be a combination of resources such as systems or devices capable of implementing a relatively complete and independent control process and operation.
  • the workflow is created with the work unit as the basic unit, which is more in line with the characteristics of industrial control, can improve the integration degree of development, and reduce the complexity of development.
  • the work unit can be defined according to the actual industrial scene, for example: you can define a process corresponding to a work unit, or you can define a work station in the process as a work unit, or you can also define A station in the workstation corresponds to a work unit, etc. Different work units have different technological processes.
  • Behavior trees are a formalized graphical modeling approach. Behavior trees are widely used for intelligent decision-making in various artificial types. Since most of the logic is set according to the rules, the judgment of behavior is like a tree with many judgment branches. The behavior of the behavior tree is on the leaf node, which is the behavior logic to be executed. 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.
  • 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 in this embodiment they can be used to control the main flow of the workflow and can be linked to the state machine of the workflow.
  • the start node is mandatory, and one of the end node or the go-to node can also be mandatory.
  • the main control node is mainly used to define the start and end of the workflow.
  • other element nodes can control the state machine (such as abort and stop) or mark the key process steps that can be jumped (such as critical nodes).
  • the synthesizer node can include: sequence (Se, Sequence) node, reactive sequence (RSe, Reactive Sequence) node, parallel (Pa, Parallel) node, process quality control (IPQ, In-Process QC) node, priority ( Pr, Priority (Fallback)) node, reactive priority (RPr, Reactive Priority (Fallback)) node, whether conditional judgment (ITE, If-Then-Else) node, and multi-branch selection (Sw, Switch) node some or all.
  • Compositor nodes define how branches are executed in the Behavior Tree, are used to implement branching logic control in workflows, and more. For example, a brief description of a typical synthesizer node follows:
  • 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.
  • Parallel node which can have one or more sub-nodes, starts up sequentially from top to bottom, and executes all sub-nodes in multi-process or multi-thread simultaneously.
  • the quality control node in the process is that the quality engineer performs quality inspection on a part of the process steps. If the inspection fails, the exception handling process will be executed, and if it succeeds, it will continue.
  • Priority node Execute each sub-branch in order according to the priority. If the previous execution fails, the next one will be executed, and any branch will pass if the execution is successful.
  • Reactive priority node The function is the same as the priority node, but the trigger condition will be continuously checked.
  • condition judgment node check the trigger expression, if it is true, execute the true branch, if it is false, execute the false branch.
  • Multi-branch selection node check the trigger expression, and execute different branches according to different conditions, all of which are not satisfied to execute the default (default) branch.
  • condition node is usually the basic logical element of the check expression in the behavior tree, which is used to execute the condition judgment and return the judgment result. It returns success or failure depending on whether the condition is true.
  • Conditional nodes never return a running state.
  • conditional node may also be included in a function block node.
  • conditional nodes can also be used as a single type of node.
  • Function block nodes are used to execute commands and implement business operations in the workflow. Typically, success is returned if the operation completed correctly, and failure is returned if the operation failed. Returns running while the operation is in progress.
  • the function block nodes include logic nodes, and may also include some specific types of function block nodes, such as manual (Manual) nodes, dynamic (Dynamic) nodes, delay (Delay) nodes, and idle (Empty ( idle)) some or all of the nodes.
  • dynamic node is used to dynamically inject node instance at runtime.
  • the manual node represents a manual step, stop at the current node before obtaining the confirmation signal, and exit after obtaining the confirmation signal.
  • Delay node means to exit the current node after a specified time delay.
  • An idle node means no operation is performed, a placeholder, and can be replaced by any function block node.
  • each logical node may correspond to an operation template
  • each operation template predefines operations that at least one type of resource (such as a collaborative robot or a device such as a PLC) can perform.
  • the operations may include: actions, methods or skills.
  • each operation template may consist of an interface part and an implementation part.
  • the implementation part can be an application (for example, a containerized application) that contains functional code and runtime dependencies.
  • the application program can run independently and be exposed to the 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.
  • each logical node may have a parameter panel for configuring parameters of the logical node, such as input and output parameters. Of course, these input and output parameters can also be preset with default values.
  • Each logical node can be configured and executed individually.
  • the user-configured input for the logical node is read and transferred to the implementation part of the action template, the corresponding application.
  • the result of the operation such as the transformed model will be converted back to the output of the logical node.
  • the interface part and implementation part of each operation template can be stored separately.
  • the interface part that is, the logical node
  • its implementation part may be stored in a node service module, which may be called a runtime (Runtime) in this embodiment.
  • the node service module can be located in a server or locally.
  • the above-mentioned logical nodes follow an information model for runtime interaction with the main controller.
  • the standardization of communication between the OT domain workflow and the main controllers of various OT devices is realized.
  • these physical devices, personnel, and virtualized noun resources are collectively referred to as resources in this article, and these resources usually refer to resources that can execute workflows on site as the main body of each operation.
  • the resource as the main body of operation can be used as a common configuration parameter of the function block node to configure the corresponding resource for the required function block node when creating the behavior tree; or, when creating the function block node, set the function Block nodes are configured with resources as the subject of operation execution, so that when creating a behavior tree, it is not necessary to configure resources for the required function block nodes.
  • these resources can also be represented in the form of resource nodes, and these resource nodes can be stored in the form of resource knowledge graphs.
  • the resource knowledge graph includes: various resource nodes, and connections representing relationships among resource nodes. For example, an example diagram of a resource knowledge graph in an example is shown in FIG. 1B . As shown in FIG.
  • the resource knowledge graph is a factory resource knowledge graph, which describes the real system configuration of a factory.
  • the factory (F, Factory) node has an industrial computer (IPC) node
  • the industrial computer (IPC) node has a collaborative robot (CR, Cooperative Robot) node, a PLC node and a bar code scanner (BCS, Bar Code Scanner) node.
  • the collaborative robot (CR, Cooperative Robot) node has a gripper (CJ, Clamping Jaw) node, a torque wrench (TW, Torque Wrench) node and a camera (CA, Camera) node
  • the PLC node has a button (B, Button) node and LED warning light nodes.
  • there may be more than one type of equipment such as a collaborative robot, and each equipment of this type of equipment can be distinguished by a label or model, which will not be repeated here.
  • Each function block node can be associated with a resource node, and the function block node can be instantiated as an operation of the corresponding resource.
  • a logical node can be instantiated as an operation of a corresponding device by associating a device resource node.
  • a resource header may be set for the function block node, and resources associated with the function block node will be displayed in the resource header.
  • each resource node can be associated with a corresponding function block node in advance, so that when creating a behavior tree, the function block node associated with the corresponding resource can be directly pulled, and there is no need for temporary configuration.
  • FIG. 1C shows an example diagram in which each resource node is associated with a function block node. As shown in FIG. 1C , for the resources shown in the resource knowledge graph shown in FIG. 1B , corresponding function block nodes are respectively associated.
  • the industrial computer (IPC) node is associated with a button (PB, Press Button) node and a dialog box (DDB, Display Dialog Box on Screen) node;
  • the collaborative robot (CR, Cooperative Robot) node is associated with a linear movement (LM, Linear Move) nodes and joint movement (SM, Shutdown Mobile) nodes;
  • PLC nodes are associated with read I/O (RIO, Read I/O) nodes and write I/O (WIO, Write I/O) nodes;
  • the bar code scanner (BCS, Bar Code Scanner) node is associated with the scanning bar code (SBC, Scan Bar Code) node;
  • the clamping jaw (CJ, Clamping Jaw) node is associated with the open (O, Open) node and the grabbing (Gr, Grab) node Node;
  • torque wrench (TW, Torque Wrench) node is associated with twist (T, Twist) node;
  • camera (CA, Camera) node is associated with registration (R
  • resource nodes may not be pre-associated with function block nodes, but corresponding resource nodes may be associated with required function block nodes when the behavior tree is created.
  • function block nodes associated with resource nodes (which may be called dedicated function block nodes) and function block nodes not associated with resource nodes (which may be called general function block nodes).
  • resource nodes which may be called dedicated function block nodes
  • function block nodes not associated with resource nodes which may be called general function block nodes.
  • this embodiment may further include the following decorator nodes:
  • Decorator nodes are mainly used to decorate function block nodes driven by compositor nodes, for example, can be used to decide whether a branch or even a single node in a behavior tree can be executed.
  • Negative node which can have a child node, used to negate the child node. If the child node fails, it returns success; if the child node succeeds, it returns failure.
  • a mandatory failure node which can have a child node (such as a function block node), regardless of whether its child node is successful or not, the node will always return failure.
  • a repeated node which may have a child node (such as a function block node), can repeatedly execute its child node for a fixed number of times.
  • a retry node which can have a child node (such as a function block node), can trigger its child node up to N times, if its child node returns failure, retry and the number of times will be reduced by one, when the number of retries is zero , returns success; if the child node returns success, break the loop and also return success.
  • N is a positive integer.
  • a one-time node which may have a child node, means that its child node is only executed once in the workflow, and will not be executed until the workflow is restarted.
  • a timeout node which may have a child node, which is used to time the execution time of its child nodes (such as function block nodes), and exit execution when the specified time exceeds (even if the execution is not completed).
  • a timer node which may have a child node, executes its child node (such as a function block node) after the specified time is reached.
  • a monitoring node which may have at least one child node, and is used to monitor the status of all its child nodes. When any child node executes incorrectly, an error will be reported. When all child nodes are normal, it returns normal.
  • a decorator node may also be contained within a flow control node. That is, flow control nodes may include: all or part of main control nodes, synthesizer nodes, and decorator nodes.
  • each behavior tree node can be listed on the graphical user interface in the form of an icon, and the user can determine the node needed to create a workflow by selecting and dragging the icon to add to the canvas.
  • the node performs necessary parameter configuration, such as resource configuration and/or input and output parameter configuration.
  • the behavior tree corresponding to the workflow can include multiple function block nodes.
  • the behavior tree of the corresponding workflow is finally generated by performing corresponding discharge connections on the dragged nodes. That is, the behavior tree construction operation includes adding and connecting the nodes of the behavior tree.
  • an operation of associating resources for the added function block nodes may also be included. In addition, it may also include: configuration operations on the input and output parameters of the behavior tree nodes.
  • Step S12 in response to the construction operation of the behavior tree, 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.
  • the aforementioned behavior tree nodes may be stored in a node library.
  • the node library may further include a workflow (WF, WorkFlow) node and a sub-workflow (SWF, SubWorkFlow) node.
  • FIG. 2A shows a schematic diagram of constructing a behavior tree of a work unit of a quality inspection production line in an example.
  • FIG. 2B to FIG. 2S respectively show schematic diagrams of partial behavior trees constructed in an example.
  • this embodiment may further include the following step S13 as shown by the dotted line in FIG. 1 .
  • Step S13 analyzing the behavior tree, and deploying the workflow corresponding to the behavior tree to the runtime of the corresponding work unit, so that each resource in the work unit performs operations according to the workflow.
  • the work unit may have a main controller, and in this case, the runtime may be located on the work unit's main controller.
  • the equipment resources in the resources can be connected to the main controller, and the main controller can control the equipment resources connected to it to perform corresponding operations according to the runtime workflow; the human resources in the resources can be directly based on the running The workflow at the time prompts you to perform the appropriate action.
  • the behavior tree can be stored in a Markup markup language such as XML (Extensible Markup Language), and can be verified by an XML Schema (XSD) prototype to verify that the XML format of the behavior tree is correct.
  • XML Extensible Markup Language
  • XSD XML Schema
  • the OT domain usually refers to operational technology (Operational Technology, OT), which integrates hardware and software, and detects or triggers processes in the enterprise by directly monitoring and/or controlling physical devices (called OT devices). changes or events.
  • OT utilizes computers to monitor or change physical conditions such as industrial control systems (Industrial Control System, ICS).
  • ICS Industrial Control System
  • the industrial control system is based on computer-implemented facilities, systems, and equipment for remote monitoring and/or control of key industrial processes to achieve physical functions.
  • the word "OT” is used to distinguish industrial control systems from traditional information technology (Information Technology, IT) systems in terms of technical implementation and functions.
  • the above workflow creation method in this embodiment can be used in this OT domain as a low-code development method in the OT domain.
  • the workflow creation method shown in FIG. 1A can be implemented in an OT domain, such as an OT domain low-code development platform.
  • the workflow can be an OT domain workflow; the work unit can be an OT domain workflow.
  • a working unit; the device may be an OT device.
  • OT devices may include, but are not limited to: Internet of Things (IoT) devices, Programmable Logic Controllers (PLC), Robotics, Manual Process, Industrial Computers (Industrial Personal Computer, IPC) and so on.
  • the above-mentioned workflow creation method in this embodiment can be used in this ITOT system as a low-code development method in the OT domain that can be integrated with the IT domain.
  • the workflow creation method shown in Figure 1A can be implemented on an OT domain such as an OT domain low-code development platform, and correspondingly, the workflow can be an OT domain workflow; the work unit can be a work in the OT domain unit.
  • it may further include: generating a microservice based on the behavior tree, so that an IT device can call the microservice
  • the runtime execution of the master controller of the work unit is triggered to execute the OT domain workflow.
  • the IT equipment can call the microservice directly or through a knowledge center.
  • an API of the microservice may be generated based on the behavior tree.
  • the processing procedure in the API includes each operation in the OT domain workflow
  • the input parameter of the API is the parameter obtained from the input port of the OT domain workflow
  • the output parameter of the API is the Parameters output by the output port of the OT domain workflow.
  • the specific implementation methods include but are not limited to the following two:
  • the code developers in the OT domain can notify the code developers in the IT domain of the names and IP addresses of the generated microservices. In this way, the code developers in the IT domain can directly assign the The information is written into the code, so that the IT equipment can call the microservice.
  • Method 1 is more suitable for scenarios with a small number of microservices.
  • each microservice is registered on the knowledge center platform, so that an IT domain code development tool realizes that IT equipment discovers the connected microservices through the knowledge center platform.
  • an IT domain code development tool can be used to realize the connected microservices discovered by the IT domain equipment through the knowledge center through code development.
  • the device that completes microservice registration can be an OT domain microservice generator or a third-party device.
  • the third-party device can be regarded as a part of the OT domain low-code development platform, or implemented in the knowledge center platform.
  • Method 2 is more suitable for scenarios with a large number of microservices.
  • IT equipment may include, but not limited to: Manufacturing Operation Management (MOM) system, Manufacturing Execution System (MES), Enterprise Resource Planning (Enterprise Resource Planning, ERP) system, enterprise service Bus (Enterprise Service Bus, ERP), Product Lifecycle Management (Product Lifecycle Management, PLM) system, etc.
  • MOM Manufacturing Operation Management
  • MES Manufacturing Execution System
  • ERP Enterprise Resource Planning
  • ERP enterprise Resource Planning
  • ERP enterprise Service Bus
  • PLM Product Lifecycle Management
  • the IT domain code development tool can be programmed to realize that IT equipment invokes microservices through a knowledge platform to trigger the runtime execution of the OT domain workflow of the main controller of the work unit, thereby realizing the code development of the IT domain
  • the platform controls the process of the OT domain, which realizes the integration of the IT domain and the OT domain.
  • the microservice is automatically generated by the OT domain microservice generator based on the OT domain behavior tree. It is not necessary for the code development tools of the IT domain to understand the details of the OT domain workflow. It only needs to obtain the identification (such as: name) and IP address of the microservice That is, developers in the IT domain do not need to understand OT domain devices and control processes, and are easy to implement and understand.
  • the applicable fields of the embodiments of the present application include but are not limited to: Industrial Automation, Logistics, Laboratory, Maritime, Smart Grid, Electric Vehicle Infrastructure Vehicle Infrastructure), Electric Vehicle, Building Automation, Smart City, Water Treatment, Garbage Recycling and Smart Farm, etc.
  • the workflow creation method in the embodiment of the present application has been described in detail above, and the workflow creation system in the embodiment of the present application will be described in detail below.
  • the workflow creation system in the embodiment of the present application can be used to implement the workflow creation method in the embodiment of the present application.
  • 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.
  • 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.
  • the behavior tree node further includes: a decorator node, which may include: a repeat node, a retry node, a one-off node, a timeout node, a timer node, a negate node, a forced run node, and a forced success Some or all of nodes, force-fail nodes, and monitor nodes.
  • a decorator node which may include: a repeat node, a retry node, a one-off node, a timeout node, a timer node, a negate node, a forced run node, and a forced success
  • some or all of the function block nodes in the node library 110 are respectively bound with resources for executing the service operations corresponding to the function block nodes.
  • the graphical interface module 120 is configured to provide a graphical user interface GUI for the user to construct a behavior tree based on the behavior tree nodes in the node library.
  • each behavior tree node can be listed on the graphical user interface GUI in the form of an icon.
  • the editing processing module 130 is configured to generate a behavior tree corresponding to a workflow in response to the construction operation of the behavior tree, and the logical nodes in the behavior tree are instantiated as operations corresponding to resources such as equipment.
  • the editing processing module 130 can respond to the construction operation of the behavior tree, instantiate each behavior tree node, and establish the connection relationship between each instantiated behavior tree node; based on the instantiated behavior tree
  • the connection relationship between nodes generates a behavior tree corresponding to a workflow.
  • some or all of the instantiated function block nodes are associated with resources for executing corresponding business operations. For example, through this operation, a logical node is instantiated as an operation corresponding to a resource such as a device.
  • each behavior tree node can be listed on the graphical user interface in the form of an icon, and the user can determine the node needed to create a workflow by selecting and dragging the icon onto the canvas, and further, the node can also be Perform necessary parameter configuration, such as resource configuration and/or input/output parameter configuration.
  • the behavior tree corresponding to the workflow can include multiple logical nodes, and the corresponding The flow control node, through the corresponding discharge connection of the dragged nodes, finally generates the behavior tree corresponding to the workflow.
  • the construction operation may include: an operation of adding a function block node and an operation of associating resources with the added function block node.
  • the workflow creation system in this embodiment may further include: a parsing and deployment module 140 configured to parse the behavior tree, and deploy the workflow corresponding to the behavior tree to the corresponding The running time of the main controller of the work unit, so that each resource in the work unit connected to the main controller performs operations according to the workflow.
  • 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 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 processes in the OT domain in an understandable and non-IT programming way.
  • the OT domain low-code development platform 100 shown in FIG. 4C solves how to control the flow of the OT domain through the code development platform 300 of the IT domain.
  • the OT domain low-code development platform 100 may further include an OT domain microservice generator 20 , which can generate microservices 40 based on the OT domain behavior tree.
  • the IT domain code development tool 301 can be programmed to enable the IT device to call the microservice 40 through a knowledge center 200 to trigger the runtime 30 of the main controller of the work unit to execute the OT domain workflow.
  • the code development platform 300 of the IT domain can control the process of the OT domain, that is, the integration of the IT domain and the OT domain is realized.
  • the microservice 40 is automatically generated by the OT domain microservice generator 20 based on the OT domain behavior tree. It is not necessary for the code development tool 301 in the IT domain to understand the details of the OT domain workflow. It only needs to obtain the identification of the microservice 40 (for example: name ) and IP address, it is not necessary for IT domain developers to understand OT domain devices and control processes, and it is easy to implement and understand.
  • the code developers in the OT domain can notify the code developers in the IT domain of the names and IP addresses of the generated microservices 40, so that the code developers in the IT domain can directly assign the microservices 40 to The information of 40 is written into the code, so as to implement the call of the IT equipment to the microservice 40.
  • Method 1 is more suitable for scenarios with a small number of microservices.
  • each microservice 40 can be registered on the knowledge center 200 , so that the IT domain code development tool 301 can realize the connected microservice 40 through the knowledge center 200 by the IT domain equipment through code development.
  • the device for completing the registration of the microservice 40 may be the OT domain microservice generator 20 or a third-party device 50 as shown in FIG. 4D .
  • the third-party device 50 can be regarded as a part of the low-code development platform 100 in the OT domain, or implemented in the knowledge center 200 .
  • Method 2 is more suitable for scenarios with a large number of microservices. By registering microservices on the knowledge center platform, it is more effective to realize the calling of microservices by IT equipment, and strengthen the integration of OT domain and IT domain.
  • the OT domain microservice generator 20 can generate the API of the microservice 40 based on the OT domain behavior tree, wherein, the processing procedure in the API can include the operation of each functional block in the OT domain workflow, and the input parameter of the API is OT
  • the parameters obtained by the input port of the domain workflow, and the output parameters of the API are the parameters output by the output port of the OT domain workflow.
  • FIG. 4E An application scenario of the OT domain low-code development platform 100 provided in the embodiment of the present application in the field of industrial automation is shown in FIG. 4E .
  • the low-code development tool 10 generates a behavior tree corresponding to the OT domain workflow under the operation of the user, and the OT domain workflow defines the operations to be performed by the production line as a work unit shown on the right side of FIG. 4E .
  • the corresponding workflow is generated and published to the runtime 30, so that the runtime 30 controls the completion of the production line operation of the work unit; at the same time, the corresponding microservice can be generated by the microservice generator 20 based on the behavior tree and registered in The knowledge center 200, so that the code development tool 301 in the IT domain can call the corresponding microservice through the knowledge center 200.
  • the user can edit each node including the function block node by dragging and dropping to edit the behavior tree of the OT domain. Data (for example: workpiece processing parameters), control the operation of the entire work unit.
  • the working unit here is a production line, which includes machines, conveyor belts, robotic arms, people, PLC, AGB, etc.
  • the code development tool 301 of the IT domain can also be located on the same hardware device as the low-code development tool 10 , for example, on the same computer.
  • FIG. 5 shows a schematic structural diagram of another workflow creation system provided by the embodiment of the present application.
  • the system can be used to implement the method shown in Fig. 1A, or realize the workflow creation system shown in Fig. 3, or realize the workflow creation system described in any one of Fig. 4A to Fig. 4D , that is, the low-code development platform 100 in the OT domain.
  • the aforementioned OT domain low-code development tool 10, OT domain microservice generator 20, runtime 30, and third-party device 60 can all be implemented as individual hardware devices, such as servers, workstations, single-chip microcomputers or processing chips.
  • these devices are implemented on the same hardware device, which is stored in at least one memory as a software program, and is called by at least one processor to implement the aforementioned OT domain low-code development method.
  • the node library 110 and each generated microservice 40 may be stored in at least one memory.
  • the system may include: at least one memory 51 , at least one processor 52 and at least one display 53 .
  • some other components may also be included, such as a communication port (not shown in FIG. 5 ) and the like. These components communicate via bus 54 .
  • At least one memory 51 is used to store computer programs.
  • At least one memory 51 may include computer readable media such as random access memory (RAM).
  • at least one memory 51 can also store an operating system and the like.
  • the operating system includes but is not limited to: Android operating system, Symbian operating system, Windows operating system, Linux operating system and so on.
  • the above computer stored program may include the following program modules: node library 110, graphical interface module 120, editing and processing module 130, parsing and deployment module 140, optionally, may also include OT domain microservice generator 20, runtime 30, third-party device 50.
  • At least one processor 52 is configured to invoke a computer program stored in at least one memory 51 to execute the workflow creation method described in the embodiment of the present application.
  • At least one processor 52 may be a microprocessor, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a central processing unit (CPU), a graphics processing unit (GPU), a state machine, or the like. It can receive and send data through the communication port.
  • ASIC application specific integrated circuit
  • DSP digital signal processor
  • CPU central processing unit
  • GPU graphics processing unit
  • state machine or the like. It can receive and send data through the communication port.
  • At least one display 53 is used to display a graphical user interface.
  • At least one processor 52 is configured to invoke a computer program stored in at least one memory 51 to enable the system to execute the operations in the workflow creation method in any of the foregoing implementation manners.
  • the communication interface is used to implement communication with other devices, such as communication with the knowledge center 200 .
  • the OT domain low-code development tool 10 used to implement 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 the Function Block Typed Diagram (FBTD).
  • FBTD Function Block Typed Diagram
  • the OT domain microservice generator 20 can use modern translation programming languages to generate standard APIs such as RESTful or RPC.
  • Runtime 30 can easily implement OT domain workflow and provide openness based on the ecosystem of open source communities (such as Python).
  • the runtime 30 can be deployed on an embedded IoT device such as a single board computer (Single Board Computer, SBC).
  • the embodiment of the present application may include an apparatus having an architecture different from that shown in FIG. 5 .
  • the above architecture is only exemplary, and is used to explain the workflow construction method provided by the embodiment of the present application.
  • the embodiment of the present application also provides an IT domain OT domain integration system, that is, an ITOT system, which may include IT equipment and the workflow creation system in any implementation manner of the present application.
  • an ITOT system which may include IT equipment and the workflow creation system in any implementation manner of the present application.
  • it may further include: a code development platform 300 in the IT domain as shown in FIG. 4C and FIG. 4D .
  • FIG. 6 is an exemplary flowchart of a workflow control method provided by various embodiments of the present application.
  • the method 600 includes:
  • Step 601 Determine the type of synthesizer node based on the user's operation on the graphical user interface.
  • the synthesizer node includes a start block adapted to start executing the synthesizer node, an end block adapted to end the execution of the synthesizer node, and arranged in A plurality of working links between the start block and the end block.
  • Step 602 Based on the type of the combiner node, determine the target working link from the plurality of working links.
  • Step 603 Based on the purpose work link, control the logic of the workflow, wherein the workflow is generated based on the behavior tree including the combiner node.
  • Synthesizer nodes are always paired with a start block and an end block.
  • the start block has an optional input port to provide a synthesizer expression so that the target working link can be selected based on the synthesizer expression. For example, the target working link is selected according to the value of the combiner expression, or the target working link is selected based on the working link selection rule defined by the combiner expression.
  • the end block has an optional input port called the end logical value, which is used by parallel type synthesizer nodes to determine whether it is a logical AND (AND) or a logical OR (OR).
  • a set of synthesizer pair blocks can contain two or more working links (ie branches).
  • a Data Value Block (DVB, Data Value Block) is attached before each working link in the synthesizer pair block, representing the trigger value of the synthesizer expression of the corresponding working link.
  • the data value block may be a value generated by the corresponding working link based on a synthesizer expression and used to select the corresponding working link.
  • a block of data values may also be a condition for selecting a corresponding working link, wherein the condition is related to a value generated based on a synthesizer expression.
  • At least one working link in the plurality of working links includes a function block node, and the function block node is used to realize the service operation in the workflow.
  • the determining the type of the synthesizer node based on the user's operation on the graphical user interface includes: determining the type of the synthesizer node based on the user's selection operation on the graphical user interface containing the node library,
  • the node library includes: a synthesizer node that identifies types in a semantic manner or a synthesizer node that identifies types in a presentation style.
  • the type of the synthesizer node is directly identified in a textual manner in the icon of the synthesizer node that has a visual effect.
  • different presentation styles are used to identify the type of the synthesizer node accordingly, for example, in the icon of the synthesizer node, different line types (for example, Solid line, dotted line, spaced line, etc.) to identify the type of synthesizer node accordingly.
  • it also includes: receiving the user's construction operation of the behavior tree on the graphical user interface; wherein, the construction operation includes the addition and connection operation of the behavior tree node, and the behavior tree node Including the synthesizer node and the function block node; the behavior tree is used to characterize the workflow, and the workflow is used to define the operation to be performed by a work unit; the function block node includes: a logic node, each Each logical node corresponds to an operation template, and each operation template predefines at least one type of operation that can be performed by a device, and the operation includes: action, method or skill; in response to the construction operation of the behavior tree, generate a corresponding workflow The behavior tree, wherein the logical nodes in the behavior tree are instantiated as the operation of the corresponding device; the behavior tree is parsed to obtain the workflow; the workflow is deployed to the corresponding work unit At runtime, each device in the work unit performs operations according to the workflow; wherein the workflow is an OT domain workflow; and the device is
  • the method further includes: generating a microservice based on the behavior tree, so that the IT device triggers the runtime of the main controller of the work unit to execute the OT domain workflow by invoking the microservice .
  • FIG. 7A is a first schematic diagram of a low-code example of an FBTD logic synthesizer provided by various embodiments of the present application.
  • the synthesizer node 70 includes a start block 71 , an end block 72 and 3 working links arranged between the start block 71 and the end block 72 .
  • the first working link includes the executive function block node 73
  • the second working link includes the executive function block node 74
  • the third working link includes the executive function block node 75 .
  • the start block 71 may contain an input for providing a composite expression 76
  • the end block 72 may contain an input for providing an end logical value 77 .
  • Each function block node 73 , function block node 74 and function block node 75 has its own data value block.
  • the data value block 78 of the function block node 73, the data value block 79 of the function block node 74 and the data value block 80 of the function block node 75 may be arranged before the respective corresponding function block nodes.
  • the type of combiner node 70 is parallel selection (Pa, Parallel); Determining the destination working link from the plurality of working links includes: combining each working link in the plurality of working links All roads are determined as the target working link, and start to execute the target working link; the method also includes: receiving the end logic value through the input terminal of the end block; wherein when the end logic value is logic and, the plurality of working links When all executions are completed, the execution of the synthesizer node is terminated through the end block; when the end logic value is logical or, when at least one of the multiple working links appears to be executed, the execution of the synthesis is terminated through the end block server node.
  • the synthesizer node 70 when the type of synthesizer node 70 is parallel selection, there is no need to provide the synthesizer node 70 with a synthesized expression 76, correspondingly there is no need to generate synthesized data value blocks 78-80, and it is necessary for the synthesizer node 70 provides an end logical value 77 .
  • the first working link, the second working link and the third working link are all determined as the target working links.
  • the first working link, the second working link and the third working link are executed respectively (i.e.
  • the value of 77 determines when to stop executing the compositor node 70.
  • the value of the end logical value 77 provided is logic AND, when the first working link, the second working link and the third working link are all executed, the execution of the synthesis is ended via the ending block 72 Device node 70; when the value of the end logic value 77 is logical or, at least one working link in the first working link, the second working link and the third working link occurs when the execution is completed, via the end Block 72 ends execution of combiner node 70 .
  • the type of the synthesizer node is multi-branch selection (SW, Switch), and the method further includes: receiving a preset synthesis expression through the input terminal of the start block; Determining the target working link in the working link includes: determining the data value block when each working link is selected; based on the calculation result of the composite expression, selecting the corresponding data value from the plurality of working links The destination working link of the value block.
  • SW multi-branch selection
  • a combined expression 76 needs to be provided, and correspondingly, the combined data value blocks 78-80 need to be generated or manually provided based on the combined expression 76, but there is no need to An end logical value of 77 is provided.
  • the data value block is a condition for selecting a corresponding working link, wherein the data value block 78 is: "the temperature is greater than 30 degrees and less than 50 degrees"; the data value block 79 is: “the temperature is greater than 50 degrees”; the data The value block 80 is: “the temperature is 30 degrees lower”. Then, based on the specific temperature generated by the composite expression, the specific branch corresponding to the numerical block can be selected. For example, when the generated temperature is 20 degrees, the third working link corresponding to the data value block 80 is selected.
  • the type of the synthesizer node is a conditional judgment (ITE, If-Then-Else)
  • the method further includes: receiving a preset synthesis expression via the input terminal of the start block, the synthesis The result of the expression contains a logical true value or a logical false value; the determining the target working link from the plurality of working links includes: based on the result of the composite expression being a logical true value or a logical false value, from A corresponding destination working link is determined among the plurality of working links.
  • a preset working link corresponding to the logical value is selected.
  • the method further includes: receiving a preset synthesis expression via the input terminal of the start block; Determining the target working link among the plurality of working links includes: calculating the data value block of each working link based on the composite expression; based on the sorting result of the data value block of each working link, determining the A priority order of the plurality of working links; based on the priority order, the target working link is determined from the plurality of working links.
  • the data value block may be a value generated by the corresponding working link based on the synthesizer expression and used to select the corresponding working link.
  • the data value block 78, data value block 79, and data value block 80 generated based on the synthesizer expression may be different (for example, the parameter difference of each execution link), at this time based on the data of each working link
  • the priority order of the plurality of working links is determined; based on the priority order, the target working link is determined from the plurality of working links, wherein based on the preset, the data
  • the sorting result of the value block can be sorted from largest to smallest or from smallest to largest, and so on. For example, in FIG. 7A , when the type of the combiner node 70 is priority, a combination expression 76 needs to be provided.
  • the data value block generated by the first link based on the composite expression 76 is 15; assume that the data value block 78 generated by the first link based on the composite expression 76 is 18, and the second link is based on the composite expression The data value block 79 generated by the expression 76 is 20; the data value block 80 generated by the third link based on the composite expression 76 is 25.
  • the type of the synthesizer node is Reactive Priority (RPr, Reactive Priority (Fallback)
  • the method further includes: receiving the first synthesized expression and the second synthesized expression via the input of the start block Composite expression; determining the target working link from the plurality of working links includes: calculating the first data value block of each working link based on the first composite expression; based on the second composite The expression calculates the second data value block of each working link; based on the sorting result of the first data value block of the plurality of working links, the priority order of the plurality of working links is determined; based on the priority determining the target working link from the plurality of working links according to the level order and the second data value block of each working link.
  • RPr Reactive Priority
  • Fallback Reactive Priority
  • FIG. 7A in the icon with visual effects of the synthesizer node, the type of the synthesizer node can be directly identified by text (for example, in the box of the start block 71 and the end block 72, the type of the synthesizer node can be identified in text form type).
  • FIG. 7B is a second schematic diagram of a low-code example of the FBTD logic synthesizer provided by various embodiments of the present application.
  • the start block 71 and the end block 72 are briefly identified by spaced lines with specific shapes, so that the types of synthesizer nodes can be visually identified and the display resources of the canvas can be saved.
  • the synthesizer node described above is easy to understand, but only works with a limited number of branches. Therefore, the embodiment of the present invention also introduces a new synthesizer node paradigm, which can support a large number of branches.
  • the folded synthesizer has similar functionality to the normal synthesizer, but supports folding.
  • the synthesizer node is displayed in a folded manner in a collapsible box on the graphical user interface, wherein the collapsible frame includes a first display area adapted to display the The currently displayed working links of the above-mentioned synthesizer nodes and hide the working links except the currently displayed working links.
  • the folding box further includes a second display area, a third display area, and a switching control; wherein the second display area is adapted to display the data value blocks of the currently displayed working link; the The third display area is adapted to display the label of the currently displayed working link; the switching control is adapted to switch the currently displayed working link among the plurality of working links.
  • FIG. 7C is a schematic diagram of a low-code example of a synthesizer with folded FBTD logic provided by various embodiments of the present application.
  • the first display area 88, the second display area 83, and the third display area 81 are included in the folding frame 90, wherein the first display area 88 displays a current display working link, and the current display working link includes Function block node 85 and function block node 86 .
  • the data value blocks of the currently displayed working link are displayed in the second display area 83 .
  • the label of the currently displayed working link is displayed in the third display area 81 .
  • the folding box 90 also includes a switching control 84 (for example, in the shape of an arrow) for switching the currently displayed working link among the plurality of working links.
  • the first display area 88 is preferably stretchable based on the length of the currently displayed active link contained therein.
  • folding synthesizers are another type of low-code paradigm for FBTD synthesizers.
  • Data value blocks for synthesizer expression results can be in a new column in the header row. Also, there are left and right arrow buttons to switch between different branches.
  • the data value block for the current branch is displayed in the Data Value Block column.
  • 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.
  • FIG. 8 is an exemplary structural diagram of a workflow control device provided by various embodiments of the present application.
  • the workflow control apparatus 800 includes: a first determining module 801 configured to determine the type of a synthesizer node based on the user's operation on the graphical user interface, and the synthesizer node includes a function adapted to start executing the synthesizer node.
  • the first determination module 801 is configured to determine the type of the synthesizer node based on the user's selection operation on the graphical user interface containing the node library, wherein the node library contains: semantically A synthesizer node that identifies a type or a synthesizer node that identifies a type with a rendering style.
  • 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 business operation in the workflow;
  • the first determining module 801 It is configured to receive the construction operation of the behavior tree performed by the user 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 includes the synthesizer node and the function block node; the behavior tree is used to represent the workflow, and the workflow is used to define the operation to be performed by a work unit;
  • the function block node includes: logical nodes, each logical node corresponds to an operation A template, each operation template predefines at least one type of operations that can be performed by equipment, and the operations include: actions, methods or skills; in response to the construction operation of the behavior tree, generating the behavior tree corresponding to the workflow, Wherein the logical node in the behavior tree is instantiated as the operation of the corresponding device; the behavior tree is parsed to obtain the workflow; the workflow is
  • the embodiment of the present application also provides a computer-readable storage medium, the computer-readable storage medium stores computer-readable codes, and when the computer-readable codes are executed by the processor, the processor executes the aforementioned workflow construction methods and workflow control methods.
  • 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 creation method and the workflow control method in the embodiment of the present application.
  • the embodiment of the present application also proposes a workflow creation system, which has a system structure similar to that described in FIG.
  • the system may include: at least one memory 51 , at least one processor 52 and at least one display 53 .
  • At least one processor 52 is configured to invoke a computer program stored in at least one memory 51 to execute the workflow control 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)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种工作流控制方法、装置、系统、介质及程序产品。方法包括:基于用户在图形用户界面上的操作,确定合成器节点的类型,所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路;基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路;基于所述目的工作链路,控制工作流的逻辑,其中所述工作流是基于包含所述合成器节点的行为树生成的。本申请实施例基于合成器节点实现对工作流的逻辑控制。本申请实施例还提出具有折叠结构的合成器节点,可以节约画布资源。

Description

工作流控制方法、装置、系统、介质及程序产品 技术领域
本申请实施例涉及工业技术领域,尤其涉及一种工作流控制方法、装置、系统、计算机可读存储介质和计算机程序产品。
背景技术
工作流可以简单地定义为对一系列操作过程的描述。工作流广泛应用于自动化系统、人工智能、机器人等领域。例如,自动化系统中的一条产品分拣线的工作流可以简单地描述为启动、拍照、分类并将产品移动到目标位置。在人工智能领域的模型部署工作流可以描述为数据收集、数据标注、模型训练和模型部署。
但目前这些工作流只有文本描述,如果用户想要执行这样的工作流,需要遵循文本描述,并且可能使用多种工程工具,然这些工具几乎互不相关,提供了完全不同的用户操作行为,这既是对用户的挑战,也会由于开发周期长而大大增加成本,降低效率,限制灵活性。例如,在人工智能领域,用户需要使用一个工具进行数据采集,手动或使用其他工具进行数据标注,编写python脚本进行模型训练,还需要部署工具进行部署。
为此,本领域内技术人员还在致力于寻找其他的工作流解决方案。
发明内容
本申请实施例提供一种工作流控制方法、系统、计算机可读存储介质和计算机程序产品。
第一方面,本发明实施方式提出一种工作流控制方法,包括:
基于用户在图形用户界面上的操作,确定合成器节点的类型,所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路;基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路;基于所述目的工作链路,控制工作流的逻辑,其中所述工作流是基于包含所述合成器节点的行为树生成的。
因此,本发明实施方式引入具有多种类型的合成器节点,适用于对工作流进行灵活控制。
在一个实施方式中,所述复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作。
可见,合成器节点的工作链路中可以包含功能块节点,从而提高功能块节点的控制能力。
在一个实施方式中,所述基于用户在图形用户界面上的操作,确定合成器节点的类型包括:
基于用户在包含节点库的所述图形用户界面上的所述操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
因此,本发明实施方式可以通过语义方式或呈现样式对合成器节点的类型进行标识,可以降低合成器节点的标识难度,还可以节约画布资源。
在一个实施方式中,还包括:接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。
可见,本发明实施方式的合成器节点可以适用于OT域的工作流控制方法。
在一个实施方式中,还包括:基于所述行为树生成微服务,以使得IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。
因此,本发明实施方式可以通过微服务方式实现IT域与OT域的相互融合。
在一个实施方式中,所述合成器节点的类型为并行选择;所述从所述复数条工作链路中确定出目的工作链路包括:将所述复数条工作链路中的每条工作链路,都确定为所述目的工作链路;该方法还包括:经由所述结束块的输入端接收结束逻辑值;其中当所述结束逻辑值为逻辑与时,在所述复数条工作链路都执行完毕时,经由所述结束块结束执行所述合成器节点;当所述结束逻辑值为逻辑或时,在所述复数条工作链路中出现至少一条工作链路执行完毕时,经由所述结束块结束执行所述合成器节点。
可见,本发明实施方式提出一种具有并行选择能力的合成器节点。
在一个实施方式中,所述合成器节点的类型为多分支选择,该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:确定每条工作链路被选中时的数据值块;基于所述合成表达式的计算结果,从所述复数条工作链路中选择符合对应的数据值块的目的工作链路。
可见,本发明实施方式提出一种具有多分支选择能力的合成器节点。
在一个实施方式中,所述合成器节点的类型为是否条件判断,该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式,所述合成表达式的结果包含逻辑真值或逻辑假值;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述合成表达式的结果为逻辑真值或逻辑假值,从所述复数条工作链路中确定对应的目的工作链路。
可见,本发明实施方式提出一种具有是否条件判断能力的合成器节点。
在一个实施方式中,所述合成器节点的类型为优先级,该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述合成表达式计算每条工作链路的数据值块;基于每条工作链路的数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序,从所述复数条工作链路中确定所述目的工作链路。
可见,本发明实施方式提出一种具有优先级能力的合成器节点。
在一个实施方式中,所述合成器节点的类型为反应性优先级,该方法还包括:经由所述开始块的输入端接收第一合成表达式和第二合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述第一合成表达式计算每条工作链路的第一数据值块;基于所述第二合成表达式计算每条工作链路的第二数据值块;基于所述复数条工作链路的第一数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序和每条工作链路的第二数据值块,从所述复数条工作链路中确定所述目的工作链路。
可见,本发明实施方式提出一种反应性优先级能力的合成器节点。
在一个实施方式中,包括:在所述图形用户界面上的折叠框中,以折叠方式展示所述合成器节点,其中所述折叠框包括第一展示区域,所述第一展示区域适配于展示所述合成器节点的当前展示工作链路以及隐藏除当前展示工作链路之外的工作链路。
可见,本发明实施方式提出一种具有折叠结构的合成器节点,可以节约画布资源。
在一个实施方式中,所述折叠框还包括第二展示区域、第三展示区域和切换控件;其中所述第二展示区域适配于展示所述当前展示工作链路的数据值块;所述第三展示区域适配于展示所述当前展示工作链路的标签;所述切换控件适配于在所述复数条工作链路中切换所述当前展示工作链路。
因此,本发明实施方式具有折叠结构的合成器节点,还可以灵活切换当前展示工作链路和灵活展示工作链路的标签。
第二方面,本发明实施方式提出一种工作流控制装置,包括:
第一确定模块,被配置为基于用户在图形用户界面上的操作,确定合成器节点的类型, 所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路;
第二确定模块,被配置为基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路;
控制模块,被配置为基于所述目的工作链路,控制工作流的逻辑,其中所述工作流是基于包含所述合成器节点的行为树生成的。
因此,本发明实施方式引入具有多种类型的合成器节点,适用于对工作流进行灵活控制。
在一个实施方式中,所述第一确定模块,被配置为基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
因此,本发明实施方式可以通过语义方式或呈现样式对合成器节点的类型进行标识,可以降低合成器节点的标识难度,还可以节约画布资源。
在一个实施方式中,所述复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作;
所述第一确定模块,被配置为接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。
可见,本发明实施方式的合成器节点可以适用于OT域的工作流控制过程。
第三方面,本发明实施方式提出一种工作流控制系统,包括:至少一个存储器,被配置为存储计算机可读代码;至少一个处理器,被配置为调用所述计算机可读代码,执行如上任一种所述的工作流控制方法中的步骤。
第四方面,本发明实施方式提出一种计算机可读介质,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如上任一种所述的工作流控制方法中的步骤。
第五方面,本发明实施方式提出一种计算机程序产品,所述计算机程序产品被有形地存 储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行根据如上任一种所述的工作流控制方法中的步骤。
附图说明
图1A为本申请各实施例提供的工作流创建方法的示例性流程图。
图1B为本申请一个例子中的一个资源知识图谱的示例图。
图1C为本申请一个例子中为各资源节点关联了功能块节点的示例图。
图2A为本申请一个例子中创建的行为树的示意图。
图2B至图2S分别为本申请一个例子中创建的部分行为树的示意图。
图3为本申请一个实施例提供的工作流创建系统的示例性结构图。
图4A~4D为本申请各实施例提供的工作流创建系统的示意图。
图4E为OT域低代码开发平台100在工业自动化领域的一个应用场景图。
图5为本申请实施例提供的工作流创建系统的硬件实现的示意图。
图6为本申请各实施例提供的工作流控制方法的示例性流程图。
图7A为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第一示意图。
图7B为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第二示意图。
图7C为本申请各实施例提供的、具有折叠形态的FBTD逻辑合成器的低代码范例的示意图。
图8为本申请各实施例提供的工作流控制装置的示范性结构图。
其中,附图标记如下:
S11~S13 工作流创建方法中的步骤
110 节点库
120 图形界面模块
130 编辑处理模块
140 解析部署模块
100 OT域低代码开发平台
10 OT域低代码开发工具
20 OT域微服务生成器
30 工作单元的主控制器上的运行时
40 微服务
50 第三方装置
200 知识中台
300 IT域的代码开发平台
301 IT域的代码开发工具
51 至少一个存储器
52 至少一个处理器
53 至少一个显示器
54 总线
600 工作流控制方法
601~603 步骤
70 合成器节点
71 开始块
72 结束块
73~75 功能块节点
76 合成表达式
77 结束逻辑值
78~80 数据值块
81 第三展示区域
82 折叠合成器的类型标识
83 第二展示区域
84 切换控件
85~86 功能块节点
87 合成表达式
88 第一展示区域
90 折叠框
800 工作流控制装置
801 第一确定模块
802 第二确定模块
803 控制模块
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本申请实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
下面结合附图对本申请实施例进行详细说明。
图1A示出了本申请实施例提供的一种工作流创建方法的示例性流程图。如图1A所示,该方法可包括如下步骤:
步骤S11,接收用户在图形用户界面上基于预先设置的行为树节点进行的行为树(behavior tree)的构建操作。
本实施例中,一个行为树用于表征一个工作流,所述工作流用于定义一个工作单元要执行的操作,例如,它可以表示工作单元内的分布式进程。具体实现时,这里的工作流还可细分为主工作流和子工作流。主工作流用于限定开始、结束以及触发整个工作单元流程的其他流控制。主工作流是整个流程的入口,其链接到至少一个子工作流。子工作流通常为主要工作流,每个子工作流对应一个子流程,用于实现具体的业务操作。
其中,工作单元(Workcell)可以为能够实现一个相对完整和独立的控制流程和操作的系统或设备等资源的组合。本实施例中,以工作单元为基本单位进行工作流创建,更符合工业控制的特点,可提高开发的集成度,并降低开发的复杂度。例如,以工业技术领域为例,工作单元可以根据实际的工业场景定义,比如:可以定义一个工序对应一个工作单元,或者也可以定义工序中的一个工站为一个工作单元,又或者也可以定义工站中的一个工位对应一个工作单元等,不同的工作单元的工艺流程不同。
行为树是一种形式化的图形建模方式。行为树被广泛用于各种人工类型的智能决策。由于大多数逻辑都是按照规则设定好的,对于行为的判断类似一颗树一样,有很多判断分支。行为树的行为在叶节点上,是真正要执行的行为逻辑。通过行为树方式,可以采用明确定义的符号来明确表示软件集成系统的相关需求。行为树的结构是以树的形式来组织的,每个节点都有相印的节点类型,配合相关参数承载不同的功能。可以使用组件编辑器方式为用户提供的一个直观、可视化的行为树编辑器。使用行为树编辑器,用户可以快速编辑行为树。比如,启动行为树编辑器后,可以新建行为树,然后选择行为树节点类型到行为树中,其中还可以对构成行为树的行为树节点的属性进行编辑。
本实施例中,行为树节点可包括:流控制节点和功能块节点,等等。下面对其分别进行详细描述。
一、流控制节点
流控制节点用于实现工作流中的逻辑控制,其通常独立于工作单元中的特定业务操作。通过流控制节点,用户可以根据自己的需求创建各种工作流。
具体实现时,流控制节点可包括:主控制节点、合成器(compositor)节点(也可称为聚合器节点或逻辑控制节点)以及条件节点等。或者,流控制节点也可包括:主控制节点、合成器节点以及条件节点中的一个或任意组合。下面分别对其进行简单说明。
1、主控制节点
主控制节点可包括:开始(Start)节点、结束(End)节点、转到(Goto)节点、关键(Anchor)节点、停止(Stop)节点、中止(Abort)节点中的部分或全部。
本实施例中的主控制节点不是标准的行为树元素,但本实施例中它们可用于控制工作流的主要流程,并可链接到工作流的状态机。其中,开始节点是强制性的,此外结束节点或转到节点中的一个也可以是强制性的。主控制节点主要用于定义工作流的开始和结束。此外,其他元素节点可以控制状态机(如中止和停止)或标注可以跳转的关键工艺步骤(如关键节点)。
2、合成器节点
合成器节点用于实现工作流中的逻辑控制。合成器节点可包括:顺序(Se,Sequence)节点、反应性顺序(RSe,Reactive Sequence)节点、并行(Pa,Parallel)节点、工艺内质量控制(IPQ,In-Process QC)节点、优先级(Pr,Priority(Fallback))节点、反应性优先级(RPr,Reactive Priority(Fallback))节点、是否条件判断(ITE,If-Then-Else)节点、以及多分支选择(Sw,Switch)节点中的部分或全部。
合成器节点可定义如何在行为树中执行分支,用于实现工作流中的分支逻辑控制等。例 如,下面对典型的合成器节点进行简单描述如下:
1)顺序节点,该节点可以有一到多个子节点,会按照工作流的顺序依次触发路由到各个子节点。
2)反应性顺序节点,功能同顺序节点,但是会持续检查触发条件。
3)并行节点,该节点可以有一到多个子节点,由上至下顺序启动,并在多进程或多线程中同时执行所有子节点。
4)工艺内质量控制节点,是由质量工程师对一部分工艺步骤做质量检验,如果检验失败就执行异常处理流程,如果成功就继续。
5)优先级节点:按照优先级依次执行各个子分支,如果上一个执行失败就执行下一个,任一分支执行成功就通过。
6)反应性优先级节点:功能同优先级节点,但是会持续检查触发条件。
7)是否条件判断节点:检查触发表达式,如果为真执行真分支,如果为假执行假分支。
8)多分支选择节点:检查触发表达式,并根据不同条件执行不同分支,都不满足执行默认(default)分支。
通常情况下,顺序节点和并行节点可驱动工作流中的大部分逻辑。
3、条件(C,Condition)节点
条件节点通常为行为树中检查表达式的基本逻辑元素,用于执行条件判断,返回判断结果。其根据条件是否成立返回成功或失败。条件节点从不返回运行状态。
此外,在其他实施方式中,条件节点也可包括在功能块节点之内。或者,条件节点也可单独作为一类节点。
二、功能块(FB,Function Block)节点
功能块节点用于执行命令,实现工作流中的业务操作。通常情况下,如果操作正确完成,则返回成功;如果操作失败,则返回失败。当操作正在进行时,则返回运行。
本实施例中,功能块节点包括逻辑节点,此外还可以包括一些特定类型的功能块节点,例如可包括手动(Manual)节点、动态(Dynamic)节点、延迟(Delay)节点、以及空闲(Empty(idle))节点中的部分或全部。其中,动态节点用于在运行时动态注入节点实例。手动节点表示人工步骤,在获取确认信号前停止在当前节点,获取确认信号后退出。延迟节点表示在延时指定时间后退出当前节点。空闲结点表示不执行任何操作,占位符,可以被任意功能块节点替换。其中,每个逻辑节点可对应一个操作模板,每个操作模板预先定义至少一类资源(如协作机器人类或PLC类等设备类)能够执行的操作,例如,所述操作可包括:动作、方法或技能。
具体实现时,每个操作模板可由接口部分和实现部分组成。其中实现部分可以是一个应用程序(例如,容器化应用程序),其中包含功能代码和运行依赖项。该应用程序可独立运行,并通过特定的网络通信接口对外公开。接口部分可以是以图形元素呈现的逻辑节点,即其与其他行为树节点一样,可以在图形用户界面中进行拖放、连接和配置。具体实现时,每个逻辑节点可有一个参数面板,用于配置逻辑节点的参数,例如输入和输出参数。当然,这些输入输出参数也可以预先设置有默认值。
每个逻辑节点都可以单独配置和执行。在执行行为树中的逻辑节点时,用户为逻辑节点配置的输入将被读取并传输到操作模板的实现部分,即相应的应用程序。在完成特定的操作如模型转换后,操作结果如转换后的模型将转换回逻辑节点的输出。
本实施例中,每个操作模板的接口部分和实现部分可单独存储。例如,节点库中可只存储接口部分即逻辑节点,其实现部分可存储在一节点服务模块中,本实施例中可称该节点服务模块为运行时(Runtime)。节点服务模块可位于一服务器中或者也可以位于本地。
可选地,上述逻辑节点遵循与主控制器的运行时交互的信息模型。这样,实现了OT域工作流与各种OT设备的主控制器之间的通信的标准化。
此外,考虑到一功能块节点所对应的业务操作可能由不同的主体执行,例如可以是具体的某个物理设备,也可以是某个人员,还可能是其它的虚拟化名词资源,为描述方便,本文中将这些物理设备、人员、虚拟化名词资源等统称为资源,这些资源通常指现场能够执行工作流的作为各操作主体的资源。
具体实现时,可将作为操作执行主体的资源作为功能块节点的一个普通配置参数在创建行为树时对所需的功能块节点进行相应的资源配置;或者,在创建功能块节点时就为功能块节点配置好作为操作执行主体的资源,这样创建行为树时便无需再对所需的功能块节点进行资源配置。又或者,为了方便对资源的管理,这些资源也可以资源节点的形式表示,且这些资源节点可以资源知识图谱的形式进行存储。所述资源知识图谱包括:各个资源节点,以及表示资源节点间关系的连线。例如,图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报警灯节点。当然,有些应用中,某类设备如协作机器人可能不止一个,则该类设备的各个设备可通过标号或型号等加以区分,此处不再一一赘述。
每个功能块节点可通过关联一个资源节点,将该功能块节点实例化为对应资源的操作。例如,某逻辑节点可通过关联一设备资源节点实例化为对应设备的操作。具体实现时,可为功能块节点设置一个资源头(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)节点。
或者,也可以不为功能块节点预先关联资源节点,而是在创建行为树时再为所需的功能块节点关联对应的资源节点。
又或者,还可以同时存在预先关联有资源节点的功能块节点(可称为专用功能块节点)和未关联有资源节点的功能块节点(可称为通用功能块节点)。因为通用功能块节点虽然没有关联现场资源,但并不影响包括该功能块节点的行为树对应的工作流的模拟仿真。例如,可能某个协作机器人还没有采购,为了验证可实施性,可预先采用对应的通用功能块节点进行仿真,在确定具有可实施性时,再着手采购即可。
此外,本实施例中还可进一步包括如下的装饰器节点:
三、装饰器节点
装饰器节点主要用于装饰由合成器节点驱动的功能块节点,例如,可用于决定是否可以执行行为树中的分支甚至单个节点。可包括:重复(Rp,Repeat)节点、重试(Rt,Retry)节点、一次性(OS,One-Shot)节点、超时(TO,Timeout)节点、定时器(Tm,Timer)节点、取反(Iv,Inverter)节点、强制运行(FR,Force Run)节点、强制成功(FO,Force OK)节点、强制失败(FF,Force Failed)节点、以及监视(G,Guard)节点中的部分或全部。下 面对其中的部分装饰器节点进行简要说明:
1)取反节点,其可以有一个子节点,用于对子节点取反。若子节点失败,则返回成功;若子节点成功则返回失败。
2)强制成功节点,其可以有一个子节点(如功能块节点),不论其子节点是否成功,该节点将始终返回成功。
3)强制失败节点,其可以有一个子节点(如功能块节点),不论其子节点是否成功,该节点将始终返回失败。
4)重复节点,其可以有一个子节点(如功能块节点),可重复执行其子节点固定次数。
5)重试节点,其可以有一个子节点(如功能块节点),可触发其子节点最多N次,如果其子节点返回失败,则重试且次数减一,当重试次数为零时,返回成功;如果子节点返回成功,则中断循环,并且也返回成功。其中,N为正整数。
6)一次性节点,其可以有一个子节点,表示在工作流中其子节点只执行一次,在重启工作流前不再执行。
7)超时节点,其可以有一个子节点,用于对其子节点(如功能块节点)的执行时间进行计时,当超过指定时间后退出执行(哪怕没有执行完)。
8)定时器节点,其可以有一个子节点,在达到指定时间后,执行其子节点(如功能块节点)。
9)强制运行节点,其可以有一个子节点,不论其子节点(如功能块节点)是否执行完毕,都会强制返回正在运行状态。
10)监视节点,其可以有至少一个子节点,用于监视其所有子节点的状态。当任意一个子节点执行错误时,即报错。当全部子节点都正常时,才返回正常。
在其他实施方式中,装饰器节点也可以包含在流控制节点之内。即流控制节点可包括:主控制节点、合成器节点、装饰器节点中的全部或部分。
本实施例中,各行为树节点可以图标的形式列举在图形用户界面上,用户可通过选择、拖拽图标添加到画布上的方式来确定创建工作流所需要的节点,进一步地,还可对节点进行必要的参数配置,如资源配置和/或输入输出参数配置。其中,若一个工作单元要执行的操作,即所需工作流中定义的操作不止一项,则对应该工作流的行为树可包括多个功能块节点,按照操作的顺序和相互关系,可设置对应的流控制节点,通过对所拖拽的节点进行相应的排放连接最终生成对应工作流的行为树。即所述行为树构建操作包括对行为树节点的添加及连线 操作。进一步地,还可包括为所添加的功能块节点关联资源的操作。此外,还可包括:对行为树节点的输入输出参数的配置操作。
步骤S12,响应于所述行为树的构建操作,生成对应一工作流的行为树,所述行为树中的逻辑节点被实例化为对应设备的操作。
本实施例中,可响应于所述行为树的构建操作,将各个行为树节点实例化,并建立各个实例化的行为树节点之间的连接关系。例如,通过执行本步骤,可将所添加的逻辑节点实例化为对应设备的操作。然后基于所述实例化的行为树节点之间的连接关系,生成对应一工作流的行为树。
具体实现时,上述行为树节点可存储在节点库中。此外,对于类似的应用场景,为了避免重复构建行为树的人力、时间等的浪费,对于用户已构建完成最好是已调试或运行成功的对应工作流或对应子工作流的行为树(或未实例化的行为树框架)作为一个工作流节点或子工作流节点进行存储。相应地,节点库中可进一步包括工作流(WF,WorkFlow)节点和子工作流(SWF,SubWorkFlow)节点。当用户需要构建类似的行为树时或构建包括该工作流或子工作流的行为树时,可选取对应的工作流节点或子工作流节点并对其进行必要的配置以得到用于实现所需工作流的行为树。
图2A中示出了一个例子中构建质检生产线工作单元的行为树的示意图。图2B至图2S分别示出了一个例子中构建的部分行为树的示意图。
此外,在其他实施方式中,该实施例可如图1中的虚线部分所示,进一步包括下述步骤S13。
步骤S13,对所述行为树进行解析,将所述行为树对应的工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个资源按照所述工作流执行操作。
具体实现时,该工作单元可具有一个主控制器,此时,运行时可位于该工作单元的主控制器上。相应地,资源中的设备资源可连接到该主控制器上,由该主控制器根据运行时的工作流控制与之连接的设备资源执行相应的操作;资源中的人力资源等可直接根据运行时的工作流提示执行相应的操作。
本实施例中,行为树可以Markup标记语言例如XML(可扩展标记语言)来存储,并且可被XML Schema(XSD)原型来校验,以验证该行为树的XML格式是正确的。对所述行为树进行解析后可得到以“节点链接汇编”的形式表示的工作流,之后将该工作流编译并下载到对应的工作单元的主控制器的运行时上即可。
此外,根据Gartner的定义,OT域通常指运营技术(Operational Technology,OT),其集 合了硬件和软件,通过直接地监视和/或控制物理设备(称为OT设备),检测或触发企业中过程的变化或发生的事件。OT利用计算机监视或改变诸如工业控制系统(Industrial Control System,ICS)的物理状态。其中,工业控制系统是基于计算机实现的设施、系统和设备,用于远程监视和/或控制关键的工业过程,实现物理功能。“OT”这个词的叫法用于将工业控制系统和传统的信息技术(Information Technology,IT)系统在技术实现和功能上加以区分。
目前,市场上存在诸多IT低代码开发工具或平台。其中,部分工具针对物联网的使用场景,面向有经验的IT工程师,而OT工程师和初级IT工程师则难以理解其范式。而部分工具更适用于IT域低代码开发的使用场景,不能很好地适用于OT域。
本实施例中的上述工作流创建方法可以用于此OT域,作为一种OT域低代码开发方法。具体地,图1A所示工作流创建方法可以在OT域例如一OT域低代码开发平台上予以实现,相应地,所述工作流可以为OT域工作流;所述工作单元可以为OT域内的工作单元;所述设备可以为OT设备。这里,OT设备可包括但不限于:物联网(Internet of Things,IoT)设备、可编程逻辑控制器(Programmable Logic Controller,PLC)、机器人(Robotics)、人工过程(Manual Process)、工控机(Industrial Personal Computer,IPC)等。
此外,本申请实施例中,考虑到目前IT域、OT域融合在企业数字化转型过程中变得日趋重要。为了将IT域、OT域融合为ITOT系统,目前一个亟待解决的问题是企业如何采用易于理解、而不是IT域编程的方式来收集OT域的数据并控制OT域过程。
本实施例中的上述工作流创建方法可以用于此ITOT系统,作为一种可与IT域融合的OT域低代码开发方法。同样,图1A所示工作流创建方法可以在OT域例如一OT域低代码开发平台上予以实现,相应地,所述工作流可以为OT域工作流;所述工作单元可以为OT域内的工作单元。
此外,为了实现IT域、OT域融合,可在图1A所示工作流创建方法的基础上,进一步包括:基于所述行为树生成一个微服务,以使得一IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。具体实现时,所述IT设备可直接调用或通过一个知识中台调用所述微服务。
在基于所述行为树生成一个微服务时,可基于所述行为树生成所述微服务的API。其中,所述API中的处理过程包括所述OT域工作流中各个操作,所述API的输入参数为所述OT域工作流的的输入端口获取的参数,所述API的输出参数为所述OT域工作流的输出端口输出的参数。
若要实现IT域能够调用微服务,则需要IT域能够获取微服务的信息。具体实现的方式包括但不限于以下两种:
方式一、
在方式一中,OT域的代码开发人员可将生成的各微服务的名称和IP地址通知IT域的代码开发人员,这样,IT域的代码开发人员在开发过程中可直接将各微服务的信息写入代码中,从而实现IT设备对微服务的调用。方式一比较适合微服务数量较少的场景。
方式二、
在方式二中,可采用注册、发现机制。即在所述知识中台上注册各微服务,以使得一IT域代码开发工具实现IT设备通过所述知识中台发现已连接的所述微服务。具体实现时,可利用一IT域代码开发工具通过代码开发实现IT域设备通过知识中台发现已连接的微服务。而完成微服务注册的装置可以是OT域微服务生成器或一个第三方装置。该第三方装置可以视为OT域低代码开发平台的一部分,或者在知识中台中实现。方式二比较适合微服务数量较多的场景。
本实施例中,IT设备可包括但不限于:制造运营管理(Manufacturing Operation Management,MOM)系统、制造执行系统(manufacturing execution system,MES)、企业资源计划(Enterprise Resource Planning,ERP)系统、企业服务总线(Enterprise Service Bus,ERP)、产品生命周期管理(Product Lifecycle Management,PLM)系统等。
本实施例中,由于IT域代码开发工具可通过编程实现IT设备通过一个知识中台调用微服务而触发工作单元的主控制器的运行时执行OT域工作流,从而实现了IT域的代码开发平台对OT域流程的控制,即实现了IT域和OT域的融合。这里,微服务是OT域微服务生成器基于OT域行为树自动生成的,无需IT域的代码开发工具理解OT域工作流的细节,仅需获取微服务的标识(比如:名称)和IP地址即可,无需IT域的开发人员了解OT域设备和控制流程,容易实现和理解。
本申请实施例可适用的领域包括但不限于:工业自动化(Industrial Automation),物流(Logistics),实验室(Laboratory),船舶电气(Maritime),智能电网(Smart Grid),电动汽车基础设施(Electric Vehicle Infrastructure),电动汽车(Electric Vehicle),楼宇自动化(Building Automation),智慧城市(Smart City),污水处理(Water Treatment),垃圾回收(Garbage Recycling)和智慧农业(Smart Farm)等。
以上对本申请实施例中的工作流创建方法进行了详细描述,下面再对本申请实施例中的工作流创建系统进行详细描述。本申请实施例中的工作流创建系统可用于实施本申请实施例中的工作流创建方法,对于本发明系统实施例中未详细披露的细节可参见本发明方法实施例中的相应描述,此处不再一一赘述。
图3示出了本申请实施例中一种工作流创建系统的结构示意图。如图3所示,该系统可 包括:节点库110、图形界面模块120和编辑处理模块130。
其中,节点库110中设置有用于构建行为树的行为树节点;所述行为树节点可包括:流控制节点和功能块节点。其中,一个行为树用于表征一个工作流,所述工作流用于定义一个工作单元要执行的操作。所述流控制节点用于实现工作流中的逻辑控制;所述功能块节点用于实现工作流中的业务操作,功能块节点可包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类资源如设备能够执行的操作,所述操作包括:动作、方法或技能。
在一个实施方式中,所述资源以资源节点的形式表示,且所有资源节点以资源知识图谱的形式关联存储;所述资源知识图谱包括:各个资源节点,以及表示资源节点间关系的连线。相应地,本实施例中可进一步包括:资源库150,用于以资源知识图谱的形式存储各个资源,每个资源能够执行至少一种业务操作。
在一个实施方式中,所述流控制节点可包括:主控制节点、逻辑控制节点和条件节点中的部分或全部;所述主控制节点可包括:开始节点、结束节点、转到节点、关键节点、停止节点、中止节点中的部分或全部。所述逻辑控制节点包括:顺序节点、反应性顺序节点、并行节点、工艺内质量控制节点、优先级节点、反应性优先级节点、是否条件判断节点、以及多分支选择节点中的部分或全部。
在一个实施方式中,所述功能块节点还可进一步包括:手动节点、动态节点、延迟节点、以及空闲节点中的部分或全部。
在一个实施方式中,所述行为树节点进一步包括:装饰器节点,其可包括:重复节点、重试节点、一次性节点、超时节点、定时器节点、取反节点、强制运行节点、强制成功节点、强制失败节点、以及监视节点中的部分或全部。
在一个实施方式中,所述节点库110中的部分或全部功能块节点分别绑定有执行所述功能块节点对应的业务操作的资源。
图形界面模块120被配置为提供用户基于所述节点库中的行为树节点进行行为树构建的图形用户界面GUI。
其中,各行为树节点可以图标的形式列举在图形用户界面GUI上。
编辑处理模块130被配置为响应于所述行为树的构建操作,生成对应一工作流的行为树,所述行为树中的逻辑节点被实例化为对应资源如设备的操作。具体实现时,编辑处理模块130可响应于所述行为树的构建操作,将各个行为树节点实例化,并建立各个实例化的行为树节点之间的连接关系;基于所述实例化的行为树节点之间的连接关系,生成对应一工作流的行为树。其中,实例化的功能块节点中的部分或全部关联有执行对应业务操作的资源。例如, 通过该操作,逻辑节点被实例化为对应资源如设备的操作。
本实施例中,各行为树节点可以图标的形式列举在图形用户界面上,用户可通过选择、拖拽图标到画布上的方式来确定创建工作流所需要的节点,进一步地,还可对节点进行必要的参数配置,如资源配置和/或输入输出参数配置。其中,若一个工作单元要执行的操作,即所需工作流中定义的操作不止一项,则对应该工作流的行为树可包括多个逻辑节点,按照操作的顺序和相互关系,可设置对应的流控制节点,通过对所拖拽的节点进行相应的排放连接最终生成对应工作流的行为树。
在一个实施方式中,所述构建操作可包括:添加功能块节点操作以及为所添加的功能块节点关联资源的操作。
与图1A所示方法相对应,本实施例中的工作流创建系统可进一步包括:解析部署模块140,其被配置为解析所述行为树,将所述行为树对应的工作流部署到对应的工作单元的主控制器的运行时上,以使得连接到该主控制器上的所述工作单元中的各个资源按照所述工作流执行操作。
图4A示出了本申请实施例提供的一种OT域低代码开发平台100,该平台100可用于实现图3所示的工作流创建系统。
如前所述,目前还没有一种适用于OT域的低代码开发工具和平台。图4A所示的平台100中,由于预先定义了各类OT设备能够执行操作的操作模板(可视为提供了OT域的能力),并基于操作模板构造了对应的逻辑节点,同时设置了用于构建OT域工作流的其他行为树节点,因此可以方便且快捷地创建对应OT域工作流的行为树,实现了适用于OT域的低代码开发。开发工程师无需对各类OT设备有深入的理解,即能实现OT域开发。
具体地,如图4A所示,OT域低代码开发平台100可包括:
一个OT域低代码开发工具10,该OT域低代码开发工具10可被配置为实现图3所示工作流创建系统中的图形界面模块120和编辑处理模块130,进一步地,还可实现图3所示工作流创建系统中的解析部署模块140。图3所示工作流创建系统中的节点库110可存储在一存储器上。
进一步地,如图4B所示,OT域低代码开发平台100还可包括上述工作单元的主控制器的运行时30。OT域低代码开发工具10可将生成的行为树对应的OT域工作流部署到工作单元的主控制器的运行时30上,以使得连接到该主控制器上的该工作单元中的各个OT设备按照OT域工作流执行操作。
图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域设备和控制流程,容易实现和理解。
若要实现IT域能够调用微服务40,则需要IT域能够获取微服务40的信息。与图1A所示方法相对应,其可实现的方式包括但不限于以下两种:
方式一、
在方式一中,OT域的代码开发人员可将生成的各微服务40的名称和IP地址通知IT域的代码开发人员,这样,IT域的代码开发人员在开发过程中可直接将各微服务40的信息写入代码中,从而实现IT设备对微服务40的调用。方式一比较适合微服务数量较少的场景。
方式二、
在方式二中,可采用注册、发现机制。其中,可在知识中台200上注册各微服务40,这样IT域代码开发工具301则可通过代码开发实现IT域设备通过知识中台200发现已连接的微服务40。而完成微服务40注册的装置可以使OT域微服务生成器20或如图4D所示的一个第三方装置50。该第三方装置50可以视为OT域低代码开发平台100的一部分,或者在知识中台200中实现。方式二比较适合微服务数量较多的场景。通过在知识中台上注册微服务,更加有效地实现了IT设备对微服务的调用,加强了OT域和IT域的融合。
可选地,OT域微服务生成器20可基于OT域行为树生成微服务40的API,其中,API中的处理过程可包括OT域工作流中各个功能块的操作,API的输入参数为OT域工作流的的输入端口获取的参数,API的输出参数为OT域工作流的输出端口输出的参数。
本申请实施例提供的OT域低代码开发平台100在工业自动化领域的一个应用场景如图4E所示。低代码开发工具10在用户的操作下生成对应OT域工作流的行为树,该OT域工作流定义了图4E右侧所示的作为一个工作单元的生产线要执行的操作。基于该行为树生成对应的工作流发布到运行时30,以便由运行时30控制完成所述工作单元的生产线操作;同时可基于该行为树由微服务生成器20生成对应的微服务并注册到知识中台200,这样IT域的代码开发工具301便可通过知识中台200调用对应的微服务。用户可如图4E左下角GUI中所 示通过拖拽编辑包括功能块节点在内的各个节点实现对OT域行为树的编辑,比如:首先通过知识中台200从数据库&服务器处获取所需的数据(比如:工件加工参数),控制整个工作单元的运行。这里的工作单元为一个生产线,生产线上包括机器、传送带、机械臂、人、PLC、AGB等。具体实现时,IT域的代码开发工具301也可和低代码开发工具10位于同一硬件设备上,例如同一台电脑上。
图5示出了本申请实施例提供的又一种工作流创建系统的结构示意图。如图5所示,该系统可用于实施图1A中所示的方法,或实现图3中所示的工作流创建系统,或实现图4A至图4D中任一项所述的工作流创建系统,即OT域低代码开发平台100。其中,前述的OT域低代码开发工具10、OT域微服务生成器20、运行时30、第三方装置60均可实现为单独的各个硬件设备,比如:服务器、工作站、单片机或处理芯片。或者,这些装置在同一台硬件设备上实现,其作为软件程序存储在至少一个存储器中,通过至少一个处理器的调用来实现前述的OT域低代码开发方法。其中,节点库110和生成的各个微服务40可存储在至少一个存储器中。
如图5所示,该系统可包括:至少一个存储器51、至少一个处理器52和至少一个显示器53。此外,还可以包括一些其它组件,例如通信端口(图5中未示出)等。这些组件通过总线54进行通信。
其中,至少一个存储器51用于存储计算机程序。至少一个存储器51可包括计算机可读介质,例如随机存取存储器(RAM)。此外,至少一个存储器51还可存储操作系统等。操作系统包括但不限于:Android操作系统、Symbian操作系统、Windows操作系统、Linux操作系统等等。上述计算机存储程序可包括如下程序模块:节点库110、图形界面模块120、编辑处理模块130、解析部署模块140,可选地,还可包括OT域微服务生成器20、运行时30、第三方装置50。
至少一个处理器52用于调用至少一个存储器51中存储的计算机程序,执行本申请实施例中所述的工作流创建方法。至少一个处理器52可以为微处理器、专用集成电路(ASIC)、数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、状态机等。其可通过所述通信端口进行数据的接收和发送。
至少一个显示器53用于显示图像用户界面。
具体地,至少一个处理器52用于调用至少一个存储器51中存储的计算机程序使所述系统执行上述任一实施方式中的工作流创建方法中的操作。此外,通信接口用于实现与其他设备之间的通信,比如与知识中台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设备上。
应当提及的是,本申请实施例可以包括具有不同于图5所示架构的装置。上述架构仅仅是示例性的,用于解释本申请实施例提供的工作流构建方法。
此外,本申请实施例还提供一种IT域OT域融合系统,即ITOT系统,其可包括IT设备和本申请任一实施方式中的工作流创建系统。此外,还可进一步包括:如图4C和图4D所示的IT域的代码开发平台300。
本发明实施方式还提出了利用具有功能块类型图逻辑的低代码范式(FBTD,Function Block Typed Diagram)的合成器节点以控制工作流的技术方案。图6为本申请各实施例提供的工作流控制方法的示例性流程图。
如图6所示,该方法600包括:
步骤601:基于用户在图形用户界面上的操作,确定合成器节点的类型,合成器节点包含适配于开始执行合成器节点的开始块、适配于结束执行合成器节点的结束块以及布置在开始块和所述结束块之间的复数条工作链路。
步骤602:基于合成器节点的类型,从复数条工作链路中确定出目的工作链路。
步骤603:基于目的工作链路,控制工作流的逻辑,其中工作流是基于包含合成器节点的行为树生成的。
合成器节点总是与开始块和结束块成对出现。起始块有一个可选的输入端口,以提供合成器表达式,从而可以根据合成器表达式选择目标工作链路。比如,根据合成器表达式的值选择目标工作链路,或基于合成器表达式限定的工作链路选择规则选择目标工作链路。结束块有一个称为结束逻辑值的可选的输入端口,并行类型的合成器节点使用结束逻辑值来确定它是逻辑与(AND)还是逻辑或(OR)。一组合成器对块可以包含两个或多个工作链路(即分支)。可选地,数据值块(DVB,Data Value Block)被附加到合成器对块中的每个工作链路之前,表示对应的工作链路的合成器表达式的触发值。在一个实施方式中,数据值块可以为对应的工作链路基于合成器表达式所生成的、用于选择对应工作链路的值。在另一个实施方式中,数据值块也可以是用于选择对应的工作链路的条件,其中该条件与基于合成器表达式 所生成的值相关。
在一个实施方式中,复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作。
在一个实施方式中,所述基于用户在图形用户界面上的操作,确定合成器节点的类型包括:基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
在以语义方式对类型进行标识的合成器节点中,在合成器节点的具有可视效果的图标中,以文字方式直接标识出合成器节点的类型。
在呈现样式对类型进行标识的合成器节点中,利用不同的呈现样式对合成器节点的类型进行相应的标识,比如,在合成器节点的图标中,利用组成图标的不同的线型(比如,实线、虚线、间隔线等方式)对合成器节点的类型进行相应的标识。
在一个实施方式中,还包括:接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。
在一个实施方式中,该方法还包括:基于所述行为树生成微服务,以使得IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。
下面对采用不同类型的合成器节点实现对工作流的灵活控制进行示范性说明。
图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,可以布置在各自的对应的功能块节点之前。
取决于合成器节点70的不同类型,可以实现从复数条工作链路中确定出目的工作链路的不同方式,因此实现了针对工作流的灵活控制。
在一个实施方式中,合成器节点70的类型为并行选择(Pa,Parallel);从所述复数条工作链路中确定出目的工作链路包括:将复数条工作链路中的每条工作链路,都确定为目的工作链路,并开始执行目的工作链路;该方法还包括:经由结束块的输入端接收结束逻辑值;其中当结束逻辑值为逻辑与时,在复数条工作链路都执行完毕时,经由结束块结束执行所述合成器节点;当结束逻辑值为逻辑或时,在复数条工作链路中出现至少一条工作链路执行完毕时,经由结束块结束执行所述合成器节点。
具体地,在图7A中,在合成器节点70的类型为并行选择时,无需为合成器节点70提供合成表达式76,相应地无需生成合成数据值块78~80,而且需要为合成器节点70提供结束逻辑值77。此时,第一条工作链路、第二条工作链路和第三条工作链路都被确定为目的工作链路。而且,第一条工作链路、第二条工作链路和第三条工作链路被分别执行(即同步执行功能块节点73、功能块节点74和功能块节点75),其中基于结束逻辑值77的值,确定何时停止执行合成器节点70。其中:当被提供的结束逻辑值77的值为逻辑与时,在第一条工作链路、第二条工作链路和第三条工作链路都执行完毕时,经由结束块72结束执行合成器节点70;当结束逻辑值77的值为逻辑或时,在第一条工作链路、第二条工作链路和第三条工作链路中出现至少一条工作链路执行完毕时,经由结束块72结束执行合成器节点70。
在一个实施方式中,合成器节点的类型为多分支选择(SW,Switch),该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:确定每条工作链路被选中时的数据值块;基于所述合成表达式的计算结果,从所述复数条工作链路中选择符合对应的数据值块的目的工作链路。
具体地,在图7A中,在合成器节点70的类型为多分支选择时,需要提供合成表达式76,相应地需要基于合成表达式76生成或人工提供合成数据值块78~80,但是无需提供结束逻辑值77。比如,假定数据值块为用于选择对应的工作链路的条件,其中数据值块78为:“温度大于30度且小于50度”;数据值块79为:“温度大于50度”;数据值块80为:“温度小30度”。那么,基于合成表达式生成的具体温度,可以选择对应于数值块的具体分支。比如,当生成的温度为20度时,则选择对应于数据值块80的第三条工作链路。
在一个实施方式中,合成器节点的类型为是否条件判断(ITE,If-Then-Else),该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式,所述合成表达式的结果包含逻辑真值或逻辑假值;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述合成表达式的结果为逻辑真值或逻辑假值,从所述复数条工作链路中确定对应的目的工作链路。
在这里,基于合成表达式生成的逻辑值为真或假,选择出预先设定的、对应于逻辑值的工作链路。
具体地,在图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在数据值块中最大),从而确定第三条链路为目的工作链路,并执行作为目的工作链路的第三条链路。
在一个实施方式中,所述合成器节点的类型为反应性优先级(RPr,Reactive Priority(Fallback)),该方法还包括:经由所述开始块的输入端接收第一合成表达式和第二合成表达式;所述从所述复数条工作链路中确定出目的工作链路包括:基于所述第一合成表达式计算每条工作链路的第一数据值块;基于所述第二合成表达式计算每条工作链路的第二数据值块;基于所述复数条工作链路的第一数据值块的排序结果,确定所述复数条工作链路的优先级顺序;基于所述优先级顺序和每条工作链路的第二数据值块,从所述复数条工作链路中确定所述目的工作链路。
在图7A中,在合成器节点的具有可视效果的图标中,可以通过文字方式直接标识出合成器节点的类型(比如,在开始块71、结束块72的方框中以文字形式标识出类型)。图7B 为本申请各实施例提供的FBTD逻辑合成器的低代码范例的第二示意图。在图7B中,利用具有特定形状的间隔线简略地标识开始块71和结束块72,从而既可以直观标识合成器节点的类型,还可以节约画布的展示资源。
上述的合成器节点易于理解,但仅适用于有限数量的分支。因此,本发明实施方式还引入了一种新的合成器节点范式,可以支持大量分支。折叠合成器具有与普通合成器类似的功能,但支持折叠。
在一个实施方式中,在所述图形用户界面上的折叠框中,以折叠方式展示所述合成器节点,其中所述折叠框包括第一展示区域,所述第一展示区域适配于展示所述合成器节点的当前展示工作链路以及隐藏除当前展示工作链路之外的工作链路。在一个实施方式中,所述折叠框还包括第二展示区域、第三展示区域和切换控件;其中所述第二展示区域适配于展示所述当前展示工作链路的数据值块;所述第三展示区域适配于展示所述当前展示工作链路的标签;所述切换控件适配于在所述复数条工作链路中切换所述当前展示工作链路。
图7C为本申请各实施例提供的、具有折叠形态的FBTD逻辑的合成器的低代码范例的示意图。
在图7C中,折叠框90中包含第一展示区域88、第二展示区域83和第三展示区域81,其中第一展示区域88中展示有当前展示工作链路,该当前展示工作链路包含功能块节点85和功能块节点86。第二展示区域83中展示当前展示工作链路的数据值块。第三展示区域81中展示当前展示工作链路的标签。折叠框90中还包含在所述复数条工作链路中切换所述当前展示工作链路的切换控件84(比如,箭头形状)。第一展示区域88优选为可拉伸的,可以基于包含在其中的当前展示工作链路的长度进行拉伸。可见,折叠合成器是另一种类型的FBTD合成器低代码范例。合成器表达式结果的数据值块可以在标题行的新列中。而且,有左右箭头按钮可以在不同的分支之间切换。当前分支的数据值块将显示在数据值块列中。同时,合成器当前分支的当前标签将显示在工作指令标签索引块中。折叠合成器的大小可针对不同数量的功能块进行拉伸,这种范式提供了一种在低代码画布的有限区域中显示复杂逻辑的便捷方式。
图8为本申请各实施例提供的工作流控制装置的示范性结构图。工作流控制装置800包括:第一确定模块801,被配置为基于用户在图形用户界面上的操作,确定合成器节点的类型,所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路;第二确定模块802,被配置为基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路;控制模块803,被配置为基于所述目的工作链路,控制工作流的逻辑,其中所述工作流 是基于包含所述合成器节点的行为树生成的。
在一个实施方式中,第一确定模块801,被配置为基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
在一个实施方式中,所述复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作;所述第一确定模块801,被配置为接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机可读代码,计算机可读代码在被处理器执行时,使处理器执行前述的工作流构建方法和工作流控制方法。另外,本申请实施例还提供一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行本申请实施例中的工作流创建方法和工作流控制方法中的步骤。本申请实施例还提出了一种工作流创建系统,具有类似图5所述的系统结构,其中该系统可包括:至少一个存储器51、至少一个处理器52和至少一个显示器53。至少一个处理器52用于调用至少一个存储器51中存储的计算机程序,执行本申请实施例中所述的工作流控制方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的计算机可读代码,且使该系统或者装置的计算机(或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。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

  1. 工作流控制方法(600),其特征在于,包括:
    基于用户在图形用户界面上的操作,确定合成器节点的类型,所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路(601);
    基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路(602);
    基于所述目的工作链路,控制工作流的逻辑,其中所述工作流是基于包含所述合成器节点的行为树生成的(603)。
  2. 根据权利要求1所述的工作流控制方法(600),其特征在于,所述复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作。
  3. 根据权利要求1所述的工作流控制方法(600),其特征在于,
    所述基于用户在图形用户界面上的操作,确定合成器节点的类型(602)包括:
    基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
  4. 根据权利要求2所述的工作流控制方法(600),其特征在于,还包括:
    接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;
    响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;
    对所述行为树进行解析以获取所述工作流;
    将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;
    其中所述工作流为OT域工作流;所述设备为OT设备。
  5. 根据权利要求4所述的工作流控制方法(600),其特征在于,还包括:基于所述行为树生成微服务,以使得IT设备通过调用所述微服务而触发所述工作单元的主控制器的运行时执行所述OT域工作流。
  6. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,所述合成器节点的类型为并行选择;
    所述从所述复数条工作链路中确定出目的工作链路(602)包括:
    将所述复数条工作链路中的每条工作链路,都确定为所述目的工作链路;该方法还包括:
    经由所述结束块的输入端接收结束逻辑值;
    其中当所述结束逻辑值为逻辑与时,在所述复数条工作链路都执行完毕时,经由所述结束块结束执行所述合成器节点;当所述结束逻辑值为逻辑或时,在所述复数条工作链路中出现至少一条工作链路执行完毕时,经由所述结束块结束执行所述合成器节点。
  7. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,所述合成器节点的类型为多分支选择,该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式;
    所述从所述复数条工作链路中确定出目的工作链路(602)包括:
    确定每条工作链路被选中时的数据值块;
    基于所述合成表达式的计算结果,从所述复数条工作链路中选择符合对应的数据值块的目的工作链路。
  8. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,所述合成器节点的类型为是否条件判断,该方法还包括:经由所述开始块的输入端接收预先设定的合成表达式,所述合成表达式的结果包含逻辑真值或逻辑假值;
    所述从所述复数条工作链路中确定出目的工作链路(602)包括:
    基于所述合成表达式的结果为逻辑真值或逻辑假值,从所述复数条工作链路中确定对应的目的工作链路。
  9. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,所述合成器节点的类型为优先级,该方法还包括:
    经由所述开始块的输入端接收预先设定的合成表达式;
    所述从所述复数条工作链路中确定出目的工作链路(602)包括:
    基于所述合成表达式计算每条工作链路的数据值块;
    基于每条工作链路的数据值块的排序结果,确定所述复数条工作链路的优先级顺序;
    基于所述优先级顺序,从所述复数条工作链路中确定所述目的工作链路。
  10. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,所述合成器节点的类型为反应性优先级,该方法还包括:
    经由所述开始块的输入端接收第一合成表达式和第二合成表达式;
    所述从所述复数条工作链路中确定出目的工作链路(602)包括:
    基于所述第一合成表达式计算每条工作链路的第一数据值块;
    基于所述第二合成表达式计算每条工作链路的第二数据值块;
    基于所述复数条工作链路的第一数据值块的排序结果,确定所述复数条工作链路的优先级顺序;
    基于所述优先级顺序和每条工作链路的第二数据值块,从所述复数条工作链路中确定所述目的工作链路。
  11. 根据权利要求1-5中任一项所述的工作流控制方法(600),其特征在于,包括:
    在所述图形用户界面上的折叠框(90)中,以折叠方式展示所述合成器节点,其中所述折叠框(90)包括第一展示区域(88),所述第一展示区域(88)适配于展示所述合成器节点的当前展示工作链路以及隐藏除当前展示工作链路之外的工作链路。
  12. 根据权利要求11中所述的工作流控制方法(600),其特征在于,所述折叠框(90)还包括第二展示区域(83)、第三展示区域(81)和切换控件(84);
    其中所述第二展示区域(83)适配于展示所述当前展示工作链路的数据值块;所述第三展示区域(81)适配于展示所述当前展示工作链路的标签;所述切换控件(84)适配于在所述复数条工作链路中切换所述当前展示工作链路。
  13. 工作流控制装置(800),其特征在于,包括:
    第一确定模块(801),被配置为基于用户在图形用户界面上的操作,确定合成器节点的类型,所述合成器节点包含适配于开始执行所述合成器节点的开始块、适配于结束执行所述合成器节点的结束块以及布置在所述开始块和所述结束块之间的复数条工作链路;
    第二确定模块(802),被配置为基于所述合成器节点的类型,从所述复数条工作链路中确定出目的工作链路;
    控制模块(803),被配置为基于所述目的工作链路,控制工作流的逻辑,其中所述工作流是基于包含所述合成器节点的行为树生成的。
  14. 根据权利要求13所述的工作流控制装置(800),其特征在于,
    所述第一确定模块(801),被配置为基于用户在包含节点库的所述图形用户界面上的选择操作,确定合成器节点的类型,其中所述节点库包含:以语义方式对类型进行标识的合成器节点或以呈现样式对类型进行标识的合成器节点。
  15. 根据权利要求13所述的工作流控制装置(800),其特征在于,所述复数条工作链路中的至少一条工作链路包含功能块节点,所述功能块节点用于实现所述工作流中的业务操作;
    所述第一确定模块(801),被配置为接收用户在所述图形用户界面上进行的所述行为树的构建操作;其中,所述构建操作包括行为树节点的添加及连线操作,所述行为树节点包括 所述合成器节点和所述功能块节点;所述行为树用于表征所述工作流,所述工作流用于定义一个工作单元要执行的操作;所述功能块节点包括:逻辑节点,每个逻辑节点对应一个操作模板,每个操作模板预先定义至少一类设备能够执行的操作,所述操作包括:动作、方法或技能;响应于所述行为树的构建操作,生成对应所述工作流的所述行为树,其中所述行为树中的逻辑节点被实例化为对应设备的操作;对所述行为树进行解析以获取所述工作流;将所述工作流部署到对应的工作单元的运行时上,以使得所述工作单元中的各个设备按照所述工作流执行操作;其中所述工作流为OT域工作流;所述设备为OT设备。
  16. 一种工作流控制系统,其特征在于,包括:
    至少一个存储器(51),被配置为存储计算机可读代码;
    至少一个处理器(52),被配置为调用所述计算机可读代码,执行如权利要求1~12中任一项所述的工作流控制方法(600)中的步骤。
  17. 一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在被处理器执行时,使所述处理器执行如权利要求1~12中任一项所述的工作流控制方法(600)中的步骤。
  18. 一种计算机程序产品,其特征在于,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可读指令在被执行时使至少一个处理器执行根据如权利要求1~12中任一项所述的工作流控制方法(600)中的步骤。
PCT/CN2022/075083 2022-01-29 2022-01-29 工作流控制方法、装置、系统、介质及程序产品 Ceased WO2023142076A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US18/834,082 US20250103189A1 (en) 2022-01-29 2022-01-29 Workflow Control Method, Apparatus and System, and Medium and Program Product
PCT/CN2022/075083 WO2023142076A1 (zh) 2022-01-29 2022-01-29 工作流控制方法、装置、系统、介质及程序产品
CN202280089265.6A CN118556215A (zh) 2022-01-29 2022-01-29 工作流控制方法、装置、系统、介质及程序产品
EP22922906.7A EP4455814A4 (en) 2022-01-29 2022-01-29 METHOD, APPARATUS AND WORKFLOW CONTROL SYSTEM, AND PROGRAM SUPPORT AND PRODUCT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/075083 WO2023142076A1 (zh) 2022-01-29 2022-01-29 工作流控制方法、装置、系统、介质及程序产品

Publications (1)

Publication Number Publication Date
WO2023142076A1 true WO2023142076A1 (zh) 2023-08-03

Family

ID=87470193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/075083 Ceased WO2023142076A1 (zh) 2022-01-29 2022-01-29 工作流控制方法、装置、系统、介质及程序产品

Country Status (4)

Country Link
US (1) US20250103189A1 (zh)
EP (1) EP4455814A4 (zh)
CN (1) CN118556215A (zh)
WO (1) WO2023142076A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117669710A (zh) * 2024-02-01 2024-03-08 中国人民解放军军事科学院国防科技创新研究院 面向博弈对抗任务的多行为树决策方案聚合方法和装置
CN119512525A (zh) * 2025-01-15 2025-02-25 神州灵云(北京)科技有限公司 一种参数管道传输方法、系统及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172371A1 (en) * 2000-10-20 2003-09-11 Werner Offenmuller System and method for managing software applications, particularly manufacturing execution system (MES) applications
US20190171989A1 (en) * 2017-12-06 2019-06-06 Bank Of America Corporation Dynamic Workflow Control Based on Database Logic
CN109933018A (zh) * 2017-12-18 2019-06-25 中国科学院沈阳自动化研究所 一种基于服务组合的动态可重构产线控制系统
CN109933010A (zh) * 2017-12-15 2019-06-25 中国科学院沈阳自动化研究所 一种面向个性化定制的工业cps系统和实现方法
CN112256248A (zh) * 2020-10-10 2021-01-22 合肥青谷信息科技有限公司 一种启效智慧云低代码平台
CN112835560A (zh) * 2021-03-04 2021-05-25 广州图创计算机软件开发有限公司 Web多终端低代码智能软件开发平台
CN113535836A (zh) * 2021-07-16 2021-10-22 成都融微软件服务有限公司 智能流程引擎服务系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8571745B2 (en) * 2008-04-10 2013-10-29 Robert Todd Pack Advanced behavior engine
EP3214510B1 (en) * 2016-03-03 2021-06-30 Magazino GmbH Controlling process of robots having a behavior tree architecture
CN111079244B (zh) * 2019-06-20 2022-11-25 中国航天系统科学与工程研究院 一种基于行为树的分布式仿真平台

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172371A1 (en) * 2000-10-20 2003-09-11 Werner Offenmuller System and method for managing software applications, particularly manufacturing execution system (MES) applications
US20190171989A1 (en) * 2017-12-06 2019-06-06 Bank Of America Corporation Dynamic Workflow Control Based on Database Logic
CN109933010A (zh) * 2017-12-15 2019-06-25 中国科学院沈阳自动化研究所 一种面向个性化定制的工业cps系统和实现方法
CN109933018A (zh) * 2017-12-18 2019-06-25 中国科学院沈阳自动化研究所 一种基于服务组合的动态可重构产线控制系统
CN112256248A (zh) * 2020-10-10 2021-01-22 合肥青谷信息科技有限公司 一种启效智慧云低代码平台
CN112835560A (zh) * 2021-03-04 2021-05-25 广州图创计算机软件开发有限公司 Web多终端低代码智能软件开发平台
CN113535836A (zh) * 2021-07-16 2021-10-22 成都融微软件服务有限公司 智能流程引擎服务系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4455814A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117669710A (zh) * 2024-02-01 2024-03-08 中国人民解放军军事科学院国防科技创新研究院 面向博弈对抗任务的多行为树决策方案聚合方法和装置
CN117669710B (zh) * 2024-02-01 2024-05-10 中国人民解放军军事科学院国防科技创新研究院 面向博弈对抗任务的多行为树决策方案聚合方法和装置
CN119512525A (zh) * 2025-01-15 2025-02-25 神州灵云(北京)科技有限公司 一种参数管道传输方法、系统及设备

Also Published As

Publication number Publication date
EP4455814A1 (en) 2024-10-30
US20250103189A1 (en) 2025-03-27
EP4455814A4 (en) 2025-10-29
CN118556215A (zh) 2024-08-27

Similar Documents

Publication Publication Date Title
US20250165305A1 (en) Workflow Generation Method and System
WO2023164841A1 (zh) 工作流执行方法、装置、存储介质及程序产品
WO2023142076A1 (zh) 工作流控制方法、装置、系统、介质及程序产品
WO2023142061A1 (zh) 工作流生成方法、装置、系统、介质及程序产品
CN116009844B (zh) 支持可视化拖拽进行车联网数据融合分析的产学研一体化平台
US20250130545A1 (en) Workflow Construction Methods and Systems
WO2023142079A1 (zh) 工作流创建方法、系统、介质及程序产品
US20250190909A1 (en) Dynamic Workflow Implementation Methods and Systems
CN116107730A (zh) 流程控制方法、装置及设备
WO2023142077A1 (zh) 工作流生成方法、装置、系统、介质及程序产品
WO2023142066A1 (zh) 工作流构建及监控方法、系统、介质及程序产品
WO2023164835A1 (zh) 工作流执行方法、装置、存储介质及程序产品
US20250181402A1 (en) Workflow Execution Methods and Systems
US20250130556A1 (en) Workflow Creation Method, Apparatus and Platform
US20250292034A1 (en) Conversion Method and Apparatus for Natural Language Sentence
Yu et al. The implementation of IEC60870-5-104 based on UML statechart and Qt state machine framework
CN119127226A (zh) 一种基于容器的云边融合模型自动化封装部署方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22922906

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280089265.6

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 18834082

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2022922906

Country of ref document: EP

Effective date: 20240726

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 18834082

Country of ref document: US