Control system and control method

By employing real-time data acquisition and correction processing based on pre-measured response times, the control system achieves accurate control of devices in non-real-time communication scenarios.

JP7886292B2Active Publication Date: 2026-07-07HITACHI IND EQUIP SYST CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
HITACHI IND EQUIP SYST CO LTD
Filing Date
2023-03-23
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

Existing control systems face challenges in accurately controlling controlled devices using non-real-time communication due to the inability to determine the detection time of detected values, leading to inaccuracies in device operation.

Method used

The control system employs real-time communication to repeatedly acquire detection data, correct command values, and generate control requests based on pre-measured response times in non-real-time communication, using a correction model to output corrected command values.

Benefits of technology

This approach enables precise control of controlled devices even in non-real-time communication environments by aligning detection and command times, enhancing operational accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007886292000001
    Figure 0007886292000001
  • Figure 0007886292000002
    Figure 0007886292000002
  • Figure 0007886292000003
    Figure 0007886292000003
Patent Text Reader

Abstract

To precisely control a controlled device in non-real-time communication.SOLUTION: A control system acquires a detection value relating to a controlled device in real-time communication, performs correction processing of a command value on the controlled device, and in non-real-time communication, transmits a control request having the corrected command value to the controlled device and receives a response including a return value. Based on a first set of a time and the return value, a second set of a time and the detection value, and a third set of a time and the command value, the correction processing for each control request is processing for outputting the command value obtained by correcting the command value in the third set, and in this correction processing, the time in the second set is a corrected time that is determined based on the transmission time at which the control request is transmitted and a response time measured in advance for non-real-time communication.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the control of a controlled device.

Background Art

[0002] In order to accurately control a controlled device, time management is necessary. Regarding time management, for example, the techniques of Patent Documents 1 to 3 are known.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Patent Document 3

Summary of the Invention

Problems to be Solved by the Invention

[0004] A control system that generates a control request for a controlled device based on a detection value related to the controlled device and transmits the control request to the controlled device is known.

[0005] Non-real-time communication may be used as the communication method for sending control requests, depending on the execution environment of the program that sends control requests to the controlled device (e.g., the OS (Operating System)) or other reasons. "Non-real-time communication" refers to communication with a relatively long response time, such as UDP (User Datagram Protocol) / IP (Internet Protocol) communication or serial communication. Non-real-time communication may be an example of a first communication that provides a first response time. In contrast to non-real-time communication, "real-time communication" refers to communication with a relatively short response time (e.g., communication for which a maximum response time is defined in the specifications), such as EtherCAT (registered trademark) communication. Real-time communication may be an example of a second communication that provides a second response time shorter than the first response time (e.g., a response time less than or equal to the maximum response time defined in the specifications).

[0006] The controlled device operates according to control requests from the control system, but this operation may cause changes in the detected values ​​related to the controlled device. Therefore, for the control system, the detection time, which is the time when the detected values ​​related to the controlled device occurred, is one of the times between the time the control request was sent and the time the response to that control request was received.

[0007] In non-real-time communication, the control system cannot determine the detection time, and therefore, it is difficult to control the controlled device accurately in non-real-time communication. [Means for solving the problem]

[0008] The control system repeatedly generates acquisition requests to obtain detected values ​​related to the controlled device, transmits these acquisition requests in real-time communication, and receives detection data representing the detected values ​​as a response to the acquisition requests. The control system also repeatedly performs correction processing on the command values ​​for the controlled device, generates control requests with the corrected command values, transmits these control requests in non-real-time communication, and receives control result data representing the return value for the command values ​​in the control requests. For each control request, the correction process outputs a corrected command value based on a first pair of time and return value, a second pair of time and detected value, and a third pair of time and command value. In this correction process, the time in the second pair is a corrected time determined based on the transmission time when the control request is sent and the response time measured in advance for non-real-time communication. [Effects of the Invention]

[0009] According to the present invention, the controlled device can be controlled with high precision in non-real-time communication. [Brief explanation of the drawing]

[0010] [Figure 1] An example of the physical configuration of a system including the control system according to the embodiment is shown. [Figure 2] This diagram schematically illustrates the control of a processing machine by a control device and the control of a robot by an expansion device. [Figure 3] A schematic example of a method for pre-measuring response time in non-real-time communication is shown. [Figure 4] An example of a response time table is shown below. [Figure 5] An example of time-sharing data is shown. [Figure 6] This shows the flow of robot control processing. [Figure 7] An example of training a correction model is shown. [Figure 8] The correction process for S602 is schematically shown. [Figure 9] An example of the configuration of a control system related to a modified version is shown. [Modes for carrying out the invention]

[0011] In the following description, "interface device" may refer to one or more interface devices. These one or more interface devices may be one or more identical communication interface devices or two or more different communication interface devices.

[0012] Furthermore, in the following explanation, "memory" refers to one or more memory devices, which are typically main memory devices. At least one memory device in memory may be a volatile memory device or a non-volatile memory device.

[0013] Furthermore, in the following explanation, "persistent storage device" refers to one or more persistent storage devices. Persistent storage devices are typically non-volatile storage devices (e.g., auxiliary storage devices), specifically, for example, HDDs (Hard Disk Drives) or SSDs (Solid State Drives).

[0014] Furthermore, in the following explanation, "storage device" may refer to at least memory, including both memory and persistent storage.

[0015] Also, in the following description, a "processor" may be one or more processor devices. At least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device may also be a processor device in a broad sense such as a hardware circuit (e.g., FPGA (Field-Programmable Gate Array), CPLD (Complex Programmable Logic Device), or ASIC (Application Specific Integrated Circuit)) that performs part or all of the processing.

[0016] Also, in the following description, the processing may be described with "program" as the subject. However, since the program is executed by a processor to perform the defined processing while appropriately using a storage device and / or an interface device, etc., the subject of the processing may be a processor (or a device such as a controller having that processor). The program may be installed from a program source into a device such as a computer. The program source may be, for example, a program distribution server or a computer-readable (e.g., non-temporary) recording medium. Also, in the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.

[0017] In the following description, the function may be described in terms of a "yyy unit", but the function may be realized by one or more computer programs being executed by a processor. When the function is realized by the program being executed by the processor, since the defined processing is performed while appropriately using a storage device and / or an interface device, etc., the function may be regarded as at least part of the processor. The processing described with the function as the subject may be the processing performed by the processor or a device having the processor. The description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.

[0018] In the following description, information from which an output can be obtained for an input may be described in terms of an expression such as an "xxx table", but the information may be data of any structure (for example, structured data or unstructured data), or may be a learning model represented by a neural network, a genetic algorithm, or a random forest that generates an output for an input. Therefore, the "xxx table" can be referred to as "xxx information". Also, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table.

[0019] In the following description, as an example of identification information, any one of an ID, a name, and a number is adopted, but the identification information may include other types of elements instead of or in addition to at least one of the ID, the name, and the number.

[0020] In the following description, when describing elements of the same type without distinction, a common part of the reference signs may be used, and when describing elements of the same type while distinguishing them, reference signs may be used.

[0021] FIG. 1 shows an example of the physical configuration of a system including a control system according to an embodiment.

[0022] The control system 109 is installed in the factory 10 where the controlled device is located. The controlled device is, for example, a machining center 119 that processes a set workpiece, or a robot 120 that sets the workpiece in the machining center 119. Factory 10 is an example of a workplace where a controlled device is located.

[0023] The control system 109 is connected, for example, to a communication network 19 (e.g., a LAN (Local Area Network)) within the factory 10. The communication network 19 is an example of a communication network used for non-real-time communication.

[0024] Sensors 12 provided on the control system 109, the processing machine 119, and the robot 120 are connected to a communication network 118 (for example, Ethernet®). The communication network 118 is an example of a communication network used for real-time communication.

[0025] The control system 109 comprises one or more arithmetic units 40. Each arithmetic unit 40 comprises an interface device, a memory device, and a processor connected thereto. All arithmetic units 40 may have the same or different hardware configurations. In this embodiment, arithmetic unit 40M is the main arithmetic unit. Arithmetic units 40E1 and 40E2 are additional arithmetic units, respectively. Arithmetic units 40E may be omitted. In other words, arithmetic unit 40M alone may constitute the control system 109. Hereinafter, arithmetic unit 40M may be referred to as "control device 40M," and arithmetic unit 40E may be referred to as "expansion device 40E."

[0026] The system configuration depends on the presence or absence of the expansion device 40E, and the type of communication medium to which the control device 40M and the expansion device 40E are connected. In the example in Figure 1, the expansion device 40E1 is connected to the communication network 118. The expansion device 40E2 is connected to the PIO bus 28 (an example of a bus) ("PIO" is an abbreviation for Programmed I / O). The PIO bus 28 may be a bus printed on the baseboard, and the control device 40M and the expansion device 40E2 may communicate data via the PIO bus 28 by connecting the control device 40M and the expansion device 40E2 to the baseboard.

[0027] As described above, the control system 109 includes at least one control device 40M. The control device 40M performs periodic scan processing. The "scan processing" may include reading information from a device (e.g., a controlled device) connected to an I / O (Input / Output) port, performing calculations on the read information, and writing the calculated information. Scan processing is just one example of control processing.

[0028] The hardware configuration of the arithmetic unit 40 can be described using the control unit 40M as an example. Specifically, the control unit 40M includes memory 169 (for example, EPROM 208 and main memory 210), peripheral control device 212, I / O control device 214, non-volatile storage device 215, network I / F device 213, and a processor 209 connected thereto. The I / O control device 214 and network I / F device 213 are examples of interface devices. The memory 169 and non-volatile storage device 215 are examples of storage devices.

[0029] The peripheral control unit 212 is connected to the network interface device 213, the I / O control unit 214, the non-volatile storage device 215, and the bus 211. The bus 211 is also connected to the memory 169 and the processor 209.

[0030] EPROM208 may store programs downloaded from program source code, such as a pre-program distribution server (not shown).

[0031] The processor 209 reads the program stored in the EPROM 208 into the main memory 210, executes it, and controls the operation of the program. For example, the processor 209 controls the machining center 119 via the I / O control device 214, or acquires detection data from the sensor 12. Also, for example, the processor 209 communicates with the expansion device 40E that controls the robot 120 via the network I / F device 213 (or by other means).

[0032] Figure 2 schematically shows the control of the processing machine 119 by the control device 40M and the control of the robot 120 by the expansion device 40E.

[0033] The processor 209M of the control device 40M executes multiple computer programs, thereby running the OS 211M in the control device 40M. Functions such as the time synchronization unit 260M, the response time measurement unit 252, and the control unit 251 are implemented on the OS 211M. The operation of the control unit 251 and other functions may be controlled by the OS 211M (or runtime software). The OS 211M may be a real-time OS, for example, a real-time general-purpose OS (an OS that is part of the general-purpose OS family for information processing but has real-time functions that can provide the required real-time capabilities).

[0034] The time synchronization unit 260M communicates with the time synchronization units of the other arithmetic units 40 to synchronize the current time between the control unit 40M and the other arithmetic units 40. In other words, the current time managed by each arithmetic unit 40 is the same.

[0035] The response time measurement unit 252 measures the response time in non-real-time communication, generates a response time table 280 representing the measured response time, and stores the response time table 280 in the memory 169.

[0036] The control unit 251 performs control processing, including controlling the machining center 119 in a control cycle. The control unit 251 has functions as a PLC (Programmable Logic Controller), for example, and performs the above control processing as sequence control.

[0037] The control unit 251 generates time-sharing data 281 (data representing pre-measured response times) based on the response time table 280 and transmits the time-sharing data 281 to each of the other arithmetic units 40.

[0038] The processor 209E of the expansion device 40E executes multiple computer programs, thereby running OS211E on the expansion device 40E. Furthermore, functions such as the time synchronization unit 260E, the RT correction unit 271, and the robot control unit 272 are implemented on OS211E ("RT" stands for Real-Time). OS211E may be the same as OS211M, but it may be a different OS. For example, OS211E may be ROS (Robot Operating System).

[0039] The time synchronization unit 260E communicates with the time synchronization units of the other arithmetic units 40 and synchronizes the current time between this arithmetic unit 40E and the other arithmetic units 40.

[0040] The RT correction unit 271 corrects the command values ​​specified in the control request transmitted by the robot control unit 272. The correction is performed using a model-based approach, specifically using a correction model 290, which is a machine learning model. The correction may also be performed using a method other than a model-based approach, such as a rule-based approach.

[0041] The robot control unit 272 controls the robot 120. The robot control unit 272 sends a control request to the robot 120 specifying command values ​​in order to control the robot 120.

[0042] The control unit 251 periodically executes processing according to a predetermined sequence. In each cycle (for example, cycle time (which may also be called scan time)), the processing includes generating an acquisition request to acquire a detected value from the sensor 12, transmitting the acquisition request, and receiving detection data representing the detected value as a response to the acquisition request. This periodically performed processing may include transmitting the received detection data to the expansion device 40E (robot control unit 272). The transmission of the acquisition request and the reception of the detection data are performed via real-time communication (for example, communication via the I / O control device 214 and the communication network 118). For example, the robot 120 has an arm and a plurality of servo motors, and the sensor 12 may be a force sensor attached to the arm of the robot 120. The detection data may include the rotation axis angle of each servo motor. "Real-time communication" refers to communication with a relatively short response time (for example, communication in which the maximum response time is specified in the specifications), such as communication using EtherCAT®.

[0043] The robot control unit 272 repeatedly performs robot control processing in accordance with instructions from the control unit 251 (or at predetermined timings without instructions from the control unit 251). The robot control processing includes correcting the command values ​​for the robot 120, generating a control request with the corrected command values, transmitting the control request, and receiving control result data representing the return value for the command values ​​in the control request. The control performed by the robot control unit 272 may be PTP (Point-To-Point Control or Pose-To-Pose Control) control. Therefore, the command values ​​may be data representing the position of a part of the robot 120 (e.g., joint angles). The transmission of the control request and the reception of the control result data are performed via non-real-time communication (e.g., communication via the network I / F device 213 and the communication network 19). "Non-real-time communication" refers to communication with a relatively long response time, such as UDP / IP communication or serial communication.

[0044] The robot 120 operates according to control requests from the robot control unit 272, but this operation may cause changes in the detected values ​​of the robot 120's sensor 12. In control (robot operation) performed in response to a control request, the time at which a detected value (change in detected value) occurs (detection time) is either from the time the control request is sent to the time the response to the control request is received. The response time in non-real-time communication (the time between the transmission time and the reception time) is longer than the response time in real-time communication. However, for communication for robot control, non-real-time communication is used due to the requirements of OS211E (e.g., ROS) or other reasons.

[0045] While the detection data from sensor 12 may be collected by the expansion device 40E, collection via non-real-time communication may result in a relatively large discrepancy between the detection time and the time the detection data is received. Furthermore, it is expected that the collection of detection data from sensor 12 will be more accurate if it is performed during the periodic processing of the control unit 251, which has the functionality of a PLC.

[0046] The response time in non-real-time communication differs from the response time in real-time communication. Specifically, for example, in real-time communication, the difference between the time of reception of detection data and the detection time (the time when the detected value (change in the detected value) occurs) is small (for example, the difference is small enough that the reception time can be considered the detection time), but in non-real-time communication, the difference between the detection time and the time of reception of the control result data is large. Using time data with such different resolutions for control or correction for control may reduce the accuracy of the control.

[0047] Therefore, in this embodiment, the control unit 251 collects the detection data via real-time communication, and the control unit 251 provides the detection data to the robot control unit 272. Communication of the detection data between devices 40M and 40E may be performed through an interface and network used for real-time communication (e.g., I / O control device 214 and communication network 118).

[0048] Furthermore, the response time, which is the difference between the transmission time (the transmission time of the control request) and the detection time (the time when the detected value (change in detected value) occurs in accordance with the control request) in non-real-time communication, is measured in advance, and correction processing of the command value specified in the control request is performed based on the pre-measured response time.

[0049] Figure 3 schematically shows an example of a method for pre-measuring response time in non-real-time communication.

[0050] The response time measurement unit 252 of the control device 40M transmits a control request in non-real-time communication and receives a response (a response containing control result data) from the controlled device 319 that is controlled according to the control request. The transmission time of the control request is denoted as "T0", and the reception time of the response to the control request is denoted as "T1". The controlled device 319 may be the robot 120 or another device.

[0051] A sensor 302 is provided on the controlled device 319. Sensor 302 may be sensor 12 provided on the robot 120, or it may be another sensor.

[0052] The controlled device 319 operates according to the control request from the time it receives the control request until it sends a response, and as a result of this operation, a detected value (change in detected value) is generated in the sensor 302.

[0053] Therefore, the control device 40M is equipped with an analog I / O device 301 that receives an analog signal from the sensor 302. The signal (detection data) from the sensor 302 may be received by another interface device instead of the analog I / O device 301, and the signal may also be a digital signal (digital data). In the pre-measurement, the communication between the sensor 302 and the control device 40M is such that the difference between the detection time (the time when the detection value is generated at the sensor 302) and the reception time (the time when the detection data is received) is small enough that these times can be considered to be substantially the same. This communication may be the same real-time communication used for collecting detection data, or it may be a different real-time communication. The time when the detection data is received (≈ detection time) is denoted as "T2". Specifically, T2 may be the time when the analog I / O device 301 receives an analog signal representing the detection value (change in the detection value) (the time when the control device 40M detects the reception of the analog signal).

[0054] The response time measurement unit 252 calculates T2-T0 and measures the calculated value (time) as the response time in non-real-time communication.

[0055] Figure 4 shows an example of a response time table 280.

[0056] The response time measurement unit 252 displays the device ID and response time for each device that outputs detection data. For example, when the control device 40M receives detection data from sensor 302 (sensor 12), the response time measurement unit 252 records the ID of sensor 302 (sensor 12), "sensor A," as the device ID in the response time table 280, and records the calculated value "0.234567" as the response time in the response time table 280.

[0057] Figure 5 shows an example of time-shared data 281.

[0058] The control unit 251 generates time-sharing data 281 based on the response time table 280 and transmits the time-sharing data 281 to each of the other computing units 40. The time-sharing data 281 represents the transmission time (the time when the robot control unit 272 sends the control request), the data (a value representing the detection data of the sensor 12), and the response time (the response time recorded in the response time table 280, i.e., the pre-measured response time).

[0059] The following describes an example of the process performed in this embodiment.

[0060] In this embodiment, robot control is pre-planned (defined) control. For example, the position of the robot 120's arm at each given time is pre-planned and the control is performed according to that plan. Specifically, for example, as part of the robot control, the command values ​​specified in each control request are predetermined for each transmission time of the control request. Therefore, in robot control, a control request specifying predetermined command values ​​is transmitted at a predetermined transmission time.

[0061] However, in general, it is not easy to actually control a robot as planned. Therefore, in this embodiment, the planned command values ​​are corrected as appropriate based on the values ​​detected by the sensor 12, and the corrected command values ​​are specified in the control request.

[0062] Furthermore, robot control may be initiated in response to an instruction from the control unit 251 of the control device 40M to the robot control unit 272 of the expansion device 40E. After the start of robot control, the transmission of control requests in each cycle of robot control may be actively performed by the robot control unit 272 in accordance with a predetermined plan, or the control unit 251 may send an instruction to the robot control unit 272 each cycle in accordance with a predetermined plan, and the robot control may be initiated in response to that instruction.

[0063] Figure 6 shows the flow of the robot control process.

[0064] The robot control process includes steps S601 to S605 and is repeated in this embodiment as shown in the figure. The robot control process is started according to instructions from the control unit 251 of the control device 40M, or at a predetermined timing.

[0065] In S601, the robot control unit 272 reads out data. The data read out here is the data necessary for correction processing, specifically the data listed below. The following data is stored in memory 169 and read out from memory 169. • The return value representing the processing result data received for a control request recently (in the previous cycle) transmitted by the robot control unit 272. The detection value represented by the latest detection data (detection data recently received and stored from the control unit 251). • Time-shared data 281, which records the transmission time (the transmission time of the control request being sent this time). • The planned command value for this transmission time.

[0066] For example, in each cycle of robot control, processing result data is stored in memory 169 by the robot control unit 272. Alternatively, for example, detection data may be repeatedly (e.g., periodically) acquired by the control unit 251 at the same or different timings as the start of each cycle of robot control and transferred to the robot control unit 272, and the periodically acquired detection data may be stored in memory 169 by the robot control unit 272. Alternatively, data representing the planned command value for each transmission time may be pre-stored in memory 169, or the robot control unit 272 may receive the planned command value from the control unit 251 for each transmission time and store the transmission time and the planned command value in memory 169.

[0067] In S602, the robot control unit 272 instructs the RT correction unit 271 to perform a correction process. Specifically, for example, the RT correction unit 271 identifies the transmission time and response time from the time-sharing data 281, which is part of the data read in S601, and calculates the corrected time, which is the transmission time plus the response time. Based on the first pair of time and return value, the second pair of time and detected value, and the third pair of time and command value, the RT correction unit 271 outputs the corrected command value of the command value in the third pair (details of this correction process will be explained later using Figure 8).

[0068] In S603, the robot control unit 272 generates a control request specifying the corrected command value and sends the control request to the robot 120 at the current transmission time (the transmission time recorded in the time-sharing data 281) in non-real-time communication.

[0069] In S604, the robot control unit 272 receives, in non-real-time communication, a response to the control request sent in S603 (a response including control result data having a return value (e.g., position information) as a result of the control performed in accordance with the control request).

[0070] In S605, the robot control unit 272 stores the return value of the response received in S604 in the memory 169.

[0071] In S606, the robot control unit 272 determines whether robot control has finished (for example, whether the robot control processing for the last cycle has finished). If the result of the determination in S606 is true (S606: Yes), the process ends.

[0072] If the result of the determination in S606 is false (S606: No), the robot control unit 272 determines whether or not to start the next control (S607). Specifically, for example, the robot control unit 272 determines whether the current time has reached the next pre-planned time, or whether it has received an instruction to send the next control request (for example, whether or not it has received time sharing data 281 in which the next transmission time and response time are recorded from the control unit 251 of the control device 40M). If the result of the determination in S607 is false (S607: No), the process returns to S607 after a certain period of time has elapsed. If the result of the determination in S607 is true (S607: Yes), the process returns to S601.

[0073] Figure 7 shows an example of training the correction model 290.

[0074] The correction model 290 is trained using supervised learning, for example. The training dataset includes data representing many patterns of force applied when the workpiece insertion angle and the machining axis are shifted (changing the insertion angle and the amount of shift). Specifically, for example, the training dataset includes many combinations of the first set (time and return value set), the second set (time and detected value set), the third set (time and command value set), and the corrected command value, and the correction model 290 is trained using this training dataset. The time in each of the first to third sets is a time defined as an appropriate time. For example, the time in the second set may be the time in the first or third set plus the pre-measured response time (response time in non-real-time communication). More specifically, the training dataset may be a dataset containing a first set of time series data (e.g., time series data of transmission time and return value (e.g., each joint angle)), a second set of time series data (e.g., time series data of detection time and detected value (e.g., force sensor reading)), and a third set of time series data (e.g., time series data of transmission time and planned command value (each joint angle)).

[0075] Figure 8 schematically shows the correction process in S602.

[0076] As described above, the RT correction unit 271 outputs a corrected command value based on the first set of time and return value, the second set of time and detected value, and the third set of time and command value, using the command value in the third set. Specifically, the RT correction unit 271 inputs the first set, the second set, and the third set to the correction model 290 to obtain the output of the corrected command value.

[0077] In the first set input to the correction model 290, the return value is the return value read in S601, and the time is the current transmission time (or previous transmission time).

[0078] In the second set input to the correction model 290, the detected value is the detected value read in S601, and the time is the corrected time (the time obtained by adding the response time represented by the time-sharing data 281 to the current transmission time).

[0079] In the third set input to the correction model 290, the command value is the command value read in S601, and the time is the transmission time of this transmission.

[0080] Although one embodiment has been described above, this is merely an example for the purpose of explaining the present invention and is not intended to limit the scope of the present invention to this embodiment alone.

[0081] For example, the above explanation can be summarized as follows. The summary below may include the supplementary explanations and variations described above.

[0082] The control system 109 comprises one or more interface devices (e.g., I / O control devices 214 and / or network I / F devices 213 of each arithmetic unit 40) and one or more processors (e.g., processors 209M and / or 209E).

[0083] One or more processors perform (X) and (Y) below. (X) Repeatedly, an acquisition request is generated to acquire detected values ​​related to the robot 120 (an example of a controlled device), the acquisition request is transmitted in real time communication through the interface device, and detection data representing the detected values ​​is received through the interface device as a response to the acquisition request. (Y) Repeatedly, the command values ​​for the robot 120 are corrected, a control request with the corrected command values ​​is generated, the control request is transmitted via non-real-time communication through the interface device, and control result data representing the return value for the command values ​​in the control request is received via the interface device.

[0084] Of the repeated processes in (X) and (Y), at least the process in (X) must be performed periodically, and the repeated process in (Y) may or may not be periodic.

[0085] For each control request, the correction process outputs a corrected command value based on a first set of time and return value, a second set of time and detected value, and a third set of time and command value. In this correction process, the time in the second set is a corrected time determined based on the transmission time when the control request is sent and the response time measured in advance for non-real-time communication.

[0086] For non-real-time communication, the time of the detected value is corrected based on the response time measured in advance, and the corrected command value is determined based on the corrected time. Therefore, the controlled device can be controlled with high precision in non-real-time communication. The "corrected time" (corrected detection time) may be the corrected time in the embodiment (the time obtained by adding the response time measured in advance for non-real-time communication to the transmission time when the control request is sent), or it may be a time determined by another method based on the transmission time and the response time measured in advance.

[0087] The pre-measured response time may be the difference between the measurement start time and the actual operation time. The measurement start time may be the time the control request is sent in non-real-time communication. The actual operation time may be the time when it is determined that the detected value of the controlled device that operated in response to the control request has changed. In other words, the pre-measured response time may be the time from when the control request is sent until the change in the detected value occurs in response to the control request. This is expected to allow for the association of an appropriate time for the detected value with the detected value in non-real-time communication control, and to obtain an appropriate corrected command value.

[0088] The control system 109 may be a distributed control system comprising a plurality of arithmetic units, including a first arithmetic unit (e.g., a control unit 40M) and a second arithmetic unit (e.g., an expansion unit 40E). The one or more processors described above may include a first processor (e.g., a processor 209M) that performs at least (X) and a second processor (e.g., a processor 209E) that performs at least the correction processing of (Y). The first arithmetic unit may comprise a first processor, and the second arithmetic unit may comprise a second processor. This allows the execution of (X) to be performed by a first arithmetic unit having functions or hardware suitable for the execution of (X), and the execution of at least the correction processing of (Y) to be performed by a second arithmetic unit having functions or hardware suitable for the execution of at least the correction processing of (Y).

[0089] The correction process may be performed using a machine learning model (e.g., correction model 290) that takes the first, second, and third sets as inputs and outputs the corrected command value. This allows the model to be trained on a training dataset containing multiple combinations of the first, second, and third sets and the corrected command value, thereby enabling the acquisition of a corrected command value for accurate control. Furthermore, the second arithmetic unit (e.g., the second processor) may be an arithmetic unit with sufficient hardware resources (e.g., a processor including a GPU) to perform the correction process using the machine learning model, while the first arithmetic unit may be an arithmetic unit with enough hardware resources to perform a predetermined periodic processing (e.g., function as a PLC).

[0090] The first processor may pre-measure the response time in non-real-time communication and transmit time-sharing data (e.g., time-sharing data 281), which represents the measured response time, to the second arithmetic unit. In the correction process performed by the second processor, the response time that forms the basis of the corrected time may be the response time represented by the time-sharing data. As a result, the pre-measured response time is shared between the arithmetic unit that pre-measured the response time and the arithmetic unit that actually controls the controlled device, enabling accurate control of the controlled device in non-real-time communication.

[0091] The time-sharing data may be the response time table 280 itself, in which case the second processor may calculate a corrected detection time by adding the response time represented by the response time table 280 to the transmission time each time a correction process is performed. Alternatively, for example, for each transmission time of a control request to a controlled device, time-sharing data representing the transmission time and a pre-measured response time may be transmitted from the first arithmetic unit to the second arithmetic unit. For each transmission time, the second processor may calculate (determine) a corrected detection time based on the response time obtained from the time-sharing data corresponding to the transmission time and the transmission time itself.

[0092] The controlled object may be a robot (e.g., robot 120). The second processor may perform (Y). The first processor may perform control processing that includes controlling a controlled object other than the robot (e.g., a machining center 119) in scan time. (X) may be included in or separate from the control processing. Although it is expected that the robot will be controlled by ROS, since the robot control will be performed by the second computing unit based on detected values ​​collected in real-time communication by the first computing unit which has real-time capabilities, accurate robot control can be expected even if the second computing unit does not have real-time capabilities.

[0093] Furthermore, control processing for other controlled devices may be performed in parallel with the robot control processing, or after the robot control processing is completed. For example, the control of the machining center 119 may be performed after the workpiece has been set on the machining center 119 (after the robot control is completed). If control of the robot 120 is required depending on the progress of machining by the machining center 119, the control of the machining center 119 (control via real-time communication) and the control of the robot 120 (control via non-real-time communication) may be performed in parallel or sequentially.

[0094] Furthermore, the same computing unit may control both the robot and another controlled device. For example, as illustrated in Figure 9, the robot control unit 272 and the RT correction unit 271 may be provided in the control device 40M having the control unit 251. Although not shown, of the robot control unit 272 and RT correction unit 271 in Figure 9, the RT correction unit 271 may be provided in the expansion device 40E.

[0095] Furthermore, for example, the corrected detection time may reflect not only the pre-measured response time in non-real-time communication, but also the response time in real-time communication. The response time in real-time communication may be the measured response time (for example, the response time measured using the same or a different method as the pre-measurement method for the response time in non-real-time communication), or it may be the worst-case response time (for example, the maximum response time defined in the real-time communication standard (specification)). For example, the corrected detection time may be the time when the pre-measured response time in non-real-time communication and the response time in real-time communication are added to the transmission time.

[0096] Furthermore, in this specification, "time" may refer to the year, month, day, hour, minute, second, or a unit of time that is coarser or finer, or it may refer to the difference (time) from a certain reference point in time. [Explanation of Symbols]

[0097] 109... Control System

Claims

1. A control system for controlling a controlled object, One or more interface devices, One or more processors and Equipped with, The aforementioned one or more processors (X) Repeatedly generate an acquisition request to acquire a detected value related to the controlled device, transmit the acquisition request in real time communication through the interface device, and receive the detected data representing the detected value as a response to the acquisition request through the interface device. (Y) Repeatedly perform a correction process on the command value to the controlled device, generate a control request having the corrected command value, transmit the control request via non-real-time communication through the interface device, and receive control result data representing the return value for the command value of the control request via the interface device. For each control request, The correction process is a process that outputs a corrected command value based on a first set of time and return value, a second set of time and detected value, and a third set of time and command value, in which case the command value in the third set is output. In the correction process, the time in the second set is a corrected time, which is determined based on the transmission time at which the control request is sent and the response time measured in advance with respect to the non-real-time communication. Control system.

2. The aforementioned pre-measured response time is the difference between the measurement start time and the actual operation time. The measurement start time is the time the control request was sent in the non-real-time communication. The actual operation time is the time at which it was determined that the detected value of the controlled device, which operated in response to the control request, had changed. The control system according to claim 1.

3. A distributed control system comprising multiple computing devices, including a first computing device and a second computing device, The aforementioned one or more processors A first processor that performs at least (X), (Y) at least a second processor that performs the correction processing and Includes, The first arithmetic unit comprises the first processor, The second arithmetic unit comprises the second processor, The control system according to claim 2.

4. The correction process described above is a process using a machine learning model that takes the first set, the second set, and the third set as inputs and outputs a corrected command value. The control system according to claim 3.

5. The first processor pre-measures the response time and transmits the time-sharing data, which is data representing the measured response time, to the second arithmetic unit. In the correction process performed by the second processor, the response time on which the corrected time is based is the response time represented by the time-sharing data. The control system according to claim 3.

6. The controlled device is a robot, The second processor performs (Y), The first processor performs control processing, including scan time control of a controlled device separate from the robot. (X) is included in the control process or is separate from the control process. The control system according to claim 3.

7. The correction process described above is a process using a machine learning model that takes the first set, the second set, and the third set as inputs and outputs a corrected command value. The control system according to claim 1.

8. The computer repeatedly generates acquisition requests to acquire detected values ​​related to the controlled device, transmits such acquisition requests in real-time communication, and receives detection data representing the detected values ​​as a response to the acquisition request. The computer repeatedly performs a correction process on the command value to the controlled device, generates a control request having the corrected command value, transmits the control request in non-real-time communication, and receives control result data representing the return value for the command value in the control request. For each control request, The correction process is a process that outputs a corrected command value based on a first set of time and return value, a second set of time and detected value, and a third set of time and command value, in which case the command value in the third set is output. In the correction process, the time in the second set is a corrected time, which is determined based on the transmission time at which the control request is sent and the response time measured in advance with respect to the non-real-time communication. How to control it.