Distributed multi-node control system and method, and control node

A distributed multi-node control system (100) and method, relating to the field of control technology. The distributed multi-node control system (100) comprises: a first control node (11), a second control node (12), a plurality of servo nodes (20) and a plurality of execution devices (30), the first control node (11) and the second control node (12) being respectively communicationally connected to the plurality of servo nodes (20), the servo nodes (20) being electrically connected to the execution devices (30) and configured to control operating states of the corresponding execution devices (30), the first control node (11) being configured to control an operating state of at least one first servo node (21) among the plurality of servo nodes (20), the second control node (12) being configured to control an operating state of at least one second servo node (22) among the plurality of servo nodes (20).

CROSS-REFERENCE TO RELATED APPLICATION(S)

The application is a U.S. national phase of International Application No. PCT/CN2019/092124, filed on Jun. 20, 2019, which claims priority to Chinese Patent Application No. CN201810637356.4 filed on Jun. 20, 2018, the disclosure of which is hereby incorporated herein by reference.

FIELD

The disclosure relates to the field of control technologies, more particularly to a distributed multi-node control system and a distributed multi-node control method.

BACKGROUND

Industrial robots will play an increasingly important role in future production because of their stability and high efficiency as the development of science and technology. More and more industries may employ the industrial robots instead of people to complete repetitive tasks. Controllers, as the most important part of the industrial robots, may have some practical problems in current applications. On the one hand, a whole machine needs to be repaired once a fault occurs in the controller due to the high integration of the controller, causing a high cost. On the other hand, the controller has a heavy workload and may not guarantee the control efficiency.

SUMMARY

Embodiments of the disclosure provide a distributed multi-node control system. The distributed multi-node control system includes: a first control node, a second control node, a plurality of servo nodes, and a plurality of execution devices, the first control node and the second control node being communicatively coupled to the plurality of servo nodes, and each servo node being electronically coupled to one corresponding execution device and configured to control an operating state of the corresponding execution device; and the first control node is configured to control an operating state of at least one first servo node in the plurality of servo nodes, and the second control node is configured to control an operating state of at least one second servo node in the plurality of servo nodes.

Embodiments of the disclosure provide a distributed multi-node control method, implemented in a control node in a distributed multi-node control system. The system includes the control node, a plurality of servo nodes, and a plurality of execution devices. The first control node includes a first kernel and a second kernel. The method includes: receiving, by the first kernel, a control instruction; sending, by the first kernel, the received control instruction to the second kernel; calculating, by the second kernel, an execution instruction corresponding to each servo node based on the control instruction and the servo nodes; sending, by the second kernel, each execution instruction to the corresponding servo node; and controlling, by the servo node, an operating state of the corresponding execution device based on the received execution instruction.

Embodiments of the disclosure provide a control node, including: a first kernel configured to receive a control instruction and to send the received control instruction to a second kernel; and the second kernel configured to calculate an execution instruction corresponding to each servo node corresponding to the control node based on the control instruction and each servo node corresponding to the control node, and to distribute each execution instruction to the corresponding first servo node.

In order to enable the above objectives, features and advantages of the disclosure more obvious and understandable, following detailed description is made below with reference to preferred embodiments and accompanying drawings.

DETAILED DESCRIPTION

Description will be made clearly and completely below to the technical solutions in embodiments of the disclosure with reference to accompanying drawings in embodiments of the disclosure. Obviously, the described embodiments are merely a part of the embodiments of the disclosure, not all of the embodiments. Components in embodiments of the disclosure illustrated and described in the accompanying drawings herein may be arranged and designed with different configurations. Therefore, detailed description for embodiments of the disclosure provided in the following accompanying drawings does not limit the claimed protection scope of the disclosure, but merely represents selected embodiments of the disclosure. Based on embodiments of the disclosure, all other embodiments obtained by those skilled in the art without creative labor belong to the protection scope of the disclosure.

It should be noted that similar items are represented by same numerals and letters in the accompanying drawings. Therefore, once an item is defined in an accompanying drawing, the item does not need to be further defined and explained in the following accompanying drawings. Meanwhile, in the description of the disclosure, terms such as “first” and “second” are used for purposes of distinguishing description and are not understood to indicate or imply relative importance.

Embodiment One

Referring toFIG.1,FIG.1is a schematic diagram illustrating a distributed multi-node control system100according to a preferred embodiment of the disclosure. As illustrated inFIG.1, the distributed multi-node control system100includes a control node10, a plurality of servo nodes20, and a plurality of execution devices30. The control node10is communicatively coupled to the servo node20. The servo node20is electronically coupled to the execution device30.

In embodiments of the disclosure, as illustrated inFIG.2, the above distributed multi-node control system100also includes a scheduling control node40. The control node10may include, but be not limited to, a first control node11and a second control node12. The scheduling control node40is communicatively coupled to the first control node11and the second control node12. The first control node11and the second control node12are communicatively coupled to the plurality of servo nodes20respectively. The first control node11is configured to control an operating state of at least one first servo node21in the plurality of servo nodes20. The second control node12is configured to control an operating state of at least one second servo node22in the plurality of servo nodes20. The scheduling control node40may be configured to assign servo nodes20controlled by each control node10.

Further, in order to make full use of resources of each control node10, in embodiments of the disclosure, the scheduling control node40is also configured to obtain operating state information of the first control node11and the second control node12based on a preset time interval, and to adjust the number of the at least one first servo node21corresponding to the first control node11and the number of the at least one second servo node22corresponding to the second control node12based on the operating state information. The above operating state information may include system occupancy information, load information, and the like.

Comparing with a strategy that all servo devices are centrally controlled by one controller in the related art, with embodiments of the disclosure, the plurality of servo nodes20are assigned to the plurality of control nodes10, thereby reducing a workload of each control node10and improving a computation speed.

In embodiments of the disclosure, both the first control node11and the second control node12are asymmetry dual-kernel architectures.

Alternatively, the first control node11includes a first kernel111for operating a Linux system and a second kernel112for operating a RTOS (real time operating system) system. The first kernel111is configured to receive a control instruction and to send the received control instruction to the second kernel112. The second kernel112is configured to calculate an execution instruction corresponding to each first servo node21based on the control instruction and the at least one first servo node21, and to distribute each execution instruction to the corresponding first servo node21. The first kernel111for operating the Linux system is configured to communicate and interact with outside world, and to receive instructions, parameters, and the like. The second kernel112for operating the RTOS system is configured to process data received from the first kernel111to generate the execution instruction corresponding to each first servo node21. The above execution instruction may refer to a servo instruction. The second kernel112is also configured to send the generated execution instruction to the corresponding first servo node21via a network.

Further, in the above procedure, there is a need to transmit data between the Linux system and the RTOS system, but data interaction between different systems is still incompatible. To solve the problem, in embodiments of the disclosure, as illustrated inFIG.3, the first control node11includes a sharing storage area113. The first kernel111is configured to convert data that is to be sent to the second kernel112into transmission data based on a preset protocol, and to store the transmission data in the sharing storage area113. The first kernel111is configured to remind the second kernel112to read the transmission data from a corresponding position in the sharing storage area113. In other words, data sent by the Linux system may be converted into data recognizable by the RTOS system based on the preset protocol. Of course, data sent by the RTOS system may be converted into data recognizable by the Linux system based on the preset protocol.

In embodiments of the disclosure, the first control node11is configured to obtain operating state data of the first servo node21and the corresponding execution device30based on a preset time interval. The first control node11is configured to start an abnormal warning operation when the operating state data obtained by the first control node21belongs to abnormal state data. Alternatively, a way for determining whether the operating state data belongs to the abnormal state data may include: comparing the operating state data returned by the servo node20or the operating state data returned by the corresponding execution device30with expected operating state data, thereby determining whether the operating state data belongs to the abnormal state data; or determining whether the operating state data returned by the servo node20or the operating state data returned by the corresponding execution device30includes abnormal information. Alternatively, the above abnormal warning operation may be performed by displaying an identifier of an execution device corresponding to the abnormal state data on a display unit of the first control node11. For example, when the operating state data returned by the servo node20to the first control node11belongs to the abnormal state data, identification information of the servo node20is displayed on the display unit, which is convenient for a maintenance personnel to repair the execution device.

Alternatively, the second control node12includes a third kernel for operating the Linux system and a fourth kernel for operating the RTOS system. The third kernel is configured to receive a control instruction and to send the received control instruction to the fourth kernel. The fourth kernel is configured to calculate an execution instruction corresponding to each second servo node22based on the control instruction and the at least one second servo node22, and to distribute each execution instruction to the corresponding second servo node22. The third kernel for operating the Linux system is configured to communicate and interact with outside world, and to receive instructions, parameters, and the like. The fourth kernel for operating the RTOS system is configured to process data received from the third kernel to generate the execution instruction corresponding to each second servo node22. The above execution instruction may refer to a servo instruction. The fourth kernel is also configured to send the generated execution instruction to the corresponding second servo node22via the network.

Further, the second control node12also includes a sharing storage area113. The third kernel is configured to convert data that is to be sent to the fourth kernel into transmission data based on a preset protocol, and to store the transmission data in the sharing storage area113. It should be noted that, data sent by the Linux system may be converted into data recognizable by the RTOS system based on the preset protocol. The third kernel is configured to send a triggering instruction to the fourth kernel after sending the transmission data to the sharing storage area113, to remind the fourth kernel to read the transmission data from a corresponding position in the sharing storage area113.

In embodiments of the disclosure, the second control node12is configured to obtain operating state data of the second servo node22and the corresponding execution device based on the preset time interval. The second control node12is configured to start an abnormal warning operation when the operating state data obtained by the second control node12belongs to the abnormal state data.

In embodiments of the disclosure, the servo nodes20is a dual-kernel architecture. Dual kernels corresponding to the servo node20are configured to operate the RTOS system. The servo node20is configured to perform task assignment based on a preset task allocation algorithm according to system resource occupation of the dual kernels after receiving the execution instruction.

In embodiments of the disclosure, the above execution device may be a control motor or an input/output (I/O) device.

Embodiment Two

Referring toFIG.4,FIG.4is a flow chart illustrating a distributed multi-node control method according to a preferred embodiment of the disclosure. The distributed multi-node control method is applied to the above distributed multi-node control system100.

As illustrated inFIG.4, the distributed multi-node control method includes the following.

At block S101, a first kernel111of a first control node11receives a control instruction generated when a user operates.

At block S102, the first kernel111sends the received control instruction to the second kernel112.

In some embodiments, the first kernel111may firstly convert the control instruction into transmission data recognizable by the second kernel112based on a preset protocol, and then stores the transmission data in a sharing storage area113. Then the first kernel111triggers the second kernel112to obtain a control instruction of the recognizable transmission data converted from the sharing storage area113.

At block S103, the second kernel112calculates an execution instruction corresponding to each first servo node21based on the control instruction and at least one first servo node21corresponding to the first control node.

At block S104, the second kernel112sends each execution instruction to the corresponding first servo node21.

At block S105, the first servo node21controls an operating state of the corresponding execution device30based on the received execution instruction.

It should be noted that, a processing flow for all the control nodes10receiving the control instructions, parameters or the like generated by a user operation is basically the same as the above actions, which is not be elaborated here.

Further, as illustrated inFIG.5, the above distributed multi-node control method may also include the following.

At block S201, a scheduling control node40obtains operating state information of the first control node11and the second control node12based on a preset time interval

In embodiments of the disclosure, the above operating state information may refer to system resource occupation information, load information and the like of the control node10.

At block S202, the scheduling control node40adjusts the number of the at least one first servo node corresponding to the first control node11and the number of the at least one second servo node corresponding to the second control node12based on the operating state information.

Further, the above distributed multi-node control method may also include the follows. The first control node11obtains operating state data of the first servo node21based on a preset time interval, and starts an abnormal warning operation related to the first servo node21when the obtained operating state data belongs to abnormal state data. The first control node11obtains operating state data of the execution device30through the first servo node21based on the preset time interval. When the obtained operating state data belongs to the abnormal state data, the first control node11starts an abnormal warning operation related to the execution device30. The second control node12obtains the operating state data of the second servo node22based on a preset time interval. When the obtained operating state data belongs to the abnormal state data, the second control node12starts an abnormal warning operation related to the second servo node22. The second control node12obtains the operating state data of the execution device30through the second servo node22based on the preset time interval. When the obtained operating state data belongs to the abnormal state data, the second control node12starts an abnormal warning operation related to the execution device30. In this way, when a certain node fails in an operating period, the failed node may be replaced directly with a new node in the same type without replacing a whole machine. After reconfiguration, the whole machine may continue to run, which is convenient and saves costs. Then troubleshooting is performed on the replaced node, which has advantages that production is not affected and maintenance costs is not reduced

In conclusion, with the distributed multi-node control system and method provided in the disclosure, the distributed multi-node control system includes the first control node, the second control node, the plurality of servo nodes, and the plurality of execution devices. The first control node is communicatively coupled to the plurality of servo nodes, and the second control node is communicatively coupled to the plurality of servo nodes. Each servo node is electrically coupled to one corresponding execution device and configured to control the operating state of the corresponding execution device. The first control node is configured to control the operating state of the at least one first servo node in the plurality of servo nodes, and the second control node is configured to control the operating state of the at least one second servo node in the plurality of servo nodes. A real-time computation is shared by a plurality of control nodes, thereby realizing a distributed control and speeding up the computation. Moreover, such system coordinating and cooperating with the plurality of control nodes is convenient for maintenance and saves maintenance cost.

In the plurality of embodiments provided by the disclosure, it should be understood that, the device and the method disclosed may also be implemented in other ways. The device embodiments described above are merely exemplary. For example, the flow charts and the block diagrams in the accompanying drawings illustrate architectures, functions and operations of possible implementations according to devices, methods and computer program products of a plurality of embodiments of the disclosure. Each block in the flow chart or block diagram may represent a module, program segment or part of codes, which contain one or more executable instructions configured to implement specified logical functions. It should be noted that, in some alternative implementations, the functions noted in the blocks may also occur in an order different from those noted in the accompanying drawings. For example, two consecutive blocks may actually be executed in parallel, and sometimes executed in a reverse order, depending on the involved functions. It also needs to be noted that, each block and combinations of blocks in the block diagrams and/or flow charts may be implemented with dedicated hardware-based systems for performing specified functions or actions, or may be implemented with a combination of dedicated hardware and computer instructions.

In addition, each functional module in each embodiment of the disclosure may be integrated together to form an independent part or exist alone, or two or more functional modules may also be integrated to form an independent part.

When the functions are realized in the form of software function modules, and sold or used as independent products, they may be stored in a computer readable storage medium. Based on this understanding, the technical solution of the disclosure, the part that contributes to the related art, or the part of the technical solution may be embodied in the form of software products in essence. The computer software product is stored in a storage medium and includes several instructions to enable a computer device (such as a personal computer, a server, or a network device) to execute all or part of the steps of the method described in each embodiment of the disclosure. The above storage media includes medias that may store program codes, such as, a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

It should be noted that, in the description, relationship terms such as “first” and “second” are merely used to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. The terms “comprising”, “including” or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article or device. Without further limitation, it is not excluded that additional same elements exist in the process, method, article or device including elements defined by the sentence “including one . . . ”.

The above is only preferred embodiments of the disclosure, and is not used to limit the disclosure. For the skilled in the art, the disclosure may be modified and varied. Any modification, equivalent substitution and improvement made within the spirit and principle of the disclosure shall be included in the protection scope of the disclosure. It should be noted that similar numerals and letters in the following accompanying drawings indicate similar items. Therefore, once a certain item is defined in an accompanying drawing, it does not need to be further defined and explained in the following accompanying drawings.

The above is merely detailed embodiments of the disclosure, but the protection scope of the disclosure is not limited to this. Any change or substitution which is easily thought of by the person familiar with this technical field within a technical scope disclosed in the disclosure should be covered within the protection scope of the disclosure. Therefore, the protection scope of the disclosure shall be subject to the protection scope of the claims.