Software architecture of an industrial robot control system

By employing a layered architecture and real-time thread management, the problems of high development difficulty and insufficient real-time performance in industrial robot control systems have been solved, achieving the effects of easy expansion of functions and shortened development cycle.

CN116408805BActive Publication Date: 2026-05-26伯朗特机器人股份有限公司

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
伯朗特机器人股份有限公司
Filing Date
2023-05-22
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

The existing industrial robot control system software is difficult to develop, has a long update and iteration cycle, and is difficult to guarantee real-time performance.

Method used

The system adopts a layered architecture design, dividing the control system into upper-layer components and lower-layer components. The lower-layer components send requests to the upper-layer components in a one-way manner, and the upper-layer components respond to the requests of the lower-layer components. The execution of each component is managed by three real-time thread tasks with different priorities to ensure real-time performance.

Benefits of technology

It enables easy expansion of functional components, shortens the development cycle, and ensures the real-time performance of the control system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116408805B_ABST
    Figure CN116408805B_ABST
Patent Text Reader

Abstract

This invention relates to a software architecture for an industrial robot control system, comprising upper-level components and lower-level components, which are interconnected. The lower-level components unidirectionally send requests to the upper-level components, and the upper-level components respond to these requests. The upper-level components include communication interface components, data components, status components, and algorithm components, while the lower-level components include behavioral components. The behavioral components include a monitoring and teaching pendant instruction component, a user program execution component, a trajectory planning and interpolation component, an automatic data upload component, an alarm processing component, and a user program parsing component. This software architecture features "component independence," facilitating modification and expansion of individual functional components, and thus shortening the development cycle of the control system product.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of industrial robots, and more specifically to a software architecture for an industrial robot control system. Background Technology

[0002] like Figure 1 As shown, an industrial robot (also known as a robotic arm) is an automated device with human-like features. It is widely used in automated production lines and is a core execution unit for intelligent and flexible manufacturing. The control system software is the core module of an industrial robot, serving as the computational and decision-making core for all its functions. Its software quality directly affects the basic functions and level of intelligence of the industrial robot.

[0003] The application scenarios and functional requirements of industrial robots are becoming increasingly complex. In order to address the complexity of requirements and functions, reduce the difficulty of developing control system software, and shorten the update and iteration cycle of control system software, "software architecture" plays an important role as the "top-level design" in software engineering. Summary of the Invention

[0004] The purpose of this invention is to provide a software architecture for an industrial robot control system, which features independent components, is easy to expand with functional components, and can effectively ensure the real-time performance of the control system.

[0005] To achieve the above objectives, the technical solution adopted by the present invention is as follows:

[0006] A software architecture for an industrial robot control system includes upper-level components and lower-level components, which are connected. The lower-level components send requests to the upper-level components in a one-way manner, and the upper-level components respond to the requests of the lower-level components.

[0007] The upper-layer components include communication interface components, data components, status components, and algorithm components, while the lower-layer components include behavior components. The behavior components include a monitoring and teaching pendant instruction component, a user program execution component, a trajectory planning and interpolation component, an automatic data upload component, an alarm processing component, and a user program parsing component.

[0008] The monitoring and teaching pendant instruction component connects the communication interface component, the data type component, and the status component. The function of the monitoring and teaching pendant instruction component is to continuously monitor the key value information and files issued by the teaching pendant during the operation of the control system, and to execute the corresponding behavior according to the key value information.

[0009] The user program parsing component connects the data class component and the state class component. The function of the user program parsing component is to parse the text-format user program issued by the teach pendant, convert it into a custom "user instruction" sequence and "user data" sequence, and store it in the component for the "user program execution component" to execute one by one.

[0010] The user program execution component connects the data component, the state component, and the algorithm component. The function of the user program execution component is to extract the "user instruction" and the "user data" corresponding to the instruction from the "user program parsing component" one by one, and cooperate with the data component, the state component, and the algorithm component to execute their corresponding actions.

[0011] The trajectory planning and interpolation component connects the communication interface component, the data component, and the algorithm component. The functions of the trajectory planning and interpolation component are: responding to the motion instructions received from the robot user; calling the algorithm component and then performing trajectory planning and subdivision interpolation calculations on the motion instructions based on the robot's current operating state; and cooperating with the communication interface component to send the joint values ​​of the robotic arm obtained by subdivision interpolation to the motor servo drive system.

[0012] The automatic data upload component connects the communication interface component, the data component, and the status component. The function of the automatic data upload component is to periodically upload a portion of the data to the teach pendant.

[0013] The alarm processing component connects to the communication interface component and the status component. The function of the alarm processing component is to query the system when an abnormality occurs and take corresponding actions.

[0014] The algorithm components include a robot algorithm library component, which implements algorithms for performing various movements by a robotic arm.

[0015] The communication interface components include I / O components, network communication components, and EtherCAT bus components;

[0016] The function of the IO component is to receive and output digital signals and analog signals. The IO component supports the interaction between the system and external sensors and actuators.

[0017] The function of the network communication component is to set the control system as a network server or network client based on Ethernet and TCP / IP communication protocols, and to be responsible for establishing and maintaining communication with the teach pendant or external network devices.

[0018] The function of the EtherCAT bus component is to establish and maintain communication with the motor servo driver.

[0019] The data components include robot configuration parameter components, user program data components, and process data components;

[0020] The function of the robot configuration parameter component is to maintain all types of configuration parameters for the robot.

[0021] The function of the user program data component is to maintain the sequence of "user instructions" and the sequence of "user data" parsed by the "user program parsing component".

[0022] The function of the process data component is to maintain the joint values ​​calculated by the "trajectory planning and interpolation component", the digital signal values ​​to be output, and the analog signal values.

[0023] The state-type components include a robot state component, which functions to maintain state data that may be changed during robot operation; define multiple static and dynamic states of the control system: coordinate system setting state, user program setting state, servo data setting state, interpolation execution state, and user program execution state; and store the state data that behavior-type components need to share during operation in this state-type component.

[0024] The software architecture has three real-time thread tasks, namely thread 1, thread 2, and thread 3. The priorities of the three thread tasks are set to 1, 2, and 3 respectively from high to low, and the execution order of the threads is: thread 1 -> thread 2 -> thread 3.

[0025] The components allocated in the thread 1 task are: user program execution component, trajectory planning and interpolation component, and alarm processing component;

[0026] Components allocated in Thread 2 task: monitoring teach pendant instruction component, user program parsing component;

[0027] The component assigned in thread 3 task: automatic data upload component.

[0028] The sum of the average running times of thread 1, thread 2, and thread 3 is 4 / 5 of the periodic time pt.

[0029] By adopting the above scheme, the present invention divides the software architecture into two levels: upper-level components and lower-level components. Lower-level components send requests unilaterally to upper-level components, and upper-level components respond to the requests of lower-level components. This architecture has the characteristic of "component independence," making it easy to modify and expand the functional components, which helps to shorten the development cycle of control system products.

[0030] In addition, to ensure the real-time operation of the control system, the present invention establishes three real-time thread tasks in the architecture, namely thread 1, thread 2 and thread 3 with high priority from low. Among them, thread 1 is assigned a user program execution component, a trajectory planning and interpolation component and an alarm processing component; thread 2 is assigned a monitoring and teaching pendant instruction component and a user program parsing component; and thread 3 is assigned an automatic data upload component. Attached Figure Description

[0031] Figure 1 This is a structural diagram of the industrial robot as a whole;

[0032] Figure 2 This is a diagram showing the software architecture hierarchy of the present invention;

[0033] Figure 3 This is a schematic diagram showing the connections between the components of the software architecture of the present invention;

[0034] Figure 4 This is a performance illustration diagram of each component in the software architecture of the present invention;

[0035] Figure 5 Here is the flowchart for the execution of thread 1 task;

[0036] Figure 6 Here is the flowchart for the execution of thread 2 task;

[0037] Figure 7 Here is the flowchart for the execution of thread 3 task;

[0038] Figure 8 This is the timing diagram for scenario 1;

[0039] Figure 9 This is the timing diagram for scenario 2. Detailed Implementation

[0040] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0041] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0042] It should be noted that similar labels and letters in the following figures indicate similar items. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures.

[0043] like Figure 1-4 As shown, this invention discloses a software architecture for an industrial robot control system, which includes an upper-level component and a lower-level component. The upper-level component and the lower-level component are connected. The lower-level component sends requests to the upper-level component in a one-way manner, and the upper-level component responds to the requests of the lower-level component.

[0044] The upper-layer components include communication interface components, data components, status components, and algorithm components, while the lower-layer components include behavior components. These behavior components include a monitoring and teaching pendant instruction component, a user program execution component, a trajectory planning and interpolation component, an automatic data upload component, an alarm processing component, and a user program parsing component.

[0045] The monitoring and teaching pendant instruction component connects the communication interface component, data type component, and status component. Its function is to continuously monitor the key-value information and files issued by the teaching pendant during control system operation, and execute corresponding actions based on the key-value information.

[0046] The monitoring teach pendant command component is also a user interaction component, because the key value is generated by the user actively pressing the buttons on the teach pendant during operation, and the file is generated by the user actively editing the file during operation.

[0047] The user program parsing component connects the data class component and the state class component. The function of the user program parsing component is to parse the user program in text format issued by the teach pendant, convert it into a custom sequence of "user instructions" and "user data", and store it in the component for the "user program execution component" to execute one by one.

[0048] The user program execution component connects the data component, the state component, and the algorithm component. The function of the user program execution component is to extract the "user instruction" and the corresponding "user data" from the "user program parsing component" one by one, and to cooperate with the data component, the state component, and the algorithm component to execute their corresponding behaviors.

[0049] The trajectory planning and interpolation component connects communication interface components, data components, and algorithm components. Its functions include: responding to received robot user instructions, such as Cartesian space straight-line trajectories, Cartesian space circular arc trajectories, and joint space trajectories; calling the robot algorithm library component and performing trajectory planning and subdivision interpolation calculations on the motion instructions based on the robot's current operating state; and collaborating with the EtherCAT bus component to send the subdivision interpolated joint values ​​of the robotic arm to the motor servo drive system.

[0050] The automatic data upload component connects the communication interface component, the data component, and the status component. The function of this automatic data upload component is to periodically upload a portion of the data to the teach pendant.

[0051] The alarm processing component connects to the communication interface component and the status component. The function of the alarm processing component is to query the abnormality in the control system and take corresponding actions, such as cooperating with the communication interface component to make the buzzer sound and the indicator light flash.

[0052] The algorithm components include a robot algorithm library component, which implements the following functions: algorithms for industrial robot control systems, especially for the robotic arm to perform various movements, including forward tracing algorithms, inverse tracing algorithms, trajectory planning algorithms, dynamics algorithms, and robot process package algorithms.

[0053] Communication interface components include I / O components, network communication components, and EtherCAT bus components.

[0054] The function of the IO component is: also known as the input / output component, it is responsible for receiving and outputting digital signals and analog signals. This component supports the system's interaction with external sensors and external actuators.

[0055] The function of the network communication component is to set up the control system as a network server or network client based on Ethernet and TCP / IP communication protocols, and to be responsible for establishing and maintaining communication with the teach pendant or external network devices.

[0056] The function of the EtherCAT bus component is to establish and maintain communication with the motor servo driver.

[0057] Data components include robot configuration parameter components, user program data components, and process data components.

[0058] The robot configuration parameter component maintains all types of configuration parameters for the robot, including robot body size parameters, servo driver parameters, trajectory planning type and parameters, coordinate system parameters, etc.

[0059] The function of the user program data component is to maintain the sequence of "user instructions" and "user data" obtained by the "user program parsing component".

[0060] The function of the process data component is to maintain the joint values ​​calculated by the "trajectory planning and interpolation component", the digital signal values ​​to be output, and the analog signal values.

[0061] State-related components include the robot state component, which maintains the robot's state data (also known as mode or type) that may change during operation. Multiple static and dynamic states are defined for the control system: coordinate system setting state, user program setting state, servo data setting state, interpolation execution state, and user program execution state. State data that behavior-related components need to share during operation is stored in this component.

[0062] To ensure the real-time performance of the control system, this invention sets a fixed time period pt, which is called the cycle time period of the control system. Within this cycle time period, the system must complete certain critical tasks before the end of the cycle time period; this is referred to as the real-time performance of the control system. In this invention, these critical tasks are designated as behaviors within the "User Program Execution Component," "Track Planning and Interpolation Component," and "Alarm Processing Component."

[0063] like Figure 5-7 As shown, to achieve real-time control of the system, this invention employs a multi-threaded approach: Three real-time thread tasks (a thread task is a concept in computer operating systems and is the smallest unit of task scheduling) are established in the architecture, namely Thread 1, Thread 2, and Thread 3. The priorities of the three thread tasks are set to 1, 2, and 3 respectively, from highest to lowest. The thread priority mechanism and preemption mechanism are guaranteed by the computer operating system: that is, after a high-priority thread task completes its execution, the highest-priority thread task among the remaining low-priority thread tasks will begin execution. High-priority thread tasks will preempt low-priority thread tasks from executing.

[0064] In this invention, the computer operating system ensures that, during normal operation of the control system, the computer periodically triggers the execution of thread 1 task. This triggering interval is set to the aforementioned periodic time period pt. Since thread 1 has the highest priority, this effectively determines and guarantees that each cycle begins with thread 1 task, and the execution order of the threads is: thread 1 task -> thread 2 task -> thread 3 task.

[0065] The components allocated in Thread 1 task are: "User Program Execution Component", "Track Planning and Interpolation Component", and "Alarm Processing Component".

[0066] The components assigned to Thread 2 task are: "Monitoring Teach Pendant Instruction Component" and "User Program Parsing Component".

[0067] The component assigned to thread 3 task is: "Automatic Data Upload Component".

[0068] The reason for the above thread task priority and component allocation scheme is as follows: the execution time of the three components in thread 1 is fixed, and the tasks executed by these three components are required to be fully completed by the system in each cycle. The execution time of the two components in thread 2 is not fixed, and they cannot be executed with the highest priority, otherwise they would encroach on the time of thread 1. The automatic data upload component is assigned to thread 3, and the data to be uploaded in this component depends on the execution results of threads 1 and 2.

[0069] The execution of Thread 1 task -> Thread 2 task -> Thread 3 task in sequence is called a "complete execution sequence".

[0070] To determine a reasonable control system cycle time pt, and to ensure that the "complete execution sequence" is completed within one cycle time period, the following steps are taken:

[0071] (1) First, determine the computer hardware and operating system to be used;

[0072] (2) Deploy each component into the computer hardware and ensure that each component can function correctly on the computer;

[0073] (3) Run thread 1, thread 2 and thread 3 multiple times, and obtain and record their average running time as mt1, mt2 and mt3 respectively.

[0074] (4) The period time is determined to be pt=5*(mt1+mt2+m3) / 4, which means that the sum of the average running time of thread 1 task, thread 2 task and thread 3 task is 4 / 5 of the period time.

[0075] When multiple threaded tasks are running, the following scenarios may occur:

[0076] Scenario 1: such as Figure 8 As shown, the total time of threads 1 through 3 is less than the cycle time, i.e., the above timing sequence... Figure 1The scenario described is as follows: The horizontal axis represents the absolute timeline, with t0 to t4 constituting a period. At the start of the period (t0), thread 1 is scheduled by the operating system to begin execution. After completion, time reaches t1. At this point, thread 2 is scheduled to begin execution, and after completion, time reaches t2. Then, thread 3 is scheduled to begin execution, and after completion, time reaches t3. Since t4 has not yet been reached, i.e., the period's end event has not yet occurred, the CPU is currently idle.

[0077] Scenario 2: such as Figure 9 As shown, thread 2 has a longer execution time, causing the total time to execute a "complete execution sequence" to be greater than the periodic time interval, i.e., the aforementioned timing sequence. Figure 2 The scenario described is as follows: t0~t4 and t4~t6 are each a periodic time interval. When the period begins (t0), thread 1 is scheduled by the computer operating system to start execution. After execution, time reaches t1, at which point thread 2 is scheduled to start execution. When time reaches t2, the period ends, but thread 2 has not yet finished execution. At this point, because thread 1 has a higher priority than thread 2, thread 1 will preempt the computer's CPU resources and continue execution. When it finishes execution at t3, thread 2, which was preempted in the previous period, continues execution until time t4. Then thread 3 continues execution until t5. After that, the CPU is idle until the period ends.

[0078] In summary, this invention divides the software architecture into two layers: upper-layer components and lower-layer components. Lower-layer components send requests unidirectionally to upper-layer components, and upper-layer components respond to the requests of lower-layer components. This architecture features "component independence," making it easy to modify and expand the functional components, which helps to shorten the development cycle of control system products.

[0079] In addition, to ensure the real-time operation of the control system, the present invention establishes three real-time thread tasks in the architecture, namely thread 1, thread 2 and thread 3 with high priority from low. Among them, thread 1 is assigned a user program execution component, a trajectory planning and interpolation component and an alarm processing component; thread 2 is assigned a monitoring and teaching pendant instruction component and a user program parsing component; and thread 3 is assigned an automatic data upload component.

[0080] Although preferred embodiments of the invention have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including both the preferred embodiments and all changes and modifications falling within the scope of the invention.

[0081] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.

Claims

1. A software architecture of an industrial robot control system, characterized by: It includes upper-level components and lower-level components. The upper-level components and lower-level components are connected. The lower-level components send requests to the upper-level components in a one-way manner, and the upper-level components respond to the requests of the lower-level components. The upper-layer components include communication interface components, data components, status components, and algorithm components, while the lower-layer components include behavior components. The behavior components include a monitoring and teaching pendant instruction component, a user program execution component, a trajectory planning and interpolation component, an automatic data upload component, an alarm processing component, and a user program parsing component. The monitoring and teaching pendant instruction component connects the communication interface component, the data type component, and the status component. The function of the monitoring and teaching pendant instruction component is to continuously monitor the key value information and files issued by the teaching pendant during the operation of the control system, and to execute the corresponding behavior according to the key value information. The user program parsing component connects the data class component and the state class component. The function of the user program parsing component is to parse the text-format user program issued by the teach pendant, convert it into a custom "user instruction" sequence and "user data" sequence, and store it in the component for the "user program execution component" to execute one by one. The user program execution component connects the data component, the state component, and the algorithm component. The function of the user program execution component is to extract the "user instruction" and the "user data" corresponding to the instruction from the "user program parsing component" one by one, and cooperate with the data component, the state component, and the algorithm component to execute their corresponding behaviors. The trajectory planning and interpolation component connects the communication interface component, the data component, and the algorithm component. The functions of the trajectory planning and interpolation component are: responding to the motion instructions received from the robot user; calling the algorithm component and then performing trajectory planning and subdivision interpolation calculations on the motion instructions based on the robot's current operating state; and cooperating with the communication interface component to send the joint values ​​of the robotic arm obtained by subdivision interpolation to the motor servo drive system. The automatic data upload component connects the communication interface component, the data component, and the status component. The function of the automatic data upload component is to periodically upload a portion of the data to the teach pendant. The alarm processing component connects to the communication interface component and the status component. The function of the alarm processing component is to query the system when an abnormality occurs and take corresponding actions.

2. The software architecture of an industrial robot control system according to claim 1, characterized in that: The algorithm components include a robot algorithm library component, which implements algorithms for performing various movements by a robotic arm.

3. The software architecture of an industrial robot control system according to claim 1, characterized in that: The communication interface components include I / O components, network communication components, and EtherCAT bus components; The function of the IO component is to receive and output digital signals and analog signals. The IO component supports the interaction between the system and external sensors and actuators. The function of the network communication component is to set the control system as a network server or network client based on Ethernet and TCP / IP communication protocols, and to be responsible for establishing and maintaining communication with the teach pendant or external network devices. The function of the EtherCAT bus component is to establish and maintain communication with the motor servo driver.

4. The software architecture of an industrial robot control system according to claim 1, characterized in that: The data components include robot configuration parameter components, user program data components, and process data components; The function of the robot configuration parameter component is to maintain all types of configuration parameters for the robot. The function of the user program data component is to maintain the sequence of "user instructions" and the sequence of "user data" parsed by the "user program parsing component". The function of the process data component is to maintain the joint values ​​calculated by the "trajectory planning and interpolation component", the digital signal values ​​to be output, and the analog signal values.

5. The software architecture of an industrial robot control system according to claim 1, characterized in that: The state-type components include a robot state component, which functions to maintain state data that may be changed during robot operation; define multiple static and dynamic states of the control system: coordinate system setting state, user program setting state, servo data setting state, interpolation execution state, and user program execution state; and store the state data that behavior-type components need to share during operation in this state-type component.

6. The software architecture of an industrial robot control system according to claim 1, characterized in that: The software architecture has three real-time thread tasks, namely thread 1, thread 2, and thread 3. The priorities of the three thread tasks are set to 1, 2, and 3 respectively from high to low, and the execution order of the threads is: thread 1 -> thread 2 -> thread 3. The components allocated in the thread 1 task are: user program execution component, trajectory planning and interpolation component, and alarm processing component; Components allocated in Thread 2 task: monitoring teach pendant instruction component, user program parsing component; The component assigned in thread 3 task: automatic data upload component.

7. A software architecture for an industrial robot control system according to claim 6, characterized in that: The sum of the average running times of thread 1, thread 2, and thread 3 is 4 / 5 of the periodic time pt.