Motion control system, management system for automated flow, and motion control method

By introducing a motion control system into the automated process, using the first control module and the second control module to manage and execute instructions, the problems of incompatibility and high cost between devices are solved, and the precise control of the equipment and the stable and efficient operation of the process are achieved.

WO2025131094A1PCT designated stage expired Publication Date: 2025-06-26MEGAROBO TECH CO LTD

Patent Information

Application Number
PCT/CN2024/141129
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-22
Filing Date
2024-12-20
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

When the prior art integrates multiple automation equipment into the automation process, there are problems such as incompatibility between equipment, difficulty in development, high maintenance costs, high iteration costs, and interference between equipment operations.

Method used

A motion control system is provided, including a first control module and a second control module, a first control module is connected to a process control system, obtains and manages instructions, and a second control module is connected to the device, executes instructions and feedbacks information. The system realizes precise control and feedback reporting of equipment through dictionary management instructions, equipment and tasks.

Benefits of technology

Accurate control of various types of automation process equipment is achieved, reducing mutual interference between equipment, improving the stability and management efficiency of automation process, and reducing maintenance and iteration costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024141129_26062025_PF_FP_ABST
    Figure CN2024141129_26062025_PF_FP_ABST
Patent Text Reader

Abstract

Provided are a motion control system (200), a management system for an automated flow, and a motion control method. The motion control system (200) comprises a first control module (210) and a second control module (220), wherein the first control module (210) is respectively connected to a power production management system for an automated flow, and the second control module (220), and is used for acquiring a first instruction issued by the power production management system; and the second control module (220) is connected to devices (300) in the automated flow, and is used for controlling, on the basis of the first instruction, a target device to execute an action corresponding to the first instruction, and reporting, to the power production management system via the first control module (210), feedback information of the target device executing the action.
Need to check novelty before this filing date? Find Prior Art

Description

Motion control system, management system for automated process, and motion control method

[0001] This application claims priority to the Chinese patent application with application number 202311787515.6 filed with the Chinese Patent Office on December 22, 2023, and application name “Motion control system, management system for automated processes and motion control method”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of automation technology, and in particular, to a motion control system, an automation process management system, a motion control method, an electronic device, and a storage medium. Background Art

[0003] Automation technology is widely used in various technical fields. Within automated processes, multiple automated devices often need to be connected and coordinated through appropriate methods and processes to achieve automated experiments or workflows. However, due to differences in communication, interaction, messaging, and business logic among different devices, integrating these devices into automated systems is costly.

[0004] Take laboratory automation as an example. Traditional life science laboratories typically utilize decentralized, independently operated automation equipment, often provided by different vendors with varying functionality and operational methods. Due to incompatibilities and a lack of unified standards, integrating these devices into a fully automated system and achieving continuous, efficient operation across them presents significant cost and technical challenges.

[0005] In existing technology, programs for interfacing with different devices are typically developed directly within the process control system (Power Production Management System, or PMS) on the host computer, which is quite challenging. This is especially true when a large number of devices are involved, leading to numerous issues: 1) Integrating a large amount of device driver code into a single project creates a chaotic environment and increases maintenance costs; 2) For incremental devices, the iterative cost of integrated development is extremely high; and 3) the operation of different devices often affects each other. If some devices are unstable, the overall stability will be affected. Summary of the Invention

[0006] In order to at least partially solve the problems existing in the prior art, according to the first aspect of the present application, a motion control system is provided, including a first control module and a second control module, wherein the first control module is respectively connected to the process control system and the second control module of the automated process, and is used to obtain a first instruction issued by the process control system; the second control module is connected to the equipment in the automated process, and is used to control the target device to perform an action corresponding to the first instruction based on the first instruction, and report feedback information of the target device performing the action to the process control system via the first control module.

[0007] In one possible embodiment, the first control module is specifically used to manage the first instruction, the target device targeted by the first instruction, and the first task involved in the first instruction after receiving the first instruction, so as to create and start the first task, and report the feedback information sent by the second control module to the process control system; the second control module is specifically used to perform device control operations according to the first task after the first task is started, so as to control the target device to perform actions corresponding to the first task, and send feedback information to the first control module, wherein the device control operation includes instruction calling and status maintenance on the physical device of the target device.

[0008] In one possible implementation, the first control module includes a system control module and an event management module that are interconnected. The system control module is configured to, after the motion control system is started, add each instruction supported by the system, each preconfigured device, and a method for creating a task associated with each instruction to a corresponding dictionary, so as to store the name of the target device for each instruction, the name of the task associated with each instruction, and the method for creating each task. Upon receiving a first instruction, the system control module is configured to create and start a first task associated with the first instruction according to the dictionary.

[0009] The event management module is used to report the events involved in the first task and the events involved in the feedback information sent by the second control module to the process control system.

[0010] In one possible embodiment, the system control module includes a device management submodule and a task management submodule, wherein the device management submodule is used to maintain the main devices and sub-devices of each pre-configured device in the device dictionary after the motion control system is started, and after receiving the first instruction, determine whether the main device and sub-device targeted by the first instruction are in the device dictionary, wherein the main device is the main device for executing each task, and the sub-device is the device that assists the main device in executing the task; the task management submodule is used to store the method for creating tasks involved in each instruction in the task dictionary after the motion control system is started, and after receiving the first instruction, determine whether the first task is in the task dictionary, and when the first task is started, add the task instance of the first task to the task dictionary and remove the task instance from the task dictionary when the first task is completed or terminated.

[0011] In one possible embodiment, the first instruction includes an asynchronous instruction, and the system control module is used to report the first response information of the system control module and the second control module to the asynchronous instruction to the process control system, and send the second response information of the second control module to the asynchronous instruction to the event management module; the event management module is also used to report the second response information as notification information to the process control system; wherein the first response information is response information to the synchronous part of the asynchronous instruction, and the second response information is response information to the asynchronous part of the asynchronous instruction.

[0012] In a possible implementation, the second control module is configured to execute the asynchronous part of the asynchronous instruction only when the first response information indicates that the synchronous part of the asynchronous instruction is successfully executed, and send the second response information to the event management module.

[0013] In one possible embodiment, the feedback information includes error information for at least one first error event, and the event management module is further used to report the error information as notification information to the process control system when receiving the error information, and control the target device to pause the currently executed first action, where the first action is an action affected by the first error event.

[0014] In one possible embodiment, the first instruction includes a fault-tolerant instruction, wherein the event management module is further used to perform the following operations: for each error message of the first error event, obtaining first information of at least one fault-tolerant method corresponding to the first error event, and reporting the first information to the process control system, so that the process control system selects a fault-tolerant method based on the first information and issues a fault-tolerant instruction; after receiving the fault-tolerant instruction issued by the process control system, performing an elimination operation to eliminate the error message of the first error event based on preset conditions; and continuing to control the target device to perform the first action based on at least the error message of at least one first error event being eliminated.

[0015] In a possible implementation, the event management module is further used to perform the following operations: determining the priority of at least one first error event; and only performing an elimination operation for the first error event when it is determined that the priority of the current first error event is higher than the priority of other first error events.

[0016] In one possible implementation, the first error event includes a task-level error event, wherein the event management module is further used to perform the following operations: when it is determined that the first error event belongs to a task-level error event, directly executing an elimination operation for the task-level error event, and continuing to control the target device to perform the first action; executing the first fault-tolerant task for the task-level error event according to the fault-tolerant method selected by the process control system; and when the first fault-tolerant task fails to execute, uploading error information of the second error event, and controlling the target device to suspend the second action; wherein the second action is the action currently affected by the second error event.

[0017] In one possible implementation, the first error event includes a device-level error event, wherein the event management module is further used to perform the following operations: when it is determined that the first error event belongs to a device-level error event, performing a self-test operation for the device-level error event; if the result of the self-test operation indicates that the self-test is successful, performing an elimination operation for the device-level error event.

[0018] In one possible embodiment, the event management module is also used to perform the following operations: if the result of the self-test operation indicates that the self-test has failed, then executing a second fault-tolerant task for the device-level error event according to the fault-tolerant method selected by the process control system; when the second fault-tolerant task is successfully executed, executing an elimination operation for the device-level error event, and continuing to control the target device to execute the first action; and when the second fault-tolerant task fails to execute, uploading error information of the third error event, and controlling the target device to suspend the third action; wherein the third action is the action currently affected by the third error event.

[0019] In a possible implementation, the motion control system acquiring the first instruction issued by the process control system specifically includes performing the following operations: acquiring specific type information, device identification, IP address and port number of the target device targeted by the first instruction.

[0020] According to a second aspect of the present application, a management system for an automated process is also provided, comprising a process control system for the automated process and the above-mentioned motion control system.

[0021] According to the third aspect of the present application, a motion control method is also provided, including: obtaining a first instruction issued by a process control system of an automated process; controlling a target device in the automated process to perform an action corresponding to the first instruction based on the first instruction; and reporting feedback information of the target device executing the action to the process control system.

[0022] According to a fourth aspect of the present application, an electronic device is also provided, comprising a processor and a memory, wherein the memory stores computer program instructions, and the computer program instructions are used to execute the above-mentioned motion control method when the processor is running.

[0023] According to a fifth aspect of the present application, a storage medium is further provided, on which program instructions are stored, and the program instructions are used to execute the above-mentioned motion control method when running.

[0024] According to the above-mentioned motion control system of the embodiment of the present application, as a bridge connecting the process control system and the equipment, it can accurately control the target device to perform the corresponding action based on the instructions issued by the process control system, and can report the feedback information of the target device's execution of the action to the process control system. Thus, this solution can not only achieve precise control of equipment in various types of automated processes, but also achieve good interaction with the process control system. Moreover, since the control logic of the motion control system for each device does not depend on the process control system, the operation of different devices will not interfere with each other, so that the operation of the automated process is more stable and the maintenance cost is lower. In addition, in the case of changes in the equipment in the process, this solution does not need to update the program code of the control device in the process control system, but only needs to add the control module corresponding to the newly connected device in the motion control system. Therefore, it also has the advantages of low iteration cost and convenient maintenance. As a result, the management efficiency of the automated process is higher, the management cost is lower, and the user experience is better.

[0025] The Summary of the Invention introduces a series of simplified concepts that will be further described in detail in the Detailed Description of the Invention. This Summary of the Application does not intend to limit the key features and essential technical features of the claimed technical solution, nor does it intend to determine the scope of protection of the claimed technical solution.

[0026] The advantages and features of the present application are described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The following drawings of this application are hereby incorporated as part of this application for understanding this application. The drawings show the embodiments of this application and their descriptions, and are used to explain the principles of this application. In the drawings,

[0028] FIG1 shows a schematic block diagram of an automated process management system in the prior art;

[0029] FIG2 a shows a schematic block diagram of a motion control system according to an embodiment of the present application;

[0030] FIG3 shows a schematic block diagram of a project hierarchy structure of a motion control system according to an embodiment of the present application;

[0031] FIG4 shows a schematic block diagram of a motion control system according to another embodiment of the present application;

[0032] FIG5 shows a schematic block diagram of a process control system according to another embodiment of the present application;

[0033] FIG6a and FIG6b respectively show activity diagrams of asynchronous instructions according to different embodiments of the present application;

[0034] FIG7 shows a flowchart of an error reporting process according to an embodiment of the present application;

[0035] FIG8 shows a fault tolerance flow chart according to an embodiment of the present application;

[0036] FIG9a and FIG9b respectively show fault-tolerant activity diagrams according to different embodiments of the present application;

[0037] FIG10 shows a schematic block diagram of a management system for an automated process according to an embodiment of the present application;

[0038] FIG11 shows a schematic flow chart of a motion control method according to an embodiment of the present application;

[0039] FIG12 shows a schematic diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0040] In the following description, a large amount of details are provided to enable a thorough understanding of the present application. However, it will be appreciated by those skilled in the art that the following description is merely illustrative of preferred embodiments of the present application, and the present application may be implemented without one or more of these details. In addition, in order to avoid confusion with the present application, some technical features well known in the art are not described in detail.

[0041] As previously mentioned, conventional automated process management systems typically install a process control system (Power Production Management System, or PMS) on the host computer connected to the devices, and directly integrate and develop programs for interfacing with different devices within the PMS. Take, for example, a process management system for a life science laboratory project. Figure 1 shows a schematic block diagram of a conventional automated process management system. As shown in Figure 1, four devices—a robotic arm, an incubator, a workstation, and a plate washer—can be the execution devices in an automated process. These four devices are all connected to the host computer on which the PMS is installed. Before executing the automated process, developers need to write program code into the PMS to control these four devices according to the current process. This not only presents significant development challenges, but also the driver code for controlling a large number of devices is voluminous, disorganized, and leads to high maintenance costs. Furthermore, if the process changes, such as when the number of controlled devices increases, the resulting iteration costs are extremely high. For example, if a process requires the integration of multiple devices beyond the four shown in Figure 1, developers not only need to write program code to control the newly connected devices in the PMS but also need to modify the program code used to control the existing four devices, resulting in a significant workload and prone to errors. In addition, due to the mutual interference between the operations of different devices, there is also the problem of poor overall stability.

[0042] In order to at least partially solve the above technical problems, according to the first aspect of the present application, a motion control system is provided. The motion control system can be used to control the actions of all devices involved in the entire automation process. The motion control system is connected to the PMS system upward and to each device in the automation process downward, and can control each device separately based on the instructions of the PMS system to ensure the efficient operation of the automation process. Moreover, since the control logic of the motion control system for each device does not depend on the PMS system, the operation of different devices will not interfere with each other, so that the operation of the automation process is more stable and the maintenance cost is lower. In addition, in the case of changes in the equipment, there is no need to update the program code of the control device in the PMS system. It is only necessary to add the control module corresponding to the newly connected device to the motion control system. Therefore, it also has the advantages of low iteration cost and convenient maintenance.

[0043] Figure 2a shows a schematic block diagram of a motion control system 200 according to one embodiment of the present application. As shown in Figure 2a, the motion control system 200 includes a first control module 210 and a second control module 220. The first control module 210 is connected to the process control system 100 and the second control module 220 of the automated process, respectively, and is configured to obtain a first instruction issued by the process control system 100. The process control system 100 may be a PMS system. Exemplarily, the motion control system 200 obtains the first instruction issued by the process control system 100 by performing the following operations: obtaining the specific type information, device identifier, IP address, and port number of the target device for which the first instruction is issued. It is understood that the specific type of a device may be related to its function, and the specific type information may differ for devices with different functions. For example, the specific type information may differ for a robotic arm and a pipetting workstation. In particular, for two devices with similar functions, if the device models are different, their specific type information may also differ. For example, different models of robotic arms may have different specific type information. Exemplarily, the device identifier may be a device number, such as an Arabic numeral. It is understood that different devices may have different device identifiers. The device identifier can be a unique identifier of the device in the entire motion control system 200. The first instruction can be understood as the information of the request message issued by the PMS system. By obtaining the specific type information, device identifier, IP address and port number of the target device targeted by the first instruction in the request message, precise control of the target device can be achieved. The first control module 210 can be any module that can manage general processes. Specifically, the first control module 210 can communicate with the PMS system through any suitable communication interface to obtain the first instruction. For example, the first control module 210 may include a Web Application Programming Interface (Web API for short), and can interact with the PMS system through the Web API.

[0044] The first instruction can be any of a system instruction, a service instruction, and a fault-tolerance instruction. A system instruction can be a general instruction preset by the system. A system instruction can be an instruction that can be executed by every device. The name and synchronous and asynchronous behavior of these instructions can be determined. System instructions can specifically include reset instructions, shutdown instructions, terminate instructions, pause instructions, resume instructions, get live instructions, get parameter instructions, and set parameter instructions. Specifically, a reset instruction can reset the device to a usable state. Upon receiving a reset instruction, all tasks can be terminated, all errors can be cleared, and then the user-defined reset actions (typically including device connection, device initialization, heartbeat activation, and service check error reporting after initialization) can be executed. A shutdown instruction can be an instruction that controls the device to return to an unusable state. Upon receiving a shutdown instruction, all tasks can be terminated, all errors can be cleared, and then the user-defined shutdown actions (typically including heartbeat activation, device deinitialization, and device disconnection) can be executed. A terminate instruction can terminate all tasks and clear all task-level errors. A pause instruction can place the device in a paused state and suspend all tasks. A continue instruction can unpause the device and resume all tasks. Live status commands can include narrowly defined "get live status" commands, which can simply obtain system status, or broadly defined "get live status" commands, which can obtain system tasks, errors, and alarms. Get parameter commands can obtain system parameters, typically key configurations. Set parameter commands can set system parameters, typically key configurations. Some of these system commands can be synchronous, while others can be asynchronous. For example, the get live status, get parameter, and set parameter commands mentioned above can be synchronous, while the rest can be asynchronous. Service commands are commands with business implications supported by a specific device. The task class name declared by the access provider based on actual circumstances is the command name supported by the device. Upon receiving a service command request from the PMS, the first control module creates a task instance. The synchronous or asynchronous behavior of a service command can be determined by the caller, based on parameters in the PMS request message. Fault-tolerance commands are commands that the PMS selects to implement a specific fault-tolerance method for errors, i.e., fault-tolerance commands. Fault-tolerance commands can be asynchronous. In a specific example, when the automated process reaches the device node corresponding to a plate washer, the PMS can issue a business instruction to control the plate washer to start operating. For example, the first control module 210 can receive the business instruction via a Web API, execute the general business logic related to the first instruction based on the first instruction, and then send the business instruction to the second control module 220.

[0045] The second control module 220 is connected to a device 300 in the automated process and is used to control the target device to execute an action corresponding to the first instruction based on the first instruction, and report feedback information about the target device executing the action to the process control system 100 via the first control module 210. The second control module 220 can be any module capable of managing device processes. The first control module 210 and the second control module 220 can communicate with each other via various suitable bidirectional communication methods. For example, the first control module 210 and the second control module 220 can communicate with each other via sockets. Through sockets, a connection can be established between the first control module 210 and the second control module 220 for bidirectional data transmission. The second control module 220 can be connected to one or more devices 300. If the second control module 220 is connected to multiple devices 300, the target device can be one or more of the multiple devices 300. For example, the second control module 220 can be connected to a master device and multiple slave devices simultaneously. For example, the device 300 connected to the second control module 220 includes a robotic arm, a gripper, and a guide rail. The gripper is connected to the end of the robotic arm, and the robotic arm can move along the guide rail. For example, when the PMS issues a command to control the robotic arm's startup, the first control module 210 can issue this command to the second control module 220. The second control module 220 can execute a command call at the physical device level, controlling the robotic arm, gripper, and guide rail to operate simultaneously according to the command. Specifically, the second control module 220 can control the startup of the target device through a command call function, method, or interface provided by the software development kit. Furthermore, the second control module can receive feedback from the target device and report this feedback to the PMS system via the first control module 210. For example, if the first command is to control the startup of the target device, the feedback information may include status information indicating whether the target device has successfully started up, or may also include feedback information such as fault alarms. In another example, the second control module 220 may be connected to only one device 300. For example, in Figure 2, the device connected to second control module 220 is a plate washer. When the PMS issues a status monitoring instruction for the plate washer, first control module 210 can receive the status monitoring instruction via a web interface and send it to second control module 220. Second control module 220 can execute physical device-level status maintenance logic and query the status of the connected target device using methods or interfaces provided by the software development kit to obtain status information about the target device. This target device status information can then be reported to the PMS system via first control module 210.

[0046] Figure 2b shows a schematic block diagram of a motion control system 200' according to another embodiment of the present application. As shown in Figure 2b, the motion control system 200' may also include multiple groups of first control modules 210 and second control modules 220. Different groups of first control modules 210 and second control modules 220 may correspond to different devices. Each group of first control modules 210 and second control modules 220 may be referred to as a "device controller". For example, the automated process 200' shown in Figure 2b includes two "device controllers", which are used to control the first device 301 and the second device 302, respectively. Exemplarily, the number of first control modules and second control modules included in the motion control system can be set according to the number and type of devices involved in the actual automated process. For example, in the case where the automated process includes the four devices shown in Figure 1, four "device controllers" can be set in the motion control system 200, and these four "device controllers" can be connected to the robotic arm, incubator, workstation and plate washer respectively.

[0047] Figure 3 shows a schematic block diagram of the project hierarchy of a motion control system according to an embodiment of the present application. As shown in Figure 3, the entire system framework of the motion control system includes a Lib layer, a Bus layer, and a Device layer. The Lib layer contains various development libraries, runtime libraries, and tool libraries, such as basic class libraries such as graphics libraries, network libraries, and database connection libraries. The Bus layer is an aggregate class library related to the business. The Device layer refers to specific device implementations and specific logic. Specifically, as shown in the figure, the Lib project can encapsulate commonly used tool classes. The Lib.Server project can encapsulate methods that provide interface services. The Lib.UI project can encapsulate classes related to commonly used interface operations. The Bus project can contain global business logic, regardless of front-end or back-end, such as general data definitions. The Bus.Frame project can contain general background business and can specify the network interfaces provided to the outside by the first control module and the second control module. Bus.Frame can include general background logic. The Bus.UI project can contain general front-end business. The basic definition of the device can be defined in the device type abstract definition, regardless of front-end or back-end. The backend implementation component can include device-specific backend logic, such as the logic that provides an interface to the PMS system and device control logic. The frontend implementation component can include device-specific frontend logic, such as logic for user interaction. The entry process includes the device-specific entry process.

[0048] For example, the motion control system 200 according to an embodiment of the present application may also provide a device control framework. Each device control framework may include a first control module and a second control module. The device control framework provides a common set of logic that can be used for integrated device programming. Users can develop the device control framework based on the actual needs of the automation process to obtain a "device controller" capable of controlling specific devices. For example, if a laboratory project requires the integration of a new device into the motion control system 200, developers can develop based on the device control framework provided by the motion control system 200 and quickly build device-side software that meets the project's requirements to control the new device. It is understood that in the motion control system, the newly added device-side software may be referred to as the "device controller" corresponding to the new device. In this example, the device control framework is a basic framework that facilitates developers to quickly build device control software to control the newly integrated device, serving as the "device controller" for that device. Specifically, the "device controller" for each device in the automation process can run on a single computer or on multiple computers that can communicate with each other, without limitation in this application. Furthermore, for each "device controller" installed on each computer, a separate device control process is generated each time it is started. Multiple independent device control processes can be started simultaneously on the same computer. In the same automated process, multiple devices of the same model may also be included. In this way, these devices can be managed and controlled by opening the same "Device Controller" multiple times. In this case, a new device control process will be created each time the "Device Controller" is opened, so multiple devices can be managed at the same time. Each device control process is independent of each other, and they can manage and control their corresponding devices separately. In this way, multiple devices in the automated process can be managed at the same time, which can significantly improve the management efficiency and flexibility of the automated process. In addition, by starting multiple device control processes on the same computer, multiple devices can be managed and controlled simultaneously. This can improve work efficiency and fully meet the needs of a large number of devices in the laboratory's automated process scenarios.

[0049] As previously mentioned, conventional automated process management typically involves directly integrating and developing programs for interfacing different devices within the PMS system on the host computer. However, when a large number of devices need to be interfaced, this can lead to disadvantages such as chaotic program code integration, high maintenance costs, high iteration costs for integrated development, and poor overall stability. Furthermore, when some devices rely on conflicting environments or conflict with the PMS system, an additional intermediate proxy layer must be developed within the PMS system to perform forwarding, resulting in logical inconsistencies. However, the motion control system described above, according to an embodiment of the present application, acts as a bridge connecting the process control system and the devices. Based on instructions issued by the process control system, it can accurately control the target device to perform corresponding actions and report feedback information about the target device's actions to the process control system. Consequently, this solution not only enables precise control of devices in various types of automated processes but also ensures smooth interaction with the process control system. Furthermore, because the motion control system's control logic for each device is independent of the process control system, the operations of different devices do not interfere with each other, resulting in more stable automated process operation and lower maintenance costs. Furthermore, if equipment within the process changes, this solution eliminates the need to update the control device's program code within the process control system. Instead, the motion control system simply adds a control module corresponding to the newly added equipment. This reduces iteration costs and facilitates maintenance. This results in more efficient and cost-effective automated process management, resulting in a better user experience.

[0050] In some embodiments, after receiving a first instruction, the first control module 210 is specifically configured to manage the first instruction, the target device for the first instruction, and the first task associated with the first instruction, thereby creating and launching the first task, and reporting feedback information sent by the second control module 220 to the process control system (PMS). After launching the first task, the second control module 220 is specifically configured to perform device control operations based on the first task to control the target device to perform the action corresponding to the first task, and to send feedback information to the first control module. The device control operations include invoking instructions and maintaining the status of the physical device of the target device.

[0051] According to an embodiment of the present application, the tasks managed by the first control module 210 may include at least the specific tasks involved in the first instruction. The first control module 210 may employ any suitable logic to manage the received first instruction, the target device for the first instruction, and the first task involved in the first instruction. The first instruction can be understood as the information contained in a request message issued by the PMS. For example, after receiving a request message regarding the first instruction, the first control module 210 may check the validity of the request message. For example, it may check whether the target device for the first instruction exists and whether the first instruction exists. If both exist, the request message is deemed valid. It may then determine the type of the first instruction and execute corresponding general service logic based on the type of the first instruction. For example, it may determine whether the first instruction is synchronous or asynchronous. If it is a synchronous instruction, the execution result is returned only after execution is complete. If it is an asynchronous instruction, the execution result is returned after the instruction's preparation phase is complete, and an asynchronous notification is returned after the instruction's execution phase is complete. As previously mentioned, the first instruction may be a system instruction, a service instruction, or a fault-tolerant instruction. The first control module may employ different management logic for different instructions. For example, in the case where the first instruction is a task instruction, the operations of creating the first task, checking the first task, and starting the first task can be performed in sequence. The first control module 210 sends the information of starting the first task to the second control module 220 through socket communication. The second control module 220 can perform a device control operation according to the first task to control the target device to perform an action corresponding to the task, and send feedback information to the first control module 210. Specifically, the device control operation can be an operation of calling an instruction on the physical device of the target device, or an operation of performing status maintenance on the physical device of the target device. It can be understood that for different first instructions, the action performed by the target device can be different. The action performed by the target device can be an action such as starting, pausing, etc., or it can be an action such as reading device status, processing status data, and returning device status.

[0052] In the above solution, the first control module manages the first instruction, the target device for the first instruction, and the first task associated with the first instruction, thereby ensuring efficient and orderly internal processing logic. Based on the first instruction issued by the first control module, the second control module causes the target device to complete the corresponding action and reports the feedback information from the target device's execution of the action to the process control system through the first and second control modules. This not only achieves unified management of the target device by the process control system, but also ensures interaction between the process control system and the target device, making device control more precise and ensuring the efficient operation of the automated process. This also ensures the reliability and stability of the motion control system.

[0053] FIG4 shows a schematic block diagram of a motion control system according to another embodiment of the present application. As shown in FIG4 , the first control module 210 includes a system control module 211 and an event management module 212 that are interconnected. The system control module 211 is used to add the various instructions supported in the system, the pre-configured devices, and the methods for creating tasks involved in each instruction to the corresponding dictionary after the motion control system 200 is started, so as to store the names of the target devices targeted by each instruction, the names of the tasks involved in each instruction, and the methods for creating each task. After receiving the first instruction, the first task related to the first instruction is created and started according to the dictionary. The event management module 212 is used to report the events involved in the first task and the events involved in the feedback information sent by the second control module 220 to the process control system 100.

[0054] According to an embodiment of the present application, the dictionary used to store the name of the target device targeted by each instruction, the name of the task involved in each instruction, and the method of creating each task can have any form. Exemplarily and not restrictively, the dictionary can be a data structure in the form of "Key->Value", which can be used to record the device's support information for the instruction. For example, the Key can be "device name + task name", and the Value can be the method of creating a task. Exemplarily, after the motion control system 200 is started, for example, when the "device controller" corresponding to a certain device is turned on and running, the system control module 211 can be loaded. Exemplarily, the above-mentioned dictionary can include an instruction dictionary, a device dictionary, and a task dictionary. Exemplarily, when the system control module 211 is loaded, the system control module 211 can collect all supported instructions in the background program set through a reflection mechanism and maintain them in the instruction dictionary; and can load all devices preset in the configuration files and maintain them in the device dictionary of the system control module 211; and can also store the name of the task involved in each instruction and the method of creating each task in the task dictionary. After the PMS issues a control instruction for a device, the system control module 211 uses the received instruction and a maintained dictionary to search for a method to create the first task specified by the instruction. This allows the module to accurately create and initiate the task. Furthermore, the event management module 212 interacts with the PMS system for events. For example, the event management module 212 can implement error reporting, fault tolerance, alarms, and notifications by invoking the network interface provided by the PMS system.

[0055] In the above scheme, the system control module and the event management module are reasonably distinguished and set in the first control module, which can improve the maintainability, scalability and reliability of the entire motion control system and make the various functional modules of the motion control system more independent, decoupled and flexible.

[0056] It will be appreciated that the primary logic within the system control module 211 is device-dependent. For example, in the motion control system 200, each device control framework can implement common device logic within a device base class. Accessors can inherit from the device base class and override its abstract methods, achieving polymorphic control of specific devices. Specifically, the system control module 211 can control instruction execution behavior using information contained in PMS system request messages. The request message may include information such as the instruction type, device identifier, and task parameters. Based on this information, the system control module 211 can create and initiate the task associated with the instruction. Figure 5 shows a schematic block diagram of a process control system according to another embodiment of the present application. As shown in Figure 5, the system control module 211 includes a device management submodule 2111 and a task management submodule 2112. The device management submodule 2111 is configured to maintain the preconfigured master and subdevices of each device in a device dictionary after the motion control system 200 is started. Upon receiving a first instruction, the submodule 2111 determines whether the master and subdevices targeted by the first instruction are in the device dictionary. The master device is the primary device that executes each task, and the slave device is a device that assists the master device in executing the task. Task management submodule 2112 is used to store the method for creating tasks associated with each instruction in a task dictionary after the motion control system 200 is started. Upon receiving a first instruction, it determines whether the first task is in the task dictionary. Furthermore, upon starting the first task, it adds a task instance for the first task to the task dictionary, and upon completion or termination of the first task, removes the task instance from the task dictionary.

[0057] As shown in the figure, the device management submodule 2111, the task management submodule 2112, and the event management module 212 can all communicate with each other. As previously mentioned, the dictionaries mentioned above can include a command dictionary, a device dictionary, and a task dictionary. The device dictionary and task dictionary are stored in the device management submodule 2111 and the task management submodule 2112, respectively. For example, when the "device controller" corresponding to a particular device is enabled, the system control module 211 can be loaded. When loading the system control module 211, all supported commands in the background program set can be collected through reflection and stored in the command dictionary. When loading the system control module 211, the device management submodule 2111 can load all devices pre-configured in the configuration file and store them in the device dictionary. For example, a "device controller" can contain one master device and multiple sub-devices. For example, consider a control device consisting of a robotic arm, a gripper, and a guide rail. The gripper is connected to the end of the robotic arm, and the robotic arm can move along the guide rail. In this example, the master device can be the robotic arm, while the gripper and guide rail are sub-devices. When the PMS system issues a control instruction for the master device among the three devices, the three devices will act simultaneously according to the instruction. The task management submodule 2112 can store the names of the tasks involved in each instruction and the method of creating each task in the task dictionary.

[0058] For example, after the PMS system issues the first "Start Device A" command, if the basic format of the corresponding message request is correct, the system control module 211 can receive the call request via the Web API. For example, the request log can be printed first, and then the validity of the request message can be checked using the following method. First, the validity of the basic parameters in the message can be checked. Then, the device management submodule 2111 in the system control module 211 can use the device identifier of the target device contained in the message to check whether the device identifier exists in the device dictionary. If so, the system control module 211 can use the instruction information contained in the message to check whether the instruction exists in the instruction dictionary. For example, it can check whether the instruction belongs to any of the various system instructions, business instructions, or fault-tolerant instructions listed in the previous example. It can then further distinguish whether it is a synchronous or asynchronous instruction. If it is synchronous, it returns only after the instruction's preparation phase is completed. If it is asynchronous, it returns after the instruction's execution phase is completed, and asynchronous notification is issued after the instruction's execution phase is completed. Subsequently, the task management submodule 2112 can create and start a task based on the instruction type. For example, the instruction "start device A" is a business instruction. The task management submodule 2112 can create an instance object of the instruction through reflection. Specifically, the task management submodule 2112 can find the target device targeted by the instruction from the device dictionary of the device management module 2111 and create a task for the target device. Then, the task can be checked. Specifically, the inspection task can include general checks and specific checks. General checks include, for example, checking device status, parallel tasks, error impact, etc. Specific checks can be business-level checks. After the inspection task is successful, the task can be started. Specifically, the task may be divided into multiple serial stages, and multiple stages can be delegated to serial machines for execution. Finally, the task instance of the task can be added to the task dictionary. And, when the task is completed or terminated, the task instance is removed from the task dictionary.

[0059] In the above embodiment, by setting up a device management submodule and a task management submodule in the system control module, the system control module can better manage and control the devices and tasks in the system, improving the system's availability, manageability, and scalability. At the same time, this modular design is also conducive to the system's division of labor and cooperation and functional independence, improving the efficiency of development, maintenance, and upgrades. In addition, setting up three independent modules in the first control module to manage tasks, devices, and events respectively makes management more orderly, significantly improves the operating efficiency of the motion control system, can achieve accurate and efficient control of the equipment, and improves the management efficiency and operational stability of the automation process.

[0060] In some embodiments, the first instruction includes an asynchronous instruction. The system control module 211 is configured to report first response information from the system control module 211 and the second control module 220 to the asynchronous instruction to the process control system 100, and to send second response information from the second control module 220 to the asynchronous instruction to the event management module 212. The event management module 212 is further configured to report the second response information as notification information to the process control system 100. The first response information is a response to the synchronous portion of the asynchronous instruction, and the second response information is a response to the asynchronous portion of the asynchronous instruction.

[0061] As you can understand, synchronous and asynchronous responses refer to two different ways of communicating and interacting between different programs or code. In synchronous responses, communication between two or more programs is based on a synchronous mechanism. That is, after a program sends a request, it must wait for a response before continuing. In this case, the execution order of the programs is strictly ordered and has dependencies, and each step must be executed in a specific sequence. A common synchronous communication mechanism is blocking calls, where the caller waits for a response after sending a request. In asynchronous responses, communication between two or more programs is based on an asynchronous mechanism. That is, after a program sends a request, it does not need to wait for a response before continuing. In this case, the execution order of the programs is undefined, and each step can proceed independently. A common asynchronous communication mechanism is non-blocking calls, where the caller returns immediately after sending a request and can continue with other operations without waiting for a response.

[0062] By way of example and not limitation, the second control module 220 is configured to execute the asynchronous portion of an asynchronous instruction and send the second response to the event management module 212 only if the first response indicates successful execution of the synchronous portion of the asynchronous instruction. For example, the synchronous portion of an asynchronous instruction begins with the receipt of a request and ends with the return of a response. The asynchronous portion of an asynchronous instruction begins with the end of the synchronous portion and ends with the asynchronous notification response. For example, the synchronous portion performs a check operation and a plan operation, while the asynchronous portion performs an execution operation. As previously mentioned, the pause instruction in a system instruction is an asynchronous instruction. Referring again to FIG. 4 , assuming the first instruction is a pause instruction, the system control module 211 can send the task associated with the instruction to the second control module 220 after receiving the pause instruction. The second control module 220 can then execute the synchronous portion of the pause instruction, such as performing a check operation to determine whether the pause operation is possible. If the check operation is successful, the second control module 220 can send a response indicating successful execution of the synchronous portion to the PMS via the system control module 211. In this case, the synchronous reply can be "successful." Furthermore, the second control module 220 can control the device to actually perform the pause operation. After the pause operation is completed, an asynchronous notification response can be sent to the PMS via the system control module 211 and then the event management module 212, indicating the end of the pause operation. If the synchronous check fails, indicating that the pause instruction cannot be executed, the second control module 220 can send a response indicating the failure of the synchronization to the PMS via the system control module 211. In this case, the synchronous reply response is "reject."

[0063] Figures 6a and 6b respectively illustrate activity diagrams for asynchronous instructions according to different embodiments of the present application. As shown in Figure 6a, if the synchronous portion of an asynchronous instruction fails to execute, the synchronous reply will be "rejected" and will not contain the asynchronous portion. As shown in Figure 6b, if the synchronous portion of an asynchronous instruction executes successfully, the synchronous reply will be "successful" and will contain the asynchronous portion. The asynchronous notification response can be implemented by the event management module 212 calling a network interface provided by the process control system (PMS). Optionally, the network interface can be an HTTP interface or a web interface.

[0064] In the above embodiment, the first instruction can be an asynchronous instruction, and the execution of the asynchronous instruction can span multiple calls. In the central processing unit, the execution of the asynchronous instruction can be performed simultaneously with the user program loop. Asynchronous instructions can achieve parallel processing, thereby further improving the operating efficiency of the motion control system 200. In the above embodiment, the asynchronous portion of the asynchronous instruction is executed only when the synchronous portion of the asynchronous instruction is successfully executed, thereby simplifying the operating logic of the motion control system and improving operating efficiency.

[0065] Referring again to Figure 4, an event can be the logic and interaction generated by the motion control system 200 reporting a message to the process control system PMS. When the second control module 220 triggers an event, the event management module 212 can notify the process control system 100, that is, the internal logic of the motion control system 100 notifies the event management module 212, and then calls the operating logic generated by the network interface provided by the process control system 100. Compared with the query mechanism, the event notification mechanism has the advantage of high timeliness, but the information notified is incremental. If only relying on the event notification mechanism, it is difficult to ensure the integrity of the information. In an embodiment of the present application, the query mechanism and the event notification mechanism can also be combined by calling instructions such as obtaining the actual situation (for example, obtaining the device status, task status) in the system instructions. In this way, after receiving the notification, the caller can know that the actual situation has changed, and can then obtain the full amount of information through the query mechanism. Combining the query mechanism and the event notification mechanism can ensure both the efficiency and the integrity of the feedback information.

[0066] In some embodiments, the feedback information includes error information regarding at least one first error event. The event management module 212 is further configured to, upon receiving the error information, report the error information as notification information to the process control system 100 and control the target device to pause a currently executing first action. The first action is an action affected by the first error event.

[0067] FIG7 shows an error reporting flow chart according to an embodiment of the present application. As shown in FIG7 , when a target device fails, the error information of the error event can be reported to the process control system 100 via the second control module 220 and the event management module 212 in sequence. In addition, upon receiving the error information, the event management module 212 can also control the target device to suspend the execution of the current action through the second control module 220. The action can only include actions affected by the current error event. For example, when the target device is performing multiple actions at the same time, if an error occurs in the task corresponding to a certain action, the event management module 212 can control the target device to stop the action. Other actions can proceed normally.

[0068] The error message may use a field in the error to uniquely identify the error. For example, the error field may be a task identifier, a status code, or a unique device identifier. The same error message will not be reported repeatedly. For example, when reporting an error, the event management module 212 may also provide corresponding fault tolerance methods.

[0069] In the above embodiment, when the event management module 212 receives error information, it can promptly control the target device to suspend the execution of the currently affected action, thereby minimizing the adverse effects of the error on the device and task, and ensuring the efficient and stable operation of the automation process.

[0070] In some embodiments, the first instruction includes a fault-tolerance instruction. The event management module 212 is further configured to perform the following operations: for each first error event, obtain first information of at least one fault-tolerance method corresponding to the first error event, and report the first information to the process control system 100, so that the process control system 100 selects a fault-tolerance method based on the first information and issues a fault-tolerance instruction; after receiving the fault-tolerance instruction issued by the process control system 100, perform an elimination operation to eliminate the error information of the first error event based on a preset condition; and, based on at least one error information of the first error event being eliminated, continue to control the target device to perform the first action.

[0071] The first information may include information about multiple fault-tolerance methods for the current error message. The preset conditions may be any suitable conditions. Figure 8 illustrates a fault-tolerance flow chart according to one embodiment of the present application. As shown in Figure 8, the fault-tolerance instruction is an instruction for the process control system 100 to select and execute a specific fault-tolerance method for the error. The fault-tolerance instruction is an asynchronous instruction. The specific fault-tolerance methods for the error may be specified by the motion control system 200 based on the specific circumstances. Specifically, the event management module 212 may search for multiple fault-tolerance methods corresponding to the first error event and send these methods to the process control system 100. The process control system 100 then determines one of the fault-tolerance methods and issues the fault-tolerance instruction. After receiving the fault-tolerance instruction, the system control module 211 may locate the device involved in the fault-tolerance instruction and transfer the error to the event management module 212. The event management module 212 may perform a correction operation based on the preset conditions. The correction operation may be performed directly, or the error type may be determined or checked before the correction operation is performed. If the current error type meets the preset type requirements or the check result meets the preset requirements, the correction operation may be performed. Then, you can perform fault tolerance according to the current fault tolerance method. If all errors are tolerated and the device status is ready, you can continue to execute the suspended task.

[0072] In the above embodiment, the process control system issues a fault-tolerance instruction, which the event management module receives and executes to eliminate the error. After eliminating the first error event, the target device resumes executing the first action. When the first error event occurs, the event management module can quickly handle it and restore the target device to continue executing the first action, ensuring the stability and reliability of the motion control system.

[0073] In some embodiments, the event management module 212 is also used to perform the following operations: determine the priority of at least one first error event; and only perform an elimination operation for the first error event when it is determined that the priority of the current first error event is higher than the priority of other first error events.

[0074] According to an embodiment of the present application, when the event management module 212 simultaneously receives multiple error events, it can determine a priority based on the type of each error event. Specifically, errors can be categorized into device-level errors and task-level errors based on whether the error is task-related. Different fault tolerance methods can be used for different types of errors. Device-level errors can occur during a device reset, heartbeat, or error notification received from a physical device. Examples include device initialization failure and device disconnection. The user can specify a self-checking method for each device-level error based on actual circumstances, allowing the motion control system to understand when the error is considered resolved. The user can also specify corresponding fault tolerance methods based on actual circumstances. Task-level errors can occur during a specific stage of task execution. Examples include a gripper missing grip or code scanning failure. The user can specify whether the fault tolerance methods for each task-level error at each stage include retry or ignore. Retrying means re-executing the stage, while ignore means skipping the stage. For example, the priority of error events, from highest to lowest, is: device out-of-control error, device-level error, and task-level error. When reporting a device-level error, the device specifies whether the error is out-of-control. For example, in the event of an out-of-control situation like a disconnected connection, the device cannot be automatically controlled. Therefore, other errors can only be tolerated if they are not out-of-control. For example, if the current error event includes an out-of-control device error, fault tolerance for that out-of-control device error can be prioritized. This prioritized fault tolerance method provides more logical execution and ensures the orderly and efficient execution of fault tolerance instructions.

[0075] In this solution, the event management module can systematically resolve each error event based on its priority, significantly preventing defects. Furthermore, its clear internal logic and stable operation further enhance the stability and reliability of the motion control system, ensuring efficient and stable operation of the automation process.

[0076] In some embodiments, the first error event includes a task-level error event. The event management module 212 is also used to perform the following operations: when it is determined that the first error event belongs to a task-level error event, directly perform the elimination operation for the task-level error event, and continue to control the target device to perform the first action; execute the first fault-tolerant task for the task-level error event according to the fault-tolerant method selected by the process control system 100; and when the first fault-tolerant task fails to execute, upload the error information of the second error event and control the target device to suspend the second action. The second action is the action currently affected by the second error event. It can be understood that the first fault-tolerant task is a fault-tolerant task for the task-level error.

[0077] Refer again to Figure 8 . As shown, error events can be categorized into device-level error events and task-level error events based on whether the first error event is associated with a task. As previously mentioned, task-level errors occur during task execution. Examples of task-level errors include an empty gripper grip or a failed code scan. According to an embodiment of the present application, when the first error event is a task-level error event, the event management module 212 can directly perform a cancellation operation. The fault-tolerance task for this task-level error event can then be executed according to the fault-tolerance method selected by the process control system 100. For example, fault-tolerance methods for task-level errors can include retry and ignore. Retrying means re-executing the current phase, while ignoring means skipping the current phase. For example, the previous error event can be directly cancelled, and the retry fault-tolerance task can be executed. If the fault-tolerance task fails, the event management module 212 can report the error information of the second error event to the process control system 100 and control the target device to pause the second action. It is understood that the error information of the second error event reported by the event management module 212 may be the same as the error information of the previous first error event. In some special cases, there may be differences. The second action is the action currently affected by the second error event. If the second error event is the same as the first error event, the second action can be the same as the first action. If the second error event is different from the first error event, the second action may also be different from the first action.

[0078] In the above embodiment, when the first error event is a task-level error event, the event management module can directly perform a correction operation and execute a fault-tolerance task for the task-level error event. If the fault-tolerance task fails, the error event is re-reported to the process control system. This fault-tolerance process is more rational and has simpler logic, resulting in more efficient control of the device and ensuring the efficient operation of the automated process.

[0079] In some embodiments, the first error event comprises a device-level error event, wherein the event management module is further configured to: upon determining that the first error event is a device-level error event, perform a self-test operation for the device-level error event; and if a result of the self-test operation indicates that the self-test is successful, perform a correction operation for the device-level error event.

[0080] As previously mentioned, fault-tolerant instructions are asynchronous instructions. Therefore, fault-tolerant instructions consist of synchronous and asynchronous parts. The synchronous part begins with the receipt of a request and ends with a response; the asynchronous part begins with the end of the synchronous part and ends with the asynchronous notification response. For device-level error events, the synchronous part of a fault-tolerant instruction can be a self-check operation for that device-level error event. Figures 9a and 9b respectively illustrate fault-tolerant activity diagrams according to different embodiments of the present application. Referring to Figures 8 and 9a, when the first error event is a device-level error event, the event management module 212 first executes the synchronous part of the fault-tolerant instruction, namely the self-check operation. If the self-check is successful, it can respond to the process control system with a success response regarding the synchronous part. It can then proceed with operations to resolve the first error event. As previously mentioned, device-level error events typically occur during a device reset, during a heartbeat, or when a physical device error notification is received in other circumstances. For example, device initialization failure or device disconnection. For example, a self-check method can be specified for each device-level error based on actual circumstances, allowing the motion control system 200 to understand when the error is considered resolved. The user can also specify a corresponding fault-tolerant method based on actual circumstances.

[0081] In the above embodiment, when the error event is a device-level error event with a relatively high priority, the event management module first performs a self-check operation on the device-level error event. Only if the self-check operation is successful does it perform an operation to eliminate the device-level error event. This effectively improves the accuracy of the fault-tolerant operation and avoids wasting computing power.

[0082] In some embodiments, the event management module 212 is further configured to perform the following operations: if the result of the self-test operation indicates a self-test failure, executing a second fault-tolerance task for the device-level error event according to the fault-tolerance method selected by the process control system; if the second fault-tolerance task is successfully executed, executing a correction operation for the device-level error event and continuing to control the target device to execute the first action; and if the second fault-tolerance task fails, uploading error information for a third error event and controlling the target device to suspend a third action. The third action is the action currently affected by the third error event.

[0083] In conjunction with Figures 8 and 9b, when the self-check operation fails, the event management module 212 executes the fault-tolerant task according to the fault-tolerant method selected by the process control system 100 for the current device-level error event. When the fault-tolerant task is successfully executed, the current error can be eliminated, and the target device can continue to be controlled to perform the first action. When the elimination operation fails, the error information of the third error event is reported to the process control system 100, and the target device is controlled to suspend the third action. Similar to the error information of the second error event, the error information of the third error event reported by the event management module 212 may be the same as or different from the error information of the previous first error event. The second action may be the same as or different from the first action.

[0084] The execution logic of the above-mentioned fault-tolerant instructions for device-level error events is orderly and reasonable, which can ensure that the device is always in a controllable state, thereby ensuring the overall stability and reliability of the motion control system, and also ensuring the efficient and stable operation of the automation process.

[0085] According to a second aspect of the present application, a management system for an automated process is also provided. Figure 10 shows a schematic block diagram of a management system 400 for an automated process according to one embodiment of the present application. As shown, the management system 400 includes a process control system 100 for an automated process and the aforementioned motion control system 200.

[0086] The management system for automated processes described above not only enables precise control of equipment in various types of automated processes, but also enables good interaction with process control systems. Furthermore, because the motion control system's control logic for each device is independent of the process control system, the operations of different devices do not interfere with each other, resulting in more stable operation of the automated process and lower maintenance costs. Furthermore, if equipment in the process changes, this solution eliminates the need to update the program code for the control device in the process control system; instead, it only requires adding control modules corresponding to the newly connected device to the motion control system. Therefore, it also has the advantages of low iteration costs and convenient maintenance. Consequently, the management efficiency of automated processes is higher, management costs are lower, and the user experience is better.

[0087] According to a third aspect of the present application, a motion control method is also provided. Figure 11 shows a schematic flow chart of a motion control method 500 according to an embodiment of the present application. As shown in Figure 11, the motion control method 500 includes steps S510 to S530.

[0088] Step S510: Acquire a first instruction issued by a process control system of an automated process.

[0089] Step 520 : Based on the first instruction, control the target device in the automation process to execute an action corresponding to the first instruction.

[0090] Step S530: reporting feedback information of the target device executing the action to the process control system.

[0091] This motion control method enables precise control of various types of automated process equipment and interacts effectively with process control systems. Furthermore, the control logic for each device in this solution is independent of the process control system, preventing interference between different devices. This results in more stable automated processes and lower maintenance costs. This, in turn, improves automated process management efficiency, reduces management costs, and provides a better user experience.

[0092] According to a fourth aspect of the present application, an electronic device is also provided. FIG12 shows a schematic diagram of an electronic device 600 according to one embodiment of the present application. As shown in the figure, the electronic device 600 includes a processor 610 and a memory 620. The memory 620 stores computer program instructions, which, when executed by the processor 610, are used to execute the motion control method 500 described above.

[0093] According to a fifth aspect of the present application, a storage medium is further provided, on which program instructions are stored. The program instructions are used to execute the above-mentioned motion control method 500 when running.

[0094] Example

[0095] Example 1. A motion control system, comprising a first control module and a second control module, wherein:

[0096] The first control module is connected to the process control system of the automation process and the second control module respectively, and is used to obtain the first instruction issued by the process control system;

[0097] The second control module is connected to the equipment in the automated process, and is used to control the target device to perform an action corresponding to the first instruction based on the first instruction, and report feedback information of the target device performing the action to the process control system via the first control module.

[0098] Embodiment 2. The motion control system according to embodiment 1, wherein:

[0099] The first control module is specifically configured to, after receiving the first instruction, manage the first instruction, the target device targeted by the first instruction, and the first task involved in the first instruction, so as to create and start the first task, and report the feedback information sent by the second control module to the process control system;

[0100] The second control module is specifically used to perform device control operations according to the first task after the first task is started, so as to control the target device to perform actions corresponding to the first task, and send the feedback information to the first control module, wherein the device control operation includes instruction calling and status maintenance of the physical device of the target device.

[0101] Embodiment 3. The motion control system according to embodiment 1 or 2, wherein the first control module comprises a system control module and an event management module connected to each other, wherein:

[0102] The system control module is configured to, after the motion control system is started, add each instruction supported by the system, each pre-configured device, and a method for creating a task involved in each instruction to a corresponding dictionary, so as to store the name of the target device targeted by each instruction, the name of the task involved in each instruction, and the method for creating each task; and upon receiving the first instruction, create and start a first task related to the first instruction according to the dictionary;

[0103] The event management module is used to report the events involved in the first task and the events involved in the feedback information sent by the second control module to the process control system.

[0104] Embodiment 4. The motion control system according to any one of embodiments 1 to 3, wherein the system control module includes a device management submodule and a task management submodule, wherein:

[0105] The device management submodule is configured to maintain the master device and sub-device of each pre-configured device in a device dictionary after the motion control system is started, and upon receiving the first instruction, determine whether the master device and sub-device targeted by the first instruction are in the device dictionary, wherein the master device is the main device for performing each task, and the sub-device is a device that assists the master device in performing the task;

[0106] The task management submodule is used to store the method of creating tasks involved in each instruction in the task dictionary after the motion control system is started, and after receiving the first instruction, determine whether the first task is in the task dictionary, and when the first task is started, add the task instance of the first task to the task dictionary and remove the task instance from the task dictionary when the first task is completed or terminated.

[0107] Embodiment 5. The motion control system of any one of embodiments 1 to 4, wherein the first instruction comprises an asynchronous instruction.

[0108] The system control module is configured to report first response information of the system control module and the second control module to the asynchronous instruction to the process control system, and send second response information of the second control module to the asynchronous instruction to the event management module;

[0109] The event management module is further configured to report the second response information as notification information to the process control system;

[0110] The first response information is response information to the synchronous part of the asynchronous instruction, and the second response information is response information to the asynchronous part of the asynchronous instruction.

[0111] Example 6. A motion control system as described in any one of Examples 1 to 5, wherein the second control module is used to execute the asynchronous part of the asynchronous instruction only when the first response information indicates that the synchronous part of the asynchronous instruction is successfully executed, and send the second response information to the event management module.

[0112] Embodiment 7. The motion control system according to any one of embodiments 1 to 6, wherein the feedback information includes error information for at least one first error event,

[0113] The event management module is further configured to, upon receiving the error message, report the error message as notification information to the process control system, and control the target device to suspend a first action currently being executed, wherein the first action is an action affected by the first error event.

[0114] Embodiment 8. The motion control system of any one of embodiments 1 to 7, wherein the first instruction comprises a fault-tolerant instruction, wherein:

[0115] The event management module is further configured to perform the following operations:

[0116] For each first error event,

[0117] Acquire first information of at least one fault tolerance method corresponding to the first error event, and report the first information to the process control system, so that the process control system selects a fault tolerance method based on the first information and issues a fault tolerance instruction;

[0118] After receiving the fault-tolerant instruction issued by the process control system, performing an elimination operation of eliminating the error information of the first error event based on a preset condition; and

[0119] At least based on the fact that the error information of the at least one first error event is eliminated, continue to control the target device to perform the first action.

[0120] Embodiment 9. The motion control system according to any one of embodiments 1 to 8, wherein the event management module is further configured to perform the following operations:

[0121] determining a priority of the at least one first error event; and

[0122] The elimination operation for the first error event is performed only when it is determined that the priority of the current first error event is higher than the priorities of other first error events.

[0123] Embodiment 10. The motion control system of any one of embodiments 1 to 9, wherein the first error event comprises a task-level error event, wherein:

[0124] The event management module is further configured to perform the following operations:

[0125] When it is determined that the first error event belongs to the task-level error event, directly executing an elimination operation for the task-level error event, and continuing to control the target device to execute the first action;

[0126] Executing a first fault-tolerant task for the task-level error event according to the fault-tolerant method selected by the process control system; and

[0127] When the first fault-tolerant task fails to execute, uploading error information of the second error event, and controlling the target device to suspend the second action;

[0128] The second action is an action currently affected by the second error event.

[0129] Embodiment 11. The motion control system of any one of embodiments 1 to 10, wherein the first error event comprises a device-level error event, wherein:

[0130] The event management module is further configured to perform the following operations:

[0131] When it is determined that the first error event belongs to the device-level error event, performing a self-test operation for the device-level error event;

[0132] If the result of the self-test operation indicates that the self-test is successful, an elimination operation for the device-level error event is performed.

[0133] Embodiment 12. The motion control system according to any one of embodiments 1 to 11, wherein the event management module is further configured to perform the following operations:

[0134] If the result of the self-check operation indicates that the self-check has failed, executing a second fault-tolerant task for the device-level error event according to the fault-tolerant method selected by the process control system;

[0135] When the second fault-tolerant task is successfully executed, performing an elimination operation for the device-level error event, and continuing to control the target device to execute the first action; and

[0136] When the second fault-tolerant task fails to execute, uploading error information of the third error event, and controlling the target device to suspend the third action;

[0137] The third action is an action currently affected by the third error event.

[0138] Embodiment 13. The motion control system according to any one of embodiments 1 to 12, wherein:

[0139] The motion control system acquiring the first instruction issued by the process control system specifically includes performing the following operations:

[0140] Obtain the specific type information, device identification, IP address and port number of the target device targeted by the first instruction.

[0141] Example 14. A management system for an automated process, comprising a process control system for the automated process and a motion control system as described in any one of Examples 1 to 13.

[0142] Embodiment 15. A motion control method, comprising:

[0143] Obtaining a first instruction issued by a process control system of an automated process;

[0144] controlling the target device in the automation process to perform an action corresponding to the first instruction based on the first instruction; and

[0145] Report feedback information of the target device executing the action to the process control system.

[0146] Embodiment 16. An electronic device comprises a processor and a memory, wherein the memory stores computer program instructions, and the computer program instructions are used by the processor to execute the motion control method as described in embodiment 15 when the processor is running.

[0147] Embodiment 17. A storage medium having program instructions stored thereon, wherein the program instructions are used to execute the motion control method as described in embodiment 15 when running.

[0148] Although example embodiments have been described herein with reference to the accompanying drawings, it should be understood that the above example embodiments are merely illustrative and are not intended to limit the scope of the present application. Various changes and modifications may be made therein by those skilled in the art without departing from the scope and spirit of the present application. All such changes and modifications are intended to be included within the scope of the present application as required by the appended claims.

[0149] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0150] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units described is merely a logical function division. In actual implementation, other division methods may be used, such as combining or integrating multiple units or components into another device, or ignoring or not performing some features.

[0151] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and techniques are not shown in detail so as not to obscure the understanding of this description.

[0152] The above description is merely a specific embodiment or illustration of a specific embodiment of the present application, and the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present application should be included in the scope of protection of the present application. The scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A motion control system, characterized in that: It includes a first control module and a second control module, wherein: The first control module is connected to a process control system of an automated process and the second control module respectively, and is used to obtain a first instruction issued by the process control system; The second control module is connected to the equipment in the automation process, and is used to control the target device to execute the action corresponding to the first instruction based on the first instruction, and report the feedback information of the target device executing the action to the process control system via the first control module.

2. The motion control system according to claim 1, characterized in that: The first control module is specifically used to manage the first instruction, the target device targeted by the first instruction, and the first task involved in the first instruction after receiving the first instruction, so as to create and start the first task, and report the feedback information sent by the second control module to the process control system; The second control module is specifically used to perform device control operations according to the first task after the first task is started, so as to control the target device to perform actions corresponding to the first task, and send the feedback information to the first control module, wherein the device control operation includes command calls and status maintenance on the physical device of the target device.

3. The motion control system according to claim 2, characterized in that: The first control module includes a system control module and an event management module connected to each other, wherein: The system control module is used to add each instruction supported in the system, each pre-configured device and a method for creating a task involved in each instruction to a corresponding dictionary after the motion control system is started, so as to store the name of the target device targeted by each instruction, the name of the task involved in each instruction and the method for creating each task, and after receiving the first instruction, create and start the first task related to the first instruction according to the dictionary; The event management module is used to report the events involved in the first task and the events involved in the feedback information sent by the second control module to the process control system.

4. The motion control system according to claim 3, characterized in that: The system control module includes a device management submodule and a task management submodule, wherein: The device management submodule is used to maintain the main device and sub-device of each pre-configured device in the device dictionary after the motion control system is started, and after receiving the first instruction, determine whether the main device and sub-device targeted by the first instruction are in the device dictionary, wherein the main device is the main device for performing each task, and the sub-device is a device that assists the main device in performing the task; The task management submodule is used to store the method of creating tasks involved in each instruction in the task dictionary after the motion control system is started, and after receiving the first instruction, determine whether the first task is in the task dictionary, and when the first task is started, add the task instance of the first task to the task dictionary and when the first task is completed or terminated, remove the task instance from the task dictionary.

5. The motion control system according to claim 3, characterized in that: The first instruction comprises an asynchronous instruction, The system control module is used to report the first response information of the system control module and the second control module to the asynchronous instruction to the process control system, and send the second response information of the second control module to the asynchronous instruction to the event management module; The event management module is further used to report the second response information as notification information to the process control system; The first response information is response information to the synchronous part of the asynchronous instruction, and the second response information is response information to the asynchronous part of the asynchronous instruction.

6. The motion control system according to claim 5, characterized in that: The second control module is used to execute the asynchronous part of the asynchronous instruction only when the first response information indicates that the synchronous part of the asynchronous instruction is successfully executed, and send the second response information to the event management module.

7. The motion control system according to any one of claims 3 to 6, characterized in that: The feedback information includes error reporting information for at least one first error event, The event management module is also used to report the error information as notification information to the process control system when receiving the error information, and control the target device to pause the first action currently being executed, wherein the first action is an action affected by the first error event.

8. The motion control system according to claim 7, characterized in that: The first instruction comprises a fault-tolerant instruction, wherein: The event management module is also used to perform the following operations: For each first error event, Acquire first information of at least one fault-tolerance method corresponding to the first error event, and report the first information to the process control system, so that the process control system selects a fault-tolerance method based on the first information and issues a fault-tolerance instruction; After receiving the fault-tolerant instruction issued by the process control system, performing an elimination operation of eliminating the error information of the first error event based on a preset condition; and At least based on the fact that the error information of the at least one first error event is eliminated, continue to control the target device to perform the first action.

9. The motion control system according to claim 8, characterized in that: The event management module is also used to perform the following operations: determining a priority of the at least one first error event; and The elimination operation for the first error event is performed only when it is determined that the priority of the current first error event is higher than the priorities of other first error events.

10. The motion control system according to claim 8, characterized in that: The first error event includes a task-level error event, wherein: The event management module is also used to perform the following operations: When it is determined that the first error event belongs to the task-level error event, directly executing an elimination operation for the task-level error event, and continuing to control the target device to execute the first action; Execute a first fault-tolerant task for the task-level error event according to the fault-tolerant method selected by the process control system; and When the first fault-tolerant task fails to execute, uploading error information of the second error event, and controlling the target device to suspend the second action; The second action is an action currently affected by the second error event.

11. The motion control system according to claim 8, characterized in that: The first error event comprises a device-level error event, wherein: The event management module is also used to perform the following operations: When it is determined that the first error event belongs to the device-level error event, performing a self-check operation for the device-level error event; If the result of the self-test operation indicates that the self-test is successful, an elimination operation for the device-level error event is performed.

12. The motion control system according to claim 11, characterized in that: The event management module is also used to perform the following operations: If the result of the self-check operation indicates that the self-check fails, executing a second fault-tolerant task for the device-level error event according to the fault-tolerant method selected by the process control system; When the second fault-tolerant task is executed successfully, performing an elimination operation for the device-level error event, and continuing to control the target device to execute the first action; as well as When the second fault-tolerant task fails to execute, uploading error information of the third error event, and controlling the target device to suspend the third action; The third action is an action currently affected by the third error event.

13. The motion control system according to any one of claims 1 to 6, characterized in that: The motion control system obtains the first instruction issued by the process control system and specifically performs the following operations: The specific type information, device identification, IP address and port number of the target device targeted by the first instruction are obtained.

14. A management system for an automated process, characterized in that: A process control system comprising the automated process and a motion control system as claimed in any one of claims 1 to 13.

15. A motion control method, characterized in that: include: Obtaining a first instruction issued by a process control system of an automated process; Controlling the target device in the automation process to perform an action corresponding to the first instruction based on the first instruction; as well as Report feedback information of the target device executing the action to the process control system.

16. An electronic device comprising a processor and a memory, characterized in that: The memory stores computer program instructions, which are used by the processor to execute the motion control method according to claim 15 when the processor executes the computer program instructions.

17. A storage medium having program instructions stored thereon, characterized in that: The program instructions are used to execute the motion control method as claimed in claim 15 when running.

Citation Information

Patent Citations

  • Motion control system, automatic process management system and motion control method

    CN117850362A

  • Cloud chemical analysis system based on remote control

    CN115225625A

  • Method and device for equipment integration and automatic control

    CN115718462A

  • Automation equipment, error processing method of automation equipment, control system of automation equipment and control method of automation equipment

    CN115981249A

  • Pipetting control method and device, computer equipment and storage medium

    CN116184922A

Cited By

  • Equipment instruction issuing method and device, electronic equipment and computer readable storage medium

    CN121711235A

  • Chip mounter production process management system and method cooperatively controlled by state machine

    CN122227576A