Control system and control method
By using real-time communication to obtain detection values and measuring response time correction command values in non-real-time communication, the problem of insufficient control accuracy in non-real-time communication is solved, and a high-precision control effect is achieved.
Patent Information
- Application Number
- CN202380083352.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-23
- Filing Date
- 2023-12-07
- Publication Date
- 2025-07-11
AI Technical Summary
In the prior art, non-real-time communication makes it difficult to control the controlled device with good accuracy because the detection time cannot be determined, resulting in insufficient control accuracy of the control system in non-real-time communication.
By repeatedly executing a real-time communication request to acquire the detected value, receiving the detection data, and sending a corrected control request in non-real-time communication, the command value is corrected using the pre-measurement response time to ensure the accuracy of the command value.
It realizes good control of the accuracy of the controlled device in non-real-time communication, and improves the accuracy of the control system by measuring the response time in advance.
Smart Images

Figure CN120303623A_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to the control of a controlled device. Background Art
[0002] In order to control a controlled device with good precision, time management is required. Regarding time management, for example, the techniques of Patent Documents 1 to 3 are known.
[0003] Prior Art Documents
[0004] Patent Documents
[0005] Patent Document 1: WO2014 / 108999
[0006] Patent Document 2: JP2014-225112
[0007] Patent Document 3: JP2012-134895 Summary of the Invention
[0008] Problems to be Solved by the Invention
[0009] A control system is known that generates a control request for a controlled device based on a detection value of the controlled device and sends the control request to the controlled device.
[0010] Due to the execution environment of the program for sending the control request to the controlled device (e.g., OS (Operating System)) or other reasons, non-real-time communication is sometimes used as the communication for sending the control request. "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 can be an example of a first communication that provides a first response time. In addition, relative to non-real-time communication, "real-time communication" refers to communication with a relatively short response time (e.g., communication for which the maximum value of the response time is specified in a standard), such as EtherCAT (registered trademark) communication. Real-time communication can be an example of a second communication that provides a second response time shorter than the first response time (e.g., a response time equal to or less than the maximum value of the response time specified in the standard).
[0011] The controlled device operates in accordance with the control request from the control system, and due to its operation, a change may occur in the detection value of the controlled device. Therefore, for the control system, the detection time, which is the time when the detection value of the detected device changes, is a certain time from the transmission time of the control request to the reception time of the response to the control request.
[0012] In non-real-time communication, the control system cannot determine the detection time, so it is difficult to control the controlled device with good precision in non-real-time communication.
[0013] Technical solution for solving the problem
[0014] The control system repeatedly performs the following processes: generating an acquisition request for acquiring a detection value of the controlled device, sending the acquisition request using real-time communication, and receiving detection data representing the detection value as a response to the acquisition request. In addition, the control system repeatedly performs a correction process for the command value of the controlled device, generates a control request with the corrected command value, sends the control request in non-real-time communication, and receives control result data representing the return value of the command value included in the control request. For each control request, the correction process is a process of outputting a corrected command value of the command value in the third group based on the first group of time and return value, the second group of time and detection value, and the third group of time and command value. In this correction process, the time in the second group is the determined time, i.e., the corrected time, which is determined based on the transmission time of sending the control request and the response time pre-measured for non-real-time communication.
[0015] Effect of the invention
[0016] According to the present invention, it is possible to control the controlled device with good precision in non-real-time communication. Description of the drawings
[0017] Figure 1 An example of the physical structure of a system including a control system showing an embodiment.
[0018] Figure 2 Schematically shows the control of a processing machine by a control device and the control of a robot by an expansion device.
[0019] Figure 3 Schematically shows an example of a method for pre-measuring the response time in non-real-time communication.
[0020] Figure 4 An example of a response time table is shown.
[0021] Figure 5 An example of time-sharing data is shown.
[0022] Figure 6 The flow of robot control processing is shown.
[0023] Figure 7 An example of learning of a correction model is shown.
[0024] Figure 8 Schematically shows the correction process of S602.
[0025] Figure 9 An example of the structure of the control system showing a modified example. Detailed implementation
[0026] In the following description, the "interface device" can be one or more interface devices. The one or more interface devices can be one or more communication interface devices of the same type, or two or more communication interface devices of different types.
[0027] In addition, in the following description, the "memory" can be one or more memory devices, typically the main storage device. At least one of the memory devices in the memory can be a volatile memory device or a non-volatile memory device.
[0028] In addition, in the following description, the "persistent storage device" is one or more persistent storage devices. Persistent storage devices are typically non-volatile storage devices (such as auxiliary storage devices). Specifically, for example, they are HDDs (Hard Disk Drives) or SSDs (Solid State Drives).
[0029] In addition, in the following description, the "storage device" can be at least the memory among the memory and the persistent storage device.
[0030] In addition, in the following description, the "processor" can be one or more processor devices. At least one processor device is typically a microprocessor device such as a CPU (Central Processing Unit), but can also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device can be single-core or multi-core. At least one processor device can also be a processor core. At least one processor device can also be a hardware circuit (such as an FPGA (Field-Programmable Gate Array), CPLD (Complex Programmable Logic Device), or ASIC (Application Specific Integrated Circuit)) that performs part or all of the processing, i.e., a generalized processor device.
[0031] In addition, in the following description, the processing is sometimes described with "program" as the subject. However, the program performs prescribed processing by being executed by a processor and appropriately using a storage device and / or an interface device, etc. Therefore, the subject of the processing can also be changed to the processor (or a device such as a controller having the processor). The program can be installed from a program source into a device such as a computer. The program source can be, for example, a program distribution server or a computer-readable (e.g., non-transitory) recording medium. In addition, in the following description, two or more programs can be implemented as one program, and one program can also be implemented as two or more programs.
[0032] In addition, in the following description, the function is sometimes described using the expression "yyy section". However, the function can be implemented by one or more computer programs being executed by a processor. When the function is implemented by a program being executed by a processor, prescribed processing is appropriately performed using a storage device and / or an interface device, etc. Therefore, the function can also be changed to at least a part of the processor. The processing described with the function as the subject can also be changed to the processing performed by the processor or a device having the processor. The description of each function is an example, and multiple functions can be combined into one function, or one function can be divided into multiple functions.
[0033] In addition, in the following description, the information that obtains an output for an input is sometimes described using the expression "xxx table". However, this information can be data of any structure (e.g., it can be structured data or unstructured data), and can also be a learning model represented by a neural network, a genetic algorithm, and a random forest that generates an output corresponding to the input. Thus, "xxx table" can also be referred to as "xxx information". In addition, in the following description, the structure of each table is an example. One table can be divided into two or more tables, and all or a part of two or more tables can also be one table.
[0034] In addition, in the following description, as an example of identification information, any one of ID, name, and number is adopted. However, the identification information can also replace at least one of ID, name, and number or additionally include other types of elements.
[0035] In addition, in the following description, when elements of the same type are described without distinction, the common part in the reference signs is used. When elements of the same type are described with distinction, reference signs are sometimes used.
[0036] Figure 1 An example of the physical structure of a system including a control system representing an embodiment.
[0037] The control system 109 is provided in the factory 10 where there are controlled devices. The controlled devices are, for example, a processing machine 119 that processes the set workpieces and a robot 120 that sets the workpieces for the processing machine 119. The factory 10 is an example of the site where there are controlled devices.
[0038] The control system 109 is connected to, for example, a communication network 19 (such as a LAN (Local Area Network)) within the factory 10. The communication network 19 is an example of a communication network used in non-real-time communication.
[0039] Sensors 12 provided in the control system 109, the processing machine 119, and the robot 120 are connected to a communication network 118 (such as Ethernet (registered trademark)). The communication network 118 is an example of a communication network used in real-time communication.
[0040] The control system 109 includes one or more computing devices 40. Each computing device 40 has an interface device, a storage device, and a processor connected thereto. The hardware structures of all the computing devices 40 may be the same or different. In the present embodiment, the computing device 40M is the main computing device. The computing devices 40E1 and 40E2 are respectively additional computing devices. The computing device 40E may also be reduced. In other words, the computing device 40M alone may also form the control system 109. Hereinafter, the computing device 40M may sometimes be referred to as the "control device 40M", and the computing device 40E may be referred to as the "expansion device 40E".
[0041] The system structure depends on whether the expansion device 40E exists and the types of communication media to which the control device 40M and the expansion device 40E are respectively connected. Figure 1 In the example, the expansion device 40E1 is connected to the communication network 118. The expansion device 40E2 is connected to a 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 a substrate. By connecting the control device 40M and the expansion device 40E2 to the substrate, the control device 40M and the expansion device 40E2 can communicate and transmit data via the PIO bus 28.
[0042] As described above, the control system 109 includes at least one control device 40M. In the control device 40M, the control application periodically performs a scanning process. The "scanning process" may include a process of reading information of a device (such as a controlled device) connected to an I / O (Input / Output) port, performing an operation on the read information, and writing the information obtained by the operation. The scanning process may be an example of a control process.
[0043] Taking the control device 40M as an example, the hardware structure of the arithmetic device 40 is described as follows. That is, the control device 40M has a memory 169 (such as an EPROM 208 and a main memory 210), a peripheral control device 212, an I / O control device 214, a non-volatile storage device 215, a network I / F device 213, and a processor 209 connected to them. The I / O control device 214 and the network I / F device 213 are examples of interface devices. The memory 169 and the non-volatile storage device 215 are examples of storage devices.
[0044] The peripheral control device 212 is connected to the network I / F device 213, the I / O control device 214, the non-volatile storage device 215, and a bus 211. In addition to this, the memory 169 and the processor 209 are also connected to the bus 211.
[0045] In the EPROM 208, a program downloaded from a program source such as a program distribution server (not shown) can be saved.
[0046] The processor 209 reads the program saved in the EPROM 208 into the main memory 210 and executes it to control the operation of the program. For example, the processor 209 controls the processing machine 119 via the I / O control device 214, or acquires detection data from the sensor 12. In addition, 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).
[0047] 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.
[0048] By the processor 209M of the control device 40M executing multiple computer programs, the OS 211M is executed in the control device 40M, and functions such as a time synchronization unit 260M, a response time measurement unit 252, and a control unit 251 are implemented on the OS 211M. The operations of the control unit 251 and other functions can be controlled by the OS 211M (or runtime software). The OS 211M can be a real-time OS, such as a real-time general-purpose OS (an OS with real-time functions capable of providing necessary real-time performance in a system of general-purpose OSs for information processing).
[0049] The time synchronization unit 260M communicates with the time synchronization units of other arithmetic devices 40 to synchronize the current time of the control device 40M and other arithmetic devices 40. That is, in each arithmetic device 40, the managed current time is the same.
[0050] 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.
[0051] The control unit 251 performs control processing for controlling the processing machine 119 in a control cycle. The control unit 251 has, for example, the function of a PLC (Programmable Logic Controller), and performs the above control processing as sequential control.
[0052] The control unit 251 generates time-sharing data 281 (data representing the pre-measured response time) based on the response time table 280, and sends the time-sharing data 281 to each other arithmetic device 40.
[0053] By executing multiple computer programs by the processor 209E of the expansion device 40E, the OS 211E is executed in the expansion device 40E, and functions such as the time synchronization unit 260E, the RT correction unit 271, and the robot control unit 272 are implemented on the OS 211E ("RT" is an abbreviation for real-time). The OS 211E may be the same as the OS 211M or may be a different OS. For example, the OS 211E may be ROS (Robot Operating System).
[0054] The time synchronization unit 260E communicates with the time synchronization units of each other arithmetic device 40 to synchronize the current time of the arithmetic device 40E and each other arithmetic device 40.
[0055] The RT correction unit 271 corrects the instruction value specified in the control request sent by the robot control unit 272. The correction is performed based on a model, specifically, using a correction model 290 as a machine learning model. The correction may also be performed by a method other than based on a model, for example, based on a rule.
[0056] The robot control unit 272 controls the robot 120. The robot control unit 272 sends a control request specifying an instruction value to the robot 120 in order to control the robot 120.
[0057] The control unit 251 periodically executes processing according to a pre-specified sequence. In each cycle (e.g., cycle time (which may also be referred to as scan time)), this processing includes generating an acquisition request for acquiring the detection value of the sensor 12, sending the acquisition request, and receiving detection data indicating the detection value as a response corresponding to the acquisition request. The processing performed periodically may include sending the received detection data to the expansion device 40E (robot control unit 272). The sending of the acquisition request and the reception of the detection data may be performed through real-time communication (e.g., 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 installed in the arm of the robot 120. The detection data may include the rotational shaft angles of the respective servo motors. "Real-time communication" refers to communication with a relatively short response time (e.g., communication for which the maximum value of the response time is specified in a standard), such as EtherCAT (registered trademark) communication.
[0058] The robot control unit 272 repeatedly performs robot control processing according to an instruction from the control unit 251 (or at a specified timing without an instruction from the control unit 251). The robot control processing includes performing a correction process for the command value of the robot 120, generating a control request with the corrected command value, sending the control request, and receiving control result data indicating a return value corresponding to the command value included 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. Accordingly, the command value may be data indicating the position (e.g., joint angle) of a part of the robot 120. The sending of the control request and the reception of the control result data are performed through 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.
[0059] The robot 120 operates according to the control request from the robot control unit 272, and due to its operation, changes may occur in the detection value of the sensor 12 of the robot 120. The moment (detection moment) at which the detection value (detection value change) occurs during the control (robot operation) performed in response to the control request is a certain moment from the sending moment of the control request to the receiving moment of the response to the control request. The response time in non-real-time communication (the time between the sending moment and the receiving moment) is longer than the response time in real-time communication. However, non-real-time communication is adopted as the communication for controlling the robot for reasons such as OS211E (e.g., ROS) or other reasons.
[0060] The collection of the detection data of the sensor 12 can be performed by the extension device 40E, but there is a risk that the deviation between the detection time and the reception time of the detection data is relatively large in the non-real-time communication. In addition, it is expected that the collection of the detection data of the sensor 12 is more accurate when it is performed in the periodic process of the control unit 251 having the function of a PLC.
[0061] The response time in non-real-time communication is different from that in real-time communication. Specifically, for example, in real-time communication, the difference between the reception time of the detection data and the detection time (the occurrence time of the detection value (change in the detection value)) is small (for example, the difference is small enough that the reception time can be regarded as the detection time), but in non-real-time communication, the difference between the detection time and the reception time of the control result data is large. When data with different resolution capabilities of time is used for control and correction for control, there is a risk of reducing the control accuracy.
[0062] Therefore, in the present embodiment, the collection of the detection data is performed by the control unit 251 using real-time communication, and the control unit 251 provides the detection data to the robot control unit 272. The communication of the detection data between the devices 40M and 40E can be performed through the interface and network used in real-time communication (for example, the I / O control device 214 and the communication network 118).
[0063] In addition, the response time, which is the difference between the transmission time (the transmission time of the control request) in non-real-time communication and the detection time (the occurrence time of the detection value (change in the detection value) that occurs as a result of controlling according to the control request), is measured in advance, and the correction process of the command value specified in the control request is implemented based on the measured response time in advance.
[0064] Figure 3 An example of the method for measuring the response time in non-real-time communication in advance is schematically shown.
[0065] The response time measurement unit 252 of the control device 40M sends a control request in non-real-time communication and receives a response (a response with control result data) from the controlled device 319 controlled according to the control request. Let the transmission time of the control request be "T0", and let the reception time of the response to the control request be "T1". The controlled device 319 can be the robot 120 or other devices.
[0066] A sensor 302 is provided in the controlled device 319. The sensor 302 can be the sensor 12 provided in the robot 120 or other sensors.
[0067] The controlled device 319 operates according to the control request between receiving the control request and sending the response, and a detection value (change in the detection value) occurs in the sensor 302 as a result of the operation.
[0068] Accordingly, the control device 40M includes 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 not by the analog I / O device 301 but by another interface device, 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 in the sensor 302 occurs) and the reception time (the reception time of the detection data) is small enough for these times to be regarded as substantially the same. This communication may be the same real-time communication as that used in the collection of detection data, or it may be a different real-time communication. Let the reception time (≈detection time) of the detection data be “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 this analog signal).
[0069] The response time measurement unit 252 calculates T2−T0 and measures the calculated value (time) as the response time in the non-real-time communication.
[0070] Figure 4 An example of the response time table 280 is shown.
[0071] For each device that outputs detection data, the response time measurement unit 252 shows the device ID and the response time. For example, when the control device 40M receives detection data from the sensor 302 (sensor 12), the response time measurement unit 252 records the ID “sensor A” of the sensor 302 (sensor 12) 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.
[0072] Figure 5 An example of the time-sharing data 281 is shown.
[0073] The control unit 251 generates time-sharing data 281 based on the response time table 280 and sends the time-sharing data 281 to each of the other arithmetic devices 40. The time-sharing data 281 shows the transmission time (the time when the robot control unit 272 sends a control request), the data (the 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).
[0074] Hereinafter, an example of the processing performed in the present embodiment will be described.
[0075] In this embodiment, the robot control is pre-planned (prescribed) control. For example, it is pre-planned at which moment the arm of the robot 120 is located at which position and is carried out according to this plan. Specifically, for example, as the robot control, the instruction value specified in the control request is pre-prescribed for each transmission moment of the control request. Thus, in the robot control, at the prescribed transmission moment, a control request specifying the prescribed instruction value is transmitted.
[0076] However, generally speaking, it is not easy to actually control the robot according to the plan. Therefore, in this embodiment, based on the detection value of the sensor 12, the planned instruction value is appropriately corrected, and the corrected instruction value is specified by the control request.
[0077] In addition, the robot control can be started 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 robot control starts, for the transmission of the control request in each cycle of the robot control, it can be actively carried out by the robot control unit 272 according to a pre-determined plan, or it can be carried out in response to the instruction by the control unit 251 sending an instruction to the robot control unit 272 in each cycle according to a pre-determined plan.
[0078] Figure 6 Represents the flow of the robot control process.
[0079] The robot control process includes S601 to S605 and is repeatedly carried out in this embodiment as shown in the figure. The robot control process starts according to an instruction from the control unit 251 of the control device 40M or at a pre-determined prescribed timing.
[0080] In S601, the robot control unit 272 reads data. The data read here is the data required for the correction process, specifically including the following data. The following is stored in the memory 169 and read from the memory 169.
[0081] · The return value indicating the processing result data received for the control request sent by the robot control unit 272 in the most recent (previous cycle).
[0082] · The detection value indicating the latest detection data (the detection data most recently received from the control unit 251 and saved).
[0083] · The time-sharing data 281 recording the current transmission moment (the transmission moment of the current control request sent).
[0084] · The instruction value planned for the current transmission moment.
[0085] For example, in each cycle of robot control, the processing result data is stored in the memory 169 by the robot control unit 272. Additionally, for example, the detection data is repeatedly (e.g., periodically) acquired by the control unit 251 at the same or different timing as the start of each cycle of robot control and transmitted to the robot control unit 272. The periodically acquired detection data can be stored in the memory 169 by the robot control unit 272. Further, the data representing the planned command value for each transmission time can be stored in the memory 169 in advance, or the robot control unit 272 can 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 the memory 169.
[0086] In S602, the robot control unit 272 causes the RT correction unit 271 to perform a correction process. Specifically, for example, the RT correction unit 271 determines the transmission time and the response time based on the time-sharing data 281 which is part of the data read in S601, and calculates the corrected time which is the time obtained by adding the response time to the transmission time. The RT correction unit 271 outputs the corrected command value of the command value in the third group based on the first group of time and return value, the second group of time and detection value, and the third group of time and command value (the details of this correction process will be described later). Figure 8 Description.
[0087] In S603, the robot control unit 272 generates a control request specifying the corrected command value, and in non-real-time communication, transmits this control request to the robot 120 at the current transmission time (the transmission time recorded in the time-sharing data 281).
[0088] In S604, in non-real-time communication, the robot control unit 272 receives a response corresponding to the control request transmitted in S603 (including a response having a control result data with a return value (e.g., position information) as a result of controlling according to this control request).
[0089] In S605, the robot control unit 272 stores the return value of the response received in S604 in the memory 169.
[0090] In S606, the robot control unit 272 determines whether the robot control has ended (e.g., whether the robot control process for the last cycle has been completed). If the result of the determination in S606 is true (S606: Yes), the process ends.
[0091] When the determination result of S606 is false (S606: No), the robot control unit 272 determines whether to start the next control (S607). Specifically, for example, the robot control unit 272 determines whether the current time has reached the previously planned next time or an instruction to send the next control request (for example, whether time-sharing data 281 recording the next transmission time and response time has been received from the control unit 251 of the control device 40M). When the determination result of S607 is false (S607: No), the process returns to S607 after a certain period of time. When the determination result of S607 is true (S607: Yes), the process returns to S601.
[0092] Figure 7 Shows an example of the learning of the correction model 290.
[0093] The learning of the correction model 290 is, for example, supervised learning. The training data set includes data of various patterns representing the force application directions in cases where the workpiece insertion angle and the processing machine axis deviate (changing the insertion angle and the deviation amount). Specifically, for example, the training data set includes multiple combinations of a first group (a group of time and return values), a second group (a group of time and detection values), a third group (a group of time and command values), and corrected command values, and the correction model 290 is learned using this training data set. In addition, the time of each of the first group to the third group is a time defined as an appropriate time. For example, the time in the second group can be the time obtained by adding the pre-measured response time (response time in non-real-time communication) to the time in the first group or the third group. More specifically, the training data set can be a data set including a time-sequential first group (for example, time-sequential data of the transmission time and return values (for example, each joint angle)), a time-sequential second group (for example, time-sequential data of the detection time and detection values (for example, force sensor read values)), and a time-sequential third group (for example, time-sequential data of the transmission time and planned command values (each joint angle)).
[0094] Figure 8 Schematically shows the correction process of S602.
[0095] As described above, the RT correction unit 271 outputs the corrected command value of the command value in the third group based on the first group of time and return values, the second group of time and detection values, and the third group of time and command values. Specifically, the RT correction unit 271 inputs the first group, the second group, and the third group to the correction model 290 to obtain the output of the corrected command value.
[0096] In the first group 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 the previous transmission time).
[0097] In the second set of inputs 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 indicated by the time-sharing data 281 to the current transmission time).
[0098] In the third set of inputs to the correction model 290, the command value is the command value read in S601, and the time is the current transmission time.
[0099] The above has described one embodiment, but this is an example for explaining the present invention and does not limit the scope of the present invention to this embodiment.
[0100] For example, the above description can be summarized as follows. The following summary may include the above supplementary explanations and descriptions of variations.
[0101] The control system 109 includes one or more interface devices (such as the I / O control device 214 and / or the network I / F device 213 of each arithmetic device 40), and one or more processors (such as the processor 209M and / or 209E).
[0102] One or more processors perform the following (X) and (Y).
[0103] (X) Repeatedly execute the following process: Generate an acquisition request for acquiring a detected value regarding the robot 120 (an example of a controlled device), transmit the acquisition request via the interface device using real-time communication, and receive detection data indicating the detected value as a response corresponding to the acquisition request via the interface device.
[0104] (Y) Repeatedly execute the following process: Perform a correction process for the command value of the robot 120, generate a control request with the corrected command value, transmit the control request via the interface device using non-real-time communication, and receive control result data indicating a return value of the command value included in the control request via the interface device.
[0105] In the repeated process in (X) and the repeated process in (Y), at least the process in (X) can be a periodically executed process, and the repeated process in (Y) can be a periodic process or a non-periodic process.
[0106] For each control request, the correction process is a process of outputting a corrected command value of the command value in the third set 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. In this correction process, the time in the second set is a time determined based on the transmission time of the control request and the response time pre-measured for non-real-time communication, that is, the corrected time.
[0107] The time of the detected value is corrected based on the response time pre-detected for non-real-time communication, and a corrected command value is determined based on the corrected time. Therefore, the controlled device can be accurately controlled in non-real-time communication. In addition, the "corrected time" (the corrected detection time) can be the corrected time in the embodiment (the time obtained by adding the response time pre-detected for non-real-time communication to the transmission time of the transmission control request), or can be a time determined by other methods based on the transmission time and the pre-detected response time.
[0108] The pre-detected response time can be the difference between the measurement start time and the actual operation time. The measurement start time can be the transmission time of the control request in non-real-time communication. The actual operation time can be the time when the detected value of the controlled device that operates in response to the control request changes. That is, the pre-measured response time can be the time from the transmission of the control request to the change in the detected value in response to the control request. Thus, the time suitable for the time of the detected value is associated with the detected value in the control in non-real-time communication, and an appropriate corrected command value is expected to be obtained.
[0109] The control system 109 can be a distributed control system having a plurality of arithmetic units including a first arithmetic unit (e.g., the control device 40M) and a second arithmetic unit (e.g., the expansion device 40E). The one or more processors can include at least a first processor (e.g., the processor 209M) that executes (X) and a second processor (e.g., the processor 209E) that executes at least the correction process in (Y). The first arithmetic unit can have the first processor, and the second arithmetic unit can have the second processor. Thus, the first arithmetic unit having a function or hardware suitable for executing (X) can execute (X), and the second arithmetic unit having a function or hardware suitable for executing at least the correction process in (Y) can execute at least the correction process in (Y).
[0110] The correction process can be a process using a machine learning model (e.g., the correction model 290) that takes the first group, the second group, and the third group as inputs and outputs the corrected command value. Thus, the model can be learned based on a training data set including multiple combinations of the first group, the second group, the third group, and the corrected command value, and thus an accurately controlled corrected command value is expected to be obtained. In addition, the second arithmetic unit (e.g., the second processor) can be an arithmetic unit having sufficient hardware resources (e.g., a processor including a GPU) for performing the correction process using the machine learning model. On the other hand, the first arithmetic unit can be an arithmetic unit having hardware resources (e.g., capable of functioning as a PLC) sufficient to perform a specified fixed-cycle process.
[0111] The first processor can pre-measure the response time in non-real-time communication and send time-sharing data (such as time-sharing data 281), which is data representing the measured response time, to the second arithmetic unit. In the correction process executed by the second processor, the response time that forms the basis of the corrected time can be the response time represented by the time-sharing data. Thus, it is possible to share the pre-measured response time between the arithmetic unit that pre-measures the response time and the arithmetic unit that actually controls the controlled device, and control the controlled device with good accuracy in non-real-time communication.
[0112] In addition, the time-sharing data can be the response time table 280 itself. In this case, the second processor can calculate the corrected detection time by adding the response time represented by the response time table 280 to the transmission time each time the correction process is performed. Additionally, for example, the time-sharing data can be sent from the first arithmetic unit to the second arithmetic unit. The time-sharing data represents the transmission time and the pre-measured response time for each transmission time of the control request for the controlled device. The second processor can calculate (determine) the corrected detection time for each transmission time based on the response time obtained from the time-sharing data corresponding to the transmission time and the transmission time.
[0113] The controlled device can be a robot (such as robot 120). The second processor can perform (Y). The first processor can execute a control process that includes controlling a controlled device different from the robot (such as a processing machine 119) according to the scan time. (X) can be included in or different from this control process. Although it is expected that the control of the robot is performed by ROS, since the control of the robot is performed by the second arithmetic unit based on the detection values collected by the first arithmetic unit with real-time performance in real-time communication, even if the second arithmetic unit does not have real-time performance, good accuracy in robot control can be expected.
[0114] In addition, the control process of other controlled devices can be performed in parallel with the robot control process or after the robot control process is completed. For example, the control of the processing machine 119 can be performed after setting the workpiece for the processing machine 119 (after the robot control is completed). When it is necessary to control the robot 120 according to the progress of the processing of the processing machine 119, the control of the processing machine 119 (control in real-time communication) and the control of the robot 120 (control in non-real-time communication) can be performed in parallel or serially.
[0115] In addition, the same arithmetic unit can also control the robot and other controlled devices. For example, as Figure 9 shown in the example, the robot control unit 272 and the RT correction unit 271 can be provided in the control device 40M having the control unit 251. Additionally, although not shown, Figure 9The RT correction unit 271 among the robot control unit 272 and the RT correction unit 271 in
[0116] In addition, for example, in the corrected detection time, in addition to the response time of the pre-measurement in non-real-time communication, the response time in real-time communication can be further reflected. The response time in real-time communication can be the measured response time (for example, the response time measured by the same or different method as the pre-measurement method of the response time in non-real-time communication), or the response time as the worst value (for example, the maximum value of the response time specified in the standard (specification) in real-time communication). For example, the corrected detection time can be the time after adding the response time of the pre-measurement in non-real-time communication and the response time in real-time communication to the transmission time.
[0117] In addition, in this specification, "time" can be the time of year, month, day, hour, minute, and second, or a time unit with lower or higher precision than this, or the difference (time) from a certain reference time.
[0118] Description of Reference Numerals
[0119] 109... Control system.
Claims
1. A control system for controlling a controlled device, characterized in that: It includes one or more interface devices and one or more processors, The one or more processors, (X) Repeatedly execute the following processing: generate an acquisition request for acquiring a detection value of the controlled device, send the acquisition request via the interface device using real-time communication, and receive detection data representing the detection value via the interface device as a response to the acquisition request, (Y) Repeatedly execute the following processing: perform a correction process on the command value for the controlled device, generate a control request with the corrected command value, send the control request via the interface device using non-real-time communication, and receive control result data representing the return value of the command value included in the control request via the interface device, For each control request, The correction process is the following process: based on a first set of time and return value, a second set of time and detection value, and a third set of time and command value, output a corrected command value of the command value in the third set, In the correction process, the time in the second set is a corrected time, which is a time determined based on the transmission time of sending the control request and a response time pre-measured for the non-real-time communication.
2. The control system according to claim 1, characterized in that: The pre-measured response time is the difference between the measurement start time and the actual operation time, The measurement start time is the transmission time of the control request in the non-real-time communication, The actual operation time is the time when the detection value of the controlled device that has determined to act in response to the control request has changed.
3. The control system according to claim 2, characterized in that: The control system is a distributed control system having a plurality of arithmetic devices including a first arithmetic device and a second arithmetic device, The one or more processors include: A first processor that at least executes (X); and A second processor that executes at least the correction process in (Y), The first arithmetic device has the first processor, The second arithmetic device has the second processor.
4. The control system according to claim 3, characterized in that: The correction process 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.
5. The control system according to claim 3, characterized in that: The first processor pre-measures the response time and sends time-sharing data, which is data representing the measured response time, to the second arithmetic device, In the correction process executed by the second processor, the response time that forms the basis of the corrected time is the response time represented by the time-sharing data.
6. The control system according to claim 3, characterized in that: The controlled device is a robot, The second processor executes (Y), The first processor executes a control process including controlling the scanning time of a controlled device different from the robot, (X) is included in or different from the control process.
7. The control system according to claim 1, wherein: the correction process is a process using a machine learning model that takes the first group, the second group, and the third group as inputs and the corrected command value as an output.
8. A control method, wherein: the computer repeatedly performs the following process: generating an acquisition request for acquiring a detection value of the controlled device, transmitting the acquisition request using real-time communication, and receiving detection data indicating the detection value as a response to the acquisition request, the computer repeatedly performs the following process: performing a correction process on the command value for the controlled device, generating a control request having the corrected command value, transmitting the control request using non-real-time communication, and receiving control result data indicating a return value of the command value included in the control request, for each control request, the correction process is the following process: outputting a corrected command value of the command value in the third group based on a first group of time and return value, a second group of time and detection value, and a third group of time and command value, in the correction process, the time in the second group is a corrected time, which is a time determined based on a transmission time for transmitting the control request and a response time preliminarily measured for the non-real-time communication.
Citation Information
Patent Citations
Distribution automation system and distribution automation system control method
JP2012134895A