Communication setting device and robot control apparatus

The communication setting device optimizes packet communication cycles in robot control systems by using a packet quantity calculation and adjustment mechanism to balance CPU utilization, addressing inefficiencies in existing systems and improving overall performance.

WO2025203160A1PCT designated stage Publication Date: 2025-10-02FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/011585
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-25
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing robot control devices lack an efficient method to automatically set the packet communication cycle for effective communication with external devices, which can lead to suboptimal CPU utilization and affect other processing tasks.

Method used

A communication setting device that includes a packet quantity calculation unit and a communication period setting unit to determine the optimal packet communication cycle based on CPU utilization, adjusting the cycle through iterative processes to balance communication load with other processing tasks.

Benefits of technology

The solution optimizes the communication cycle, ensuring efficient CPU utilization and reducing the impact on other processing tasks by dynamically adjusting the packet communication period to match the CPU's capacity, thereby enhancing overall system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024011585_02102025_PF_FP_ABST
    Figure JP2024011585_02102025_PF_FP_ABST
Patent Text Reader

Abstract

This communication setting device comprises: a packet amount calculation unit that calculates a packet amount in a connection between a robot control apparatus and external equipment; and a communication period setting unit that sets a communication period related to the connection in accordance with the packet amount calculated by the packet amount calculation unit.
Need to check novelty before this filing date? Find Prior Art

Description

Communication setting device and robot control device

[0001] The present disclosure relates to a communication setting device and a robot control device.

[0002] A robot control device that controls a robot is connected to various external devices so that they can communicate with each other. It is necessary to set in advance the communication cycle in the communication network between the robot control device and the external devices.

[0003] JP 2011-215821 A

[0004] In communication in a robot control device, a technology that can automatically set the packet communication cycle is desired.

[0005] According to one aspect of the present disclosure, the communication setting device includes a packet quantity calculation unit that calculates the packet quantity in the connection between the robot control device and the external device, and a communication period setting unit that sets the communication period for the connection in accordance with the packet quantity calculated by the packet quantity calculation unit.

[0006] 1 is a block diagram showing the configuration of a communication setting device and a robot control device according to an embodiment of the present disclosure; 2 is a flowchart (part 2) showing the operation of the communication setting device according to an embodiment of the present disclosure; and 3 is a flowchart (part 3) showing the operation of the communication setting device according to an embodiment of the present disclosure.

[0007] Hereinafter, embodiments of the communication setting device and the robot control device will be described with reference to the drawings. In the following description, components having the same or similar functions are designated by the same reference numerals. Duplicate descriptions of those components may be omitted. The scale of the drawings has been changed as appropriate to facilitate understanding.

[0008] In the following description, a "connection" refers to a logical communication line for transmitting and receiving a series of data groups between devices.

[0009] <Configuration of a Robot Control Device According to an Embodiment of the Present Disclosure> FIG. 1 is a block diagram showing the configuration of a communication setting device and a robot control device according to an embodiment of the present disclosure.

[0010] A robot control device 100 according to an embodiment of the present disclosure controls a robot 200. A robot teaching pendant 300 and various external devices 400 are connected to the robot control device 100. An operator can use the robot teaching pendant 300 to register and edit operation programs for the robot 200, perform various settings, display status, teach the robot, and manually operate the robot. The external devices 400 include a PLC 31, an I / O module 32, and other circuits. In the illustrated example, one external device 400 is connected to the robot control device 100, but multiple external devices 400 may be connected.

[0011] The robot controller 100 and external device 400 are communicatively connected via, for example, Ethernet / IP. To communicate with the external device 400, the robot controller 100 includes a communication setting device 1, a communication control unit 2, and other communication-related devices (not shown). The robot controller 100 also includes a processing unit, various control units, a storage device, a display device, an input device, a sensor, a power supply, and other circuits, but these are not shown in the figures.

[0012] The communication control unit 2 controls the connection between the robot control device 100 and the external device 400. The communication control unit 2 may establish one connection for one external device 400 with the robot control device 100, or may establish multiple connections. For example, a connection for high-speed communication and a connection for low-speed communication may be established and used depending on the characteristics of the data.

[0013] The communication setting device 1 sets a communication cycle for the connection between the robot control device 100 and the external device 400 .

[0014] <Configuration of a Communication Setting Device According to an Embodiment of the Present Disclosure> The communication setting device 1 includes a packet amount calculation unit 11 and a communication cycle setting unit 12 .

[0015] The packet amount calculation unit 11 calculates the amount of packets in the connection between the robot controller 100 and the external device 400. If there are multiple connections between the robot controller 100 and the external device 400, the total amount of packets in the multiple connections is calculated.

[0016] The "packet amount" calculated by the packet amount calculation unit 11 refers to the amount of packets transmitted and received per second between the robot control device 100 and the external device 400 under the tentative communication cycle, and is expressed in units of pps (packets per second). The "tentative communication cycle" refers to a provisional communication cycle that is set during a series of processes to determine the final communication cycle. Details of the tentative communication cycle will be described later.

[0017] There are two methods for calculating the "amount of packets" used by the packet amount calculation unit 11.

[0018] In the first calculation method, the amount of packets per second is calculated according to the formula "1000 / temporary communication period x 2." In this formula, "1000" is a coefficient used to convert the temporary packet communication period, which is in milliseconds, into seconds. In addition, in this formula, "x 2" is due to the packets traveling back and forth between the robot control device 100 and the external device 400.

[0019] In the second calculation method, packets are actually sent and received between the robot control device 100 and the external device 400 under a tentative communication period, and packets sent and received at the Ethernet port (Ethernet is a registered trademark) of the robot control device 100 are acquired for 1 to 3 seconds, and the average value is calculated and used as the packet volume.

[0020] The communication cycle setting unit 12 sets a communication cycle for the connection in accordance with the packet amount calculated by the packet amount calculation unit 11. When there are multiple connections between the robot control device 100 and the external device 400, the communication cycle setting unit 12 sets a communication cycle for each of the multiple connections individually based on the total packet amount for the multiple connections.

[0021] In the following, an example will be described in which there are multiple connections between the robot controller 100 and the external device 400, but the description is also applicable to a case in which there is only one connection between the robot controller 100 and the external device 400. When there is only one connection between the robot controller 100 and the external device 400, in the description, "the total amount of packets calculated by the packet amount calculation unit 11" and similar expressions will be replaced with "the amount of packets calculated by the packet amount calculation unit 11" and similar expressions, and "setting the communication cycle for each of the multiple connections" and similar expressions will be replaced with "setting the communication cycle for the connection" and similar expressions.

[0022] The communication cycle setting unit 12 sets the communication cycle for each connection based on the comparison result between a predetermined packet amount allowable value and the total packet amount calculated by the packet amount calculation unit 11. The packet amount allowable value is determined according to the CPU utilization rate of the arithmetic processing unit in the robot control device 100. In other words, the higher the CPU utilization rate, the smaller the packet amount allowable value is set to. The relationship between the CPU utilization rate and the packet amount allowable value will be described in detail later.

[0023] In a communication cycle setting process according to an embodiment of the present disclosure, a tentative communication cycle is first set based on a comparison result between the packet amount allowable value and the total packet amount calculated by the packet amount calculation unit 11. Based on the comparison result between the packet amount allowable value and the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle, if the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle exceeds the packet amount allowable value, the tentative communication cycle is reset by slightly lowering it for each connection. If the total packet amount calculated by the packet amount calculation unit 11 does not exceed the packet amount allowable value, the tentative communication cycle is reset by slightly increasing it for each connection. The tentative communication cycle is set based on the comparison result and the calculated packet amount value repeatedly, thereby finally determining an optimal communication cycle. To execute this series of processes, the communication cycle setting unit 12 includes a storage unit 21, a first tentative setting unit 22, a second tentative setting unit 23, and a determination unit 24.

[0024] The storage unit 21 can store an initial value of the tentative communication cycle, the tentative communication cycle set by the first tentative setting unit, and the tentative communication cycle set by the second tentative setting unit.

[0025] If the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle stored in the storage unit 21 does not exceed the packet amount allowable value, the first tentative setting unit 22 executes a first tentative setting process to set a "further tentative communication cycle" obtained by lowering the tentative communication cycle stored in the storage unit 21 by a predetermined value and writes the "further tentative communication cycle" to the storage unit 21. The first tentative setting process is repeatedly executed until the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle stored in the storage unit 21 exceeds the packet amount allowable value. Note that communication cycles generally have a lower limit for appropriate communication processing. Therefore, a lower limit value for the tentative communication cycle that can be set is set, and if a connection reaches the lower limit value of the tentative communication cycle during the first tentative setting process, the first tentative setting unit 22 maintains the tentative communication cycle for that connection and does not lower it any further.

[0026] When the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle stored in the storage unit 21 exceeds the packet amount allowable value, the second tentative setting unit 23 executes a second tentative setting process to set a "further tentative communication cycle" obtained by increasing the tentative communication cycle stored in the storage unit 21 by a predetermined value and write the set tentative communication cycle to the storage unit 21. The second tentative setting process is repeatedly executed until the total packet amount calculated by the packet amount calculation unit 11 under the tentative communication cycle stored in the storage unit 21 no longer exceeds the packet amount allowable value.

[0027] After the second provisional setting process, when the total packet amount calculated by the packet amount calculation unit 11 under the provisional communication cycle written in the storage unit 21 no longer exceeds the packet amount allowable value, the determination unit 24 determines the provisional communication cycle corresponding to the packet amount at which the total packet amount no longer exceeds the packet amount allowable value as the communication cycle to be set for the connection. The communication cycle setting unit 12 sets the communication cycle for each connection. The communication control unit 2 controls the connection between the robot control device 100 and the external device 400 under the communication cycle for the connection determined by the determination unit 24 in the communication setting device 1.

[0028] The robot control device 100 includes at least one CPU (processor) serving as an arithmetic processing device. The term "CPU" here encompasses concepts such as an IC, an LSI, an MPU, and a DSP. The arithmetic processing device includes a packet amount calculation unit 11, a first provisional setting unit 22, a second provisional setting unit 23, a determination unit 24, a communication control unit 2, and other processing units. Each of these units included in the arithmetic processing device is a functional module implemented by a program executed on the processor. For example, if the packet amount calculation unit 11, the first provisional setting unit 22, the second provisional setting unit 23, the determination unit 24, the communication control unit 2, and other processing units are implemented in a program format, the functions of each unit can be realized by operating the arithmetic processing device in accordance with the program. The programs for executing the processes in the packet amount calculation unit 11, the first provisional setting unit 22, the second provisional setting unit 23, the determination unit 24, the communication control unit 2, and other processing units may be provided in a form recorded on a computer-readable recording medium such as a semiconductor memory, a magnetic recording medium, or an optical recording medium. Alternatively, the packet quantity calculation unit 11, the first provisional setting unit 22, the second provisional setting unit 23, the determination unit 24, the communication control unit 2, and other processing units may be realized as a semiconductor integrated circuit into which programs that realize the functions of each unit are written.

[0029] The robot control device 100 also includes at least one memory serving as a storage device. The memory includes a storage unit 21. The memory also includes the packet amount calculation unit 11, the first provisional setting unit 22, the second provisional setting unit 23, the determination unit 24, the communication control unit 2, and various other storage units within the processing units. Examples of the memory include electrically erasable and recordable nonvolatile memories such as EEPROM (registered trademark), or high-speed read / write random access memories such as DRAM and SRAM. The storage device may also include a hard disk drive (HDD) or a solid state drive (SSD). The memory may store the packet amount calculated by the packet amount calculation unit 11. The memory may store a provisional communication cycle and its initial value. The memory may store a communication cycle determined by the determination unit 24. The memory may store a table indicating the relationship between CPU utilization and the allowable packet amount value. The memory may store programs for operating the packet amount calculation unit 11, the first provisional setting unit 22, the second provisional setting unit 23, the determination unit 24, the communication control unit 2, and other processing units. The memory may also store various programs and data related to the robot control device 100. The memory may also store various programs and data related to the robot 200 controlled by the robot control device 100. The memory may also store various programs and data related to the external device 400 connected to the robot control device 100.

[0030] <Relationship between CPU Usage Rate and Allowable Packet Volume Value> The allowable packet volume value is defined according to the CPU usage rate of the arithmetic processing unit in the robot controller 100. The arithmetic processing unit in the robot controller 100 allocates its resources to various arithmetic processing tasks in addition to communication processing between the robot controller 100 and the external device 400. In particular, processing related to robot control, which is an essential function of the robot controller 100, should be executed with the highest priority. The shorter the communication cycle in the connection between the robot controller 100 and the external device 400, the greater the packet volume, resulting in a higher CPU usage rate related to communication processing. High CPU usage rate related to communication processing may adversely affect other arithmetic processing tasks. Therefore, in one embodiment of the present disclosure, a packet volume allowable value is set for the connection between the robot controller 100 and the external device 400, preventing the CPU usage rate related to communication processing from becoming unnecessarily high.

[0031] In one embodiment of the present disclosure, the higher the CPU utilization rate, the lower the packet volume allowable value. CPU utilization rate is expressed as a percentage ranging from 0% to 100%. For example, CPU utilization rate is divided into several ranges, and a packet volume allowable value corresponding to each range is defined. For example, if the CPU utilization rate is 90% or higher, the packet volume allowable value is set to 300 pps; if the CPU utilization rate is 60% or higher but less than 90%, the packet volume allowable value is set to 500 pps; and if the CPU utilization rate is less than 60%, the packet volume allowable value is set to 1500 pps. Note that the numerical values ​​and CPU utilization rate division methods listed here are merely examples, and other numerical values ​​and CPU utilization rate division methods may also be used.

[0032] A table showing the relationship between CPU utilization rate and allowable packet volume is prepared in advance by, for example, a manufacturer or distributor of the robot control device 100 and pre-installed in the robot control device 100. When the communication setting device 1 performs communication setting processing, the communication setting device 1 refers to this table and sets the allowable packet volume value corresponding to the CPU utilization rate at that time.

[0033] 2 to 4 are flowcharts illustrating the operation of the communication setting device according to an embodiment of the present disclosure. The flowcharts illustrated in Fig. 2 to 4 are not limited to the case where there are multiple connections, but can also be applied to the case where there is only one connection.

[0034] Communication between the robot controller 100 and the external device 400 is initiated by changing the connection between the robot controller 100 and the external device 400 from disabled to enabled. The connection can be changed from disabled to enabled by an operator operating the robot teaching operation panel 300, or by the robot controller 100 starting a communication-related program. If there are multiple connections between the robot controller 100 and the external device 400, the operator can set each connection to enabled or disabled by operating the robot teaching operation panel 300. Note that before enabling a connection, the operator needs to input IP address setting information for each connection into the robot controller 100 using the robot teaching operation panel 300 or various input devices.

[0035] When executing the communication cycle setting process, an initial value of the tentative communication cycle for each connection can be set in advance. For example, the initial value of the tentative communication cycle can be set low for connections used for high-speed communication, and high for connections used for low-speed communication. When intentionally setting the initial value of the tentative communication cycle in this way, an operator inputs a desired initial value of the tentative communication cycle into the communication setting device 1 using the robot teaching operation panel 300 or various input devices. If there are no particular restrictions or requirements regarding the communication speed of the connection, the operator does not need to input an initial value of the tentative communication cycle. In this case, the standard value of the communication cycle specified in, for example, the instruction manual or specifications of the robot control device 100 is set as the initial value of the tentative communication cycle.

[0036] In step S101, the communication setup device 1 checks the setting contents of each connection.

[0037] The series of processes from steps S102 to S107 following step S101 are performed for each connection if there are multiple connections between the robot control device 100 and the external device 400, and are performed for that one connection if there is only one connection between the robot control device 100 and the external device 400.

[0038] In step S102, the communication setup device 1 determines whether a specific value has been input as the initial value of the tentative communication period for a certain connection to the robot control device 100. The "specific value" here refers to an initial value of the tentative communication period that has been intentionally set by an operator, such as a lower initial value of the tentative communication period for a connection for high-speed communication or a higher initial value of the tentative communication period for a connection for low-speed communication.

[0039] If it is determined in step S102 that a specific value has been input as the initial value of the tentative communication period, then in step S103 a setting process is performed in which the initial value is written to the storage unit 21. If it is not determined in step S102 that a specific value has been input as the initial value of the tentative communication period, then the standard value of the communication period specified in the instruction manual or specifications of the robot control device 100 is used as the initial value of the tentative communication period. In this case, the standard value is also stored in the storage unit 21.

[0040] In step S104, the communication setup device 1 determines whether the connection is valid.

[0041] If it is determined in step S104 that the connection is valid, the communication control unit 2 establishes communication for that connection. "Establishing communication" refers to establishing a state in which packets indicating the start of communication can be exchanged with the communication partner at any time. In the following step S106, the packet amount calculation unit 11 calculates the packet amount for that connection. After processing in step S106, the process proceeds to step S107.

[0042] If it is determined in step S104 that the connection is not valid (that is, if it is determined that the connection is invalid), the process proceeds to step S107.

[0043] In step S107, the communication setting device 1 determines whether or not there is a next connection for which the packet amount calculation unit 11 should calculate the packet amount.

[0044] If it is determined in step S107 that there is a next connection for which the packet amount should be calculated, the process returns to step S101. If it is not determined in step S107 that there is a next connection for which the packet amount should be calculated, the process proceeds to step S108. For example, if there is only one connection between the robot controller 100 and the external device 400, once the processes of steps S101 to S107 are executed, it is not determined in step S107 that there is a next connection for which the packet amount should be calculated, and the process proceeds to step S108. Also, for example, if there are multiple connections between the robot controller 100 and the external device 400, the processes of steps S101 to S107 are repeatedly executed until the packet amounts for all connections have been calculated.

[0045] In step S108, the packet amount calculation unit 11 calculates the total packet amount in the connection under the initial value of the provisional communication period stored in the storage unit 21. Note that if there is only one connection between the robot control device 100 and the external device 400, the packet amount calculation unit 11 calculates the packet amount in the one connection under the initial value of the provisional communication period stored in the storage unit 21.

[0046] In step S109, the communication setting device 1 determines whether or not an operation to start the communication cycle setting process has been performed. The communication cycle setting process is started by an operator manually operating an input device provided on the robot control device 100. For example, the communication cycle setting process is started by the operator pressing a setting process start button serving as the input device or by the operator inputting a setting process start command using the input device.

[0047] If it is determined in step S109 that an operation to start the process of setting the communication cycle has been performed, the process proceeds to step S110. If it is not determined in step S109 that an operation to start the process of setting the communication cycle has been performed, the process ends.

[0048] In step S110, the first provisional setting unit 22 and the second provisional setting unit 23 check the CPU utilization rate at that time in the arithmetic processing unit in the robot control device 100. Then, the first provisional setting unit 22 and the second provisional setting unit 23 refer to a table that defines the relationship between the CPU utilization rate and the allowable packet amount value, and set the allowable packet amount value corresponding to the CPU utilization rate at that time.

[0049] In step S111, the first provisional setting unit 22 determines whether the total amount of packets calculated by the packet amount calculation unit 11 under the provisional communication cycle stored in the storage unit 21 exceeds the allowable amount of packets.

[0050] The series of processes from steps S112 to S116 is performed for each connection if there are multiple connections between the robot control device 100 and the external device 400, and is performed for that one connection if there is only one connection between the robot control device 100 and the external device 400.

[0051] If it is determined in step S111 that the total packet amount calculated by the packet amount calculation unit 11 does not exceed the packet amount allowable value, in step S112, the first temporary setting unit 22 checks the setting contents of each connection.

[0052] In step S113, the first temporary setting unit 22 determines whether the connection is valid.

[0053] If it is not determined in step S113 that the connection is valid, the process proceeds to step S115.

[0054] If the connection is determined to be valid in step S113, in step S114, the first provisional setting unit 22 sets a ``further provisional communication period'' obtained by lowering the provisional communication period stored in the memory unit 21 by a predetermined value, and executes a first provisional setting process to write this to the memory unit 21.

[0055] In step S115, the first provisional setting unit 22 determines whether or not there is a next connection for which the first provisional setting process should be performed.

[0056] If it is determined in step S115 that a next connection for which the first provisional setting process should be performed exists, the process returns to step S112. If it is not determined in step S115 that a next connection for which the first provisional setting process should be performed exists, the process proceeds to step S116. For example, if there is only one connection between the robot controller 100 and the external device 400, after the processes of steps S112 to S115 are executed once, it is not determined in step S117 that a next connection for which the first provisional setting process should be performed exists, and the process proceeds to step S116. Also, for example, if there are multiple connections between the robot controller 100 and the external device 400, the processes of steps S112 to S115 are repeatedly executed until the packet amounts for all connections have been calculated.

[0057] In step S116, the packet amount calculation unit 11 calculates the total packet amount in the connection under the initial value of the provisional communication period stored in the storage unit 21. Note that if there is only one connection between the robot control device 100 and the external device 400, the packet amount calculation unit 11 calculates the packet amount in the one connection under the initial value of the provisional communication period stored in the storage unit 21. Thereafter, the process returns to step S111.

[0058] If it is determined in step S111 that the total amount of packets calculated by the packet amount calculation unit 11 exceeds the allowable value for the amount of packets, the process proceeds to step S117.

[0059] The series of processes from steps S117 to S120 is performed for each connection if there are multiple connections between the robot control device 100 and the external device 400, and is performed for that one connection if there is only one connection between the robot control device 100 and the external device 400.

[0060] In step S117, the second temporary setting unit 23 checks the setting contents of each connection.

[0061] In step S118, the second temporary setting unit 23 determines whether the connection is valid.

[0062] If it is not determined in step S118 that the connection is valid, the process proceeds to step S120.

[0063] If the connection is determined to be valid in step S118, in step S119, the second provisional setting unit 23 sets a ``further provisional communication period'' obtained by increasing the provisional communication period stored in the memory unit 21 by a predetermined value, and executes a second provisional setting process to write this to the memory unit 21.

[0064] In step S120, the second provisional setting unit 23 determines whether or not there is a next connection for which the second provisional setting process should be performed.

[0065] If it is determined in step S120 that a next connection for which the second provisional setting process should be performed exists, the process returns to step S117. If it is not determined in step S120 that a next connection for which the second provisional setting process should be performed exists, the process proceeds to step S121. For example, if there is only one connection between the robot controller 100 and the external device 400, once the processes of steps S117 to S120 are performed, it is not determined in step S120 that a next connection for which the second provisional setting process should be performed exists, and the process proceeds to step S121. Also, for example, if there are multiple connections between the robot controller 100 and the external device 400, the processes of steps S117 to S120 are repeatedly performed until the packet amounts for all connections have been calculated.

[0066] In step S121, the packet amount calculation unit 11 calculates the total packet amount in the connection under the provisional communication cycle stored in the storage unit 21. Note that if there is only one connection between the robot control device 100 and the external device 400, the packet amount calculation unit 11 calculates the packet amount in the one connection under the provisional communication cycle stored in the storage unit 21.

[0067] In step S122, the second provisional setting unit 23 determines whether the total amount of packets calculated by the packet amount calculation unit 11 under the provisional communication cycle stored in the storage unit 21 exceeds the allowable amount of packets.

[0068] If it is determined in step S122 that the total amount of packets calculated by the packet amount calculation unit 11 exceeds the allowable value for the amount of packets, the process returns to step S117.

[0069] If it is determined in step S122 that the total packet amount calculated by the packet amount calculation unit 11 does not exceed the packet amount allowable value, in step S123, the determination unit 24 determines the provisional communication period corresponding to the total packet amount when the packet amount no longer exceeds the packet amount allowable value as the communication period to be set for the connection, and then terminates the processing.

[0070] <Examples of Numerical Values ​​in the Communication Setup Process According to an Embodiment of the Present Disclosure> Two examples of numerical values ​​in the communication setup process according to an embodiment of the present disclosure will be described with reference to the flowcharts of Figures 2 to 4. Note that the numerical values ​​given here are merely examples, and other numerical values ​​may be used. In addition, the provisional communication period has a lower limit, and in this example, the lower limit is set to 2 milliseconds, but this numerical value is also merely an example, and other numerical values ​​may be used.

[0071] As an example, a case will be described in which there are a total of four connections, Connection A, Connection B, Connection C, and Connection D, between the robot control device 100 and the external device 400. The number of connections given here is just an example, and other numbers may be used. For example, Connection B is a connection for high-speed communication, and its initial tentative communication period is set to 8 milliseconds. Connection D is a connection for low-speed communication, and its initial tentative communication period is set to 64 milliseconds. Connection A and Connection C are connections with no particular restrictions or requirements regarding communication speed. The standard value of the communication period specified in the instruction manual or specifications of the robot control device 100 is set to 32 milliseconds.

[0072] (First Numerical Example) In the first numerical example, the packet amount allowance is set to 1500 pps.

[0073] Before executing the communication cycle setting process, the worker uses the robot teaching operation panel 300 or various input devices to input "8 milliseconds" as the initial value of the provisional communication cycle for connection B for high-speed communication, and "64 milliseconds" as the initial value of the provisional communication cycle for connection D for low-speed communication into the communication setting device 1.

[0074] In step S102, it is determined that specific values ​​(8 milliseconds, 64 milliseconds) have been input as the initial values ​​of the tentative communication periods for connection B and connection D, so in step S103, "8 milliseconds" is set as the initial value of the tentative communication period for connection B and written to the storage unit 21. Also, "64 milliseconds" is set as the initial value of the tentative communication period for connection D and written to the storage unit 21. For connections A and C, it is determined in step S102 that specific values ​​have not been input as the initial values ​​of the tentative communication period, so the standard value of the communication period of "32 milliseconds" specified in the instruction manual or specifications of the robot control device 100 is stored in the storage unit 21 as the initial value of the tentative communication period.

[0075] In step S105, the packet amount calculation unit 11 calculates the packet amount per second according to the formula "1000 / provisional communication cycle x 2." When the packet amount is calculated based on the initial value of the provisional communication cycle for connection A being "32 milliseconds," the result is 62.5 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection B being "8 milliseconds," the result is 250 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection C being "32 milliseconds," the result is 62.5 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection D being "64 milliseconds," the result is 31.25 pps.

[0076] In step S108, the total packet volume of connections A to D is 406.25 pps.

[0077] In step S111, it is determined that the total packet rate of 406.25 pps does not exceed the packet rate allowance of 1500 pps, and therefore in step S114, the first provisional setting unit 22 executes a first provisional setting process to set a "further provisional communication period" obtained by lowering the provisional communication period stored in the storage unit 21 by a predetermined value (for example, 2 milliseconds) and writes the set value to the storage unit 21. In step S114, the provisional communication period of connection A is set to "30 milliseconds," the provisional communication period of connection B is set to "6 milliseconds," the provisional communication period of connection C is set to "30 milliseconds," and the provisional communication period of connection D is set to "62 milliseconds."

[0078] In step S116, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of 30 milliseconds, it is 66.67 pps. When the packet volume of connection B is calculated under a provisional communication cycle of 6 milliseconds, it is 333.33 pps. When the packet volume of connection C is calculated under a provisional communication cycle of 30 milliseconds, it is 66.67 pps. When the packet volume of connection D is calculated under a provisional communication cycle of 62 milliseconds, it is 32.26 pps. Therefore, the total packet volume of connections A to D is 498.93 pps.

[0079] At this point, the packet rate of 498.93 pps for Connections A to D does not exceed the packet rate allowance of 1500 pps (step S111). Therefore, in step S114, the first provisional setting unit 22 sets a "further provisional communication period" obtained by lowering the provisional communication period stored in the storage unit 21 by a predetermined value (e.g., 2 milliseconds) and executes the first provisional setting process to write this to the storage unit 21. If the first provisional setting process is repeated two more times, the provisional communication period of each connection is lowered by a further "4 milliseconds." That is, the provisional communication period of Connection A is set to "26 milliseconds," the provisional communication period of Connection B to "2 milliseconds," the provisional communication period of Connection C to "26 milliseconds," and the provisional communication period of Connection D to "58 milliseconds."

[0080] In step S116, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of 26 milliseconds, it is 76.92 pps. When the packet volume of connection B is calculated under a provisional communication cycle of 2 milliseconds, it is 1000 pps. When the packet volume of connection C is calculated under a provisional communication cycle of 26 milliseconds, it is 76.92 pps. When the packet volume of connection D is calculated under a provisional communication cycle of 58 milliseconds, it is 34.48 pps. Therefore, the total packet volume of connections A to D is 1118 pps.

[0081] At this point, the packet volume of connections A to D, 1118 pps, does not exceed the packet volume allowance of 1500 pps (step S111). However, the provisional communication period of connection B, 2 milliseconds, has reached its lower limit, so from this point on, the provisional communication periods of connections A, C, and D are lowered.

[0082] In step S114 again, the first provisional setting unit 22 executes the first provisional setting process to set a "further provisional communication period" obtained by lowering the provisional communication period stored in the storage unit 21 by a predetermined value (for example, 2 milliseconds) and writes the set value to the storage unit 21. When the first provisional setting process is repeated eight more times, the provisional communication periods of Connections A, C, and D are further lowered by "16 milliseconds." That is, the provisional communication period of Connection A is set to "10 milliseconds," the provisional communication period of Connection B remains at "2 milliseconds," the provisional communication period of Connection C is set to "10 milliseconds," and the provisional communication period of Connection D is set to "42 milliseconds."

[0083] In step S116, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated using a provisional communication cycle of 10 milliseconds, it is 200 pps. When the packet volume of connection B is calculated using a provisional communication cycle of 2 milliseconds, it is 1000 pps. When the packet volume of connection C is calculated using a provisional communication cycle of 10 milliseconds, it is 200 pps. When the packet volume of connection D is calculated using a provisional communication cycle of 42 milliseconds, it is 47.61 pps. Therefore, the total packet volume of connections A to D is 1447.61 pps.

[0084] At this point, the packet rate of 1447.61 pps for Connections A to D does not exceed the packet rate allowance of 1500 pps (step S111), so the provisional communication cycles of Connections A, C, and D are further reduced by 2 milliseconds. As a result, the provisional communication cycle of Connection A is set to "8 milliseconds," the provisional communication cycle of Connection B remains at "2 milliseconds," the provisional communication cycle of Connection C is set to "8 milliseconds," and the provisional communication cycle of Connection D is set to "40 milliseconds."

[0085] In step S116, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of "8 milliseconds," it is 250 pps. When the packet volume of connection B is calculated under a provisional communication cycle of "2 milliseconds," it is 1000 pps. When the packet volume of connection C is calculated under a provisional communication cycle of "8 milliseconds," it is 250 pps. When the packet volume of connection D is calculated under a provisional communication cycle of "40 milliseconds," it is 50 pps. Therefore, the total packet volume of connections A to D is 1550 pps.

[0086] Since it is determined in step S111 that the total packet rate of 1550 pps exceeds the packet rate allowable value of 1500 pps, in step S119, the second provisional setting unit 23 sets a "further provisional communication period" obtained by increasing the provisional communication period stored in the storage unit 21 by a predetermined value (e.g., 2 milliseconds) and executes a second provisional setting process to write the obtained "further provisional communication period" to the storage unit 21. In step S119, the provisional communication period of connection A is set to "10 milliseconds," the provisional communication period of connection B is set to "4 milliseconds," the provisional communication period of connection C is set to "10 milliseconds," and the provisional communication period of connection D is set to "42 milliseconds." Here, the provisional communication period of connection B, whose provisional communication period had reached the lower limit of "2 milliseconds," is also set to "4 milliseconds" by increasing it by 2 milliseconds, like the other connections, in order to prioritize simplifying the calculation process and reducing the CPU load.

[0087] In step S121, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated using a provisional communication cycle of 10 milliseconds, it is 200 pps. When the packet volume of connection B is calculated using a provisional communication cycle of 4 milliseconds, it is 500 pps. When the packet volume of connection C is calculated using a provisional communication cycle of 10 milliseconds, it is 200 pps. When the packet volume of connection D is calculated using a provisional communication cycle of 42 milliseconds, it is 47.61 pps. Therefore, the total packet volume of connections A to D is 947.61 pps.

[0088] At this point, in step S122, it is determined that the total packet rate of 947.61 pps does not exceed the packet rate allowance of 1500 pps, so in step S123, the determination unit 24 determines the tentative communication period corresponding to the total packet rate of 947.61 pps when the packet rate no longer exceeds the packet rate allowance as the communication period to be set for the connection. That is, in step S123, the determination unit 24 sets the communication period of connection A to "10 milliseconds," the communication period of connection B to "4 milliseconds," the communication period of connection C to "10 milliseconds," and the communication period of connection D to "42 milliseconds." Then, the process ends.

[0089] (Second Numerical Example) In a second numerical example, the packet amount allowance is set to 300 pps.

[0090] Before executing the communication cycle setting process, the worker uses the robot teaching operation panel 300 or various input devices to input "8 milliseconds" as the initial value of the provisional communication cycle for connection B for high-speed communication, and "64 milliseconds" as the initial value of the provisional communication cycle for connection D for low-speed communication into the communication setting device 1.

[0091] In step S102, it is determined that specific values ​​(8 milliseconds, 64 milliseconds) have been input as the initial values ​​of the tentative communication periods for connection B and connection D, so in step S103, "8 milliseconds" is set as the initial value of the tentative communication period for connection B and written to the storage unit 21. Also, "64 milliseconds" is set as the initial value of the tentative communication period for connection D and written to the storage unit 21. For connections A and C, it is determined in step S102 that specific values ​​have not been input as the initial values ​​of the tentative communication period, so the standard value of the communication period of "32 milliseconds" specified in the instruction manual or specifications of the robot control device 100 is stored in the storage unit 21 as the initial value of the tentative communication period.

[0092] In step S105, the packet amount calculation unit 11 calculates the packet amount per second according to the formula "1000 / provisional communication cycle x 2." When the packet amount is calculated based on the initial value of the provisional communication cycle for connection A being "32 milliseconds," the result is 62.5 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection B being "8 milliseconds," the result is 250 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection C being "32 milliseconds," the result is 62.5 pps. When the packet amount is calculated based on the initial value of the provisional communication cycle for connection D being "64 milliseconds," the result is 31.25 pps.

[0093] In step S108, the total packet volume of connections A to D is 406.25 pps.

[0094] Since it is determined in step S111 that the total packet rate of 406.25 pps exceeds the packet rate allowance of 300 pps, in step S119, the second provisional setting unit 23 executes a second provisional setting process to set a "further provisional communication period" obtained by increasing the provisional communication period stored in the storage unit 21 by a predetermined value (for example, 2 milliseconds) and writes the result to the storage unit 21. In step S119, the provisional communication period of connection A is set to "34 milliseconds," the provisional communication period of connection B is set to "10 milliseconds," the provisional communication period of connection C is set to "34 milliseconds," and the provisional communication period of connection D is set to "66 milliseconds."

[0095] In step S121, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of 34 milliseconds, it is 58.82 pps. When the packet volume of connection B is calculated under a provisional communication cycle of 10 milliseconds, it is 200 pps. When the packet volume of connection C is calculated under a provisional communication cycle of 34 milliseconds, it is 58.82 pps. When the packet volume of connection D is calculated under a provisional communication cycle of 66 milliseconds, it is 30.3 pps. Therefore, the total packet volume of connections A to D is 347.94 pps.

[0096] At this point, the packet rate of 347.94 pps for Connections A to D exceeds the packet rate allowance of 300 pps (step S122). Therefore, again in step S119, second provisional setting unit 23 executes the second provisional setting process to set a "further provisional communication period" obtained by increasing the provisional communication period stored in storage unit 21 by a predetermined value (e.g., 2 milliseconds) and writes the set value to storage unit 21. As a result, the provisional communication period of each connection is increased by another 2 milliseconds. That is, the provisional communication period of Connection A is set to 36 milliseconds, the provisional communication period of Connection B is set to 12 milliseconds, the provisional communication period of Connection C is set to 36 milliseconds, and the provisional communication period of Connection D is set to 68 milliseconds.

[0097] In step S121, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of 36 milliseconds, it is 55.55 pps. When the packet volume of connection B is calculated under a provisional communication cycle of 12 milliseconds, it is 166.67 pps. When the packet volume of connection C is calculated under a provisional communication cycle of 36 milliseconds, it is 55.55 pps. When the packet volume of connection D is calculated under a provisional communication cycle of 68 milliseconds, it is 29.41 pps. Therefore, the total packet volume of connections A to D is 307.18 pps.

[0098] At this point, the packet rate of 307.18 pps for Connections A to D exceeds the packet rate allowance of 300 pps (step S122). Therefore, again in step S119, second provisional setting unit 23 executes the second provisional setting process to set a "further provisional communication period" obtained by increasing the provisional communication period stored in storage unit 21 by a predetermined value (e.g., 2 milliseconds) and writes the set value to storage unit 21. As a result, the provisional communication period of each connection is increased by another 2 milliseconds. That is, the provisional communication period of Connection A is set to 38 milliseconds, the provisional communication period of Connection B is set to 14 milliseconds, the provisional communication period of Connection C is set to 38 milliseconds, and the provisional communication period of Connection D is set to 70 milliseconds.

[0099] In step S121, the total packet volume of connections A to D under the provisional communication cycle is calculated. When the packet volume of connection A is calculated under a provisional communication cycle of 38 milliseconds, it is 52.63 pps. When the packet volume of connection B is calculated under a provisional communication cycle of 14 milliseconds, it is 142.86 pps. When the packet volume of connection C is calculated under a provisional communication cycle of 38 milliseconds, it is 52.63 pps. When the packet volume of connection D is calculated under a provisional communication cycle of 70 milliseconds, it is 28.57 pps. Therefore, the total packet volume of connections A to D is 276.69 pps.

[0100] At this point, in step S122, it is determined that the total packet rate of 276.69 pps does not exceed the packet rate allowance of 300 pps, so in step S123, the determination unit 24 determines the tentative communication period corresponding to the total packet rate of 276.69 pps when the packet rate no longer exceeds the packet rate allowance as the communication period to be set for the connection. That is, in step S123, the determination unit 24 sets the communication period of connection A to "38 milliseconds," the communication period of connection B to "14 milliseconds," the communication period of connection C to "38 milliseconds," and the communication period of connection D to "70 milliseconds." Then, the process ends.

[0101] Advantages of the Embodiments and Modifications of the Present Disclosure According to the embodiments and modifications of the present disclosure, the packet communication cycle can be automatically set in communication between a robot control device and an external device.

[0102] In the past, when setting the communication cycle for a communication connection between a robot control device and an external device for the first time, it was sometimes difficult to know what value to set it to. Furthermore, when there were multiple communication connections between the robot control device and external devices, setting the communication cycle was time-consuming. Furthermore, because various calculation processes are performed within the robot control device, the communication cycle in the communication network between the robot control device and external devices had to be set taking into account the CPU load, which was time-consuming.

[0103] According to the embodiment and its modified examples of the present disclosure, it is possible to automatically set the communication period of the communication connection between the robot control device and the external device, and also to set an appropriate communication period taking into account the CPU load of the arithmetic processing unit in the robot control device.

[0104] Although the present disclosure has been described in detail above, the present disclosure is not limited to the individual embodiments and individual variations described above. Various additions, substitutions, modifications, partial deletions, etc. are possible for these embodiments and variations within the scope of the gist of the present disclosure, or within the scope of the gist of the present disclosure derived from the content of the claims and their equivalents. These embodiments and variations can also be implemented in combination. For example, in the above-described embodiments and variations, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values ​​or mathematical formulas are used in the description of the above-described embodiments and variations.

[0105] <Supplementary Notes> The following supplementary notes are further disclosed regarding the above-described embodiment and modifications.

[0106] (Supplementary Note 1) A communication setting device comprising: a packet amount calculation unit that calculates the amount of packets in a connection between a robot control device and an external device; and a communication cycle setting unit that sets a communication cycle for the connection in accordance with the amount of packets calculated by the packet amount calculation unit. (Supplementary Note 2) The communication setting device according to Supplementary Note 1, wherein the communication cycle setting unit sets the communication cycle based on a predetermined packet amount allowable value and the amount of packets calculated by the packet amount calculation unit. (Supplementary Note 3) The communication cycle setting unit includes: a storage unit that stores a tentative communication cycle; a first tentative setting unit that repeatedly executes a first tentative setting process, in which a further tentative communication cycle obtained by lowering the tentative communication cycle stored in the storage unit by a predetermined value is set and written into the storage unit, until the packet amount calculated by the previous packet amount calculation unit under the tentative communication cycle stored in the storage unit exceeds the packet amount allowable value; a second tentative setting unit that repeatedly executes a second tentative setting process, in which, when the packet amount calculated by the packet amount calculation unit under the tentative communication cycle stored in the storage unit exceeds the packet amount allowable value, a further tentative communication cycle obtained by raising the tentative communication cycle stored in the storage unit by a predetermined value is set and written into the storage unit, until the packet amount calculated by the packet amount calculation unit under the tentative communication cycle stored in the storage unit does not exceed the packet amount allowable value; and a determination unit that, after the second tentative setting process, when the packet amount calculated by the packet amount calculation unit under the tentative communication cycle written in the storage unit does not exceed the packet amount allowable value, determines the tentative communication cycle corresponding to the packet amount at which the packet amount no longer exceeds the packet amount allowable value as the communication cycle for the connection. (Supplementary Note 4) The communication setting device according to Supplementary Note 2, wherein the packet amount allowable value is defined according to the CPU utilization rate of an arithmetic processing unit in the robot control device. (Supplementary Note 5) The communication setting device according to Supplementary Note 4, wherein the packet amount allowable value is set to a smaller value as the CPU utilization rate is higher. (Supplementary Note 6) The communication setting device according to any one of Supplements 1 to 5, wherein the packet amount calculated by the packet amount calculation unit is the sum of the packet amounts in multiple connections between the robot control device and an external device, and the communication cycle setting unit sets a communication cycle for each of the multiple connections.(Supplementary Note 7) A robot control device comprising the communication setting device according to any one of Supplementary Notes 1 to 5. (Supplementary Note 8) A robot control device comprising the communication setting device according to Supplementary Note 6.

[0107] REFERENCE SIGNS LIST 1 communication setting device 2 communication control unit 11 packet amount calculation unit 12 communication cycle setting unit 21 storage unit 22 first temporary setting unit 23 second temporary setting unit 24 determination unit 31 PLC 32 I / O module 100 robot control device 200 robot 300 robot teaching operation panel 400 external device

Claims

1. A communication setting device comprising: a packet amount calculation unit that calculates the amount of packets in a connection between a robot control device and an external device; and a communication cycle setting unit that sets a communication cycle for the connection in accordance with the amount of packets calculated by the packet amount calculation unit.

2. The communication setting device according to claim 1, wherein the communication cycle setting unit sets the communication cycle based on a predetermined packet volume allowable value and the packet volume calculated by the packet volume calculation unit.

3. The communication cycle setting unit includes: a storage unit that stores a tentative communication cycle; a first tentative setting unit that repeatedly executes a first tentative setting process to set a further tentative communication cycle obtained by lowering the tentative communication cycle stored in the storage unit by a predetermined value and writing the set tentative communication cycle into the storage unit until the packet amount calculated by the packet amount calculation unit under the tentative communication cycle stored in the storage unit exceeds the packet amount allowable value; and a second tentative setting unit that repeatedly executes a second tentative setting process to set a further tentative communication cycle obtained by raising the tentative communication cycle stored in the storage unit by a predetermined value and writing the set tentative communication cycle into the storage unit when the packet amount calculated by the packet amount calculation unit under the tentative communication cycle stored in the storage unit exceeds the packet amount allowable value, until the packet amount calculated by the packet amount calculation unit under the tentative communication cycle stored in the storage unit does not exceed the packet amount allowable value.

3. The communication setting device according to claim 2, further comprising: a determination unit that, when the packet amount calculated by the packet amount calculation unit under the provisional communication period written in the memory unit after the second provisional setting process no longer exceeds the packet amount allowable value, determines the provisional communication period corresponding to the packet amount at which the packet amount no longer exceeds the packet amount allowable value as the communication period for the connection.

4. A communication setting device according to claim 2, wherein the packet volume allowable value is determined according to the CPU usage rate of the processing unit in the robot control device.

5. The communication setting device according to claim 4, wherein the higher the CPU utilization rate, the smaller the packet amount allowable value is set.

6. A communication setting device as described in any one of claims 1 to 5, wherein the packet amount calculated by the packet amount calculation unit is the sum of the packet amounts in multiple connections between the robot control device and the external device, and the communication cycle setting unit sets the communication cycle for each of the multiple connections.

7. A robot control device comprising the communication setting device according to any one of claims 1 to 5.

8. A robot control device comprising the communication setting device according to claim 6.

Citation Information

Patent Citations

  • Wireless device and wireless network system using it

    JP2007235871A

  • Control device for performing radio communication with operation panel, radio module, and radio relay unit

    JP2018051663A